@oxyhq/services 6.9.32 → 6.9.34

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 (352) hide show
  1. package/lib/commonjs/ui/components/Avatar.js +5 -3
  2. package/lib/commonjs/ui/components/Avatar.js.map +1 -1
  3. package/lib/commonjs/ui/components/BottomSheet.js +2 -2
  4. package/lib/commonjs/ui/components/BottomSheet.js.map +1 -1
  5. package/lib/commonjs/ui/components/BottomSheetRouter.js +3 -4
  6. package/lib/commonjs/ui/components/BottomSheetRouter.js.map +1 -1
  7. package/lib/commonjs/ui/components/FollowButton.js +13 -65
  8. package/lib/commonjs/ui/components/FollowButton.js.map +1 -1
  9. package/lib/commonjs/ui/components/GroupedItem.js +12 -18
  10. package/lib/commonjs/ui/components/GroupedItem.js.map +1 -1
  11. package/lib/commonjs/ui/components/Header.js +11 -18
  12. package/lib/commonjs/ui/components/Header.js.map +1 -1
  13. package/lib/commonjs/ui/components/HelperText.js +6 -14
  14. package/lib/commonjs/ui/components/HelperText.js.map +1 -1
  15. package/lib/commonjs/ui/components/OxyLogo.js +4 -2
  16. package/lib/commonjs/ui/components/OxyLogo.js.map +1 -1
  17. package/lib/commonjs/ui/components/ProfileCard.js +13 -20
  18. package/lib/commonjs/ui/components/ProfileCard.js.map +1 -1
  19. package/lib/commonjs/ui/components/QuickActions.js +9 -13
  20. package/lib/commonjs/ui/components/QuickActions.js.map +1 -1
  21. package/lib/commonjs/ui/components/SectionTitle.js +2 -8
  22. package/lib/commonjs/ui/components/SectionTitle.js.map +1 -1
  23. package/lib/commonjs/ui/components/SignInModal.js +10 -16
  24. package/lib/commonjs/ui/components/SignInModal.js.map +1 -1
  25. package/lib/commonjs/ui/components/TextField/TextFieldFlat.js +6 -4
  26. package/lib/commonjs/ui/components/TextField/TextFieldFlat.js.map +1 -1
  27. package/lib/commonjs/ui/components/TextField/TextFieldOutlined.js +6 -4
  28. package/lib/commonjs/ui/components/TextField/TextFieldOutlined.js.map +1 -1
  29. package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js +36 -51
  30. package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js.map +1 -1
  31. package/lib/commonjs/ui/components/fileManagement/FileViewer.js +68 -82
  32. package/lib/commonjs/ui/components/fileManagement/FileViewer.js.map +1 -1
  33. package/lib/commonjs/ui/components/fileManagement/UploadPreview.js +35 -48
  34. package/lib/commonjs/ui/components/fileManagement/UploadPreview.js.map +1 -1
  35. package/lib/commonjs/ui/components/modals/DeleteAccountModal.js +22 -34
  36. package/lib/commonjs/ui/components/modals/DeleteAccountModal.js.map +1 -1
  37. package/lib/commonjs/ui/components/theming.js +14 -1
  38. package/lib/commonjs/ui/components/theming.js.map +1 -1
  39. package/lib/commonjs/ui/screens/AccountCenterScreen.js +15 -27
  40. package/lib/commonjs/ui/screens/AccountCenterScreen.js.map +1 -1
  41. package/lib/commonjs/ui/screens/AccountOverviewScreen.js +44 -49
  42. package/lib/commonjs/ui/screens/AccountOverviewScreen.js.map +1 -1
  43. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +22 -29
  44. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  45. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +2 -25
  46. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +1 -1
  47. package/lib/commonjs/ui/screens/AccountVerificationScreen.js +20 -40
  48. package/lib/commonjs/ui/screens/AccountVerificationScreen.js.map +1 -1
  49. package/lib/commonjs/ui/screens/AppInfoScreen.js +28 -24
  50. package/lib/commonjs/ui/screens/AppInfoScreen.js.map +1 -1
  51. package/lib/commonjs/ui/screens/EditProfileFieldScreen.js +25 -29
  52. package/lib/commonjs/ui/screens/EditProfileFieldScreen.js.map +1 -1
  53. package/lib/commonjs/ui/screens/FAQScreen.js +26 -27
  54. package/lib/commonjs/ui/screens/FAQScreen.js.map +1 -1
  55. package/lib/commonjs/ui/screens/FeedbackScreen.js +70 -108
  56. package/lib/commonjs/ui/screens/FeedbackScreen.js.map +1 -1
  57. package/lib/commonjs/ui/screens/FileManagementScreen.js +106 -119
  58. package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
  59. package/lib/commonjs/ui/screens/HelpSupportScreen.js +13 -10
  60. package/lib/commonjs/ui/screens/HelpSupportScreen.js.map +1 -1
  61. package/lib/commonjs/ui/screens/HistoryViewScreen.js +13 -10
  62. package/lib/commonjs/ui/screens/HistoryViewScreen.js.map +1 -1
  63. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js +9 -13
  64. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js.map +1 -1
  65. package/lib/commonjs/ui/screens/LearnMoreUsernamesScreen.js +19 -20
  66. package/lib/commonjs/ui/screens/LearnMoreUsernamesScreen.js.map +1 -1
  67. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js +16 -14
  68. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js.map +1 -1
  69. package/lib/commonjs/ui/screens/OxyAuthScreen.js +33 -60
  70. package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +1 -1
  71. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js +2 -5
  72. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js.map +1 -1
  73. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +10 -16
  74. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  75. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +65 -69
  76. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
  77. package/lib/commonjs/ui/screens/ProfileScreen.js +79 -110
  78. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
  79. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js +16 -13
  80. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js.map +1 -1
  81. package/lib/commonjs/ui/screens/SearchSettingsScreen.js +13 -17
  82. package/lib/commonjs/ui/screens/SearchSettingsScreen.js.map +1 -1
  83. package/lib/commonjs/ui/screens/SessionManagementScreen.js +17 -30
  84. package/lib/commonjs/ui/screens/SessionManagementScreen.js.map +1 -1
  85. package/lib/commonjs/ui/screens/UserLinksScreen.js +6 -12
  86. package/lib/commonjs/ui/screens/UserLinksScreen.js.map +1 -1
  87. package/lib/commonjs/ui/screens/UserListScreen.js +41 -35
  88. package/lib/commonjs/ui/screens/UserListScreen.js.map +1 -1
  89. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +15 -14
  90. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  91. package/lib/commonjs/ui/screens/karma/KarmaAboutScreen.js +7 -12
  92. package/lib/commonjs/ui/screens/karma/KarmaAboutScreen.js.map +1 -1
  93. package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js +25 -23
  94. package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js.map +1 -1
  95. package/lib/commonjs/ui/screens/karma/KarmaFAQScreen.js +9 -17
  96. package/lib/commonjs/ui/screens/karma/KarmaFAQScreen.js.map +1 -1
  97. package/lib/commonjs/ui/screens/karma/KarmaLeaderboardScreen.js +6 -11
  98. package/lib/commonjs/ui/screens/karma/KarmaLeaderboardScreen.js.map +1 -1
  99. package/lib/commonjs/ui/screens/karma/KarmaRewardsScreen.js +18 -22
  100. package/lib/commonjs/ui/screens/karma/KarmaRewardsScreen.js.map +1 -1
  101. package/lib/commonjs/ui/screens/karma/KarmaRulesScreen.js +6 -11
  102. package/lib/commonjs/ui/screens/karma/KarmaRulesScreen.js.map +1 -1
  103. package/lib/module/ui/components/Avatar.js +5 -3
  104. package/lib/module/ui/components/Avatar.js.map +1 -1
  105. package/lib/module/ui/components/BottomSheet.js +2 -2
  106. package/lib/module/ui/components/BottomSheet.js.map +1 -1
  107. package/lib/module/ui/components/BottomSheetRouter.js +3 -4
  108. package/lib/module/ui/components/BottomSheetRouter.js.map +1 -1
  109. package/lib/module/ui/components/FollowButton.js +12 -64
  110. package/lib/module/ui/components/FollowButton.js.map +1 -1
  111. package/lib/module/ui/components/GroupedItem.js +12 -18
  112. package/lib/module/ui/components/GroupedItem.js.map +1 -1
  113. package/lib/module/ui/components/Header.js +11 -18
  114. package/lib/module/ui/components/Header.js.map +1 -1
  115. package/lib/module/ui/components/HelperText.js +6 -15
  116. package/lib/module/ui/components/HelperText.js.map +1 -1
  117. package/lib/module/ui/components/OxyLogo.js +4 -2
  118. package/lib/module/ui/components/OxyLogo.js.map +1 -1
  119. package/lib/module/ui/components/ProfileCard.js +13 -20
  120. package/lib/module/ui/components/ProfileCard.js.map +1 -1
  121. package/lib/module/ui/components/QuickActions.js +9 -13
  122. package/lib/module/ui/components/QuickActions.js.map +1 -1
  123. package/lib/module/ui/components/SectionTitle.js +2 -8
  124. package/lib/module/ui/components/SectionTitle.js.map +1 -1
  125. package/lib/module/ui/components/SignInModal.js +10 -16
  126. package/lib/module/ui/components/SignInModal.js.map +1 -1
  127. package/lib/module/ui/components/TextField/TextFieldFlat.js +6 -4
  128. package/lib/module/ui/components/TextField/TextFieldFlat.js.map +1 -1
  129. package/lib/module/ui/components/TextField/TextFieldOutlined.js +6 -4
  130. package/lib/module/ui/components/TextField/TextFieldOutlined.js.map +1 -1
  131. package/lib/module/ui/components/fileManagement/FileDetailsModal.js +36 -51
  132. package/lib/module/ui/components/fileManagement/FileDetailsModal.js.map +1 -1
  133. package/lib/module/ui/components/fileManagement/FileViewer.js +68 -82
  134. package/lib/module/ui/components/fileManagement/FileViewer.js.map +1 -1
  135. package/lib/module/ui/components/fileManagement/UploadPreview.js +35 -48
  136. package/lib/module/ui/components/fileManagement/UploadPreview.js.map +1 -1
  137. package/lib/module/ui/components/modals/DeleteAccountModal.js +22 -34
  138. package/lib/module/ui/components/modals/DeleteAccountModal.js.map +1 -1
  139. package/lib/module/ui/components/theming.js +15 -2
  140. package/lib/module/ui/components/theming.js.map +1 -1
  141. package/lib/module/ui/screens/AccountCenterScreen.js +14 -26
  142. package/lib/module/ui/screens/AccountCenterScreen.js.map +1 -1
  143. package/lib/module/ui/screens/AccountOverviewScreen.js +45 -50
  144. package/lib/module/ui/screens/AccountOverviewScreen.js.map +1 -1
  145. package/lib/module/ui/screens/AccountSettingsScreen.js +21 -28
  146. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  147. package/lib/module/ui/screens/AccountSwitcherScreen.js +2 -25
  148. package/lib/module/ui/screens/AccountSwitcherScreen.js.map +1 -1
  149. package/lib/module/ui/screens/AccountVerificationScreen.js +21 -41
  150. package/lib/module/ui/screens/AccountVerificationScreen.js.map +1 -1
  151. package/lib/module/ui/screens/AppInfoScreen.js +28 -24
  152. package/lib/module/ui/screens/AppInfoScreen.js.map +1 -1
  153. package/lib/module/ui/screens/EditProfileFieldScreen.js +25 -29
  154. package/lib/module/ui/screens/EditProfileFieldScreen.js.map +1 -1
  155. package/lib/module/ui/screens/FAQScreen.js +26 -27
  156. package/lib/module/ui/screens/FAQScreen.js.map +1 -1
  157. package/lib/module/ui/screens/FeedbackScreen.js +70 -108
  158. package/lib/module/ui/screens/FeedbackScreen.js.map +1 -1
  159. package/lib/module/ui/screens/FileManagementScreen.js +106 -119
  160. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
  161. package/lib/module/ui/screens/HelpSupportScreen.js +13 -10
  162. package/lib/module/ui/screens/HelpSupportScreen.js.map +1 -1
  163. package/lib/module/ui/screens/HistoryViewScreen.js +13 -10
  164. package/lib/module/ui/screens/HistoryViewScreen.js.map +1 -1
  165. package/lib/module/ui/screens/LanguageSelectorScreen.js +9 -13
  166. package/lib/module/ui/screens/LanguageSelectorScreen.js.map +1 -1
  167. package/lib/module/ui/screens/LearnMoreUsernamesScreen.js +19 -20
  168. package/lib/module/ui/screens/LearnMoreUsernamesScreen.js.map +1 -1
  169. package/lib/module/ui/screens/LegalDocumentsScreen.js +16 -14
  170. package/lib/module/ui/screens/LegalDocumentsScreen.js.map +1 -1
  171. package/lib/module/ui/screens/OxyAuthScreen.js +33 -60
  172. package/lib/module/ui/screens/OxyAuthScreen.js.map +1 -1
  173. package/lib/module/ui/screens/PaymentGatewayScreen.js +2 -5
  174. package/lib/module/ui/screens/PaymentGatewayScreen.js.map +1 -1
  175. package/lib/module/ui/screens/PremiumSubscriptionScreen.js +10 -16
  176. package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  177. package/lib/module/ui/screens/PrivacySettingsScreen.js +65 -69
  178. package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
  179. package/lib/module/ui/screens/ProfileScreen.js +77 -108
  180. package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
  181. package/lib/module/ui/screens/SavesCollectionsScreen.js +16 -13
  182. package/lib/module/ui/screens/SavesCollectionsScreen.js.map +1 -1
  183. package/lib/module/ui/screens/SearchSettingsScreen.js +13 -17
  184. package/lib/module/ui/screens/SearchSettingsScreen.js.map +1 -1
  185. package/lib/module/ui/screens/SessionManagementScreen.js +17 -30
  186. package/lib/module/ui/screens/SessionManagementScreen.js.map +1 -1
  187. package/lib/module/ui/screens/UserLinksScreen.js +6 -12
  188. package/lib/module/ui/screens/UserLinksScreen.js.map +1 -1
  189. package/lib/module/ui/screens/UserListScreen.js +39 -33
  190. package/lib/module/ui/screens/UserListScreen.js.map +1 -1
  191. package/lib/module/ui/screens/WelcomeNewUserScreen.js +15 -14
  192. package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  193. package/lib/module/ui/screens/karma/KarmaAboutScreen.js +7 -12
  194. package/lib/module/ui/screens/karma/KarmaAboutScreen.js.map +1 -1
  195. package/lib/module/ui/screens/karma/KarmaCenterScreen.js +25 -23
  196. package/lib/module/ui/screens/karma/KarmaCenterScreen.js.map +1 -1
  197. package/lib/module/ui/screens/karma/KarmaFAQScreen.js +8 -16
  198. package/lib/module/ui/screens/karma/KarmaFAQScreen.js.map +1 -1
  199. package/lib/module/ui/screens/karma/KarmaLeaderboardScreen.js +6 -11
  200. package/lib/module/ui/screens/karma/KarmaLeaderboardScreen.js.map +1 -1
  201. package/lib/module/ui/screens/karma/KarmaRewardsScreen.js +17 -21
  202. package/lib/module/ui/screens/karma/KarmaRewardsScreen.js.map +1 -1
  203. package/lib/module/ui/screens/karma/KarmaRulesScreen.js +6 -11
  204. package/lib/module/ui/screens/karma/KarmaRulesScreen.js.map +1 -1
  205. package/lib/typescript/commonjs/ui/components/BottomSheet.d.ts.map +1 -1
  206. package/lib/typescript/commonjs/ui/components/FollowButton.d.ts +0 -11
  207. package/lib/typescript/commonjs/ui/components/FollowButton.d.ts.map +1 -1
  208. package/lib/typescript/commonjs/ui/components/GroupedItem.d.ts.map +1 -1
  209. package/lib/typescript/commonjs/ui/components/Header.d.ts.map +1 -1
  210. package/lib/typescript/commonjs/ui/components/HelperText.d.ts.map +1 -1
  211. package/lib/typescript/commonjs/ui/components/ProfileCard.d.ts.map +1 -1
  212. package/lib/typescript/commonjs/ui/components/QuickActions.d.ts.map +1 -1
  213. package/lib/typescript/commonjs/ui/components/SectionTitle.d.ts.map +1 -1
  214. package/lib/typescript/commonjs/ui/components/SignInModal.d.ts.map +1 -1
  215. package/lib/typescript/commonjs/ui/components/fileManagement/FileDetailsModal.d.ts +2 -2
  216. package/lib/typescript/commonjs/ui/components/fileManagement/FileDetailsModal.d.ts.map +1 -1
  217. package/lib/typescript/commonjs/ui/components/fileManagement/FileViewer.d.ts +2 -2
  218. package/lib/typescript/commonjs/ui/components/fileManagement/FileViewer.d.ts.map +1 -1
  219. package/lib/typescript/commonjs/ui/components/fileManagement/UploadPreview.d.ts +2 -2
  220. package/lib/typescript/commonjs/ui/components/fileManagement/UploadPreview.d.ts.map +1 -1
  221. package/lib/typescript/commonjs/ui/components/modals/DeleteAccountModal.d.ts.map +1 -1
  222. package/lib/typescript/commonjs/ui/components/theming.d.ts.map +1 -1
  223. package/lib/typescript/commonjs/ui/screens/AccountCenterScreen.d.ts.map +1 -1
  224. package/lib/typescript/commonjs/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  225. package/lib/typescript/commonjs/ui/screens/AccountSwitcherScreen.d.ts.map +1 -1
  226. package/lib/typescript/commonjs/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
  227. package/lib/typescript/commonjs/ui/screens/AppInfoScreen.d.ts.map +1 -1
  228. package/lib/typescript/commonjs/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
  229. package/lib/typescript/commonjs/ui/screens/FeedbackScreen.d.ts.map +1 -1
  230. package/lib/typescript/commonjs/ui/screens/FileManagementScreen.d.ts.map +1 -1
  231. package/lib/typescript/commonjs/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  232. package/lib/typescript/commonjs/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  233. package/lib/typescript/commonjs/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  234. package/lib/typescript/commonjs/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
  235. package/lib/typescript/commonjs/ui/screens/OxyAuthScreen.d.ts.map +1 -1
  236. package/lib/typescript/commonjs/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  237. package/lib/typescript/commonjs/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  238. package/lib/typescript/commonjs/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  239. package/lib/typescript/commonjs/ui/screens/ProfileScreen.d.ts.map +1 -1
  240. package/lib/typescript/commonjs/ui/screens/SavesCollectionsScreen.d.ts.map +1 -1
  241. package/lib/typescript/commonjs/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  242. package/lib/typescript/commonjs/ui/screens/SessionManagementScreen.d.ts.map +1 -1
  243. package/lib/typescript/commonjs/ui/screens/UserLinksScreen.d.ts.map +1 -1
  244. package/lib/typescript/commonjs/ui/screens/UserListScreen.d.ts.map +1 -1
  245. package/lib/typescript/commonjs/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
  246. package/lib/typescript/commonjs/ui/screens/karma/KarmaAboutScreen.d.ts.map +1 -1
  247. package/lib/typescript/commonjs/ui/screens/karma/KarmaCenterScreen.d.ts.map +1 -1
  248. package/lib/typescript/commonjs/ui/screens/karma/KarmaFAQScreen.d.ts.map +1 -1
  249. package/lib/typescript/commonjs/ui/screens/karma/KarmaLeaderboardScreen.d.ts.map +1 -1
  250. package/lib/typescript/commonjs/ui/screens/karma/KarmaRewardsScreen.d.ts.map +1 -1
  251. package/lib/typescript/commonjs/ui/screens/karma/KarmaRulesScreen.d.ts.map +1 -1
  252. package/lib/typescript/module/ui/components/BottomSheet.d.ts.map +1 -1
  253. package/lib/typescript/module/ui/components/FollowButton.d.ts +0 -11
  254. package/lib/typescript/module/ui/components/FollowButton.d.ts.map +1 -1
  255. package/lib/typescript/module/ui/components/GroupedItem.d.ts.map +1 -1
  256. package/lib/typescript/module/ui/components/Header.d.ts.map +1 -1
  257. package/lib/typescript/module/ui/components/HelperText.d.ts.map +1 -1
  258. package/lib/typescript/module/ui/components/ProfileCard.d.ts.map +1 -1
  259. package/lib/typescript/module/ui/components/QuickActions.d.ts.map +1 -1
  260. package/lib/typescript/module/ui/components/SectionTitle.d.ts.map +1 -1
  261. package/lib/typescript/module/ui/components/SignInModal.d.ts.map +1 -1
  262. package/lib/typescript/module/ui/components/fileManagement/FileDetailsModal.d.ts +2 -2
  263. package/lib/typescript/module/ui/components/fileManagement/FileDetailsModal.d.ts.map +1 -1
  264. package/lib/typescript/module/ui/components/fileManagement/FileViewer.d.ts +2 -2
  265. package/lib/typescript/module/ui/components/fileManagement/FileViewer.d.ts.map +1 -1
  266. package/lib/typescript/module/ui/components/fileManagement/UploadPreview.d.ts +2 -2
  267. package/lib/typescript/module/ui/components/fileManagement/UploadPreview.d.ts.map +1 -1
  268. package/lib/typescript/module/ui/components/modals/DeleteAccountModal.d.ts.map +1 -1
  269. package/lib/typescript/module/ui/components/theming.d.ts.map +1 -1
  270. package/lib/typescript/module/ui/screens/AccountCenterScreen.d.ts.map +1 -1
  271. package/lib/typescript/module/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  272. package/lib/typescript/module/ui/screens/AccountSwitcherScreen.d.ts.map +1 -1
  273. package/lib/typescript/module/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
  274. package/lib/typescript/module/ui/screens/AppInfoScreen.d.ts.map +1 -1
  275. package/lib/typescript/module/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
  276. package/lib/typescript/module/ui/screens/FeedbackScreen.d.ts.map +1 -1
  277. package/lib/typescript/module/ui/screens/FileManagementScreen.d.ts.map +1 -1
  278. package/lib/typescript/module/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  279. package/lib/typescript/module/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  280. package/lib/typescript/module/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  281. package/lib/typescript/module/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
  282. package/lib/typescript/module/ui/screens/OxyAuthScreen.d.ts.map +1 -1
  283. package/lib/typescript/module/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  284. package/lib/typescript/module/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  285. package/lib/typescript/module/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  286. package/lib/typescript/module/ui/screens/ProfileScreen.d.ts.map +1 -1
  287. package/lib/typescript/module/ui/screens/SavesCollectionsScreen.d.ts.map +1 -1
  288. package/lib/typescript/module/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  289. package/lib/typescript/module/ui/screens/SessionManagementScreen.d.ts.map +1 -1
  290. package/lib/typescript/module/ui/screens/UserLinksScreen.d.ts.map +1 -1
  291. package/lib/typescript/module/ui/screens/UserListScreen.d.ts.map +1 -1
  292. package/lib/typescript/module/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
  293. package/lib/typescript/module/ui/screens/karma/KarmaAboutScreen.d.ts.map +1 -1
  294. package/lib/typescript/module/ui/screens/karma/KarmaCenterScreen.d.ts.map +1 -1
  295. package/lib/typescript/module/ui/screens/karma/KarmaFAQScreen.d.ts.map +1 -1
  296. package/lib/typescript/module/ui/screens/karma/KarmaLeaderboardScreen.d.ts.map +1 -1
  297. package/lib/typescript/module/ui/screens/karma/KarmaRewardsScreen.d.ts.map +1 -1
  298. package/lib/typescript/module/ui/screens/karma/KarmaRulesScreen.d.ts.map +1 -1
  299. package/lib/typescript/nativewind-env.d.ts +1 -0
  300. package/package.json +8 -2
  301. package/src/nativewind-env.d.ts +1 -0
  302. package/src/ui/components/Avatar.tsx +3 -3
  303. package/src/ui/components/BottomSheet.tsx +2 -3
  304. package/src/ui/components/BottomSheetRouter.tsx +2 -2
  305. package/src/ui/components/FollowButton.tsx +14 -50
  306. package/src/ui/components/GroupedItem.tsx +8 -15
  307. package/src/ui/components/Header.tsx +7 -15
  308. package/src/ui/components/HelperText.tsx +4 -15
  309. package/src/ui/components/OxyLogo.tsx +2 -2
  310. package/src/ui/components/ProfileCard.tsx +14 -17
  311. package/src/ui/components/QuickActions.tsx +12 -14
  312. package/src/ui/components/SectionTitle.tsx +1 -7
  313. package/src/ui/components/SignInModal.tsx +4 -6
  314. package/src/ui/components/TextField/TextFieldFlat.tsx +4 -4
  315. package/src/ui/components/TextField/TextFieldOutlined.tsx +4 -4
  316. package/src/ui/components/fileManagement/FileDetailsModal.tsx +23 -22
  317. package/src/ui/components/fileManagement/FileViewer.tsx +57 -45
  318. package/src/ui/components/fileManagement/UploadPreview.tsx +23 -28
  319. package/src/ui/components/modals/DeleteAccountModal.tsx +13 -12
  320. package/src/ui/components/theming.tsx +15 -2
  321. package/src/ui/screens/AccountCenterScreen.tsx +10 -13
  322. package/src/ui/screens/AccountOverviewScreen.tsx +39 -39
  323. package/src/ui/screens/AccountSettingsScreen.tsx +15 -19
  324. package/src/ui/screens/AccountSwitcherScreen.tsx +1 -23
  325. package/src/ui/screens/AccountVerificationScreen.tsx +15 -33
  326. package/src/ui/screens/AppInfoScreen.tsx +28 -24
  327. package/src/ui/screens/EditProfileFieldScreen.tsx +24 -26
  328. package/src/ui/screens/FAQScreen.tsx +23 -23
  329. package/src/ui/screens/FeedbackScreen.tsx +47 -38
  330. package/src/ui/screens/FileManagementScreen.tsx +102 -116
  331. package/src/ui/screens/HelpSupportScreen.tsx +12 -8
  332. package/src/ui/screens/HistoryViewScreen.tsx +12 -8
  333. package/src/ui/screens/LanguageSelectorScreen.tsx +8 -11
  334. package/src/ui/screens/LearnMoreUsernamesScreen.tsx +17 -17
  335. package/src/ui/screens/LegalDocumentsScreen.tsx +14 -10
  336. package/src/ui/screens/OxyAuthScreen.tsx +17 -27
  337. package/src/ui/screens/PaymentGatewayScreen.tsx +1 -3
  338. package/src/ui/screens/PremiumSubscriptionScreen.tsx +10 -7
  339. package/src/ui/screens/PrivacySettingsScreen.tsx +63 -65
  340. package/src/ui/screens/ProfileScreen.tsx +54 -58
  341. package/src/ui/screens/SavesCollectionsScreen.tsx +15 -11
  342. package/src/ui/screens/SearchSettingsScreen.tsx +11 -13
  343. package/src/ui/screens/SessionManagementScreen.tsx +12 -12
  344. package/src/ui/screens/UserLinksScreen.tsx +4 -8
  345. package/src/ui/screens/UserListScreen.tsx +34 -46
  346. package/src/ui/screens/WelcomeNewUserScreen.tsx +11 -6
  347. package/src/ui/screens/karma/KarmaAboutScreen.tsx +6 -10
  348. package/src/ui/screens/karma/KarmaCenterScreen.tsx +23 -19
  349. package/src/ui/screens/karma/KarmaFAQScreen.tsx +7 -14
  350. package/src/ui/screens/karma/KarmaLeaderboardScreen.tsx +5 -9
  351. package/src/ui/screens/karma/KarmaRewardsScreen.tsx +15 -17
  352. package/src/ui/screens/karma/KarmaRulesScreen.tsx +5 -9
@@ -10,8 +10,10 @@ import type { BaseScreenProps } from '../types/navigation';
10
10
  import { toast } from '../../lib/sonner';
11
11
  import { Header, Section, GroupedSection, LoadingState, EmptyState } from '../components';
12
12
  import { useI18n } from '../hooks/useI18n';
13
- import { useThemeStyles } from '../hooks/useThemeStyles';
13
+ import { useTheme } from '@oxyhq/bloom/theme';
14
14
  import { useColorScheme } from '../hooks/useColorScheme';
15
+ import { Colors } from '../constants/theme';
16
+ import { normalizeColorScheme } from '../utils/themeUtils';
15
17
  import { useOxy } from '../context/OxyContext';
16
18
 
17
19
  interface SavedItem {
@@ -44,10 +46,12 @@ const SavesCollectionsScreen: React.FC<BaseScreenProps> = ({
44
46
  const [isLoading, setIsLoading] = useState(true);
45
47
  const [activeTab, setActiveTab] = useState<'saves' | 'collections'>('saves');
46
48
 
49
+ const bloomTheme = useTheme();
47
50
  const colorScheme = useColorScheme();
48
- const themeStyles = useThemeStyles(theme || 'light', colorScheme);
49
- const tabActiveColor = themeStyles.colors.iconSecurity;
50
- const tabInactiveColor = themeStyles.isDarkTheme ? '#888888' : '#666666';
51
+ const normalizedColorScheme = normalizeColorScheme(colorScheme);
52
+ const themeColors = Colors[normalizedColorScheme];
53
+ const tabActiveColor = themeColors.iconSecurity;
54
+ const tabInactiveColor = bloomTheme.isDark ? '#888888' : '#666666';
51
55
 
52
56
  // Load saved items and collections from API
53
57
  useEffect(() => {
@@ -89,7 +93,7 @@ const SavesCollectionsScreen: React.FC<BaseScreenProps> = ({
89
93
  };
90
94
 
91
95
  return (
92
- <View style={[styles.container, { backgroundColor: themeStyles.backgroundColor }]}>
96
+ <View style={styles.container} className="bg-background">
93
97
  <Header
94
98
  title={t('saves.title') || 'Saves & Collections'}
95
99
  onBack={goBack || onClose}
@@ -98,7 +102,7 @@ const SavesCollectionsScreen: React.FC<BaseScreenProps> = ({
98
102
  />
99
103
 
100
104
  {/* Tabs */}
101
- <View style={[styles.tabs, { borderBottomColor: themeStyles.borderColor }]}>
105
+ <View style={[styles.tabs, { borderBottomColor: bloomTheme.colors.border }]}>
102
106
  <TouchableOpacity
103
107
  style={[
104
108
  styles.tab,
@@ -143,13 +147,13 @@ const SavesCollectionsScreen: React.FC<BaseScreenProps> = ({
143
147
  {isLoading ? (
144
148
  <LoadingState
145
149
  message={t('saves.loading') || 'Loading...'}
146
- color={themeStyles.textColor}
150
+ color={bloomTheme.colors.text}
147
151
  />
148
152
  ) : activeTab === 'saves' ? (
149
153
  savedItems.length === 0 ? (
150
154
  <EmptyState
151
155
  message={t('saves.empty') || 'No saved items yet'}
152
- textColor={themeStyles.textColor}
156
+ textColor={bloomTheme.colors.text}
153
157
  />
154
158
  ) : (
155
159
  <Section title={t('saves.savedItems') || 'Saved Items'} isFirst={true}>
@@ -157,7 +161,7 @@ const SavesCollectionsScreen: React.FC<BaseScreenProps> = ({
157
161
  items={savedItems.map((item) => ({
158
162
  id: item.id,
159
163
  icon: item.type === 'post' ? 'document-text' : 'folder',
160
- iconColor: item.type === 'post' ? themeStyles.colors.iconSecurity : themeStyles.colors.iconStorage,
164
+ iconColor: item.type === 'post' ? themeColors.iconSecurity : themeColors.iconStorage,
161
165
  title: item.title,
162
166
  subtitle: formatDate(item.savedAt),
163
167
  }))}
@@ -168,7 +172,7 @@ const SavesCollectionsScreen: React.FC<BaseScreenProps> = ({
168
172
  collections.length === 0 ? (
169
173
  <EmptyState
170
174
  message={t('saves.noCollections') || 'No collections yet'}
171
- textColor={themeStyles.textColor}
175
+ textColor={bloomTheme.colors.text}
172
176
  />
173
177
  ) : (
174
178
  <Section title={t('saves.collections') || 'Collections'} isFirst={true}>
@@ -176,7 +180,7 @@ const SavesCollectionsScreen: React.FC<BaseScreenProps> = ({
176
180
  items={collections.map((collection) => ({
177
181
  id: collection.id,
178
182
  icon: 'folder',
179
- iconColor: themeStyles.colors.iconStorage,
183
+ iconColor: themeColors.iconStorage,
180
184
  title: collection.name,
181
185
  subtitle: `${collection.itemCount || 0} items`,
182
186
  }))}
@@ -7,9 +7,8 @@ import {
7
7
  import type { BaseScreenProps } from '../types/navigation';
8
8
  import { Header, Section, LoadingState, SettingRow } from '../components';
9
9
  import { useI18n } from '../hooks/useI18n';
10
- import { useThemeStyles } from '../hooks/useThemeStyles';
10
+ import { useTheme } from '@oxyhq/bloom/theme';
11
11
  import { useSettingToggles } from '../hooks/useSettingToggle';
12
- import { normalizeTheme } from '../utils/themeUtils';
13
12
  import { useOxy } from '../context/OxyContext';
14
13
  import type { User } from '@oxyhq/core';
15
14
 
@@ -75,25 +74,24 @@ const SearchSettingsScreen: React.FC<BaseScreenProps> = ({
75
74
  loadSettings();
76
75
  }, [user?.id, oxyServices, setValues]);
77
76
 
78
- const normalizedTheme = normalizeTheme(theme);
79
- const themeStyles = useThemeStyles(normalizedTheme);
77
+ const bloomTheme = useTheme();
80
78
 
81
79
  if (isLoading) {
82
80
  return (
83
- <View style={[styles.container, { backgroundColor: themeStyles.backgroundColor }]}>
81
+ <View style={styles.container} className="bg-background">
84
82
  <Header
85
83
  title={t('searchSettings.title') || 'Search Settings'}
86
84
  onBack={goBack || onClose}
87
85
  variant="minimal"
88
86
  elevation="subtle"
89
87
  />
90
- <LoadingState color={themeStyles.textColor} />
88
+ <LoadingState color={bloomTheme.colors.text} />
91
89
  </View>
92
90
  );
93
91
  }
94
92
 
95
93
  return (
96
- <View style={[styles.container, { backgroundColor: themeStyles.backgroundColor }]}>
94
+ <View style={styles.container} className="bg-background">
97
95
  <Header
98
96
  title={t('searchSettings.title') || 'Search Settings'}
99
97
 
@@ -111,9 +109,9 @@ const SearchSettingsScreen: React.FC<BaseScreenProps> = ({
111
109
  value={settings.safeSearch}
112
110
  onValueChange={() => toggle('safeSearch')}
113
111
  disabled={isSaving}
114
- textColor={themeStyles.textColor}
115
- mutedTextColor={themeStyles.mutedTextColor}
116
- borderColor={themeStyles.borderColor}
112
+ textColor={bloomTheme.colors.text}
113
+ mutedTextColor={bloomTheme.colors.textSecondary}
114
+ borderColor={bloomTheme.colors.border}
117
115
  />
118
116
  </Section>
119
117
 
@@ -125,9 +123,9 @@ const SearchSettingsScreen: React.FC<BaseScreenProps> = ({
125
123
  value={settings.searchPersonalization}
126
124
  onValueChange={() => toggle('searchPersonalization')}
127
125
  disabled={isSaving}
128
- textColor={themeStyles.textColor}
129
- mutedTextColor={themeStyles.mutedTextColor}
130
- borderColor={themeStyles.borderColor}
126
+ textColor={bloomTheme.colors.text}
127
+ mutedTextColor={bloomTheme.colors.textSecondary}
128
+ borderColor={bloomTheme.colors.border}
131
129
  />
132
130
  </Section>
133
131
  </ScrollView>
@@ -17,8 +17,7 @@ import { toast } from '../../lib/sonner';
17
17
  import type { ClientSession } from '@oxyhq/core';
18
18
  import { confirmAction } from '../utils/confirmAction';
19
19
  import { Header, GroupedSection } from '../components';
20
- import { useThemeStyles } from '../hooks/useThemeStyles';
21
- import { normalizeTheme } from '../utils/themeUtils';
20
+ import { useTheme } from '@oxyhq/bloom/theme';
22
21
  import { useOxy } from '../context/OxyContext';
23
22
  import { useI18n } from '../hooks/useI18n';
24
23
 
@@ -54,11 +53,12 @@ const SessionManagementScreen: React.FC<BaseScreenProps> = ({
54
53
  const [switchLoading, setSwitchLoading] = useState<string | null>(null);
55
54
  const [lastRefreshed, setLastRefreshed] = useState<Date | null>(null);
56
55
 
57
- // Use centralized theme styles hook for consistency
58
- const normalizedTheme = normalizeTheme(theme);
59
- const themeStyles = useThemeStyles(normalizedTheme);
60
- // Extract commonly used colors for readability
61
- const { textColor, backgroundColor, borderColor, primaryColor, dangerColor, successColor, isDarkTheme } = themeStyles;
56
+ // Use bloom theme for non-style color props (ActivityIndicator, icon colors, etc.)
57
+ const bloomTheme = useTheme();
58
+ const isDarkTheme = bloomTheme.isDark;
59
+ const primaryColor = bloomTheme.colors.primary;
60
+ const dangerColor = bloomTheme.colors.error;
61
+ const successColor = bloomTheme.colors.success || '#34C759';
62
62
 
63
63
  // Memoized load sessions function - prevents unnecessary re-renders
64
64
  const loadSessions = useCallback(async (isRefresh = false) => {
@@ -291,15 +291,15 @@ const SessionManagementScreen: React.FC<BaseScreenProps> = ({
291
291
 
292
292
  if (loading) {
293
293
  return (
294
- <View style={[styles.container, styles.centerContent, { backgroundColor }]}>
294
+ <View style={[styles.container, styles.centerContent]} className="bg-background">
295
295
  <ActivityIndicator size="large" color={primaryColor} />
296
- <Text style={[styles.loadingText, { color: textColor }]}>{t('sessionManagement.loading')}</Text>
296
+ <Text style={styles.loadingText} className="text-foreground">{t('sessionManagement.loading')}</Text>
297
297
  </View>
298
298
  );
299
299
  }
300
300
 
301
301
  return (
302
- <View style={[styles.container, { backgroundColor }]}>
302
+ <View style={styles.container} className="bg-background">
303
303
  <Header
304
304
  title={t('sessionManagement.title')}
305
305
  subtitle={t('sessionManagement.subtitle')}
@@ -337,9 +337,9 @@ const SessionManagementScreen: React.FC<BaseScreenProps> = ({
337
337
  </View>
338
338
  )}
339
339
  </ScrollView>
340
- <View style={[styles.footer, { borderTopColor: borderColor }]}>
340
+ <View style={styles.footer} className="border-border">
341
341
  <TouchableOpacity style={styles.closeButton} onPress={onClose}>
342
- <Text style={[styles.closeButtonText, { color: primaryColor }]}>{t('sessionManagement.close')}</Text>
342
+ <Text style={styles.closeButtonText} className="text-primary">{t('sessionManagement.close')}</Text>
343
343
  </TouchableOpacity>
344
344
  </View>
345
345
  </View>
@@ -3,8 +3,7 @@ import { View, Text, StyleSheet, ScrollView, TouchableOpacity, Image, Linking }
3
3
  import { Ionicons } from '@expo/vector-icons';
4
4
  import type { BaseScreenProps } from '../types/navigation';
5
5
  import { Header, GroupedSection } from '../components';
6
- import { useThemeStyles } from '../hooks/useThemeStyles';
7
- import { normalizeTheme } from '../utils/themeUtils';
6
+ import { useTheme } from '@oxyhq/bloom/theme';
8
7
  import { useI18n } from '../hooks/useI18n';
9
8
 
10
9
  interface UserLinksScreenProps extends BaseScreenProps {
@@ -25,10 +24,7 @@ const UserLinksScreen: React.FC<UserLinksScreenProps> = ({
25
24
  goBack,
26
25
  navigate
27
26
  }) => {
28
- // Use centralized theme styles hook for consistency
29
- // primaryColor from hook (#007AFF) is already correct for this screen
30
- const normalizedTheme = normalizeTheme(theme);
31
- const themeStyles = useThemeStyles(normalizedTheme);
27
+ const bloomTheme = useTheme();
32
28
  const { t } = useI18n();
33
29
 
34
30
  const handleLinkPress = async (url: string) => {
@@ -54,7 +50,7 @@ const UserLinksScreen: React.FC<UserLinksScreenProps> = ({
54
50
  }));
55
51
 
56
52
  return (
57
- <View style={[styles.container, { backgroundColor: themeStyles.backgroundColor }]}>
53
+ <View style={styles.container} className="bg-background">
58
54
  <Header
59
55
  title={t('userLinks.title')}
60
56
  subtitle={links.length !== 1 ? t('userLinks.linkCount_plural', { count: links.length }) : t('userLinks.linkCount', { count: links.length })}
@@ -64,7 +60,7 @@ const UserLinksScreen: React.FC<UserLinksScreenProps> = ({
64
60
 
65
61
  <ScrollView style={styles.content}>
66
62
  <View style={styles.section}>
67
- <Text style={[styles.sectionTitle, { color: themeStyles.textColor }]}>{t('userLinks.title')}</Text>
63
+ <Text style={styles.sectionTitle} className="text-foreground">{t('userLinks.title')}</Text>
68
64
 
69
65
  <GroupedSection
70
66
  items={groupedItems}
@@ -10,7 +10,7 @@ import {
10
10
  RefreshControl,
11
11
  } from 'react-native';
12
12
  import type { BaseScreenProps } from '../types/navigation';
13
- import { useThemeColors, type ThemeColors } from '../styles';
13
+ import { useTheme } from '@oxyhq/bloom/theme';
14
14
  import Avatar from '../components/Avatar';
15
15
  import { FollowButton } from '../components';
16
16
  import { Ionicons } from '@expo/vector-icons';
@@ -46,8 +46,8 @@ const UserListScreen: React.FC<UserListScreenProps> = ({
46
46
  const [error, setError] = useState<string | null>(null);
47
47
  const [hasMore, setHasMore] = useState(true);
48
48
 
49
- const colors = useThemeColors((theme as 'light' | 'dark') ?? 'light');
50
- const styles = createStyles(colors);
49
+ const bloomTheme = useTheme();
50
+ const styles = createStyles();
51
51
  const { t } = useI18n();
52
52
 
53
53
  const currentUserId = currentUser?.id || (currentUser?._id as string | undefined);
@@ -145,16 +145,16 @@ const UserListScreen: React.FC<UserListScreenProps> = ({
145
145
  size={48}
146
146
  />
147
147
  <View style={styles.userInfo}>
148
- <Text style={styles.userName} numberOfLines={1}>
148
+ <Text style={styles.userName} className="text-foreground" numberOfLines={1}>
149
149
  {item.name?.full || item.username || 'Unknown User'}
150
150
  </Text>
151
151
  {item.username && (
152
- <Text style={styles.userHandle} numberOfLines={1}>
152
+ <Text style={styles.userHandle} className="text-muted-foreground" numberOfLines={1}>
153
153
  @{item.username}
154
154
  </Text>
155
155
  )}
156
156
  {description ? (
157
- <Text style={styles.userBio} numberOfLines={2}>
157
+ <Text style={styles.userBio} className="text-foreground" numberOfLines={2}>
158
158
  {description}
159
159
  </Text>
160
160
  ) : null}
@@ -167,7 +167,7 @@ const UserListScreen: React.FC<UserListScreenProps> = ({
167
167
  </TouchableOpacity>
168
168
  );
169
169
  },
170
- [colors, styles, handleUserPress, currentUserId, oxyServices]
170
+ [bloomTheme, styles, handleUserPress, currentUserId, oxyServices]
171
171
  );
172
172
 
173
173
  const renderEmpty = useCallback(() => {
@@ -177,30 +177,30 @@ const UserListScreen: React.FC<UserListScreenProps> = ({
177
177
  <Ionicons
178
178
  name={mode === 'followers' ? 'people-outline' : 'heart-outline'}
179
179
  size={64}
180
- color={colors.secondaryText}
180
+ color={bloomTheme.colors.textSecondary}
181
181
  />
182
- <Text style={styles.emptyTitle}>
182
+ <Text style={styles.emptyTitle} className="text-foreground">
183
183
  {mode === 'followers'
184
184
  ? t('userList.noFollowers') || 'No followers yet'
185
185
  : t('userList.noFollowing') || 'Not following anyone'}
186
186
  </Text>
187
- <Text style={styles.emptySubtitle}>
187
+ <Text style={styles.emptySubtitle} className="text-muted-foreground">
188
188
  {mode === 'followers'
189
189
  ? t('userList.noFollowersDesc') || 'When people follow this user, they will appear here.'
190
190
  : t('userList.noFollowingDesc') || 'When this user follows people, they will appear here.'}
191
191
  </Text>
192
192
  </View>
193
193
  );
194
- }, [isLoading, mode, colors, styles, t]);
194
+ }, [isLoading, mode, bloomTheme, styles, t]);
195
195
 
196
196
  const renderFooter = useCallback(() => {
197
197
  if (!isLoadingMore) return null;
198
198
  return (
199
199
  <View style={styles.footerLoader}>
200
- <ActivityIndicator size="small" color={colors.primary} />
200
+ <ActivityIndicator size="small" color={bloomTheme.colors.primary} />
201
201
  </View>
202
202
  );
203
- }, [isLoadingMore, colors, styles]);
203
+ }, [isLoadingMore, bloomTheme, styles]);
204
204
 
205
205
  const title = mode === 'followers'
206
206
  ? (t('userList.followers') || 'Followers')
@@ -208,18 +208,18 @@ const UserListScreen: React.FC<UserListScreenProps> = ({
208
208
 
209
209
  if (isLoading && users.length === 0) {
210
210
  return (
211
- <View style={styles.container}>
212
- <View style={styles.header}>
211
+ <View style={styles.container} className="bg-background">
212
+ <View style={styles.header} className="border-border">
213
213
  {goBack && (
214
214
  <TouchableOpacity onPress={goBack} style={styles.backButton}>
215
- <Ionicons name="arrow-back" size={24} color={colors.text} />
215
+ <Ionicons name="arrow-back" size={24} color={bloomTheme.colors.text} />
216
216
  </TouchableOpacity>
217
217
  )}
218
- <Text style={styles.headerTitle}>{title}</Text>
218
+ <Text style={styles.headerTitle} className="text-foreground">{title}</Text>
219
219
  <View style={styles.headerRight} />
220
220
  </View>
221
221
  <View style={styles.loadingContainer}>
222
- <ActivityIndicator size="large" color={colors.primary} />
222
+ <ActivityIndicator size="large" color={bloomTheme.colors.primary} />
223
223
  </View>
224
224
  </View>
225
225
  );
@@ -227,20 +227,20 @@ const UserListScreen: React.FC<UserListScreenProps> = ({
227
227
 
228
228
  if (error) {
229
229
  return (
230
- <View style={styles.container}>
231
- <View style={styles.header}>
230
+ <View style={styles.container} className="bg-background">
231
+ <View style={styles.header} className="border-border">
232
232
  {goBack && (
233
233
  <TouchableOpacity onPress={goBack} style={styles.backButton}>
234
- <Ionicons name="arrow-back" size={24} color={colors.text} />
234
+ <Ionicons name="arrow-back" size={24} color={bloomTheme.colors.text} />
235
235
  </TouchableOpacity>
236
236
  )}
237
- <Text style={styles.headerTitle}>{title}</Text>
237
+ <Text style={styles.headerTitle} className="text-foreground">{title}</Text>
238
238
  <View style={styles.headerRight} />
239
239
  </View>
240
240
  <View style={styles.errorContainer}>
241
- <Ionicons name="alert-circle" size={48} color={colors.error} />
242
- <Text style={styles.errorText}>{error}</Text>
243
- <TouchableOpacity style={styles.retryButton} onPress={() => fetchUsers(0)}>
241
+ <Ionicons name="alert-circle" size={48} color={bloomTheme.colors.error} />
242
+ <Text style={styles.errorText} className="text-destructive">{error}</Text>
243
+ <TouchableOpacity style={styles.retryButton} className="bg-primary" onPress={() => fetchUsers(0)}>
244
244
  <Text style={styles.retryButtonText}>{t('common.retry') || 'Retry'}</Text>
245
245
  </TouchableOpacity>
246
246
  </View>
@@ -249,16 +249,16 @@ const UserListScreen: React.FC<UserListScreenProps> = ({
249
249
  }
250
250
 
251
251
  return (
252
- <View style={styles.container}>
253
- <View style={styles.header}>
252
+ <View style={styles.container} className="bg-background">
253
+ <View style={styles.header} className="border-border">
254
254
  {goBack && (
255
255
  <TouchableOpacity onPress={goBack} style={styles.backButton}>
256
- <Ionicons name="arrow-back" size={24} color={colors.text} />
256
+ <Ionicons name="arrow-back" size={24} color={bloomTheme.colors.text} />
257
257
  </TouchableOpacity>
258
258
  )}
259
259
  <View style={styles.headerTitleContainer}>
260
- <Text style={styles.headerTitle}>{title}</Text>
261
- {total > 0 && <Text style={styles.headerCount}>{total}</Text>}
260
+ <Text style={styles.headerTitle} className="text-foreground">{title}</Text>
261
+ {total > 0 && <Text style={styles.headerCount} className="text-muted-foreground">{total}</Text>}
262
262
  </View>
263
263
  <View style={styles.headerRight} />
264
264
  </View>
@@ -267,7 +267,7 @@ const UserListScreen: React.FC<UserListScreenProps> = ({
267
267
  renderItem={renderUser}
268
268
  keyExtractor={(item, index) => item.id || (item._id as string) || `user-${index}`}
269
269
  contentContainerStyle={styles.listContent}
270
- ItemSeparatorComponent={() => <View style={styles.separator} />}
270
+ ItemSeparatorComponent={() => <View style={styles.separator} className="bg-border" />}
271
271
  ListEmptyComponent={renderEmpty}
272
272
  ListFooterComponent={renderFooter}
273
273
  onEndReached={handleLoadMore}
@@ -276,8 +276,8 @@ const UserListScreen: React.FC<UserListScreenProps> = ({
276
276
  <RefreshControl
277
277
  refreshing={isRefreshing}
278
278
  onRefresh={handleRefresh}
279
- tintColor={colors.primary}
280
- colors={[colors.primary]}
279
+ tintColor={bloomTheme.colors.primary}
280
+ colors={[bloomTheme.colors.primary]}
281
281
  />
282
282
  }
283
283
  />
@@ -285,11 +285,10 @@ const UserListScreen: React.FC<UserListScreenProps> = ({
285
285
  );
286
286
  };
287
287
 
288
- const createStyles = (colors: ThemeColors) =>
288
+ const createStyles = () =>
289
289
  StyleSheet.create({
290
290
  container: {
291
291
  flex: 1,
292
- backgroundColor: colors.background,
293
292
  },
294
293
  header: {
295
294
  flexDirection: 'row',
@@ -297,7 +296,6 @@ const createStyles = (colors: ThemeColors) =>
297
296
  paddingHorizontal: 16,
298
297
  paddingVertical: 12,
299
298
  borderBottomWidth: 1,
300
- borderBottomColor: colors.border,
301
299
  },
302
300
  backButton: {
303
301
  padding: 8,
@@ -311,11 +309,9 @@ const createStyles = (colors: ThemeColors) =>
311
309
  headerTitle: {
312
310
  fontSize: 18,
313
311
  fontWeight: '600',
314
- color: colors.text,
315
312
  },
316
313
  headerCount: {
317
314
  fontSize: 16,
318
- color: colors.secondaryText,
319
315
  marginLeft: 8,
320
316
  },
321
317
  headerRight: {
@@ -334,13 +330,11 @@ const createStyles = (colors: ThemeColors) =>
334
330
  },
335
331
  errorText: {
336
332
  fontSize: 16,
337
- color: colors.error,
338
333
  textAlign: 'center',
339
334
  marginTop: 16,
340
335
  marginBottom: 24,
341
336
  },
342
337
  retryButton: {
343
- backgroundColor: colors.primary,
344
338
  paddingHorizontal: 24,
345
339
  paddingVertical: 12,
346
340
  borderRadius: 8,
@@ -367,16 +361,13 @@ const createStyles = (colors: ThemeColors) =>
367
361
  userName: {
368
362
  fontSize: 16,
369
363
  fontWeight: '600',
370
- color: colors.text,
371
364
  },
372
365
  userHandle: {
373
366
  fontSize: 14,
374
- color: colors.secondaryText,
375
367
  marginTop: 2,
376
368
  },
377
369
  userBio: {
378
370
  fontSize: 14,
379
- color: colors.text,
380
371
  marginTop: 4,
381
372
  opacity: 0.8,
382
373
  },
@@ -385,7 +376,6 @@ const createStyles = (colors: ThemeColors) =>
385
376
  },
386
377
  separator: {
387
378
  height: 1,
388
- backgroundColor: colors.border,
389
379
  marginLeft: 76,
390
380
  },
391
381
  emptyContainer: {
@@ -398,13 +388,11 @@ const createStyles = (colors: ThemeColors) =>
398
388
  emptyTitle: {
399
389
  fontSize: 18,
400
390
  fontWeight: '600',
401
- color: colors.text,
402
391
  marginTop: 16,
403
392
  textAlign: 'center',
404
393
  },
405
394
  emptySubtitle: {
406
395
  fontSize: 14,
407
- color: colors.secondaryText,
408
396
  marginTop: 8,
409
397
  textAlign: 'center',
410
398
  },
@@ -7,7 +7,7 @@ import Avatar from '../components/Avatar';
7
7
  import { Ionicons } from '@expo/vector-icons';
8
8
  import { toast } from '../../lib/sonner';
9
9
  import { useAuthStore } from '../stores/authStore';
10
- import { useThemeColors } from '../styles';
10
+ import { useTheme } from '@oxyhq/bloom/theme';
11
11
  import { fontFamilies } from '../styles/fonts';
12
12
  import { normalizeTheme } from '../utils/themeUtils';
13
13
  import GroupedPillButtons from '../components/internal/GroupedPillButtons';
@@ -68,8 +68,13 @@ const WelcomeNewUserScreen: React.FC<BaseScreenProps & { newUser?: any }> = ({
68
68
  const { t } = useI18n();
69
69
  const updateProfileMutation = useUpdateProfile();
70
70
  const currentUser = user || newUser; // fallback
71
+ const bloomTheme = useTheme();
72
+ const colors = {
73
+ primary: bloomTheme.colors.primary,
74
+ border: bloomTheme.colors.border,
75
+ text: bloomTheme.colors.text,
76
+ };
71
77
  const normalizedTheme = normalizeTheme(theme);
72
- const colors = useThemeColors(normalizedTheme);
73
78
  const styles = useMemo(() => createStyles(normalizedTheme), [normalizedTheme]);
74
79
 
75
80
  // Animation state
@@ -212,15 +217,15 @@ const WelcomeNewUserScreen: React.FC<BaseScreenProps & { newUser?: any }> = ({
212
217
  <Animated.View style={{ opacity: fadeAnim, transform: [{ translateX: slideAnim }] }}>
213
218
  <View style={[styles.scrollInner, styles.contentContainer]}>
214
219
  <View style={[styles.header, styles.sectionSpacing]}>
215
- <Text style={[styles.title, { color: colors.text }]}>{step.title}</Text>
216
- {step.body && <Text style={[styles.body, { color: colors.secondaryText }]}>{step.body}</Text>}
220
+ <Text style={styles.title} className="text-foreground">{step.title}</Text>
221
+ {step.body && <Text style={styles.body} className="text-muted-foreground">{step.body}</Text>}
217
222
  </View>
218
223
  {Array.isArray(step.bullets) && step.bullets.length > 0 && (
219
224
  <View style={[styles.bulletContainer, styles.sectionSpacing]}>
220
225
  {step.bullets.map(b => (
221
226
  <View key={b} style={styles.bulletRow}>
222
227
  <Ionicons name="ellipse" size={8} color={colors.primary} style={{ marginTop: 6 }} />
223
- <Text style={[styles.bulletText, { color: colors.secondaryText }]}>{b}</Text>
228
+ <Text style={styles.bulletText} className="text-muted-foreground">{b}</Text>
224
229
  </View>
225
230
  ))}
226
231
  </View>
@@ -235,7 +240,7 @@ const WelcomeNewUserScreen: React.FC<BaseScreenProps & { newUser?: any }> = ({
235
240
  backgroundColor={`${colors.primary}20`}
236
241
  style={styles.avatar}
237
242
  />
238
- <TouchableOpacity style={[styles.changeAvatarButton, { backgroundColor: colors.primary }]} onPress={openAvatarPicker}>
243
+ <TouchableOpacity style={styles.changeAvatarButton} className="bg-primary" onPress={openAvatarPicker}>
239
244
  <Ionicons name="image-outline" size={18} color="#FFFFFF" />
240
245
  <Text style={styles.changeAvatarText}>{avatarUri ? (t('welcomeNew.avatar.change') || 'Change Avatar') : (t('welcomeNew.avatar.add') || 'Add Avatar')}</Text>
241
246
  </TouchableOpacity>
@@ -3,21 +3,17 @@ import { View, Text, StyleSheet, ScrollView, Platform } from 'react-native';
3
3
  import type { BaseScreenProps } from '../../types/navigation';
4
4
  import { Header } from '../../components';
5
5
  import { useI18n } from '../../hooks/useI18n';
6
- import { useThemeStyles } from '../../hooks/useThemeStyles';
7
- import { normalizeTheme } from '../../utils/themeUtils';
8
- import { useColorScheme } from '../../hooks/useColorScheme';
6
+ import { useTheme } from '@oxyhq/bloom/theme';
9
7
  import { fontFamilies } from '../../styles/fonts';
10
8
 
11
9
  const KarmaAboutScreen: React.FC<BaseScreenProps> = ({ goBack, theme }) => {
12
10
  const { t } = useI18n();
13
- const colorScheme = useColorScheme();
14
- const normalizedTheme = normalizeTheme(theme);
15
- const themeStyles = useThemeStyles(normalizedTheme, colorScheme);
11
+ const bloomTheme = useTheme();
16
12
  // Override primaryColor for Karma screens (purple instead of blue)
17
13
  const primaryColor = '#d169e5';
18
14
 
19
15
  return (
20
- <View style={[styles.container, { backgroundColor: themeStyles.backgroundColor }]}>
16
+ <View style={styles.container} className="bg-background">
21
17
  <Header
22
18
  title={t('karma.about.title') || 'About Karma'}
23
19
  subtitle={t('karma.about.subtitle') || 'Learn about the karma system'}
@@ -26,13 +22,13 @@ const KarmaAboutScreen: React.FC<BaseScreenProps> = ({ goBack, theme }) => {
26
22
  elevation="subtle"
27
23
  />
28
24
  <ScrollView contentContainerStyle={styles.contentContainer}>
29
- <Text style={[styles.paragraph, { color: themeStyles.textColor }]}>
25
+ <Text style={[styles.paragraph, { color: bloomTheme.colors.text }]}>
30
26
  {t('karma.about.intro') || 'Karma is a recognition of your positive actions in the Oxy Ecosystem. It cannot be sent or received directly, only earned by contributing to the community.'}
31
27
  </Text>
32
28
  <Text style={[styles.section, { color: primaryColor }]}>
33
29
  {t('karma.about.how.title') || 'How to Earn Karma'}
34
30
  </Text>
35
- <Text style={[styles.paragraph, { color: themeStyles.textColor }]}>
31
+ <Text style={[styles.paragraph, { color: bloomTheme.colors.text }]}>
36
32
  • {t('karma.about.how.help') || 'Helping other users'}{'\n'}
37
33
  • {t('karma.about.how.report') || 'Reporting bugs'}{'\n'}
38
34
  • {t('karma.about.how.contribute') || 'Contributing content'}{'\n'}
@@ -42,7 +38,7 @@ const KarmaAboutScreen: React.FC<BaseScreenProps> = ({ goBack, theme }) => {
42
38
  <Text style={[styles.section, { color: primaryColor }]}>
43
39
  {t('karma.about.why.title') || 'Why Karma?'}
44
40
  </Text>
45
- <Text style={[styles.paragraph, { color: themeStyles.textColor }]}>
41
+ <Text style={[styles.paragraph, { color: bloomTheme.colors.text }]}>
46
42
  {t('karma.about.why.text') || 'Karma unlocks special features and recognition in the Oxy Ecosystem. The more you contribute, the more you earn!'}
47
43
  </Text>
48
44
  </ScrollView>