@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,9 +10,8 @@ import type { BaseScreenProps } from '../types/navigation';
10
10
  import { toast } from '../../lib/sonner';
11
11
  import { Header, Section, Avatar, SettingRow, LoadingState, EmptyState, GroupedSection } 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 { useSettingToggles } from '../hooks/useSettingToggle';
15
- import { normalizeTheme } from '../utils/themeUtils';
16
15
  import type { BlockedUser, RestrictedUser } from '@oxyhq/core';
17
16
  import { useOxy } from '../context/OxyContext';
18
17
 
@@ -196,8 +195,7 @@ const PrivacySettingsScreen: React.FC<BaseScreenProps> = ({
196
195
  return { userId, username, avatar };
197
196
  }, []);
198
197
 
199
- const normalizedTheme = normalizeTheme(theme);
200
- const themeStyles = useThemeStyles(normalizedTheme);
198
+ const bloomTheme = useTheme();
201
199
 
202
200
  // Convert blocked users to GroupedSection items
203
201
  const blockedUserItems = useMemo(() => {
@@ -220,16 +218,16 @@ const PrivacySettingsScreen: React.FC<BaseScreenProps> = ({
220
218
  customContent: (
221
219
  <TouchableOpacity
222
220
  onPress={() => handleUnblock(userId)}
223
- style={[styles.actionButton, { backgroundColor: themeStyles.secondaryBackgroundColor }]}
221
+ style={[styles.actionButton, { backgroundColor: bloomTheme.colors.backgroundSecondary }]}
224
222
  >
225
- <Text style={[styles.actionButtonText, { color: themeStyles.dangerColor }]}>
223
+ <Text style={[styles.actionButtonText, { color: bloomTheme.colors.error }]}>
226
224
  {t('privacySettings.unblock') || 'Unblock'}
227
225
  </Text>
228
226
  </TouchableOpacity>
229
227
  ),
230
228
  };
231
229
  });
232
- }, [blockedUsers, oxyServices, themeStyles, handleUnblock, t]);
230
+ }, [blockedUsers, oxyServices, bloomTheme, handleUnblock, t]);
233
231
 
234
232
  // Convert restricted users to GroupedSection items
235
233
  const restrictedUserItems = useMemo(() => {
@@ -253,33 +251,33 @@ const PrivacySettingsScreen: React.FC<BaseScreenProps> = ({
253
251
  customContent: (
254
252
  <TouchableOpacity
255
253
  onPress={() => handleUnrestrict(userId)}
256
- style={[styles.actionButton, { backgroundColor: themeStyles.secondaryBackgroundColor }]}
254
+ style={[styles.actionButton, { backgroundColor: bloomTheme.colors.backgroundSecondary }]}
257
255
  >
258
- <Text style={[styles.actionButtonText, { color: themeStyles.primaryColor }]}>
256
+ <Text style={[styles.actionButtonText, { color: bloomTheme.colors.primary }]}>
259
257
  {t('privacySettings.unrestrict') || 'Unrestrict'}
260
258
  </Text>
261
259
  </TouchableOpacity>
262
260
  ),
263
261
  };
264
262
  });
265
- }, [restrictedUsers, oxyServices, themeStyles, handleUnrestrict, t]);
263
+ }, [restrictedUsers, oxyServices, bloomTheme, handleUnrestrict, t]);
266
264
 
267
265
  if (isLoading) {
268
266
  return (
269
- <View style={[styles.container, { backgroundColor: themeStyles.backgroundColor }]}>
267
+ <View style={styles.container} className="bg-background">
270
268
  <Header
271
269
  title={t('privacySettings.title') || 'Privacy Settings'}
272
270
  onBack={goBack || onClose}
273
271
  variant="minimal"
274
272
  elevation="subtle"
275
273
  />
276
- <LoadingState color={themeStyles.textColor} />
274
+ <LoadingState color={bloomTheme.colors.text} />
277
275
  </View>
278
276
  );
279
277
  }
280
278
 
281
279
  return (
282
- <View style={[styles.container, { backgroundColor: themeStyles.backgroundColor }]}>
280
+ <View style={styles.container} className="bg-background">
283
281
  <Header
284
282
  title={t('privacySettings.title') || 'Privacy Settings'}
285
283
  onBack={goBack || onClose}
@@ -296,9 +294,9 @@ const PrivacySettingsScreen: React.FC<BaseScreenProps> = ({
296
294
  value={settings.isPrivateAccount}
297
295
  onValueChange={() => toggle('isPrivateAccount')}
298
296
  disabled={isSaving}
299
- textColor={themeStyles.textColor}
300
- mutedTextColor={themeStyles.mutedTextColor}
301
- borderColor={themeStyles.borderColor}
297
+ textColor={bloomTheme.colors.text}
298
+ mutedTextColor={bloomTheme.colors.textSecondary}
299
+ borderColor={bloomTheme.colors.border}
302
300
  />
303
301
  <SettingRow
304
302
  title={t('privacySettings.profileVisibility') || 'Profile Visibility'}
@@ -306,9 +304,9 @@ const PrivacySettingsScreen: React.FC<BaseScreenProps> = ({
306
304
  value={settings.profileVisibility}
307
305
  onValueChange={() => toggle('profileVisibility')}
308
306
  disabled={isSaving}
309
- textColor={themeStyles.textColor}
310
- mutedTextColor={themeStyles.mutedTextColor}
311
- borderColor={themeStyles.borderColor}
307
+ textColor={bloomTheme.colors.text}
308
+ mutedTextColor={bloomTheme.colors.textSecondary}
309
+ borderColor={bloomTheme.colors.border}
312
310
  />
313
311
  <SettingRow
314
312
  title={t('privacySettings.hideOnlineStatus') || 'Hide Online Status'}
@@ -316,9 +314,9 @@ const PrivacySettingsScreen: React.FC<BaseScreenProps> = ({
316
314
  value={settings.hideOnlineStatus}
317
315
  onValueChange={() => toggle('hideOnlineStatus')}
318
316
  disabled={isSaving}
319
- textColor={themeStyles.textColor}
320
- mutedTextColor={themeStyles.mutedTextColor}
321
- borderColor={themeStyles.borderColor}
317
+ textColor={bloomTheme.colors.text}
318
+ mutedTextColor={bloomTheme.colors.textSecondary}
319
+ borderColor={bloomTheme.colors.border}
322
320
  />
323
321
  <SettingRow
324
322
  title={t('privacySettings.hideLastSeen') || 'Hide Last Seen'}
@@ -326,9 +324,9 @@ const PrivacySettingsScreen: React.FC<BaseScreenProps> = ({
326
324
  value={settings.hideLastSeen}
327
325
  onValueChange={() => toggle('hideLastSeen')}
328
326
  disabled={isSaving}
329
- textColor={themeStyles.textColor}
330
- mutedTextColor={themeStyles.mutedTextColor}
331
- borderColor={themeStyles.borderColor}
327
+ textColor={bloomTheme.colors.text}
328
+ mutedTextColor={bloomTheme.colors.textSecondary}
329
+ borderColor={bloomTheme.colors.border}
332
330
  />
333
331
  </Section>
334
332
 
@@ -340,9 +338,9 @@ const PrivacySettingsScreen: React.FC<BaseScreenProps> = ({
340
338
  value={settings.allowTagging}
341
339
  onValueChange={() => toggle('allowTagging')}
342
340
  disabled={isSaving}
343
- textColor={themeStyles.textColor}
344
- mutedTextColor={themeStyles.mutedTextColor}
345
- borderColor={themeStyles.borderColor}
341
+ textColor={bloomTheme.colors.text}
342
+ mutedTextColor={bloomTheme.colors.textSecondary}
343
+ borderColor={bloomTheme.colors.border}
346
344
  />
347
345
  <SettingRow
348
346
  title={t('privacySettings.allowMentions') || 'Allow Mentions'}
@@ -350,9 +348,9 @@ const PrivacySettingsScreen: React.FC<BaseScreenProps> = ({
350
348
  value={settings.allowMentions}
351
349
  onValueChange={() => toggle('allowMentions')}
352
350
  disabled={isSaving}
353
- textColor={themeStyles.textColor}
354
- mutedTextColor={themeStyles.mutedTextColor}
355
- borderColor={themeStyles.borderColor}
351
+ textColor={bloomTheme.colors.text}
352
+ mutedTextColor={bloomTheme.colors.textSecondary}
353
+ borderColor={bloomTheme.colors.border}
356
354
  />
357
355
  <SettingRow
358
356
  title={t('privacySettings.allowDirectMessages') || 'Allow Direct Messages'}
@@ -360,9 +358,9 @@ const PrivacySettingsScreen: React.FC<BaseScreenProps> = ({
360
358
  value={settings.allowDirectMessages}
361
359
  onValueChange={() => toggle('allowDirectMessages')}
362
360
  disabled={isSaving}
363
- textColor={themeStyles.textColor}
364
- mutedTextColor={themeStyles.mutedTextColor}
365
- borderColor={themeStyles.borderColor}
361
+ textColor={bloomTheme.colors.text}
362
+ mutedTextColor={bloomTheme.colors.textSecondary}
363
+ borderColor={bloomTheme.colors.border}
366
364
  />
367
365
  <SettingRow
368
366
  title={t('privacySettings.hideReadReceipts') || 'Hide Read Receipts'}
@@ -370,9 +368,9 @@ const PrivacySettingsScreen: React.FC<BaseScreenProps> = ({
370
368
  value={settings.hideReadReceipts}
371
369
  onValueChange={() => toggle('hideReadReceipts')}
372
370
  disabled={isSaving}
373
- textColor={themeStyles.textColor}
374
- mutedTextColor={themeStyles.mutedTextColor}
375
- borderColor={themeStyles.borderColor}
371
+ textColor={bloomTheme.colors.text}
372
+ mutedTextColor={bloomTheme.colors.textSecondary}
373
+ borderColor={bloomTheme.colors.border}
376
374
  />
377
375
  </Section>
378
376
 
@@ -384,9 +382,9 @@ const PrivacySettingsScreen: React.FC<BaseScreenProps> = ({
384
382
  value={settings.showActivity}
385
383
  onValueChange={() => toggle('showActivity')}
386
384
  disabled={isSaving}
387
- textColor={themeStyles.textColor}
388
- mutedTextColor={themeStyles.mutedTextColor}
389
- borderColor={themeStyles.borderColor}
385
+ textColor={bloomTheme.colors.text}
386
+ mutedTextColor={bloomTheme.colors.textSecondary}
387
+ borderColor={bloomTheme.colors.border}
390
388
  />
391
389
  <SettingRow
392
390
  title={t('privacySettings.dataSharing') || 'Data Sharing'}
@@ -394,9 +392,9 @@ const PrivacySettingsScreen: React.FC<BaseScreenProps> = ({
394
392
  value={settings.dataSharing}
395
393
  onValueChange={() => toggle('dataSharing')}
396
394
  disabled={isSaving}
397
- textColor={themeStyles.textColor}
398
- mutedTextColor={themeStyles.mutedTextColor}
399
- borderColor={themeStyles.borderColor}
395
+ textColor={bloomTheme.colors.text}
396
+ mutedTextColor={bloomTheme.colors.textSecondary}
397
+ borderColor={bloomTheme.colors.border}
400
398
  />
401
399
  <SettingRow
402
400
  title={t('privacySettings.locationSharing') || 'Location Sharing'}
@@ -404,9 +402,9 @@ const PrivacySettingsScreen: React.FC<BaseScreenProps> = ({
404
402
  value={settings.locationSharing}
405
403
  onValueChange={() => toggle('locationSharing')}
406
404
  disabled={isSaving}
407
- textColor={themeStyles.textColor}
408
- mutedTextColor={themeStyles.mutedTextColor}
409
- borderColor={themeStyles.borderColor}
405
+ textColor={bloomTheme.colors.text}
406
+ mutedTextColor={bloomTheme.colors.textSecondary}
407
+ borderColor={bloomTheme.colors.border}
410
408
  />
411
409
  <SettingRow
412
410
  title={t('privacySettings.analyticsSharing') || 'Analytics Sharing'}
@@ -414,9 +412,9 @@ const PrivacySettingsScreen: React.FC<BaseScreenProps> = ({
414
412
  value={settings.analyticsSharing}
415
413
  onValueChange={() => toggle('analyticsSharing')}
416
414
  disabled={isSaving}
417
- textColor={themeStyles.textColor}
418
- mutedTextColor={themeStyles.mutedTextColor}
419
- borderColor={themeStyles.borderColor}
415
+ textColor={bloomTheme.colors.text}
416
+ mutedTextColor={bloomTheme.colors.textSecondary}
417
+ borderColor={bloomTheme.colors.border}
420
418
  />
421
419
  </Section>
422
420
 
@@ -428,9 +426,9 @@ const PrivacySettingsScreen: React.FC<BaseScreenProps> = ({
428
426
  value={settings.sensitiveContent}
429
427
  onValueChange={() => toggle('sensitiveContent')}
430
428
  disabled={isSaving}
431
- textColor={themeStyles.textColor}
432
- mutedTextColor={themeStyles.mutedTextColor}
433
- borderColor={themeStyles.borderColor}
429
+ textColor={bloomTheme.colors.text}
430
+ mutedTextColor={bloomTheme.colors.textSecondary}
431
+ borderColor={bloomTheme.colors.border}
434
432
  />
435
433
  <SettingRow
436
434
  title={t('privacySettings.autoFilter') || 'Auto Filter'}
@@ -438,9 +436,9 @@ const PrivacySettingsScreen: React.FC<BaseScreenProps> = ({
438
436
  value={settings.autoFilter}
439
437
  onValueChange={() => toggle('autoFilter')}
440
438
  disabled={isSaving}
441
- textColor={themeStyles.textColor}
442
- mutedTextColor={themeStyles.mutedTextColor}
443
- borderColor={themeStyles.borderColor}
439
+ textColor={bloomTheme.colors.text}
440
+ mutedTextColor={bloomTheme.colors.textSecondary}
441
+ borderColor={bloomTheme.colors.border}
444
442
  />
445
443
  <SettingRow
446
444
  title={t('privacySettings.muteKeywords') || 'Mute Keywords'}
@@ -448,9 +446,9 @@ const PrivacySettingsScreen: React.FC<BaseScreenProps> = ({
448
446
  value={settings.muteKeywords}
449
447
  onValueChange={() => toggle('muteKeywords')}
450
448
  disabled={isSaving}
451
- textColor={themeStyles.textColor}
452
- mutedTextColor={themeStyles.mutedTextColor}
453
- borderColor={themeStyles.borderColor}
449
+ textColor={bloomTheme.colors.text}
450
+ mutedTextColor={bloomTheme.colors.textSecondary}
451
+ borderColor={bloomTheme.colors.border}
454
452
  />
455
453
  <SettingRow
456
454
  title={t('privacySettings.blockScreenshots') || 'Block Screenshots'}
@@ -458,20 +456,20 @@ const PrivacySettingsScreen: React.FC<BaseScreenProps> = ({
458
456
  value={settings.blockScreenshots}
459
457
  onValueChange={() => toggle('blockScreenshots')}
460
458
  disabled={isSaving}
461
- textColor={themeStyles.textColor}
462
- mutedTextColor={themeStyles.mutedTextColor}
463
- borderColor={themeStyles.borderColor}
459
+ textColor={bloomTheme.colors.text}
460
+ mutedTextColor={bloomTheme.colors.textSecondary}
461
+ borderColor={bloomTheme.colors.border}
464
462
  />
465
463
  </Section>
466
464
 
467
465
  {/* Blocked Users */}
468
466
  <Section title={t('privacySettings.sections.blockedUsers') || 'BLOCKED USERS'}>
469
467
  {isLoadingUsers ? (
470
- <LoadingState color={themeStyles.textColor} size="small" />
468
+ <LoadingState color={bloomTheme.colors.text} size="small" />
471
469
  ) : blockedUsers.length === 0 ? (
472
470
  <EmptyState
473
471
  message={t('privacySettings.noBlockedUsers') || 'No blocked users'}
474
- textColor={themeStyles.mutedTextColor}
472
+ textColor={bloomTheme.colors.textSecondary}
475
473
  />
476
474
  ) : (
477
475
  <GroupedSection items={blockedUserItems} />
@@ -481,11 +479,11 @@ const PrivacySettingsScreen: React.FC<BaseScreenProps> = ({
481
479
  {/* Restricted Users */}
482
480
  <Section title={t('privacySettings.sections.restrictedUsers') || 'RESTRICTED USERS'}>
483
481
  {isLoadingUsers ? (
484
- <LoadingState color={themeStyles.textColor} size="small" />
482
+ <LoadingState color={bloomTheme.colors.text} size="small" />
485
483
  ) : restrictedUsers.length === 0 ? (
486
484
  <EmptyState
487
485
  message={t('privacySettings.noRestrictedUsers') || 'No restricted users'}
488
- textColor={themeStyles.mutedTextColor}
486
+ textColor={bloomTheme.colors.textSecondary}
489
487
  />
490
488
  ) : (
491
489
  <GroupedSection items={restrictedUserItems} />
@@ -2,7 +2,7 @@ import type React from 'react';
2
2
  import { useEffect, useState } from 'react';
3
3
  import { View, Text, StyleSheet, ActivityIndicator, ScrollView, TouchableOpacity, Image } from 'react-native';
4
4
  import type { BaseScreenProps } from '../types/navigation';
5
- import { useThemeColors, type ThemeColors } from '../styles';
5
+ import { useTheme } from '@oxyhq/bloom/theme';
6
6
  import Avatar from '../components/Avatar';
7
7
  import { FollowButton } from '../components';
8
8
  import { useFollow } from '../hooks/useFollow';
@@ -52,8 +52,8 @@ const ProfileScreen: React.FC<ProfileScreenProps> = ({ userId, username, theme,
52
52
  isLoadingCounts,
53
53
  } = useFollow(userId);
54
54
 
55
- const colors = useThemeColors((theme as 'light' | 'dark') ?? 'light');
56
- const styles = createStyles(colors);
55
+ const bloomTheme = useTheme();
56
+ const styles = createStyles();
57
57
  const { t } = useI18n();
58
58
 
59
59
  // Check if current user is viewing their own profile
@@ -176,27 +176,27 @@ const ProfileScreen: React.FC<ProfileScreenProps> = ({ userId, username, theme,
176
176
 
177
177
  if (isLoading) {
178
178
  return (
179
- <View style={[styles.container, { backgroundColor: colors.background, justifyContent: 'center' }]}>
180
- <ActivityIndicator size="large" color={colors.primary} />
179
+ <View style={[styles.container, { justifyContent: 'center' }]} className="bg-background">
180
+ <ActivityIndicator size="large" color={bloomTheme.colors.primary} />
181
181
  </View>
182
182
  );
183
183
  }
184
184
 
185
185
  if (error) {
186
186
  return (
187
- <View style={[styles.container, { backgroundColor: colors.background }]}>
187
+ <View style={styles.container} className="bg-background">
188
188
  <View style={styles.errorHeader}>
189
189
  {goBack && (
190
190
  <TouchableOpacity onPress={goBack} style={styles.backButton}>
191
- <Ionicons name="arrow-back" size={24} color={colors.text} />
191
+ <Ionicons name="arrow-back" size={24} color={bloomTheme.colors.text} />
192
192
  </TouchableOpacity>
193
193
  )}
194
- <Text style={[styles.errorTitle, { color: colors.text }]}>Profile Error</Text>
194
+ <Text style={styles.errorTitle} className="text-foreground">Profile Error</Text>
195
195
  </View>
196
196
  <View style={styles.errorContent}>
197
- <Ionicons name="alert-circle" size={48} color={colors.error} style={styles.errorIcon} />
198
- <Text style={[styles.errorText, { color: colors.error }]}>{error}</Text>
199
- <Text style={[styles.errorSubtext, { color: colors.secondaryText }]}>
197
+ <Ionicons name="alert-circle" size={48} color={bloomTheme.colors.error} style={styles.errorIcon} />
198
+ <Text style={styles.errorText} className="text-destructive">{error}</Text>
199
+ <Text style={styles.errorSubtext} className="text-muted-foreground">
200
200
  This could happen if the user doesn't exist or the profile service is unavailable.
201
201
  </Text>
202
202
  </View>
@@ -205,15 +205,15 @@ const ProfileScreen: React.FC<ProfileScreenProps> = ({ userId, username, theme,
205
205
  }
206
206
 
207
207
  return (
208
- <View style={[styles.container, { backgroundColor: colors.background }]}>
208
+ <View style={styles.container} className="bg-background">
209
209
  <ScrollView style={{ flex: 1 }} contentContainerStyle={styles.scrollContainer}>
210
210
  {/* Banner Image */}
211
- <View style={styles.bannerContainer}>
212
- <View style={styles.bannerImage} />
211
+ <View style={styles.bannerContainer} className="bg-primary/20">
212
+ <View style={styles.bannerImage} className="bg-primary" />
213
213
  </View>
214
214
  {/* Avatar overlapping banner */}
215
215
  <View style={styles.avatarRow}>
216
- <View style={styles.avatarWrapper}>
216
+ <View style={styles.avatarWrapper} className="border-background bg-background">
217
217
  <Avatar
218
218
  uri={profile?.avatar ? oxyServices.getFileDownloadUrl(profile.avatar, 'thumb') : undefined}
219
219
  name={profile?.username || username}
@@ -226,9 +226,10 @@ const ProfileScreen: React.FC<ProfileScreenProps> = ({ userId, username, theme,
226
226
  {isOwnProfile ? (
227
227
  <TouchableOpacity
228
228
  style={styles.actionButton}
229
+ className="bg-background border-primary"
229
230
  onPress={() => navigate?.('AccountSettings')}
230
231
  >
231
- <Text style={styles.actionButtonText}>{t('editProfile.title') || 'Edit Profile'}</Text>
232
+ <Text style={styles.actionButtonText} className="text-primary">{t('editProfile.title') || 'Edit Profile'}</Text>
232
233
  </TouchableOpacity>
233
234
  ) : (
234
235
  <FollowButton
@@ -246,59 +247,59 @@ const ProfileScreen: React.FC<ProfileScreenProps> = ({ userId, username, theme,
246
247
  </View>
247
248
  {/* Profile Info */}
248
249
  <View style={styles.header}>
249
- <Text style={[styles.displayName, { color: colors.text }]}>
250
+ <Text style={styles.displayName} className="text-foreground">
250
251
  {(profile && 'displayName' in profile && typeof profile.displayName === 'string' ? profile.displayName : null) || profile?.username || username || profile?.id || ''}
251
252
  </Text>
252
253
  {profile?.username && (
253
- <Text style={[styles.subText, { color: colors.secondaryText }]}>@{profile.username}</Text>
254
+ <Text style={styles.subText} className="text-muted-foreground">@{profile.username}</Text>
254
255
  )}
255
256
  {/* Bio placeholder */}
256
- <Text style={[styles.bio, { color: colors.text }]}>{profile?.bio || (t('profile.noBio') || 'This user has no bio yet.')}</Text>
257
+ <Text style={styles.bio} className="text-foreground">{profile?.bio || (t('profile.noBio') || 'This user has no bio yet.')}</Text>
257
258
 
258
259
  {/* Info Grid Row */}
259
260
  <View style={styles.infoGrid}>
260
261
  {profile?.createdAt && (
261
262
  <View style={styles.infoGridItem}>
262
- <Ionicons name="calendar-outline" size={16} color={colors.secondaryText} style={{ marginRight: 6 }} />
263
- <Text style={[styles.infoGridText, { color: colors.secondaryText }]}>
263
+ <Ionicons name="calendar-outline" size={16} color={bloomTheme.colors.textSecondary} style={{ marginRight: 6 }} />
264
+ <Text style={styles.infoGridText} className="text-muted-foreground">
264
265
  {t('profile.joinedOn', { date: new Date(profile.createdAt).toLocaleDateString() }) || `Joined ${new Date(profile.createdAt).toLocaleDateString()}`}
265
266
  </Text>
266
267
  </View>
267
268
  )}
268
269
  {profile?.location && (
269
270
  <View style={styles.infoGridItem}>
270
- <Ionicons name="location-outline" size={16} color={colors.secondaryText} style={{ marginRight: 6 }} />
271
- <Text style={[styles.infoGridText, { color: colors.secondaryText }]} numberOfLines={1}>{profile.location}</Text>
271
+ <Ionicons name="location-outline" size={16} color={bloomTheme.colors.textSecondary} style={{ marginRight: 6 }} />
272
+ <Text style={styles.infoGridText} className="text-muted-foreground" numberOfLines={1}>{profile.location}</Text>
272
273
  </View>
273
274
  )}
274
275
  {profile?.website && (
275
276
  <View style={styles.infoGridItem}>
276
- <Ionicons name="globe-outline" size={16} color={colors.secondaryText} style={{ marginRight: 6 }} />
277
- <Text style={[styles.infoGridText, { color: colors.secondaryText }]} numberOfLines={1}>{profile.website}</Text>
277
+ <Ionicons name="globe-outline" size={16} color={bloomTheme.colors.textSecondary} style={{ marginRight: 6 }} />
278
+ <Text style={styles.infoGridText} className="text-muted-foreground" numberOfLines={1}>{profile.website}</Text>
278
279
  </View>
279
280
  )}
280
281
  {profile && 'company' in profile && typeof profile.company === 'string' && profile.company && (
281
282
  <View style={styles.infoGridItem}>
282
- <Ionicons name="business-outline" size={16} color={colors.secondaryText} style={{ marginRight: 6 }} />
283
- <Text style={[styles.infoGridText, { color: colors.secondaryText }]} numberOfLines={1}>{profile.company}</Text>
283
+ <Ionicons name="business-outline" size={16} color={bloomTheme.colors.textSecondary} style={{ marginRight: 6 }} />
284
+ <Text style={styles.infoGridText} className="text-muted-foreground" numberOfLines={1}>{profile.company}</Text>
284
285
  </View>
285
286
  )}
286
287
  {profile && 'jobTitle' in profile && typeof profile.jobTitle === 'string' && profile.jobTitle && (
287
288
  <View style={styles.infoGridItem}>
288
- <Ionicons name="briefcase-outline" size={16} color={colors.secondaryText} style={{ marginRight: 6 }} />
289
- <Text style={[styles.infoGridText, { color: colors.secondaryText }]} numberOfLines={1}>{profile.jobTitle}</Text>
289
+ <Ionicons name="briefcase-outline" size={16} color={bloomTheme.colors.textSecondary} style={{ marginRight: 6 }} />
290
+ <Text style={styles.infoGridText} className="text-muted-foreground" numberOfLines={1}>{profile.jobTitle}</Text>
290
291
  </View>
291
292
  )}
292
293
  {profile && 'education' in profile && typeof profile.education === 'string' && profile.education && (
293
294
  <View style={styles.infoGridItem}>
294
- <Ionicons name="school-outline" size={16} color={colors.secondaryText} style={{ marginRight: 6 }} />
295
- <Text style={[styles.infoGridText, { color: colors.secondaryText }]} numberOfLines={1}>{profile.education}</Text>
295
+ <Ionicons name="school-outline" size={16} color={bloomTheme.colors.textSecondary} style={{ marginRight: 6 }} />
296
+ <Text style={styles.infoGridText} className="text-muted-foreground" numberOfLines={1}>{profile.education}</Text>
296
297
  </View>
297
298
  )}
298
299
  {profile && 'birthday' in profile && typeof profile.birthday === 'string' && profile.birthday && (
299
300
  <View style={styles.infoGridItem}>
300
- <Ionicons name="gift-outline" size={16} color={colors.secondaryText} style={{ marginRight: 6 }} />
301
- <Text style={[styles.infoGridText, { color: colors.secondaryText }]}>
301
+ <Ionicons name="gift-outline" size={16} color={bloomTheme.colors.textSecondary} style={{ marginRight: 6 }} />
302
+ <Text style={styles.infoGridText} className="text-muted-foreground">
302
303
  {t('profile.bornOn', { date: new Date(profile.birthday).toLocaleDateString() }) || `Born ${new Date(profile.birthday).toLocaleDateString()}`}
303
304
  </Text>
304
305
  </View>
@@ -308,12 +309,12 @@ const ProfileScreen: React.FC<ProfileScreenProps> = ({ userId, username, theme,
308
309
  style={styles.infoGridItem}
309
310
  onPress={() => navigate?.('UserLinks', { userId, links })}
310
311
  >
311
- <Ionicons name="link-outline" size={16} color={colors.secondaryText} style={{ marginRight: 6 }} />
312
- <Text style={[styles.infoGridText, { color: colors.secondaryText }]} numberOfLines={1}>
312
+ <Ionicons name="link-outline" size={16} color={bloomTheme.colors.textSecondary} style={{ marginRight: 6 }} />
313
+ <Text style={styles.infoGridText} className="text-muted-foreground" numberOfLines={1}>
313
314
  {links[0].url}
314
315
  </Text>
315
316
  {links.length > 1 && (
316
- <Text style={[styles.linksMore, { color: colors.secondaryText }]}>
317
+ <Text style={styles.linksMore} className="text-muted-foreground">
317
318
  {t('profile.more', { count: links.length - 1 }) || `+ ${links.length - 1} more`}
318
319
  </Text>
319
320
  )}
@@ -321,28 +322,28 @@ const ProfileScreen: React.FC<ProfileScreenProps> = ({ userId, username, theme,
321
322
  )}
322
323
  </View>
323
324
  {/* Divider */}
324
- <View style={styles.divider} />
325
+ <View style={styles.divider} className="bg-border" />
325
326
  {/* All Stats in one row */}
326
327
  <View style={styles.statsRow}>
327
328
  <View style={styles.statItem}>
328
- <Text style={[styles.karmaAmount, { color: colors.primary }]}>{karmaTotal !== null && karmaTotal !== undefined ? karmaTotal : '--'}</Text>
329
- <Text style={[styles.karmaLabel, { color: colors.secondaryText }]}>{t('profile.karma') || 'Karma'}</Text>
329
+ <Text style={styles.karmaAmount} className="text-primary">{karmaTotal !== null && karmaTotal !== undefined ? karmaTotal : '--'}</Text>
330
+ <Text style={styles.karmaLabel} className="text-muted-foreground">{t('profile.karma') || 'Karma'}</Text>
330
331
  </View>
331
332
  <View style={styles.statItem}>
332
333
  {isLoadingCounts ? (
333
- <ActivityIndicator size="small" color={colors.text} />
334
+ <ActivityIndicator size="small" color={bloomTheme.colors.text} />
334
335
  ) : (
335
- <Text style={[styles.karmaAmount, { color: colors.text }]}>{followerCount !== null ? followerCount : '--'}</Text>
336
+ <Text style={styles.karmaAmount} className="text-foreground">{followerCount !== null ? followerCount : '--'}</Text>
336
337
  )}
337
- <Text style={[styles.karmaLabel, { color: colors.secondaryText }]}>{t('profile.followers') || 'Followers'}</Text>
338
+ <Text style={styles.karmaLabel} className="text-muted-foreground">{t('profile.followers') || 'Followers'}</Text>
338
339
  </View>
339
340
  <View style={styles.statItem}>
340
341
  {isLoadingCounts ? (
341
- <ActivityIndicator size="small" color={colors.text} />
342
+ <ActivityIndicator size="small" color={bloomTheme.colors.text} />
342
343
  ) : (
343
- <Text style={[styles.karmaAmount, { color: colors.text }]}>{followingCount !== null ? followingCount : '--'}</Text>
344
+ <Text style={styles.karmaAmount} className="text-foreground">{followingCount !== null ? followingCount : '--'}</Text>
344
345
  )}
345
- <Text style={[styles.karmaLabel, { color: colors.secondaryText }]}>{t('profile.following') || 'Following'}</Text>
346
+ <Text style={styles.karmaLabel} className="text-muted-foreground">{t('profile.following') || 'Following'}</Text>
346
347
  </View>
347
348
  </View>
348
349
  </View>
@@ -351,37 +352,33 @@ const ProfileScreen: React.FC<ProfileScreenProps> = ({ userId, username, theme,
351
352
  );
352
353
  };
353
354
 
354
- const createStyles = (colors: ThemeColors) => StyleSheet.create({
355
+ const createStyles = () => StyleSheet.create({
355
356
  container: { flex: 1 },
356
357
  scrollContainer: { alignItems: 'stretch', paddingBottom: 40 },
357
- bannerContainer: { height: 160, backgroundColor: `${colors.primary}20`, position: 'relative', overflow: 'hidden' },
358
- bannerImage: { flex: 1, backgroundColor: colors.primary }, // Placeholder, replace with Image if available
358
+ bannerContainer: { height: 160, position: 'relative', overflow: 'hidden' },
359
+ bannerImage: { flex: 1 },
359
360
  avatarRow: { flexDirection: 'row', alignItems: 'flex-end', marginTop: -56, paddingHorizontal: 20, justifyContent: 'space-between', zIndex: 2 },
360
- avatarWrapper: { borderWidth: 5, borderColor: colors.background, borderRadius: 64, overflow: 'hidden', backgroundColor: colors.background },
361
+ avatarWrapper: { borderWidth: 5, borderRadius: 64, overflow: 'hidden' },
361
362
  actionButtonWrapper: { flex: 1, alignItems: 'flex-end', justifyContent: 'flex-end' },
362
363
  actionButton: {
363
- backgroundColor: colors.background,
364
364
  borderWidth: 1,
365
- borderColor: colors.primary,
366
365
  borderRadius: 24,
367
366
  paddingVertical: 7,
368
367
  paddingHorizontal: 22,
369
368
  marginBottom: 8,
370
369
  elevation: 2,
371
- shadowColor: colors.primary,
372
370
  shadowOffset: { width: 0, height: 1 },
373
371
  shadowOpacity: 0.08,
374
372
  shadowRadius: 2
375
373
  },
376
374
  actionButtonText: {
377
- color: colors.primary,
378
375
  fontWeight: 'bold',
379
376
  fontSize: 16
380
377
  },
381
378
  header: { alignItems: 'flex-start', width: '100%', paddingHorizontal: 20 },
382
379
  displayName: { fontSize: 24, fontWeight: 'bold', marginTop: 10, marginBottom: 2, letterSpacing: 0.1 },
383
- subText: { fontSize: 16, marginBottom: 2, color: colors.secondaryText },
384
- bio: { fontSize: 16, marginTop: 10, marginBottom: 10, color: colors.text, lineHeight: 22 },
380
+ subText: { fontSize: 16, marginBottom: 2 },
381
+ bio: { fontSize: 16, marginTop: 10, marginBottom: 10, lineHeight: 22 },
385
382
  infoGrid: {
386
383
  flexDirection: 'row',
387
384
  alignItems: 'center',
@@ -396,16 +393,15 @@ const createStyles = (colors: ThemeColors) => StyleSheet.create({
396
393
  },
397
394
  infoGridText: {
398
395
  fontSize: 15,
399
- color: colors.text
400
396
  },
401
- divider: { height: 1, backgroundColor: colors.border, width: '100%', marginVertical: 14 },
397
+ divider: { height: 1, width: '100%', marginVertical: 14 },
402
398
  linksMore: {
403
399
  fontSize: 15,
404
400
  marginLeft: 4
405
401
  },
406
402
  statsRow: { width: '100%', flex: 1, flexDirection: 'row', alignItems: 'center', marginTop: 6, marginBottom: 2, justifyContent: 'space-between' },
407
403
  statItem: { flex: 1, alignItems: 'center', minWidth: 50, marginBottom: 12 },
408
- karmaLabel: { fontSize: 14, marginBottom: 2, textAlign: 'center', color: colors.secondaryText },
404
+ karmaLabel: { fontSize: 14, marginBottom: 2, textAlign: 'center' },
409
405
  karmaAmount: { fontSize: 24, fontWeight: 'bold', textAlign: 'center', letterSpacing: 0.2 },
410
406
  // Error handling styles
411
407
  errorHeader: {