@oxy.so/services 3.1.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (344) hide show
  1. package/lib/commonjs/assets/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
  2. package/lib/commonjs/assets/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
  3. package/lib/commonjs/assets/assets/fonts/icons/manifest.json +5 -11
  4. package/lib/commonjs/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
  5. package/lib/commonjs/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
  6. package/lib/commonjs/assets/fonts/icons/manifest.json +5 -11
  7. package/lib/commonjs/ui/components/FollowButton.js +15 -28
  8. package/lib/commonjs/ui/components/FollowButton.js.map +1 -1
  9. package/lib/commonjs/ui/components/FollowTargetButton.js +10 -11
  10. package/lib/commonjs/ui/components/FollowTargetButton.js.map +1 -1
  11. package/lib/commonjs/ui/components/OxyAuthPrompt.js +3 -2
  12. package/lib/commonjs/ui/components/OxyAuthPrompt.js.map +1 -1
  13. package/lib/commonjs/ui/components/OxyConsentScreen.js +4 -2
  14. package/lib/commonjs/ui/components/OxyConsentScreen.js.map +1 -1
  15. package/lib/commonjs/ui/components/OxySignInButton.js +1 -1
  16. package/lib/commonjs/ui/components/OxySignInButton.js.map +1 -1
  17. package/lib/commonjs/ui/components/OxySignInRequestSurface.js +2 -1
  18. package/lib/commonjs/ui/components/OxySignInRequestSurface.js.map +1 -1
  19. package/lib/commonjs/ui/components/ProfileButton.js +67 -267
  20. package/lib/commonjs/ui/components/ProfileButton.js.map +1 -1
  21. package/lib/commonjs/ui/components/ProfileSummaryCard.js +2 -2
  22. package/lib/commonjs/ui/components/ProfileSummaryCard.js.map +1 -1
  23. package/lib/commonjs/ui/components/SurfaceHeaderAction.js +9 -49
  24. package/lib/commonjs/ui/components/SurfaceHeaderAction.js.map +1 -1
  25. package/lib/commonjs/ui/components/SurfaceScreen.js +3 -2
  26. package/lib/commonjs/ui/components/SurfaceScreen.js.map +1 -1
  27. package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js +2 -1
  28. package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js.map +1 -1
  29. package/lib/commonjs/ui/components/authChooser/SignInEntryView.js +2 -1
  30. package/lib/commonjs/ui/components/authChooser/SignInEntryView.js.map +1 -1
  31. package/lib/commonjs/ui/components/authChooser/SignUpView.js +4 -2
  32. package/lib/commonjs/ui/components/authChooser/SignUpView.js.map +1 -1
  33. package/lib/commonjs/ui/components/authChooser/requestSurfaces.js +2 -1
  34. package/lib/commonjs/ui/components/authChooser/requestSurfaces.js.map +1 -1
  35. package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js +20 -14
  36. package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js.map +1 -1
  37. package/lib/commonjs/ui/components/fileManagement/FileViewer.js +48 -85
  38. package/lib/commonjs/ui/components/fileManagement/FileViewer.js.map +1 -1
  39. package/lib/commonjs/ui/components/fileManagement/UploadPreview.js +35 -31
  40. package/lib/commonjs/ui/components/fileManagement/UploadPreview.js.map +1 -1
  41. package/lib/commonjs/ui/components/modals/DeleteAccountModal.js +9 -6
  42. package/lib/commonjs/ui/components/modals/DeleteAccountModal.js.map +1 -1
  43. package/lib/commonjs/ui/components/payment/PaymentDetailsStep.js +22 -19
  44. package/lib/commonjs/ui/components/payment/PaymentDetailsStep.js.map +1 -1
  45. package/lib/commonjs/ui/components/payment/PaymentMethodStep.js +6 -3
  46. package/lib/commonjs/ui/components/payment/PaymentMethodStep.js.map +1 -1
  47. package/lib/commonjs/ui/components/payment/PaymentReviewStep.js +6 -3
  48. package/lib/commonjs/ui/components/payment/PaymentReviewStep.js.map +1 -1
  49. package/lib/commonjs/ui/components/payment/PaymentSuccessStep.js +7 -5
  50. package/lib/commonjs/ui/components/payment/PaymentSuccessStep.js.map +1 -1
  51. package/lib/commonjs/ui/components/payment/PaymentSummaryStep.js +20 -17
  52. package/lib/commonjs/ui/components/payment/PaymentSummaryStep.js.map +1 -1
  53. package/lib/commonjs/ui/components/photogrid/JustifiedPhotoGrid.js +2 -1
  54. package/lib/commonjs/ui/components/photogrid/JustifiedPhotoGrid.js.map +1 -1
  55. package/lib/commonjs/ui/components/surfaces/ActionSheetSurface.js +5 -3
  56. package/lib/commonjs/ui/components/surfaces/ActionSheetSurface.js.map +1 -1
  57. package/lib/commonjs/ui/icons/subsetGlyphMaps.js +0 -6
  58. package/lib/commonjs/ui/icons/subsetGlyphMaps.js.map +1 -1
  59. package/lib/commonjs/ui/screens/AccountMembersScreen.js +36 -60
  60. package/lib/commonjs/ui/screens/AccountMembersScreen.js.map +1 -1
  61. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +2 -1
  62. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  63. package/lib/commonjs/ui/screens/AccountVerificationScreen.js +2 -1
  64. package/lib/commonjs/ui/screens/AccountVerificationScreen.js.map +1 -1
  65. package/lib/commonjs/ui/screens/AvatarCropScreen.js +7 -6
  66. package/lib/commonjs/ui/screens/AvatarCropScreen.js.map +1 -1
  67. package/lib/commonjs/ui/screens/CreateAccountScreen.js +2 -1
  68. package/lib/commonjs/ui/screens/CreateAccountScreen.js.map +1 -1
  69. package/lib/commonjs/ui/screens/FeedbackScreen.js +18 -9
  70. package/lib/commonjs/ui/screens/FeedbackScreen.js.map +1 -1
  71. package/lib/commonjs/ui/screens/FileManagementScreen.js +99 -200
  72. package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
  73. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js +8 -9
  74. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js.map +1 -1
  75. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js +2 -1
  76. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js.map +1 -1
  77. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +20 -10
  78. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  79. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +4 -2
  80. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
  81. package/lib/commonjs/ui/screens/ProfileScreen.js +2 -1
  82. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
  83. package/lib/commonjs/ui/screens/UserListScreen.js +31 -33
  84. package/lib/commonjs/ui/screens/UserListScreen.js.map +1 -1
  85. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +22 -11
  86. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  87. package/lib/commonjs/ui/screens/fileManagement/FileLibraryError.js +7 -18
  88. package/lib/commonjs/ui/screens/fileManagement/FileLibraryError.js.map +1 -1
  89. package/lib/commonjs/ui/screens/fileManagement/FileListSection.js +7 -16
  90. package/lib/commonjs/ui/screens/fileManagement/FileListSection.js.map +1 -1
  91. package/lib/commonjs/ui/screens/fileManagement/PhotoPickerSection.js +6 -6
  92. package/lib/commonjs/ui/screens/fileManagement/PhotoPickerSection.js.map +1 -1
  93. package/lib/commonjs/ui/screens/fileManagement/UploadBar.js +23 -66
  94. package/lib/commonjs/ui/screens/fileManagement/UploadBar.js.map +1 -1
  95. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js +2 -1
  96. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
  97. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js +3 -2
  98. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js.map +1 -1
  99. package/lib/module/assets/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
  100. package/lib/module/assets/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
  101. package/lib/module/assets/assets/fonts/icons/manifest.json +5 -11
  102. package/lib/module/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
  103. package/lib/module/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
  104. package/lib/module/assets/fonts/icons/manifest.json +5 -11
  105. package/lib/module/ui/components/FollowButton.js +15 -28
  106. package/lib/module/ui/components/FollowButton.js.map +1 -1
  107. package/lib/module/ui/components/FollowTargetButton.js +10 -11
  108. package/lib/module/ui/components/FollowTargetButton.js.map +1 -1
  109. package/lib/module/ui/components/OxyAuthPrompt.js +2 -1
  110. package/lib/module/ui/components/OxyAuthPrompt.js.map +1 -1
  111. package/lib/module/ui/components/OxyConsentScreen.js +4 -2
  112. package/lib/module/ui/components/OxyConsentScreen.js.map +1 -1
  113. package/lib/module/ui/components/OxySignInButton.js +1 -1
  114. package/lib/module/ui/components/OxySignInButton.js.map +1 -1
  115. package/lib/module/ui/components/OxySignInRequestSurface.js +2 -1
  116. package/lib/module/ui/components/OxySignInRequestSurface.js.map +1 -1
  117. package/lib/module/ui/components/ProfileButton.js +70 -269
  118. package/lib/module/ui/components/ProfileButton.js.map +1 -1
  119. package/lib/module/ui/components/ProfileSummaryCard.js +2 -2
  120. package/lib/module/ui/components/ProfileSummaryCard.js.map +1 -1
  121. package/lib/module/ui/components/SurfaceHeaderAction.js +8 -48
  122. package/lib/module/ui/components/SurfaceHeaderAction.js.map +1 -1
  123. package/lib/module/ui/components/SurfaceScreen.js +2 -1
  124. package/lib/module/ui/components/SurfaceScreen.js.map +1 -1
  125. package/lib/module/ui/components/authChooser/AccountsMenuView.js +2 -1
  126. package/lib/module/ui/components/authChooser/AccountsMenuView.js.map +1 -1
  127. package/lib/module/ui/components/authChooser/SignInEntryView.js +2 -1
  128. package/lib/module/ui/components/authChooser/SignInEntryView.js.map +1 -1
  129. package/lib/module/ui/components/authChooser/SignUpView.js +4 -2
  130. package/lib/module/ui/components/authChooser/SignUpView.js.map +1 -1
  131. package/lib/module/ui/components/authChooser/requestSurfaces.js +2 -1
  132. package/lib/module/ui/components/authChooser/requestSurfaces.js.map +1 -1
  133. package/lib/module/ui/components/fileManagement/FileDetailsModal.js +12 -6
  134. package/lib/module/ui/components/fileManagement/FileDetailsModal.js.map +1 -1
  135. package/lib/module/ui/components/fileManagement/FileViewer.js +38 -75
  136. package/lib/module/ui/components/fileManagement/FileViewer.js.map +1 -1
  137. package/lib/module/ui/components/fileManagement/UploadPreview.js +31 -27
  138. package/lib/module/ui/components/fileManagement/UploadPreview.js.map +1 -1
  139. package/lib/module/ui/components/modals/DeleteAccountModal.js +6 -3
  140. package/lib/module/ui/components/modals/DeleteAccountModal.js.map +1 -1
  141. package/lib/module/ui/components/payment/PaymentDetailsStep.js +6 -3
  142. package/lib/module/ui/components/payment/PaymentDetailsStep.js.map +1 -1
  143. package/lib/module/ui/components/payment/PaymentMethodStep.js +6 -3
  144. package/lib/module/ui/components/payment/PaymentMethodStep.js.map +1 -1
  145. package/lib/module/ui/components/payment/PaymentReviewStep.js +6 -3
  146. package/lib/module/ui/components/payment/PaymentReviewStep.js.map +1 -1
  147. package/lib/module/ui/components/payment/PaymentSuccessStep.js +4 -2
  148. package/lib/module/ui/components/payment/PaymentSuccessStep.js.map +1 -1
  149. package/lib/module/ui/components/payment/PaymentSummaryStep.js +6 -3
  150. package/lib/module/ui/components/payment/PaymentSummaryStep.js.map +1 -1
  151. package/lib/module/ui/components/photogrid/JustifiedPhotoGrid.js +2 -1
  152. package/lib/module/ui/components/photogrid/JustifiedPhotoGrid.js.map +1 -1
  153. package/lib/module/ui/components/surfaces/ActionSheetSurface.js +4 -2
  154. package/lib/module/ui/components/surfaces/ActionSheetSurface.js.map +1 -1
  155. package/lib/module/ui/icons/subsetGlyphMaps.js +0 -6
  156. package/lib/module/ui/icons/subsetGlyphMaps.js.map +1 -1
  157. package/lib/module/ui/screens/AccountMembersScreen.js +37 -61
  158. package/lib/module/ui/screens/AccountMembersScreen.js.map +1 -1
  159. package/lib/module/ui/screens/AccountSettingsScreen.js +2 -1
  160. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  161. package/lib/module/ui/screens/AccountVerificationScreen.js +2 -1
  162. package/lib/module/ui/screens/AccountVerificationScreen.js.map +1 -1
  163. package/lib/module/ui/screens/AvatarCropScreen.js +2 -1
  164. package/lib/module/ui/screens/AvatarCropScreen.js.map +1 -1
  165. package/lib/module/ui/screens/CreateAccountScreen.js +2 -1
  166. package/lib/module/ui/screens/CreateAccountScreen.js.map +1 -1
  167. package/lib/module/ui/screens/FeedbackScreen.js +18 -9
  168. package/lib/module/ui/screens/FeedbackScreen.js.map +1 -1
  169. package/lib/module/ui/screens/FileManagementScreen.js +91 -192
  170. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
  171. package/lib/module/ui/screens/LanguageSelectorScreen.js +9 -10
  172. package/lib/module/ui/screens/LanguageSelectorScreen.js.map +1 -1
  173. package/lib/module/ui/screens/PaymentGatewayScreen.js +2 -1
  174. package/lib/module/ui/screens/PaymentGatewayScreen.js.map +1 -1
  175. package/lib/module/ui/screens/PremiumSubscriptionScreen.js +20 -10
  176. package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  177. package/lib/module/ui/screens/PrivacySettingsScreen.js +4 -2
  178. package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
  179. package/lib/module/ui/screens/ProfileScreen.js +2 -1
  180. package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
  181. package/lib/module/ui/screens/UserListScreen.js +32 -34
  182. package/lib/module/ui/screens/UserListScreen.js.map +1 -1
  183. package/lib/module/ui/screens/WelcomeNewUserScreen.js +22 -11
  184. package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  185. package/lib/module/ui/screens/fileManagement/FileLibraryError.js +6 -17
  186. package/lib/module/ui/screens/fileManagement/FileLibraryError.js.map +1 -1
  187. package/lib/module/ui/screens/fileManagement/FileListSection.js +5 -14
  188. package/lib/module/ui/screens/fileManagement/FileListSection.js.map +1 -1
  189. package/lib/module/ui/screens/fileManagement/PhotoPickerSection.js +3 -3
  190. package/lib/module/ui/screens/fileManagement/PhotoPickerSection.js.map +1 -1
  191. package/lib/module/ui/screens/fileManagement/UploadBar.js +24 -66
  192. package/lib/module/ui/screens/fileManagement/UploadBar.js.map +1 -1
  193. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js +2 -1
  194. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
  195. package/lib/module/ui/screens/trust/TrustRulesScreen.js +2 -1
  196. package/lib/module/ui/screens/trust/TrustRulesScreen.js.map +1 -1
  197. package/lib/typescript/commonjs/ui/components/FollowButton.d.ts.map +1 -1
  198. package/lib/typescript/commonjs/ui/components/FollowTargetButton.d.ts.map +1 -1
  199. package/lib/typescript/commonjs/ui/components/OxyAuthPrompt.d.ts.map +1 -1
  200. package/lib/typescript/commonjs/ui/components/OxySignInButton.d.ts +1 -1
  201. package/lib/typescript/commonjs/ui/components/OxySignInButton.d.ts.map +1 -1
  202. package/lib/typescript/commonjs/ui/components/ProfileButton.d.ts +1 -20
  203. package/lib/typescript/commonjs/ui/components/ProfileButton.d.ts.map +1 -1
  204. package/lib/typescript/commonjs/ui/components/ProfileSummaryCard.d.ts.map +1 -1
  205. package/lib/typescript/commonjs/ui/components/SurfaceHeaderAction.d.ts +1 -5
  206. package/lib/typescript/commonjs/ui/components/SurfaceHeaderAction.d.ts.map +1 -1
  207. package/lib/typescript/commonjs/ui/components/SurfaceScreen.d.ts.map +1 -1
  208. package/lib/typescript/commonjs/ui/components/fileManagement/FileDetailsModal.d.ts.map +1 -1
  209. package/lib/typescript/commonjs/ui/components/fileManagement/FileViewer.d.ts.map +1 -1
  210. package/lib/typescript/commonjs/ui/components/fileManagement/UploadPreview.d.ts.map +1 -1
  211. package/lib/typescript/commonjs/ui/components/modals/DeleteAccountModal.d.ts.map +1 -1
  212. package/lib/typescript/commonjs/ui/components/payment/PaymentDetailsStep.d.ts.map +1 -1
  213. package/lib/typescript/commonjs/ui/components/payment/PaymentMethodStep.d.ts.map +1 -1
  214. package/lib/typescript/commonjs/ui/components/payment/PaymentReviewStep.d.ts.map +1 -1
  215. package/lib/typescript/commonjs/ui/components/payment/PaymentSuccessStep.d.ts.map +1 -1
  216. package/lib/typescript/commonjs/ui/components/payment/PaymentSummaryStep.d.ts.map +1 -1
  217. package/lib/typescript/commonjs/ui/components/photogrid/JustifiedPhotoGrid.d.ts.map +1 -1
  218. package/lib/typescript/commonjs/ui/components/surfaces/ActionSheetSurface.d.ts.map +1 -1
  219. package/lib/typescript/commonjs/ui/icons/Ionicons.d.ts +1 -1
  220. package/lib/typescript/commonjs/ui/icons/Ionicons.d.ts.map +1 -1
  221. package/lib/typescript/commonjs/ui/icons/MaterialCommunityIcons.d.ts +1 -1
  222. package/lib/typescript/commonjs/ui/icons/MaterialCommunityIcons.d.ts.map +1 -1
  223. package/lib/typescript/commonjs/ui/icons/subsetGlyphMaps.d.ts +0 -6
  224. package/lib/typescript/commonjs/ui/icons/subsetGlyphMaps.d.ts.map +1 -1
  225. package/lib/typescript/commonjs/ui/screens/AccountMembersScreen.d.ts.map +1 -1
  226. package/lib/typescript/commonjs/ui/screens/AvatarCropScreen.d.ts.map +1 -1
  227. package/lib/typescript/commonjs/ui/screens/FileManagementScreen.d.ts.map +1 -1
  228. package/lib/typescript/commonjs/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  229. package/lib/typescript/commonjs/ui/screens/UserListScreen.d.ts.map +1 -1
  230. package/lib/typescript/commonjs/ui/screens/fileManagement/FileLibraryError.d.ts +0 -2
  231. package/lib/typescript/commonjs/ui/screens/fileManagement/FileLibraryError.d.ts.map +1 -1
  232. package/lib/typescript/commonjs/ui/screens/fileManagement/FileListSection.d.ts.map +1 -1
  233. package/lib/typescript/commonjs/ui/screens/fileManagement/PhotoPickerSection.d.ts.map +1 -1
  234. package/lib/typescript/commonjs/ui/screens/fileManagement/UploadBar.d.ts +1 -14
  235. package/lib/typescript/commonjs/ui/screens/fileManagement/UploadBar.d.ts.map +1 -1
  236. package/lib/typescript/commonjs/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
  237. package/lib/typescript/module/ui/components/FollowButton.d.ts.map +1 -1
  238. package/lib/typescript/module/ui/components/FollowTargetButton.d.ts.map +1 -1
  239. package/lib/typescript/module/ui/components/OxyAuthPrompt.d.ts.map +1 -1
  240. package/lib/typescript/module/ui/components/OxySignInButton.d.ts +1 -1
  241. package/lib/typescript/module/ui/components/OxySignInButton.d.ts.map +1 -1
  242. package/lib/typescript/module/ui/components/ProfileButton.d.ts +1 -20
  243. package/lib/typescript/module/ui/components/ProfileButton.d.ts.map +1 -1
  244. package/lib/typescript/module/ui/components/ProfileSummaryCard.d.ts.map +1 -1
  245. package/lib/typescript/module/ui/components/SurfaceHeaderAction.d.ts +1 -5
  246. package/lib/typescript/module/ui/components/SurfaceHeaderAction.d.ts.map +1 -1
  247. package/lib/typescript/module/ui/components/SurfaceScreen.d.ts.map +1 -1
  248. package/lib/typescript/module/ui/components/fileManagement/FileDetailsModal.d.ts.map +1 -1
  249. package/lib/typescript/module/ui/components/fileManagement/FileViewer.d.ts.map +1 -1
  250. package/lib/typescript/module/ui/components/fileManagement/UploadPreview.d.ts.map +1 -1
  251. package/lib/typescript/module/ui/components/modals/DeleteAccountModal.d.ts.map +1 -1
  252. package/lib/typescript/module/ui/components/payment/PaymentDetailsStep.d.ts.map +1 -1
  253. package/lib/typescript/module/ui/components/payment/PaymentMethodStep.d.ts.map +1 -1
  254. package/lib/typescript/module/ui/components/payment/PaymentReviewStep.d.ts.map +1 -1
  255. package/lib/typescript/module/ui/components/payment/PaymentSuccessStep.d.ts.map +1 -1
  256. package/lib/typescript/module/ui/components/payment/PaymentSummaryStep.d.ts.map +1 -1
  257. package/lib/typescript/module/ui/components/photogrid/JustifiedPhotoGrid.d.ts.map +1 -1
  258. package/lib/typescript/module/ui/components/surfaces/ActionSheetSurface.d.ts.map +1 -1
  259. package/lib/typescript/module/ui/icons/Ionicons.d.ts +1 -1
  260. package/lib/typescript/module/ui/icons/Ionicons.d.ts.map +1 -1
  261. package/lib/typescript/module/ui/icons/MaterialCommunityIcons.d.ts +1 -1
  262. package/lib/typescript/module/ui/icons/MaterialCommunityIcons.d.ts.map +1 -1
  263. package/lib/typescript/module/ui/icons/subsetGlyphMaps.d.ts +0 -6
  264. package/lib/typescript/module/ui/icons/subsetGlyphMaps.d.ts.map +1 -1
  265. package/lib/typescript/module/ui/screens/AccountMembersScreen.d.ts.map +1 -1
  266. package/lib/typescript/module/ui/screens/AvatarCropScreen.d.ts.map +1 -1
  267. package/lib/typescript/module/ui/screens/FileManagementScreen.d.ts.map +1 -1
  268. package/lib/typescript/module/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  269. package/lib/typescript/module/ui/screens/UserListScreen.d.ts.map +1 -1
  270. package/lib/typescript/module/ui/screens/fileManagement/FileLibraryError.d.ts +0 -2
  271. package/lib/typescript/module/ui/screens/fileManagement/FileLibraryError.d.ts.map +1 -1
  272. package/lib/typescript/module/ui/screens/fileManagement/FileListSection.d.ts.map +1 -1
  273. package/lib/typescript/module/ui/screens/fileManagement/PhotoPickerSection.d.ts.map +1 -1
  274. package/lib/typescript/module/ui/screens/fileManagement/UploadBar.d.ts +1 -14
  275. package/lib/typescript/module/ui/screens/fileManagement/UploadBar.d.ts.map +1 -1
  276. package/lib/typescript/module/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
  277. package/package.json +6 -6
  278. package/src/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
  279. package/src/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
  280. package/src/assets/fonts/icons/manifest.json +5 -11
  281. package/src/ui/components/FollowButton.tsx +14 -29
  282. package/src/ui/components/FollowTargetButton.tsx +9 -11
  283. package/src/ui/components/OxyAuthPrompt.tsx +2 -7
  284. package/src/ui/components/OxyConsentScreen.tsx +2 -2
  285. package/src/ui/components/OxySignInButton.tsx +2 -2
  286. package/src/ui/components/OxySignInRequestSurface.tsx +1 -1
  287. package/src/ui/components/ProfileButton.tsx +30 -297
  288. package/src/ui/components/ProfileSummaryCard.tsx +1 -2
  289. package/src/ui/components/SurfaceHeaderAction.tsx +7 -49
  290. package/src/ui/components/SurfaceScreen.tsx +2 -1
  291. package/src/ui/components/authChooser/AccountsMenuView.tsx +1 -1
  292. package/src/ui/components/authChooser/SignInEntryView.tsx +1 -1
  293. package/src/ui/components/authChooser/SignUpView.tsx +2 -2
  294. package/src/ui/components/authChooser/requestSurfaces.tsx +1 -1
  295. package/src/ui/components/fileManagement/FileDetailsModal.tsx +8 -6
  296. package/src/ui/components/fileManagement/FileViewer.tsx +21 -50
  297. package/src/ui/components/fileManagement/UploadPreview.tsx +12 -29
  298. package/src/ui/components/modals/DeleteAccountModal.tsx +4 -3
  299. package/src/ui/components/payment/PaymentDetailsStep.tsx +4 -3
  300. package/src/ui/components/payment/PaymentMethodStep.tsx +4 -3
  301. package/src/ui/components/payment/PaymentReviewStep.tsx +4 -3
  302. package/src/ui/components/payment/PaymentSuccessStep.tsx +3 -2
  303. package/src/ui/components/payment/PaymentSummaryStep.tsx +4 -3
  304. package/src/ui/components/photogrid/JustifiedPhotoGrid.tsx +2 -1
  305. package/src/ui/components/surfaces/ActionSheetSurface.tsx +3 -2
  306. package/src/ui/icons/subsetGlyphMaps.ts +0 -6
  307. package/src/ui/screens/AccountMembersScreen.tsx +17 -65
  308. package/src/ui/screens/AccountSettingsScreen.tsx +1 -1
  309. package/src/ui/screens/AccountVerificationScreen.tsx +1 -1
  310. package/src/ui/screens/AvatarCropScreen.tsx +2 -10
  311. package/src/ui/screens/CreateAccountScreen.tsx +1 -1
  312. package/src/ui/screens/FeedbackScreen.tsx +9 -9
  313. package/src/ui/screens/FileManagementScreen.tsx +37 -184
  314. package/src/ui/screens/LanguageSelectorScreen.tsx +5 -13
  315. package/src/ui/screens/PaymentGatewayScreen.tsx +1 -1
  316. package/src/ui/screens/PremiumSubscriptionScreen.tsx +10 -10
  317. package/src/ui/screens/PrivacySettingsScreen.tsx +2 -2
  318. package/src/ui/screens/ProfileScreen.tsx +1 -1
  319. package/src/ui/screens/UserListScreen.tsx +17 -44
  320. package/src/ui/screens/WelcomeNewUserScreen.tsx +11 -11
  321. package/src/ui/screens/fileManagement/FileLibraryError.tsx +6 -14
  322. package/src/ui/screens/fileManagement/FileListSection.tsx +4 -16
  323. package/src/ui/screens/fileManagement/PhotoPickerSection.tsx +2 -13
  324. package/src/ui/screens/fileManagement/UploadBar.tsx +17 -56
  325. package/src/ui/screens/trust/TrustLeaderboardScreen.tsx +1 -1
  326. package/src/ui/screens/trust/TrustRulesScreen.tsx +2 -1
  327. package/lib/commonjs/ui/components/fileManagement/AnimatedButton.js +0 -61
  328. package/lib/commonjs/ui/components/fileManagement/AnimatedButton.js.map +0 -1
  329. package/lib/commonjs/ui/components/internal/PinInput.js +0 -118
  330. package/lib/commonjs/ui/components/internal/PinInput.js.map +0 -1
  331. package/lib/module/ui/components/fileManagement/AnimatedButton.js +0 -55
  332. package/lib/module/ui/components/fileManagement/AnimatedButton.js.map +0 -1
  333. package/lib/module/ui/components/internal/PinInput.js +0 -113
  334. package/lib/module/ui/components/internal/PinInput.js.map +0 -1
  335. package/lib/typescript/commonjs/ui/components/fileManagement/AnimatedButton.d.ts +0 -17
  336. package/lib/typescript/commonjs/ui/components/fileManagement/AnimatedButton.d.ts.map +0 -1
  337. package/lib/typescript/commonjs/ui/components/internal/PinInput.d.ts +0 -23
  338. package/lib/typescript/commonjs/ui/components/internal/PinInput.d.ts.map +0 -1
  339. package/lib/typescript/module/ui/components/fileManagement/AnimatedButton.d.ts +0 -17
  340. package/lib/typescript/module/ui/components/fileManagement/AnimatedButton.d.ts.map +0 -1
  341. package/lib/typescript/module/ui/components/internal/PinInput.d.ts +0 -23
  342. package/lib/typescript/module/ui/components/internal/PinInput.d.ts.map +0 -1
  343. package/src/ui/components/fileManagement/AnimatedButton.tsx +0 -64
  344. package/src/ui/components/internal/PinInput.tsx +0 -123
@@ -375,7 +375,7 @@ const FeedbackScreen: React.FC<BaseScreenProps> = ({
375
375
 
376
376
  <View className="flex-row gap-space-8 mt-space-24 w-full">
377
377
  <Button
378
- variant="secondary"
378
+ appearance="subtle" tone="neutral"
379
379
  onPress={goBack}
380
380
  accessibilityLabel="Go back"
381
381
  icon={<Ionicons name="arrow-back" size={16} color={colors.text} />}
@@ -385,7 +385,7 @@ const FeedbackScreen: React.FC<BaseScreenProps> = ({
385
385
  </Button>
386
386
 
387
387
  <Button
388
- variant="primary"
388
+ appearance="solid" tone="accent"
389
389
  onPress={nextStep}
390
390
  disabled={!isTypeStepValid()}
391
391
  accessibilityLabel="Continue to next step"
@@ -485,7 +485,7 @@ const FeedbackScreen: React.FC<BaseScreenProps> = ({
485
485
 
486
486
  <View className="flex-row gap-space-8 mt-space-24 w-full">
487
487
  <Button
488
- variant="secondary"
488
+ appearance="subtle" tone="neutral"
489
489
  onPress={prevStep}
490
490
  accessibilityLabel="Go back"
491
491
  icon={<Ionicons name="arrow-back" size={16} color={colors.text} />}
@@ -495,7 +495,7 @@ const FeedbackScreen: React.FC<BaseScreenProps> = ({
495
495
  </Button>
496
496
 
497
497
  <Button
498
- variant="primary"
498
+ appearance="solid" tone="accent"
499
499
  onPress={nextStep}
500
500
  disabled={!isDetailsStepValid()}
501
501
  accessibilityLabel="Continue to next step"
@@ -574,7 +574,7 @@ const FeedbackScreen: React.FC<BaseScreenProps> = ({
574
574
 
575
575
  <View className="flex-row gap-space-8 mt-space-24 w-full">
576
576
  <Button
577
- variant="secondary"
577
+ appearance="subtle" tone="neutral"
578
578
  onPress={prevStep}
579
579
  accessibilityLabel="Go back"
580
580
  icon={<Ionicons name="arrow-back" size={16} color={colors.text} />}
@@ -584,7 +584,7 @@ const FeedbackScreen: React.FC<BaseScreenProps> = ({
584
584
  </Button>
585
585
 
586
586
  <Button
587
- variant="primary"
587
+ appearance="solid" tone="accent"
588
588
  onPress={nextStep}
589
589
  disabled={!isContactStepValid()}
590
590
  accessibilityLabel="Continue to summary"
@@ -653,7 +653,7 @@ const FeedbackScreen: React.FC<BaseScreenProps> = ({
653
653
  </View>
654
654
 
655
655
  <Button
656
- variant="primary"
656
+ appearance="solid" tone="accent"
657
657
  onPress={handleSubmitFeedback}
658
658
  disabled={feedbackState.status === "submitting"}
659
659
  loading={feedbackState.status === "submitting"}
@@ -670,7 +670,7 @@ const FeedbackScreen: React.FC<BaseScreenProps> = ({
670
670
 
671
671
  <View className="flex-row mt-space-16 w-full">
672
672
  <Button
673
- variant="secondary"
673
+ appearance="subtle" tone="neutral"
674
674
  onPress={prevStep}
675
675
  accessibilityLabel="Go back"
676
676
  icon={<Ionicons name="arrow-back" size={16} color={colors.text} />}
@@ -701,7 +701,7 @@ const FeedbackScreen: React.FC<BaseScreenProps> = ({
701
701
  "Your feedback has been submitted successfully. We'll review it and get back to you soon."}
702
702
  </Text>
703
703
  <Button
704
- variant="primary"
704
+ appearance="solid" tone="accent"
705
705
  onPress={() => {
706
706
  resetForm();
707
707
  setCurrentStep(0);
@@ -1,16 +1,8 @@
1
+ import { Button } from '@oxy.so/bloom/button';
1
2
  import type React from 'react';
2
3
  import { useState, useCallback, useMemo, useRef } from 'react';
3
- import {
4
- View,
5
- Text,
6
- TouchableOpacity,
7
- StyleSheet,
8
- ScrollView,
9
- ActivityIndicator,
10
- RefreshControl,
11
- TextInput,
12
- useWindowDimensions,
13
- } from 'react-native';
4
+ import { View, TouchableOpacity, StyleSheet, ScrollView, ActivityIndicator, RefreshControl, useWindowDimensions } from 'react-native';
5
+ import { Text } from '@oxy.so/bloom/typography';
14
6
  import { useQueryClient } from '@tanstack/react-query';
15
7
  import { Image as ExpoImage } from 'expo-image';
16
8
  import type { FileManagementScreenProps } from '../types/fileManagement';
@@ -46,11 +38,10 @@ import PhotoPickerView from './fileManagement/PhotoPickerSection';
46
38
  import FileListSection, { type FileListItem } from './fileManagement/FileListSection';
47
39
  import FileLibraryError from './fileManagement/FileLibraryError';
48
40
  import UploadBar from './fileManagement/UploadBar';
49
- import { AnimatedButton } from '../components/fileManagement/AnimatedButton';
41
+ import { SegmentedControl, SegmentedControlItem } from '@oxy.so/bloom/segmented-control';
42
+ import { Search } from '@oxy.so/bloom/search';
50
43
 
51
- // Genuinely-inline-only styles: `viewModeButton` is spread into an Animated.View
52
- // style array (interpolated backgroundColor), and the photo tiles are
53
- // `expo-image` (no className remap). Everything else uses NativeWind classNames.
44
+ // Photo tiles use expo-image dimensions; controls use Bloom primitives.
54
45
  // Nav-header slot layout for this screen's action row + review-mode back button.
55
46
  const fmHeaderStyles = StyleSheet.create({
56
47
  actionsRow: {
@@ -67,15 +58,6 @@ const fmHeaderStyles = StyleSheet.create({
67
58
  });
68
59
 
69
60
  const screenStyles = StyleSheet.create({
70
- viewModeButton: {
71
- paddingHorizontal: 10,
72
- paddingVertical: 6,
73
- borderRadius: 999,
74
- minWidth: 36,
75
- alignItems: 'center',
76
- justifyContent: 'center',
77
- marginHorizontal: 1,
78
- },
79
61
  justifiedPhotoImage: { width: '100%', height: '100%', borderRadius: 6 },
80
62
  });
81
63
 
@@ -799,35 +781,16 @@ const FileManagementScreen: React.FC<FileManagementScreenProps> = ({
799
781
  },
800
782
  // Hide action buttons when selecting (in selectMode or bulk operations mode)
801
783
  rightElement: (!selectMode && selectedIds.size === 0) ? (
802
- <View className="flex-row items-center gap-[6px] ml-[12px]">
803
- {(isImage || isVideo || file.contentType.includes('pdf')) && (
804
- <TouchableOpacity
805
- className="w-[34px] h-[34px] rounded-[8px] items-center justify-center"
806
- style={{ backgroundColor: colors.backgroundSecondary }}
807
- onPress={() => handleFileOpen(file)}
808
- >
809
- <Ionicons name="eye" size={18} color={colors.primary} />
810
- </TouchableOpacity>
811
- )}
812
- <TouchableOpacity
813
- className="w-[34px] h-[34px] rounded-[8px] items-center justify-center"
814
- style={{ backgroundColor: colors.backgroundSecondary }}
815
- onPress={() => handleFileDownload(file.id, file.filename)}
816
- >
817
- <Ionicons name="download" size={18} color={colors.primary} />
818
- </TouchableOpacity>
819
- <TouchableOpacity
820
- className="w-[34px] h-[34px] rounded-[8px] items-center justify-center"
821
- style={{ backgroundColor: colors.negativeSubtle }}
822
- onPress={() => confirmFileDelete(file.id, file.filename)}
823
- disabled={deletingId === file.id}
824
- >
825
- {deletingId === file.id ? (
826
- <ActivityIndicator size="small" color={colors.error} />
827
- ) : (
828
- <Ionicons name="trash" size={18} color={colors.error} />
829
- )}
830
- </TouchableOpacity>
784
+ <View className="flex-row items-center gap-1.5 ml-3">
785
+ {(isImage || isVideo || file.contentType.includes('pdf')) ? <Button appearance="subtle" tone="neutral" size="small" iconOnly stopPropagation
786
+ accessibilityLabel={`Preview ${file.filename}`} onPress={() => handleFileOpen(file)}
787
+ icon={<Ionicons name="eye" size={18} color={colors.text} />} /> : null}
788
+ <Button appearance="subtle" tone="neutral" size="small" iconOnly stopPropagation
789
+ accessibilityLabel={`Download ${file.filename}`} onPress={() => handleFileDownload(file.id, file.filename)}
790
+ icon={<Ionicons name="download" size={18} color={colors.text} />} />
791
+ <Button appearance="subtle" tone="danger" size="small" iconOnly stopPropagation loading={deletingId === file.id}
792
+ accessibilityLabel={`Delete ${file.filename}`} onPress={() => confirmFileDelete(file.id, file.filename)}
793
+ icon={<Ionicons name="trash" size={18} color={colors.error} />} />
831
794
  </View>
832
795
  ) : undefined,
833
796
  };
@@ -844,7 +807,6 @@ const FileManagementScreen: React.FC<FileManagementScreenProps> = ({
844
807
  iconColor={colors.error}
845
808
  titleColor={colors.text}
846
809
  descriptionColor={colors.textSecondary}
847
- buttonColor={colors.primary}
848
810
  />
849
811
  );
850
812
 
@@ -866,21 +828,7 @@ const FileManagementScreen: React.FC<FileManagementScreenProps> = ({
866
828
  : t('fileManagement.emptyPhotos.otherDescription')
867
829
  } </Text>
868
830
  {user?.id === targetUserId && (
869
- <TouchableOpacity
870
- className="flex-row items-center px-[24px] py-[12px] rounded-[24px] gap-[8px]"
871
- style={{ backgroundColor: colors.primary }}
872
- onPress={handleFileUpload}
873
- disabled={uploading || isPickingDocument}
874
- >
875
- {(uploading || isPickingDocument) ? (
876
- <ActivityIndicator size="small" color="#FFFFFF" />
877
- ) : (
878
- <>
879
- <Ionicons name="cloud-upload" size={20} color="#FFFFFF" />
880
- <Text className="text-white text-[16px] font-semibold">{t('fileManagement.uploadPhotos')}</Text>
881
- </>
882
- )}
883
- </TouchableOpacity>
831
+ <Button onPress={handleFileUpload} loading={uploading || isPickingDocument}>{t('fileManagement.uploadPhotos')}</Button>
884
832
  )}
885
833
  </View>
886
834
  );
@@ -934,21 +882,7 @@ const FileManagementScreen: React.FC<FileManagementScreenProps> = ({
934
882
  }
935
883
  </Text>
936
884
  {user?.id === targetUserId && (
937
- <TouchableOpacity
938
- className="flex-row items-center px-[24px] py-[12px] rounded-[24px] gap-[8px]"
939
- style={{ backgroundColor: colors.primary }}
940
- onPress={handleFileUpload}
941
- disabled={uploading || isPickingDocument}
942
- >
943
- {(uploading || isPickingDocument) ? (
944
- <ActivityIndicator size="small" color="#FFFFFF" />
945
- ) : (
946
- <>
947
- <Ionicons name="cloud-upload" size={20} color="#FFFFFF" />
948
- <Text className="text-white text-[16px] font-semibold">{t('fileManagement.uploadFiles')}</Text>
949
- </>
950
- )}
951
- </TouchableOpacity>
885
+ <Button onPress={handleFileUpload} loading={uploading || isPickingDocument}>{t('fileManagement.uploadFiles')}</Button>
952
886
  )}
953
887
  </View>
954
888
  );
@@ -1215,60 +1149,18 @@ const FileManagementScreen: React.FC<FileManagementScreenProps> = ({
1215
1149
  className="flex-1"
1216
1150
  style={{ maxWidth: '80%' }}
1217
1151
  >
1218
- <View
1219
- className="flex-row rounded-full p-[2px] overflow-hidden"
1220
- style={{ backgroundColor: colors.card }}
1221
- >
1222
- <AnimatedButton
1223
- isSelected={viewMode === 'all'}
1224
- onPress={() => setViewMode('all')}
1225
- icon={viewMode === 'all' ? 'folder' : 'folder-outline'}
1226
- primaryColor={colors.primary}
1227
- textColor={colors.text}
1228
- style={screenStyles.viewModeButton}
1229
- accessibilityLabel={t('fileManagement.a11y.viewAll') || 'Show all files'}
1230
- />
1231
- <AnimatedButton
1232
- isSelected={viewMode === 'photos'}
1233
- onPress={() => setViewMode('photos')}
1234
- icon={viewMode === 'photos' ? 'image-multiple' : 'image-multiple-outline'}
1235
- primaryColor={colors.primary}
1236
- textColor={colors.text}
1237
- style={screenStyles.viewModeButton}
1238
- accessibilityLabel={t('fileManagement.a11y.viewPhotos') || 'Show photos only'}
1239
- />
1240
- <AnimatedButton
1241
- isSelected={viewMode === 'videos'}
1242
- onPress={() => setViewMode('videos')}
1243
- icon={viewMode === 'videos' ? 'video' : 'video-outline'}
1244
- primaryColor={colors.primary}
1245
- textColor={colors.text}
1246
- style={screenStyles.viewModeButton}
1247
- accessibilityLabel={t('fileManagement.a11y.viewVideos') || 'Show videos only'}
1248
- />
1249
- <AnimatedButton
1250
- isSelected={viewMode === 'documents'}
1251
- onPress={() => setViewMode('documents')}
1252
- icon={viewMode === 'documents' ? 'file-document' : 'file-document-outline'}
1253
- primaryColor={colors.primary}
1254
- textColor={colors.text}
1255
- style={screenStyles.viewModeButton}
1256
- accessibilityLabel={t('fileManagement.a11y.viewDocuments') || 'Show documents only'}
1257
- />
1258
- <AnimatedButton
1259
- isSelected={viewMode === 'audio'}
1260
- onPress={() => setViewMode('audio')}
1261
- icon={viewMode === 'audio' ? 'music-note' : 'music-note-outline'}
1262
- primaryColor={colors.primary}
1263
- textColor={colors.text}
1264
- style={screenStyles.viewModeButton}
1265
- accessibilityLabel={t('fileManagement.a11y.viewAudio') || 'Show audio only'}
1266
- />
1267
- </View>
1152
+ <SegmentedControl type="radio" label={t('fileManagement.viewMode') || 'File type'}
1153
+ value={viewMode} onValueChange={setViewMode} size="small">
1154
+ {(['all', 'photos', 'videos', 'documents', 'audio'] as const).map(mode => (
1155
+ <SegmentedControlItem key={mode} value={mode} accessibilityLabel={mode}>
1156
+ <MaterialCommunityIcons
1157
+ name={({ all: 'folder-outline', photos: 'image-multiple-outline', videos: 'video-outline', documents: 'file-document-outline', audio: 'music-note-outline' } as const)[mode]}
1158
+ size={18} color={colors.text} />
1159
+ </SegmentedControlItem>
1160
+ ))}
1161
+ </SegmentedControl>
1268
1162
  </ScrollView>
1269
- <TouchableOpacity
1270
- className="flex-row items-center justify-center px-[10px] py-[6px] rounded-full min-w-[36px] gap-[4px]"
1271
- style={{ backgroundColor: colors.card }}
1163
+ <Button appearance="subtle" tone="neutral" size="small"
1272
1164
  accessibilityRole="button"
1273
1165
  accessibilityLabel={t('fileManagement.a11y.sortBy', {
1274
1166
  field: sortBy,
@@ -1285,7 +1177,7 @@ const FileManagementScreen: React.FC<FileManagementScreenProps> = ({
1285
1177
  setSortOrder(prev => prev === 'asc' ? 'desc' : 'asc');
1286
1178
  }
1287
1179
  }}
1288
- >
1180
+ trailing={<View className="flex-row items-center gap-1">
1289
1181
  <MaterialCommunityIcons
1290
1182
  name={
1291
1183
  sortBy === 'date' ? 'calendar' :
@@ -1300,58 +1192,21 @@ const FileManagementScreen: React.FC<FileManagementScreenProps> = ({
1300
1192
  size={14}
1301
1193
  color={colors.textSecondary}
1302
1194
  />
1303
- </TouchableOpacity>
1195
+ </View>} />
1304
1196
  {user?.id === targetUserId && (!selectMode || allowUploadInSelectMode) && (
1305
- <TouchableOpacity
1306
- className="h-[44px] w-[44px] rounded-[22px] items-center justify-center"
1307
- style={{ backgroundColor: colors.primary }}
1308
- onPress={handleFileUpload}
1309
- disabled={uploading || isPickingDocument}
1310
- accessibilityRole="button"
1197
+ <Button iconOnly onPress={handleFileUpload} loading={uploading || isPickingDocument}
1311
1198
  accessibilityLabel={t('fileManagement.a11y.uploadFile') || 'Upload file'}
1312
- accessibilityState={{ busy: uploading || isPickingDocument }}
1313
- >
1314
- {uploading ? (
1315
- <View className="items-center justify-center">
1316
- <ActivityIndicator size="small" color="#FFFFFF" />
1317
- {uploadProgress && (
1318
- <Text className="text-white text-[10px] font-semibold mt-[2px]">
1319
- {uploadProgress.current}/{uploadProgress.total}
1320
- </Text>
1321
- )}
1322
- </View>
1323
- ) : isPickingDocument ? (
1324
- <ActivityIndicator size="small" color="#FFFFFF" />
1325
- ) : (
1326
- <Ionicons name="add" size={22} color="#FFFFFF" />
1327
- )}
1328
- </TouchableOpacity>
1199
+ icon={<Ionicons name="add" size={22} color={colors.primaryForeground} />} />
1329
1200
  )}
1330
1201
  </View>
1331
1202
 
1332
1203
  {/* Search Bar */}
1333
1204
  {files.length > 0 && (viewMode === 'all' || files.some(f => f.contentType.startsWith('image/'))) && (
1334
- <View
1335
- className="flex-row items-center px-[14px] py-[10px] mx-[12px] mb-[12px] rounded-full gap-[10px]"
1336
- style={{ backgroundColor: colors.card }}
1337
- >
1338
- <Ionicons name="search" size={22} color={colors.icon} />
1339
- <TextInput
1340
- className="flex-1 text-[16px] leading-[20px]"
1341
- style={{ color: colors.text }}
1342
- placeholder={viewMode === 'photos' ? t('fileManagement.searchPhotos') : t('fileManagement.searchFiles')}
1343
- placeholderTextColor={colors.textSecondary}
1344
- value={searchQuery}
1345
- onChangeText={setSearchQuery}
1205
+ <View className="mx-[12px] mb-[12px]">
1206
+ <Search
1207
+ label={viewMode === 'photos' ? t('fileManagement.searchPhotos') : t('fileManagement.searchFiles')}
1208
+ value={searchQuery} onValueChange={setSearchQuery} onClearText={() => setSearchQuery('')}
1346
1209
  />
1347
- {searchQuery.length > 0 && (
1348
- <TouchableOpacity
1349
- onPress={() => setSearchQuery('')}
1350
- className="p-[4px] rounded-[12px] items-center justify-center"
1351
- >
1352
- <Ionicons name="close-circle" size={22} color={colors.icon} />
1353
- </TouchableOpacity>
1354
- )}
1355
1210
  </View>
1356
1211
  )}
1357
1212
 
@@ -1410,8 +1265,6 @@ const FileManagementScreen: React.FC<FileManagementScreenProps> = ({
1410
1265
  {!selectMode && uploading && (
1411
1266
  <UploadBar
1412
1267
  uploadProgress={uploadProgress}
1413
- isDark={bloomTheme.isDark}
1414
- colors={colors}
1415
1268
  t={t}
1416
1269
  />
1417
1270
  )}
@@ -1,5 +1,6 @@
1
+ import { Button } from '@oxy.so/bloom/button';
1
2
  import React, { useCallback, useMemo, useState } from 'react';
2
- import { View, StyleSheet, TouchableOpacity } from 'react-native';
3
+ import { View, StyleSheet } from 'react-native';
3
4
  import type { BaseScreenProps } from '../types/navigation';
4
5
  import { useTheme } from '@oxy.so/bloom/theme';
5
6
  import Ionicons from '../icons/Ionicons';
@@ -196,19 +197,10 @@ const LanguageSelectorScreen: React.FC<LanguageSelectorScreenProps> = () => {
196
197
  </Text>
197
198
  </View>
198
199
  ) : canRemove ? (
199
- <TouchableOpacity
200
- onPress={() => handleRemove(entry.code)}
201
- disabled={isBusy}
202
- hitSlop={{ top: 8, bottom: 8, left: 8, right: 8 }}
203
- accessibilityRole="button"
200
+ <Button appearance="plain" tone="neutral" size="small" iconOnly stopPropagation
201
+ onPress={() => handleRemove(entry.code)} disabled={isBusy}
204
202
  accessibilityLabel={`${t('language.remove')} ${entry.name}`}
205
- >
206
- <Ionicons
207
- name="close-circle"
208
- size={REMOVE_ICON_SIZE}
209
- color={bloomTheme.colors.textSecondary}
210
- />
211
- </TouchableOpacity>
203
+ icon={<Ionicons name="close-circle" size={REMOVE_ICON_SIZE} color={bloomTheme.colors.textSecondary} />} />
212
204
  ) : undefined
213
205
  }
214
206
  showChevron={false}
@@ -195,7 +195,7 @@ const PaymentGatewayScreen: React.FC<PaymentGatewayScreenProps> = (props) => {
195
195
  {t('payment.errors.invalidAmount')}
196
196
  </H4>
197
197
  <Button
198
- variant="primary"
198
+ appearance="solid" tone="accent"
199
199
  onPress={handleClose}
200
200
  size="small"
201
201
  icon={<Ionicons name="close" size={16} />}
@@ -599,7 +599,7 @@ const PremiumSubscriptionScreen: React.FC<BaseScreenProps> = ({
599
599
  <View className="flex-row gap-space-12">
600
600
  {subscription.cancelAtPeriodEnd ? (
601
601
  <Button
602
- variant="primary"
602
+ appearance="solid" tone="accent"
603
603
  onPress={handleReactivateSubscription}
604
604
  className="flex-1"
605
605
  accessibilityLabel={t('premium.actions.reactivate') || 'Reactivate'}
@@ -608,7 +608,7 @@ const PremiumSubscriptionScreen: React.FC<BaseScreenProps> = ({
608
608
  </Button>
609
609
  ) : (
610
610
  <Button
611
- variant="destructive"
611
+ appearance="solid" tone="danger"
612
612
  onPress={handleCancelSubscription}
613
613
  className="flex-1"
614
614
  accessibilityLabel={t('premium.actions.cancelSubBtn') || 'Cancel Subscription'}
@@ -618,7 +618,7 @@ const PremiumSubscriptionScreen: React.FC<BaseScreenProps> = ({
618
618
  )}
619
619
 
620
620
  <Button
621
- variant="outline"
621
+ appearance="subtle" tone="neutral"
622
622
  onPress={() => navigate?.('PaymentGateway')}
623
623
  className="flex-1"
624
624
  accessibilityLabel={t('premium.actions.manageBilling') || 'Manage Billing'}
@@ -752,7 +752,7 @@ const PremiumSubscriptionScreen: React.FC<BaseScreenProps> = ({
752
752
 
753
753
  {isCurrentPlan ? (
754
754
  <Button
755
- variant="secondary"
755
+ appearance="subtle" tone="neutral"
756
756
  disabled
757
757
  icon={<Ionicons name="checkmark-circle" size={18} color={colors.success} />}
758
758
  accessibilityLabel={t('premium.plan.current') || 'Current Plan'}
@@ -762,7 +762,7 @@ const PremiumSubscriptionScreen: React.FC<BaseScreenProps> = ({
762
762
  </Button>
763
763
  ) : !availability.available ? (
764
764
  <Button
765
- variant="secondary"
765
+ appearance="subtle" tone="neutral"
766
766
  disabled
767
767
  accessibilityLabel={t('premium.plan.notAvailableInApp') || 'Not Available in Current App'}
768
768
  className="w-full"
@@ -895,7 +895,7 @@ const PremiumSubscriptionScreen: React.FC<BaseScreenProps> = ({
895
895
 
896
896
  {isIncludedInCurrentPlan ? (
897
897
  <Button
898
- variant="primary"
898
+ appearance="solid" tone="accent"
899
899
  disabled
900
900
  icon={<Ionicons name="checkmark-circle" size={16} color={colors.primaryForeground} />}
901
901
  accessibilityLabel={t('premium.feature.includedInPlan') || 'Included in your plan'}
@@ -906,7 +906,7 @@ const PremiumSubscriptionScreen: React.FC<BaseScreenProps> = ({
906
906
  ) : isSubscribed ? (
907
907
  <View className="flex-row gap-space-8">
908
908
  <Button
909
- variant="secondary"
909
+ appearance="subtle" tone="neutral"
910
910
  disabled
911
911
  icon={<Ionicons name="checkmark" size={16} color={colors.success} />}
912
912
  accessibilityLabel={t('premium.feature.subscribed') || 'Subscribed'}
@@ -915,7 +915,7 @@ const PremiumSubscriptionScreen: React.FC<BaseScreenProps> = ({
915
915
  {t('premium.feature.subscribed') || 'Subscribed'}
916
916
  </Button>
917
917
  <Button
918
- variant="outline"
918
+ appearance="subtle" tone="neutral"
919
919
  onPress={() => handleFeatureUnsubscribe(feature.id)}
920
920
  accessibilityLabel={t('premium.actions.unsubscribe') || 'Unsubscribe'}
921
921
  className="flex-1"
@@ -925,7 +925,7 @@ const PremiumSubscriptionScreen: React.FC<BaseScreenProps> = ({
925
925
  </View>
926
926
  ) : canPurchase ? (
927
927
  <Button
928
- variant="primary"
928
+ appearance="solid" tone="accent"
929
929
  onPress={() => handleFeatureSubscribe(feature.id)}
930
930
  disabled={processingPayment}
931
931
  loading={processingPayment}
@@ -936,7 +936,7 @@ const PremiumSubscriptionScreen: React.FC<BaseScreenProps> = ({
936
936
  </Button>
937
937
  ) : (
938
938
  <Button
939
- variant="secondary"
939
+ appearance="subtle" tone="neutral"
940
940
  disabled
941
941
  accessibilityLabel={t('premium.feature.plansOnly') || 'Only available in subscription plans'}
942
942
  className="w-full"
@@ -367,7 +367,7 @@ const PrivacySettingsScreen: React.FC<BaseScreenProps> = ({
367
367
  title={displayName}
368
368
  rightElement={
369
369
  <Button
370
- variant="destructive"
370
+ appearance="solid" tone="danger"
371
371
  size="small"
372
372
  onPress={() => handleUnblock(userId)}
373
373
  >
@@ -401,7 +401,7 @@ const PrivacySettingsScreen: React.FC<BaseScreenProps> = ({
401
401
  description={t('privacySettings.restrictedDescription') || 'Limited interactions'}
402
402
  rightElement={
403
403
  <Button
404
- variant="secondary"
404
+ appearance="subtle" tone="neutral"
405
405
  size="small"
406
406
  onPress={() => handleUnrestrict(userId)}
407
407
  >
@@ -214,7 +214,7 @@ const ProfileScreen: React.FC<ProfileScreenProps> = ({ userId, username, theme,
214
214
  <View style={styles.actionButtonWrapper}>
215
215
  {isOwnProfile ? (
216
216
  <Button
217
- variant="secondary"
217
+ appearance="subtle" tone="neutral"
218
218
  size="small"
219
219
  onPress={() => navigate?.('ManageAccount')}
220
220
  >