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