@oxyhq/services 19.0.0 → 19.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (915) hide show
  1. package/lib/commonjs/assets/assets/icons/OxyServices.tsx +5 -12
  2. package/lib/commonjs/assets/icons/OxyServices.js +7 -7
  3. package/lib/commonjs/assets/icons/OxyServices.js.map +1 -1
  4. package/lib/commonjs/index.js +56 -25
  5. package/lib/commonjs/index.js.map +1 -1
  6. package/lib/commonjs/ui/boot/runProviderColdBoot.js +121 -0
  7. package/lib/commonjs/ui/boot/runProviderColdBoot.js.map +1 -0
  8. package/lib/commonjs/ui/client.js +10 -17
  9. package/lib/commonjs/ui/client.js.map +1 -1
  10. package/lib/commonjs/ui/components/FollowButton.js +28 -92
  11. package/lib/commonjs/ui/components/FollowButton.js.map +1 -1
  12. package/lib/commonjs/ui/components/Header.js +127 -241
  13. package/lib/commonjs/ui/components/Header.js.map +1 -1
  14. package/lib/commonjs/ui/components/OxyAccountDialog.js +22 -18
  15. package/lib/commonjs/ui/components/OxyAccountDialog.js.map +1 -1
  16. package/lib/commonjs/ui/components/OxyConsentScreen.js +4 -6
  17. package/lib/commonjs/ui/components/OxyConsentScreen.js.map +1 -1
  18. package/lib/commonjs/ui/components/OxyOAuthCallback.js +45 -0
  19. package/lib/commonjs/ui/components/OxyOAuthCallback.js.map +1 -0
  20. package/lib/commonjs/ui/components/OxyPayButton.js +20 -71
  21. package/lib/commonjs/ui/components/OxyPayButton.js.map +1 -1
  22. package/lib/commonjs/ui/components/OxyProvider.js +3 -3
  23. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  24. package/lib/commonjs/ui/components/OxySignInButton.js +30 -135
  25. package/lib/commonjs/ui/components/OxySignInButton.js.map +1 -1
  26. package/lib/commonjs/ui/components/ProfileButton.js +4 -2
  27. package/lib/commonjs/ui/components/ProfileButton.js.map +1 -1
  28. package/lib/commonjs/ui/components/ProfileSummaryCard.js +99 -0
  29. package/lib/commonjs/ui/components/ProfileSummaryCard.js.map +1 -0
  30. package/lib/commonjs/ui/components/RequireOxyAuth.js +7 -10
  31. package/lib/commonjs/ui/components/RequireOxyAuth.js.map +1 -1
  32. package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js +9 -9
  33. package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js.map +1 -1
  34. package/lib/commonjs/ui/components/fileManagement/FileViewer.js +20 -23
  35. package/lib/commonjs/ui/components/fileManagement/FileViewer.js.map +1 -1
  36. package/lib/commonjs/ui/components/fileManagement/UploadPreview.js +6 -6
  37. package/lib/commonjs/ui/components/fileManagement/UploadPreview.js.map +1 -1
  38. package/lib/commonjs/ui/components/modals/DeleteAccountModal.js +14 -9
  39. package/lib/commonjs/ui/components/modals/DeleteAccountModal.js.map +1 -1
  40. package/lib/commonjs/ui/components/payment/PaymentDetailsStep.js +55 -55
  41. package/lib/commonjs/ui/components/payment/PaymentDetailsStep.js.map +1 -1
  42. package/lib/commonjs/ui/components/payment/paymentStyles.js +13 -13
  43. package/lib/commonjs/ui/components/payment/paymentStyles.js.map +1 -1
  44. package/lib/commonjs/ui/context/OxyContext.js +129 -260
  45. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  46. package/lib/commonjs/ui/context/oxyContextHelpers.js +64 -0
  47. package/lib/commonjs/ui/context/oxyContextHelpers.js.map +1 -0
  48. package/lib/commonjs/ui/{components/TextField/Adornment/types.js → context/oxyContextTypes.js} +1 -1
  49. package/lib/commonjs/ui/context/oxyContextTypes.js.map +1 -0
  50. package/lib/commonjs/ui/context/useOxyAccountGraph.js +91 -0
  51. package/lib/commonjs/ui/context/useOxyAccountGraph.js.map +1 -0
  52. package/lib/commonjs/ui/hooks/queryClient.js +9 -18
  53. package/lib/commonjs/ui/hooks/queryClient.js.map +1 -1
  54. package/lib/commonjs/ui/hooks/useAuth.js +7 -5
  55. package/lib/commonjs/ui/hooks/useAuth.js.map +1 -1
  56. package/lib/commonjs/ui/hooks/useSessionManagement.js +2 -0
  57. package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -1
  58. package/lib/commonjs/ui/index.js +10 -17
  59. package/lib/commonjs/ui/index.js.map +1 -1
  60. package/lib/commonjs/ui/navigation/accountDialogManager.js +5 -44
  61. package/lib/commonjs/ui/navigation/accountDialogManager.js.map +1 -1
  62. package/lib/commonjs/ui/screens/ConnectedAppsScreen.js +9 -8
  63. package/lib/commonjs/ui/screens/ConnectedAppsScreen.js.map +1 -1
  64. package/lib/commonjs/ui/screens/EditProfileFieldScreen.js +2 -3
  65. package/lib/commonjs/ui/screens/EditProfileFieldScreen.js.map +1 -1
  66. package/lib/commonjs/ui/screens/EditProfileScreen.js +8 -19
  67. package/lib/commonjs/ui/screens/EditProfileScreen.js.map +1 -1
  68. package/lib/commonjs/ui/screens/FAQScreen.js +8 -8
  69. package/lib/commonjs/ui/screens/FAQScreen.js.map +1 -1
  70. package/lib/commonjs/ui/screens/FeedbackScreen.js +0 -1
  71. package/lib/commonjs/ui/screens/FeedbackScreen.js.map +1 -1
  72. package/lib/commonjs/ui/screens/FileManagementScreen.js +59 -1105
  73. package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
  74. package/lib/commonjs/ui/screens/HistoryViewScreen.js +9 -8
  75. package/lib/commonjs/ui/screens/HistoryViewScreen.js.map +1 -1
  76. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js +0 -1
  77. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js.map +1 -1
  78. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js +5 -4
  79. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js.map +1 -1
  80. package/lib/commonjs/ui/screens/ManageAccountScreen.js +9 -49
  81. package/lib/commonjs/ui/screens/ManageAccountScreen.js.map +1 -1
  82. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js +6 -9
  83. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js.map +1 -1
  84. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +247 -224
  85. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  86. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +21 -20
  87. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
  88. package/lib/commonjs/ui/screens/ProfileScreen.js +4 -4
  89. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
  90. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js +12 -11
  91. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js.map +1 -1
  92. package/lib/commonjs/ui/screens/SearchSettingsScreen.js +3 -2
  93. package/lib/commonjs/ui/screens/SearchSettingsScreen.js.map +1 -1
  94. package/lib/commonjs/ui/screens/UserListScreen.js +3 -3
  95. package/lib/commonjs/ui/screens/UserListScreen.js.map +1 -1
  96. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +7 -8
  97. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  98. package/lib/commonjs/ui/screens/fileManagement/FileListSection.js +114 -0
  99. package/lib/commonjs/ui/screens/fileManagement/FileListSection.js.map +1 -0
  100. package/lib/commonjs/ui/screens/fileManagement/PhotoPickerSection.js +512 -0
  101. package/lib/commonjs/ui/screens/fileManagement/PhotoPickerSection.js.map +1 -0
  102. package/lib/commonjs/ui/screens/fileManagement/UploadBar.js +59 -0
  103. package/lib/commonjs/ui/screens/fileManagement/UploadBar.js.map +1 -0
  104. package/lib/commonjs/ui/screens/fileManagement/hooks/useFileUploadState.js +475 -0
  105. package/lib/commonjs/ui/screens/fileManagement/hooks/useFileUploadState.js.map +1 -0
  106. package/lib/commonjs/ui/screens/fileManagement/shared.js +67 -0
  107. package/lib/commonjs/ui/screens/fileManagement/shared.js.map +1 -0
  108. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js +3 -2
  109. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js.map +1 -1
  110. package/lib/commonjs/ui/screens/trust/TrustFAQScreen.js +4 -7
  111. package/lib/commonjs/ui/screens/trust/TrustFAQScreen.js.map +1 -1
  112. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js +3 -3
  113. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
  114. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js +3 -2
  115. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js.map +1 -1
  116. package/lib/commonjs/ui/server.js +4 -5
  117. package/lib/commonjs/ui/server.js.map +1 -1
  118. package/lib/commonjs/ui/session/createSessionClient.js +2 -2
  119. package/lib/commonjs/ui/utils/crossOriginRestore.js +109 -0
  120. package/lib/commonjs/ui/utils/crossOriginRestore.js.map +1 -0
  121. package/lib/commonjs/ui/utils/deviceCredential.js +23 -0
  122. package/lib/commonjs/ui/utils/deviceCredential.js.map +1 -0
  123. package/lib/commonjs/ui/utils/oauthReturn.js +82 -0
  124. package/lib/commonjs/ui/utils/oauthReturn.js.map +1 -0
  125. package/lib/commonjs/ui/utils/storageHelpers.js +1 -2
  126. package/lib/commonjs/ui/utils/storageHelpers.js.map +1 -1
  127. package/lib/module/assets/assets/icons/OxyServices.tsx +5 -12
  128. package/lib/module/assets/icons/OxyServices.js +7 -7
  129. package/lib/module/assets/icons/OxyServices.js.map +1 -1
  130. package/lib/module/index.js +10 -9
  131. package/lib/module/index.js.map +1 -1
  132. package/lib/module/ui/boot/runProviderColdBoot.js +116 -0
  133. package/lib/module/ui/boot/runProviderColdBoot.js.map +1 -0
  134. package/lib/module/ui/client.js +3 -4
  135. package/lib/module/ui/client.js.map +1 -1
  136. package/lib/module/ui/components/FollowButton.js +28 -92
  137. package/lib/module/ui/components/FollowButton.js.map +1 -1
  138. package/lib/module/ui/components/Header.js +127 -241
  139. package/lib/module/ui/components/Header.js.map +1 -1
  140. package/lib/module/ui/components/OxyAccountDialog.js +22 -18
  141. package/lib/module/ui/components/OxyAccountDialog.js.map +1 -1
  142. package/lib/module/ui/components/OxyConsentScreen.js +4 -5
  143. package/lib/module/ui/components/OxyConsentScreen.js.map +1 -1
  144. package/lib/module/ui/components/OxyOAuthCallback.js +41 -0
  145. package/lib/module/ui/components/OxyOAuthCallback.js.map +1 -0
  146. package/lib/module/ui/components/OxyPayButton.js +21 -71
  147. package/lib/module/ui/components/OxyPayButton.js.map +1 -1
  148. package/lib/module/ui/components/OxyProvider.js +3 -3
  149. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  150. package/lib/module/ui/components/OxySignInButton.js +34 -139
  151. package/lib/module/ui/components/OxySignInButton.js.map +1 -1
  152. package/lib/module/ui/components/ProfileButton.js +5 -3
  153. package/lib/module/ui/components/ProfileButton.js.map +1 -1
  154. package/lib/module/ui/components/ProfileSummaryCard.js +95 -0
  155. package/lib/module/ui/components/ProfileSummaryCard.js.map +1 -0
  156. package/lib/module/ui/components/RequireOxyAuth.js +7 -9
  157. package/lib/module/ui/components/RequireOxyAuth.js.map +1 -1
  158. package/lib/module/ui/components/fileManagement/FileDetailsModal.js +9 -9
  159. package/lib/module/ui/components/fileManagement/FileDetailsModal.js.map +1 -1
  160. package/lib/module/ui/components/fileManagement/FileViewer.js +20 -23
  161. package/lib/module/ui/components/fileManagement/FileViewer.js.map +1 -1
  162. package/lib/module/ui/components/fileManagement/UploadPreview.js +6 -6
  163. package/lib/module/ui/components/fileManagement/UploadPreview.js.map +1 -1
  164. package/lib/module/ui/components/modals/DeleteAccountModal.js +14 -8
  165. package/lib/module/ui/components/modals/DeleteAccountModal.js.map +1 -1
  166. package/lib/module/ui/components/payment/PaymentDetailsStep.js +54 -54
  167. package/lib/module/ui/components/payment/PaymentDetailsStep.js.map +1 -1
  168. package/lib/module/ui/components/payment/paymentStyles.js +13 -13
  169. package/lib/module/ui/components/payment/paymentStyles.js.map +1 -1
  170. package/lib/module/ui/context/OxyContext.js +128 -259
  171. package/lib/module/ui/context/OxyContext.js.map +1 -1
  172. package/lib/module/ui/context/oxyContextHelpers.js +57 -0
  173. package/lib/module/ui/context/oxyContextHelpers.js.map +1 -0
  174. package/lib/module/ui/context/oxyContextTypes.js +4 -0
  175. package/lib/module/ui/context/oxyContextTypes.js.map +1 -0
  176. package/lib/module/ui/context/useOxyAccountGraph.js +87 -0
  177. package/lib/module/ui/context/useOxyAccountGraph.js.map +1 -0
  178. package/lib/module/ui/hooks/queryClient.js +8 -17
  179. package/lib/module/ui/hooks/queryClient.js.map +1 -1
  180. package/lib/module/ui/hooks/useAuth.js +7 -5
  181. package/lib/module/ui/hooks/useAuth.js.map +1 -1
  182. package/lib/module/ui/hooks/useSessionManagement.js +2 -0
  183. package/lib/module/ui/hooks/useSessionManagement.js.map +1 -1
  184. package/lib/module/ui/index.js +2 -3
  185. package/lib/module/ui/index.js.map +1 -1
  186. package/lib/module/ui/navigation/accountDialogManager.js +4 -41
  187. package/lib/module/ui/navigation/accountDialogManager.js.map +1 -1
  188. package/lib/module/ui/screens/ConnectedAppsScreen.js +8 -7
  189. package/lib/module/ui/screens/ConnectedAppsScreen.js.map +1 -1
  190. package/lib/module/ui/screens/EditProfileFieldScreen.js +2 -3
  191. package/lib/module/ui/screens/EditProfileFieldScreen.js.map +1 -1
  192. package/lib/module/ui/screens/EditProfileScreen.js +7 -18
  193. package/lib/module/ui/screens/EditProfileScreen.js.map +1 -1
  194. package/lib/module/ui/screens/FAQScreen.js +8 -8
  195. package/lib/module/ui/screens/FAQScreen.js.map +1 -1
  196. package/lib/module/ui/screens/FeedbackScreen.js +0 -1
  197. package/lib/module/ui/screens/FeedbackScreen.js.map +1 -1
  198. package/lib/module/ui/screens/FileManagementScreen.js +53 -1098
  199. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
  200. package/lib/module/ui/screens/HistoryViewScreen.js +9 -8
  201. package/lib/module/ui/screens/HistoryViewScreen.js.map +1 -1
  202. package/lib/module/ui/screens/LanguageSelectorScreen.js +0 -1
  203. package/lib/module/ui/screens/LanguageSelectorScreen.js.map +1 -1
  204. package/lib/module/ui/screens/LegalDocumentsScreen.js +5 -4
  205. package/lib/module/ui/screens/LegalDocumentsScreen.js.map +1 -1
  206. package/lib/module/ui/screens/ManageAccountScreen.js +11 -51
  207. package/lib/module/ui/screens/ManageAccountScreen.js.map +1 -1
  208. package/lib/module/ui/screens/PaymentGatewayScreen.js +4 -7
  209. package/lib/module/ui/screens/PaymentGatewayScreen.js.map +1 -1
  210. package/lib/module/ui/screens/PremiumSubscriptionScreen.js +247 -224
  211. package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  212. package/lib/module/ui/screens/PrivacySettingsScreen.js +19 -18
  213. package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
  214. package/lib/module/ui/screens/ProfileScreen.js +3 -3
  215. package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
  216. package/lib/module/ui/screens/SavesCollectionsScreen.js +12 -11
  217. package/lib/module/ui/screens/SavesCollectionsScreen.js.map +1 -1
  218. package/lib/module/ui/screens/SearchSettingsScreen.js +3 -2
  219. package/lib/module/ui/screens/SearchSettingsScreen.js.map +1 -1
  220. package/lib/module/ui/screens/UserListScreen.js +2 -2
  221. package/lib/module/ui/screens/UserListScreen.js.map +1 -1
  222. package/lib/module/ui/screens/WelcomeNewUserScreen.js +6 -6
  223. package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  224. package/lib/module/ui/screens/fileManagement/FileListSection.js +110 -0
  225. package/lib/module/ui/screens/fileManagement/FileListSection.js.map +1 -0
  226. package/lib/module/ui/screens/fileManagement/PhotoPickerSection.js +509 -0
  227. package/lib/module/ui/screens/fileManagement/PhotoPickerSection.js.map +1 -0
  228. package/lib/module/ui/screens/fileManagement/UploadBar.js +55 -0
  229. package/lib/module/ui/screens/fileManagement/UploadBar.js.map +1 -0
  230. package/lib/module/ui/screens/fileManagement/hooks/useFileUploadState.js +471 -0
  231. package/lib/module/ui/screens/fileManagement/hooks/useFileUploadState.js.map +1 -0
  232. package/lib/module/ui/screens/fileManagement/shared.js +58 -0
  233. package/lib/module/ui/screens/fileManagement/shared.js.map +1 -0
  234. package/lib/module/ui/screens/trust/TrustCenterScreen.js +3 -2
  235. package/lib/module/ui/screens/trust/TrustCenterScreen.js.map +1 -1
  236. package/lib/module/ui/screens/trust/TrustFAQScreen.js +4 -7
  237. package/lib/module/ui/screens/trust/TrustFAQScreen.js.map +1 -1
  238. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js +2 -2
  239. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
  240. package/lib/module/ui/screens/trust/TrustRulesScreen.js +3 -2
  241. package/lib/module/ui/screens/trust/TrustRulesScreen.js.map +1 -1
  242. package/lib/module/ui/server.js +2 -3
  243. package/lib/module/ui/server.js.map +1 -1
  244. package/lib/module/ui/session/createSessionClient.js +2 -2
  245. package/lib/module/ui/utils/crossOriginRestore.js +101 -0
  246. package/lib/module/ui/utils/crossOriginRestore.js.map +1 -0
  247. package/lib/module/ui/utils/deviceCredential.js +18 -0
  248. package/lib/module/ui/utils/deviceCredential.js.map +1 -0
  249. package/lib/module/ui/utils/oauthReturn.js +78 -0
  250. package/lib/module/ui/utils/oauthReturn.js.map +1 -0
  251. package/lib/module/ui/utils/storageHelpers.js +1 -2
  252. package/lib/module/ui/utils/storageHelpers.js.map +1 -1
  253. package/lib/typescript/commonjs/assets/icons/OxyServices.d.ts +0 -5
  254. package/lib/typescript/commonjs/assets/icons/OxyServices.d.ts.map +1 -1
  255. package/lib/typescript/commonjs/index.d.ts +11 -6
  256. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  257. package/lib/typescript/commonjs/ui/boot/runProviderColdBoot.d.ts +29 -0
  258. package/lib/typescript/commonjs/ui/boot/runProviderColdBoot.d.ts.map +1 -0
  259. package/lib/typescript/commonjs/ui/client.d.ts +3 -4
  260. package/lib/typescript/commonjs/ui/client.d.ts.map +1 -1
  261. package/lib/typescript/commonjs/ui/components/FollowButton.d.ts.map +1 -1
  262. package/lib/typescript/commonjs/ui/components/Header.d.ts +16 -21
  263. package/lib/typescript/commonjs/ui/components/Header.d.ts.map +1 -1
  264. package/lib/typescript/commonjs/ui/components/OxyAccountDialog.d.ts +3 -7
  265. package/lib/typescript/commonjs/ui/components/OxyAccountDialog.d.ts.map +1 -1
  266. package/lib/typescript/commonjs/ui/components/OxyOAuthCallback.d.ts +11 -0
  267. package/lib/typescript/commonjs/ui/components/OxyOAuthCallback.d.ts.map +1 -0
  268. package/lib/typescript/commonjs/ui/components/OxyPayButton.d.ts.map +1 -1
  269. package/lib/typescript/commonjs/ui/components/OxySignInButton.d.ts +0 -13
  270. package/lib/typescript/commonjs/ui/components/OxySignInButton.d.ts.map +1 -1
  271. package/lib/typescript/commonjs/ui/components/ProfileButton.d.ts.map +1 -1
  272. package/lib/typescript/commonjs/ui/components/ProfileSummaryCard.d.ts +33 -0
  273. package/lib/typescript/commonjs/ui/components/ProfileSummaryCard.d.ts.map +1 -0
  274. package/lib/typescript/commonjs/ui/components/fileManagement/FileViewer.d.ts.map +1 -1
  275. package/lib/typescript/commonjs/ui/components/modals/DeleteAccountModal.d.ts.map +1 -1
  276. package/lib/typescript/commonjs/ui/components/payment/PaymentDetailsStep.d.ts.map +1 -1
  277. package/lib/typescript/commonjs/ui/components/payment/types.d.ts +6 -10
  278. package/lib/typescript/commonjs/ui/components/payment/types.d.ts.map +1 -1
  279. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts +2 -185
  280. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  281. package/lib/typescript/commonjs/ui/context/oxyContextHelpers.d.ts +7 -0
  282. package/lib/typescript/commonjs/ui/context/oxyContextHelpers.d.ts.map +1 -0
  283. package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts +123 -0
  284. package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts.map +1 -0
  285. package/lib/typescript/commonjs/ui/context/useOxyAccountGraph.d.ts +26 -0
  286. package/lib/typescript/commonjs/ui/context/useOxyAccountGraph.d.ts.map +1 -0
  287. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  288. package/lib/typescript/commonjs/ui/hooks/queryClient.d.ts +2 -3
  289. package/lib/typescript/commonjs/ui/hooks/queryClient.d.ts.map +1 -1
  290. package/lib/typescript/commonjs/ui/hooks/useAuth.d.ts +7 -5
  291. package/lib/typescript/commonjs/ui/hooks/useAuth.d.ts.map +1 -1
  292. package/lib/typescript/commonjs/ui/hooks/useSessionManagement.d.ts.map +1 -1
  293. package/lib/typescript/commonjs/ui/index.d.ts +2 -3
  294. package/lib/typescript/commonjs/ui/index.d.ts.map +1 -1
  295. package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts +4 -34
  296. package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts.map +1 -1
  297. package/lib/typescript/commonjs/ui/screens/ConnectedAppsScreen.d.ts.map +1 -1
  298. package/lib/typescript/commonjs/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
  299. package/lib/typescript/commonjs/ui/screens/EditProfileScreen.d.ts.map +1 -1
  300. package/lib/typescript/commonjs/ui/screens/FAQScreen.d.ts.map +1 -1
  301. package/lib/typescript/commonjs/ui/screens/FeedbackScreen.d.ts.map +1 -1
  302. package/lib/typescript/commonjs/ui/screens/FileManagementScreen.d.ts.map +1 -1
  303. package/lib/typescript/commonjs/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  304. package/lib/typescript/commonjs/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
  305. package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  306. package/lib/typescript/commonjs/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  307. package/lib/typescript/commonjs/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  308. package/lib/typescript/commonjs/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  309. package/lib/typescript/commonjs/ui/screens/SavesCollectionsScreen.d.ts.map +1 -1
  310. package/lib/typescript/commonjs/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
  311. package/lib/typescript/commonjs/ui/screens/fileManagement/FileListSection.d.ts +40 -0
  312. package/lib/typescript/commonjs/ui/screens/fileManagement/FileListSection.d.ts.map +1 -0
  313. package/lib/typescript/commonjs/ui/screens/fileManagement/PhotoPickerSection.d.ts +38 -0
  314. package/lib/typescript/commonjs/ui/screens/fileManagement/PhotoPickerSection.d.ts.map +1 -0
  315. package/lib/typescript/commonjs/ui/screens/fileManagement/UploadBar.d.ts +25 -0
  316. package/lib/typescript/commonjs/ui/screens/fileManagement/UploadBar.d.ts.map +1 -0
  317. package/lib/typescript/commonjs/ui/screens/fileManagement/hooks/useFileUploadState.d.ts +39 -0
  318. package/lib/typescript/commonjs/ui/screens/fileManagement/hooks/useFileUploadState.d.ts.map +1 -0
  319. package/lib/typescript/commonjs/ui/screens/fileManagement/shared.d.ts +34 -0
  320. package/lib/typescript/commonjs/ui/screens/fileManagement/shared.d.ts.map +1 -0
  321. package/lib/typescript/commonjs/ui/screens/trust/TrustFAQScreen.d.ts.map +1 -1
  322. package/lib/typescript/commonjs/ui/server.d.ts +2 -3
  323. package/lib/typescript/commonjs/ui/server.d.ts.map +1 -1
  324. package/lib/typescript/commonjs/ui/session/createSessionClient.d.ts +2 -2
  325. package/lib/typescript/commonjs/ui/types/navigation.d.ts +2 -18
  326. package/lib/typescript/commonjs/ui/types/navigation.d.ts.map +1 -1
  327. package/lib/typescript/commonjs/ui/utils/crossOriginRestore.d.ts +24 -0
  328. package/lib/typescript/commonjs/ui/utils/crossOriginRestore.d.ts.map +1 -0
  329. package/lib/typescript/commonjs/ui/utils/deviceCredential.d.ts +8 -0
  330. package/lib/typescript/commonjs/ui/utils/deviceCredential.d.ts.map +1 -0
  331. package/lib/typescript/commonjs/ui/utils/oauthReturn.d.ts +25 -0
  332. package/lib/typescript/commonjs/ui/utils/oauthReturn.d.ts.map +1 -0
  333. package/lib/typescript/commonjs/ui/utils/storageHelpers.d.ts +0 -11
  334. package/lib/typescript/commonjs/ui/utils/storageHelpers.d.ts.map +1 -1
  335. package/lib/typescript/module/assets/icons/OxyServices.d.ts +0 -5
  336. package/lib/typescript/module/assets/icons/OxyServices.d.ts.map +1 -1
  337. package/lib/typescript/module/index.d.ts +11 -6
  338. package/lib/typescript/module/index.d.ts.map +1 -1
  339. package/lib/typescript/module/ui/boot/runProviderColdBoot.d.ts +29 -0
  340. package/lib/typescript/module/ui/boot/runProviderColdBoot.d.ts.map +1 -0
  341. package/lib/typescript/module/ui/client.d.ts +3 -4
  342. package/lib/typescript/module/ui/client.d.ts.map +1 -1
  343. package/lib/typescript/module/ui/components/FollowButton.d.ts.map +1 -1
  344. package/lib/typescript/module/ui/components/Header.d.ts +16 -21
  345. package/lib/typescript/module/ui/components/Header.d.ts.map +1 -1
  346. package/lib/typescript/module/ui/components/OxyAccountDialog.d.ts +3 -7
  347. package/lib/typescript/module/ui/components/OxyAccountDialog.d.ts.map +1 -1
  348. package/lib/typescript/module/ui/components/OxyOAuthCallback.d.ts +11 -0
  349. package/lib/typescript/module/ui/components/OxyOAuthCallback.d.ts.map +1 -0
  350. package/lib/typescript/module/ui/components/OxyPayButton.d.ts.map +1 -1
  351. package/lib/typescript/module/ui/components/OxySignInButton.d.ts +0 -13
  352. package/lib/typescript/module/ui/components/OxySignInButton.d.ts.map +1 -1
  353. package/lib/typescript/module/ui/components/ProfileButton.d.ts.map +1 -1
  354. package/lib/typescript/module/ui/components/ProfileSummaryCard.d.ts +33 -0
  355. package/lib/typescript/module/ui/components/ProfileSummaryCard.d.ts.map +1 -0
  356. package/lib/typescript/module/ui/components/fileManagement/FileViewer.d.ts.map +1 -1
  357. package/lib/typescript/module/ui/components/modals/DeleteAccountModal.d.ts.map +1 -1
  358. package/lib/typescript/module/ui/components/payment/PaymentDetailsStep.d.ts.map +1 -1
  359. package/lib/typescript/module/ui/components/payment/types.d.ts +6 -10
  360. package/lib/typescript/module/ui/components/payment/types.d.ts.map +1 -1
  361. package/lib/typescript/module/ui/context/OxyContext.d.ts +2 -185
  362. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  363. package/lib/typescript/module/ui/context/oxyContextHelpers.d.ts +7 -0
  364. package/lib/typescript/module/ui/context/oxyContextHelpers.d.ts.map +1 -0
  365. package/lib/typescript/module/ui/context/oxyContextTypes.d.ts +123 -0
  366. package/lib/typescript/module/ui/context/oxyContextTypes.d.ts.map +1 -0
  367. package/lib/typescript/module/ui/context/useOxyAccountGraph.d.ts +26 -0
  368. package/lib/typescript/module/ui/context/useOxyAccountGraph.d.ts.map +1 -0
  369. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  370. package/lib/typescript/module/ui/hooks/queryClient.d.ts +2 -3
  371. package/lib/typescript/module/ui/hooks/queryClient.d.ts.map +1 -1
  372. package/lib/typescript/module/ui/hooks/useAuth.d.ts +7 -5
  373. package/lib/typescript/module/ui/hooks/useAuth.d.ts.map +1 -1
  374. package/lib/typescript/module/ui/hooks/useSessionManagement.d.ts.map +1 -1
  375. package/lib/typescript/module/ui/index.d.ts +2 -3
  376. package/lib/typescript/module/ui/index.d.ts.map +1 -1
  377. package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts +4 -34
  378. package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts.map +1 -1
  379. package/lib/typescript/module/ui/screens/ConnectedAppsScreen.d.ts.map +1 -1
  380. package/lib/typescript/module/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
  381. package/lib/typescript/module/ui/screens/EditProfileScreen.d.ts.map +1 -1
  382. package/lib/typescript/module/ui/screens/FAQScreen.d.ts.map +1 -1
  383. package/lib/typescript/module/ui/screens/FeedbackScreen.d.ts.map +1 -1
  384. package/lib/typescript/module/ui/screens/FileManagementScreen.d.ts.map +1 -1
  385. package/lib/typescript/module/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  386. package/lib/typescript/module/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
  387. package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  388. package/lib/typescript/module/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  389. package/lib/typescript/module/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  390. package/lib/typescript/module/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  391. package/lib/typescript/module/ui/screens/SavesCollectionsScreen.d.ts.map +1 -1
  392. package/lib/typescript/module/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
  393. package/lib/typescript/module/ui/screens/fileManagement/FileListSection.d.ts +40 -0
  394. package/lib/typescript/module/ui/screens/fileManagement/FileListSection.d.ts.map +1 -0
  395. package/lib/typescript/module/ui/screens/fileManagement/PhotoPickerSection.d.ts +38 -0
  396. package/lib/typescript/module/ui/screens/fileManagement/PhotoPickerSection.d.ts.map +1 -0
  397. package/lib/typescript/module/ui/screens/fileManagement/UploadBar.d.ts +25 -0
  398. package/lib/typescript/module/ui/screens/fileManagement/UploadBar.d.ts.map +1 -0
  399. package/lib/typescript/module/ui/screens/fileManagement/hooks/useFileUploadState.d.ts +39 -0
  400. package/lib/typescript/module/ui/screens/fileManagement/hooks/useFileUploadState.d.ts.map +1 -0
  401. package/lib/typescript/module/ui/screens/fileManagement/shared.d.ts +34 -0
  402. package/lib/typescript/module/ui/screens/fileManagement/shared.d.ts.map +1 -0
  403. package/lib/typescript/module/ui/screens/trust/TrustFAQScreen.d.ts.map +1 -1
  404. package/lib/typescript/module/ui/server.d.ts +2 -3
  405. package/lib/typescript/module/ui/server.d.ts.map +1 -1
  406. package/lib/typescript/module/ui/session/createSessionClient.d.ts +2 -2
  407. package/lib/typescript/module/ui/types/navigation.d.ts +2 -18
  408. package/lib/typescript/module/ui/types/navigation.d.ts.map +1 -1
  409. package/lib/typescript/module/ui/utils/crossOriginRestore.d.ts +24 -0
  410. package/lib/typescript/module/ui/utils/crossOriginRestore.d.ts.map +1 -0
  411. package/lib/typescript/module/ui/utils/deviceCredential.d.ts +8 -0
  412. package/lib/typescript/module/ui/utils/deviceCredential.d.ts.map +1 -0
  413. package/lib/typescript/module/ui/utils/oauthReturn.d.ts +25 -0
  414. package/lib/typescript/module/ui/utils/oauthReturn.d.ts.map +1 -0
  415. package/lib/typescript/module/ui/utils/storageHelpers.d.ts +0 -11
  416. package/lib/typescript/module/ui/utils/storageHelpers.d.ts.map +1 -1
  417. package/package.json +30 -17
  418. package/src/assets/icons/OxyServices.tsx +5 -12
  419. package/src/index.ts +16 -10
  420. package/src/ui/boot/runProviderColdBoot.ts +150 -0
  421. package/src/ui/client.ts +3 -4
  422. package/src/ui/components/FollowButton.tsx +30 -95
  423. package/src/ui/components/Header.tsx +135 -405
  424. package/src/ui/components/OxyAccountDialog.tsx +18 -16
  425. package/src/ui/components/OxyConsentScreen.tsx +2 -2
  426. package/src/ui/components/OxyOAuthCallback.tsx +38 -0
  427. package/src/ui/components/OxyPayButton.tsx +11 -60
  428. package/src/ui/components/OxyProvider.tsx +3 -3
  429. package/src/ui/components/OxySignInButton.tsx +35 -134
  430. package/src/ui/components/ProfileButton.tsx +8 -3
  431. package/src/ui/components/ProfileSummaryCard.tsx +123 -0
  432. package/src/ui/components/RequireOxyAuth.tsx +3 -3
  433. package/src/ui/components/__tests__/OxyConsentScreen.test.tsx +1 -3
  434. package/src/ui/components/fileManagement/FileDetailsModal.tsx +9 -9
  435. package/src/ui/components/fileManagement/FileViewer.tsx +20 -22
  436. package/src/ui/components/fileManagement/UploadPreview.tsx +6 -6
  437. package/src/ui/components/modals/DeleteAccountModal.tsx +7 -7
  438. package/src/ui/components/payment/PaymentDetailsStep.tsx +49 -39
  439. package/src/ui/components/payment/paymentStyles.ts +14 -14
  440. package/src/ui/components/payment/types.ts +6 -10
  441. package/src/ui/context/OxyContext.tsx +136 -470
  442. package/src/ui/context/oxyContextHelpers.ts +58 -0
  443. package/src/ui/context/oxyContextTypes.ts +124 -0
  444. package/src/ui/context/useOxyAccountGraph.ts +114 -0
  445. package/src/ui/hooks/queryClient.ts +9 -20
  446. package/src/ui/hooks/useAuth.ts +7 -5
  447. package/src/ui/hooks/useSessionManagement.ts +2 -0
  448. package/src/ui/index.ts +2 -3
  449. package/src/ui/navigation/accountDialogManager.ts +4 -40
  450. package/src/ui/screens/ConnectedAppsScreen.tsx +8 -11
  451. package/src/ui/screens/EditProfileFieldScreen.tsx +2 -3
  452. package/src/ui/screens/EditProfileScreen.tsx +8 -14
  453. package/src/ui/screens/FAQScreen.tsx +7 -8
  454. package/src/ui/screens/FeedbackScreen.tsx +0 -1
  455. package/src/ui/screens/FileManagementScreen.tsx +54 -1158
  456. package/src/ui/screens/HistoryViewScreen.tsx +4 -4
  457. package/src/ui/screens/LanguageSelectorScreen.tsx +0 -1
  458. package/src/ui/screens/LegalDocumentsScreen.tsx +4 -3
  459. package/src/ui/screens/ManageAccountScreen.tsx +14 -47
  460. package/src/ui/screens/PaymentGatewayScreen.tsx +3 -7
  461. package/src/ui/screens/PremiumSubscriptionScreen.tsx +33 -31
  462. package/src/ui/screens/PrivacySettingsScreen.tsx +14 -16
  463. package/src/ui/screens/ProfileScreen.tsx +3 -3
  464. package/src/ui/screens/SavesCollectionsScreen.tsx +11 -12
  465. package/src/ui/screens/SearchSettingsScreen.tsx +2 -2
  466. package/src/ui/screens/UserListScreen.tsx +2 -2
  467. package/src/ui/screens/WelcomeNewUserScreen.tsx +6 -7
  468. package/src/ui/screens/fileManagement/FileListSection.tsx +126 -0
  469. package/src/ui/screens/fileManagement/PhotoPickerSection.tsx +611 -0
  470. package/src/ui/screens/fileManagement/UploadBar.tsx +48 -0
  471. package/src/ui/screens/fileManagement/hooks/useFileUploadState.ts +497 -0
  472. package/src/ui/screens/fileManagement/shared.ts +65 -0
  473. package/src/ui/screens/trust/TrustCenterScreen.tsx +2 -2
  474. package/src/ui/screens/trust/TrustFAQScreen.tsx +4 -10
  475. package/src/ui/screens/trust/TrustLeaderboardScreen.tsx +2 -2
  476. package/src/ui/screens/trust/TrustRulesScreen.tsx +2 -2
  477. package/src/ui/server.ts +2 -3
  478. package/src/ui/session/createSessionClient.ts +2 -2
  479. package/src/ui/types/navigation.ts +2 -18
  480. package/src/ui/utils/crossOriginRestore.ts +129 -0
  481. package/src/ui/utils/deviceCredential.ts +17 -0
  482. package/src/ui/utils/oauthReturn.ts +101 -0
  483. package/src/ui/utils/storageHelpers.ts +0 -12
  484. package/lib/commonjs/ui/components/ActivityIndicator.js +0 -203
  485. package/lib/commonjs/ui/components/ActivityIndicator.js.map +0 -1
  486. package/lib/commonjs/ui/components/AutoHeightScrollView.js +0 -46
  487. package/lib/commonjs/ui/components/AutoHeightScrollView.js.map +0 -1
  488. package/lib/commonjs/ui/components/Avatar.js +0 -181
  489. package/lib/commonjs/ui/components/Avatar.js.map +0 -1
  490. package/lib/commonjs/ui/components/CrossFadeIcon.js +0 -106
  491. package/lib/commonjs/ui/components/CrossFadeIcon.js.map +0 -1
  492. package/lib/commonjs/ui/components/EmptyState.js +0 -41
  493. package/lib/commonjs/ui/components/EmptyState.js.map +0 -1
  494. package/lib/commonjs/ui/components/HelperText.js +0 -95
  495. package/lib/commonjs/ui/components/HelperText.js.map +0 -1
  496. package/lib/commonjs/ui/components/Icon.js +0 -112
  497. package/lib/commonjs/ui/components/Icon.js.map +0 -1
  498. package/lib/commonjs/ui/components/IconButton/IconButton.js +0 -153
  499. package/lib/commonjs/ui/components/IconButton/IconButton.js.map +0 -1
  500. package/lib/commonjs/ui/components/IconButton/utils.js +0 -155
  501. package/lib/commonjs/ui/components/IconButton/utils.js.map +0 -1
  502. package/lib/commonjs/ui/components/LoadingState.js +0 -47
  503. package/lib/commonjs/ui/components/LoadingState.js.map +0 -1
  504. package/lib/commonjs/ui/components/OxyLogo.js +0 -110
  505. package/lib/commonjs/ui/components/OxyLogo.js.map +0 -1
  506. package/lib/commonjs/ui/components/ProfileCard.js +0 -134
  507. package/lib/commonjs/ui/components/ProfileCard.js.map +0 -1
  508. package/lib/commonjs/ui/components/QuickActions.js +0 -84
  509. package/lib/commonjs/ui/components/QuickActions.js.map +0 -1
  510. package/lib/commonjs/ui/components/StepBasedScreen.js +0 -423
  511. package/lib/commonjs/ui/components/StepBasedScreen.js.map +0 -1
  512. package/lib/commonjs/ui/components/Surface.js +0 -258
  513. package/lib/commonjs/ui/components/Surface.js.map +0 -1
  514. package/lib/commonjs/ui/components/TextField/Addons/Outline.js +0 -46
  515. package/lib/commonjs/ui/components/TextField/Addons/Outline.js.map +0 -1
  516. package/lib/commonjs/ui/components/TextField/Addons/Underline.js +0 -53
  517. package/lib/commonjs/ui/components/TextField/Addons/Underline.js.map +0 -1
  518. package/lib/commonjs/ui/components/TextField/Adornment/TextFieldAdornment.js +0 -153
  519. package/lib/commonjs/ui/components/TextField/Adornment/TextFieldAdornment.js.map +0 -1
  520. package/lib/commonjs/ui/components/TextField/Adornment/TextFieldAffix.js +0 -144
  521. package/lib/commonjs/ui/components/TextField/Adornment/TextFieldAffix.js.map +0 -1
  522. package/lib/commonjs/ui/components/TextField/Adornment/TextFieldIcon.js +0 -137
  523. package/lib/commonjs/ui/components/TextField/Adornment/TextFieldIcon.js.map +0 -1
  524. package/lib/commonjs/ui/components/TextField/Adornment/enums.js +0 -22
  525. package/lib/commonjs/ui/components/TextField/Adornment/enums.js.map +0 -1
  526. package/lib/commonjs/ui/components/TextField/Adornment/types.js.map +0 -1
  527. package/lib/commonjs/ui/components/TextField/Adornment/utils.js +0 -62
  528. package/lib/commonjs/ui/components/TextField/Adornment/utils.js.map +0 -1
  529. package/lib/commonjs/ui/components/TextField/Label/InputLabel.js +0 -176
  530. package/lib/commonjs/ui/components/TextField/Label/InputLabel.js.map +0 -1
  531. package/lib/commonjs/ui/components/TextField/Label/LabelBackground.js +0 -84
  532. package/lib/commonjs/ui/components/TextField/Label/LabelBackground.js.map +0 -1
  533. package/lib/commonjs/ui/components/TextField/TextFieldFlat.js +0 -381
  534. package/lib/commonjs/ui/components/TextField/TextFieldFlat.js.map +0 -1
  535. package/lib/commonjs/ui/components/TextField/TextFieldOutlined.js +0 -365
  536. package/lib/commonjs/ui/components/TextField/TextFieldOutlined.js.map +0 -1
  537. package/lib/commonjs/ui/components/TextField/constants.js +0 -50
  538. package/lib/commonjs/ui/components/TextField/constants.js.map +0 -1
  539. package/lib/commonjs/ui/components/TextField/helpers.js +0 -489
  540. package/lib/commonjs/ui/components/TextField/helpers.js.map +0 -1
  541. package/lib/commonjs/ui/components/TextField/types.js +0 -6
  542. package/lib/commonjs/ui/components/TextField/types.js.map +0 -1
  543. package/lib/commonjs/ui/components/TextField.js +0 -335
  544. package/lib/commonjs/ui/components/TextField.js.map +0 -1
  545. package/lib/commonjs/ui/components/TouchableRipple/Pressable.js +0 -12
  546. package/lib/commonjs/ui/components/TouchableRipple/Pressable.js.map +0 -1
  547. package/lib/commonjs/ui/components/TouchableRipple/TouchableRipple.js +0 -258
  548. package/lib/commonjs/ui/components/TouchableRipple/TouchableRipple.js.map +0 -1
  549. package/lib/commonjs/ui/components/TouchableRipple/TouchableRipple.native.js +0 -107
  550. package/lib/commonjs/ui/components/TouchableRipple/TouchableRipple.native.js.map +0 -1
  551. package/lib/commonjs/ui/components/TouchableRipple/utils.js +0 -56
  552. package/lib/commonjs/ui/components/TouchableRipple/utils.js.map +0 -1
  553. package/lib/commonjs/ui/components/Typography/AnimatedText.js +0 -59
  554. package/lib/commonjs/ui/components/Typography/AnimatedText.js.map +0 -1
  555. package/lib/commonjs/ui/components/Typography/types.js +0 -26
  556. package/lib/commonjs/ui/components/Typography/types.js.map +0 -1
  557. package/lib/commonjs/ui/components/feedback/ProgressIndicator.js +0 -33
  558. package/lib/commonjs/ui/components/feedback/ProgressIndicator.js.map +0 -1
  559. package/lib/commonjs/ui/components/icon/OxyIcon.js +0 -26
  560. package/lib/commonjs/ui/components/icon/OxyIcon.js.map +0 -1
  561. package/lib/commonjs/ui/components/theming.js +0 -128
  562. package/lib/commonjs/ui/components/theming.js.map +0 -1
  563. package/lib/commonjs/ui/components/types.js +0 -6
  564. package/lib/commonjs/ui/components/types.js.map +0 -1
  565. package/lib/commonjs/ui/components/utils/forwardRef.js +0 -18
  566. package/lib/commonjs/ui/components/utils/forwardRef.js.map +0 -1
  567. package/lib/commonjs/ui/constants/iconColors.js +0 -84
  568. package/lib/commonjs/ui/constants/iconColors.js.map +0 -1
  569. package/lib/commonjs/ui/constants/theme.js +0 -124
  570. package/lib/commonjs/ui/constants/theme.js.map +0 -1
  571. package/lib/commonjs/ui/context/ThemeContext.js +0 -36
  572. package/lib/commonjs/ui/context/ThemeContext.js.map +0 -1
  573. package/lib/commonjs/ui/hooks/useColorScheme.js +0 -29
  574. package/lib/commonjs/ui/hooks/useColorScheme.js.map +0 -1
  575. package/lib/commonjs/ui/styles/authStyles.js +0 -334
  576. package/lib/commonjs/ui/styles/authStyles.js.map +0 -1
  577. package/lib/commonjs/ui/styles/theme.js +0 -153
  578. package/lib/commonjs/ui/styles/theme.js.map +0 -1
  579. package/lib/module/ui/components/ActivityIndicator.js +0 -198
  580. package/lib/module/ui/components/ActivityIndicator.js.map +0 -1
  581. package/lib/module/ui/components/AutoHeightScrollView.js +0 -41
  582. package/lib/module/ui/components/AutoHeightScrollView.js.map +0 -1
  583. package/lib/module/ui/components/Avatar.js +0 -177
  584. package/lib/module/ui/components/Avatar.js.map +0 -1
  585. package/lib/module/ui/components/CrossFadeIcon.js +0 -101
  586. package/lib/module/ui/components/CrossFadeIcon.js.map +0 -1
  587. package/lib/module/ui/components/EmptyState.js +0 -36
  588. package/lib/module/ui/components/EmptyState.js.map +0 -1
  589. package/lib/module/ui/components/HelperText.js +0 -90
  590. package/lib/module/ui/components/HelperText.js.map +0 -1
  591. package/lib/module/ui/components/Icon.js +0 -106
  592. package/lib/module/ui/components/Icon.js.map +0 -1
  593. package/lib/module/ui/components/IconButton/IconButton.js +0 -148
  594. package/lib/module/ui/components/IconButton/IconButton.js.map +0 -1
  595. package/lib/module/ui/components/IconButton/utils.js +0 -149
  596. package/lib/module/ui/components/IconButton/utils.js.map +0 -1
  597. package/lib/module/ui/components/LoadingState.js +0 -42
  598. package/lib/module/ui/components/LoadingState.js.map +0 -1
  599. package/lib/module/ui/components/OxyLogo.js +0 -104
  600. package/lib/module/ui/components/OxyLogo.js.map +0 -1
  601. package/lib/module/ui/components/ProfileCard.js +0 -129
  602. package/lib/module/ui/components/ProfileCard.js.map +0 -1
  603. package/lib/module/ui/components/QuickActions.js +0 -80
  604. package/lib/module/ui/components/QuickActions.js.map +0 -1
  605. package/lib/module/ui/components/StepBasedScreen.js +0 -418
  606. package/lib/module/ui/components/StepBasedScreen.js.map +0 -1
  607. package/lib/module/ui/components/Surface.js +0 -252
  608. package/lib/module/ui/components/Surface.js.map +0 -1
  609. package/lib/module/ui/components/TextField/Addons/Outline.js +0 -40
  610. package/lib/module/ui/components/TextField/Addons/Outline.js.map +0 -1
  611. package/lib/module/ui/components/TextField/Addons/Underline.js +0 -47
  612. package/lib/module/ui/components/TextField/Addons/Underline.js.map +0 -1
  613. package/lib/module/ui/components/TextField/Adornment/TextFieldAdornment.js +0 -146
  614. package/lib/module/ui/components/TextField/Adornment/TextFieldAdornment.js.map +0 -1
  615. package/lib/module/ui/components/TextField/Adornment/TextFieldAffix.js +0 -141
  616. package/lib/module/ui/components/TextField/Adornment/TextFieldAffix.js.map +0 -1
  617. package/lib/module/ui/components/TextField/Adornment/TextFieldIcon.js +0 -135
  618. package/lib/module/ui/components/TextField/Adornment/TextFieldIcon.js.map +0 -1
  619. package/lib/module/ui/components/TextField/Adornment/enums.js +0 -18
  620. package/lib/module/ui/components/TextField/Adornment/enums.js.map +0 -1
  621. package/lib/module/ui/components/TextField/Adornment/types.js +0 -4
  622. package/lib/module/ui/components/TextField/Adornment/types.js.map +0 -1
  623. package/lib/module/ui/components/TextField/Adornment/utils.js +0 -57
  624. package/lib/module/ui/components/TextField/Adornment/utils.js.map +0 -1
  625. package/lib/module/ui/components/TextField/Label/InputLabel.js +0 -171
  626. package/lib/module/ui/components/TextField/Label/InputLabel.js.map +0 -1
  627. package/lib/module/ui/components/TextField/Label/LabelBackground.js +0 -78
  628. package/lib/module/ui/components/TextField/Label/LabelBackground.js.map +0 -1
  629. package/lib/module/ui/components/TextField/TextFieldFlat.js +0 -376
  630. package/lib/module/ui/components/TextField/TextFieldFlat.js.map +0 -1
  631. package/lib/module/ui/components/TextField/TextFieldOutlined.js +0 -359
  632. package/lib/module/ui/components/TextField/TextFieldOutlined.js.map +0 -1
  633. package/lib/module/ui/components/TextField/constants.js +0 -46
  634. package/lib/module/ui/components/TextField/constants.js.map +0 -1
  635. package/lib/module/ui/components/TextField/helpers.js +0 -471
  636. package/lib/module/ui/components/TextField/helpers.js.map +0 -1
  637. package/lib/module/ui/components/TextField/types.js +0 -4
  638. package/lib/module/ui/components/TextField/types.js.map +0 -1
  639. package/lib/module/ui/components/TextField.js +0 -329
  640. package/lib/module/ui/components/TextField.js.map +0 -1
  641. package/lib/module/ui/components/TouchableRipple/Pressable.js +0 -9
  642. package/lib/module/ui/components/TouchableRipple/Pressable.js.map +0 -1
  643. package/lib/module/ui/components/TouchableRipple/TouchableRipple.js +0 -253
  644. package/lib/module/ui/components/TouchableRipple/TouchableRipple.js.map +0 -1
  645. package/lib/module/ui/components/TouchableRipple/TouchableRipple.native.js +0 -101
  646. package/lib/module/ui/components/TouchableRipple/TouchableRipple.native.js.map +0 -1
  647. package/lib/module/ui/components/TouchableRipple/utils.js +0 -50
  648. package/lib/module/ui/components/TouchableRipple/utils.js.map +0 -1
  649. package/lib/module/ui/components/Typography/AnimatedText.js +0 -54
  650. package/lib/module/ui/components/Typography/AnimatedText.js.map +0 -1
  651. package/lib/module/ui/components/Typography/types.js +0 -22
  652. package/lib/module/ui/components/Typography/types.js.map +0 -1
  653. package/lib/module/ui/components/feedback/ProgressIndicator.js +0 -28
  654. package/lib/module/ui/components/feedback/ProgressIndicator.js.map +0 -1
  655. package/lib/module/ui/components/icon/OxyIcon.js +0 -22
  656. package/lib/module/ui/components/icon/OxyIcon.js.map +0 -1
  657. package/lib/module/ui/components/theming.js +0 -123
  658. package/lib/module/ui/components/theming.js.map +0 -1
  659. package/lib/module/ui/components/types.js +0 -4
  660. package/lib/module/ui/components/types.js.map +0 -1
  661. package/lib/module/ui/components/utils/forwardRef.js +0 -13
  662. package/lib/module/ui/components/utils/forwardRef.js.map +0 -1
  663. package/lib/module/ui/constants/iconColors.js +0 -78
  664. package/lib/module/ui/constants/iconColors.js.map +0 -1
  665. package/lib/module/ui/constants/theme.js +0 -120
  666. package/lib/module/ui/constants/theme.js.map +0 -1
  667. package/lib/module/ui/context/ThemeContext.js +0 -29
  668. package/lib/module/ui/context/ThemeContext.js.map +0 -1
  669. package/lib/module/ui/hooks/useColorScheme.js +0 -26
  670. package/lib/module/ui/hooks/useColorScheme.js.map +0 -1
  671. package/lib/module/ui/styles/authStyles.js +0 -329
  672. package/lib/module/ui/styles/authStyles.js.map +0 -1
  673. package/lib/module/ui/styles/theme.js +0 -147
  674. package/lib/module/ui/styles/theme.js.map +0 -1
  675. package/lib/typescript/commonjs/ui/components/ActivityIndicator.d.ts +0 -45
  676. package/lib/typescript/commonjs/ui/components/ActivityIndicator.d.ts.map +0 -1
  677. package/lib/typescript/commonjs/ui/components/AutoHeightScrollView.d.ts +0 -23
  678. package/lib/typescript/commonjs/ui/components/AutoHeightScrollView.d.ts.map +0 -1
  679. package/lib/typescript/commonjs/ui/components/Avatar.d.ts +0 -61
  680. package/lib/typescript/commonjs/ui/components/Avatar.d.ts.map +0 -1
  681. package/lib/typescript/commonjs/ui/components/CrossFadeIcon.d.ts +0 -28
  682. package/lib/typescript/commonjs/ui/components/CrossFadeIcon.d.ts.map +0 -1
  683. package/lib/typescript/commonjs/ui/components/EmptyState.d.ts +0 -8
  684. package/lib/typescript/commonjs/ui/components/EmptyState.d.ts.map +0 -1
  685. package/lib/typescript/commonjs/ui/components/HelperText.d.ts +0 -47
  686. package/lib/typescript/commonjs/ui/components/HelperText.d.ts.map +0 -1
  687. package/lib/typescript/commonjs/ui/components/Icon.d.ts +0 -61
  688. package/lib/typescript/commonjs/ui/components/Icon.d.ts.map +0 -1
  689. package/lib/typescript/commonjs/ui/components/IconButton/IconButton.d.ts +0 -99
  690. package/lib/typescript/commonjs/ui/components/IconButton/IconButton.d.ts.map +0 -1
  691. package/lib/typescript/commonjs/ui/components/IconButton/utils.d.ts +0 -19
  692. package/lib/typescript/commonjs/ui/components/IconButton/utils.d.ts.map +0 -1
  693. package/lib/typescript/commonjs/ui/components/LoadingState.d.ts +0 -9
  694. package/lib/typescript/commonjs/ui/components/LoadingState.d.ts.map +0 -1
  695. package/lib/typescript/commonjs/ui/components/OxyLogo.d.ts +0 -16
  696. package/lib/typescript/commonjs/ui/components/OxyLogo.d.ts.map +0 -1
  697. package/lib/typescript/commonjs/ui/components/ProfileCard.d.ts +0 -21
  698. package/lib/typescript/commonjs/ui/components/ProfileCard.d.ts.map +0 -1
  699. package/lib/typescript/commonjs/ui/components/QuickActions.d.ts +0 -15
  700. package/lib/typescript/commonjs/ui/components/QuickActions.d.ts.map +0 -1
  701. package/lib/typescript/commonjs/ui/components/StepBasedScreen.d.ts +0 -28
  702. package/lib/typescript/commonjs/ui/components/StepBasedScreen.d.ts.map +0 -1
  703. package/lib/typescript/commonjs/ui/components/Surface.d.ts +0 -76
  704. package/lib/typescript/commonjs/ui/components/Surface.d.ts.map +0 -1
  705. package/lib/typescript/commonjs/ui/components/TextField/Addons/Outline.d.ts +0 -17
  706. package/lib/typescript/commonjs/ui/components/TextField/Addons/Outline.d.ts.map +0 -1
  707. package/lib/typescript/commonjs/ui/components/TextField/Addons/Underline.d.ts +0 -20
  708. package/lib/typescript/commonjs/ui/components/TextField/Addons/Underline.d.ts.map +0 -1
  709. package/lib/typescript/commonjs/ui/components/TextField/Adornment/TextFieldAdornment.d.ts +0 -45
  710. package/lib/typescript/commonjs/ui/components/TextField/Adornment/TextFieldAdornment.d.ts.map +0 -1
  711. package/lib/typescript/commonjs/ui/components/TextField/Adornment/TextFieldAffix.d.ts +0 -73
  712. package/lib/typescript/commonjs/ui/components/TextField/Adornment/TextFieldAffix.d.ts.map +0 -1
  713. package/lib/typescript/commonjs/ui/components/TextField/Adornment/TextFieldIcon.d.ts +0 -78
  714. package/lib/typescript/commonjs/ui/components/TextField/Adornment/TextFieldIcon.d.ts.map +0 -1
  715. package/lib/typescript/commonjs/ui/components/TextField/Adornment/enums.d.ts +0 -13
  716. package/lib/typescript/commonjs/ui/components/TextField/Adornment/enums.d.ts.map +0 -1
  717. package/lib/typescript/commonjs/ui/components/TextField/Adornment/types.d.ts +0 -12
  718. package/lib/typescript/commonjs/ui/components/TextField/Adornment/types.d.ts.map +0 -1
  719. package/lib/typescript/commonjs/ui/components/TextField/Adornment/utils.d.ts +0 -12
  720. package/lib/typescript/commonjs/ui/components/TextField/Adornment/utils.d.ts.map +0 -1
  721. package/lib/typescript/commonjs/ui/components/TextField/Label/InputLabel.d.ts +0 -5
  722. package/lib/typescript/commonjs/ui/components/TextField/Label/InputLabel.d.ts.map +0 -1
  723. package/lib/typescript/commonjs/ui/components/TextField/Label/LabelBackground.d.ts +0 -5
  724. package/lib/typescript/commonjs/ui/components/TextField/Label/LabelBackground.d.ts.map +0 -1
  725. package/lib/typescript/commonjs/ui/components/TextField/TextFieldFlat.d.ts +0 -5
  726. package/lib/typescript/commonjs/ui/components/TextField/TextFieldFlat.d.ts.map +0 -1
  727. package/lib/typescript/commonjs/ui/components/TextField/TextFieldOutlined.d.ts +0 -5
  728. package/lib/typescript/commonjs/ui/components/TextField/TextFieldOutlined.d.ts.map +0 -1
  729. package/lib/typescript/commonjs/ui/components/TextField/constants.d.ts +0 -32
  730. package/lib/typescript/commonjs/ui/components/TextField/constants.d.ts.map +0 -1
  731. package/lib/typescript/commonjs/ui/components/TextField/helpers.d.ts +0 -97
  732. package/lib/typescript/commonjs/ui/components/TextField/helpers.d.ts.map +0 -1
  733. package/lib/typescript/commonjs/ui/components/TextField/types.d.ts +0 -155
  734. package/lib/typescript/commonjs/ui/components/TextField/types.d.ts.map +0 -1
  735. package/lib/typescript/commonjs/ui/components/TextField.d.ts +0 -192
  736. package/lib/typescript/commonjs/ui/components/TextField.d.ts.map +0 -1
  737. package/lib/typescript/commonjs/ui/components/TouchableRipple/Pressable.d.ts +0 -13
  738. package/lib/typescript/commonjs/ui/components/TouchableRipple/Pressable.d.ts.map +0 -1
  739. package/lib/typescript/commonjs/ui/components/TouchableRipple/TouchableRipple.d.ts +0 -62
  740. package/lib/typescript/commonjs/ui/components/TouchableRipple/TouchableRipple.d.ts.map +0 -1
  741. package/lib/typescript/commonjs/ui/components/TouchableRipple/TouchableRipple.native.d.ts +0 -25
  742. package/lib/typescript/commonjs/ui/components/TouchableRipple/TouchableRipple.native.d.ts.map +0 -1
  743. package/lib/typescript/commonjs/ui/components/TouchableRipple/utils.d.ts +0 -11
  744. package/lib/typescript/commonjs/ui/components/TouchableRipple/utils.d.ts.map +0 -1
  745. package/lib/typescript/commonjs/ui/components/Typography/AnimatedText.d.ts +0 -35
  746. package/lib/typescript/commonjs/ui/components/Typography/AnimatedText.d.ts.map +0 -1
  747. package/lib/typescript/commonjs/ui/components/Typography/types.d.ts +0 -19
  748. package/lib/typescript/commonjs/ui/components/Typography/types.d.ts.map +0 -1
  749. package/lib/typescript/commonjs/ui/components/feedback/ProgressIndicator.d.ts +0 -11
  750. package/lib/typescript/commonjs/ui/components/feedback/ProgressIndicator.d.ts.map +0 -1
  751. package/lib/typescript/commonjs/ui/components/icon/OxyIcon.d.ts +0 -10
  752. package/lib/typescript/commonjs/ui/components/icon/OxyIcon.d.ts.map +0 -1
  753. package/lib/typescript/commonjs/ui/components/theming.d.ts +0 -8
  754. package/lib/typescript/commonjs/ui/components/theming.d.ts.map +0 -1
  755. package/lib/typescript/commonjs/ui/components/types.d.ts +0 -81
  756. package/lib/typescript/commonjs/ui/components/types.d.ts.map +0 -1
  757. package/lib/typescript/commonjs/ui/components/utils/forwardRef.d.ts +0 -12
  758. package/lib/typescript/commonjs/ui/components/utils/forwardRef.d.ts.map +0 -1
  759. package/lib/typescript/commonjs/ui/constants/iconColors.d.ts +0 -130
  760. package/lib/typescript/commonjs/ui/constants/iconColors.d.ts.map +0 -1
  761. package/lib/typescript/commonjs/ui/constants/theme.d.ts +0 -98
  762. package/lib/typescript/commonjs/ui/constants/theme.d.ts.map +0 -1
  763. package/lib/typescript/commonjs/ui/context/ThemeContext.d.ts +0 -19
  764. package/lib/typescript/commonjs/ui/context/ThemeContext.d.ts.map +0 -1
  765. package/lib/typescript/commonjs/ui/hooks/useColorScheme.d.ts +0 -8
  766. package/lib/typescript/commonjs/ui/hooks/useColorScheme.d.ts.map +0 -1
  767. package/lib/typescript/commonjs/ui/styles/authStyles.d.ts +0 -328
  768. package/lib/typescript/commonjs/ui/styles/authStyles.d.ts.map +0 -1
  769. package/lib/typescript/commonjs/ui/styles/theme.d.ts +0 -75
  770. package/lib/typescript/commonjs/ui/styles/theme.d.ts.map +0 -1
  771. package/lib/typescript/module/ui/components/ActivityIndicator.d.ts +0 -45
  772. package/lib/typescript/module/ui/components/ActivityIndicator.d.ts.map +0 -1
  773. package/lib/typescript/module/ui/components/AutoHeightScrollView.d.ts +0 -23
  774. package/lib/typescript/module/ui/components/AutoHeightScrollView.d.ts.map +0 -1
  775. package/lib/typescript/module/ui/components/Avatar.d.ts +0 -61
  776. package/lib/typescript/module/ui/components/Avatar.d.ts.map +0 -1
  777. package/lib/typescript/module/ui/components/CrossFadeIcon.d.ts +0 -28
  778. package/lib/typescript/module/ui/components/CrossFadeIcon.d.ts.map +0 -1
  779. package/lib/typescript/module/ui/components/EmptyState.d.ts +0 -8
  780. package/lib/typescript/module/ui/components/EmptyState.d.ts.map +0 -1
  781. package/lib/typescript/module/ui/components/HelperText.d.ts +0 -47
  782. package/lib/typescript/module/ui/components/HelperText.d.ts.map +0 -1
  783. package/lib/typescript/module/ui/components/Icon.d.ts +0 -61
  784. package/lib/typescript/module/ui/components/Icon.d.ts.map +0 -1
  785. package/lib/typescript/module/ui/components/IconButton/IconButton.d.ts +0 -99
  786. package/lib/typescript/module/ui/components/IconButton/IconButton.d.ts.map +0 -1
  787. package/lib/typescript/module/ui/components/IconButton/utils.d.ts +0 -19
  788. package/lib/typescript/module/ui/components/IconButton/utils.d.ts.map +0 -1
  789. package/lib/typescript/module/ui/components/LoadingState.d.ts +0 -9
  790. package/lib/typescript/module/ui/components/LoadingState.d.ts.map +0 -1
  791. package/lib/typescript/module/ui/components/OxyLogo.d.ts +0 -16
  792. package/lib/typescript/module/ui/components/OxyLogo.d.ts.map +0 -1
  793. package/lib/typescript/module/ui/components/ProfileCard.d.ts +0 -21
  794. package/lib/typescript/module/ui/components/ProfileCard.d.ts.map +0 -1
  795. package/lib/typescript/module/ui/components/QuickActions.d.ts +0 -15
  796. package/lib/typescript/module/ui/components/QuickActions.d.ts.map +0 -1
  797. package/lib/typescript/module/ui/components/StepBasedScreen.d.ts +0 -28
  798. package/lib/typescript/module/ui/components/StepBasedScreen.d.ts.map +0 -1
  799. package/lib/typescript/module/ui/components/Surface.d.ts +0 -76
  800. package/lib/typescript/module/ui/components/Surface.d.ts.map +0 -1
  801. package/lib/typescript/module/ui/components/TextField/Addons/Outline.d.ts +0 -17
  802. package/lib/typescript/module/ui/components/TextField/Addons/Outline.d.ts.map +0 -1
  803. package/lib/typescript/module/ui/components/TextField/Addons/Underline.d.ts +0 -20
  804. package/lib/typescript/module/ui/components/TextField/Addons/Underline.d.ts.map +0 -1
  805. package/lib/typescript/module/ui/components/TextField/Adornment/TextFieldAdornment.d.ts +0 -45
  806. package/lib/typescript/module/ui/components/TextField/Adornment/TextFieldAdornment.d.ts.map +0 -1
  807. package/lib/typescript/module/ui/components/TextField/Adornment/TextFieldAffix.d.ts +0 -73
  808. package/lib/typescript/module/ui/components/TextField/Adornment/TextFieldAffix.d.ts.map +0 -1
  809. package/lib/typescript/module/ui/components/TextField/Adornment/TextFieldIcon.d.ts +0 -78
  810. package/lib/typescript/module/ui/components/TextField/Adornment/TextFieldIcon.d.ts.map +0 -1
  811. package/lib/typescript/module/ui/components/TextField/Adornment/enums.d.ts +0 -13
  812. package/lib/typescript/module/ui/components/TextField/Adornment/enums.d.ts.map +0 -1
  813. package/lib/typescript/module/ui/components/TextField/Adornment/types.d.ts +0 -12
  814. package/lib/typescript/module/ui/components/TextField/Adornment/types.d.ts.map +0 -1
  815. package/lib/typescript/module/ui/components/TextField/Adornment/utils.d.ts +0 -12
  816. package/lib/typescript/module/ui/components/TextField/Adornment/utils.d.ts.map +0 -1
  817. package/lib/typescript/module/ui/components/TextField/Label/InputLabel.d.ts +0 -5
  818. package/lib/typescript/module/ui/components/TextField/Label/InputLabel.d.ts.map +0 -1
  819. package/lib/typescript/module/ui/components/TextField/Label/LabelBackground.d.ts +0 -5
  820. package/lib/typescript/module/ui/components/TextField/Label/LabelBackground.d.ts.map +0 -1
  821. package/lib/typescript/module/ui/components/TextField/TextFieldFlat.d.ts +0 -5
  822. package/lib/typescript/module/ui/components/TextField/TextFieldFlat.d.ts.map +0 -1
  823. package/lib/typescript/module/ui/components/TextField/TextFieldOutlined.d.ts +0 -5
  824. package/lib/typescript/module/ui/components/TextField/TextFieldOutlined.d.ts.map +0 -1
  825. package/lib/typescript/module/ui/components/TextField/constants.d.ts +0 -32
  826. package/lib/typescript/module/ui/components/TextField/constants.d.ts.map +0 -1
  827. package/lib/typescript/module/ui/components/TextField/helpers.d.ts +0 -97
  828. package/lib/typescript/module/ui/components/TextField/helpers.d.ts.map +0 -1
  829. package/lib/typescript/module/ui/components/TextField/types.d.ts +0 -155
  830. package/lib/typescript/module/ui/components/TextField/types.d.ts.map +0 -1
  831. package/lib/typescript/module/ui/components/TextField.d.ts +0 -192
  832. package/lib/typescript/module/ui/components/TextField.d.ts.map +0 -1
  833. package/lib/typescript/module/ui/components/TouchableRipple/Pressable.d.ts +0 -13
  834. package/lib/typescript/module/ui/components/TouchableRipple/Pressable.d.ts.map +0 -1
  835. package/lib/typescript/module/ui/components/TouchableRipple/TouchableRipple.d.ts +0 -62
  836. package/lib/typescript/module/ui/components/TouchableRipple/TouchableRipple.d.ts.map +0 -1
  837. package/lib/typescript/module/ui/components/TouchableRipple/TouchableRipple.native.d.ts +0 -25
  838. package/lib/typescript/module/ui/components/TouchableRipple/TouchableRipple.native.d.ts.map +0 -1
  839. package/lib/typescript/module/ui/components/TouchableRipple/utils.d.ts +0 -11
  840. package/lib/typescript/module/ui/components/TouchableRipple/utils.d.ts.map +0 -1
  841. package/lib/typescript/module/ui/components/Typography/AnimatedText.d.ts +0 -35
  842. package/lib/typescript/module/ui/components/Typography/AnimatedText.d.ts.map +0 -1
  843. package/lib/typescript/module/ui/components/Typography/types.d.ts +0 -19
  844. package/lib/typescript/module/ui/components/Typography/types.d.ts.map +0 -1
  845. package/lib/typescript/module/ui/components/feedback/ProgressIndicator.d.ts +0 -11
  846. package/lib/typescript/module/ui/components/feedback/ProgressIndicator.d.ts.map +0 -1
  847. package/lib/typescript/module/ui/components/icon/OxyIcon.d.ts +0 -10
  848. package/lib/typescript/module/ui/components/icon/OxyIcon.d.ts.map +0 -1
  849. package/lib/typescript/module/ui/components/theming.d.ts +0 -8
  850. package/lib/typescript/module/ui/components/theming.d.ts.map +0 -1
  851. package/lib/typescript/module/ui/components/types.d.ts +0 -81
  852. package/lib/typescript/module/ui/components/types.d.ts.map +0 -1
  853. package/lib/typescript/module/ui/components/utils/forwardRef.d.ts +0 -12
  854. package/lib/typescript/module/ui/components/utils/forwardRef.d.ts.map +0 -1
  855. package/lib/typescript/module/ui/constants/iconColors.d.ts +0 -130
  856. package/lib/typescript/module/ui/constants/iconColors.d.ts.map +0 -1
  857. package/lib/typescript/module/ui/constants/theme.d.ts +0 -98
  858. package/lib/typescript/module/ui/constants/theme.d.ts.map +0 -1
  859. package/lib/typescript/module/ui/context/ThemeContext.d.ts +0 -19
  860. package/lib/typescript/module/ui/context/ThemeContext.d.ts.map +0 -1
  861. package/lib/typescript/module/ui/hooks/useColorScheme.d.ts +0 -8
  862. package/lib/typescript/module/ui/hooks/useColorScheme.d.ts.map +0 -1
  863. package/lib/typescript/module/ui/styles/authStyles.d.ts +0 -328
  864. package/lib/typescript/module/ui/styles/authStyles.d.ts.map +0 -1
  865. package/lib/typescript/module/ui/styles/theme.d.ts +0 -75
  866. package/lib/typescript/module/ui/styles/theme.d.ts.map +0 -1
  867. package/src/ui/components/ActivityIndicator.tsx +0 -254
  868. package/src/ui/components/AutoHeightScrollView.tsx +0 -50
  869. package/src/ui/components/Avatar.tsx +0 -284
  870. package/src/ui/components/CrossFadeIcon.tsx +0 -140
  871. package/src/ui/components/EmptyState.tsx +0 -39
  872. package/src/ui/components/HelperText.tsx +0 -149
  873. package/src/ui/components/Icon.tsx +0 -189
  874. package/src/ui/components/IconButton/IconButton.tsx +0 -232
  875. package/src/ui/components/IconButton/utils.ts +0 -190
  876. package/src/ui/components/LoadingState.tsx +0 -46
  877. package/src/ui/components/OxyLogo.tsx +0 -82
  878. package/src/ui/components/ProfileCard.tsx +0 -137
  879. package/src/ui/components/QuickActions.tsx +0 -91
  880. package/src/ui/components/StepBasedScreen.tsx +0 -499
  881. package/src/ui/components/Surface.tsx +0 -384
  882. package/src/ui/components/TextField/Addons/Outline.tsx +0 -64
  883. package/src/ui/components/TextField/Addons/Underline.tsx +0 -78
  884. package/src/ui/components/TextField/Adornment/TextFieldAdornment.tsx +0 -205
  885. package/src/ui/components/TextField/Adornment/TextFieldAffix.tsx +0 -212
  886. package/src/ui/components/TextField/Adornment/TextFieldIcon.tsx +0 -195
  887. package/src/ui/components/TextField/Adornment/enums.tsx +0 -12
  888. package/src/ui/components/TextField/Adornment/types.tsx +0 -11
  889. package/src/ui/components/TextField/Adornment/utils.ts +0 -66
  890. package/src/ui/components/TextField/Label/InputLabel.tsx +0 -219
  891. package/src/ui/components/TextField/Label/LabelBackground.tsx +0 -100
  892. package/src/ui/components/TextField/TextFieldFlat.tsx +0 -488
  893. package/src/ui/components/TextField/TextFieldOutlined.tsx +0 -464
  894. package/src/ui/components/TextField/constants.tsx +0 -48
  895. package/src/ui/components/TextField/helpers.tsx +0 -611
  896. package/src/ui/components/TextField/types.tsx +0 -160
  897. package/src/ui/components/TextField.tsx +0 -574
  898. package/src/ui/components/TouchableRipple/Pressable.tsx +0 -42
  899. package/src/ui/components/TouchableRipple/TouchableRipple.native.tsx +0 -146
  900. package/src/ui/components/TouchableRipple/TouchableRipple.tsx +0 -347
  901. package/src/ui/components/TouchableRipple/utils.ts +0 -66
  902. package/src/ui/components/Typography/AnimatedText.tsx +0 -106
  903. package/src/ui/components/Typography/types.tsx +0 -22
  904. package/src/ui/components/feedback/ProgressIndicator.tsx +0 -35
  905. package/src/ui/components/icon/OxyIcon.tsx +0 -31
  906. package/src/ui/components/theming.tsx +0 -126
  907. package/src/ui/components/types.tsx +0 -93
  908. package/src/ui/components/utils/forwardRef.tsx +0 -23
  909. package/src/ui/constants/iconColors.ts +0 -88
  910. package/src/ui/constants/theme.ts +0 -121
  911. package/src/ui/context/ThemeContext.tsx +0 -41
  912. package/src/ui/context/__tests__/OxyContext.coldBoot.test.tsx +0 -166
  913. package/src/ui/hooks/useColorScheme.ts +0 -24
  914. package/src/ui/styles/authStyles.ts +0 -348
  915. package/src/ui/styles/theme.ts +0 -169
@@ -1,130 +1,30 @@
1
1
  "use strict";
2
2
 
3
3
  import React, { useState, useEffect, useCallback, useMemo, useRef } from 'react';
4
- import { View, Text, TouchableOpacity, StyleSheet, ScrollView, ActivityIndicator, RefreshControl, TextInput, Image, Animated, Easing, FlatList, AccessibilityInfo, Platform, useWindowDimensions } from 'react-native';
4
+ import { View, Text, TouchableOpacity, StyleSheet, ScrollView, ActivityIndicator, RefreshControl, TextInput, Image, Animated, Easing, AccessibilityInfo } from 'react-native';
5
5
  import { Image as ExpoImage } from 'expo-image';
6
- import Reanimated, { FadeIn, useAnimatedStyle, useSharedValue, withSequence, withSpring, withTiming } from 'react-native-reanimated';
7
- // Lazy load expo-document-picker (optional dependency)
8
- // This allows the screen to work even if expo-document-picker is not installed
9
- let DocumentPicker = null;
10
- const loadDocumentPicker = async () => {
11
- if (DocumentPicker) return DocumentPicker;
12
- try {
13
- DocumentPicker = await import('expo-document-picker');
14
- return DocumentPicker;
15
- } catch (error) {
16
- throw new Error('expo-document-picker is not installed. Please install it: npx expo install expo-document-picker');
17
- }
18
- };
19
6
  import { Dialog, toast, useDialogControl } from '@oxyhq/bloom';
20
7
  import { Ionicons, MaterialCommunityIcons } from '@expo/vector-icons';
21
- import { getErrorMessage as getOxyErrorMessage } from '@oxyhq/core';
22
8
  import { useFileStore, useFiles, useUploading as useUploadingStore, useUploadAggregateProgress, useDeleting as useDeletingStore } from "../stores/fileStore.js";
23
9
  import Header from "../components/Header.js";
24
10
  import JustifiedPhotoGrid from "../components/photogrid/JustifiedPhotoGrid.js";
25
- import { SettingsListGroup, SettingsListItem } from '@oxyhq/bloom/settings-list';
26
11
  import { useTheme } from '@oxyhq/bloom/theme';
27
12
  import { useOxy } from "../context/OxyContext.js";
28
13
  import { useI18n } from "../hooks/useI18n.js";
29
14
  import { useUploadFile } from "../hooks/mutations/useAccountMutations.js";
30
- import { convertDocumentPickerAssetToFile, formatFileSize, getFileIcon, getSafeDownloadUrl } from "../utils/fileManagement.js";
15
+ import { formatFileSize, getFileIcon, getSafeDownloadUrl } from "../utils/fileManagement.js";
31
16
  import { FileViewer } from "../components/fileManagement/FileViewer.js";
32
17
  import { FileDetailsModal } from "../components/fileManagement/FileDetailsModal.js";
33
18
  import { UploadPreview } from "../components/fileManagement/UploadPreview.js";
34
- import { fileManagementStyles, photoPickerStyles } from "../components/fileManagement/styles.js";
35
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
36
- /**
37
- * Extract error message from unknown error type.
38
- * Delegates to the canonical `getErrorMessage` in `@oxyhq/core` and returns
39
- * `undefined` for empty results (so callers can fall back to a translated
40
- * message via `||`).
41
- */
42
- const getErrorMessage = error => {
43
- if (error == null) return undefined;
44
- const message = getOxyErrorMessage(error, '');
45
- return message ? message : undefined;
46
- };
47
-
48
- /**
49
- * A picker-produced file ready to upload. On web this is a real `File`
50
- * (carrying an optional `uri` for preview). On native, it's an
51
- * {@link RNFileDescriptor} — passed straight to FormData by `assetUpload`.
52
- */
53
-
54
- /** Returns the display name for either a web File or an RN descriptor. */
55
- const candidateName = (candidate, fallback) => candidate.name && typeof candidate.name === 'string' ? candidate.name : fallback;
56
-
57
- /** Returns the byte size for either a web File or an RN descriptor (0 if unknown). */
58
- const candidateSize = candidate => {
59
- const size = candidate.size;
60
- return typeof size === 'number' && Number.isFinite(size) ? size : 0;
61
- };
62
-
63
- /** Returns the mime type for either a web File or an RN descriptor. */
64
- const candidateType = candidate => {
65
- const value = candidate.type;
66
- return typeof value === 'string' && value.length > 0 ? value : 'application/octet-stream';
67
- };
68
-
69
- /** Returns the preview URI for an upload candidate, if available. */
70
- const candidateUri = candidate => {
71
- const uri = candidate.uri;
72
- return typeof uri === 'string' && uri.length > 0 ? uri : undefined;
73
- };
74
-
75
- /**
76
- * Haptic feedback wrapper. `expo-haptics` is an optional dependency — when not
77
- * installed (or on web), all calls degrade silently. We resolve the module
78
- * once and cache the promise so subsequent calls don't repeat the dynamic
79
- * import. Matches the pattern used by AvatarCropScreen.
80
- */
81
-
82
- let hapticsModulePromise = null;
83
- const getHaptics = () => {
84
- if (Platform.OS === 'web') return Promise.resolve(null);
85
- if (hapticsModulePromise) return hapticsModulePromise;
86
- hapticsModulePromise = (async () => {
87
- try {
88
- const mod = await import('expo-haptics');
89
- if (!mod || typeof mod.impactAsync !== 'function') return null;
90
- return mod;
91
- } catch {
92
- return null;
93
- }
94
- })();
95
- return hapticsModulePromise;
96
- };
97
- const hapticImpact = async style => {
98
- const h = await getHaptics();
99
- if (!h) return;
100
- const styleEnum = style === 'heavy' ? h.ImpactFeedbackStyle.Heavy : style === 'medium' ? h.ImpactFeedbackStyle.Medium : h.ImpactFeedbackStyle.Light;
101
- try {
102
- await h.impactAsync(styleEnum);
103
- } catch {
104
- // Silent — haptics are non-critical UX polish.
105
- }
106
- };
107
- const hapticSelection = async () => {
108
- const h = await getHaptics();
109
- if (!h) return;
110
- try {
111
- await h.selectionAsync();
112
- } catch {
113
- // Silent.
114
- }
115
- };
116
- const hapticNotification = async type => {
117
- const h = await getHaptics();
118
- if (!h) return;
119
- const typeEnum = type === 'error' ? h.NotificationFeedbackType.Error : type === 'warning' ? h.NotificationFeedbackType.Warning : h.NotificationFeedbackType.Success;
120
- try {
121
- await h.notificationAsync(typeEnum);
122
- } catch {
123
- // Silent.
124
- }
125
- };
19
+ import { fileManagementStyles } from "../components/fileManagement/styles.js";
20
+ import { getErrorMessage } from "./fileManagement/shared.js";
21
+ import { useFileUploadState } from "./fileManagement/hooks/useFileUploadState.js";
22
+ import PhotoPickerView from "./fileManagement/PhotoPickerSection.js";
23
+ import FileListSection from "./fileManagement/FileListSection.js";
24
+ import UploadBar from "./fileManagement/UploadBar.js";
126
25
 
127
26
  // Animated button component for smooth transitions
27
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
128
28
  const AnimatedButton = ({
129
29
  isSelected,
130
30
  onPress,
@@ -169,453 +69,6 @@ const AnimatedButton = ({
169
69
  })
170
70
  });
171
71
  };
172
-
173
- /**
174
- * Props for the dedicated photo picker view. Used by FileManagementScreen
175
- * only when `selectMode + image-only` is active. All callbacks are wired by
176
- * the parent — this component is purely presentational.
177
- */
178
-
179
- /**
180
- * A single photo cell. Memoized so re-renders during selection only touch
181
- * affected cells — selection of one photo must not redraw the whole grid.
182
- *
183
- * Apple Photos pattern: when any cell is selected, *non-selected* siblings
184
- * fade to 0.6 opacity to focus attention on the active selection.
185
- */
186
- const PhotoPickerCell = /*#__PURE__*/React.memo(function PhotoPickerCell(props) {
187
- const {
188
- photo,
189
- size,
190
- marginRight,
191
- marginBottom,
192
- isSelected,
193
- selectionIndex,
194
- dim,
195
- primaryColor,
196
- thumbUrl,
197
- enterIndex,
198
- reduceMotion,
199
- onPress,
200
- onLongPress,
201
- a11yLabel
202
- } = props;
203
-
204
- // Cap the cumulative stagger at ~800ms total so the very long grid does
205
- // not keep fading in late tiles. Beyond ~53 tiles the delay maxes out.
206
- const STAGGER_PER_CELL_MS = 15;
207
- const MAX_TOTAL_STAGGER_MS = 800;
208
- const delay = Math.min(enterIndex * STAGGER_PER_CELL_MS, MAX_TOTAL_STAGGER_MS);
209
-
210
- // Selection ring pulse animation: 1.0 → 1.05 → 1.0 on transition to
211
- // selected. Plays at most once per selection change; reduce-motion skips.
212
- const ringScale = useSharedValue(1);
213
- const prevSelected = useRef(isSelected);
214
- useEffect(() => {
215
- if (prevSelected.current === isSelected) return;
216
- prevSelected.current = isSelected;
217
- if (!isSelected) {
218
- ringScale.value = 1;
219
- return;
220
- }
221
- if (reduceMotion) {
222
- ringScale.value = 1;
223
- return;
224
- }
225
- ringScale.value = withSequence(withTiming(1.05, {
226
- duration: 110
227
- }), withSpring(1, {
228
- damping: 14,
229
- stiffness: 200
230
- }));
231
- }, [isSelected, reduceMotion, ringScale]);
232
- const ringAnimatedStyle = useAnimatedStyle(() => ({
233
- transform: [{
234
- scale: ringScale.value
235
- }]
236
- }));
237
- const inner = /*#__PURE__*/_jsxs(_Fragment, {
238
- children: [/*#__PURE__*/_jsx(View, {
239
- style: [photoPickerStyles.cellInner, dim && photoPickerStyles.cellDim],
240
- children: /*#__PURE__*/_jsx(ExpoImage, {
241
- source: {
242
- uri: thumbUrl
243
- },
244
- style: photoPickerStyles.cellImage,
245
- contentFit: "cover",
246
- transition: 120,
247
- cachePolicy: "memory-disk",
248
- accessibilityLabel: photo.filename
249
- })
250
- }), isSelected && /*#__PURE__*/_jsx(Reanimated.View, {
251
- pointerEvents: "none",
252
- style: [photoPickerStyles.cellRing, {
253
- borderColor: primaryColor
254
- }, ringAnimatedStyle]
255
- }), isSelected && /*#__PURE__*/_jsx(View, {
256
- pointerEvents: "none",
257
- style: [photoPickerStyles.cellBadge, {
258
- backgroundColor: primaryColor
259
- }],
260
- children: /*#__PURE__*/_jsx(Text, {
261
- style: photoPickerStyles.cellBadgeText,
262
- children: selectionIndex > 0 ? String(selectionIndex) : ''
263
- })
264
- })]
265
- });
266
- const cellWrapperStyle = {
267
- width: size,
268
- height: size,
269
- marginRight,
270
- marginBottom
271
- };
272
- if (reduceMotion) {
273
- return /*#__PURE__*/_jsx(TouchableOpacity, {
274
- activeOpacity: 0.85,
275
- onPress: onPress,
276
- onLongPress: onLongPress,
277
- style: [photoPickerStyles.cellWrapper, cellWrapperStyle],
278
- accessibilityRole: "button",
279
- accessibilityLabel: a11yLabel,
280
- accessibilityState: {
281
- selected: isSelected
282
- },
283
- children: inner
284
- });
285
- }
286
- return /*#__PURE__*/_jsx(Reanimated.View, {
287
- entering: FadeIn.delay(delay).duration(200),
288
- style: [photoPickerStyles.cellWrapper, cellWrapperStyle],
289
- children: /*#__PURE__*/_jsx(TouchableOpacity, {
290
- activeOpacity: 0.85,
291
- onPress: onPress,
292
- onLongPress: onLongPress,
293
- style: {
294
- flex: 1
295
- },
296
- accessibilityRole: "button",
297
- accessibilityLabel: a11yLabel,
298
- accessibilityState: {
299
- selected: isSelected
300
- },
301
- children: inner
302
- })
303
- });
304
- });
305
- const PhotoPickerView = ({
306
- photos,
307
- selectedIds,
308
- multiSelect,
309
- maxSelection,
310
- allowUpload,
311
- refreshing,
312
- uploading,
313
- isPickingDocument,
314
- uploadProgress,
315
- hasMore,
316
- loadingMore,
317
- reduceMotion,
318
- getThumbUrl,
319
- primaryColor,
320
- isOwner,
321
- onTogglePhoto,
322
- onPreviewPhoto,
323
- onUpload,
324
- onRefresh,
325
- onLoadMore,
326
- onCancel,
327
- onConfirm,
328
- t
329
- }) => {
330
- const {
331
- width: windowWidth,
332
- height: windowHeight
333
- } = useWindowDimensions();
334
-
335
- // Layout: 3 columns phone portrait, 2 columns phone landscape,
336
- // 4 columns tablet (>= 600 width). Apple Photos-ish.
337
- const columns = useMemo(() => {
338
- if (windowWidth >= 600) return 4;
339
- // Landscape phone: width > height
340
- if (windowWidth > windowHeight) return 2;
341
- return 3;
342
- }, [windowWidth, windowHeight]);
343
- const GUTTER = 2;
344
- const cellSize = useMemo(() => {
345
- // (windowWidth - (columns - 1) * GUTTER) / columns, but
346
- // FlatList in 3-col layout means each row has 2 inter-cell gutters.
347
- return Math.floor((windowWidth - GUTTER * (columns - 1)) / columns);
348
- }, [windowWidth, columns]);
349
-
350
- // Map selectedIds → 1-based selection order for the badge. We freeze a
351
- // stable order at the time of selection: the order is the insertion
352
- // order of the Set (which JS preserves natively).
353
- const selectionOrder = useMemo(() => {
354
- const map = new Map();
355
- let i = 1;
356
- for (const id of selectedIds) {
357
- map.set(id, i++);
358
- }
359
- return map;
360
- }, [selectedIds]);
361
- const hasAnySelection = selectedIds.size > 0;
362
-
363
- // Compact icon-only upload pill on narrow screens; full pill otherwise.
364
- const showUploadLabel = windowWidth >= 360;
365
-
366
- // The bottom sheet renders below the status bar already (its `maxHeight`
367
- // is capped by `SCREEN_HEIGHT - insets.top`), so the picker MUST NOT add
368
- // an additional safe-area inset to the header. Header layout:
369
- // • 28dp drag-handle hit area floats at the very top of the sheet
370
- // • 56dp app bar sits immediately below the handle
371
- // Total header zone = 28 + 56 = 84dp from sheet top.
372
- const HANDLE_ZONE = 28;
373
- const APP_BAR_HEIGHT = 56;
374
- const headerHeight = HANDLE_ZONE + APP_BAR_HEIGHT;
375
- const contentPaddingTop = headerHeight + 4;
376
- const isEmpty = photos.length === 0;
377
- const a11yColumnsAnnouncement = useRef(columns);
378
- useEffect(() => {
379
- if (a11yColumnsAnnouncement.current !== columns) {
380
- a11yColumnsAnnouncement.current = columns;
381
- }
382
- }, [columns]);
383
- const handleCellPress = useCallback(photo => {
384
- if (Platform.OS !== 'web') {
385
- void hapticImpact('light');
386
- }
387
- onTogglePhoto(photo);
388
- }, [onTogglePhoto]);
389
- const handleCellLongPress = useCallback(photo => {
390
- if (Platform.OS !== 'web') {
391
- void hapticSelection();
392
- }
393
- onPreviewPhoto(photo);
394
- }, [onPreviewPhoto]);
395
- const handleConfirm = useCallback(() => {
396
- if (multiSelect) {
397
- if (selectedIds.size === 0) return;
398
- if (Platform.OS !== 'web') {
399
- void hapticNotification('success');
400
- }
401
- }
402
- onConfirm();
403
- }, [multiSelect, selectedIds.size, onConfirm]);
404
-
405
- // FlatList renderItem: each cell knows its enterIndex (for stagger).
406
- const renderItem = useCallback(({
407
- item,
408
- index
409
- }) => {
410
- const isSelected = selectedIds.has(item.id);
411
- const selIndex = isSelected ? selectionOrder.get(item.id) || 0 : 0;
412
- // Last column gets no right margin; last row no bottom margin
413
- // (FlatList handles row breaks via numColumns).
414
- const isLastInRow = (index + 1) % columns === 0;
415
- const a11yLabel = t(isSelected ? 'fileManagement.a11y.photoCellSelected' : 'fileManagement.a11y.photoCellUnselected', {
416
- name: item.filename || 'photo'
417
- });
418
- return /*#__PURE__*/_jsx(PhotoPickerCell, {
419
- photo: item,
420
- size: cellSize,
421
- marginRight: isLastInRow ? 0 : GUTTER,
422
- marginBottom: GUTTER,
423
- isSelected: isSelected,
424
- selectionIndex: selIndex,
425
- dim: multiSelect && hasAnySelection && !isSelected,
426
- primaryColor: primaryColor,
427
- thumbUrl: getThumbUrl(item, 'thumb'),
428
- enterIndex: index,
429
- reduceMotion: reduceMotion,
430
- onPress: () => handleCellPress(item),
431
- onLongPress: () => handleCellLongPress(item),
432
- a11yLabel: a11yLabel
433
- });
434
- }, [selectedIds, selectionOrder, columns, cellSize, multiSelect, hasAnySelection, primaryColor, getThumbUrl, reduceMotion, handleCellPress, handleCellLongPress, t]);
435
- const keyExtractor = useCallback(item => item.id, []);
436
- const listFooter = useMemo(() => {
437
- if (!loadingMore) return null;
438
- return /*#__PURE__*/_jsx(View, {
439
- style: {
440
- paddingVertical: 16,
441
- alignItems: 'center'
442
- },
443
- children: /*#__PURE__*/_jsx(ActivityIndicator, {
444
- size: "small",
445
- color: "#FFFFFF"
446
- })
447
- });
448
- }, [loadingMore]);
449
- const handleEndReached = useCallback(() => {
450
- if (loadingMore || !hasMore) return;
451
- onLoadMore();
452
- }, [loadingMore, hasMore, onLoadMore]);
453
- const confirmDisabled = multiSelect && selectedIds.size === 0;
454
- const confirmLabel = multiSelect ? t('fileManagement.doneWithCount', {
455
- count: selectedIds.size
456
- }) : t('fileManagement.done');
457
-
458
- // The progress fill width. Guard against zero division.
459
- const progressFraction = uploadProgress && uploadProgress.total > 0 ? Math.min(1, Math.max(0, uploadProgress.current / uploadProgress.total)) : 0;
460
- return /*#__PURE__*/_jsxs(View, {
461
- style: photoPickerStyles.root,
462
- children: [isEmpty ? /*#__PURE__*/_jsxs(View, {
463
- style: [photoPickerStyles.empty, {
464
- paddingTop: contentPaddingTop
465
- }],
466
- children: [/*#__PURE__*/_jsx(View, {
467
- style: photoPickerStyles.emptyIconWrap,
468
- children: /*#__PURE__*/_jsx(MaterialCommunityIcons, {
469
- name: "image-outline",
470
- size: 64,
471
- color: "#FFFFFF"
472
- })
473
- }), /*#__PURE__*/_jsx(Text, {
474
- style: [photoPickerStyles.emptyTitle, {
475
- color: '#FFFFFF'
476
- }],
477
- children: t('fileManagement.photoPicker.emptyTitle')
478
- }), /*#__PURE__*/_jsx(Text, {
479
- style: [photoPickerStyles.emptySubtitle, {
480
- color: '#FFFFFF'
481
- }],
482
- children: t('fileManagement.photoPicker.emptySubtitle')
483
- }), isOwner && allowUpload && /*#__PURE__*/_jsx(TouchableOpacity, {
484
- style: [photoPickerStyles.emptyCta, {
485
- backgroundColor: primaryColor
486
- }],
487
- onPress: onUpload,
488
- disabled: uploading || isPickingDocument,
489
- accessibilityRole: "button",
490
- accessibilityLabel: t('fileManagement.uploadPhoto'),
491
- accessibilityState: {
492
- busy: uploading || isPickingDocument
493
- },
494
- children: uploading || isPickingDocument ? /*#__PURE__*/_jsx(ActivityIndicator, {
495
- size: "small",
496
- color: "#FFFFFF"
497
- }) : /*#__PURE__*/_jsxs(_Fragment, {
498
- children: [/*#__PURE__*/_jsx(Ionicons, {
499
- name: "cloud-upload",
500
- size: 18,
501
- color: "#FFFFFF"
502
- }), /*#__PURE__*/_jsx(Text, {
503
- style: photoPickerStyles.emptyCtaText,
504
- children: t('fileManagement.uploadPhoto')
505
- })]
506
- })
507
- })]
508
- }) : /*#__PURE__*/_jsx(FlatList, {
509
- data: photos,
510
- renderItem: renderItem,
511
- keyExtractor: keyExtractor,
512
- numColumns: columns,
513
- contentContainerStyle: [photoPickerStyles.gridContent, {
514
- paddingTop: contentPaddingTop
515
- }],
516
- style: photoPickerStyles.grid,
517
- showsVerticalScrollIndicator: false,
518
- refreshControl: /*#__PURE__*/_jsx(RefreshControl, {
519
- refreshing: refreshing,
520
- onRefresh: onRefresh,
521
- tintColor: "#FFFFFF",
522
- colors: [primaryColor],
523
- progressViewOffset: contentPaddingTop
524
- }),
525
- onEndReached: handleEndReached,
526
- onEndReachedThreshold: 0.4,
527
- ListFooterComponent: listFooter,
528
- removeClippedSubviews: true,
529
- initialNumToRender: Math.max(12, columns * 6),
530
- windowSize: 9
531
- }, `cols-${columns}`), /*#__PURE__*/_jsxs(View, {
532
- style: [photoPickerStyles.header, {
533
- paddingTop: HANDLE_ZONE,
534
- minHeight: headerHeight
535
- }],
536
- children: [/*#__PURE__*/_jsxs(View, {
537
- style: photoPickerStyles.headerRow,
538
- children: [/*#__PURE__*/_jsx(View, {
539
- style: [photoPickerStyles.headerSide, photoPickerStyles.headerSideLeft],
540
- children: /*#__PURE__*/_jsx(TouchableOpacity, {
541
- onPress: onCancel,
542
- style: photoPickerStyles.headerCancel,
543
- accessibilityRole: "button",
544
- accessibilityLabel: t('fileManagement.a11y.cancelPicker'),
545
- hitSlop: {
546
- top: 8,
547
- bottom: 8,
548
- left: 8,
549
- right: 8
550
- },
551
- children: /*#__PURE__*/_jsx(Text, {
552
- style: photoPickerStyles.headerCancelText,
553
- children: t('fileManagement.cancel')
554
- })
555
- })
556
- }), /*#__PURE__*/_jsx(View, {
557
- pointerEvents: "none",
558
- children: /*#__PURE__*/_jsx(Text, {
559
- style: photoPickerStyles.headerTitle,
560
- numberOfLines: 1,
561
- children: t('fileManagement.choosePhoto')
562
- })
563
- }), /*#__PURE__*/_jsx(View, {
564
- style: [photoPickerStyles.headerSide, photoPickerStyles.headerSideRight],
565
- children: multiSelect ? /*#__PURE__*/_jsx(TouchableOpacity, {
566
- onPress: handleConfirm,
567
- disabled: confirmDisabled,
568
- style: [photoPickerStyles.headerPrimaryPill, {
569
- backgroundColor: confirmDisabled ? 'rgba(255,255,255,0.18)' : primaryColor,
570
- opacity: confirmDisabled ? 0.6 : 1
571
- }],
572
- accessibilityRole: "button",
573
- accessibilityLabel: t('fileManagement.a11y.confirmSelection'),
574
- accessibilityState: {
575
- disabled: confirmDisabled
576
- },
577
- children: /*#__PURE__*/_jsx(Text, {
578
- style: photoPickerStyles.headerPrimaryText,
579
- children: confirmLabel
580
- })
581
- }) : isOwner && allowUpload && /*#__PURE__*/_jsx(TouchableOpacity, {
582
- onPress: onUpload,
583
- disabled: uploading || isPickingDocument,
584
- style: [photoPickerStyles.headerPrimaryPill, !showUploadLabel && photoPickerStyles.headerPrimaryPillIconOnly, {
585
- backgroundColor: primaryColor
586
- }],
587
- accessibilityRole: "button",
588
- accessibilityLabel: t('fileManagement.a11y.uploadFromDevice'),
589
- accessibilityState: {
590
- busy: uploading || isPickingDocument
591
- },
592
- children: uploading || isPickingDocument ? /*#__PURE__*/_jsx(ActivityIndicator, {
593
- size: "small",
594
- color: "#FFFFFF"
595
- }) : /*#__PURE__*/_jsxs(_Fragment, {
596
- children: [/*#__PURE__*/_jsx(Ionicons, {
597
- name: "cloud-upload",
598
- size: 16,
599
- color: "#FFFFFF"
600
- }), showUploadLabel && /*#__PURE__*/_jsx(Text, {
601
- style: photoPickerStyles.headerPrimaryText,
602
- children: t('fileManagement.upload')
603
- })]
604
- })
605
- })
606
- })]
607
- }), uploading && /*#__PURE__*/_jsx(View, {
608
- style: photoPickerStyles.headerProgressBarTrack,
609
- children: /*#__PURE__*/_jsx(View, {
610
- style: [photoPickerStyles.headerProgressBarFill, {
611
- width: `${Math.round(progressFraction * 100)}%`,
612
- backgroundColor: primaryColor
613
- }]
614
- })
615
- })]
616
- })]
617
- });
618
- };
619
72
  const FileManagementScreen = ({
620
73
  onClose,
621
74
  theme,
@@ -675,7 +128,6 @@ const FileManagementScreen = ({
675
128
  const [fileContent, setFileContent] = useState(null);
676
129
  const [loadingFileContent, setLoadingFileContent] = useState(false);
677
130
  const [showFileDetailsInViewer, setShowFileDetailsInViewer] = useState(false);
678
- const [isPickingDocument, setIsPickingDocument] = useState(false);
679
131
  const [reduceMotion, setReduceMotion] = useState(false);
680
132
 
681
133
  // Detect reduce-motion preference once on mount + subscribe to changes.
@@ -710,8 +162,6 @@ const FileManagementScreen = ({
710
162
  const [searchQuery, setSearchQuery] = useState('');
711
163
  const [sortBy, setSortBy] = useState('date');
712
164
  const [sortOrder, setSortOrder] = useState('desc');
713
- const [pendingFiles, setPendingFiles] = useState([]);
714
- const [showUploadPreview, setShowUploadPreview] = useState(false);
715
165
  // Derived filtered and sorted files (avoid setState loops)
716
166
  const filteredFiles = useMemo(() => {
717
167
  let filteredByMode = files;
@@ -750,8 +200,6 @@ const FileManagementScreen = ({
750
200
  }, [files, searchQuery, viewMode, sortBy, sortOrder]);
751
201
  const [photoDimensions, setPhotoDimensions] = useState({});
752
202
  const [loadingDimensions, setLoadingDimensions] = useState(false);
753
- const uploadStartRef = useRef(null);
754
- const MIN_BANNER_MS = 600;
755
203
  // Selection state
756
204
  const [selectedIds, setSelectedIds] = useState(new Set(initialSelectedIds));
757
205
  const [lastSelectedFileId, setLastSelectedFileId] = useState(null);
@@ -857,15 +305,6 @@ const FileManagementScreen = ({
857
305
  onConfirmSelection?.(chosen);
858
306
  onClose?.();
859
307
  }, [selectMode, multiSelect, selectedIds, files, onConfirmSelection, onClose, defaultVisibility, oxyServices, linkContext]);
860
- const endUpload = useCallback(() => {
861
- const started = uploadStartRef.current;
862
- const elapsed = started ? Date.now() - started : MIN_BANNER_MS;
863
- const remaining = elapsed < MIN_BANNER_MS ? MIN_BANNER_MS - elapsed : 0;
864
- setTimeout(() => {
865
- useFileStore.getState().setUploading(false);
866
- uploadStartRef.current = null;
867
- }, remaining);
868
- }, []);
869
308
 
870
309
  // Helper to safely request a thumbnail variant only for image mime types.
871
310
  const getSafeDownloadUrlCallback = useCallback((file, variant = 'thumb') => {
@@ -879,8 +318,6 @@ const FileManagementScreen = ({
879
318
  const backgroundColor = colors.backgroundSecondary;
880
319
  const borderColor = colors.border;
881
320
  const targetUserId = userId || user?.id;
882
- const storeSetUploading = useFileStore(s => s.setUploading);
883
- const storeSetUploadProgress = useFileStore(s => s.setUploadProgress);
884
321
  const storeSetDeleting = useFileStore(s => s.setDeleting);
885
322
  const loadFiles = useCallback(async (mode = 'initial') => {
886
323
  if (!targetUserId) return;
@@ -950,6 +387,31 @@ const FileManagementScreen = ({
950
387
  }
951
388
  }, [targetUserId, oxyServices, paging]);
952
389
 
390
+ // Self-contained document-picking + upload-preview state and handlers.
391
+ const {
392
+ isPickingDocument,
393
+ pendingFiles,
394
+ showUploadPreview,
395
+ handleFileUpload,
396
+ handleConfirmUpload,
397
+ handleCancelUpload,
398
+ removePendingFile
399
+ } = useFileUploadState({
400
+ targetUserId,
401
+ uploadFileMutation,
402
+ defaultVisibility,
403
+ selectMode,
404
+ multiSelect,
405
+ afterSelect,
406
+ onSelect,
407
+ goBack,
408
+ onClose,
409
+ selectedIds,
410
+ setSelectedIds,
411
+ loadFiles,
412
+ t
413
+ });
414
+
953
415
  // Keep a ref to avoid stale closure when calculating next offset
954
416
  const prevPagingRef = useRef(paging);
955
417
  useEffect(() => {
@@ -1028,416 +490,6 @@ const FileManagementScreen = ({
1028
490
  }
1029
491
  return rows;
1030
492
  }, []);
1031
- const processFileUploads = async selectedFiles => {
1032
- if (selectedFiles.length === 0) return [];
1033
- if (!targetUserId) return []; // Guard clause to ensure userId is defined
1034
- const uploadedFiles = [];
1035
- try {
1036
- storeSetUploadProgress({
1037
- current: 0,
1038
- total: selectedFiles.length
1039
- });
1040
- const maxSize = 50 * 1024 * 1024; // 50MB
1041
- const oversizedFiles = selectedFiles.filter(file => candidateSize(file) > maxSize);
1042
- if (oversizedFiles.length > 0) {
1043
- const fileList = oversizedFiles.map(f => candidateName(f, 'file')).join(', ');
1044
- toast.error(t('fileManagement.toasts.filesTooLarge', {
1045
- files: fileList
1046
- }));
1047
- return [];
1048
- }
1049
- let successCount = 0;
1050
- let failureCount = 0;
1051
- const errors = [];
1052
- for (let i = 0; i < selectedFiles.length; i++) {
1053
- storeSetUploadProgress({
1054
- current: i + 1,
1055
- total: selectedFiles.length
1056
- });
1057
- const raw = selectedFiles[i];
1058
- const fileName = candidateName(raw, `file-${i + 1}`);
1059
- const fileSize = candidateSize(raw);
1060
- const fileType = candidateType(raw);
1061
- const optimisticId = `temp-${Date.now()}-${i}-${Math.random().toString(36).substr(2, 9)}`; // Unique ID per file
1062
-
1063
- try {
1064
- // Validate file before upload
1065
- if (!raw || !fileName || fileSize <= 0) {
1066
- const errorMsg = `Invalid file: ${fileName}`;
1067
- if (__DEV__) {
1068
- console.error('Upload validation failed:', {
1069
- file: raw,
1070
- error: errorMsg
1071
- });
1072
- }
1073
- failureCount++;
1074
- errors.push(`${fileName}: Invalid file (missing name or size)`);
1075
- continue;
1076
- }
1077
- const optimisticFile = {
1078
- id: optimisticId,
1079
- filename: fileName,
1080
- contentType: fileType,
1081
- length: fileSize,
1082
- chunkSize: 0,
1083
- uploadDate: new Date().toISOString(),
1084
- metadata: {
1085
- uploading: true
1086
- },
1087
- variants: []
1088
- };
1089
- useFileStore.getState().addFile(optimisticFile, {
1090
- prepend: true
1091
- });
1092
-
1093
- // Use the mutation hook with authentication handling
1094
- const result = await uploadFileMutation.mutateAsync({
1095
- file: raw,
1096
- visibility: defaultVisibility
1097
- });
1098
-
1099
- // Attempt to refresh file list incrementally – fetch single file metadata if API allows
1100
- const f = result?.file ?? result?.files?.[0];
1101
- if (f) {
1102
- const merged = {
1103
- id: f.id,
1104
- filename: f.originalName || f.sha256 || fileName,
1105
- contentType: f.mime || fileType,
1106
- length: f.size || fileSize,
1107
- chunkSize: 0,
1108
- uploadDate: f.createdAt || new Date().toISOString(),
1109
- metadata: f.metadata || {},
1110
- variants: f.variants || []
1111
- };
1112
- // Remove optimistic then add real
1113
- useFileStore.getState().removeFile(optimisticId);
1114
- useFileStore.getState().addFile(merged, {
1115
- prepend: true
1116
- });
1117
- uploadedFiles.push(merged);
1118
- successCount++;
1119
- } else {
1120
- // Fallback: will reconcile on later list refresh
1121
- useFileStore.getState().updateFile(optimisticId, {
1122
- metadata: {
1123
- uploading: false
1124
- }
1125
- });
1126
- if (__DEV__) {
1127
- console.warn('Upload completed but no file data returned:', {
1128
- fileName,
1129
- result
1130
- });
1131
- }
1132
- // Still count as success if upload didn't throw
1133
- successCount++;
1134
- }
1135
- } catch (error) {
1136
- failureCount++;
1137
- const errorMessage = getErrorMessage(error) || 'Upload failed';
1138
- const fullError = `${fileName}: ${errorMessage}`;
1139
- errors.push(fullError);
1140
- if (__DEV__) {
1141
- console.error('File upload failed:', {
1142
- fileName,
1143
- fileSize,
1144
- fileType,
1145
- error: errorMessage,
1146
- stack: error instanceof Error ? error.stack : undefined
1147
- });
1148
- }
1149
-
1150
- // Remove optimistic file on error (use the same optimisticId from above)
1151
- useFileStore.getState().removeFile(optimisticId);
1152
- }
1153
- }
1154
-
1155
- // Show success/error messages
1156
- if (successCount > 0) {
1157
- toast.success(t('fileManagement.toasts.uploadSuccess', {
1158
- count: successCount
1159
- }));
1160
- }
1161
- if (failureCount > 0) {
1162
- // Show detailed error message with first few errors
1163
- const errorDetails = errors.length > 0 ? `\n${errors.slice(0, 3).join('\n')}${errors.length > 3 ? `\n...and ${errors.length - 3} more` : ''}` : '';
1164
- toast.error(`${t('fileManagement.toasts.uploadFailed', {
1165
- count: failureCount
1166
- })}${errorDetails}`);
1167
- }
1168
- // Silent background refresh to ensure metadata/variants updated
1169
- setTimeout(() => {
1170
- loadFiles('silent');
1171
- }, 1200);
1172
- } catch (error) {
1173
- toast.error(getErrorMessage(error) || t('fileManagement.toasts.uploadError'));
1174
- } finally {
1175
- storeSetUploadProgress(null);
1176
- }
1177
- return uploadedFiles;
1178
- };
1179
- const handleFileSelection = useCallback(async selectedFiles => {
1180
- const MAX_FILE_SIZE = 100 * 1024 * 1024; // 100MB
1181
- const processedFiles = [];
1182
- for (const file of selectedFiles) {
1183
- // Validate file has required properties
1184
- if (!file) {
1185
- if (__DEV__) {
1186
- console.error('Invalid file: file is null or undefined');
1187
- }
1188
- toast.error(t('fileManagement.toasts.invalidFileMissing'));
1189
- continue;
1190
- }
1191
- const name = candidateName(file, '');
1192
- if (!name) {
1193
- if (__DEV__) {
1194
- console.error('Invalid file: missing or invalid name property', file);
1195
- }
1196
- toast.error(t('fileManagement.toasts.invalidFileName'));
1197
- continue;
1198
- }
1199
- const size = file.size;
1200
- if (size === undefined || size === null || Number.isNaN(size)) {
1201
- if (__DEV__) {
1202
- console.error('Invalid file: missing or invalid size property', file);
1203
- }
1204
- toast.error(t('fileManagement.toasts.invalidFileSize', {
1205
- name
1206
- }));
1207
- continue;
1208
- }
1209
- if (size <= 0) {
1210
- if (__DEV__) {
1211
- console.error('Invalid file: file size is zero or negative', file);
1212
- }
1213
- toast.error(t('fileManagement.toasts.fileEmpty', {
1214
- name
1215
- }));
1216
- continue;
1217
- }
1218
-
1219
- // Validate file size
1220
- if (size > MAX_FILE_SIZE) {
1221
- toast.error(t('fileManagement.toasts.fileTooLarge', {
1222
- name,
1223
- maxSize: formatFileSize(MAX_FILE_SIZE)
1224
- }));
1225
- continue;
1226
- }
1227
- const fileType = candidateType(file);
1228
-
1229
- // Generate preview for images - unified approach
1230
- let preview;
1231
- if (fileType.startsWith('image/')) {
1232
- // Try to use file URI from expo-document-picker if available (works on all platforms)
1233
- const fileUri = candidateUri(file);
1234
- if (fileUri && (fileUri.startsWith('file://') || fileUri.startsWith('content://') || fileUri.startsWith('http://') || fileUri.startsWith('https://') || fileUri.startsWith('blob:'))) {
1235
- preview = fileUri;
1236
- } else {
1237
- // Fallback: create blob URL if possible (works on web only)
1238
- try {
1239
- if (typeof File !== 'undefined' && file instanceof File || typeof Blob !== 'undefined' && file instanceof Blob) {
1240
- preview = URL.createObjectURL(file);
1241
- }
1242
- } catch (error) {
1243
- if (__DEV__) {
1244
- console.warn('Failed to create preview URL:', error);
1245
- }
1246
- // Preview is optional, continue without it
1247
- }
1248
- }
1249
- }
1250
- processedFiles.push({
1251
- file,
1252
- preview,
1253
- size,
1254
- name,
1255
- type: fileType
1256
- });
1257
- }
1258
- if (processedFiles.length === 0) {
1259
- toast.error(t('fileManagement.toasts.noValidFiles'));
1260
- return;
1261
- }
1262
-
1263
- // Show preview modal for user to review files before upload
1264
- setPendingFiles(processedFiles);
1265
- setShowUploadPreview(true);
1266
- }, [t]);
1267
- const handleConfirmUpload = async () => {
1268
- if (pendingFiles.length === 0) return;
1269
- setShowUploadPreview(false);
1270
- uploadStartRef.current = Date.now();
1271
- storeSetUploading(true);
1272
- storeSetUploadProgress(null);
1273
- try {
1274
- const filesToUpload = pendingFiles.map(pf => pf.file);
1275
- storeSetUploadProgress({
1276
- current: 0,
1277
- total: filesToUpload.length
1278
- });
1279
- const uploadedFiles = await processFileUploads(filesToUpload);
1280
-
1281
- // Cleanup preview URLs
1282
- pendingFiles.forEach(pf => {
1283
- if (pf.preview) {
1284
- URL.revokeObjectURL(pf.preview);
1285
- }
1286
- });
1287
- setPendingFiles([]);
1288
-
1289
- // If in selectMode, automatically select the uploaded file(s)
1290
- if (selectMode && uploadedFiles.length > 0) {
1291
- // Wait a bit for the file store to update and ensure file is available
1292
- setTimeout(() => {
1293
- const fileToSelect = uploadedFiles[0];
1294
- if (!multiSelect && fileToSelect) {
1295
- // Single select mode - directly call onSelect callback
1296
- onSelect?.(fileToSelect);
1297
- if (afterSelect === 'back') {
1298
- goBack?.();
1299
- } else if (afterSelect === 'close') {
1300
- onClose?.();
1301
- }
1302
- } else if (multiSelect) {
1303
- // Multi-select mode - add all uploaded files to selection
1304
- uploadedFiles.forEach(file => {
1305
- if (!selectedIds.has(file.id)) {
1306
- setSelectedIds(prev => new Set(prev).add(file.id));
1307
- }
1308
- });
1309
- }
1310
- }, 500);
1311
- }
1312
- endUpload();
1313
- } catch (error) {
1314
- toast.error(getErrorMessage(error) || t('fileManagement.toasts.uploadError'));
1315
- endUpload();
1316
- }
1317
- };
1318
- const handleCancelUpload = () => {
1319
- // Cleanup preview URLs
1320
- pendingFiles.forEach(pf => {
1321
- if (pf.preview) {
1322
- URL.revokeObjectURL(pf.preview);
1323
- }
1324
- });
1325
- setPendingFiles([]);
1326
- setShowUploadPreview(false);
1327
- };
1328
- const removePendingFile = index => {
1329
- const file = pendingFiles[index];
1330
- if (file.preview) {
1331
- URL.revokeObjectURL(file.preview);
1332
- }
1333
- const updated = pendingFiles.filter((_, i) => i !== index);
1334
- setPendingFiles(updated);
1335
- if (updated.length === 0) {
1336
- setShowUploadPreview(false);
1337
- }
1338
- };
1339
-
1340
- /**
1341
- * Handle file upload - opens document picker and processes selected files
1342
- * Expo 54 compatible - works on web, iOS, and Android
1343
- */
1344
- const handleFileUpload = async () => {
1345
- // Prevent concurrent document picker calls
1346
- if (isPickingDocument) {
1347
- toast.error(t('fileManagement.toasts.waitForSelection'));
1348
- return;
1349
- }
1350
- try {
1351
- setIsPickingDocument(true);
1352
-
1353
- // Lazy load expo-document-picker
1354
- const picker = await loadDocumentPicker();
1355
-
1356
- // Use expo-document-picker (works on all platforms including web)
1357
- // On web, it uses the native file input and provides File objects directly
1358
- const result = await picker.getDocumentAsync({
1359
- type: '*/*',
1360
- multiple: true,
1361
- copyToCacheDirectory: true
1362
- });
1363
- if (result.canceled) {
1364
- setIsPickingDocument(false);
1365
- return;
1366
- }
1367
- if (!result.assets || result.assets.length === 0) {
1368
- setIsPickingDocument(false);
1369
- toast.error(t('fileManagement.toasts.noFilesSelected'));
1370
- return;
1371
- }
1372
-
1373
- // Convert expo document picker results to File-like objects
1374
- // According to Expo 54 docs, expo-document-picker returns assets with:
1375
- // - uri: file URI (file://, content://, or blob URL)
1376
- // - name: file name
1377
- // - size: file size in bytes
1378
- // - mimeType: MIME type of the file
1379
- // - file: (optional) native File object (usually only on web)
1380
- const files = [];
1381
- const errors = [];
1382
-
1383
- // Process files in parallel for better performance
1384
- // This allows multiple files to be converted simultaneously
1385
- const conversionPromises = result.assets.map((doc, index) => convertDocumentPickerAssetToFile(doc, index).then(file => {
1386
- if (file) {
1387
- // Validate file has required properties before adding
1388
- if (!file.name || file.size === undefined) {
1389
- errors.push(`File "${doc.name || 'file'}" is invalid: missing required properties`);
1390
- return null;
1391
- }
1392
- return file;
1393
- }
1394
- return null;
1395
- }).catch(error => {
1396
- errors.push(`File "${doc.name || 'file'}": ${getErrorMessage(error) || 'Failed to process'}`);
1397
- return null;
1398
- }));
1399
- const convertedFiles = await Promise.all(conversionPromises);
1400
-
1401
- // Filter out null values
1402
- for (const file of convertedFiles) {
1403
- if (file) {
1404
- files.push(file);
1405
- }
1406
- }
1407
-
1408
- // Show errors if any
1409
- if (errors.length > 0) {
1410
- const errorMessage = errors.slice(0, 3).join('\n') + (errors.length > 3 ? `\n...and ${errors.length - 3} more` : '');
1411
- toast.error(t('fileManagement.toasts.loadSomeFailed', {
1412
- errors: errorMessage
1413
- }));
1414
- }
1415
-
1416
- // Process successfully converted files
1417
- if (files.length > 0) {
1418
- await handleFileSelection(files);
1419
- } else {
1420
- // Files were selected but none could be converted
1421
- toast.error(t('fileManagement.toasts.noFilesProcessed'));
1422
- }
1423
- } catch (error) {
1424
- if (__DEV__) {
1425
- console.error('File upload error:', error);
1426
- }
1427
- if (getErrorMessage(error)?.includes('expo-document-picker') || getErrorMessage(error)?.includes('Different document picking in progress')) {
1428
- if (getErrorMessage(error)?.includes('Different document picking in progress')) {
1429
- toast.error(t('fileManagement.toasts.waitForSelection'));
1430
- } else {
1431
- toast.error(t('fileManagement.toasts.filePickerNotAvailable'));
1432
- }
1433
- } else {
1434
- toast.error(getErrorMessage(error) || t('fileManagement.toasts.selectFilesFailed'));
1435
- }
1436
- } finally {
1437
- // Always reset the picking state, even if there was an error
1438
- setIsPickingDocument(false);
1439
- }
1440
- };
1441
493
  const confirmFileDelete = useCallback((fileId, filename) => {
1442
494
  setPendingDeleteFile({
1443
495
  id: fileId,
@@ -1916,7 +968,6 @@ const FileManagementScreen = ({
1916
968
  };
1917
969
 
1918
970
  // SettingsListItem-based file items (for 'all' view)
1919
- // biome-ignore lint/suspicious/noExplicitAny: file items have dynamic props
1920
971
  const groupedFileItems = useMemo(() => {
1921
972
  // filteredFiles is already sorted, so just use it directly
1922
973
  const sortedFiles = filteredFiles;
@@ -2652,7 +1703,7 @@ const FileManagementScreen = ({
2652
1703
  }) : t('fileManagement.itemCount_plural', {
2653
1704
  count: filteredFiles.length
2654
1705
  }),
2655
- rightActions: selectMode && multiSelect ? [{
1706
+ actions: selectMode && multiSelect ? [{
2656
1707
  key: 'clear',
2657
1708
  text: t('fileManagement.clear'),
2658
1709
  onPress: () => setSelectedIds(new Set()),
@@ -2878,126 +1929,30 @@ const FileManagementScreen = ({
2878
1929
  children: t('fileManagement.total')
2879
1930
  })]
2880
1931
  })]
2881
- }), viewMode === 'photos' ? renderPhotoGrid() : /*#__PURE__*/_jsx(ScrollView, {
2882
- ref: scrollViewRef,
2883
- style: fileManagementStyles.scrollView,
2884
- contentContainerStyle: fileManagementStyles.scrollContainer,
2885
- refreshControl: /*#__PURE__*/_jsx(RefreshControl, {
2886
- refreshing: refreshing,
2887
- onRefresh: () => loadFiles('refresh'),
2888
- tintColor: colors.primary
2889
- }),
2890
- onScroll: ({
2891
- nativeEvent
2892
- }) => {
2893
- const {
2894
- layoutMeasurement,
2895
- contentOffset,
2896
- contentSize
2897
- } = nativeEvent;
2898
- const distanceFromBottom = contentSize.height - (contentOffset.y + layoutMeasurement.height);
2899
- if (distanceFromBottom < 200 && !paging.loadingMore && paging.hasMore) {
2900
- loadFiles('more');
2901
- }
2902
- },
2903
- scrollEventThrottle: 250,
2904
- children: filteredFiles.length === 0 && searchQuery.length > 0 ? /*#__PURE__*/_jsxs(View, {
2905
- style: fileManagementStyles.emptyState,
2906
- children: [/*#__PURE__*/_jsx(Ionicons, {
2907
- name: "search",
2908
- size: 64,
2909
- color: colors.textTertiary
2910
- }), /*#__PURE__*/_jsx(Text, {
2911
- style: [fileManagementStyles.emptyStateTitle, {
2912
- color: colors.text
2913
- }],
2914
- children: t('fileManagement.noResults.title')
2915
- }), /*#__PURE__*/_jsx(Text, {
2916
- style: [fileManagementStyles.emptyStateDescription, {
2917
- color: colors.textSecondary
2918
- }],
2919
- children: t('fileManagement.noResults.description', {
2920
- query: searchQuery
2921
- })
2922
- }), /*#__PURE__*/_jsxs(TouchableOpacity, {
2923
- style: [fileManagementStyles.emptyStateButton, {
2924
- backgroundColor: colors.primary
2925
- }],
2926
- onPress: () => setSearchQuery(''),
2927
- children: [/*#__PURE__*/_jsx(Ionicons, {
2928
- name: "refresh",
2929
- size: 20,
2930
- color: "#FFFFFF"
2931
- }), /*#__PURE__*/_jsx(Text, {
2932
- style: fileManagementStyles.emptyStateButtonText,
2933
- children: t('fileManagement.clearSearch')
2934
- })]
2935
- })]
2936
- }) : filteredFiles.length === 0 ? renderEmptyState() : /*#__PURE__*/_jsxs(_Fragment, {
2937
- children: [/*#__PURE__*/_jsx(SettingsListGroup, {
2938
- children: groupedFileItems.map(item => /*#__PURE__*/_jsx(SettingsListItem, {
2939
- icon: item.icon,
2940
- title: item.title,
2941
- description: item.description,
2942
- onPress: item.onPress,
2943
- showChevron: false,
2944
- rightElement: item.rightElement
2945
- }, item.id))
2946
- }), paging.loadingMore && /*#__PURE__*/_jsxs(View, {
2947
- style: fileManagementStyles.loadingMoreBar,
2948
- children: [/*#__PURE__*/_jsx(ActivityIndicator, {
2949
- size: "small",
2950
- color: colors.primary
2951
- }), /*#__PURE__*/_jsx(Text, {
2952
- style: [fileManagementStyles.loadingMoreText, {
2953
- color: colors.text
2954
- }],
2955
- children: t('fileManagement.loadingMore')
2956
- })]
2957
- })]
2958
- })
1932
+ }), viewMode === 'photos' ? renderPhotoGrid() : /*#__PURE__*/_jsx(FileListSection, {
1933
+ scrollViewRef: scrollViewRef,
1934
+ filteredFiles: filteredFiles,
1935
+ searchQuery: searchQuery,
1936
+ items: groupedFileItems,
1937
+ paging: paging,
1938
+ refreshing: refreshing,
1939
+ colors: colors,
1940
+ t: t,
1941
+ onRefresh: () => loadFiles('refresh'),
1942
+ onLoadMore: () => loadFiles('more'),
1943
+ onClearSearch: () => setSearchQuery(''),
1944
+ renderEmptyState: renderEmptyState
2959
1945
  }), !selectMode && /*#__PURE__*/_jsx(FileDetailsModal, {
2960
1946
  control: fileDetailsControl,
2961
1947
  file: selectedFile,
2962
1948
  onDownload: handleFileDownload,
2963
1949
  onDelete: confirmFileDelete,
2964
1950
  isOwner: user?.id === targetUserId
2965
- }), !selectMode && uploading && /*#__PURE__*/_jsx(View, {
2966
- style: [fileManagementStyles.uploadBannerContainer, {
2967
- pointerEvents: 'none'
2968
- }],
2969
- children: /*#__PURE__*/_jsxs(View, {
2970
- style: [fileManagementStyles.uploadBanner, {
2971
- backgroundColor: bloomTheme.isDark ? '#222831EE' : '#FFFFFFEE',
2972
- borderColor: colors.border
2973
- }],
2974
- children: [/*#__PURE__*/_jsx(Ionicons, {
2975
- name: "cloud-upload",
2976
- size: 18,
2977
- color: colors.primary
2978
- }), /*#__PURE__*/_jsxs(View, {
2979
- style: fileManagementStyles.uploadBannerContent,
2980
- children: [/*#__PURE__*/_jsxs(Text, {
2981
- style: [fileManagementStyles.uploadBannerText, {
2982
- color: colors.text
2983
- }],
2984
- children: [t('fileManagement.uploading'), uploadProgress ? ` ${uploadProgress.current}/${uploadProgress.total}` : '...']
2985
- }), uploadProgress && uploadProgress.total > 0 && /*#__PURE__*/_jsx(View, {
2986
- style: [fileManagementStyles.uploadProgressBarContainer, {
2987
- backgroundColor: bloomTheme.isDark ? 'rgba(255,255,255,0.1)' : 'rgba(0,0,0,0.1)'
2988
- }],
2989
- children: /*#__PURE__*/_jsx(View, {
2990
- style: [fileManagementStyles.uploadProgressBar, {
2991
- width: `${uploadProgress.current / uploadProgress.total * 100}%`,
2992
- backgroundColor: colors.primary
2993
- }]
2994
- })
2995
- })]
2996
- }), /*#__PURE__*/_jsx(ActivityIndicator, {
2997
- size: "small",
2998
- color: colors.primary
2999
- })]
3000
- })
1951
+ }), !selectMode && uploading && /*#__PURE__*/_jsx(UploadBar, {
1952
+ uploadProgress: uploadProgress,
1953
+ isDark: bloomTheme.isDark,
1954
+ colors: colors,
1955
+ t: t
3001
1956
  }), /*#__PURE__*/_jsx(Dialog, {
3002
1957
  control: fileDeleteDialog,
3003
1958
  title: t('fileManagement.deleteFile') || 'Delete File',