@oxyhq/services 5.17.17 → 5.18.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 (618) hide show
  1. package/README.md +32 -38
  2. package/lib/commonjs/core/CrossDomainAuth.js +277 -0
  3. package/lib/commonjs/core/CrossDomainAuth.js.map +1 -0
  4. package/lib/commonjs/core/HttpService.js +82 -15
  5. package/lib/commonjs/core/HttpService.js.map +1 -1
  6. package/lib/commonjs/core/OxyServices.base.js +11 -3
  7. package/lib/commonjs/core/OxyServices.base.js.map +1 -1
  8. package/lib/commonjs/core/OxyServices.js +4 -1
  9. package/lib/commonjs/core/OxyServices.js.map +1 -1
  10. package/lib/commonjs/core/index.js +30 -0
  11. package/lib/commonjs/core/index.js.map +1 -1
  12. package/lib/commonjs/core/mixins/OxyServices.assets.js +16 -3
  13. package/lib/commonjs/core/mixins/OxyServices.assets.js.map +1 -1
  14. package/lib/commonjs/core/mixins/OxyServices.auth.js +73 -32
  15. package/lib/commonjs/core/mixins/OxyServices.auth.js.map +1 -1
  16. package/lib/commonjs/core/mixins/OxyServices.features.js +372 -0
  17. package/lib/commonjs/core/mixins/OxyServices.features.js.map +1 -0
  18. package/lib/commonjs/core/mixins/OxyServices.fedcm.js +289 -0
  19. package/lib/commonjs/core/mixins/OxyServices.fedcm.js.map +1 -0
  20. package/lib/commonjs/core/mixins/OxyServices.popup.js +352 -0
  21. package/lib/commonjs/core/mixins/OxyServices.popup.js.map +1 -0
  22. package/lib/commonjs/core/mixins/OxyServices.redirect.js +378 -0
  23. package/lib/commonjs/core/mixins/OxyServices.redirect.js.map +1 -0
  24. package/lib/commonjs/core/mixins/OxyServices.user.js +35 -24
  25. package/lib/commonjs/core/mixins/OxyServices.user.js.map +1 -1
  26. package/lib/commonjs/core/mixins/index.js +28 -15
  27. package/lib/commonjs/core/mixins/index.js.map +1 -1
  28. package/lib/commonjs/crypto/index.js +30 -0
  29. package/lib/commonjs/crypto/index.js.map +1 -1
  30. package/lib/commonjs/crypto/keyManager.js +902 -0
  31. package/lib/commonjs/crypto/keyManager.js.map +1 -0
  32. package/lib/commonjs/crypto/polyfill.js +14 -5
  33. package/lib/commonjs/crypto/polyfill.js.map +1 -1
  34. package/lib/commonjs/crypto/recoveryPhrase.js +152 -0
  35. package/lib/commonjs/crypto/recoveryPhrase.js.map +1 -0
  36. package/lib/commonjs/crypto/signatureService.js +289 -0
  37. package/lib/commonjs/crypto/signatureService.js.map +1 -0
  38. package/lib/commonjs/i18n/locales/en-US.json +1 -1
  39. package/lib/commonjs/index.js +40 -26
  40. package/lib/commonjs/index.js.map +1 -1
  41. package/lib/commonjs/models/interfaces.js +0 -15
  42. package/lib/commonjs/models/interfaces.js.map +1 -1
  43. package/lib/commonjs/ui/components/BottomSheetRouter.js +9 -1
  44. package/lib/commonjs/ui/components/BottomSheetRouter.js.map +1 -1
  45. package/lib/commonjs/ui/components/GroupedItem.js +11 -1
  46. package/lib/commonjs/ui/components/GroupedItem.js.map +1 -1
  47. package/lib/commonjs/ui/components/Icon.js.map +1 -1
  48. package/lib/commonjs/ui/components/IconButton/utils.js.map +1 -1
  49. package/lib/commonjs/ui/components/OxyProvider.js +41 -11
  50. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  51. package/lib/commonjs/ui/components/SettingRow.js +17 -4
  52. package/lib/commonjs/ui/components/SettingRow.js.map +1 -1
  53. package/lib/commonjs/ui/components/TextField/Adornment/utils.js.map +1 -1
  54. package/lib/commonjs/ui/components/TextField/helpers.js.map +1 -1
  55. package/lib/commonjs/ui/components/TouchableRipple/utils.js.map +1 -1
  56. package/lib/commonjs/ui/components/Typography/AnimatedText.js.map +1 -1
  57. package/lib/commonjs/ui/components/feedback/FormInput.js +72 -0
  58. package/lib/commonjs/ui/components/feedback/FormInput.js.map +1 -0
  59. package/lib/commonjs/ui/components/feedback/ProgressIndicator.js +33 -0
  60. package/lib/commonjs/ui/components/feedback/ProgressIndicator.js.map +1 -0
  61. package/lib/commonjs/ui/components/feedback/constants.js +59 -0
  62. package/lib/commonjs/ui/components/feedback/constants.js.map +1 -0
  63. package/lib/commonjs/ui/components/feedback/feedbackStyles.js +262 -0
  64. package/lib/commonjs/ui/components/feedback/feedbackStyles.js.map +1 -0
  65. package/lib/commonjs/ui/components/feedback/index.js +54 -0
  66. package/lib/commonjs/ui/components/feedback/index.js.map +1 -0
  67. package/lib/commonjs/ui/components/feedback/types.js +6 -0
  68. package/lib/commonjs/ui/components/feedback/types.js.map +1 -0
  69. package/lib/commonjs/ui/components/feedback/useFeedbackForm.js +52 -0
  70. package/lib/commonjs/ui/components/feedback/useFeedbackForm.js.map +1 -0
  71. package/lib/commonjs/ui/components/modals/DeleteAccountModal.js +282 -0
  72. package/lib/commonjs/ui/components/modals/DeleteAccountModal.js.map +1 -0
  73. package/lib/commonjs/ui/components/modals/index.js +14 -0
  74. package/lib/commonjs/ui/components/modals/index.js.map +1 -0
  75. package/lib/commonjs/ui/components/payment/PaymentDetailsStep.js +309 -0
  76. package/lib/commonjs/ui/components/payment/PaymentDetailsStep.js.map +1 -0
  77. package/lib/commonjs/ui/components/payment/PaymentMethodStep.js +79 -0
  78. package/lib/commonjs/ui/components/payment/PaymentMethodStep.js.map +1 -0
  79. package/lib/commonjs/ui/components/payment/PaymentReviewStep.js +108 -0
  80. package/lib/commonjs/ui/components/payment/PaymentReviewStep.js.map +1 -0
  81. package/lib/commonjs/ui/components/payment/PaymentSuccessStep.js +79 -0
  82. package/lib/commonjs/ui/components/payment/PaymentSuccessStep.js.map +1 -0
  83. package/lib/commonjs/ui/components/payment/PaymentSummaryStep.js +176 -0
  84. package/lib/commonjs/ui/components/payment/PaymentSummaryStep.js.map +1 -0
  85. package/lib/commonjs/ui/components/payment/constants.js +53 -0
  86. package/lib/commonjs/ui/components/payment/constants.js.map +1 -0
  87. package/lib/commonjs/ui/components/payment/index.js +80 -0
  88. package/lib/commonjs/ui/components/payment/index.js.map +1 -0
  89. package/lib/commonjs/ui/components/payment/paymentStyles.js +409 -0
  90. package/lib/commonjs/ui/components/payment/paymentStyles.js.map +1 -0
  91. package/lib/commonjs/ui/components/payment/types.js +6 -0
  92. package/lib/commonjs/ui/components/payment/types.js.map +1 -0
  93. package/lib/commonjs/ui/context/OxyContext.js +110 -199
  94. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  95. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +150 -19
  96. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
  97. package/lib/commonjs/ui/context/hooks/useSessionManagement.js +279 -0
  98. package/lib/commonjs/ui/context/hooks/useSessionManagement.js.map +1 -0
  99. package/lib/commonjs/ui/hooks/index.js +26 -0
  100. package/lib/commonjs/ui/hooks/index.js.map +1 -1
  101. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +79 -72
  102. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  103. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js +38 -51
  104. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js.map +1 -1
  105. package/lib/commonjs/ui/hooks/queries/useSecurityQueries.js +3 -3
  106. package/lib/commonjs/ui/hooks/queries/useSecurityQueries.js.map +1 -1
  107. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js +18 -12
  108. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js.map +1 -1
  109. package/lib/commonjs/ui/hooks/useAsyncAction.js +95 -0
  110. package/lib/commonjs/ui/hooks/useAsyncAction.js.map +1 -0
  111. package/lib/commonjs/ui/hooks/useProfileEditing.js +3 -5
  112. package/lib/commonjs/ui/hooks/useProfileEditing.js.map +1 -1
  113. package/lib/commonjs/ui/hooks/useSessionManagement.js +4 -8
  114. package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -1
  115. package/lib/commonjs/ui/hooks/useSessionSocket.js +162 -315
  116. package/lib/commonjs/ui/hooks/useSessionSocket.js.map +1 -1
  117. package/lib/commonjs/ui/hooks/useSettingToggle.js +126 -0
  118. package/lib/commonjs/ui/hooks/useSettingToggle.js.map +1 -0
  119. package/lib/commonjs/ui/hooks/useStorage.js +24 -58
  120. package/lib/commonjs/ui/hooks/useStorage.js.map +1 -1
  121. package/lib/commonjs/ui/index.js +50 -21
  122. package/lib/commonjs/ui/index.js.map +1 -1
  123. package/lib/commonjs/ui/navigation/routes.js +6 -1
  124. package/lib/commonjs/ui/navigation/routes.js.map +1 -1
  125. package/lib/commonjs/ui/screens/AccountCenterScreen.js +6 -4
  126. package/lib/commonjs/ui/screens/AccountCenterScreen.js.map +1 -1
  127. package/lib/commonjs/ui/screens/AccountOverviewScreen.js +33 -30
  128. package/lib/commonjs/ui/screens/AccountOverviewScreen.js.map +1 -1
  129. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +29 -24
  130. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  131. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +3 -3
  132. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +1 -1
  133. package/lib/commonjs/ui/screens/FAQScreen.js +315 -0
  134. package/lib/commonjs/ui/screens/FAQScreen.js.map +1 -0
  135. package/lib/commonjs/ui/screens/FeedbackScreen.js +73 -590
  136. package/lib/commonjs/ui/screens/FeedbackScreen.js.map +1 -1
  137. package/lib/commonjs/ui/screens/HelpSupportScreen.js +8 -7
  138. package/lib/commonjs/ui/screens/HelpSupportScreen.js.map +1 -1
  139. package/lib/commonjs/ui/screens/OxyAuthScreen.js +134 -66
  140. package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +1 -1
  141. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js +67 -1395
  142. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js.map +1 -1
  143. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +6 -13
  144. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
  145. package/lib/commonjs/ui/screens/ProfileScreen.js +13 -5
  146. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
  147. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js +16 -10
  148. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js.map +1 -1
  149. package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js +23 -11
  150. package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js.map +1 -1
  151. package/lib/commonjs/ui/stores/accountStore.js +2 -4
  152. package/lib/commonjs/ui/stores/accountStore.js.map +1 -1
  153. package/lib/commonjs/ui/stores/authStore.js +45 -32
  154. package/lib/commonjs/ui/stores/authStore.js.map +1 -1
  155. package/lib/commonjs/ui/styles/spacing.js +54 -2
  156. package/lib/commonjs/ui/styles/spacing.js.map +1 -1
  157. package/lib/commonjs/ui/utils/avatarUtils.js +37 -41
  158. package/lib/commonjs/ui/utils/avatarUtils.js.map +1 -1
  159. package/lib/commonjs/ui/utils/storageHelpers.js.map +1 -1
  160. package/lib/commonjs/utils/errorUtils.js +13 -0
  161. package/lib/commonjs/utils/errorUtils.js.map +1 -1
  162. package/lib/commonjs/utils/validationUtils.js +15 -1
  163. package/lib/commonjs/utils/validationUtils.js.map +1 -1
  164. package/lib/module/core/CrossDomainAuth.js +271 -0
  165. package/lib/module/core/CrossDomainAuth.js.map +1 -0
  166. package/lib/module/core/HttpService.js +82 -15
  167. package/lib/module/core/HttpService.js.map +1 -1
  168. package/lib/module/core/OxyServices.base.js +11 -4
  169. package/lib/module/core/OxyServices.base.js.map +1 -1
  170. package/lib/module/core/OxyServices.js +4 -1
  171. package/lib/module/core/OxyServices.js.map +1 -1
  172. package/lib/module/core/index.js +6 -1
  173. package/lib/module/core/index.js.map +1 -1
  174. package/lib/module/core/mixins/OxyServices.assets.js +16 -3
  175. package/lib/module/core/mixins/OxyServices.assets.js.map +1 -1
  176. package/lib/module/core/mixins/OxyServices.auth.js +73 -32
  177. package/lib/module/core/mixins/OxyServices.auth.js.map +1 -1
  178. package/lib/module/core/mixins/OxyServices.features.js +369 -0
  179. package/lib/module/core/mixins/OxyServices.features.js.map +1 -0
  180. package/lib/module/core/mixins/OxyServices.fedcm.js +286 -0
  181. package/lib/module/core/mixins/OxyServices.fedcm.js.map +1 -0
  182. package/lib/module/core/mixins/OxyServices.popup.js +349 -0
  183. package/lib/module/core/mixins/OxyServices.popup.js.map +1 -0
  184. package/lib/module/core/mixins/OxyServices.redirect.js +375 -0
  185. package/lib/module/core/mixins/OxyServices.redirect.js.map +1 -0
  186. package/lib/module/core/mixins/OxyServices.user.js +35 -24
  187. package/lib/module/core/mixins/OxyServices.user.js.map +1 -1
  188. package/lib/module/core/mixins/index.js +16 -3
  189. package/lib/module/core/mixins/index.js.map +1 -1
  190. package/lib/module/crypto/index.js +8 -4
  191. package/lib/module/crypto/index.js.map +1 -1
  192. package/lib/module/crypto/keyManager.js +899 -0
  193. package/lib/module/crypto/keyManager.js.map +1 -0
  194. package/lib/module/crypto/polyfill.js +6 -5
  195. package/lib/module/crypto/polyfill.js.map +1 -1
  196. package/lib/module/crypto/recoveryPhrase.js +147 -0
  197. package/lib/module/crypto/recoveryPhrase.js.map +1 -0
  198. package/lib/module/crypto/signatureService.js +286 -0
  199. package/lib/module/crypto/signatureService.js.map +1 -0
  200. package/lib/module/i18n/locales/en-US.json +1 -1
  201. package/lib/module/index.js +6 -9
  202. package/lib/module/index.js.map +1 -1
  203. package/lib/module/models/interfaces.js +0 -15
  204. package/lib/module/models/interfaces.js.map +1 -1
  205. package/lib/module/ui/components/BottomSheetRouter.js +6 -2
  206. package/lib/module/ui/components/BottomSheetRouter.js.map +1 -1
  207. package/lib/module/ui/components/GroupedItem.js +11 -1
  208. package/lib/module/ui/components/GroupedItem.js.map +1 -1
  209. package/lib/module/ui/components/Icon.js.map +1 -1
  210. package/lib/module/ui/components/IconButton/utils.js.map +1 -1
  211. package/lib/module/ui/components/OxyProvider.js +41 -11
  212. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  213. package/lib/module/ui/components/SettingRow.js +17 -4
  214. package/lib/module/ui/components/SettingRow.js.map +1 -1
  215. package/lib/module/ui/components/TextField/Adornment/utils.js.map +1 -1
  216. package/lib/module/ui/components/TextField/helpers.js.map +1 -1
  217. package/lib/module/ui/components/TouchableRipple/utils.js.map +1 -1
  218. package/lib/module/ui/components/Typography/AnimatedText.js.map +1 -1
  219. package/lib/module/ui/components/feedback/FormInput.js +67 -0
  220. package/lib/module/ui/components/feedback/FormInput.js.map +1 -0
  221. package/lib/module/ui/components/feedback/ProgressIndicator.js +28 -0
  222. package/lib/module/ui/components/feedback/ProgressIndicator.js.map +1 -0
  223. package/lib/module/ui/components/feedback/constants.js +55 -0
  224. package/lib/module/ui/components/feedback/constants.js.map +1 -0
  225. package/lib/module/ui/components/feedback/feedbackStyles.js +257 -0
  226. package/lib/module/ui/components/feedback/feedbackStyles.js.map +1 -0
  227. package/lib/module/ui/components/feedback/index.js +8 -0
  228. package/lib/module/ui/components/feedback/index.js.map +1 -0
  229. package/lib/module/ui/components/feedback/types.js +4 -0
  230. package/lib/module/ui/components/feedback/types.js.map +1 -0
  231. package/lib/module/ui/components/feedback/useFeedbackForm.js +47 -0
  232. package/lib/module/ui/components/feedback/useFeedbackForm.js.map +1 -0
  233. package/lib/module/ui/components/modals/DeleteAccountModal.js +276 -0
  234. package/lib/module/ui/components/modals/DeleteAccountModal.js.map +1 -0
  235. package/lib/module/ui/components/modals/index.js +4 -0
  236. package/lib/module/ui/components/modals/index.js.map +1 -0
  237. package/lib/module/ui/components/payment/PaymentDetailsStep.js +303 -0
  238. package/lib/module/ui/components/payment/PaymentDetailsStep.js.map +1 -0
  239. package/lib/module/ui/components/payment/PaymentMethodStep.js +73 -0
  240. package/lib/module/ui/components/payment/PaymentMethodStep.js.map +1 -0
  241. package/lib/module/ui/components/payment/PaymentReviewStep.js +102 -0
  242. package/lib/module/ui/components/payment/PaymentReviewStep.js.map +1 -0
  243. package/lib/module/ui/components/payment/PaymentSuccessStep.js +73 -0
  244. package/lib/module/ui/components/payment/PaymentSuccessStep.js.map +1 -0
  245. package/lib/module/ui/components/payment/PaymentSummaryStep.js +170 -0
  246. package/lib/module/ui/components/payment/PaymentSummaryStep.js.map +1 -0
  247. package/lib/module/ui/components/payment/constants.js +47 -0
  248. package/lib/module/ui/components/payment/constants.js.map +1 -0
  249. package/lib/module/ui/components/payment/index.js +10 -0
  250. package/lib/module/ui/components/payment/index.js.map +1 -0
  251. package/lib/module/ui/components/payment/paymentStyles.js +404 -0
  252. package/lib/module/ui/components/payment/paymentStyles.js.map +1 -0
  253. package/lib/module/ui/components/payment/types.js +4 -0
  254. package/lib/module/ui/components/payment/types.js.map +1 -0
  255. package/lib/module/ui/context/OxyContext.js +112 -191
  256. package/lib/module/ui/context/OxyContext.js.map +1 -1
  257. package/lib/module/ui/context/hooks/useAuthOperations.js +150 -19
  258. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
  259. package/lib/module/ui/context/hooks/useSessionManagement.js +274 -0
  260. package/lib/module/ui/context/hooks/useSessionManagement.js.map +1 -0
  261. package/lib/module/ui/hooks/index.js +2 -0
  262. package/lib/module/ui/hooks/index.js.map +1 -1
  263. package/lib/module/ui/hooks/mutations/useAccountMutations.js +80 -72
  264. package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  265. package/lib/module/ui/hooks/queries/useAccountQueries.js +31 -44
  266. package/lib/module/ui/hooks/queries/useAccountQueries.js.map +1 -1
  267. package/lib/module/ui/hooks/queries/useSecurityQueries.js +1 -1
  268. package/lib/module/ui/hooks/queries/useSecurityQueries.js.map +1 -1
  269. package/lib/module/ui/hooks/queries/useServicesQueries.js +13 -7
  270. package/lib/module/ui/hooks/queries/useServicesQueries.js.map +1 -1
  271. package/lib/module/ui/hooks/useAsyncAction.js +89 -0
  272. package/lib/module/ui/hooks/useAsyncAction.js.map +1 -0
  273. package/lib/module/ui/hooks/useProfileEditing.js +3 -5
  274. package/lib/module/ui/hooks/useProfileEditing.js.map +1 -1
  275. package/lib/module/ui/hooks/useSessionManagement.js +4 -8
  276. package/lib/module/ui/hooks/useSessionManagement.js.map +1 -1
  277. package/lib/module/ui/hooks/useSessionSocket.js +162 -315
  278. package/lib/module/ui/hooks/useSessionSocket.js.map +1 -1
  279. package/lib/module/ui/hooks/useSettingToggle.js +120 -0
  280. package/lib/module/ui/hooks/useSettingToggle.js.map +1 -0
  281. package/lib/module/ui/hooks/useStorage.js +25 -59
  282. package/lib/module/ui/hooks/useStorage.js.map +1 -1
  283. package/lib/module/ui/index.js +15 -10
  284. package/lib/module/ui/index.js.map +1 -1
  285. package/lib/module/ui/navigation/routes.js +6 -1
  286. package/lib/module/ui/navigation/routes.js.map +1 -1
  287. package/lib/module/ui/screens/AccountCenterScreen.js +6 -4
  288. package/lib/module/ui/screens/AccountCenterScreen.js.map +1 -1
  289. package/lib/module/ui/screens/AccountOverviewScreen.js +33 -30
  290. package/lib/module/ui/screens/AccountOverviewScreen.js.map +1 -1
  291. package/lib/module/ui/screens/AccountSettingsScreen.js +29 -24
  292. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  293. package/lib/module/ui/screens/AccountSwitcherScreen.js +3 -3
  294. package/lib/module/ui/screens/AccountSwitcherScreen.js.map +1 -1
  295. package/lib/module/ui/screens/FAQScreen.js +310 -0
  296. package/lib/module/ui/screens/FAQScreen.js.map +1 -0
  297. package/lib/module/ui/screens/FeedbackScreen.js +64 -581
  298. package/lib/module/ui/screens/FeedbackScreen.js.map +1 -1
  299. package/lib/module/ui/screens/HelpSupportScreen.js +8 -7
  300. package/lib/module/ui/screens/HelpSupportScreen.js.map +1 -1
  301. package/lib/module/ui/screens/OxyAuthScreen.js +135 -68
  302. package/lib/module/ui/screens/OxyAuthScreen.js.map +1 -1
  303. package/lib/module/ui/screens/PaymentGatewayScreen.js +67 -1397
  304. package/lib/module/ui/screens/PaymentGatewayScreen.js.map +1 -1
  305. package/lib/module/ui/screens/PrivacySettingsScreen.js +6 -13
  306. package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
  307. package/lib/module/ui/screens/ProfileScreen.js +13 -5
  308. package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
  309. package/lib/module/ui/screens/SavesCollectionsScreen.js +16 -10
  310. package/lib/module/ui/screens/SavesCollectionsScreen.js.map +1 -1
  311. package/lib/module/ui/screens/karma/KarmaCenterScreen.js +23 -11
  312. package/lib/module/ui/screens/karma/KarmaCenterScreen.js.map +1 -1
  313. package/lib/module/ui/stores/accountStore.js +2 -4
  314. package/lib/module/ui/stores/accountStore.js.map +1 -1
  315. package/lib/module/ui/stores/authStore.js +45 -32
  316. package/lib/module/ui/stores/authStore.js.map +1 -1
  317. package/lib/module/ui/styles/spacing.js +6 -2
  318. package/lib/module/ui/styles/spacing.js.map +1 -1
  319. package/lib/module/ui/utils/avatarUtils.js +37 -40
  320. package/lib/module/ui/utils/avatarUtils.js.map +1 -1
  321. package/lib/module/ui/utils/storageHelpers.js.map +1 -1
  322. package/lib/module/utils/errorUtils.js +7 -0
  323. package/lib/module/utils/errorUtils.js.map +1 -1
  324. package/lib/module/utils/validationUtils.js +13 -0
  325. package/lib/module/utils/validationUtils.js.map +1 -1
  326. package/lib/typescript/core/CrossDomainAuth.d.ts +161 -0
  327. package/lib/typescript/core/CrossDomainAuth.d.ts.map +1 -0
  328. package/lib/typescript/core/HttpService.d.ts +1 -1
  329. package/lib/typescript/core/HttpService.d.ts.map +1 -1
  330. package/lib/typescript/core/OxyServices.base.d.ts +0 -6
  331. package/lib/typescript/core/OxyServices.base.d.ts.map +1 -1
  332. package/lib/typescript/core/OxyServices.d.ts +5 -36
  333. package/lib/typescript/core/OxyServices.d.ts.map +1 -1
  334. package/lib/typescript/core/index.d.ts +4 -0
  335. package/lib/typescript/core/index.d.ts.map +1 -1
  336. package/lib/typescript/core/mixins/OxyServices.analytics.d.ts.map +1 -1
  337. package/lib/typescript/core/mixins/OxyServices.assets.d.ts.map +1 -1
  338. package/lib/typescript/core/mixins/OxyServices.auth.d.ts +40 -20
  339. package/lib/typescript/core/mixins/OxyServices.auth.d.ts.map +1 -1
  340. package/lib/typescript/core/mixins/OxyServices.developer.d.ts.map +1 -1
  341. package/lib/typescript/core/mixins/OxyServices.devices.d.ts.map +1 -1
  342. package/lib/typescript/core/mixins/OxyServices.features.d.ts +229 -0
  343. package/lib/typescript/core/mixins/OxyServices.features.d.ts.map +1 -0
  344. package/lib/typescript/core/mixins/OxyServices.fedcm.d.ts +195 -0
  345. package/lib/typescript/core/mixins/OxyServices.fedcm.d.ts.map +1 -0
  346. package/lib/typescript/core/mixins/OxyServices.karma.d.ts.map +1 -1
  347. package/lib/typescript/core/mixins/OxyServices.language.d.ts.map +1 -1
  348. package/lib/typescript/core/mixins/OxyServices.location.d.ts.map +1 -1
  349. package/lib/typescript/core/mixins/OxyServices.payment.d.ts.map +1 -1
  350. package/lib/typescript/core/mixins/OxyServices.popup.d.ts +206 -0
  351. package/lib/typescript/core/mixins/OxyServices.popup.d.ts.map +1 -0
  352. package/lib/typescript/core/mixins/OxyServices.privacy.d.ts.map +1 -1
  353. package/lib/typescript/core/mixins/OxyServices.redirect.d.ts +246 -0
  354. package/lib/typescript/core/mixins/OxyServices.redirect.d.ts.map +1 -0
  355. package/lib/typescript/core/mixins/OxyServices.security.d.ts.map +1 -1
  356. package/lib/typescript/core/mixins/OxyServices.user.d.ts +6 -4
  357. package/lib/typescript/core/mixins/OxyServices.user.d.ts.map +1 -1
  358. package/lib/typescript/core/mixins/OxyServices.utility.d.ts.map +1 -1
  359. package/lib/typescript/core/mixins/index.d.ts +291 -9
  360. package/lib/typescript/core/mixins/index.d.ts.map +1 -1
  361. package/lib/typescript/crypto/index.d.ts +6 -3
  362. package/lib/typescript/crypto/index.d.ts.map +1 -1
  363. package/lib/typescript/crypto/keyManager.d.ts +190 -0
  364. package/lib/typescript/crypto/keyManager.d.ts.map +1 -0
  365. package/lib/typescript/crypto/polyfill.d.ts +4 -3
  366. package/lib/typescript/crypto/polyfill.d.ts.map +1 -1
  367. package/lib/typescript/crypto/recoveryPhrase.d.ts +59 -0
  368. package/lib/typescript/crypto/recoveryPhrase.d.ts.map +1 -0
  369. package/lib/typescript/crypto/signatureService.d.ts +87 -0
  370. package/lib/typescript/crypto/signatureService.d.ts.map +1 -0
  371. package/lib/typescript/index.d.ts +5 -6
  372. package/lib/typescript/index.d.ts.map +1 -1
  373. package/lib/typescript/models/interfaces.d.ts +2 -14
  374. package/lib/typescript/models/interfaces.d.ts.map +1 -1
  375. package/lib/typescript/models/session.d.ts +0 -9
  376. package/lib/typescript/models/session.d.ts.map +1 -1
  377. package/lib/typescript/types/bip39.d.ts +32 -0
  378. package/lib/typescript/ui/components/BottomSheetRouter.d.ts +5 -0
  379. package/lib/typescript/ui/components/BottomSheetRouter.d.ts.map +1 -1
  380. package/lib/typescript/ui/components/GroupedItem.d.ts +5 -1
  381. package/lib/typescript/ui/components/GroupedItem.d.ts.map +1 -1
  382. package/lib/typescript/ui/components/IconButton/utils.d.ts +1 -1
  383. package/lib/typescript/ui/components/OxyProvider.d.ts.map +1 -1
  384. package/lib/typescript/ui/components/SettingRow.d.ts +6 -0
  385. package/lib/typescript/ui/components/SettingRow.d.ts.map +1 -1
  386. package/lib/typescript/ui/components/TextField/Addons/Outline.d.ts +2 -2
  387. package/lib/typescript/ui/components/TextField/Adornment/utils.d.ts +1 -1
  388. package/lib/typescript/ui/components/TextField/Adornment/utils.d.ts.map +1 -1
  389. package/lib/typescript/ui/components/TextField/helpers.d.ts +8 -8
  390. package/lib/typescript/ui/components/TextField/types.d.ts +1 -0
  391. package/lib/typescript/ui/components/TextField/types.d.ts.map +1 -1
  392. package/lib/typescript/ui/components/feedback/FormInput.d.ts +20 -0
  393. package/lib/typescript/ui/components/feedback/FormInput.d.ts.map +1 -0
  394. package/lib/typescript/ui/components/feedback/ProgressIndicator.d.ts +11 -0
  395. package/lib/typescript/ui/components/feedback/ProgressIndicator.d.ts.map +1 -0
  396. package/lib/typescript/ui/components/feedback/constants.d.ts +5 -0
  397. package/lib/typescript/ui/components/feedback/constants.d.ts.map +1 -0
  398. package/lib/typescript/ui/components/feedback/feedbackStyles.d.ts +280 -0
  399. package/lib/typescript/ui/components/feedback/feedbackStyles.d.ts.map +1 -0
  400. package/lib/typescript/ui/components/feedback/index.d.ts +7 -0
  401. package/lib/typescript/ui/components/feedback/index.d.ts.map +1 -0
  402. package/lib/typescript/ui/components/feedback/types.d.ts +46 -0
  403. package/lib/typescript/ui/components/feedback/types.d.ts.map +1 -0
  404. package/lib/typescript/ui/components/feedback/useFeedbackForm.d.ts +9 -0
  405. package/lib/typescript/ui/components/feedback/useFeedbackForm.d.ts.map +1 -0
  406. package/lib/typescript/ui/components/modals/DeleteAccountModal.d.ts +19 -0
  407. package/lib/typescript/ui/components/modals/DeleteAccountModal.d.ts.map +1 -0
  408. package/lib/typescript/ui/components/modals/index.d.ts +2 -0
  409. package/lib/typescript/ui/components/modals/index.d.ts.map +1 -0
  410. package/lib/typescript/ui/components/payment/PaymentDetailsStep.d.ts +21 -0
  411. package/lib/typescript/ui/components/payment/PaymentDetailsStep.d.ts.map +1 -0
  412. package/lib/typescript/ui/components/payment/PaymentMethodStep.d.ts +14 -0
  413. package/lib/typescript/ui/components/payment/PaymentMethodStep.d.ts.map +1 -0
  414. package/lib/typescript/ui/components/payment/PaymentReviewStep.d.ts +16 -0
  415. package/lib/typescript/ui/components/payment/PaymentReviewStep.d.ts.map +1 -0
  416. package/lib/typescript/ui/components/payment/PaymentSuccessStep.d.ts +10 -0
  417. package/lib/typescript/ui/components/payment/PaymentSuccessStep.d.ts.map +1 -0
  418. package/lib/typescript/ui/components/payment/PaymentSummaryStep.d.ts +15 -0
  419. package/lib/typescript/ui/components/payment/PaymentSummaryStep.d.ts.map +1 -0
  420. package/lib/typescript/ui/components/payment/constants.d.ts +7 -0
  421. package/lib/typescript/ui/components/payment/constants.d.ts.map +1 -0
  422. package/lib/typescript/ui/components/payment/index.d.ts +9 -0
  423. package/lib/typescript/ui/components/payment/index.d.ts.map +1 -0
  424. package/lib/typescript/ui/components/payment/paymentStyles.d.ts +396 -0
  425. package/lib/typescript/ui/components/payment/paymentStyles.d.ts.map +1 -0
  426. package/lib/typescript/ui/components/payment/types.d.ts +40 -0
  427. package/lib/typescript/ui/components/payment/types.d.ts.map +1 -0
  428. package/lib/typescript/ui/components/types.d.ts +4 -0
  429. package/lib/typescript/ui/components/types.d.ts.map +1 -1
  430. package/lib/typescript/ui/context/OxyContext.d.ts +57 -3
  431. package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
  432. package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts +10 -3
  433. package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  434. package/lib/typescript/ui/context/hooks/useSessionManagement.d.ts +41 -0
  435. package/lib/typescript/ui/context/hooks/useSessionManagement.d.ts.map +1 -0
  436. package/lib/typescript/ui/hooks/index.d.ts +2 -0
  437. package/lib/typescript/ui/hooks/index.d.ts.map +1 -1
  438. package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  439. package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
  440. package/lib/typescript/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  441. package/lib/typescript/ui/hooks/useAsyncAction.d.ts +51 -0
  442. package/lib/typescript/ui/hooks/useAsyncAction.d.ts.map +1 -0
  443. package/lib/typescript/ui/hooks/useProfileEditing.d.ts.map +1 -1
  444. package/lib/typescript/ui/hooks/useSessionManagement.d.ts.map +1 -1
  445. package/lib/typescript/ui/hooks/useSessionSocket.d.ts +1 -2
  446. package/lib/typescript/ui/hooks/useSessionSocket.d.ts.map +1 -1
  447. package/lib/typescript/ui/hooks/useSettingToggle.d.ts +55 -0
  448. package/lib/typescript/ui/hooks/useSettingToggle.d.ts.map +1 -0
  449. package/lib/typescript/ui/hooks/useStorage.d.ts +3 -9
  450. package/lib/typescript/ui/hooks/useStorage.d.ts.map +1 -1
  451. package/lib/typescript/ui/index.d.ts +6 -2
  452. package/lib/typescript/ui/index.d.ts.map +1 -1
  453. package/lib/typescript/ui/navigation/routes.d.ts +1 -1
  454. package/lib/typescript/ui/navigation/routes.d.ts.map +1 -1
  455. package/lib/typescript/ui/screens/AccountOverviewScreen.d.ts.map +1 -1
  456. package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  457. package/lib/typescript/ui/screens/FAQScreen.d.ts +5 -0
  458. package/lib/typescript/ui/screens/FAQScreen.d.ts.map +1 -0
  459. package/lib/typescript/ui/screens/FeedbackScreen.d.ts.map +1 -1
  460. package/lib/typescript/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  461. package/lib/typescript/ui/screens/OxyAuthScreen.d.ts +1 -1
  462. package/lib/typescript/ui/screens/OxyAuthScreen.d.ts.map +1 -1
  463. package/lib/typescript/ui/screens/PaymentGatewayScreen.d.ts +3 -15
  464. package/lib/typescript/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  465. package/lib/typescript/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  466. package/lib/typescript/ui/screens/ProfileScreen.d.ts.map +1 -1
  467. package/lib/typescript/ui/screens/SavesCollectionsScreen.d.ts.map +1 -1
  468. package/lib/typescript/ui/screens/karma/KarmaCenterScreen.d.ts.map +1 -1
  469. package/lib/typescript/ui/stores/accountStore.d.ts.map +1 -1
  470. package/lib/typescript/ui/stores/authStore.d.ts +8 -7
  471. package/lib/typescript/ui/stores/authStore.d.ts.map +1 -1
  472. package/lib/typescript/ui/styles/spacing.d.ts +5 -0
  473. package/lib/typescript/ui/styles/spacing.d.ts.map +1 -1
  474. package/lib/typescript/ui/types/navigation.d.ts +2 -1
  475. package/lib/typescript/ui/types/navigation.d.ts.map +1 -1
  476. package/lib/typescript/ui/utils/avatarUtils.d.ts +2 -13
  477. package/lib/typescript/ui/utils/avatarUtils.d.ts.map +1 -1
  478. package/lib/typescript/ui/utils/storageHelpers.d.ts +0 -3
  479. package/lib/typescript/ui/utils/storageHelpers.d.ts.map +1 -1
  480. package/lib/typescript/utils/errorUtils.d.ts +6 -0
  481. package/lib/typescript/utils/errorUtils.d.ts.map +1 -1
  482. package/lib/typescript/utils/validationUtils.d.ts +8 -0
  483. package/lib/typescript/utils/validationUtils.d.ts.map +1 -1
  484. package/package.json +8 -7
  485. package/src/core/CrossDomainAuth.ts +307 -0
  486. package/src/core/HttpService.ts +99 -16
  487. package/src/core/OxyServices.base.ts +20 -3
  488. package/src/core/OxyServices.ts +7 -3
  489. package/src/core/index.ts +9 -1
  490. package/src/core/mixins/OxyServices.assets.ts +14 -3
  491. package/src/core/mixins/OxyServices.auth.ts +105 -36
  492. package/src/core/mixins/OxyServices.features.ts +428 -0
  493. package/src/core/mixins/OxyServices.fedcm.ts +315 -0
  494. package/src/core/mixins/OxyServices.popup.ts +402 -0
  495. package/src/core/mixins/OxyServices.redirect.ts +397 -0
  496. package/src/core/mixins/OxyServices.user.ts +39 -24
  497. package/src/core/mixins/index.ts +33 -14
  498. package/src/crypto/index.ts +16 -5
  499. package/src/crypto/keyManager.ts +966 -0
  500. package/src/crypto/polyfill.ts +6 -5
  501. package/src/crypto/recoveryPhrase.ts +166 -0
  502. package/src/crypto/signatureService.ts +323 -0
  503. package/src/i18n/locales/en-US.json +1 -1
  504. package/src/index.ts +19 -15
  505. package/src/models/interfaces.ts +4 -16
  506. package/src/models/session.ts +2 -11
  507. package/src/types/bip39.d.ts +32 -0
  508. package/src/ui/components/BottomSheetRouter.tsx +6 -1
  509. package/src/ui/components/GroupedItem.tsx +19 -1
  510. package/src/ui/components/Icon.tsx +1 -1
  511. package/src/ui/components/IconButton/utils.ts +1 -1
  512. package/src/ui/components/OxyProvider.tsx +44 -12
  513. package/src/ui/components/SettingRow.tsx +26 -4
  514. package/src/ui/components/TextField/Addons/Outline.tsx +2 -2
  515. package/src/ui/components/TextField/Adornment/utils.ts +2 -2
  516. package/src/ui/components/TextField/helpers.tsx +10 -10
  517. package/src/ui/components/TextField/types.tsx +1 -1
  518. package/src/ui/components/TouchableRipple/utils.ts +2 -2
  519. package/src/ui/components/Typography/AnimatedText.tsx +2 -2
  520. package/src/ui/components/feedback/FormInput.tsx +84 -0
  521. package/src/ui/components/feedback/ProgressIndicator.tsx +35 -0
  522. package/src/ui/components/feedback/constants.ts +22 -0
  523. package/src/ui/components/feedback/feedbackStyles.ts +247 -0
  524. package/src/ui/components/feedback/index.ts +6 -0
  525. package/src/ui/components/feedback/types.ts +52 -0
  526. package/src/ui/components/feedback/useFeedbackForm.ts +44 -0
  527. package/src/ui/components/modals/DeleteAccountModal.tsx +294 -0
  528. package/src/ui/components/modals/index.ts +1 -0
  529. package/src/ui/components/payment/PaymentDetailsStep.tsx +222 -0
  530. package/src/ui/components/payment/PaymentMethodStep.tsx +89 -0
  531. package/src/ui/components/payment/PaymentReviewStep.tsx +126 -0
  532. package/src/ui/components/payment/PaymentSuccessStep.tsx +71 -0
  533. package/src/ui/components/payment/PaymentSummaryStep.tsx +159 -0
  534. package/src/ui/components/payment/constants.ts +39 -0
  535. package/src/ui/components/payment/index.ts +9 -0
  536. package/src/ui/components/payment/paymentStyles.ts +397 -0
  537. package/src/ui/components/payment/types.ts +45 -0
  538. package/src/ui/components/types.tsx +6 -0
  539. package/src/ui/context/OxyContext.tsx +173 -195
  540. package/src/ui/context/hooks/useAuthOperations.ts +177 -36
  541. package/src/ui/context/hooks/useSessionManagement.ts +399 -0
  542. package/src/ui/hooks/index.ts +3 -1
  543. package/src/ui/hooks/mutations/useAccountMutations.ts +83 -76
  544. package/src/ui/hooks/queries/useAccountQueries.ts +29 -35
  545. package/src/ui/hooks/queries/useSecurityQueries.ts +1 -1
  546. package/src/ui/hooks/queries/useServicesQueries.ts +14 -6
  547. package/src/ui/hooks/useAsyncAction.ts +129 -0
  548. package/src/ui/hooks/useProfileEditing.ts +3 -3
  549. package/src/ui/hooks/useSessionManagement.ts +5 -10
  550. package/src/ui/hooks/useSessionSocket.ts +46 -175
  551. package/src/ui/hooks/useSettingToggle.ts +147 -0
  552. package/src/ui/hooks/useStorage.ts +24 -76
  553. package/src/ui/index.ts +22 -13
  554. package/src/ui/navigation/routes.ts +8 -2
  555. package/src/ui/screens/AccountCenterScreen.tsx +4 -4
  556. package/src/ui/screens/AccountOverviewScreen.tsx +36 -38
  557. package/src/ui/screens/AccountSettingsScreen.tsx +34 -37
  558. package/src/ui/screens/AccountSwitcherScreen.tsx +4 -4
  559. package/src/ui/screens/FAQScreen.tsx +332 -0
  560. package/src/ui/screens/FeedbackScreen.tsx +91 -626
  561. package/src/ui/screens/HelpSupportScreen.tsx +7 -5
  562. package/src/ui/screens/OxyAuthScreen.tsx +138 -64
  563. package/src/ui/screens/PaymentGatewayScreen.tsx +96 -1275
  564. package/src/ui/screens/PrivacySettingsScreen.tsx +6 -12
  565. package/src/ui/screens/ProfileScreen.tsx +11 -6
  566. package/src/ui/screens/SavesCollectionsScreen.tsx +19 -10
  567. package/src/ui/screens/karma/KarmaCenterScreen.tsx +10 -10
  568. package/src/ui/stores/accountStore.ts +1 -11
  569. package/src/ui/stores/authStore.ts +43 -44
  570. package/src/ui/styles/spacing.ts +15 -2
  571. package/src/ui/types/navigation.ts +2 -2
  572. package/src/ui/utils/avatarUtils.ts +39 -46
  573. package/src/ui/utils/storageHelpers.ts +0 -4
  574. package/src/utils/__tests__/validationUtils.test.ts +16 -1
  575. package/src/utils/errorUtils.ts +8 -1
  576. package/src/utils/validationUtils.ts +12 -0
  577. package/lib/commonjs/core/services/SessionService.js +0 -163
  578. package/lib/commonjs/core/services/SessionService.js.map +0 -1
  579. package/lib/commonjs/core/services/TokenService.js +0 -220
  580. package/lib/commonjs/core/services/TokenService.js.map +0 -1
  581. package/lib/commonjs/crypto/types.js +0 -2
  582. package/lib/commonjs/crypto/types.js.map +0 -1
  583. package/lib/commonjs/ui/context/OxyContextBase.js +0 -21
  584. package/lib/commonjs/ui/context/OxyContextBase.js.map +0 -1
  585. package/lib/commonjs/ui/context/hooks/useStorage.js +0 -79
  586. package/lib/commonjs/ui/context/hooks/useStorage.js.map +0 -1
  587. package/lib/commonjs/ui/hooks/useAvatarPicker.js +0 -56
  588. package/lib/commonjs/ui/hooks/useAvatarPicker.js.map +0 -1
  589. package/lib/module/core/services/SessionService.js +0 -159
  590. package/lib/module/core/services/SessionService.js.map +0 -1
  591. package/lib/module/core/services/TokenService.js +0 -217
  592. package/lib/module/core/services/TokenService.js.map +0 -1
  593. package/lib/module/crypto/types.js +0 -2
  594. package/lib/module/crypto/types.js.map +0 -1
  595. package/lib/module/ui/context/OxyContextBase.js +0 -16
  596. package/lib/module/ui/context/OxyContextBase.js.map +0 -1
  597. package/lib/module/ui/context/hooks/useStorage.js +0 -74
  598. package/lib/module/ui/context/hooks/useStorage.js.map +0 -1
  599. package/lib/module/ui/hooks/useAvatarPicker.js +0 -50
  600. package/lib/module/ui/hooks/useAvatarPicker.js.map +0 -1
  601. package/lib/typescript/core/services/SessionService.d.ts +0 -78
  602. package/lib/typescript/core/services/SessionService.d.ts.map +0 -1
  603. package/lib/typescript/core/services/TokenService.d.ts +0 -72
  604. package/lib/typescript/core/services/TokenService.d.ts.map +0 -1
  605. package/lib/typescript/crypto/types.d.ts +0 -22
  606. package/lib/typescript/crypto/types.d.ts.map +0 -1
  607. package/lib/typescript/ui/context/OxyContextBase.d.ts +0 -63
  608. package/lib/typescript/ui/context/OxyContextBase.d.ts.map +0 -1
  609. package/lib/typescript/ui/context/hooks/useStorage.d.ts +0 -22
  610. package/lib/typescript/ui/context/hooks/useStorage.d.ts.map +0 -1
  611. package/lib/typescript/ui/hooks/useAvatarPicker.d.ts +0 -19
  612. package/lib/typescript/ui/hooks/useAvatarPicker.d.ts.map +0 -1
  613. package/src/core/services/SessionService.ts +0 -173
  614. package/src/core/services/TokenService.ts +0 -237
  615. package/src/crypto/types.ts +0 -23
  616. package/src/ui/context/OxyContextBase.tsx +0 -78
  617. package/src/ui/context/hooks/useStorage.ts +0 -104
  618. package/src/ui/hooks/useAvatarPicker.ts +0 -61
@@ -14,515 +14,15 @@ var _version = require("../../constants/version");
14
14
  var _components = require("../components");
15
15
  var _useI18n = require("../hooks/useI18n");
16
16
  var _OxyContext = require("../context/OxyContext");
17
- var _spacing = require("../constants/spacing");
17
+ var _feedback = require("../components/feedback");
18
18
  var _jsxRuntime = require("react/jsx-runtime");
19
19
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
20
- // Types for better type safety
21
-
22
- // Constants
23
- const FEEDBACK_TYPES = [{
24
- id: 'bug',
25
- label: 'Bug Report',
26
- icon: 'bug',
27
- color: '#FF3B30',
28
- description: 'Report a problem or issue'
29
- }, {
30
- id: 'feature',
31
- label: 'Feature Request',
32
- icon: 'bulb',
33
- color: '#007AFF',
34
- description: 'Suggest a new feature'
35
- }, {
36
- id: 'general',
37
- label: 'General Feedback',
38
- icon: 'chatbubble',
39
- color: '#34C759',
40
- description: 'Share your thoughts'
41
- }, {
42
- id: 'support',
43
- label: 'Support Request',
44
- icon: 'help-circle',
45
- color: '#FF9500',
46
- description: 'Get help with something'
47
- }];
48
- const PRIORITY_LEVELS = [{
49
- id: 'low',
50
- label: 'Low',
51
- icon: 'arrow-down',
52
- color: '#34C759'
53
- }, {
54
- id: 'medium',
55
- label: 'Medium',
56
- icon: 'remove',
57
- color: '#FF9500'
58
- }, {
59
- id: 'high',
60
- label: 'High',
61
- icon: 'arrow-up',
62
- color: '#FF3B30'
63
- }, {
64
- id: 'critical',
65
- label: 'Critical',
66
- icon: 'warning',
67
- color: '#FF0000'
68
- }];
69
- const CATEGORIES = {
70
- bug: ['UI/UX', 'Performance', 'Authentication', 'File Management', 'Billing', 'Other'],
71
- feature: ['User Interface', 'File Management', 'Security', 'Performance', 'Integration', 'Other'],
72
- general: ['User Experience', 'Design', 'Performance', 'Documentation', 'Other'],
73
- support: ['Account Issues', 'Billing', 'Technical Problems', 'Feature Questions', 'Other']
74
- };
75
-
76
- // Styles factory function
77
- const createStyles = (colors, theme) => _reactNative.StyleSheet.create({
78
- container: {
79
- flex: 1
80
- },
81
- fullBleed: {
82
- width: '100%',
83
- alignSelf: 'stretch'
84
- },
85
- scrollContent: {
86
- flexGrow: 1,
87
- ..._spacing.screenContentStyle
88
- },
89
- stepContainer: {
90
- flex: 1,
91
- justifyContent: 'flex-start',
92
- alignItems: 'flex-start'
93
- },
94
- modernHeader: {
95
- alignItems: 'flex-start',
96
- width: '100%',
97
- marginBottom: 24
98
- },
99
- modernTitle: {
100
- fontFamily: _reactNative.Platform.OS === 'web' ? 'Phudu' : 'Phudu-Bold',
101
- fontWeight: _reactNative.Platform.OS === 'web' ? 'bold' : undefined,
102
- fontSize: 42,
103
- lineHeight: 48,
104
- marginBottom: 12,
105
- textAlign: 'left',
106
- letterSpacing: -1
107
- },
108
- modernSubtitle: {
109
- fontSize: 18,
110
- lineHeight: 24,
111
- textAlign: 'left',
112
- opacity: 0.8,
113
- marginBottom: 24
114
- },
115
- stepTitle: {
116
- fontFamily: _reactNative.Platform.OS === 'web' ? 'Phudu' : 'Phudu-Bold',
117
- fontWeight: _reactNative.Platform.OS === 'web' ? 'bold' : undefined,
118
- fontSize: 42,
119
- lineHeight: 48,
120
- marginBottom: 12,
121
- textAlign: 'left',
122
- letterSpacing: -1
123
- },
124
- inputContainer: {
125
- width: '100%',
126
- marginBottom: 24
127
- },
128
- premiumInputWrapper: {
129
- flexDirection: 'row',
130
- alignItems: 'center',
131
- height: 56,
132
- borderRadius: 16,
133
- paddingHorizontal: 20,
134
- borderWidth: 2,
135
- backgroundColor: colors.inputBackground
136
- },
137
- textAreaWrapper: {
138
- flexDirection: 'column',
139
- alignItems: 'flex-start',
140
- minHeight: 120,
141
- borderRadius: 16,
142
- paddingHorizontal: 20,
143
- paddingVertical: 16,
144
- borderWidth: 2,
145
- backgroundColor: colors.inputBackground
146
- },
147
- inputIcon: {
148
- marginRight: 12
149
- },
150
- inputContent: {
151
- flex: 1
152
- },
153
- modernLabel: {
154
- fontSize: 12,
155
- fontWeight: '500',
156
- marginBottom: 2
157
- },
158
- modernInput: {
159
- flex: 1,
160
- fontSize: 16,
161
- height: '100%'
162
- },
163
- textArea: {
164
- flex: 1,
165
- fontSize: 16,
166
- textAlignVertical: 'top',
167
- minHeight: 80
168
- },
169
- typeGrid: {
170
- flexDirection: 'row',
171
- flexWrap: 'wrap',
172
- gap: 12,
173
- marginBottom: 24
174
- },
175
- typeCard: {
176
- width: (_reactNative.Dimensions.get('window').width - 72) / 2,
177
- padding: 20,
178
- borderRadius: 16,
179
- borderWidth: 2,
180
- alignItems: 'center',
181
- justifyContent: 'center',
182
- minHeight: 120
183
- },
184
- typeIcon: {
185
- marginBottom: 12
186
- },
187
- typeLabel: {
188
- fontSize: 16,
189
- fontWeight: '600',
190
- textAlign: 'center',
191
- marginBottom: 4
192
- },
193
- typeDescription: {
194
- fontSize: 12,
195
- textAlign: 'center',
196
- opacity: 0.8
197
- },
198
- priorityContainer: {
199
- flexDirection: 'row',
200
- justifyContent: 'space-between',
201
- marginBottom: 24
202
- },
203
- priorityButton: {
204
- flex: 1,
205
- padding: 16,
206
- borderRadius: 12,
207
- borderWidth: 2,
208
- alignItems: 'center',
209
- marginHorizontal: 4
210
- },
211
- priorityLabel: {
212
- fontSize: 12,
213
- fontWeight: '600',
214
- marginTop: 4
215
- },
216
- categoryContainer: {
217
- marginBottom: 24
218
- },
219
- categoryButton: {
220
- flexDirection: 'row',
221
- alignItems: 'center',
222
- paddingVertical: 12,
223
- paddingHorizontal: 16,
224
- borderRadius: 12,
225
- borderWidth: 1,
226
- marginBottom: 8
227
- },
228
- categoryText: {
229
- fontSize: 16,
230
- marginLeft: 12
231
- },
232
- checkboxContainer: {
233
- flexDirection: 'row',
234
- alignItems: 'center',
235
- marginBottom: 24
236
- },
237
- checkbox: {
238
- width: 24,
239
- height: 24,
240
- borderRadius: 6,
241
- borderWidth: 2,
242
- marginRight: 12,
243
- alignItems: 'center',
244
- justifyContent: 'center'
245
- },
246
- checkboxText: {
247
- fontSize: 16,
248
- flex: 1
249
- },
250
- button: {
251
- flexDirection: 'row',
252
- alignItems: 'center',
253
- justifyContent: 'center',
254
- paddingVertical: 18,
255
- paddingHorizontal: 32,
256
- borderRadius: 16,
257
- marginVertical: 8,
258
- gap: 8,
259
- width: '100%',
260
- ..._reactNative.Platform.select({
261
- web: {
262
- boxShadow: '0 4px 8px rgba(0,0,0,0.3)'
263
- },
264
- default: {
265
- shadowOffset: {
266
- width: 0,
267
- height: 4
268
- },
269
- shadowOpacity: 0.3,
270
- shadowRadius: 8,
271
- elevation: 6
272
- }
273
- })
274
- },
275
- buttonText: {
276
- color: '#FFFFFF',
277
- fontSize: 16,
278
- fontWeight: '600',
279
- letterSpacing: 0.5
280
- },
281
- navigationButtons: {
282
- flexDirection: 'row',
283
- justifyContent: 'center',
284
- marginTop: 16,
285
- marginBottom: 8,
286
- width: '100%',
287
- gap: 8
288
- },
289
- navButton: {
290
- flexDirection: 'row',
291
- alignItems: 'center',
292
- paddingVertical: 6,
293
- paddingHorizontal: 12,
294
- gap: 6,
295
- minWidth: 70,
296
- borderWidth: 1,
297
- ..._reactNative.Platform.select({
298
- web: {
299
- boxShadow: '0 2px 4px rgba(0,0,0,0.1)'
300
- },
301
- default: {
302
- shadowOffset: {
303
- width: 0,
304
- height: 2
305
- },
306
- shadowOpacity: 0.1,
307
- shadowRadius: 4,
308
- elevation: 2
309
- }
310
- })
311
- },
312
- backButton: {
313
- backgroundColor: 'transparent',
314
- borderTopLeftRadius: 35,
315
- borderBottomLeftRadius: 35,
316
- borderTopRightRadius: 12,
317
- borderBottomRightRadius: 12
318
- },
319
- nextButton: {
320
- backgroundColor: 'transparent',
321
- borderTopRightRadius: 35,
322
- borderBottomRightRadius: 35,
323
- borderTopLeftRadius: 12,
324
- borderBottomLeftRadius: 12
325
- },
326
- navButtonText: {
327
- fontSize: 13,
328
- fontWeight: '500'
329
- },
330
- progressContainer: {
331
- flexDirection: 'row',
332
- justifyContent: 'center',
333
- marginBottom: 20,
334
- marginTop: 8
335
- },
336
- progressDot: {
337
- height: 10,
338
- width: 10,
339
- borderRadius: 5,
340
- marginHorizontal: 6,
341
- borderWidth: 2,
342
- borderColor: '#fff',
343
- ..._reactNative.Platform.select({
344
- web: {
345
- boxShadow: '0 1px 2px rgba(0,0,0,0.08)'
346
- },
347
- default: {
348
- shadowColor: colors.primary,
349
- shadowOpacity: 0.08,
350
- shadowOffset: {
351
- width: 0,
352
- height: 1
353
- },
354
- shadowRadius: 2,
355
- elevation: 1
356
- }
357
- })
358
- },
359
- summaryContainer: {
360
- padding: 0,
361
- marginBottom: 24,
362
- width: '100%'
363
- },
364
- summaryRow: {
365
- flexDirection: 'row',
366
- marginBottom: 10
367
- },
368
- summaryLabel: {
369
- fontSize: 15,
370
- width: 90
371
- },
372
- summaryValue: {
373
- fontSize: 15,
374
- fontWeight: '600',
375
- flex: 1
376
- },
377
- successContainer: {
378
- alignItems: 'center',
379
- justifyContent: 'center',
380
- padding: 40
381
- },
382
- successIcon: {
383
- marginBottom: 24
384
- },
385
- successTitle: {
386
- fontSize: 24,
387
- fontWeight: 'bold',
388
- marginBottom: 12,
389
- textAlign: 'center'
390
- },
391
- successMessage: {
392
- fontSize: 16,
393
- textAlign: 'center',
394
- opacity: 0.8,
395
- marginBottom: 24
396
- }
397
- });
398
-
399
- // Custom hooks for better separation of concerns
400
- const useFeedbackForm = () => {
401
- const [feedbackData, setFeedbackData] = (0, _react.useState)({
402
- type: 'general',
403
- title: '',
404
- description: '',
405
- priority: 'medium',
406
- category: '',
407
- contactEmail: '',
408
- systemInfo: true
409
- });
410
- const [feedbackState, setFeedbackState] = (0, _react.useState)({
411
- status: 'idle',
412
- message: ''
413
- });
414
- const updateField = (0, _react.useCallback)((field, value) => {
415
- setFeedbackData(prev => ({
416
- ...prev,
417
- [field]: value
418
- }));
419
- }, []);
420
- const resetForm = (0, _react.useCallback)(() => {
421
- setFeedbackData({
422
- type: 'general',
423
- title: '',
424
- description: '',
425
- priority: 'medium',
426
- category: '',
427
- contactEmail: '',
428
- systemInfo: true
429
- });
430
- setFeedbackState({
431
- status: 'idle',
432
- message: ''
433
- });
434
- }, []);
435
- return {
436
- feedbackData,
437
- feedbackState,
438
- setFeedbackState,
439
- updateField,
440
- resetForm
441
- };
442
- };
443
-
444
- // Reusable components
445
- const FormInput = /*#__PURE__*/_react.default.memo(({
446
- icon,
447
- label,
448
- value,
449
- onChangeText,
450
- placeholder,
451
- multiline = false,
452
- numberOfLines = 1,
453
- testID,
454
- colors,
455
- styles,
456
- borderColor
457
- }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
458
- style: styles.inputContainer,
459
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
460
- style: [multiline ? styles.textAreaWrapper : styles.premiumInputWrapper, {
461
- borderColor: borderColor || colors.border,
462
- backgroundColor: colors.inputBackground,
463
- shadowColor: colors.primary,
464
- shadowOffset: {
465
- width: 0,
466
- height: 4
467
- },
468
- shadowOpacity: 0.1,
469
- shadowRadius: 12,
470
- elevation: 3
471
- }],
472
- children: [!multiline && /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
473
- name: icon,
474
- size: 22,
475
- color: colors.secondaryText,
476
- style: styles.inputIcon
477
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
478
- style: styles.inputContent,
479
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
480
- style: [styles.modernLabel, {
481
- color: colors.secondaryText
482
- }],
483
- children: label
484
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
485
- style: [multiline ? styles.textArea : styles.modernInput, {
486
- color: colors.text
487
- }],
488
- value: value,
489
- onChangeText: onChangeText,
490
- placeholder: placeholder,
491
- placeholderTextColor: colors.secondaryText + '60',
492
- multiline: multiline,
493
- numberOfLines: multiline ? numberOfLines : undefined,
494
- testID: testID
495
- })]
496
- })]
497
- })
498
- }));
499
- const ProgressIndicator = /*#__PURE__*/_react.default.memo(({
500
- currentStep,
501
- totalSteps,
502
- colors,
503
- styles
504
- }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
505
- style: styles.progressContainer,
506
- children: Array.from({
507
- length: totalSteps
508
- }, (_, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
509
- style: [styles.progressDot, currentStep === index ? {
510
- backgroundColor: colors.primary,
511
- width: 24
512
- } : {
513
- backgroundColor: colors.border
514
- }]
515
- }, index))
516
- }));
517
-
518
- // Main component
519
20
  const FeedbackScreen = ({
520
21
  navigate,
521
22
  goBack,
522
23
  onClose,
523
24
  theme
524
25
  }) => {
525
- // Use useOxy() hook for OxyContext values
526
26
  const {
527
27
  user,
528
28
  oxyServices
@@ -532,28 +32,18 @@ const FeedbackScreen = ({
532
32
  const {
533
33
  t
534
34
  } = (0, _useI18n.useI18n)();
535
-
536
- // Form state
537
35
  const {
538
36
  feedbackData,
539
37
  feedbackState,
540
38
  setFeedbackState,
541
39
  updateField,
542
40
  resetForm
543
- } = useFeedbackForm();
544
-
545
- // UI state
41
+ } = (0, _feedback.useFeedbackForm)();
546
42
  const [currentStep, setCurrentStep] = (0, _react.useState)(0);
547
43
  const [errorMessage, setErrorMessage] = (0, _react.useState)('');
548
-
549
- // Animation refs
550
44
  const fadeAnim = (0, _react.useRef)(new _reactNative.Animated.Value(1)).current;
551
45
  const slideAnim = (0, _react.useRef)(new _reactNative.Animated.Value(0)).current;
552
-
553
- // Memoized styles
554
- const styles = (0, _react.useMemo)(() => createStyles(colors, normalizedTheme), [colors, normalizedTheme]);
555
-
556
- // Animation functions
46
+ const styles = (0, _react.useMemo)(() => (0, _feedback.createFeedbackStyles)(colors), [colors]);
557
47
  const animateTransition = (0, _react.useCallback)(nextStep => {
558
48
  _reactNative.Animated.timing(fadeAnim, {
559
49
  toValue: 0,
@@ -583,8 +73,6 @@ const FeedbackScreen = ({
583
73
  animateTransition(currentStep - 1);
584
74
  }
585
75
  }, [currentStep, animateTransition]);
586
-
587
- // Form validation helpers
588
76
  const isTypeStepValid = (0, _react.useCallback)(() => {
589
77
  return feedbackData.type && feedbackData.category;
590
78
  }, [feedbackData.type, feedbackData.category]);
@@ -594,8 +82,6 @@ const FeedbackScreen = ({
594
82
  const isContactStepValid = (0, _react.useCallback)(() => {
595
83
  return feedbackData.contactEmail.trim() || user?.email;
596
84
  }, [feedbackData.contactEmail, user?.email]);
597
-
598
- // Submit feedback handler
599
85
  const handleSubmitFeedback = (0, _react.useCallback)(async () => {
600
86
  if (!isTypeStepValid() || !isDetailsStepValid() || !isContactStepValid()) {
601
87
  _sonner.toast.error(t('feedback.toasts.fillRequired') || 'Please fill in all required fields');
@@ -607,8 +93,6 @@ const FeedbackScreen = ({
607
93
  message: ''
608
94
  });
609
95
  setErrorMessage('');
610
-
611
- // Prepare feedback data
612
96
  const feedbackPayload = {
613
97
  type: feedbackData.type,
614
98
  title: feedbackData.title,
@@ -625,19 +109,12 @@ const FeedbackScreen = ({
625
109
  timestamp: new Date().toISOString()
626
110
  } : undefined
627
111
  };
628
-
629
- // TODO: Implement actual API integration
630
- // Replace setTimeout simulation with actual API call: await oxyServices.submitFeedback(feedbackPayload)
631
- // Currently simulates API call with setTimeout for development/testing purposes
632
- await new Promise(resolve => setTimeout(resolve, 2000)); // Simulate API call
633
-
112
+ await oxyServices.submitFeedback(feedbackPayload);
634
113
  setFeedbackState({
635
114
  status: 'success',
636
115
  message: t('feedback.toasts.submitSuccess') || 'Feedback submitted successfully!'
637
116
  });
638
117
  _sonner.toast.success(t('feedback.toasts.thanks') || 'Thank you for your feedback!');
639
-
640
- // Reset form after success
641
118
  setTimeout(() => {
642
119
  resetForm();
643
120
  setCurrentStep(0);
@@ -649,11 +126,8 @@ const FeedbackScreen = ({
649
126
  });
650
127
  _sonner.toast.error(error.message || t('feedback.toasts.submitFailed') || 'Failed to submit feedback');
651
128
  }
652
- }, [feedbackData, user, isTypeStepValid, isDetailsStepValid, isContactStepValid, resetForm]);
653
-
654
- // Step components
655
- // Memoized grouped section items
656
- const feedbackTypeItems = (0, _react.useMemo)(() => FEEDBACK_TYPES.map(type => ({
129
+ }, [feedbackData, user, isTypeStepValid, isDetailsStepValid, isContactStepValid, resetForm, setFeedbackState, t]);
130
+ const feedbackTypeItems = (0, _react.useMemo)(() => _feedback.FEEDBACK_TYPES.map(type => ({
657
131
  id: type.id,
658
132
  icon: type.icon,
659
133
  iconColor: type.color,
@@ -668,7 +142,7 @@ const FeedbackScreen = ({
668
142
  multiRow: true,
669
143
  dense: true
670
144
  })), [feedbackData.type, updateField]);
671
- const categoryItems = (0, _react.useMemo)(() => feedbackData.type ? (CATEGORIES[feedbackData.type] || []).map(cat => ({
145
+ const categoryItems = (0, _react.useMemo)(() => feedbackData.type ? (_feedback.CATEGORIES[feedbackData.type] || []).map(cat => ({
672
146
  id: cat,
673
147
  icon: feedbackData.category === cat ? 'check-circle' : 'ellipse-outline',
674
148
  iconColor: feedbackData.category === cat ? colors.primary : colors.secondaryText,
@@ -678,7 +152,7 @@ const FeedbackScreen = ({
678
152
  showChevron: false,
679
153
  dense: true
680
154
  })) : [], [feedbackData.type, feedbackData.category, colors.primary, colors.secondaryText, updateField]);
681
- const priorityItems = (0, _react.useMemo)(() => PRIORITY_LEVELS.map(p => ({
155
+ const priorityItems = (0, _react.useMemo)(() => _feedback.PRIORITY_LEVELS.map(p => ({
682
156
  id: p.id,
683
157
  icon: p.icon,
684
158
  iconColor: p.color,
@@ -688,7 +162,7 @@ const FeedbackScreen = ({
688
162
  showChevron: false,
689
163
  dense: true
690
164
  })), [feedbackData.priority, updateField]);
691
- const renderTypeStep = (0, _react.useCallback)(() => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Animated.View, {
165
+ const renderTypeStep = () => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Animated.View, {
692
166
  style: [styles.stepContainer, {
693
167
  opacity: fadeAnim,
694
168
  transform: [{
@@ -733,13 +207,11 @@ const FeedbackScreen = ({
733
207
  style: [styles.navButton, {
734
208
  backgroundColor: 'transparent',
735
209
  borderColor: colors.border,
736
- shadowColor: colors.border,
737
- borderTopLeftRadius: 35,
738
- borderBottomLeftRadius: 35,
739
- borderTopRightRadius: 35,
740
- borderBottomRightRadius: 35
210
+ borderRadius: 35
741
211
  }],
742
212
  onPress: goBack,
213
+ accessibilityRole: "button",
214
+ accessibilityLabel: "Go back",
743
215
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
744
216
  name: "arrow-back",
745
217
  size: 16,
@@ -754,14 +226,12 @@ const FeedbackScreen = ({
754
226
  style: [styles.navButton, {
755
227
  backgroundColor: colors.primary,
756
228
  borderColor: colors.primary,
757
- shadowColor: colors.primary,
758
- borderTopLeftRadius: 35,
759
- borderBottomLeftRadius: 35,
760
- borderTopRightRadius: 35,
761
- borderBottomRightRadius: 35
229
+ borderRadius: 35
762
230
  }],
763
231
  onPress: nextStep,
764
232
  disabled: !isTypeStepValid(),
233
+ accessibilityRole: "button",
234
+ accessibilityLabel: "Continue to next step",
765
235
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
766
236
  style: [styles.navButtonText, {
767
237
  color: '#FFFFFF'
@@ -774,8 +244,8 @@ const FeedbackScreen = ({
774
244
  })]
775
245
  })]
776
246
  })]
777
- }), [fadeAnim, slideAnim, colors, feedbackData, feedbackTypeItems, categoryItems, updateField, goBack, nextStep, isTypeStepValid, styles, theme]);
778
- const renderDetailsStep = (0, _react.useCallback)(() => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Animated.View, {
247
+ });
248
+ const renderDetailsStep = () => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Animated.View, {
779
249
  style: [styles.stepContainer, {
780
250
  opacity: fadeAnim,
781
251
  transform: [{
@@ -795,7 +265,7 @@ const FeedbackScreen = ({
795
265
  }],
796
266
  children: t('feedback.details.subtitle') || 'Provide details about your feedback'
797
267
  })]
798
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(FormInput, {
268
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_feedback.FormInput, {
799
269
  icon: "create-outline",
800
270
  label: t('feedback.fields.title.label') || 'Title',
801
271
  value: feedbackData.title,
@@ -806,8 +276,10 @@ const FeedbackScreen = ({
806
276
  placeholder: t('feedback.fields.title.placeholder') || 'Brief summary of your feedback',
807
277
  testID: "feedback-title-input",
808
278
  colors: colors,
809
- styles: styles
810
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(FormInput, {
279
+ styles: styles,
280
+ accessibilityLabel: "Feedback title",
281
+ accessibilityHint: "Enter a brief summary of your feedback"
282
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_feedback.FormInput, {
811
283
  icon: "document-text-outline",
812
284
  label: t('feedback.fields.description.label') || 'Description',
813
285
  value: feedbackData.description,
@@ -820,7 +292,9 @@ const FeedbackScreen = ({
820
292
  numberOfLines: 6,
821
293
  testID: "feedback-description-input",
822
294
  colors: colors,
823
- styles: styles
295
+ styles: styles,
296
+ accessibilityLabel: "Feedback description",
297
+ accessibilityHint: "Provide detailed information about your feedback"
824
298
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
825
299
  style: {
826
300
  marginBottom: 24
@@ -841,10 +315,11 @@ const FeedbackScreen = ({
841
315
  style: styles.navigationButtons,
842
316
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
843
317
  style: [styles.navButton, styles.backButton, {
844
- borderColor: colors.border,
845
- shadowColor: colors.border
318
+ borderColor: colors.border
846
319
  }],
847
320
  onPress: prevStep,
321
+ accessibilityRole: "button",
322
+ accessibilityLabel: "Go back",
848
323
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
849
324
  name: "arrow-back",
850
325
  size: 16,
@@ -858,11 +333,12 @@ const FeedbackScreen = ({
858
333
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
859
334
  style: [styles.navButton, styles.nextButton, {
860
335
  backgroundColor: colors.primary,
861
- borderColor: colors.primary,
862
- shadowColor: colors.primary
336
+ borderColor: colors.primary
863
337
  }],
864
338
  onPress: nextStep,
865
339
  disabled: !isDetailsStepValid(),
340
+ accessibilityRole: "button",
341
+ accessibilityLabel: "Continue to next step",
866
342
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
867
343
  style: [styles.navButtonText, {
868
344
  color: '#FFFFFF'
@@ -875,8 +351,8 @@ const FeedbackScreen = ({
875
351
  })]
876
352
  })]
877
353
  })]
878
- }), [fadeAnim, slideAnim, colors, feedbackData, updateField, setErrorMessage, prevStep, nextStep, isDetailsStepValid, styles, priorityItems, theme]);
879
- const renderContactStep = (0, _react.useCallback)(() => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Animated.View, {
354
+ });
355
+ const renderContactStep = () => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Animated.View, {
880
356
  style: [styles.stepContainer, {
881
357
  opacity: fadeAnim,
882
358
  transform: [{
@@ -896,7 +372,7 @@ const FeedbackScreen = ({
896
372
  }],
897
373
  children: t('feedback.contact.subtitle') || 'Help us get back to you'
898
374
  })]
899
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(FormInput, {
375
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_feedback.FormInput, {
900
376
  icon: "mail-outline",
901
377
  label: t('feedback.fields.email.label') || 'Email Address',
902
378
  value: feedbackData.contactEmail,
@@ -907,7 +383,9 @@ const FeedbackScreen = ({
907
383
  placeholder: user?.email || t('feedback.fields.email.placeholder') || 'Enter your email address',
908
384
  testID: "feedback-email-input",
909
385
  colors: colors,
910
- styles: styles
386
+ styles: styles,
387
+ accessibilityLabel: "Email address",
388
+ accessibilityHint: "Enter your email so we can respond"
911
389
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
912
390
  style: styles.checkboxContainer,
913
391
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
@@ -916,6 +394,11 @@ const FeedbackScreen = ({
916
394
  backgroundColor: feedbackData.systemInfo ? colors.primary : 'transparent'
917
395
  }],
918
396
  onPress: () => updateField('systemInfo', !feedbackData.systemInfo),
397
+ accessibilityRole: "checkbox",
398
+ accessibilityState: {
399
+ checked: feedbackData.systemInfo
400
+ },
401
+ accessibilityLabel: "Include system information",
919
402
  children: feedbackData.systemInfo && /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
920
403
  name: "checkmark",
921
404
  size: 16,
@@ -931,10 +414,11 @@ const FeedbackScreen = ({
931
414
  style: styles.navigationButtons,
932
415
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
933
416
  style: [styles.navButton, styles.backButton, {
934
- borderColor: colors.border,
935
- shadowColor: colors.border
417
+ borderColor: colors.border
936
418
  }],
937
419
  onPress: prevStep,
420
+ accessibilityRole: "button",
421
+ accessibilityLabel: "Go back",
938
422
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
939
423
  name: "arrow-back",
940
424
  size: 16,
@@ -948,11 +432,12 @@ const FeedbackScreen = ({
948
432
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
949
433
  style: [styles.navButton, styles.nextButton, {
950
434
  backgroundColor: colors.primary,
951
- borderColor: colors.primary,
952
- shadowColor: colors.primary
435
+ borderColor: colors.primary
953
436
  }],
954
437
  onPress: nextStep,
955
438
  disabled: !isContactStepValid(),
439
+ accessibilityRole: "button",
440
+ accessibilityLabel: "Continue to summary",
956
441
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
957
442
  style: [styles.navButtonText, {
958
443
  color: '#FFFFFF'
@@ -965,8 +450,8 @@ const FeedbackScreen = ({
965
450
  })]
966
451
  })]
967
452
  })]
968
- }), [fadeAnim, slideAnim, colors, feedbackData, user, updateField, setErrorMessage, prevStep, nextStep, isContactStepValid, styles]);
969
- const renderSummaryStep = (0, _react.useCallback)(() => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Animated.View, {
453
+ });
454
+ const renderSummaryStep = () => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Animated.View, {
970
455
  style: [styles.stepContainer, {
971
456
  opacity: fadeAnim,
972
457
  transform: [{
@@ -994,12 +479,12 @@ const FeedbackScreen = ({
994
479
  style: [styles.summaryLabel, {
995
480
  color: colors.secondaryText
996
481
  }],
997
- children: t('feedback.summary.type') || 'Type:'
482
+ children: "Type:"
998
483
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
999
484
  style: [styles.summaryValue, {
1000
485
  color: colors.text
1001
486
  }],
1002
- children: FEEDBACK_TYPES.find(t => t.id === feedbackData.type)?.label
487
+ children: _feedback.FEEDBACK_TYPES.find(t => t.id === feedbackData.type)?.label
1003
488
  })]
1004
489
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
1005
490
  style: styles.summaryRow,
@@ -1007,7 +492,7 @@ const FeedbackScreen = ({
1007
492
  style: [styles.summaryLabel, {
1008
493
  color: colors.secondaryText
1009
494
  }],
1010
- children: t('feedback.summary.category') || 'Category:'
495
+ children: "Category:"
1011
496
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
1012
497
  style: [styles.summaryValue, {
1013
498
  color: colors.text
@@ -1020,12 +505,12 @@ const FeedbackScreen = ({
1020
505
  style: [styles.summaryLabel, {
1021
506
  color: colors.secondaryText
1022
507
  }],
1023
- children: t('feedback.summary.priority') || 'Priority:'
508
+ children: "Priority:"
1024
509
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
1025
510
  style: [styles.summaryValue, {
1026
511
  color: colors.text
1027
512
  }],
1028
- children: PRIORITY_LEVELS.find(p => p.id === feedbackData.priority)?.label
513
+ children: _feedback.PRIORITY_LEVELS.find(p => p.id === feedbackData.priority)?.label
1029
514
  })]
1030
515
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
1031
516
  style: styles.summaryRow,
@@ -1033,7 +518,7 @@ const FeedbackScreen = ({
1033
518
  style: [styles.summaryLabel, {
1034
519
  color: colors.secondaryText
1035
520
  }],
1036
- children: t('feedback.summary.titleLabel') || 'Title:'
521
+ children: "Title:"
1037
522
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
1038
523
  style: [styles.summaryValue, {
1039
524
  color: colors.text
@@ -1046,7 +531,7 @@ const FeedbackScreen = ({
1046
531
  style: [styles.summaryLabel, {
1047
532
  color: colors.secondaryText
1048
533
  }],
1049
- children: t('feedback.summary.contact') || 'Contact:'
534
+ children: "Contact:"
1050
535
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
1051
536
  style: [styles.summaryValue, {
1052
537
  color: colors.text
@@ -1061,6 +546,8 @@ const FeedbackScreen = ({
1061
546
  onPress: handleSubmitFeedback,
1062
547
  disabled: feedbackState.status === 'submitting',
1063
548
  testID: "submit-feedback-button",
549
+ accessibilityRole: "button",
550
+ accessibilityLabel: "Submit feedback",
1064
551
  children: feedbackState.status === 'submitting' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {
1065
552
  color: "#FFFFFF",
1066
553
  size: "small"
@@ -1080,13 +567,11 @@ const FeedbackScreen = ({
1080
567
  style: [styles.navButton, {
1081
568
  backgroundColor: 'transparent',
1082
569
  borderColor: colors.border,
1083
- shadowColor: colors.border,
1084
- borderTopLeftRadius: 35,
1085
- borderBottomLeftRadius: 35,
1086
- borderTopRightRadius: 35,
1087
- borderBottomRightRadius: 35
570
+ borderRadius: 35
1088
571
  }],
1089
572
  onPress: prevStep,
573
+ accessibilityRole: "button",
574
+ accessibilityLabel: "Go back",
1090
575
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
1091
576
  name: "arrow-back",
1092
577
  size: 16,
@@ -1099,8 +584,8 @@ const FeedbackScreen = ({
1099
584
  })]
1100
585
  })
1101
586
  })]
1102
- }), [fadeAnim, slideAnim, colors, feedbackData, user, feedbackState.status, handleSubmitFeedback, prevStep, styles]);
1103
- const renderSuccessStep = (0, _react.useCallback)(() => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Animated.View, {
587
+ });
588
+ const renderSuccessStep = () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Animated.View, {
1104
589
  style: [styles.stepContainer, {
1105
590
  opacity: fadeAnim,
1106
591
  transform: [{
@@ -1111,14 +596,14 @@ const FeedbackScreen = ({
1111
596
  style: styles.successContainer,
1112
597
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
1113
598
  style: [styles.successIcon, {
1114
- backgroundColor: colors.success + '20',
599
+ backgroundColor: (colors.success || '#34C759') + '20',
1115
600
  padding: 24,
1116
601
  borderRadius: 50
1117
602
  }],
1118
603
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
1119
604
  name: "checkmark-circle",
1120
605
  size: 48,
1121
- color: colors.success
606
+ color: colors.success || '#34C759'
1122
607
  })
1123
608
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
1124
609
  style: [styles.successTitle, {
@@ -1138,19 +623,17 @@ const FeedbackScreen = ({
1138
623
  resetForm();
1139
624
  setCurrentStep(0);
1140
625
  },
626
+ accessibilityRole: "button",
627
+ accessibilityLabel: "Submit another feedback",
1141
628
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
1142
629
  style: styles.buttonText,
1143
630
  children: t('feedback.actions.submitAnother') || 'Submit Another'
1144
631
  })
1145
632
  })]
1146
633
  })
1147
- }), [fadeAnim, slideAnim, colors, resetForm, styles]);
1148
-
1149
- // Render current step
1150
- const renderCurrentStep = (0, _react.useCallback)(() => {
1151
- if (feedbackState.status === 'success') {
1152
- return renderSuccessStep();
1153
- }
634
+ });
635
+ const renderCurrentStep = () => {
636
+ if (feedbackState.status === 'success') return renderSuccessStep();
1154
637
  switch (currentStep) {
1155
638
  case 0:
1156
639
  return renderTypeStep();
@@ -1163,7 +646,7 @@ const FeedbackScreen = ({
1163
646
  default:
1164
647
  return renderTypeStep();
1165
648
  }
1166
- }, [currentStep, feedbackState.status, renderTypeStep, renderDetailsStep, renderContactStep, renderSummaryStep, renderSuccessStep]);
649
+ };
1167
650
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.KeyboardAvoidingView, {
1168
651
  style: [styles.container, {
1169
652
  backgroundColor: theme === 'dark' ? colors.background : '#F7F9FC'
@@ -1178,7 +661,7 @@ const FeedbackScreen = ({
1178
661
  }],
1179
662
  showsVerticalScrollIndicator: false,
1180
663
  keyboardShouldPersistTaps: "handled",
1181
- children: [feedbackState.status !== 'success' && /*#__PURE__*/(0, _jsxRuntime.jsx)(ProgressIndicator, {
664
+ children: [feedbackState.status !== 'success' && /*#__PURE__*/(0, _jsxRuntime.jsx)(_feedback.ProgressIndicator, {
1182
665
  currentStep: currentStep,
1183
666
  totalSteps: 4,
1184
667
  colors: colors,