@oxyhq/services 10.5.0 → 11.1.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 (427) hide show
  1. package/lib/commonjs/index.js.map +1 -1
  2. package/lib/commonjs/ui/components/AccountMenu.js +9 -5
  3. package/lib/commonjs/ui/components/AccountMenu.js.map +1 -1
  4. package/lib/commonjs/ui/components/AnotherDeviceQR.js +51 -56
  5. package/lib/commonjs/ui/components/AnotherDeviceQR.js.map +1 -1
  6. package/lib/commonjs/ui/components/BottomSheetRouter.js +1 -0
  7. package/lib/commonjs/ui/components/BottomSheetRouter.js.map +1 -1
  8. package/lib/commonjs/ui/components/FollowButton.js +18 -5
  9. package/lib/commonjs/ui/components/FollowButton.js.map +1 -1
  10. package/lib/commonjs/ui/components/OxyProvider.js +23 -7
  11. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  12. package/lib/commonjs/ui/components/SignInModal.js +20 -1
  13. package/lib/commonjs/ui/components/SignInModal.js.map +1 -1
  14. package/lib/commonjs/ui/components/fileManagement/FileViewer.js +19 -9
  15. package/lib/commonjs/ui/components/fileManagement/FileViewer.js.map +1 -1
  16. package/lib/commonjs/ui/components/fileManagement/UploadPreview.js +4 -2
  17. package/lib/commonjs/ui/components/fileManagement/UploadPreview.js.map +1 -1
  18. package/lib/commonjs/ui/context/OxyContext.js +153 -19
  19. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  20. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +6 -17
  21. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
  22. package/lib/commonjs/ui/hooks/mutations/mutationFactory.js +5 -5
  23. package/lib/commonjs/ui/hooks/mutations/mutationFactory.js.map +1 -1
  24. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +38 -38
  25. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  26. package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js +2 -2
  27. package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js.map +1 -1
  28. package/lib/commonjs/ui/hooks/queries/queryKeys.js +3 -3
  29. package/lib/commonjs/ui/hooks/queries/queryKeys.js.map +1 -1
  30. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js +1 -1
  31. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js.map +1 -1
  32. package/lib/commonjs/ui/hooks/queries/usePaymentQueries.js +16 -12
  33. package/lib/commonjs/ui/hooks/queries/usePaymentQueries.js.map +1 -1
  34. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js +10 -6
  35. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js.map +1 -1
  36. package/lib/commonjs/ui/hooks/queryClient.js +6 -5
  37. package/lib/commonjs/ui/hooks/queryClient.js.map +1 -1
  38. package/lib/commonjs/ui/hooks/useOxyAuthSession.js +40 -2
  39. package/lib/commonjs/ui/hooks/useOxyAuthSession.js.map +1 -1
  40. package/lib/commonjs/ui/hooks/useProfileEditing.js +21 -0
  41. package/lib/commonjs/ui/hooks/useProfileEditing.js.map +1 -1
  42. package/lib/commonjs/ui/hooks/useSessionManagement.js +3 -3
  43. package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -1
  44. package/lib/commonjs/ui/screens/AccountVerificationScreen.js +100 -108
  45. package/lib/commonjs/ui/screens/AccountVerificationScreen.js.map +1 -1
  46. package/lib/commonjs/ui/screens/AppInfoScreen.js +227 -273
  47. package/lib/commonjs/ui/screens/AppInfoScreen.js.map +1 -1
  48. package/lib/commonjs/ui/screens/AvatarCropScreen.js +10 -4
  49. package/lib/commonjs/ui/screens/AvatarCropScreen.js.map +1 -1
  50. package/lib/commonjs/ui/screens/ConnectedAppsScreen.js +20 -37
  51. package/lib/commonjs/ui/screens/ConnectedAppsScreen.js.map +1 -1
  52. package/lib/commonjs/ui/screens/CreateManagedAccountScreen.js +89 -201
  53. package/lib/commonjs/ui/screens/CreateManagedAccountScreen.js.map +1 -1
  54. package/lib/commonjs/ui/screens/EditProfileFieldScreen.js +80 -208
  55. package/lib/commonjs/ui/screens/EditProfileFieldScreen.js.map +1 -1
  56. package/lib/commonjs/ui/screens/FAQScreen.js +56 -208
  57. package/lib/commonjs/ui/screens/FAQScreen.js.map +1 -1
  58. package/lib/commonjs/ui/screens/FeedbackScreen.js +303 -352
  59. package/lib/commonjs/ui/screens/FeedbackScreen.js.map +1 -1
  60. package/lib/commonjs/ui/screens/FileManagementScreen.js +20 -20
  61. package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
  62. package/lib/commonjs/ui/screens/HelpSupportScreen.js +77 -89
  63. package/lib/commonjs/ui/screens/HelpSupportScreen.js.map +1 -1
  64. package/lib/commonjs/ui/screens/HistoryViewScreen.js +43 -58
  65. package/lib/commonjs/ui/screens/HistoryViewScreen.js.map +1 -1
  66. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js +67 -90
  67. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js.map +1 -1
  68. package/lib/commonjs/ui/screens/LearnMoreUsernamesScreen.js +77 -177
  69. package/lib/commonjs/ui/screens/LearnMoreUsernamesScreen.js.map +1 -1
  70. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js +113 -107
  71. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js.map +1 -1
  72. package/lib/commonjs/ui/screens/ManageAccountScreen.js +55 -114
  73. package/lib/commonjs/ui/screens/ManageAccountScreen.js.map +1 -1
  74. package/lib/commonjs/ui/screens/NotificationsScreen.js +67 -85
  75. package/lib/commonjs/ui/screens/NotificationsScreen.js.map +1 -1
  76. package/lib/commonjs/ui/screens/OxyAuthScreen.js +71 -135
  77. package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +1 -1
  78. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js +15 -9
  79. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js.map +1 -1
  80. package/lib/commonjs/ui/screens/PreferencesScreen.js +65 -83
  81. package/lib/commonjs/ui/screens/PreferencesScreen.js.map +1 -1
  82. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +378 -1023
  83. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  84. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +294 -242
  85. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
  86. package/lib/commonjs/ui/screens/ProfileScreen.js +192 -305
  87. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
  88. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js +57 -97
  89. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js.map +1 -1
  90. package/lib/commonjs/ui/screens/SearchSettingsScreen.js +41 -41
  91. package/lib/commonjs/ui/screens/SearchSettingsScreen.js.map +1 -1
  92. package/lib/commonjs/ui/screens/UserLinksScreen.js +17 -24
  93. package/lib/commonjs/ui/screens/UserLinksScreen.js.map +1 -1
  94. package/lib/commonjs/ui/screens/UserListScreen.js +83 -214
  95. package/lib/commonjs/ui/screens/UserListScreen.js.map +1 -1
  96. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +115 -77
  97. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  98. package/lib/commonjs/ui/screens/trust/TrustAboutScreen.js +70 -57
  99. package/lib/commonjs/ui/screens/trust/TrustAboutScreen.js.map +1 -1
  100. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js +136 -332
  101. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js.map +1 -1
  102. package/lib/commonjs/ui/screens/trust/TrustFAQScreen.js +47 -137
  103. package/lib/commonjs/ui/screens/trust/TrustFAQScreen.js.map +1 -1
  104. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js +182 -115
  105. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
  106. package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js +138 -214
  107. package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js.map +1 -1
  108. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js +54 -92
  109. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js.map +1 -1
  110. package/lib/commonjs/ui/utils/activeAuthuser.js +15 -9
  111. package/lib/commonjs/ui/utils/activeAuthuser.js.map +1 -1
  112. package/lib/commonjs/ui/utils/avatarUtils.js +1 -1
  113. package/lib/commonjs/ui/utils/avatarUtils.js.map +1 -1
  114. package/lib/module/index.js.map +1 -1
  115. package/lib/module/ui/components/AccountMenu.js +10 -6
  116. package/lib/module/ui/components/AccountMenu.js.map +1 -1
  117. package/lib/module/ui/components/AnotherDeviceQR.js +50 -56
  118. package/lib/module/ui/components/AnotherDeviceQR.js.map +1 -1
  119. package/lib/module/ui/components/BottomSheetRouter.js +2 -1
  120. package/lib/module/ui/components/BottomSheetRouter.js.map +1 -1
  121. package/lib/module/ui/components/FollowButton.js +18 -5
  122. package/lib/module/ui/components/FollowButton.js.map +1 -1
  123. package/lib/module/ui/components/OxyProvider.js +23 -7
  124. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  125. package/lib/module/ui/components/SignInModal.js +20 -1
  126. package/lib/module/ui/components/SignInModal.js.map +1 -1
  127. package/lib/module/ui/components/fileManagement/FileViewer.js +19 -9
  128. package/lib/module/ui/components/fileManagement/FileViewer.js.map +1 -1
  129. package/lib/module/ui/components/fileManagement/UploadPreview.js +4 -2
  130. package/lib/module/ui/components/fileManagement/UploadPreview.js.map +1 -1
  131. package/lib/module/ui/context/OxyContext.js +154 -20
  132. package/lib/module/ui/context/OxyContext.js.map +1 -1
  133. package/lib/module/ui/context/hooks/useAuthOperations.js +6 -17
  134. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
  135. package/lib/module/ui/hooks/mutations/mutationFactory.js +5 -5
  136. package/lib/module/ui/hooks/mutations/mutationFactory.js.map +1 -1
  137. package/lib/module/ui/hooks/mutations/useAccountMutations.js +38 -38
  138. package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  139. package/lib/module/ui/hooks/mutations/useServicesMutations.js +2 -2
  140. package/lib/module/ui/hooks/mutations/useServicesMutations.js.map +1 -1
  141. package/lib/module/ui/hooks/queries/queryKeys.js +3 -3
  142. package/lib/module/ui/hooks/queries/queryKeys.js.map +1 -1
  143. package/lib/module/ui/hooks/queries/useAccountQueries.js +1 -1
  144. package/lib/module/ui/hooks/queries/useAccountQueries.js.map +1 -1
  145. package/lib/module/ui/hooks/queries/usePaymentQueries.js +16 -12
  146. package/lib/module/ui/hooks/queries/usePaymentQueries.js.map +1 -1
  147. package/lib/module/ui/hooks/queries/useServicesQueries.js +9 -6
  148. package/lib/module/ui/hooks/queries/useServicesQueries.js.map +1 -1
  149. package/lib/module/ui/hooks/queryClient.js +6 -5
  150. package/lib/module/ui/hooks/queryClient.js.map +1 -1
  151. package/lib/module/ui/hooks/useOxyAuthSession.js +40 -2
  152. package/lib/module/ui/hooks/useOxyAuthSession.js.map +1 -1
  153. package/lib/module/ui/hooks/useProfileEditing.js +21 -0
  154. package/lib/module/ui/hooks/useProfileEditing.js.map +1 -1
  155. package/lib/module/ui/hooks/useSessionManagement.js +4 -3
  156. package/lib/module/ui/hooks/useSessionManagement.js.map +1 -1
  157. package/lib/module/ui/screens/AccountVerificationScreen.js +101 -109
  158. package/lib/module/ui/screens/AccountVerificationScreen.js.map +1 -1
  159. package/lib/module/ui/screens/AppInfoScreen.js +228 -275
  160. package/lib/module/ui/screens/AppInfoScreen.js.map +1 -1
  161. package/lib/module/ui/screens/AvatarCropScreen.js +10 -4
  162. package/lib/module/ui/screens/AvatarCropScreen.js.map +1 -1
  163. package/lib/module/ui/screens/ConnectedAppsScreen.js +19 -39
  164. package/lib/module/ui/screens/ConnectedAppsScreen.js.map +1 -1
  165. package/lib/module/ui/screens/CreateManagedAccountScreen.js +90 -202
  166. package/lib/module/ui/screens/CreateManagedAccountScreen.js.map +1 -1
  167. package/lib/module/ui/screens/EditProfileFieldScreen.js +77 -205
  168. package/lib/module/ui/screens/EditProfileFieldScreen.js.map +1 -1
  169. package/lib/module/ui/screens/FAQScreen.js +55 -207
  170. package/lib/module/ui/screens/FAQScreen.js.map +1 -1
  171. package/lib/module/ui/screens/FeedbackScreen.js +301 -350
  172. package/lib/module/ui/screens/FeedbackScreen.js.map +1 -1
  173. package/lib/module/ui/screens/FileManagementScreen.js +20 -20
  174. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
  175. package/lib/module/ui/screens/HelpSupportScreen.js +78 -90
  176. package/lib/module/ui/screens/HelpSupportScreen.js.map +1 -1
  177. package/lib/module/ui/screens/HistoryViewScreen.js +44 -59
  178. package/lib/module/ui/screens/HistoryViewScreen.js.map +1 -1
  179. package/lib/module/ui/screens/LanguageSelectorScreen.js +68 -91
  180. package/lib/module/ui/screens/LanguageSelectorScreen.js.map +1 -1
  181. package/lib/module/ui/screens/LearnMoreUsernamesScreen.js +75 -177
  182. package/lib/module/ui/screens/LearnMoreUsernamesScreen.js.map +1 -1
  183. package/lib/module/ui/screens/LegalDocumentsScreen.js +116 -108
  184. package/lib/module/ui/screens/LegalDocumentsScreen.js.map +1 -1
  185. package/lib/module/ui/screens/ManageAccountScreen.js +52 -112
  186. package/lib/module/ui/screens/ManageAccountScreen.js.map +1 -1
  187. package/lib/module/ui/screens/NotificationsScreen.js +68 -86
  188. package/lib/module/ui/screens/NotificationsScreen.js.map +1 -1
  189. package/lib/module/ui/screens/OxyAuthScreen.js +69 -134
  190. package/lib/module/ui/screens/OxyAuthScreen.js.map +1 -1
  191. package/lib/module/ui/screens/PaymentGatewayScreen.js +16 -10
  192. package/lib/module/ui/screens/PaymentGatewayScreen.js.map +1 -1
  193. package/lib/module/ui/screens/PreferencesScreen.js +66 -84
  194. package/lib/module/ui/screens/PreferencesScreen.js.map +1 -1
  195. package/lib/module/ui/screens/PremiumSubscriptionScreen.js +366 -1012
  196. package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  197. package/lib/module/ui/screens/PrivacySettingsScreen.js +295 -243
  198. package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
  199. package/lib/module/ui/screens/ProfileScreen.js +189 -302
  200. package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
  201. package/lib/module/ui/screens/SavesCollectionsScreen.js +58 -98
  202. package/lib/module/ui/screens/SavesCollectionsScreen.js.map +1 -1
  203. package/lib/module/ui/screens/SearchSettingsScreen.js +42 -42
  204. package/lib/module/ui/screens/SearchSettingsScreen.js.map +1 -1
  205. package/lib/module/ui/screens/UserLinksScreen.js +18 -25
  206. package/lib/module/ui/screens/UserLinksScreen.js.map +1 -1
  207. package/lib/module/ui/screens/UserListScreen.js +81 -212
  208. package/lib/module/ui/screens/UserListScreen.js.map +1 -1
  209. package/lib/module/ui/screens/WelcomeNewUserScreen.js +114 -76
  210. package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  211. package/lib/module/ui/screens/trust/TrustAboutScreen.js +69 -57
  212. package/lib/module/ui/screens/trust/TrustAboutScreen.js.map +1 -1
  213. package/lib/module/ui/screens/trust/TrustCenterScreen.js +135 -332
  214. package/lib/module/ui/screens/trust/TrustCenterScreen.js.map +1 -1
  215. package/lib/module/ui/screens/trust/TrustFAQScreen.js +48 -138
  216. package/lib/module/ui/screens/trust/TrustFAQScreen.js.map +1 -1
  217. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js +184 -117
  218. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
  219. package/lib/module/ui/screens/trust/TrustRewardsScreen.js +132 -208
  220. package/lib/module/ui/screens/trust/TrustRewardsScreen.js.map +1 -1
  221. package/lib/module/ui/screens/trust/TrustRulesScreen.js +58 -94
  222. package/lib/module/ui/screens/trust/TrustRulesScreen.js.map +1 -1
  223. package/lib/module/ui/utils/activeAuthuser.js +15 -9
  224. package/lib/module/ui/utils/activeAuthuser.js.map +1 -1
  225. package/lib/module/ui/utils/avatarUtils.js +1 -1
  226. package/lib/module/ui/utils/avatarUtils.js.map +1 -1
  227. package/lib/typescript/commonjs/index.d.ts +1 -0
  228. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  229. package/lib/typescript/commonjs/ui/components/AccountMenu.d.ts +2 -0
  230. package/lib/typescript/commonjs/ui/components/AccountMenu.d.ts.map +1 -1
  231. package/lib/typescript/commonjs/ui/components/AnotherDeviceQR.d.ts +12 -2
  232. package/lib/typescript/commonjs/ui/components/AnotherDeviceQR.d.ts.map +1 -1
  233. package/lib/typescript/commonjs/ui/components/BottomSheetRouter.d.ts.map +1 -1
  234. package/lib/typescript/commonjs/ui/components/FollowButton.d.ts.map +1 -1
  235. package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts +3 -2
  236. package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
  237. package/lib/typescript/commonjs/ui/components/SignInModal.d.ts.map +1 -1
  238. package/lib/typescript/commonjs/ui/components/TouchableRipple/TouchableRipple.native.d.ts +1 -1
  239. package/lib/typescript/commonjs/ui/components/TouchableRipple/TouchableRipple.native.d.ts.map +1 -1
  240. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts +34 -0
  241. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  242. package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  243. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts +3 -0
  244. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  245. package/lib/typescript/commonjs/ui/hooks/queries/queryKeys.d.ts +3 -3
  246. package/lib/typescript/commonjs/ui/hooks/queries/queryKeys.d.ts.map +1 -1
  247. package/lib/typescript/commonjs/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  248. package/lib/typescript/commonjs/ui/hooks/queryClient.d.ts.map +1 -1
  249. package/lib/typescript/commonjs/ui/hooks/useOxyAuthSession.d.ts +22 -0
  250. package/lib/typescript/commonjs/ui/hooks/useOxyAuthSession.d.ts.map +1 -1
  251. package/lib/typescript/commonjs/ui/hooks/useProfileEditing.d.ts +3 -0
  252. package/lib/typescript/commonjs/ui/hooks/useProfileEditing.d.ts.map +1 -1
  253. package/lib/typescript/commonjs/ui/hooks/useSessionManagement.d.ts +2 -1
  254. package/lib/typescript/commonjs/ui/hooks/useSessionManagement.d.ts.map +1 -1
  255. package/lib/typescript/commonjs/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
  256. package/lib/typescript/commonjs/ui/screens/AppInfoScreen.d.ts.map +1 -1
  257. package/lib/typescript/commonjs/ui/screens/AvatarCropScreen.d.ts.map +1 -1
  258. package/lib/typescript/commonjs/ui/screens/ConnectedAppsScreen.d.ts.map +1 -1
  259. package/lib/typescript/commonjs/ui/screens/CreateManagedAccountScreen.d.ts.map +1 -1
  260. package/lib/typescript/commonjs/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
  261. package/lib/typescript/commonjs/ui/screens/FAQScreen.d.ts.map +1 -1
  262. package/lib/typescript/commonjs/ui/screens/FeedbackScreen.d.ts.map +1 -1
  263. package/lib/typescript/commonjs/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  264. package/lib/typescript/commonjs/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  265. package/lib/typescript/commonjs/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  266. package/lib/typescript/commonjs/ui/screens/LearnMoreUsernamesScreen.d.ts.map +1 -1
  267. package/lib/typescript/commonjs/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
  268. package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  269. package/lib/typescript/commonjs/ui/screens/NotificationsScreen.d.ts.map +1 -1
  270. package/lib/typescript/commonjs/ui/screens/OxyAuthScreen.d.ts.map +1 -1
  271. package/lib/typescript/commonjs/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  272. package/lib/typescript/commonjs/ui/screens/PreferencesScreen.d.ts.map +1 -1
  273. package/lib/typescript/commonjs/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  274. package/lib/typescript/commonjs/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  275. package/lib/typescript/commonjs/ui/screens/ProfileScreen.d.ts.map +1 -1
  276. package/lib/typescript/commonjs/ui/screens/SavesCollectionsScreen.d.ts.map +1 -1
  277. package/lib/typescript/commonjs/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  278. package/lib/typescript/commonjs/ui/screens/UserLinksScreen.d.ts.map +1 -1
  279. package/lib/typescript/commonjs/ui/screens/UserListScreen.d.ts.map +1 -1
  280. package/lib/typescript/commonjs/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
  281. package/lib/typescript/commonjs/ui/screens/trust/TrustAboutScreen.d.ts.map +1 -1
  282. package/lib/typescript/commonjs/ui/screens/trust/TrustCenterScreen.d.ts.map +1 -1
  283. package/lib/typescript/commonjs/ui/screens/trust/TrustFAQScreen.d.ts.map +1 -1
  284. package/lib/typescript/commonjs/ui/screens/trust/TrustLeaderboardScreen.d.ts.map +1 -1
  285. package/lib/typescript/commonjs/ui/screens/trust/TrustRewardsScreen.d.ts.map +1 -1
  286. package/lib/typescript/commonjs/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
  287. package/lib/typescript/commonjs/ui/utils/activeAuthuser.d.ts.map +1 -1
  288. package/lib/typescript/module/index.d.ts +1 -0
  289. package/lib/typescript/module/index.d.ts.map +1 -1
  290. package/lib/typescript/module/ui/components/AccountMenu.d.ts +2 -0
  291. package/lib/typescript/module/ui/components/AccountMenu.d.ts.map +1 -1
  292. package/lib/typescript/module/ui/components/AnotherDeviceQR.d.ts +12 -2
  293. package/lib/typescript/module/ui/components/AnotherDeviceQR.d.ts.map +1 -1
  294. package/lib/typescript/module/ui/components/BottomSheetRouter.d.ts.map +1 -1
  295. package/lib/typescript/module/ui/components/FollowButton.d.ts.map +1 -1
  296. package/lib/typescript/module/ui/components/OxyProvider.d.ts +3 -2
  297. package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
  298. package/lib/typescript/module/ui/components/SignInModal.d.ts.map +1 -1
  299. package/lib/typescript/module/ui/components/TouchableRipple/TouchableRipple.native.d.ts +1 -1
  300. package/lib/typescript/module/ui/components/TouchableRipple/TouchableRipple.native.d.ts.map +1 -1
  301. package/lib/typescript/module/ui/context/OxyContext.d.ts +34 -0
  302. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  303. package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  304. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts +3 -0
  305. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  306. package/lib/typescript/module/ui/hooks/queries/queryKeys.d.ts +3 -3
  307. package/lib/typescript/module/ui/hooks/queries/queryKeys.d.ts.map +1 -1
  308. package/lib/typescript/module/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  309. package/lib/typescript/module/ui/hooks/queryClient.d.ts.map +1 -1
  310. package/lib/typescript/module/ui/hooks/useOxyAuthSession.d.ts +22 -0
  311. package/lib/typescript/module/ui/hooks/useOxyAuthSession.d.ts.map +1 -1
  312. package/lib/typescript/module/ui/hooks/useProfileEditing.d.ts +3 -0
  313. package/lib/typescript/module/ui/hooks/useProfileEditing.d.ts.map +1 -1
  314. package/lib/typescript/module/ui/hooks/useSessionManagement.d.ts +2 -1
  315. package/lib/typescript/module/ui/hooks/useSessionManagement.d.ts.map +1 -1
  316. package/lib/typescript/module/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
  317. package/lib/typescript/module/ui/screens/AppInfoScreen.d.ts.map +1 -1
  318. package/lib/typescript/module/ui/screens/AvatarCropScreen.d.ts.map +1 -1
  319. package/lib/typescript/module/ui/screens/ConnectedAppsScreen.d.ts.map +1 -1
  320. package/lib/typescript/module/ui/screens/CreateManagedAccountScreen.d.ts.map +1 -1
  321. package/lib/typescript/module/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
  322. package/lib/typescript/module/ui/screens/FAQScreen.d.ts.map +1 -1
  323. package/lib/typescript/module/ui/screens/FeedbackScreen.d.ts.map +1 -1
  324. package/lib/typescript/module/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  325. package/lib/typescript/module/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  326. package/lib/typescript/module/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  327. package/lib/typescript/module/ui/screens/LearnMoreUsernamesScreen.d.ts.map +1 -1
  328. package/lib/typescript/module/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
  329. package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  330. package/lib/typescript/module/ui/screens/NotificationsScreen.d.ts.map +1 -1
  331. package/lib/typescript/module/ui/screens/OxyAuthScreen.d.ts.map +1 -1
  332. package/lib/typescript/module/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  333. package/lib/typescript/module/ui/screens/PreferencesScreen.d.ts.map +1 -1
  334. package/lib/typescript/module/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  335. package/lib/typescript/module/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  336. package/lib/typescript/module/ui/screens/ProfileScreen.d.ts.map +1 -1
  337. package/lib/typescript/module/ui/screens/SavesCollectionsScreen.d.ts.map +1 -1
  338. package/lib/typescript/module/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  339. package/lib/typescript/module/ui/screens/UserLinksScreen.d.ts.map +1 -1
  340. package/lib/typescript/module/ui/screens/UserListScreen.d.ts.map +1 -1
  341. package/lib/typescript/module/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
  342. package/lib/typescript/module/ui/screens/trust/TrustAboutScreen.d.ts.map +1 -1
  343. package/lib/typescript/module/ui/screens/trust/TrustCenterScreen.d.ts.map +1 -1
  344. package/lib/typescript/module/ui/screens/trust/TrustFAQScreen.d.ts.map +1 -1
  345. package/lib/typescript/module/ui/screens/trust/TrustLeaderboardScreen.d.ts.map +1 -1
  346. package/lib/typescript/module/ui/screens/trust/TrustRewardsScreen.d.ts.map +1 -1
  347. package/lib/typescript/module/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
  348. package/lib/typescript/module/ui/utils/activeAuthuser.d.ts.map +1 -1
  349. package/lib/typescript/types/expo-haptics.d.ts +42 -0
  350. package/package.json +24 -31
  351. package/src/index.ts +1 -0
  352. package/src/types/expo-haptics.d.ts +42 -0
  353. package/src/ui/components/AccountMenu.tsx +11 -5
  354. package/src/ui/components/AnotherDeviceQR.tsx +53 -45
  355. package/src/ui/components/BottomSheetRouter.tsx +2 -1
  356. package/src/ui/components/FollowButton.tsx +24 -5
  357. package/src/ui/components/OxyProvider.tsx +22 -8
  358. package/src/ui/components/SignInModal.tsx +21 -2
  359. package/src/ui/components/TouchableRipple/TouchableRipple.native.tsx +1 -1
  360. package/src/ui/components/fileManagement/FileViewer.tsx +9 -9
  361. package/src/ui/components/fileManagement/UploadPreview.tsx +2 -2
  362. package/src/ui/context/OxyContext.tsx +178 -21
  363. package/src/ui/context/hooks/useAuthOperations.ts +6 -17
  364. package/src/ui/hooks/mutations/mutationFactory.ts +5 -5
  365. package/src/ui/hooks/mutations/useAccountMutations.ts +38 -38
  366. package/src/ui/hooks/mutations/useServicesMutations.ts +2 -2
  367. package/src/ui/hooks/queries/queryKeys.ts +6 -3
  368. package/src/ui/hooks/queries/useAccountQueries.ts +1 -1
  369. package/src/ui/hooks/queries/usePaymentQueries.ts +12 -12
  370. package/src/ui/hooks/queries/useServicesQueries.ts +9 -6
  371. package/src/ui/hooks/queryClient.ts +5 -5
  372. package/src/ui/hooks/useOxyAuthSession.ts +76 -2
  373. package/src/ui/hooks/useProfileEditing.ts +24 -0
  374. package/src/ui/hooks/useSessionManagement.ts +9 -6
  375. package/src/ui/screens/AccountVerificationScreen.tsx +101 -113
  376. package/src/ui/screens/AppInfoScreen.tsx +200 -238
  377. package/src/ui/screens/AvatarCropScreen.tsx +17 -4
  378. package/src/ui/screens/ConnectedAppsScreen.tsx +16 -34
  379. package/src/ui/screens/CreateManagedAccountScreen.tsx +94 -170
  380. package/src/ui/screens/EditProfileFieldScreen.tsx +77 -190
  381. package/src/ui/screens/FAQScreen.tsx +77 -208
  382. package/src/ui/screens/FeedbackScreen.tsx +330 -239
  383. package/src/ui/screens/FileManagementScreen.tsx +20 -20
  384. package/src/ui/screens/HelpSupportScreen.tsx +67 -82
  385. package/src/ui/screens/HistoryViewScreen.tsx +32 -38
  386. package/src/ui/screens/LanguageSelectorScreen.tsx +79 -93
  387. package/src/ui/screens/LearnMoreUsernamesScreen.tsx +81 -164
  388. package/src/ui/screens/LegalDocumentsScreen.tsx +184 -123
  389. package/src/ui/screens/ManageAccountScreen.tsx +48 -114
  390. package/src/ui/screens/NotificationsScreen.tsx +107 -106
  391. package/src/ui/screens/OxyAuthScreen.tsx +76 -109
  392. package/src/ui/screens/PaymentGatewayScreen.tsx +16 -7
  393. package/src/ui/screens/PreferencesScreen.tsx +96 -116
  394. package/src/ui/screens/PremiumSubscriptionScreen.tsx +419 -872
  395. package/src/ui/screens/PrivacySettingsScreen.tsx +203 -185
  396. package/src/ui/screens/ProfileScreen.tsx +158 -200
  397. package/src/ui/screens/SavesCollectionsScreen.tsx +78 -125
  398. package/src/ui/screens/SearchSettingsScreen.tsx +52 -41
  399. package/src/ui/screens/UserLinksScreen.tsx +18 -25
  400. package/src/ui/screens/UserListScreen.tsx +95 -188
  401. package/src/ui/screens/WelcomeNewUserScreen.tsx +109 -36
  402. package/src/ui/screens/trust/TrustAboutScreen.tsx +52 -41
  403. package/src/ui/screens/trust/TrustCenterScreen.tsx +184 -222
  404. package/src/ui/screens/trust/TrustFAQScreen.tsx +64 -124
  405. package/src/ui/screens/trust/TrustLeaderboardScreen.tsx +190 -67
  406. package/src/ui/screens/trust/TrustRewardsScreen.tsx +147 -182
  407. package/src/ui/screens/trust/TrustRulesScreen.tsx +77 -50
  408. package/src/ui/utils/activeAuthuser.ts +15 -9
  409. package/src/ui/utils/avatarUtils.ts +1 -1
  410. package/lib/commonjs/ui/components/feedback/FormInput.js +0 -72
  411. package/lib/commonjs/ui/components/feedback/FormInput.js.map +0 -1
  412. package/lib/commonjs/ui/components/feedback/feedbackStyles.js +0 -261
  413. package/lib/commonjs/ui/components/feedback/feedbackStyles.js.map +0 -1
  414. package/lib/module/ui/components/feedback/FormInput.js +0 -67
  415. package/lib/module/ui/components/feedback/FormInput.js.map +0 -1
  416. package/lib/module/ui/components/feedback/feedbackStyles.js +0 -256
  417. package/lib/module/ui/components/feedback/feedbackStyles.js.map +0 -1
  418. package/lib/typescript/commonjs/ui/components/feedback/FormInput.d.ts +0 -20
  419. package/lib/typescript/commonjs/ui/components/feedback/FormInput.d.ts.map +0 -1
  420. package/lib/typescript/commonjs/ui/components/feedback/feedbackStyles.d.ts +0 -279
  421. package/lib/typescript/commonjs/ui/components/feedback/feedbackStyles.d.ts.map +0 -1
  422. package/lib/typescript/module/ui/components/feedback/FormInput.d.ts +0 -20
  423. package/lib/typescript/module/ui/components/feedback/FormInput.d.ts.map +0 -1
  424. package/lib/typescript/module/ui/components/feedback/feedbackStyles.d.ts +0 -279
  425. package/lib/typescript/module/ui/components/feedback/feedbackStyles.d.ts.map +0 -1
  426. package/src/ui/components/feedback/FormInput.tsx +0 -84
  427. 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