@oxyhq/services 11.0.0 → 11.1.1

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 (434) hide show
  1. package/lib/commonjs/index.js +7 -0
  2. package/lib/commonjs/index.js.map +1 -1
  3. package/lib/commonjs/ui/components/AccountMenu.js +9 -5
  4. package/lib/commonjs/ui/components/AccountMenu.js.map +1 -1
  5. package/lib/commonjs/ui/components/AnotherDeviceQR.js +51 -56
  6. package/lib/commonjs/ui/components/AnotherDeviceQR.js.map +1 -1
  7. package/lib/commonjs/ui/components/BottomSheetRouter.js +1 -0
  8. package/lib/commonjs/ui/components/BottomSheetRouter.js.map +1 -1
  9. package/lib/commonjs/ui/components/FollowButton.js +18 -5
  10. package/lib/commonjs/ui/components/FollowButton.js.map +1 -1
  11. package/lib/commonjs/ui/components/OxyLogo.js +1 -1
  12. package/lib/commonjs/ui/components/OxyLogo.js.map +1 -1
  13. package/lib/commonjs/ui/components/OxyProvider.js +23 -7
  14. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  15. package/lib/commonjs/ui/components/SignInModal.js +20 -1
  16. package/lib/commonjs/ui/components/SignInModal.js.map +1 -1
  17. package/lib/commonjs/ui/components/fileManagement/FileViewer.js +19 -9
  18. package/lib/commonjs/ui/components/fileManagement/FileViewer.js.map +1 -1
  19. package/lib/commonjs/ui/components/fileManagement/UploadPreview.js +4 -2
  20. package/lib/commonjs/ui/components/fileManagement/UploadPreview.js.map +1 -1
  21. package/lib/commonjs/ui/context/OxyContext.js +153 -19
  22. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  23. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +6 -17
  24. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
  25. package/lib/commonjs/ui/hooks/mutations/mutationFactory.js +5 -5
  26. package/lib/commonjs/ui/hooks/mutations/mutationFactory.js.map +1 -1
  27. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +38 -38
  28. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  29. package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js +2 -2
  30. package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js.map +1 -1
  31. package/lib/commonjs/ui/hooks/queries/queryKeys.js +3 -3
  32. package/lib/commonjs/ui/hooks/queries/queryKeys.js.map +1 -1
  33. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js +1 -1
  34. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js.map +1 -1
  35. package/lib/commonjs/ui/hooks/queries/usePaymentQueries.js +16 -12
  36. package/lib/commonjs/ui/hooks/queries/usePaymentQueries.js.map +1 -1
  37. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js +10 -6
  38. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js.map +1 -1
  39. package/lib/commonjs/ui/hooks/queryClient.js +6 -5
  40. package/lib/commonjs/ui/hooks/queryClient.js.map +1 -1
  41. package/lib/commonjs/ui/hooks/useOxyAuthSession.js +40 -2
  42. package/lib/commonjs/ui/hooks/useOxyAuthSession.js.map +1 -1
  43. package/lib/commonjs/ui/hooks/useProfileEditing.js +21 -0
  44. package/lib/commonjs/ui/hooks/useProfileEditing.js.map +1 -1
  45. package/lib/commonjs/ui/hooks/useSessionManagement.js +3 -3
  46. package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -1
  47. package/lib/commonjs/ui/screens/AccountVerificationScreen.js +100 -108
  48. package/lib/commonjs/ui/screens/AccountVerificationScreen.js.map +1 -1
  49. package/lib/commonjs/ui/screens/AppInfoScreen.js +227 -273
  50. package/lib/commonjs/ui/screens/AppInfoScreen.js.map +1 -1
  51. package/lib/commonjs/ui/screens/AvatarCropScreen.js +10 -4
  52. package/lib/commonjs/ui/screens/AvatarCropScreen.js.map +1 -1
  53. package/lib/commonjs/ui/screens/ConnectedAppsScreen.js +20 -37
  54. package/lib/commonjs/ui/screens/ConnectedAppsScreen.js.map +1 -1
  55. package/lib/commonjs/ui/screens/CreateManagedAccountScreen.js +89 -201
  56. package/lib/commonjs/ui/screens/CreateManagedAccountScreen.js.map +1 -1
  57. package/lib/commonjs/ui/screens/EditProfileFieldScreen.js +80 -208
  58. package/lib/commonjs/ui/screens/EditProfileFieldScreen.js.map +1 -1
  59. package/lib/commonjs/ui/screens/FAQScreen.js +56 -208
  60. package/lib/commonjs/ui/screens/FAQScreen.js.map +1 -1
  61. package/lib/commonjs/ui/screens/FeedbackScreen.js +303 -352
  62. package/lib/commonjs/ui/screens/FeedbackScreen.js.map +1 -1
  63. package/lib/commonjs/ui/screens/FileManagementScreen.js +20 -20
  64. package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
  65. package/lib/commonjs/ui/screens/HelpSupportScreen.js +77 -89
  66. package/lib/commonjs/ui/screens/HelpSupportScreen.js.map +1 -1
  67. package/lib/commonjs/ui/screens/HistoryViewScreen.js +43 -58
  68. package/lib/commonjs/ui/screens/HistoryViewScreen.js.map +1 -1
  69. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js +67 -90
  70. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js.map +1 -1
  71. package/lib/commonjs/ui/screens/LearnMoreUsernamesScreen.js +77 -177
  72. package/lib/commonjs/ui/screens/LearnMoreUsernamesScreen.js.map +1 -1
  73. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js +113 -107
  74. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js.map +1 -1
  75. package/lib/commonjs/ui/screens/ManageAccountScreen.js +55 -114
  76. package/lib/commonjs/ui/screens/ManageAccountScreen.js.map +1 -1
  77. package/lib/commonjs/ui/screens/NotificationsScreen.js +67 -85
  78. package/lib/commonjs/ui/screens/NotificationsScreen.js.map +1 -1
  79. package/lib/commonjs/ui/screens/OxyAuthScreen.js +71 -135
  80. package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +1 -1
  81. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js +15 -9
  82. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js.map +1 -1
  83. package/lib/commonjs/ui/screens/PreferencesScreen.js +65 -83
  84. package/lib/commonjs/ui/screens/PreferencesScreen.js.map +1 -1
  85. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +378 -1023
  86. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  87. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +294 -242
  88. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
  89. package/lib/commonjs/ui/screens/ProfileScreen.js +194 -333
  90. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
  91. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js +57 -97
  92. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js.map +1 -1
  93. package/lib/commonjs/ui/screens/SearchSettingsScreen.js +41 -41
  94. package/lib/commonjs/ui/screens/SearchSettingsScreen.js.map +1 -1
  95. package/lib/commonjs/ui/screens/UserLinksScreen.js +17 -24
  96. package/lib/commonjs/ui/screens/UserLinksScreen.js.map +1 -1
  97. package/lib/commonjs/ui/screens/UserListScreen.js +83 -214
  98. package/lib/commonjs/ui/screens/UserListScreen.js.map +1 -1
  99. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +115 -77
  100. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  101. package/lib/commonjs/ui/screens/trust/TrustAboutScreen.js +70 -57
  102. package/lib/commonjs/ui/screens/trust/TrustAboutScreen.js.map +1 -1
  103. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js +136 -332
  104. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js.map +1 -1
  105. package/lib/commonjs/ui/screens/trust/TrustFAQScreen.js +47 -137
  106. package/lib/commonjs/ui/screens/trust/TrustFAQScreen.js.map +1 -1
  107. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js +182 -115
  108. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
  109. package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js +138 -214
  110. package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js.map +1 -1
  111. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js +54 -92
  112. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js.map +1 -1
  113. package/lib/commonjs/ui/utils/activeAuthuser.js +15 -9
  114. package/lib/commonjs/ui/utils/activeAuthuser.js.map +1 -1
  115. package/lib/commonjs/ui/utils/avatarUtils.js +1 -1
  116. package/lib/commonjs/ui/utils/avatarUtils.js.map +1 -1
  117. package/lib/module/index.js +2 -0
  118. package/lib/module/index.js.map +1 -1
  119. package/lib/module/ui/components/AccountMenu.js +10 -6
  120. package/lib/module/ui/components/AccountMenu.js.map +1 -1
  121. package/lib/module/ui/components/AnotherDeviceQR.js +50 -56
  122. package/lib/module/ui/components/AnotherDeviceQR.js.map +1 -1
  123. package/lib/module/ui/components/BottomSheetRouter.js +2 -1
  124. package/lib/module/ui/components/BottomSheetRouter.js.map +1 -1
  125. package/lib/module/ui/components/FollowButton.js +18 -5
  126. package/lib/module/ui/components/FollowButton.js.map +1 -1
  127. package/lib/module/ui/components/OxyLogo.js +1 -1
  128. package/lib/module/ui/components/OxyLogo.js.map +1 -1
  129. package/lib/module/ui/components/OxyProvider.js +23 -7
  130. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  131. package/lib/module/ui/components/SignInModal.js +20 -1
  132. package/lib/module/ui/components/SignInModal.js.map +1 -1
  133. package/lib/module/ui/components/fileManagement/FileViewer.js +19 -9
  134. package/lib/module/ui/components/fileManagement/FileViewer.js.map +1 -1
  135. package/lib/module/ui/components/fileManagement/UploadPreview.js +4 -2
  136. package/lib/module/ui/components/fileManagement/UploadPreview.js.map +1 -1
  137. package/lib/module/ui/context/OxyContext.js +154 -20
  138. package/lib/module/ui/context/OxyContext.js.map +1 -1
  139. package/lib/module/ui/context/hooks/useAuthOperations.js +6 -17
  140. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
  141. package/lib/module/ui/hooks/mutations/mutationFactory.js +5 -5
  142. package/lib/module/ui/hooks/mutations/mutationFactory.js.map +1 -1
  143. package/lib/module/ui/hooks/mutations/useAccountMutations.js +38 -38
  144. package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  145. package/lib/module/ui/hooks/mutations/useServicesMutations.js +2 -2
  146. package/lib/module/ui/hooks/mutations/useServicesMutations.js.map +1 -1
  147. package/lib/module/ui/hooks/queries/queryKeys.js +3 -3
  148. package/lib/module/ui/hooks/queries/queryKeys.js.map +1 -1
  149. package/lib/module/ui/hooks/queries/useAccountQueries.js +1 -1
  150. package/lib/module/ui/hooks/queries/useAccountQueries.js.map +1 -1
  151. package/lib/module/ui/hooks/queries/usePaymentQueries.js +16 -12
  152. package/lib/module/ui/hooks/queries/usePaymentQueries.js.map +1 -1
  153. package/lib/module/ui/hooks/queries/useServicesQueries.js +9 -6
  154. package/lib/module/ui/hooks/queries/useServicesQueries.js.map +1 -1
  155. package/lib/module/ui/hooks/queryClient.js +6 -5
  156. package/lib/module/ui/hooks/queryClient.js.map +1 -1
  157. package/lib/module/ui/hooks/useOxyAuthSession.js +40 -2
  158. package/lib/module/ui/hooks/useOxyAuthSession.js.map +1 -1
  159. package/lib/module/ui/hooks/useProfileEditing.js +21 -0
  160. package/lib/module/ui/hooks/useProfileEditing.js.map +1 -1
  161. package/lib/module/ui/hooks/useSessionManagement.js +4 -3
  162. package/lib/module/ui/hooks/useSessionManagement.js.map +1 -1
  163. package/lib/module/ui/screens/AccountVerificationScreen.js +101 -109
  164. package/lib/module/ui/screens/AccountVerificationScreen.js.map +1 -1
  165. package/lib/module/ui/screens/AppInfoScreen.js +228 -275
  166. package/lib/module/ui/screens/AppInfoScreen.js.map +1 -1
  167. package/lib/module/ui/screens/AvatarCropScreen.js +10 -4
  168. package/lib/module/ui/screens/AvatarCropScreen.js.map +1 -1
  169. package/lib/module/ui/screens/ConnectedAppsScreen.js +19 -39
  170. package/lib/module/ui/screens/ConnectedAppsScreen.js.map +1 -1
  171. package/lib/module/ui/screens/CreateManagedAccountScreen.js +90 -202
  172. package/lib/module/ui/screens/CreateManagedAccountScreen.js.map +1 -1
  173. package/lib/module/ui/screens/EditProfileFieldScreen.js +77 -205
  174. package/lib/module/ui/screens/EditProfileFieldScreen.js.map +1 -1
  175. package/lib/module/ui/screens/FAQScreen.js +55 -207
  176. package/lib/module/ui/screens/FAQScreen.js.map +1 -1
  177. package/lib/module/ui/screens/FeedbackScreen.js +301 -350
  178. package/lib/module/ui/screens/FeedbackScreen.js.map +1 -1
  179. package/lib/module/ui/screens/FileManagementScreen.js +20 -20
  180. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
  181. package/lib/module/ui/screens/HelpSupportScreen.js +78 -90
  182. package/lib/module/ui/screens/HelpSupportScreen.js.map +1 -1
  183. package/lib/module/ui/screens/HistoryViewScreen.js +44 -59
  184. package/lib/module/ui/screens/HistoryViewScreen.js.map +1 -1
  185. package/lib/module/ui/screens/LanguageSelectorScreen.js +68 -91
  186. package/lib/module/ui/screens/LanguageSelectorScreen.js.map +1 -1
  187. package/lib/module/ui/screens/LearnMoreUsernamesScreen.js +75 -177
  188. package/lib/module/ui/screens/LearnMoreUsernamesScreen.js.map +1 -1
  189. package/lib/module/ui/screens/LegalDocumentsScreen.js +116 -108
  190. package/lib/module/ui/screens/LegalDocumentsScreen.js.map +1 -1
  191. package/lib/module/ui/screens/ManageAccountScreen.js +52 -112
  192. package/lib/module/ui/screens/ManageAccountScreen.js.map +1 -1
  193. package/lib/module/ui/screens/NotificationsScreen.js +68 -86
  194. package/lib/module/ui/screens/NotificationsScreen.js.map +1 -1
  195. package/lib/module/ui/screens/OxyAuthScreen.js +69 -134
  196. package/lib/module/ui/screens/OxyAuthScreen.js.map +1 -1
  197. package/lib/module/ui/screens/PaymentGatewayScreen.js +16 -10
  198. package/lib/module/ui/screens/PaymentGatewayScreen.js.map +1 -1
  199. package/lib/module/ui/screens/PreferencesScreen.js +66 -84
  200. package/lib/module/ui/screens/PreferencesScreen.js.map +1 -1
  201. package/lib/module/ui/screens/PremiumSubscriptionScreen.js +366 -1012
  202. package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  203. package/lib/module/ui/screens/PrivacySettingsScreen.js +295 -243
  204. package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
  205. package/lib/module/ui/screens/ProfileScreen.js +192 -331
  206. package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
  207. package/lib/module/ui/screens/SavesCollectionsScreen.js +58 -98
  208. package/lib/module/ui/screens/SavesCollectionsScreen.js.map +1 -1
  209. package/lib/module/ui/screens/SearchSettingsScreen.js +42 -42
  210. package/lib/module/ui/screens/SearchSettingsScreen.js.map +1 -1
  211. package/lib/module/ui/screens/UserLinksScreen.js +18 -25
  212. package/lib/module/ui/screens/UserLinksScreen.js.map +1 -1
  213. package/lib/module/ui/screens/UserListScreen.js +81 -212
  214. package/lib/module/ui/screens/UserListScreen.js.map +1 -1
  215. package/lib/module/ui/screens/WelcomeNewUserScreen.js +114 -76
  216. package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  217. package/lib/module/ui/screens/trust/TrustAboutScreen.js +69 -57
  218. package/lib/module/ui/screens/trust/TrustAboutScreen.js.map +1 -1
  219. package/lib/module/ui/screens/trust/TrustCenterScreen.js +135 -332
  220. package/lib/module/ui/screens/trust/TrustCenterScreen.js.map +1 -1
  221. package/lib/module/ui/screens/trust/TrustFAQScreen.js +48 -138
  222. package/lib/module/ui/screens/trust/TrustFAQScreen.js.map +1 -1
  223. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js +184 -117
  224. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
  225. package/lib/module/ui/screens/trust/TrustRewardsScreen.js +132 -208
  226. package/lib/module/ui/screens/trust/TrustRewardsScreen.js.map +1 -1
  227. package/lib/module/ui/screens/trust/TrustRulesScreen.js +58 -94
  228. package/lib/module/ui/screens/trust/TrustRulesScreen.js.map +1 -1
  229. package/lib/module/ui/utils/activeAuthuser.js +15 -9
  230. package/lib/module/ui/utils/activeAuthuser.js.map +1 -1
  231. package/lib/module/ui/utils/avatarUtils.js +1 -1
  232. package/lib/module/ui/utils/avatarUtils.js.map +1 -1
  233. package/lib/typescript/commonjs/index.d.ts +2 -0
  234. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  235. package/lib/typescript/commonjs/ui/components/AccountMenu.d.ts +2 -0
  236. package/lib/typescript/commonjs/ui/components/AccountMenu.d.ts.map +1 -1
  237. package/lib/typescript/commonjs/ui/components/AnotherDeviceQR.d.ts +12 -2
  238. package/lib/typescript/commonjs/ui/components/AnotherDeviceQR.d.ts.map +1 -1
  239. package/lib/typescript/commonjs/ui/components/BottomSheetRouter.d.ts.map +1 -1
  240. package/lib/typescript/commonjs/ui/components/FollowButton.d.ts.map +1 -1
  241. package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts +3 -2
  242. package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
  243. package/lib/typescript/commonjs/ui/components/SignInModal.d.ts.map +1 -1
  244. package/lib/typescript/commonjs/ui/components/TouchableRipple/TouchableRipple.native.d.ts +1 -1
  245. package/lib/typescript/commonjs/ui/components/TouchableRipple/TouchableRipple.native.d.ts.map +1 -1
  246. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts +34 -0
  247. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  248. package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  249. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts +6 -0
  250. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  251. package/lib/typescript/commonjs/ui/hooks/queries/queryKeys.d.ts +3 -3
  252. package/lib/typescript/commonjs/ui/hooks/queries/queryKeys.d.ts.map +1 -1
  253. package/lib/typescript/commonjs/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  254. package/lib/typescript/commonjs/ui/hooks/queryClient.d.ts.map +1 -1
  255. package/lib/typescript/commonjs/ui/hooks/useOxyAuthSession.d.ts +22 -0
  256. package/lib/typescript/commonjs/ui/hooks/useOxyAuthSession.d.ts.map +1 -1
  257. package/lib/typescript/commonjs/ui/hooks/useProfileEditing.d.ts +3 -0
  258. package/lib/typescript/commonjs/ui/hooks/useProfileEditing.d.ts.map +1 -1
  259. package/lib/typescript/commonjs/ui/hooks/useSessionManagement.d.ts +2 -1
  260. package/lib/typescript/commonjs/ui/hooks/useSessionManagement.d.ts.map +1 -1
  261. package/lib/typescript/commonjs/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
  262. package/lib/typescript/commonjs/ui/screens/AppInfoScreen.d.ts.map +1 -1
  263. package/lib/typescript/commonjs/ui/screens/AvatarCropScreen.d.ts.map +1 -1
  264. package/lib/typescript/commonjs/ui/screens/ConnectedAppsScreen.d.ts.map +1 -1
  265. package/lib/typescript/commonjs/ui/screens/CreateManagedAccountScreen.d.ts.map +1 -1
  266. package/lib/typescript/commonjs/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
  267. package/lib/typescript/commonjs/ui/screens/FAQScreen.d.ts.map +1 -1
  268. package/lib/typescript/commonjs/ui/screens/FeedbackScreen.d.ts.map +1 -1
  269. package/lib/typescript/commonjs/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  270. package/lib/typescript/commonjs/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  271. package/lib/typescript/commonjs/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  272. package/lib/typescript/commonjs/ui/screens/LearnMoreUsernamesScreen.d.ts.map +1 -1
  273. package/lib/typescript/commonjs/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
  274. package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  275. package/lib/typescript/commonjs/ui/screens/NotificationsScreen.d.ts.map +1 -1
  276. package/lib/typescript/commonjs/ui/screens/OxyAuthScreen.d.ts.map +1 -1
  277. package/lib/typescript/commonjs/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  278. package/lib/typescript/commonjs/ui/screens/PreferencesScreen.d.ts.map +1 -1
  279. package/lib/typescript/commonjs/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  280. package/lib/typescript/commonjs/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  281. package/lib/typescript/commonjs/ui/screens/ProfileScreen.d.ts.map +1 -1
  282. package/lib/typescript/commonjs/ui/screens/SavesCollectionsScreen.d.ts.map +1 -1
  283. package/lib/typescript/commonjs/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  284. package/lib/typescript/commonjs/ui/screens/UserLinksScreen.d.ts.map +1 -1
  285. package/lib/typescript/commonjs/ui/screens/UserListScreen.d.ts.map +1 -1
  286. package/lib/typescript/commonjs/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
  287. package/lib/typescript/commonjs/ui/screens/trust/TrustAboutScreen.d.ts.map +1 -1
  288. package/lib/typescript/commonjs/ui/screens/trust/TrustCenterScreen.d.ts.map +1 -1
  289. package/lib/typescript/commonjs/ui/screens/trust/TrustFAQScreen.d.ts.map +1 -1
  290. package/lib/typescript/commonjs/ui/screens/trust/TrustLeaderboardScreen.d.ts.map +1 -1
  291. package/lib/typescript/commonjs/ui/screens/trust/TrustRewardsScreen.d.ts.map +1 -1
  292. package/lib/typescript/commonjs/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
  293. package/lib/typescript/commonjs/ui/utils/activeAuthuser.d.ts.map +1 -1
  294. package/lib/typescript/module/index.d.ts +2 -0
  295. package/lib/typescript/module/index.d.ts.map +1 -1
  296. package/lib/typescript/module/ui/components/AccountMenu.d.ts +2 -0
  297. package/lib/typescript/module/ui/components/AccountMenu.d.ts.map +1 -1
  298. package/lib/typescript/module/ui/components/AnotherDeviceQR.d.ts +12 -2
  299. package/lib/typescript/module/ui/components/AnotherDeviceQR.d.ts.map +1 -1
  300. package/lib/typescript/module/ui/components/BottomSheetRouter.d.ts.map +1 -1
  301. package/lib/typescript/module/ui/components/FollowButton.d.ts.map +1 -1
  302. package/lib/typescript/module/ui/components/OxyProvider.d.ts +3 -2
  303. package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
  304. package/lib/typescript/module/ui/components/SignInModal.d.ts.map +1 -1
  305. package/lib/typescript/module/ui/components/TouchableRipple/TouchableRipple.native.d.ts +1 -1
  306. package/lib/typescript/module/ui/components/TouchableRipple/TouchableRipple.native.d.ts.map +1 -1
  307. package/lib/typescript/module/ui/context/OxyContext.d.ts +34 -0
  308. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  309. package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  310. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts +6 -0
  311. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  312. package/lib/typescript/module/ui/hooks/queries/queryKeys.d.ts +3 -3
  313. package/lib/typescript/module/ui/hooks/queries/queryKeys.d.ts.map +1 -1
  314. package/lib/typescript/module/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  315. package/lib/typescript/module/ui/hooks/queryClient.d.ts.map +1 -1
  316. package/lib/typescript/module/ui/hooks/useOxyAuthSession.d.ts +22 -0
  317. package/lib/typescript/module/ui/hooks/useOxyAuthSession.d.ts.map +1 -1
  318. package/lib/typescript/module/ui/hooks/useProfileEditing.d.ts +3 -0
  319. package/lib/typescript/module/ui/hooks/useProfileEditing.d.ts.map +1 -1
  320. package/lib/typescript/module/ui/hooks/useSessionManagement.d.ts +2 -1
  321. package/lib/typescript/module/ui/hooks/useSessionManagement.d.ts.map +1 -1
  322. package/lib/typescript/module/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
  323. package/lib/typescript/module/ui/screens/AppInfoScreen.d.ts.map +1 -1
  324. package/lib/typescript/module/ui/screens/AvatarCropScreen.d.ts.map +1 -1
  325. package/lib/typescript/module/ui/screens/ConnectedAppsScreen.d.ts.map +1 -1
  326. package/lib/typescript/module/ui/screens/CreateManagedAccountScreen.d.ts.map +1 -1
  327. package/lib/typescript/module/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
  328. package/lib/typescript/module/ui/screens/FAQScreen.d.ts.map +1 -1
  329. package/lib/typescript/module/ui/screens/FeedbackScreen.d.ts.map +1 -1
  330. package/lib/typescript/module/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  331. package/lib/typescript/module/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  332. package/lib/typescript/module/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  333. package/lib/typescript/module/ui/screens/LearnMoreUsernamesScreen.d.ts.map +1 -1
  334. package/lib/typescript/module/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
  335. package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  336. package/lib/typescript/module/ui/screens/NotificationsScreen.d.ts.map +1 -1
  337. package/lib/typescript/module/ui/screens/OxyAuthScreen.d.ts.map +1 -1
  338. package/lib/typescript/module/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  339. package/lib/typescript/module/ui/screens/PreferencesScreen.d.ts.map +1 -1
  340. package/lib/typescript/module/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  341. package/lib/typescript/module/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  342. package/lib/typescript/module/ui/screens/ProfileScreen.d.ts.map +1 -1
  343. package/lib/typescript/module/ui/screens/SavesCollectionsScreen.d.ts.map +1 -1
  344. package/lib/typescript/module/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  345. package/lib/typescript/module/ui/screens/UserLinksScreen.d.ts.map +1 -1
  346. package/lib/typescript/module/ui/screens/UserListScreen.d.ts.map +1 -1
  347. package/lib/typescript/module/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
  348. package/lib/typescript/module/ui/screens/trust/TrustAboutScreen.d.ts.map +1 -1
  349. package/lib/typescript/module/ui/screens/trust/TrustCenterScreen.d.ts.map +1 -1
  350. package/lib/typescript/module/ui/screens/trust/TrustFAQScreen.d.ts.map +1 -1
  351. package/lib/typescript/module/ui/screens/trust/TrustLeaderboardScreen.d.ts.map +1 -1
  352. package/lib/typescript/module/ui/screens/trust/TrustRewardsScreen.d.ts.map +1 -1
  353. package/lib/typescript/module/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
  354. package/lib/typescript/module/ui/utils/activeAuthuser.d.ts.map +1 -1
  355. package/lib/typescript/types/expo-haptics.d.ts +42 -0
  356. package/package.json +8 -3
  357. package/src/index.ts +2 -0
  358. package/src/types/expo-haptics.d.ts +42 -0
  359. package/src/ui/components/AccountMenu.tsx +11 -5
  360. package/src/ui/components/AnotherDeviceQR.tsx +53 -45
  361. package/src/ui/components/BottomSheetRouter.tsx +2 -1
  362. package/src/ui/components/FollowButton.tsx +24 -5
  363. package/src/ui/components/OxyLogo.tsx +1 -1
  364. package/src/ui/components/OxyProvider.tsx +22 -8
  365. package/src/ui/components/SignInModal.tsx +21 -2
  366. package/src/ui/components/TouchableRipple/TouchableRipple.native.tsx +1 -1
  367. package/src/ui/components/fileManagement/FileViewer.tsx +9 -9
  368. package/src/ui/components/fileManagement/UploadPreview.tsx +2 -2
  369. package/src/ui/context/OxyContext.tsx +178 -21
  370. package/src/ui/context/hooks/useAuthOperations.ts +6 -17
  371. package/src/ui/hooks/mutations/mutationFactory.ts +5 -5
  372. package/src/ui/hooks/mutations/useAccountMutations.ts +38 -38
  373. package/src/ui/hooks/mutations/useServicesMutations.ts +2 -2
  374. package/src/ui/hooks/queries/queryKeys.ts +6 -3
  375. package/src/ui/hooks/queries/useAccountQueries.ts +1 -1
  376. package/src/ui/hooks/queries/usePaymentQueries.ts +12 -12
  377. package/src/ui/hooks/queries/useServicesQueries.ts +9 -6
  378. package/src/ui/hooks/queryClient.ts +5 -5
  379. package/src/ui/hooks/useOxyAuthSession.ts +76 -2
  380. package/src/ui/hooks/useProfileEditing.ts +24 -0
  381. package/src/ui/hooks/useSessionManagement.ts +9 -6
  382. package/src/ui/screens/AccountVerificationScreen.tsx +101 -113
  383. package/src/ui/screens/AppInfoScreen.tsx +200 -238
  384. package/src/ui/screens/AvatarCropScreen.tsx +17 -4
  385. package/src/ui/screens/ConnectedAppsScreen.tsx +16 -34
  386. package/src/ui/screens/CreateManagedAccountScreen.tsx +94 -170
  387. package/src/ui/screens/EditProfileFieldScreen.tsx +77 -190
  388. package/src/ui/screens/FAQScreen.tsx +77 -208
  389. package/src/ui/screens/FeedbackScreen.tsx +330 -239
  390. package/src/ui/screens/FileManagementScreen.tsx +20 -20
  391. package/src/ui/screens/HelpSupportScreen.tsx +67 -82
  392. package/src/ui/screens/HistoryViewScreen.tsx +32 -38
  393. package/src/ui/screens/LanguageSelectorScreen.tsx +79 -93
  394. package/src/ui/screens/LearnMoreUsernamesScreen.tsx +81 -164
  395. package/src/ui/screens/LegalDocumentsScreen.tsx +184 -123
  396. package/src/ui/screens/ManageAccountScreen.tsx +48 -114
  397. package/src/ui/screens/NotificationsScreen.tsx +107 -106
  398. package/src/ui/screens/OxyAuthScreen.tsx +76 -109
  399. package/src/ui/screens/PaymentGatewayScreen.tsx +16 -7
  400. package/src/ui/screens/PreferencesScreen.tsx +96 -116
  401. package/src/ui/screens/PremiumSubscriptionScreen.tsx +419 -872
  402. package/src/ui/screens/PrivacySettingsScreen.tsx +203 -185
  403. package/src/ui/screens/ProfileScreen.tsx +162 -246
  404. package/src/ui/screens/SavesCollectionsScreen.tsx +78 -125
  405. package/src/ui/screens/SearchSettingsScreen.tsx +52 -41
  406. package/src/ui/screens/UserLinksScreen.tsx +18 -25
  407. package/src/ui/screens/UserListScreen.tsx +95 -188
  408. package/src/ui/screens/WelcomeNewUserScreen.tsx +109 -36
  409. package/src/ui/screens/trust/TrustAboutScreen.tsx +52 -41
  410. package/src/ui/screens/trust/TrustCenterScreen.tsx +184 -222
  411. package/src/ui/screens/trust/TrustFAQScreen.tsx +64 -124
  412. package/src/ui/screens/trust/TrustLeaderboardScreen.tsx +190 -67
  413. package/src/ui/screens/trust/TrustRewardsScreen.tsx +147 -182
  414. package/src/ui/screens/trust/TrustRulesScreen.tsx +77 -50
  415. package/src/ui/utils/activeAuthuser.ts +15 -9
  416. package/src/ui/utils/avatarUtils.ts +1 -1
  417. package/lib/commonjs/ui/components/feedback/FormInput.js +0 -72
  418. package/lib/commonjs/ui/components/feedback/FormInput.js.map +0 -1
  419. package/lib/commonjs/ui/components/feedback/feedbackStyles.js +0 -261
  420. package/lib/commonjs/ui/components/feedback/feedbackStyles.js.map +0 -1
  421. package/lib/module/ui/components/feedback/FormInput.js +0 -67
  422. package/lib/module/ui/components/feedback/FormInput.js.map +0 -1
  423. package/lib/module/ui/components/feedback/feedbackStyles.js +0 -256
  424. package/lib/module/ui/components/feedback/feedbackStyles.js.map +0 -1
  425. package/lib/typescript/commonjs/ui/components/feedback/FormInput.d.ts +0 -20
  426. package/lib/typescript/commonjs/ui/components/feedback/FormInput.d.ts.map +0 -1
  427. package/lib/typescript/commonjs/ui/components/feedback/feedbackStyles.d.ts +0 -279
  428. package/lib/typescript/commonjs/ui/components/feedback/feedbackStyles.d.ts.map +0 -1
  429. package/lib/typescript/module/ui/components/feedback/FormInput.d.ts +0 -20
  430. package/lib/typescript/module/ui/components/feedback/FormInput.d.ts.map +0 -1
  431. package/lib/typescript/module/ui/components/feedback/feedbackStyles.d.ts +0 -279
  432. package/lib/typescript/module/ui/components/feedback/feedbackStyles.d.ts.map +0 -1
  433. package/src/ui/components/feedback/FormInput.tsx +0 -84
  434. package/src/ui/components/feedback/feedbackStyles.ts +0 -246
@@ -1,25 +1,49 @@
1
1
  "use strict";
2
2
 
3
3
  import { useState, useRef, useCallback, useMemo } from 'react';
4
- import { View, Text, TouchableOpacity, ActivityIndicator, Platform, KeyboardAvoidingView, ScrollView, Animated, StatusBar } from 'react-native';
5
- import { useThemeColors } from "../styles/theme.js";
4
+ import { View, Platform, KeyboardAvoidingView, ScrollView, Animated, StyleSheet } from 'react-native';
6
5
  import { normalizeTheme } from '@oxyhq/core';
6
+ import { packageInfo } from '@oxyhq/core';
7
7
  import { useTheme } from '@oxyhq/bloom/theme';
8
8
  import { Ionicons } from '@expo/vector-icons';
9
9
  import { toast } from '@oxyhq/bloom';
10
- import { packageInfo } from '@oxyhq/core';
10
+ import { H2, Text } from '@oxyhq/bloom/typography';
11
+ import { Button } from '@oxyhq/bloom/button';
12
+ import { TextField, TextFieldInput } from '@oxyhq/bloom/text-field';
13
+ import { Switch } from '@oxyhq/bloom/switch';
11
14
  import { SettingsListGroup, SettingsListItem } from '@oxyhq/bloom/settings-list';
12
15
  import { SettingsIcon } from "../components/SettingsIcon.js";
16
+ import Header from "../components/Header.js";
13
17
  import { useI18n } from "../hooks/useI18n.js";
14
18
  import { useOxy } from "../context/OxyContext.js";
15
- import FormInput from "../components/feedback/FormInput.js";
16
- import ProgressIndicator from "../components/feedback/ProgressIndicator.js";
17
19
  import { useFeedbackForm } from "../components/feedback/useFeedbackForm.js";
18
- import { createFeedbackStyles } from "../components/feedback/feedbackStyles.js";
19
20
  import { FEEDBACK_TYPES, PRIORITY_LEVELS, CATEGORIES } from "../components/feedback/constants.js";
20
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
21
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
22
+ /** Step transition timing — measured animation, not a design token. */
23
+ const STEP_FADE_OUT_MS = 250;
24
+ const STEP_FADE_IN_MS = 250;
25
+ const STEP_SLIDE_IN_MS = 300;
26
+ const STEP_SLIDE_FROM = -100;
27
+ const TOTAL_STEPS = 4;
28
+ const LAST_STEP_INDEX = TOTAL_STEPS - 1;
29
+ const SUCCESS_RESET_DELAY_MS = 3000;
30
+
31
+ /** Maps each feedback type to a Bloom theme role + MaterialCommunityIcons glyph. */
32
+ const TYPE_ICON_GLYPH = {
33
+ bug: 'bug',
34
+ feature: 'lightbulb-on',
35
+ general: 'chat',
36
+ support: 'help-circle'
37
+ };
38
+
39
+ /** Maps each priority level to a MaterialCommunityIcons glyph. */
40
+ const PRIORITY_ICON_GLYPH = {
41
+ low: 'arrow-down',
42
+ medium: 'minus',
43
+ high: 'arrow-up',
44
+ critical: 'alert'
45
+ };
21
46
  const FeedbackScreen = ({
22
- navigate,
23
47
  goBack,
24
48
  onClose,
25
49
  theme
@@ -29,8 +53,8 @@ const FeedbackScreen = ({
29
53
  oxyServices
30
54
  } = useOxy();
31
55
  const normalizedTheme = normalizeTheme(theme);
32
- const colors = useThemeColors(normalizedTheme);
33
56
  const bloomTheme = useTheme();
57
+ const colors = bloomTheme.colors;
34
58
  const {
35
59
  t
36
60
  } = useI18n();
@@ -42,31 +66,62 @@ const FeedbackScreen = ({
42
66
  resetForm
43
67
  } = useFeedbackForm();
44
68
  const [currentStep, setCurrentStep] = useState(0);
45
- const [errorMessage, setErrorMessage] = useState('');
69
+ const [, setErrorMessage] = useState('');
46
70
  const fadeAnim = useRef(new Animated.Value(1)).current;
47
71
  const slideAnim = useRef(new Animated.Value(0)).current;
48
- const styles = useMemo(() => createFeedbackStyles(colors), [colors]);
72
+
73
+ /** Theme-role color for each feedback type pill. */
74
+ const typeColor = useCallback(id => {
75
+ switch (id) {
76
+ case 'bug':
77
+ return colors.negative;
78
+ case 'feature':
79
+ return colors.info;
80
+ case 'general':
81
+ return colors.success;
82
+ case 'support':
83
+ return colors.warning;
84
+ default:
85
+ return colors.primary;
86
+ }
87
+ }, [colors]);
88
+
89
+ /** Theme-role color for each priority level. */
90
+ const priorityColor = useCallback(id => {
91
+ switch (id) {
92
+ case 'low':
93
+ return colors.success;
94
+ case 'medium':
95
+ return colors.warning;
96
+ case 'high':
97
+ return colors.negative;
98
+ case 'critical':
99
+ return colors.negative;
100
+ default:
101
+ return colors.primary;
102
+ }
103
+ }, [colors]);
49
104
  const animateTransition = useCallback(nextStep => {
50
105
  Animated.timing(fadeAnim, {
51
106
  toValue: 0,
52
- duration: 250,
107
+ duration: STEP_FADE_OUT_MS,
53
108
  useNativeDriver: Platform.OS !== 'web'
54
109
  }).start(() => {
55
110
  setCurrentStep(nextStep);
56
- slideAnim.setValue(-100);
111
+ slideAnim.setValue(STEP_SLIDE_FROM);
57
112
  Animated.parallel([Animated.timing(fadeAnim, {
58
113
  toValue: 1,
59
- duration: 250,
114
+ duration: STEP_FADE_IN_MS,
60
115
  useNativeDriver: Platform.OS !== 'web'
61
116
  }), Animated.timing(slideAnim, {
62
117
  toValue: 0,
63
- duration: 300,
118
+ duration: STEP_SLIDE_IN_MS,
64
119
  useNativeDriver: Platform.OS !== 'web'
65
120
  })]).start();
66
121
  });
67
122
  }, [fadeAnim, slideAnim]);
68
123
  const nextStep = useCallback(() => {
69
- if (currentStep < 3) {
124
+ if (currentStep < LAST_STEP_INDEX) {
70
125
  animateTransition(currentStep + 1);
71
126
  }
72
127
  }, [currentStep, animateTransition]);
@@ -76,13 +131,13 @@ const FeedbackScreen = ({
76
131
  }
77
132
  }, [currentStep, animateTransition]);
78
133
  const isTypeStepValid = useCallback(() => {
79
- return feedbackData.type && feedbackData.category;
134
+ return Boolean(feedbackData.type && feedbackData.category);
80
135
  }, [feedbackData.type, feedbackData.category]);
81
136
  const isDetailsStepValid = useCallback(() => {
82
- return feedbackData.title.trim() && feedbackData.description.trim();
137
+ return Boolean(feedbackData.title.trim() && feedbackData.description.trim());
83
138
  }, [feedbackData.title, feedbackData.description]);
84
139
  const isContactStepValid = useCallback(() => {
85
- return feedbackData.contactEmail.trim() || user?.email;
140
+ return Boolean(feedbackData.contactEmail.trim() || user?.email);
86
141
  }, [feedbackData.contactEmail, user?.email]);
87
142
  const handleSubmitFeedback = useCallback(async () => {
88
143
  if (!isTypeStepValid() || !isDetailsStepValid() || !isContactStepValid()) {
@@ -120,15 +175,16 @@ const FeedbackScreen = ({
120
175
  setTimeout(() => {
121
176
  resetForm();
122
177
  setCurrentStep(0);
123
- }, 3000);
178
+ }, SUCCESS_RESET_DELAY_MS);
124
179
  } catch (error) {
180
+ const message = (error instanceof Error ? error.message : null) || t('feedback.toasts.submitFailed') || 'Failed to submit feedback';
125
181
  setFeedbackState({
126
182
  status: 'error',
127
- message: (error instanceof Error ? error.message : null) || t('feedback.toasts.submitFailed') || 'Failed to submit feedback'
183
+ message
128
184
  });
129
- toast.error((error instanceof Error ? error.message : null) || t('feedback.toasts.submitFailed') || 'Failed to submit feedback');
185
+ toast.error(message);
130
186
  }
131
- }, [feedbackData, user, isTypeStepValid, isDetailsStepValid, isContactStepValid, resetForm, setFeedbackState, t]);
187
+ }, [feedbackData, user, oxyServices, isTypeStepValid, isDetailsStepValid, isContactStepValid, resetForm, setFeedbackState, t]);
132
188
  const feedbackTypeData = useMemo(() => FEEDBACK_TYPES.map(type => ({
133
189
  ...type,
134
190
  isSelected: feedbackData.type === type.id
@@ -141,6 +197,27 @@ const FeedbackScreen = ({
141
197
  ...p,
142
198
  isSelected: feedbackData.priority === p.id
143
199
  })), [feedbackData.priority]);
200
+ const renderProgress = () => /*#__PURE__*/_jsx(View, {
201
+ className: "flex-row justify-center gap-space-8 pt-space-8 pb-space-16",
202
+ accessibilityRole: "progressbar",
203
+ accessibilityLabel: `Step ${currentStep + 1} of ${TOTAL_STEPS}`,
204
+ children: Array.from({
205
+ length: TOTAL_STEPS
206
+ }, (_, index) => /*#__PURE__*/_jsx(View, {
207
+ className: currentStep === index ? 'h-space-8 rounded-radius-max bg-fill-brand' : 'h-space-8 rounded-radius-max bg-fill-secondary',
208
+ style: currentStep === index ? styles.progressDotActive : styles.progressDot
209
+ }, index))
210
+ });
211
+ const renderStepHeader = (title, subtitle) => /*#__PURE__*/_jsxs(View, {
212
+ className: "w-full gap-space-8 mb-space-24",
213
+ children: [/*#__PURE__*/_jsx(H2, {
214
+ className: "text-headerBold font-headerBold text-text",
215
+ children: title
216
+ }), /*#__PURE__*/_jsx(Text, {
217
+ className: "text-body font-body text-text-secondary",
218
+ children: subtitle
219
+ })]
220
+ });
144
221
  const renderTypeStep = () => /*#__PURE__*/_jsxs(Animated.View, {
145
222
  style: [styles.stepContainer, {
146
223
  opacity: fadeAnim,
@@ -148,24 +225,13 @@ const FeedbackScreen = ({
148
225
  translateX: slideAnim
149
226
  }]
150
227
  }],
151
- children: [/*#__PURE__*/_jsxs(View, {
152
- style: styles.modernHeader,
153
- children: [/*#__PURE__*/_jsx(Text, {
154
- style: styles.stepTitle,
155
- className: "text-foreground",
156
- children: t('feedback.type.title') || 'What type of feedback?'
157
- }), /*#__PURE__*/_jsx(Text, {
158
- style: styles.modernSubtitle,
159
- className: "text-muted-foreground",
160
- children: t('feedback.type.subtitle') || 'Choose the category that best describes your feedback'
161
- })]
162
- }), /*#__PURE__*/_jsx(View, {
163
- style: styles.fullBleed,
228
+ children: [renderStepHeader(t('feedback.type.title') || 'What type of feedback?', t('feedback.type.subtitle') || 'Choose the category that best describes your feedback'), /*#__PURE__*/_jsx(View, {
229
+ className: "w-full",
164
230
  children: /*#__PURE__*/_jsx(SettingsListGroup, {
165
231
  children: feedbackTypeData.map(type => /*#__PURE__*/_jsx(SettingsListItem, {
166
232
  icon: /*#__PURE__*/_jsx(SettingsIcon, {
167
- name: type.icon,
168
- color: type.color
233
+ name: TYPE_ICON_GLYPH[type.id],
234
+ color: typeColor(type.id)
169
235
  }),
170
236
  title: type.label,
171
237
  description: type.description,
@@ -176,21 +242,18 @@ const FeedbackScreen = ({
176
242
  showChevron: false
177
243
  }, type.id))
178
244
  })
179
- }), feedbackData.type && /*#__PURE__*/_jsxs(View, {
180
- style: styles.categoryContainer,
245
+ }), feedbackData.type ? /*#__PURE__*/_jsxs(View, {
246
+ className: "w-full mt-space-24",
181
247
  children: [/*#__PURE__*/_jsx(Text, {
182
- style: [styles.modernLabel, {
183
- marginBottom: 8
184
- }],
185
- className: "text-muted-foreground",
248
+ className: "text-caption font-caption text-text-secondary mb-space-8",
186
249
  children: t('feedback.category.label') || 'Category'
187
250
  }), /*#__PURE__*/_jsx(View, {
188
- style: styles.fullBleed,
251
+ className: "w-full",
189
252
  children: /*#__PURE__*/_jsx(SettingsListGroup, {
190
253
  children: categoryData.map(cat => /*#__PURE__*/_jsx(SettingsListItem, {
191
254
  icon: /*#__PURE__*/_jsx(SettingsIcon, {
192
- name: cat.isSelected ? 'check-circle' : 'ellipse-outline',
193
- color: cat.isSelected ? colors.primary : colors.secondaryText
255
+ name: cat.isSelected ? 'check-circle' : 'circle-outline',
256
+ color: cat.isSelected ? colors.primary : colors.textSecondary
194
257
  }),
195
258
  title: cat.name,
196
259
  onPress: () => updateField('category', cat.name),
@@ -198,44 +261,32 @@ const FeedbackScreen = ({
198
261
  }, cat.name))
199
262
  })
200
263
  })]
201
- }), /*#__PURE__*/_jsxs(View, {
202
- style: styles.navigationButtons,
203
- children: [/*#__PURE__*/_jsxs(TouchableOpacity, {
204
- style: [styles.navButton, {
205
- borderRadius: 35
206
- }],
207
- className: "border-border",
264
+ }) : null, /*#__PURE__*/_jsxs(View, {
265
+ className: "flex-row gap-space-8 mt-space-24 w-full",
266
+ children: [/*#__PURE__*/_jsx(Button, {
267
+ variant: "secondary",
208
268
  onPress: goBack,
209
- accessibilityRole: "button",
210
269
  accessibilityLabel: "Go back",
211
- children: [/*#__PURE__*/_jsx(Ionicons, {
270
+ icon: /*#__PURE__*/_jsx(Ionicons, {
212
271
  name: "arrow-back",
213
272
  size: 16,
214
273
  color: colors.text
215
- }), /*#__PURE__*/_jsx(Text, {
216
- style: styles.navButtonText,
217
- className: "text-foreground",
218
- children: t('common.actions.back') || 'Back'
219
- })]
220
- }), /*#__PURE__*/_jsxs(TouchableOpacity, {
221
- style: [styles.navButton, {
222
- borderRadius: 35
223
- }],
224
- className: "bg-primary border-primary",
274
+ }),
275
+ style: styles.navButton,
276
+ children: t('common.actions.back') || 'Back'
277
+ }), /*#__PURE__*/_jsx(Button, {
278
+ variant: "primary",
225
279
  onPress: nextStep,
226
280
  disabled: !isTypeStepValid(),
227
- accessibilityRole: "button",
228
281
  accessibilityLabel: "Continue to next step",
229
- children: [/*#__PURE__*/_jsx(Text, {
230
- style: [styles.navButtonText, {
231
- color: bloomTheme.colors.negativeForeground
232
- }],
233
- children: t('common.actions.next') || 'Next'
234
- }), /*#__PURE__*/_jsx(Ionicons, {
282
+ iconPosition: "right",
283
+ icon: /*#__PURE__*/_jsx(Ionicons, {
235
284
  name: "arrow-forward",
236
285
  size: 16,
237
- color: bloomTheme.colors.negativeForeground
238
- })]
286
+ color: colors.primaryForeground
287
+ }),
288
+ style: styles.navButton,
289
+ children: t('common.actions.next') || 'Next'
239
290
  })]
240
291
  })]
241
292
  });
@@ -246,64 +297,51 @@ const FeedbackScreen = ({
246
297
  translateX: slideAnim
247
298
  }]
248
299
  }],
249
- children: [/*#__PURE__*/_jsxs(View, {
250
- style: styles.modernHeader,
251
- children: [/*#__PURE__*/_jsx(Text, {
252
- style: styles.stepTitle,
253
- className: "text-foreground",
254
- children: t('feedback.details.title') || 'Tell us more'
255
- }), /*#__PURE__*/_jsx(Text, {
256
- style: styles.modernSubtitle,
257
- className: "text-muted-foreground",
258
- children: t('feedback.details.subtitle') || 'Provide details about your feedback'
300
+ children: [renderStepHeader(t('feedback.details.title') || 'Tell us more', t('feedback.details.subtitle') || 'Provide details about your feedback'), /*#__PURE__*/_jsxs(View, {
301
+ className: "w-full gap-space-16",
302
+ children: [/*#__PURE__*/_jsx(TextField, {
303
+ children: /*#__PURE__*/_jsx(TextFieldInput, {
304
+ floatingLabel: true,
305
+ label: t('feedback.fields.title.label') || 'Title',
306
+ value: feedbackData.title,
307
+ onChangeText: text => {
308
+ updateField('title', text);
309
+ setErrorMessage('');
310
+ },
311
+ placeholder: t('feedback.fields.title.placeholder') || 'Brief summary of your feedback',
312
+ testID: "feedback-title-input",
313
+ accessibilityLabel: "Feedback title",
314
+ accessibilityHint: "Enter a brief summary of your feedback"
315
+ })
316
+ }), /*#__PURE__*/_jsx(TextField, {
317
+ children: /*#__PURE__*/_jsx(TextFieldInput, {
318
+ floatingLabel: true,
319
+ multiline: true,
320
+ numberOfLines: 6,
321
+ label: t('feedback.fields.description.label') || 'Description',
322
+ value: feedbackData.description,
323
+ onChangeText: text => {
324
+ updateField('description', text);
325
+ setErrorMessage('');
326
+ },
327
+ placeholder: t('feedback.fields.description.placeholder') || 'Please provide detailed information...',
328
+ testID: "feedback-description-input",
329
+ accessibilityLabel: "Feedback description",
330
+ accessibilityHint: "Provide detailed information about your feedback"
331
+ })
259
332
  })]
260
- }), /*#__PURE__*/_jsx(FormInput, {
261
- icon: "create-outline",
262
- label: t('feedback.fields.title.label') || 'Title',
263
- value: feedbackData.title,
264
- onChangeText: text => {
265
- updateField('title', text);
266
- setErrorMessage('');
267
- },
268
- placeholder: t('feedback.fields.title.placeholder') || 'Brief summary of your feedback',
269
- testID: "feedback-title-input",
270
- colors: colors,
271
- styles: styles,
272
- accessibilityLabel: "Feedback title",
273
- accessibilityHint: "Enter a brief summary of your feedback"
274
- }), /*#__PURE__*/_jsx(FormInput, {
275
- icon: "document-text-outline",
276
- label: t('feedback.fields.description.label') || 'Description',
277
- value: feedbackData.description,
278
- onChangeText: text => {
279
- updateField('description', text);
280
- setErrorMessage('');
281
- },
282
- placeholder: t('feedback.fields.description.placeholder') || 'Please provide detailed information...',
283
- multiline: true,
284
- numberOfLines: 6,
285
- testID: "feedback-description-input",
286
- colors: colors,
287
- styles: styles,
288
- accessibilityLabel: "Feedback description",
289
- accessibilityHint: "Provide detailed information about your feedback"
290
333
  }), /*#__PURE__*/_jsxs(View, {
291
- style: {
292
- marginBottom: 24
293
- },
334
+ className: "w-full mt-space-24",
294
335
  children: [/*#__PURE__*/_jsx(Text, {
295
- style: [styles.modernLabel, {
296
- marginBottom: 8
297
- }],
298
- className: "text-muted-foreground",
336
+ className: "text-caption font-caption text-text-secondary mb-space-8",
299
337
  children: t('feedback.priority.label') || 'Priority Level'
300
338
  }), /*#__PURE__*/_jsx(View, {
301
- style: styles.fullBleed,
339
+ className: "w-full",
302
340
  children: /*#__PURE__*/_jsx(SettingsListGroup, {
303
341
  children: priorityData.map(p => /*#__PURE__*/_jsx(SettingsListItem, {
304
342
  icon: /*#__PURE__*/_jsx(SettingsIcon, {
305
- name: p.icon,
306
- color: p.color
343
+ name: PRIORITY_ICON_GLYPH[p.id],
344
+ color: priorityColor(p.id)
307
345
  }),
308
346
  title: p.label,
309
347
  onPress: () => updateField('priority', p.id),
@@ -312,39 +350,31 @@ const FeedbackScreen = ({
312
350
  })
313
351
  })]
314
352
  }), /*#__PURE__*/_jsxs(View, {
315
- style: styles.navigationButtons,
316
- children: [/*#__PURE__*/_jsxs(TouchableOpacity, {
317
- style: [styles.navButton, styles.backButton],
318
- className: "border-border",
353
+ className: "flex-row gap-space-8 mt-space-24 w-full",
354
+ children: [/*#__PURE__*/_jsx(Button, {
355
+ variant: "secondary",
319
356
  onPress: prevStep,
320
- accessibilityRole: "button",
321
357
  accessibilityLabel: "Go back",
322
- children: [/*#__PURE__*/_jsx(Ionicons, {
358
+ icon: /*#__PURE__*/_jsx(Ionicons, {
323
359
  name: "arrow-back",
324
360
  size: 16,
325
361
  color: colors.text
326
- }), /*#__PURE__*/_jsx(Text, {
327
- style: styles.navButtonText,
328
- className: "text-foreground",
329
- children: t('common.actions.back') || 'Back'
330
- })]
331
- }), /*#__PURE__*/_jsxs(TouchableOpacity, {
332
- style: [styles.navButton, styles.nextButton],
333
- className: "bg-primary border-primary",
362
+ }),
363
+ style: styles.navButton,
364
+ children: t('common.actions.back') || 'Back'
365
+ }), /*#__PURE__*/_jsx(Button, {
366
+ variant: "primary",
334
367
  onPress: nextStep,
335
368
  disabled: !isDetailsStepValid(),
336
- accessibilityRole: "button",
337
369
  accessibilityLabel: "Continue to next step",
338
- children: [/*#__PURE__*/_jsx(Text, {
339
- style: [styles.navButtonText, {
340
- color: bloomTheme.colors.negativeForeground
341
- }],
342
- children: t('common.actions.next') || 'Next'
343
- }), /*#__PURE__*/_jsx(Ionicons, {
370
+ iconPosition: "right",
371
+ icon: /*#__PURE__*/_jsx(Ionicons, {
344
372
  name: "arrow-forward",
345
373
  size: 16,
346
- color: bloomTheme.colors.negativeForeground
347
- })]
374
+ color: colors.primaryForeground
375
+ }),
376
+ style: styles.navButton,
377
+ children: t('common.actions.next') || 'Next'
348
378
  })]
349
379
  })]
350
380
  });
@@ -355,91 +385,83 @@ const FeedbackScreen = ({
355
385
  translateX: slideAnim
356
386
  }]
357
387
  }],
358
- children: [/*#__PURE__*/_jsxs(View, {
359
- style: styles.modernHeader,
360
- children: [/*#__PURE__*/_jsx(Text, {
361
- style: styles.stepTitle,
362
- className: "text-foreground",
363
- children: t('feedback.contact.title') || 'Contact Information'
364
- }), /*#__PURE__*/_jsx(Text, {
365
- style: styles.modernSubtitle,
366
- className: "text-muted-foreground",
367
- children: t('feedback.contact.subtitle') || 'Help us get back to you'
368
- })]
369
- }), /*#__PURE__*/_jsx(FormInput, {
370
- icon: "mail-outline",
371
- label: t('feedback.fields.email.label') || 'Email Address',
372
- value: feedbackData.contactEmail,
373
- onChangeText: text => {
374
- updateField('contactEmail', text);
375
- setErrorMessage('');
376
- },
377
- placeholder: user?.email || t('feedback.fields.email.placeholder') || 'Enter your email address',
378
- testID: "feedback-email-input",
379
- colors: colors,
380
- styles: styles,
381
- accessibilityLabel: "Email address",
382
- accessibilityHint: "Enter your email so we can respond"
383
- }), /*#__PURE__*/_jsxs(View, {
384
- style: styles.checkboxContainer,
385
- children: [/*#__PURE__*/_jsx(TouchableOpacity, {
386
- style: [styles.checkbox, {
387
- borderColor: feedbackData.systemInfo ? colors.primary : colors.border,
388
- backgroundColor: feedbackData.systemInfo ? colors.primary : 'transparent'
389
- }],
390
- onPress: () => updateField('systemInfo', !feedbackData.systemInfo),
391
- accessibilityRole: "checkbox",
392
- accessibilityState: {
393
- checked: feedbackData.systemInfo
394
- },
395
- accessibilityLabel: "Include system information",
396
- children: feedbackData.systemInfo && /*#__PURE__*/_jsx(Ionicons, {
397
- name: "checkmark",
398
- size: 16,
399
- color: bloomTheme.colors.negativeForeground
388
+ children: [renderStepHeader(t('feedback.contact.title') || 'Contact Information', t('feedback.contact.subtitle') || 'Help us get back to you'), /*#__PURE__*/_jsx(View, {
389
+ className: "w-full",
390
+ children: /*#__PURE__*/_jsx(TextField, {
391
+ children: /*#__PURE__*/_jsx(TextFieldInput, {
392
+ floatingLabel: true,
393
+ label: t('feedback.fields.email.label') || 'Email Address',
394
+ value: feedbackData.contactEmail,
395
+ onChangeText: text => {
396
+ updateField('contactEmail', text);
397
+ setErrorMessage('');
398
+ },
399
+ placeholder: user?.email || t('feedback.fields.email.placeholder') || 'Enter your email address',
400
+ keyboardType: "email-address",
401
+ autoCapitalize: "none",
402
+ autoCorrect: false,
403
+ testID: "feedback-email-input",
404
+ accessibilityLabel: "Email address",
405
+ accessibilityHint: "Enter your email so we can respond"
400
406
  })
401
- }), /*#__PURE__*/_jsx(Text, {
402
- style: styles.checkboxText,
403
- className: "text-foreground",
404
- children: t('feedback.contact.includeSystemInfo') || 'Include system information to help us better understand your issue'
405
- })]
407
+ })
408
+ }), /*#__PURE__*/_jsx(View, {
409
+ className: "w-full mt-space-16",
410
+ children: /*#__PURE__*/_jsx(SettingsListGroup, {
411
+ children: /*#__PURE__*/_jsx(SettingsListItem, {
412
+ icon: /*#__PURE__*/_jsx(SettingsIcon, {
413
+ name: "information",
414
+ color: colors.info
415
+ }),
416
+ title: t('feedback.contact.includeSystemInfo') || 'Include system information to help us better understand your issue',
417
+ rightElement: /*#__PURE__*/_jsx(Switch, {
418
+ value: feedbackData.systemInfo,
419
+ onValueChange: value => updateField('systemInfo', value),
420
+ testID: "feedback-system-info-switch"
421
+ }),
422
+ showChevron: false
423
+ })
424
+ })
406
425
  }), /*#__PURE__*/_jsxs(View, {
407
- style: styles.navigationButtons,
408
- children: [/*#__PURE__*/_jsxs(TouchableOpacity, {
409
- style: [styles.navButton, styles.backButton],
410
- className: "border-border",
426
+ className: "flex-row gap-space-8 mt-space-24 w-full",
427
+ children: [/*#__PURE__*/_jsx(Button, {
428
+ variant: "secondary",
411
429
  onPress: prevStep,
412
- accessibilityRole: "button",
413
430
  accessibilityLabel: "Go back",
414
- children: [/*#__PURE__*/_jsx(Ionicons, {
431
+ icon: /*#__PURE__*/_jsx(Ionicons, {
415
432
  name: "arrow-back",
416
433
  size: 16,
417
434
  color: colors.text
418
- }), /*#__PURE__*/_jsx(Text, {
419
- style: styles.navButtonText,
420
- className: "text-foreground",
421
- children: "Back"
422
- })]
423
- }), /*#__PURE__*/_jsxs(TouchableOpacity, {
424
- style: [styles.navButton, styles.nextButton],
425
- className: "bg-primary border-primary",
435
+ }),
436
+ style: styles.navButton,
437
+ children: t('common.actions.back') || 'Back'
438
+ }), /*#__PURE__*/_jsx(Button, {
439
+ variant: "primary",
426
440
  onPress: nextStep,
427
441
  disabled: !isContactStepValid(),
428
- accessibilityRole: "button",
429
442
  accessibilityLabel: "Continue to summary",
430
- children: [/*#__PURE__*/_jsx(Text, {
431
- style: [styles.navButtonText, {
432
- color: bloomTheme.colors.negativeForeground
433
- }],
434
- children: "Next"
435
- }), /*#__PURE__*/_jsx(Ionicons, {
443
+ iconPosition: "right",
444
+ icon: /*#__PURE__*/_jsx(Ionicons, {
436
445
  name: "arrow-forward",
437
446
  size: 16,
438
- color: bloomTheme.colors.negativeForeground
439
- })]
447
+ color: colors.primaryForeground
448
+ }),
449
+ style: styles.navButton,
450
+ children: t('common.actions.next') || 'Next'
440
451
  })]
441
452
  })]
442
453
  });
454
+ const renderSummaryRow = (label, value) => /*#__PURE__*/_jsxs(View, {
455
+ className: "flex-row gap-space-12",
456
+ children: [/*#__PURE__*/_jsx(Text, {
457
+ className: "text-body font-body text-text-secondary",
458
+ style: styles.summaryLabel,
459
+ children: label
460
+ }), /*#__PURE__*/_jsx(Text, {
461
+ className: "text-body font-body text-text flex-1",
462
+ children: value
463
+ })]
464
+ });
443
465
  const renderSummaryStep = () => /*#__PURE__*/_jsxs(Animated.View, {
444
466
  style: [styles.stepContainer, {
445
467
  opacity: fadeAnim,
@@ -447,115 +469,37 @@ const FeedbackScreen = ({
447
469
  translateX: slideAnim
448
470
  }]
449
471
  }],
450
- children: [/*#__PURE__*/_jsxs(View, {
451
- style: styles.modernHeader,
452
- children: [/*#__PURE__*/_jsx(Text, {
453
- style: styles.stepTitle,
454
- className: "text-foreground",
455
- children: t('feedback.summary.title') || 'Summary'
456
- }), /*#__PURE__*/_jsx(Text, {
457
- style: styles.modernSubtitle,
458
- className: "text-muted-foreground",
459
- children: t('feedback.summary.subtitle') || 'Please review your feedback before submitting'
460
- })]
461
- }), /*#__PURE__*/_jsxs(View, {
462
- style: styles.summaryContainer,
463
- children: [/*#__PURE__*/_jsxs(View, {
464
- style: styles.summaryRow,
465
- children: [/*#__PURE__*/_jsx(Text, {
466
- style: styles.summaryLabel,
467
- className: "text-muted-foreground",
468
- children: "Type:"
469
- }), /*#__PURE__*/_jsx(Text, {
470
- style: styles.summaryValue,
471
- className: "text-foreground",
472
- children: FEEDBACK_TYPES.find(t => t.id === feedbackData.type)?.label
473
- })]
474
- }), /*#__PURE__*/_jsxs(View, {
475
- style: styles.summaryRow,
476
- children: [/*#__PURE__*/_jsx(Text, {
477
- style: styles.summaryLabel,
478
- className: "text-muted-foreground",
479
- children: "Category:"
480
- }), /*#__PURE__*/_jsx(Text, {
481
- style: styles.summaryValue,
482
- className: "text-foreground",
483
- children: feedbackData.category
484
- })]
485
- }), /*#__PURE__*/_jsxs(View, {
486
- style: styles.summaryRow,
487
- children: [/*#__PURE__*/_jsx(Text, {
488
- style: styles.summaryLabel,
489
- className: "text-muted-foreground",
490
- children: "Priority:"
491
- }), /*#__PURE__*/_jsx(Text, {
492
- style: styles.summaryValue,
493
- className: "text-foreground",
494
- children: PRIORITY_LEVELS.find(p => p.id === feedbackData.priority)?.label
495
- })]
496
- }), /*#__PURE__*/_jsxs(View, {
497
- style: styles.summaryRow,
498
- children: [/*#__PURE__*/_jsx(Text, {
499
- style: styles.summaryLabel,
500
- className: "text-muted-foreground",
501
- children: "Title:"
502
- }), /*#__PURE__*/_jsx(Text, {
503
- style: styles.summaryValue,
504
- className: "text-foreground",
505
- children: feedbackData.title
506
- })]
507
- }), /*#__PURE__*/_jsxs(View, {
508
- style: styles.summaryRow,
509
- children: [/*#__PURE__*/_jsx(Text, {
510
- style: styles.summaryLabel,
511
- className: "text-muted-foreground",
512
- children: "Contact:"
513
- }), /*#__PURE__*/_jsx(Text, {
514
- style: styles.summaryValue,
515
- className: "text-foreground",
516
- children: feedbackData.contactEmail || user?.email
517
- })]
518
- })]
519
- }), /*#__PURE__*/_jsx(TouchableOpacity, {
520
- style: styles.button,
521
- className: "bg-primary",
472
+ children: [renderStepHeader(t('feedback.summary.title') || 'Summary', t('feedback.summary.subtitle') || 'Please review your feedback before submitting'), /*#__PURE__*/_jsxs(View, {
473
+ className: "w-full gap-space-12 p-space-16 rounded-radius-20 bg-fill mb-space-24",
474
+ children: [renderSummaryRow(t('feedback.summary.type') || 'Type:', FEEDBACK_TYPES.find(ft => ft.id === feedbackData.type)?.label), renderSummaryRow(t('feedback.summary.category') || 'Category:', feedbackData.category), renderSummaryRow(t('feedback.summary.priority') || 'Priority:', PRIORITY_LEVELS.find(p => p.id === feedbackData.priority)?.label), renderSummaryRow(t('feedback.summary.titleField') || 'Title:', feedbackData.title), renderSummaryRow(t('feedback.summary.contact') || 'Contact:', feedbackData.contactEmail || user?.email)]
475
+ }), /*#__PURE__*/_jsx(Button, {
476
+ variant: "primary",
522
477
  onPress: handleSubmitFeedback,
523
478
  disabled: feedbackState.status === 'submitting',
479
+ loading: feedbackState.status === 'submitting',
524
480
  testID: "submit-feedback-button",
525
- accessibilityRole: "button",
526
481
  accessibilityLabel: "Submit feedback",
527
- children: feedbackState.status === 'submitting' ? /*#__PURE__*/_jsx(ActivityIndicator, {
528
- color: bloomTheme.colors.negativeForeground,
529
- size: "small"
530
- }) : /*#__PURE__*/_jsxs(_Fragment, {
531
- children: [/*#__PURE__*/_jsx(Text, {
532
- style: styles.buttonText,
533
- children: t('feedback.actions.submit') || 'Submit Feedback'
534
- }), /*#__PURE__*/_jsx(Ionicons, {
535
- name: "send",
536
- size: 20,
537
- color: bloomTheme.colors.negativeForeground
538
- })]
539
- })
482
+ iconPosition: "right",
483
+ icon: /*#__PURE__*/_jsx(Ionicons, {
484
+ name: "send",
485
+ size: 18,
486
+ color: colors.primaryForeground
487
+ }),
488
+ style: styles.fullWidthButton,
489
+ children: t('feedback.actions.submit') || 'Submit Feedback'
540
490
  }), /*#__PURE__*/_jsx(View, {
541
- style: styles.navigationButtons,
542
- children: /*#__PURE__*/_jsxs(TouchableOpacity, {
543
- style: [styles.navButton, {
544
- borderRadius: 35
545
- }],
546
- className: "border-border",
491
+ className: "flex-row mt-space-16 w-full",
492
+ children: /*#__PURE__*/_jsx(Button, {
493
+ variant: "secondary",
547
494
  onPress: prevStep,
548
- accessibilityRole: "button",
549
495
  accessibilityLabel: "Go back",
550
- children: [/*#__PURE__*/_jsx(Ionicons, {
496
+ icon: /*#__PURE__*/_jsx(Ionicons, {
551
497
  name: "arrow-back",
552
498
  size: 16,
553
499
  color: colors.text
554
- }), /*#__PURE__*/_jsx(Text, {
555
- style: styles.navButtonText,
556
- className: "text-foreground",
557
- children: t('common.actions.back') || 'Back'
558
- })]
500
+ }),
501
+ style: styles.navButton,
502
+ children: t('common.actions.back') || 'Back'
559
503
  })
560
504
  })]
561
505
  });
@@ -567,39 +511,29 @@ const FeedbackScreen = ({
567
511
  }]
568
512
  }],
569
513
  children: /*#__PURE__*/_jsxs(View, {
570
- style: styles.successContainer,
514
+ className: "w-full items-center justify-center p-space-32 gap-space-16",
571
515
  children: [/*#__PURE__*/_jsx(View, {
572
- style: [styles.successIcon, {
573
- backgroundColor: `${colors.success}20`,
574
- padding: 24,
575
- borderRadius: 50
576
- }],
516
+ className: "p-space-24 rounded-radius-max bg-fill-secondary",
577
517
  children: /*#__PURE__*/_jsx(Ionicons, {
578
518
  name: "checkmark-circle",
579
519
  size: 48,
580
520
  color: colors.success
581
521
  })
582
- }), /*#__PURE__*/_jsx(Text, {
583
- style: styles.successTitle,
584
- className: "text-foreground",
522
+ }), /*#__PURE__*/_jsx(H2, {
523
+ className: "text-headerBold font-headerBold text-text text-center",
585
524
  children: t('feedback.success.thanks') || 'Thank You!'
586
525
  }), /*#__PURE__*/_jsx(Text, {
587
- style: styles.successMessage,
588
- className: "text-muted-foreground",
526
+ className: "text-body font-body text-text-secondary text-center",
589
527
  children: t('feedback.success.message') || "Your feedback has been submitted successfully. We'll review it and get back to you soon."
590
- }), /*#__PURE__*/_jsx(TouchableOpacity, {
591
- style: styles.button,
592
- className: "bg-primary",
528
+ }), /*#__PURE__*/_jsx(Button, {
529
+ variant: "primary",
593
530
  onPress: () => {
594
531
  resetForm();
595
532
  setCurrentStep(0);
596
533
  },
597
- accessibilityRole: "button",
598
534
  accessibilityLabel: "Submit another feedback",
599
- children: /*#__PURE__*/_jsx(Text, {
600
- style: styles.buttonText,
601
- children: t('feedback.actions.submitAnother') || 'Submit Another'
602
- })
535
+ style: styles.fullWidthButton,
536
+ children: t('feedback.actions.submitAnother') || 'Submit Another'
603
537
  })]
604
538
  })
605
539
  });
@@ -619,26 +553,43 @@ const FeedbackScreen = ({
619
553
  }
620
554
  };
621
555
  return /*#__PURE__*/_jsxs(KeyboardAvoidingView, {
622
- style: [styles.container, {
623
- backgroundColor: colors.background
624
- }],
556
+ className: "flex-1 bg-bg",
625
557
  behavior: Platform.OS === 'ios' ? 'padding' : 'height',
626
- children: [/*#__PURE__*/_jsx(StatusBar, {
627
- barStyle: theme === 'dark' ? 'light-content' : 'dark-content'
558
+ children: [/*#__PURE__*/_jsx(Header, {
559
+ title: t('feedback.title') || 'Feedback',
560
+ theme: normalizedTheme,
561
+ onBack: goBack || onClose,
562
+ variant: "minimal",
563
+ elevation: "subtle"
628
564
  }), /*#__PURE__*/_jsxs(ScrollView, {
629
- contentContainerStyle: [styles.scrollContent, {
630
- backgroundColor: 'transparent'
631
- }],
565
+ className: "flex-1",
566
+ contentContainerClassName: "px-screen-margin pt-space-24 pb-space-32",
632
567
  showsVerticalScrollIndicator: false,
633
568
  keyboardShouldPersistTaps: "handled",
634
- children: [feedbackState.status !== 'success' && /*#__PURE__*/_jsx(ProgressIndicator, {
635
- currentStep: currentStep,
636
- totalSteps: 4,
637
- colors: colors,
638
- styles: styles
639
- }), renderCurrentStep()]
569
+ children: [feedbackState.status !== 'success' ? renderProgress() : null, renderCurrentStep()]
640
570
  })]
641
571
  });
642
572
  };
573
+ const styles = StyleSheet.create({
574
+ stepContainer: {
575
+ flex: 1,
576
+ alignItems: 'flex-start'
577
+ },
578
+ navButton: {
579
+ flex: 1
580
+ },
581
+ fullWidthButton: {
582
+ width: '100%'
583
+ },
584
+ summaryLabel: {
585
+ width: 90
586
+ },
587
+ progressDot: {
588
+ width: 8
589
+ },
590
+ progressDotActive: {
591
+ width: 24
592
+ }
593
+ });
643
594
  export default FeedbackScreen;
644
595
  //# sourceMappingURL=FeedbackScreen.js.map