@oxyhq/services 22.9.0 → 22.11.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 (584) hide show
  1. package/lib/commonjs/index.js +24 -5
  2. package/lib/commonjs/index.js.map +1 -1
  3. package/lib/commonjs/ui/components/AvatarCameraBadge.js +42 -0
  4. package/lib/commonjs/ui/components/AvatarCameraBadge.js.map +1 -0
  5. package/lib/commonjs/ui/components/{OxyAccountDialog.js → OxyAccountDialogScreen.js} +55 -133
  6. package/lib/commonjs/ui/components/OxyAccountDialogScreen.js.map +1 -0
  7. package/lib/commonjs/ui/components/OxyAuthChooser.js +657 -88
  8. package/lib/commonjs/ui/components/OxyAuthChooser.js.map +1 -1
  9. package/lib/commonjs/ui/components/OxyConsentScreen.js +1 -1
  10. package/lib/commonjs/ui/components/ProfileButton.js +15 -1
  11. package/lib/commonjs/ui/components/ProfileButton.js.map +1 -1
  12. package/lib/commonjs/ui/components/ProfileSummaryCard.js +3 -23
  13. package/lib/commonjs/ui/components/ProfileSummaryCard.js.map +1 -1
  14. package/lib/commonjs/ui/components/RequireOxyAuth.js +1 -1
  15. package/lib/commonjs/ui/components/SurfaceHeaderAction.js +63 -0
  16. package/lib/commonjs/ui/components/SurfaceHeaderAction.js.map +1 -0
  17. package/lib/commonjs/ui/components/SurfaceScreen.js +91 -8
  18. package/lib/commonjs/ui/components/SurfaceScreen.js.map +1 -1
  19. package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js +46 -29
  20. package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js.map +1 -1
  21. package/lib/commonjs/ui/components/modals/DeleteAccountModal.js +47 -23
  22. package/lib/commonjs/ui/components/modals/DeleteAccountModal.js.map +1 -1
  23. package/lib/commonjs/ui/components/oxyAuthChooserStyles.js +81 -19
  24. package/lib/commonjs/ui/components/oxyAuthChooserStyles.js.map +1 -1
  25. package/lib/commonjs/ui/components/photogrid/JustifiedPhotoGrid.js +83 -23
  26. package/lib/commonjs/ui/components/photogrid/JustifiedPhotoGrid.js.map +1 -1
  27. package/lib/commonjs/ui/components/surfaces/ActionSheetSurface.js +83 -0
  28. package/lib/commonjs/ui/components/surfaces/ActionSheetSurface.js.map +1 -0
  29. package/lib/commonjs/ui/context/OxyContext.js +79 -29
  30. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  31. package/lib/commonjs/ui/hooks/queries/queryKeys.js +18 -1
  32. package/lib/commonjs/ui/hooks/queries/queryKeys.js.map +1 -1
  33. package/lib/commonjs/ui/hooks/queries/useFileQueries.js +129 -0
  34. package/lib/commonjs/ui/hooks/queries/useFileQueries.js.map +1 -0
  35. package/lib/commonjs/ui/hooks/useAvatarPicker.js +38 -55
  36. package/lib/commonjs/ui/hooks/useAvatarPicker.js.map +1 -1
  37. package/lib/commonjs/ui/hooks/useReduceMotion.js +57 -0
  38. package/lib/commonjs/ui/hooks/useReduceMotion.js.map +1 -0
  39. package/lib/commonjs/ui/hooks/useSurfaceHeader.js +46 -0
  40. package/lib/commonjs/ui/hooks/useSurfaceHeader.js.map +1 -0
  41. package/lib/commonjs/ui/hooks/useSwitchableAccounts.js +1 -1
  42. package/lib/commonjs/ui/navigation/accountDialogManager.js +36 -2
  43. package/lib/commonjs/ui/navigation/accountDialogManager.js.map +1 -1
  44. package/lib/commonjs/ui/navigation/bottomSheetManager.js +5 -6
  45. package/lib/commonjs/ui/navigation/bottomSheetManager.js.map +1 -1
  46. package/lib/commonjs/ui/navigation/routes.js +4 -3
  47. package/lib/commonjs/ui/navigation/routes.js.map +1 -1
  48. package/lib/commonjs/ui/navigation/surfaceBackBridge.js +68 -0
  49. package/lib/commonjs/ui/navigation/surfaceBackBridge.js.map +1 -0
  50. package/lib/commonjs/ui/navigation/surfaceNavStack.js +62 -15
  51. package/lib/commonjs/ui/navigation/surfaceNavStack.js.map +1 -1
  52. package/lib/commonjs/ui/navigation/surfaceRegistry.js +84 -19
  53. package/lib/commonjs/ui/navigation/surfaceRegistry.js.map +1 -1
  54. package/lib/commonjs/ui/navigation/surfaces.js +139 -25
  55. package/lib/commonjs/ui/navigation/surfaces.js.map +1 -1
  56. package/lib/commonjs/ui/screens/AccountMembersScreen.js +214 -283
  57. package/lib/commonjs/ui/screens/AccountMembersScreen.js.map +1 -1
  58. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +88 -118
  59. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  60. package/lib/commonjs/ui/screens/AccountVerificationScreen.js +22 -36
  61. package/lib/commonjs/ui/screens/AccountVerificationScreen.js.map +1 -1
  62. package/lib/commonjs/ui/screens/AppInfoScreen.js +219 -226
  63. package/lib/commonjs/ui/screens/AppInfoScreen.js.map +1 -1
  64. package/lib/commonjs/ui/screens/AvatarCropScreen.js +287 -289
  65. package/lib/commonjs/ui/screens/AvatarCropScreen.js.map +1 -1
  66. package/lib/commonjs/ui/screens/ChangeAvatarScreen.js +301 -0
  67. package/lib/commonjs/ui/screens/ChangeAvatarScreen.js.map +1 -0
  68. package/lib/commonjs/ui/screens/ConnectedAppsScreen.js +24 -39
  69. package/lib/commonjs/ui/screens/ConnectedAppsScreen.js.map +1 -1
  70. package/lib/commonjs/ui/screens/CreateAccountScreen.js +136 -158
  71. package/lib/commonjs/ui/screens/CreateAccountScreen.js.map +1 -1
  72. package/lib/commonjs/ui/screens/EditProfileFieldScreen.js +29 -36
  73. package/lib/commonjs/ui/screens/EditProfileFieldScreen.js.map +1 -1
  74. package/lib/commonjs/ui/screens/EditProfileScreen.js +101 -109
  75. package/lib/commonjs/ui/screens/EditProfileScreen.js.map +1 -1
  76. package/lib/commonjs/ui/screens/FAQScreen.js +10 -15
  77. package/lib/commonjs/ui/screens/FAQScreen.js.map +1 -1
  78. package/lib/commonjs/ui/screens/FeedbackScreen.js +8 -16
  79. package/lib/commonjs/ui/screens/FeedbackScreen.js.map +1 -1
  80. package/lib/commonjs/ui/screens/FileManagementScreen.js +403 -627
  81. package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
  82. package/lib/commonjs/ui/screens/HelpSupportScreen.js +62 -69
  83. package/lib/commonjs/ui/screens/HelpSupportScreen.js.map +1 -1
  84. package/lib/commonjs/ui/screens/HistoryViewScreen.js +63 -79
  85. package/lib/commonjs/ui/screens/HistoryViewScreen.js.map +1 -1
  86. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js +69 -98
  87. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js.map +1 -1
  88. package/lib/commonjs/ui/screens/LearnMoreUsernamesScreen.js +8 -14
  89. package/lib/commonjs/ui/screens/LearnMoreUsernamesScreen.js.map +1 -1
  90. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js +77 -94
  91. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js.map +1 -1
  92. package/lib/commonjs/ui/screens/ManageAccountScreen.js +99 -134
  93. package/lib/commonjs/ui/screens/ManageAccountScreen.js.map +1 -1
  94. package/lib/commonjs/ui/screens/NotificationsScreen.js +69 -76
  95. package/lib/commonjs/ui/screens/NotificationsScreen.js.map +1 -1
  96. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js +3 -8
  97. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js.map +1 -1
  98. package/lib/commonjs/ui/screens/PreferencesScreen.js +67 -74
  99. package/lib/commonjs/ui/screens/PreferencesScreen.js.map +1 -1
  100. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +55 -91
  101. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  102. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +291 -304
  103. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
  104. package/lib/commonjs/ui/screens/ProfileScreen.js +100 -114
  105. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
  106. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js +38 -45
  107. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js.map +1 -1
  108. package/lib/commonjs/ui/screens/SearchSettingsScreen.js +44 -57
  109. package/lib/commonjs/ui/screens/SearchSettingsScreen.js.map +1 -1
  110. package/lib/commonjs/ui/screens/UserLinksScreen.js +24 -31
  111. package/lib/commonjs/ui/screens/UserLinksScreen.js.map +1 -1
  112. package/lib/commonjs/ui/screens/UserListScreen.js +14 -24
  113. package/lib/commonjs/ui/screens/UserListScreen.js.map +1 -1
  114. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +16 -48
  115. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  116. package/lib/commonjs/ui/screens/fileManagement/FileLibraryError.js +63 -0
  117. package/lib/commonjs/ui/screens/fileManagement/FileLibraryError.js.map +1 -0
  118. package/lib/commonjs/ui/screens/fileManagement/PhotoPickerSection.js +54 -41
  119. package/lib/commonjs/ui/screens/fileManagement/PhotoPickerSection.js.map +1 -1
  120. package/lib/commonjs/ui/screens/fileManagement/hooks/useFileUploadState.js +44 -81
  121. package/lib/commonjs/ui/screens/fileManagement/hooks/useFileUploadState.js.map +1 -1
  122. package/lib/commonjs/ui/screens/trust/TrustAboutScreen.js +66 -75
  123. package/lib/commonjs/ui/screens/trust/TrustAboutScreen.js.map +1 -1
  124. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js +111 -139
  125. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js.map +1 -1
  126. package/lib/commonjs/ui/screens/trust/TrustFAQScreen.js +13 -20
  127. package/lib/commonjs/ui/screens/trust/TrustFAQScreen.js.map +1 -1
  128. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js +14 -27
  129. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
  130. package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js +68 -85
  131. package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js.map +1 -1
  132. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js +28 -36
  133. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js.map +1 -1
  134. package/lib/commonjs/ui/stores/resetSessionScopedStores.js +8 -3
  135. package/lib/commonjs/ui/stores/resetSessionScopedStores.js.map +1 -1
  136. package/lib/commonjs/ui/utils/avatarUtils.js +11 -2
  137. package/lib/commonjs/ui/utils/avatarUtils.js.map +1 -1
  138. package/lib/commonjs/ui/utils/fileManagement.js +0 -79
  139. package/lib/commonjs/ui/utils/fileManagement.js.map +1 -1
  140. package/lib/module/index.js +12 -5
  141. package/lib/module/index.js.map +1 -1
  142. package/lib/module/ui/components/AvatarCameraBadge.js +40 -0
  143. package/lib/module/ui/components/AvatarCameraBadge.js.map +1 -0
  144. package/lib/module/ui/components/{OxyAccountDialog.js → OxyAccountDialogScreen.js} +57 -135
  145. package/lib/module/ui/components/OxyAccountDialogScreen.js.map +1 -0
  146. package/lib/module/ui/components/OxyAuthChooser.js +659 -91
  147. package/lib/module/ui/components/OxyAuthChooser.js.map +1 -1
  148. package/lib/module/ui/components/OxyConsentScreen.js +1 -1
  149. package/lib/module/ui/components/ProfileButton.js +16 -2
  150. package/lib/module/ui/components/ProfileButton.js.map +1 -1
  151. package/lib/module/ui/components/ProfileSummaryCard.js +2 -23
  152. package/lib/module/ui/components/ProfileSummaryCard.js.map +1 -1
  153. package/lib/module/ui/components/RequireOxyAuth.js +1 -1
  154. package/lib/module/ui/components/SurfaceHeaderAction.js +58 -0
  155. package/lib/module/ui/components/SurfaceHeaderAction.js.map +1 -0
  156. package/lib/module/ui/components/SurfaceScreen.js +93 -10
  157. package/lib/module/ui/components/SurfaceScreen.js.map +1 -1
  158. package/lib/module/ui/components/fileManagement/FileDetailsModal.js +46 -29
  159. package/lib/module/ui/components/fileManagement/FileDetailsModal.js.map +1 -1
  160. package/lib/module/ui/components/modals/DeleteAccountModal.js +46 -23
  161. package/lib/module/ui/components/modals/DeleteAccountModal.js.map +1 -1
  162. package/lib/module/ui/components/oxyAuthChooserStyles.js +81 -19
  163. package/lib/module/ui/components/oxyAuthChooserStyles.js.map +1 -1
  164. package/lib/module/ui/components/photogrid/JustifiedPhotoGrid.js +83 -25
  165. package/lib/module/ui/components/photogrid/JustifiedPhotoGrid.js.map +1 -1
  166. package/lib/module/ui/components/surfaces/ActionSheetSurface.js +78 -0
  167. package/lib/module/ui/components/surfaces/ActionSheetSurface.js.map +1 -0
  168. package/lib/module/ui/context/OxyContext.js +80 -30
  169. package/lib/module/ui/context/OxyContext.js.map +1 -1
  170. package/lib/module/ui/hooks/queries/queryKeys.js +16 -0
  171. package/lib/module/ui/hooks/queries/queryKeys.js.map +1 -1
  172. package/lib/module/ui/hooks/queries/useFileQueries.js +120 -0
  173. package/lib/module/ui/hooks/queries/useFileQueries.js.map +1 -0
  174. package/lib/module/ui/hooks/useAvatarPicker.js +38 -55
  175. package/lib/module/ui/hooks/useAvatarPicker.js.map +1 -1
  176. package/lib/module/ui/hooks/useReduceMotion.js +53 -0
  177. package/lib/module/ui/hooks/useReduceMotion.js.map +1 -0
  178. package/lib/module/ui/hooks/useSurfaceHeader.js +42 -0
  179. package/lib/module/ui/hooks/useSurfaceHeader.js.map +1 -0
  180. package/lib/module/ui/hooks/useSwitchableAccounts.js +1 -1
  181. package/lib/module/ui/navigation/accountDialogManager.js +34 -2
  182. package/lib/module/ui/navigation/accountDialogManager.js.map +1 -1
  183. package/lib/module/ui/navigation/bottomSheetManager.js +6 -7
  184. package/lib/module/ui/navigation/bottomSheetManager.js.map +1 -1
  185. package/lib/module/ui/navigation/routes.js +4 -3
  186. package/lib/module/ui/navigation/routes.js.map +1 -1
  187. package/lib/module/ui/navigation/surfaceBackBridge.js +63 -0
  188. package/lib/module/ui/navigation/surfaceBackBridge.js.map +1 -0
  189. package/lib/module/ui/navigation/surfaceNavStack.js +62 -15
  190. package/lib/module/ui/navigation/surfaceNavStack.js.map +1 -1
  191. package/lib/module/ui/navigation/surfaceRegistry.js +84 -19
  192. package/lib/module/ui/navigation/surfaceRegistry.js.map +1 -1
  193. package/lib/module/ui/navigation/surfaces.js +138 -26
  194. package/lib/module/ui/navigation/surfaces.js.map +1 -1
  195. package/lib/module/ui/screens/AccountMembersScreen.js +218 -286
  196. package/lib/module/ui/screens/AccountMembersScreen.js.map +1 -1
  197. package/lib/module/ui/screens/AccountSettingsScreen.js +92 -121
  198. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  199. package/lib/module/ui/screens/AccountVerificationScreen.js +25 -38
  200. package/lib/module/ui/screens/AccountVerificationScreen.js.map +1 -1
  201. package/lib/module/ui/screens/AppInfoScreen.js +220 -227
  202. package/lib/module/ui/screens/AppInfoScreen.js.map +1 -1
  203. package/lib/module/ui/screens/AvatarCropScreen.js +289 -291
  204. package/lib/module/ui/screens/AvatarCropScreen.js.map +1 -1
  205. package/lib/module/ui/screens/ChangeAvatarScreen.js +298 -0
  206. package/lib/module/ui/screens/ChangeAvatarScreen.js.map +1 -0
  207. package/lib/module/ui/screens/ConnectedAppsScreen.js +26 -40
  208. package/lib/module/ui/screens/ConnectedAppsScreen.js.map +1 -1
  209. package/lib/module/ui/screens/CreateAccountScreen.js +139 -160
  210. package/lib/module/ui/screens/CreateAccountScreen.js.map +1 -1
  211. package/lib/module/ui/screens/EditProfileFieldScreen.js +32 -38
  212. package/lib/module/ui/screens/EditProfileFieldScreen.js.map +1 -1
  213. package/lib/module/ui/screens/EditProfileScreen.js +102 -110
  214. package/lib/module/ui/screens/EditProfileScreen.js.map +1 -1
  215. package/lib/module/ui/screens/FAQScreen.js +11 -15
  216. package/lib/module/ui/screens/FAQScreen.js.map +1 -1
  217. package/lib/module/ui/screens/FeedbackScreen.js +10 -17
  218. package/lib/module/ui/screens/FeedbackScreen.js.map +1 -1
  219. package/lib/module/ui/screens/FileManagementScreen.js +408 -631
  220. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
  221. package/lib/module/ui/screens/HelpSupportScreen.js +64 -70
  222. package/lib/module/ui/screens/HelpSupportScreen.js.map +1 -1
  223. package/lib/module/ui/screens/HistoryViewScreen.js +65 -81
  224. package/lib/module/ui/screens/HistoryViewScreen.js.map +1 -1
  225. package/lib/module/ui/screens/LanguageSelectorScreen.js +71 -99
  226. package/lib/module/ui/screens/LanguageSelectorScreen.js.map +1 -1
  227. package/lib/module/ui/screens/LearnMoreUsernamesScreen.js +10 -15
  228. package/lib/module/ui/screens/LearnMoreUsernamesScreen.js.map +1 -1
  229. package/lib/module/ui/screens/LegalDocumentsScreen.js +78 -94
  230. package/lib/module/ui/screens/LegalDocumentsScreen.js.map +1 -1
  231. package/lib/module/ui/screens/ManageAccountScreen.js +102 -137
  232. package/lib/module/ui/screens/ManageAccountScreen.js.map +1 -1
  233. package/lib/module/ui/screens/NotificationsScreen.js +71 -77
  234. package/lib/module/ui/screens/NotificationsScreen.js.map +1 -1
  235. package/lib/module/ui/screens/PaymentGatewayScreen.js +4 -9
  236. package/lib/module/ui/screens/PaymentGatewayScreen.js.map +1 -1
  237. package/lib/module/ui/screens/PreferencesScreen.js +69 -75
  238. package/lib/module/ui/screens/PreferencesScreen.js.map +1 -1
  239. package/lib/module/ui/screens/PremiumSubscriptionScreen.js +58 -93
  240. package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  241. package/lib/module/ui/screens/PrivacySettingsScreen.js +293 -305
  242. package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
  243. package/lib/module/ui/screens/ProfileScreen.js +102 -116
  244. package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
  245. package/lib/module/ui/screens/SavesCollectionsScreen.js +40 -46
  246. package/lib/module/ui/screens/SavesCollectionsScreen.js.map +1 -1
  247. package/lib/module/ui/screens/SearchSettingsScreen.js +46 -58
  248. package/lib/module/ui/screens/SearchSettingsScreen.js.map +1 -1
  249. package/lib/module/ui/screens/UserLinksScreen.js +26 -32
  250. package/lib/module/ui/screens/UserLinksScreen.js.map +1 -1
  251. package/lib/module/ui/screens/UserListScreen.js +14 -24
  252. package/lib/module/ui/screens/UserListScreen.js.map +1 -1
  253. package/lib/module/ui/screens/WelcomeNewUserScreen.js +17 -49
  254. package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  255. package/lib/module/ui/screens/fileManagement/FileLibraryError.js +59 -0
  256. package/lib/module/ui/screens/fileManagement/FileLibraryError.js.map +1 -0
  257. package/lib/module/ui/screens/fileManagement/PhotoPickerSection.js +54 -42
  258. package/lib/module/ui/screens/fileManagement/PhotoPickerSection.js.map +1 -1
  259. package/lib/module/ui/screens/fileManagement/hooks/useFileUploadState.js +45 -81
  260. package/lib/module/ui/screens/fileManagement/hooks/useFileUploadState.js.map +1 -1
  261. package/lib/module/ui/screens/trust/TrustAboutScreen.js +67 -75
  262. package/lib/module/ui/screens/trust/TrustAboutScreen.js.map +1 -1
  263. package/lib/module/ui/screens/trust/TrustCenterScreen.js +112 -139
  264. package/lib/module/ui/screens/trust/TrustCenterScreen.js.map +1 -1
  265. package/lib/module/ui/screens/trust/TrustFAQScreen.js +15 -21
  266. package/lib/module/ui/screens/trust/TrustFAQScreen.js.map +1 -1
  267. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js +14 -26
  268. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
  269. package/lib/module/ui/screens/trust/TrustRewardsScreen.js +69 -85
  270. package/lib/module/ui/screens/trust/TrustRewardsScreen.js.map +1 -1
  271. package/lib/module/ui/screens/trust/TrustRulesScreen.js +30 -37
  272. package/lib/module/ui/screens/trust/TrustRulesScreen.js.map +1 -1
  273. package/lib/module/ui/stores/resetSessionScopedStores.js +8 -3
  274. package/lib/module/ui/stores/resetSessionScopedStores.js.map +1 -1
  275. package/lib/module/ui/utils/avatarUtils.js +11 -2
  276. package/lib/module/ui/utils/avatarUtils.js.map +1 -1
  277. package/lib/module/ui/utils/fileManagement.js +0 -78
  278. package/lib/module/ui/utils/fileManagement.js.map +1 -1
  279. package/lib/typescript/commonjs/index.d.ts +2 -0
  280. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  281. package/lib/typescript/commonjs/ui/components/AvatarCameraBadge.d.ts +4 -0
  282. package/lib/typescript/commonjs/ui/components/AvatarCameraBadge.d.ts.map +1 -0
  283. package/lib/typescript/{module/ui/components/OxyAccountDialog.d.ts → commonjs/ui/components/OxyAccountDialogScreen.d.ts} +5 -4
  284. package/lib/typescript/commonjs/ui/components/OxyAccountDialogScreen.d.ts.map +1 -0
  285. package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts +3 -3
  286. package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts.map +1 -1
  287. package/lib/typescript/commonjs/ui/components/ProfileButton.d.ts +2 -2
  288. package/lib/typescript/commonjs/ui/components/ProfileButton.d.ts.map +1 -1
  289. package/lib/typescript/commonjs/ui/components/ProfileSummaryCard.d.ts.map +1 -1
  290. package/lib/typescript/commonjs/ui/components/RequireOxyAuth.d.ts +1 -1
  291. package/lib/typescript/commonjs/ui/components/SurfaceHeaderAction.d.ts +16 -0
  292. package/lib/typescript/commonjs/ui/components/SurfaceHeaderAction.d.ts.map +1 -0
  293. package/lib/typescript/commonjs/ui/components/SurfaceScreen.d.ts +3 -4
  294. package/lib/typescript/commonjs/ui/components/SurfaceScreen.d.ts.map +1 -1
  295. package/lib/typescript/commonjs/ui/components/fileManagement/FileDetailsModal.d.ts +14 -4
  296. package/lib/typescript/commonjs/ui/components/fileManagement/FileDetailsModal.d.ts.map +1 -1
  297. package/lib/typescript/commonjs/ui/components/modals/DeleteAccountModal.d.ts +17 -2
  298. package/lib/typescript/commonjs/ui/components/modals/DeleteAccountModal.d.ts.map +1 -1
  299. package/lib/typescript/commonjs/ui/components/oxyAuthChooserStyles.d.ts +75 -13
  300. package/lib/typescript/commonjs/ui/components/oxyAuthChooserStyles.d.ts.map +1 -1
  301. package/lib/typescript/commonjs/ui/components/photogrid/JustifiedPhotoGrid.d.ts +10 -8
  302. package/lib/typescript/commonjs/ui/components/photogrid/JustifiedPhotoGrid.d.ts.map +1 -1
  303. package/lib/typescript/commonjs/ui/components/surfaces/ActionSheetSurface.d.ts +38 -0
  304. package/lib/typescript/commonjs/ui/components/surfaces/ActionSheetSurface.d.ts.map +1 -0
  305. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  306. package/lib/typescript/commonjs/ui/hooks/queries/queryKeys.d.ts +9 -0
  307. package/lib/typescript/commonjs/ui/hooks/queries/queryKeys.d.ts.map +1 -1
  308. package/lib/typescript/commonjs/ui/hooks/queries/useFileQueries.d.ts +50 -0
  309. package/lib/typescript/commonjs/ui/hooks/queries/useFileQueries.d.ts.map +1 -0
  310. package/lib/typescript/commonjs/ui/hooks/useAvatarPicker.d.ts +17 -16
  311. package/lib/typescript/commonjs/ui/hooks/useAvatarPicker.d.ts.map +1 -1
  312. package/lib/typescript/commonjs/ui/hooks/useReduceMotion.d.ts +14 -0
  313. package/lib/typescript/commonjs/ui/hooks/useReduceMotion.d.ts.map +1 -0
  314. package/lib/typescript/commonjs/ui/hooks/useSurfaceHeader.d.ts +31 -0
  315. package/lib/typescript/commonjs/ui/hooks/useSurfaceHeader.d.ts.map +1 -0
  316. package/lib/typescript/commonjs/ui/hooks/useSwitchableAccounts.d.ts +1 -1
  317. package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts +27 -2
  318. package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts.map +1 -1
  319. package/lib/typescript/commonjs/ui/navigation/bottomSheetManager.d.ts +4 -5
  320. package/lib/typescript/commonjs/ui/navigation/bottomSheetManager.d.ts.map +1 -1
  321. package/lib/typescript/commonjs/ui/navigation/routes.d.ts +1 -1
  322. package/lib/typescript/commonjs/ui/navigation/routes.d.ts.map +1 -1
  323. package/lib/typescript/commonjs/ui/navigation/surfaceBackBridge.d.ts +16 -0
  324. package/lib/typescript/commonjs/ui/navigation/surfaceBackBridge.d.ts.map +1 -0
  325. package/lib/typescript/commonjs/ui/navigation/surfaceNavStack.d.ts +21 -0
  326. package/lib/typescript/commonjs/ui/navigation/surfaceNavStack.d.ts.map +1 -1
  327. package/lib/typescript/commonjs/ui/navigation/surfaceRegistry.d.ts +101 -23
  328. package/lib/typescript/commonjs/ui/navigation/surfaceRegistry.d.ts.map +1 -1
  329. package/lib/typescript/commonjs/ui/navigation/surfaces.d.ts +42 -11
  330. package/lib/typescript/commonjs/ui/navigation/surfaces.d.ts.map +1 -1
  331. package/lib/typescript/commonjs/ui/screens/AccountMembersScreen.d.ts.map +1 -1
  332. package/lib/typescript/commonjs/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  333. package/lib/typescript/commonjs/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
  334. package/lib/typescript/commonjs/ui/screens/AppInfoScreen.d.ts.map +1 -1
  335. package/lib/typescript/commonjs/ui/screens/AvatarCropScreen.d.ts +18 -9
  336. package/lib/typescript/commonjs/ui/screens/AvatarCropScreen.d.ts.map +1 -1
  337. package/lib/typescript/commonjs/ui/screens/ChangeAvatarScreen.d.ts +34 -0
  338. package/lib/typescript/commonjs/ui/screens/ChangeAvatarScreen.d.ts.map +1 -0
  339. package/lib/typescript/commonjs/ui/screens/ConnectedAppsScreen.d.ts.map +1 -1
  340. package/lib/typescript/commonjs/ui/screens/CreateAccountScreen.d.ts.map +1 -1
  341. package/lib/typescript/commonjs/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
  342. package/lib/typescript/commonjs/ui/screens/EditProfileScreen.d.ts.map +1 -1
  343. package/lib/typescript/commonjs/ui/screens/FAQScreen.d.ts.map +1 -1
  344. package/lib/typescript/commonjs/ui/screens/FeedbackScreen.d.ts.map +1 -1
  345. package/lib/typescript/commonjs/ui/screens/FileManagementScreen.d.ts.map +1 -1
  346. package/lib/typescript/commonjs/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  347. package/lib/typescript/commonjs/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  348. package/lib/typescript/commonjs/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  349. package/lib/typescript/commonjs/ui/screens/LearnMoreUsernamesScreen.d.ts.map +1 -1
  350. package/lib/typescript/commonjs/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
  351. package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts +1 -1
  352. package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  353. package/lib/typescript/commonjs/ui/screens/NotificationsScreen.d.ts.map +1 -1
  354. package/lib/typescript/commonjs/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  355. package/lib/typescript/commonjs/ui/screens/PreferencesScreen.d.ts.map +1 -1
  356. package/lib/typescript/commonjs/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  357. package/lib/typescript/commonjs/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  358. package/lib/typescript/commonjs/ui/screens/ProfileScreen.d.ts.map +1 -1
  359. package/lib/typescript/commonjs/ui/screens/SavesCollectionsScreen.d.ts.map +1 -1
  360. package/lib/typescript/commonjs/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  361. package/lib/typescript/commonjs/ui/screens/UserLinksScreen.d.ts.map +1 -1
  362. package/lib/typescript/commonjs/ui/screens/UserListScreen.d.ts.map +1 -1
  363. package/lib/typescript/commonjs/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
  364. package/lib/typescript/commonjs/ui/screens/fileManagement/FileLibraryError.d.ts +23 -0
  365. package/lib/typescript/commonjs/ui/screens/fileManagement/FileLibraryError.d.ts.map +1 -0
  366. package/lib/typescript/commonjs/ui/screens/fileManagement/PhotoPickerSection.d.ts +4 -0
  367. package/lib/typescript/commonjs/ui/screens/fileManagement/PhotoPickerSection.d.ts.map +1 -1
  368. package/lib/typescript/commonjs/ui/screens/fileManagement/hooks/useFileUploadState.d.ts +10 -2
  369. package/lib/typescript/commonjs/ui/screens/fileManagement/hooks/useFileUploadState.d.ts.map +1 -1
  370. package/lib/typescript/commonjs/ui/screens/trust/TrustAboutScreen.d.ts.map +1 -1
  371. package/lib/typescript/commonjs/ui/screens/trust/TrustCenterScreen.d.ts.map +1 -1
  372. package/lib/typescript/commonjs/ui/screens/trust/TrustFAQScreen.d.ts.map +1 -1
  373. package/lib/typescript/commonjs/ui/screens/trust/TrustLeaderboardScreen.d.ts.map +1 -1
  374. package/lib/typescript/commonjs/ui/screens/trust/TrustRewardsScreen.d.ts.map +1 -1
  375. package/lib/typescript/commonjs/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
  376. package/lib/typescript/commonjs/ui/stores/resetSessionScopedStores.d.ts +8 -1
  377. package/lib/typescript/commonjs/ui/stores/resetSessionScopedStores.d.ts.map +1 -1
  378. package/lib/typescript/commonjs/ui/types/navigation.d.ts +10 -0
  379. package/lib/typescript/commonjs/ui/types/navigation.d.ts.map +1 -1
  380. package/lib/typescript/commonjs/ui/utils/avatarUtils.d.ts.map +1 -1
  381. package/lib/typescript/commonjs/ui/utils/fileManagement.d.ts +0 -48
  382. package/lib/typescript/commonjs/ui/utils/fileManagement.d.ts.map +1 -1
  383. package/lib/typescript/module/index.d.ts +2 -0
  384. package/lib/typescript/module/index.d.ts.map +1 -1
  385. package/lib/typescript/module/ui/components/AvatarCameraBadge.d.ts +4 -0
  386. package/lib/typescript/module/ui/components/AvatarCameraBadge.d.ts.map +1 -0
  387. package/lib/typescript/{commonjs/ui/components/OxyAccountDialog.d.ts → module/ui/components/OxyAccountDialogScreen.d.ts} +5 -4
  388. package/lib/typescript/module/ui/components/OxyAccountDialogScreen.d.ts.map +1 -0
  389. package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts +3 -3
  390. package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts.map +1 -1
  391. package/lib/typescript/module/ui/components/ProfileButton.d.ts +2 -2
  392. package/lib/typescript/module/ui/components/ProfileButton.d.ts.map +1 -1
  393. package/lib/typescript/module/ui/components/ProfileSummaryCard.d.ts.map +1 -1
  394. package/lib/typescript/module/ui/components/RequireOxyAuth.d.ts +1 -1
  395. package/lib/typescript/module/ui/components/SurfaceHeaderAction.d.ts +16 -0
  396. package/lib/typescript/module/ui/components/SurfaceHeaderAction.d.ts.map +1 -0
  397. package/lib/typescript/module/ui/components/SurfaceScreen.d.ts +3 -4
  398. package/lib/typescript/module/ui/components/SurfaceScreen.d.ts.map +1 -1
  399. package/lib/typescript/module/ui/components/fileManagement/FileDetailsModal.d.ts +14 -4
  400. package/lib/typescript/module/ui/components/fileManagement/FileDetailsModal.d.ts.map +1 -1
  401. package/lib/typescript/module/ui/components/modals/DeleteAccountModal.d.ts +17 -2
  402. package/lib/typescript/module/ui/components/modals/DeleteAccountModal.d.ts.map +1 -1
  403. package/lib/typescript/module/ui/components/oxyAuthChooserStyles.d.ts +75 -13
  404. package/lib/typescript/module/ui/components/oxyAuthChooserStyles.d.ts.map +1 -1
  405. package/lib/typescript/module/ui/components/photogrid/JustifiedPhotoGrid.d.ts +10 -8
  406. package/lib/typescript/module/ui/components/photogrid/JustifiedPhotoGrid.d.ts.map +1 -1
  407. package/lib/typescript/module/ui/components/surfaces/ActionSheetSurface.d.ts +38 -0
  408. package/lib/typescript/module/ui/components/surfaces/ActionSheetSurface.d.ts.map +1 -0
  409. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  410. package/lib/typescript/module/ui/hooks/queries/queryKeys.d.ts +9 -0
  411. package/lib/typescript/module/ui/hooks/queries/queryKeys.d.ts.map +1 -1
  412. package/lib/typescript/module/ui/hooks/queries/useFileQueries.d.ts +50 -0
  413. package/lib/typescript/module/ui/hooks/queries/useFileQueries.d.ts.map +1 -0
  414. package/lib/typescript/module/ui/hooks/useAvatarPicker.d.ts +17 -16
  415. package/lib/typescript/module/ui/hooks/useAvatarPicker.d.ts.map +1 -1
  416. package/lib/typescript/module/ui/hooks/useReduceMotion.d.ts +14 -0
  417. package/lib/typescript/module/ui/hooks/useReduceMotion.d.ts.map +1 -0
  418. package/lib/typescript/module/ui/hooks/useSurfaceHeader.d.ts +31 -0
  419. package/lib/typescript/module/ui/hooks/useSurfaceHeader.d.ts.map +1 -0
  420. package/lib/typescript/module/ui/hooks/useSwitchableAccounts.d.ts +1 -1
  421. package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts +27 -2
  422. package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts.map +1 -1
  423. package/lib/typescript/module/ui/navigation/bottomSheetManager.d.ts +4 -5
  424. package/lib/typescript/module/ui/navigation/bottomSheetManager.d.ts.map +1 -1
  425. package/lib/typescript/module/ui/navigation/routes.d.ts +1 -1
  426. package/lib/typescript/module/ui/navigation/routes.d.ts.map +1 -1
  427. package/lib/typescript/module/ui/navigation/surfaceBackBridge.d.ts +16 -0
  428. package/lib/typescript/module/ui/navigation/surfaceBackBridge.d.ts.map +1 -0
  429. package/lib/typescript/module/ui/navigation/surfaceNavStack.d.ts +21 -0
  430. package/lib/typescript/module/ui/navigation/surfaceNavStack.d.ts.map +1 -1
  431. package/lib/typescript/module/ui/navigation/surfaceRegistry.d.ts +101 -23
  432. package/lib/typescript/module/ui/navigation/surfaceRegistry.d.ts.map +1 -1
  433. package/lib/typescript/module/ui/navigation/surfaces.d.ts +42 -11
  434. package/lib/typescript/module/ui/navigation/surfaces.d.ts.map +1 -1
  435. package/lib/typescript/module/ui/screens/AccountMembersScreen.d.ts.map +1 -1
  436. package/lib/typescript/module/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  437. package/lib/typescript/module/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
  438. package/lib/typescript/module/ui/screens/AppInfoScreen.d.ts.map +1 -1
  439. package/lib/typescript/module/ui/screens/AvatarCropScreen.d.ts +18 -9
  440. package/lib/typescript/module/ui/screens/AvatarCropScreen.d.ts.map +1 -1
  441. package/lib/typescript/module/ui/screens/ChangeAvatarScreen.d.ts +34 -0
  442. package/lib/typescript/module/ui/screens/ChangeAvatarScreen.d.ts.map +1 -0
  443. package/lib/typescript/module/ui/screens/ConnectedAppsScreen.d.ts.map +1 -1
  444. package/lib/typescript/module/ui/screens/CreateAccountScreen.d.ts.map +1 -1
  445. package/lib/typescript/module/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
  446. package/lib/typescript/module/ui/screens/EditProfileScreen.d.ts.map +1 -1
  447. package/lib/typescript/module/ui/screens/FAQScreen.d.ts.map +1 -1
  448. package/lib/typescript/module/ui/screens/FeedbackScreen.d.ts.map +1 -1
  449. package/lib/typescript/module/ui/screens/FileManagementScreen.d.ts.map +1 -1
  450. package/lib/typescript/module/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  451. package/lib/typescript/module/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  452. package/lib/typescript/module/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  453. package/lib/typescript/module/ui/screens/LearnMoreUsernamesScreen.d.ts.map +1 -1
  454. package/lib/typescript/module/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
  455. package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts +1 -1
  456. package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  457. package/lib/typescript/module/ui/screens/NotificationsScreen.d.ts.map +1 -1
  458. package/lib/typescript/module/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  459. package/lib/typescript/module/ui/screens/PreferencesScreen.d.ts.map +1 -1
  460. package/lib/typescript/module/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  461. package/lib/typescript/module/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  462. package/lib/typescript/module/ui/screens/ProfileScreen.d.ts.map +1 -1
  463. package/lib/typescript/module/ui/screens/SavesCollectionsScreen.d.ts.map +1 -1
  464. package/lib/typescript/module/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  465. package/lib/typescript/module/ui/screens/UserLinksScreen.d.ts.map +1 -1
  466. package/lib/typescript/module/ui/screens/UserListScreen.d.ts.map +1 -1
  467. package/lib/typescript/module/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
  468. package/lib/typescript/module/ui/screens/fileManagement/FileLibraryError.d.ts +23 -0
  469. package/lib/typescript/module/ui/screens/fileManagement/FileLibraryError.d.ts.map +1 -0
  470. package/lib/typescript/module/ui/screens/fileManagement/PhotoPickerSection.d.ts +4 -0
  471. package/lib/typescript/module/ui/screens/fileManagement/PhotoPickerSection.d.ts.map +1 -1
  472. package/lib/typescript/module/ui/screens/fileManagement/hooks/useFileUploadState.d.ts +10 -2
  473. package/lib/typescript/module/ui/screens/fileManagement/hooks/useFileUploadState.d.ts.map +1 -1
  474. package/lib/typescript/module/ui/screens/trust/TrustAboutScreen.d.ts.map +1 -1
  475. package/lib/typescript/module/ui/screens/trust/TrustCenterScreen.d.ts.map +1 -1
  476. package/lib/typescript/module/ui/screens/trust/TrustFAQScreen.d.ts.map +1 -1
  477. package/lib/typescript/module/ui/screens/trust/TrustLeaderboardScreen.d.ts.map +1 -1
  478. package/lib/typescript/module/ui/screens/trust/TrustRewardsScreen.d.ts.map +1 -1
  479. package/lib/typescript/module/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
  480. package/lib/typescript/module/ui/stores/resetSessionScopedStores.d.ts +8 -1
  481. package/lib/typescript/module/ui/stores/resetSessionScopedStores.d.ts.map +1 -1
  482. package/lib/typescript/module/ui/types/navigation.d.ts +10 -0
  483. package/lib/typescript/module/ui/types/navigation.d.ts.map +1 -1
  484. package/lib/typescript/module/ui/utils/avatarUtils.d.ts.map +1 -1
  485. package/lib/typescript/module/ui/utils/fileManagement.d.ts +0 -48
  486. package/lib/typescript/module/ui/utils/fileManagement.d.ts.map +1 -1
  487. package/package.json +9 -5
  488. package/src/index.ts +12 -5
  489. package/src/ui/components/AvatarCameraBadge.tsx +35 -0
  490. package/src/ui/components/{OxyAccountDialog.tsx → OxyAccountDialogScreen.tsx} +50 -116
  491. package/src/ui/components/OxyAuthChooser.tsx +743 -86
  492. package/src/ui/components/OxyConsentScreen.tsx +1 -1
  493. package/src/ui/components/ProfileButton.tsx +18 -3
  494. package/src/ui/components/ProfileSummaryCard.tsx +2 -25
  495. package/src/ui/components/RequireOxyAuth.tsx +1 -1
  496. package/src/ui/components/SurfaceHeaderAction.tsx +60 -0
  497. package/src/ui/components/SurfaceScreen.tsx +108 -14
  498. package/src/ui/components/fileManagement/FileDetailsModal.tsx +50 -36
  499. package/src/ui/components/modals/DeleteAccountModal.tsx +47 -26
  500. package/src/ui/components/oxyAuthChooserStyles.ts +78 -16
  501. package/src/ui/components/photogrid/JustifiedPhotoGrid.tsx +158 -84
  502. package/src/ui/components/photogrid/__tests__/chunkPhotos.test.ts +51 -0
  503. package/src/ui/components/surfaces/ActionSheetSurface.tsx +98 -0
  504. package/src/ui/context/OxyContext.tsx +79 -25
  505. package/src/ui/hooks/queries/queryKeys.ts +15 -0
  506. package/src/ui/hooks/queries/useFileQueries.ts +162 -0
  507. package/src/ui/hooks/useAvatarPicker.ts +46 -74
  508. package/src/ui/hooks/useReduceMotion.ts +58 -0
  509. package/src/ui/hooks/useSurfaceHeader.ts +57 -0
  510. package/src/ui/hooks/useSwitchableAccounts.ts +1 -1
  511. package/src/ui/navigation/__tests__/getSurfaceConfig.test.ts +55 -7
  512. package/src/ui/navigation/__tests__/surfaceNavStack.test.ts +149 -0
  513. package/src/ui/navigation/accountDialogManager.ts +42 -2
  514. package/src/ui/navigation/bottomSheetManager.ts +6 -7
  515. package/src/ui/navigation/routes.ts +6 -4
  516. package/src/ui/navigation/surfaceBackBridge.ts +69 -0
  517. package/src/ui/navigation/surfaceNavStack.ts +72 -9
  518. package/src/ui/navigation/surfaceRegistry.ts +164 -24
  519. package/src/ui/navigation/surfaces.ts +137 -30
  520. package/src/ui/screens/AccountMembersScreen.tsx +39 -100
  521. package/src/ui/screens/AccountSettingsScreen.tsx +32 -54
  522. package/src/ui/screens/AccountVerificationScreen.tsx +23 -51
  523. package/src/ui/screens/AppInfoScreen.tsx +6 -13
  524. package/src/ui/screens/AvatarCropScreen.tsx +340 -311
  525. package/src/ui/screens/ChangeAvatarScreen.tsx +359 -0
  526. package/src/ui/screens/ConnectedAppsScreen.tsx +39 -60
  527. package/src/ui/screens/CreateAccountScreen.tsx +13 -39
  528. package/src/ui/screens/EditProfileFieldScreen.tsx +30 -48
  529. package/src/ui/screens/EditProfileScreen.tsx +7 -16
  530. package/src/ui/screens/FAQScreen.tsx +9 -13
  531. package/src/ui/screens/FeedbackScreen.tsx +8 -22
  532. package/src/ui/screens/FileManagementScreen.tsx +370 -610
  533. package/src/ui/screens/HelpSupportScreen.tsx +7 -13
  534. package/src/ui/screens/HistoryViewScreen.tsx +26 -31
  535. package/src/ui/screens/LanguageSelectorScreen.tsx +12 -46
  536. package/src/ui/screens/LearnMoreUsernamesScreen.tsx +8 -16
  537. package/src/ui/screens/LegalDocumentsScreen.tsx +7 -22
  538. package/src/ui/screens/ManageAccountScreen.tsx +96 -165
  539. package/src/ui/screens/NotificationsScreen.tsx +7 -13
  540. package/src/ui/screens/PaymentGatewayScreen.tsx +3 -10
  541. package/src/ui/screens/PreferencesScreen.tsx +7 -13
  542. package/src/ui/screens/PremiumSubscriptionScreen.tsx +52 -90
  543. package/src/ui/screens/PrivacySettingsScreen.tsx +9 -21
  544. package/src/ui/screens/ProfileScreen.tsx +9 -11
  545. package/src/ui/screens/SavesCollectionsScreen.tsx +7 -13
  546. package/src/ui/screens/SearchSettingsScreen.tsx +9 -21
  547. package/src/ui/screens/UserLinksScreen.tsx +7 -14
  548. package/src/ui/screens/UserListScreen.tsx +2 -5
  549. package/src/ui/screens/WelcomeNewUserScreen.tsx +18 -48
  550. package/src/ui/screens/fileManagement/FileLibraryError.tsx +56 -0
  551. package/src/ui/screens/fileManagement/PhotoPickerSection.tsx +56 -46
  552. package/src/ui/screens/fileManagement/hooks/useFileUploadState.ts +55 -71
  553. package/src/ui/screens/trust/TrustAboutScreen.tsx +10 -17
  554. package/src/ui/screens/trust/TrustCenterScreen.tsx +9 -28
  555. package/src/ui/screens/trust/TrustFAQScreen.tsx +15 -18
  556. package/src/ui/screens/trust/TrustLeaderboardScreen.tsx +3 -5
  557. package/src/ui/screens/trust/TrustRewardsScreen.tsx +11 -26
  558. package/src/ui/screens/trust/TrustRulesScreen.tsx +10 -13
  559. package/src/ui/stores/resetSessionScopedStores.ts +8 -3
  560. package/src/ui/types/navigation.ts +10 -0
  561. package/src/ui/utils/avatarUtils.ts +11 -2
  562. package/src/ui/utils/fileManagement.ts +1 -101
  563. package/lib/commonjs/ui/components/Header.js +0 -305
  564. package/lib/commonjs/ui/components/Header.js.map +0 -1
  565. package/lib/commonjs/ui/components/OxyAccountDialog.js.map +0 -1
  566. package/lib/commonjs/ui/stores/fileStore.js +0 -153
  567. package/lib/commonjs/ui/stores/fileStore.js.map +0 -1
  568. package/lib/module/ui/components/Header.js +0 -299
  569. package/lib/module/ui/components/Header.js.map +0 -1
  570. package/lib/module/ui/components/OxyAccountDialog.js.map +0 -1
  571. package/lib/module/ui/stores/fileStore.js +0 -145
  572. package/lib/module/ui/stores/fileStore.js.map +0 -1
  573. package/lib/typescript/commonjs/ui/components/Header.d.ts +0 -33
  574. package/lib/typescript/commonjs/ui/components/Header.d.ts.map +0 -1
  575. package/lib/typescript/commonjs/ui/components/OxyAccountDialog.d.ts.map +0 -1
  576. package/lib/typescript/commonjs/ui/stores/fileStore.d.ts +0 -31
  577. package/lib/typescript/commonjs/ui/stores/fileStore.d.ts.map +0 -1
  578. package/lib/typescript/module/ui/components/Header.d.ts +0 -33
  579. package/lib/typescript/module/ui/components/Header.d.ts.map +0 -1
  580. package/lib/typescript/module/ui/components/OxyAccountDialog.d.ts.map +0 -1
  581. package/lib/typescript/module/ui/stores/fileStore.d.ts +0 -31
  582. package/lib/typescript/module/ui/stores/fileStore.d.ts.map +0 -1
  583. package/src/ui/components/Header.tsx +0 -224
  584. package/src/ui/stores/fileStore.ts +0 -118
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useEffect","useMemo","StyleSheet","Text","View","useStore","useTheme","getScreenComponent","closeAllRouteSurfaces","navigateWithinOrPresent","presentRoute","replaceWithinOrPresent","jsx","_jsx","jsxs","_jsxs","ScreenErrorBoundary","Component","state","error","getDerivedStateFromError","componentDidCatch","info","__DEV__","console","props","screenName","componentStack","componentDidUpdate","prevProps","setState","render","style","errorStyles","container","children","title","message","create","flex","alignItems","justifyContent","padding","fontSize","fontWeight","marginBottom","textAlign","SurfaceScreen","navStack","surface","presentation","theme","store","top","frames","length","closing","dismiss","closeResult","ScreenComponent","route","navigate","replace","result","requestDismiss","canGoBack","setStep","step","goBack","current","getTop","present","screenProps","initialStep","_omitInitialStep","rest","onStepChange","currentScreen","onClose","onAuthenticated","mode"],"sourceRoot":"../../../../src","sources":["ui/components/SurfaceScreen.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,SAAS,EAAEC,OAAO,QAAwB,OAAO;AAC9E,SAASC,UAAU,EAAEC,IAAI,EAAEC,IAAI,QAAQ,cAAc;AACrD,SAASC,QAAQ,QAAQ,SAAS;AAClC,SAASC,QAAQ,QAAQ,oBAAoB;AAG7C,SAASC,kBAAkB,QAAQ,yBAAsB;AAGzD,SACEC,qBAAqB,EACrBC,uBAAuB,EACvBC,YAAY,EACZC,sBAAsB,QACjB,2BAAwB;;AAG/B;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAKA,MAAMC,mBAAmB,SAASlB,KAAK,CAACmB,SAAS,CAG/C;EACAC,KAAK,GAA6B;IAAEC,KAAK,EAAE;EAAK,CAAC;EAEjD,OAAOC,wBAAwBA,CAACD,KAAY,EAA4B;IACtE,OAAO;MAAEA;IAAM,CAAC;EAClB;EAEAE,iBAAiBA,CAACF,KAAY,EAAEG,IAAe,EAAQ;IACrD,IAAIC,OAAO,EAAE;MACXC,OAAO,CAACL,KAAK,CACX,2BAA2B,IAAI,CAACM,KAAK,CAACC,UAAU,YAAY,EAC5DP,KAAK,EACLG,IAAI,CAACK,cACP,CAAC;IACH;EACF;EAEAC,kBAAkBA,CAACC,SAAiC,EAAQ;IAC1D,IAAIA,SAAS,CAACH,UAAU,KAAK,IAAI,CAACD,KAAK,CAACC,UAAU,IAAI,IAAI,CAACR,KAAK,CAACC,KAAK,EAAE;MACtE,IAAI,CAACW,QAAQ,CAAC;QAAEX,KAAK,EAAE;MAAK,CAAC,CAAC;IAChC;EACF;EAEAY,MAAMA,CAAA,EAAoB;IACxB,IAAI,IAAI,CAACb,KAAK,CAACC,KAAK,EAAE;MACpB,oBACEJ,KAAA,CAACX,IAAI;QAAC4B,KAAK,EAAEC,WAAW,CAACC,SAAU;QAAAC,QAAA,gBACjCtB,IAAA,CAACV,IAAI;UAAC6B,KAAK,EAAEC,WAAW,CAACG,KAAM;UAAAD,QAAA,EAAC;QAAoB,CAAM,CAAC,EAC1DZ,OAAO,iBAAIV,IAAA,CAACV,IAAI;UAAC6B,KAAK,EAAEC,WAAW,CAACI,OAAQ;UAAAF,QAAA,EAAE,IAAI,CAACjB,KAAK,CAACC,KAAK,CAACkB;QAAO,CAAO,CAAC;MAAA,CAC3E,CAAC;IAEX;IACA,OAAO,IAAI,CAACZ,KAAK,CAACU,QAAQ;EAC5B;AACF;AAEA,MAAMF,WAAW,GAAG/B,UAAU,CAACoC,MAAM,CAAC;EACpCJ,SAAS,EAAE;IAAEK,IAAI,EAAE,CAAC;IAAEC,UAAU,EAAE,QAAQ;IAAEC,cAAc,EAAE,QAAQ;IAAEC,OAAO,EAAE;EAAG,CAAC;EACnFN,KAAK,EAAE;IAAEO,QAAQ,EAAE,EAAE;IAAEC,UAAU,EAAE,KAAK;IAAEC,YAAY,EAAE;EAAE,CAAC;EAC3DR,OAAO,EAAE;IAAEM,QAAQ,EAAE,EAAE;IAAEG,SAAS,EAAE;EAAS;AAC/C,CAAC,CAAC;AAWF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,aAAaA,CAAC;EAAEC,QAAQ;EAAEC,OAAO;EAAEC;AAAiC,CAAC,EAAE;EAC9E,MAAMC,KAAK,GAAG7C,QAAQ,CAAC,CAAC;EACxB,MAAMY,KAAK,GAAGb,QAAQ,CAAC2C,QAAQ,CAACI,KAAK,CAAC;EACtC,MAAMC,GAAG,GAAGnC,KAAK,CAACoC,MAAM,CAACpC,KAAK,CAACoC,MAAM,CAACC,MAAM,GAAG,CAAC,CAAC;EAEjDvD,SAAS,CAAC,MAAM;IACd,IAAIkB,KAAK,CAACsC,OAAO,EAAEP,OAAO,CAACQ,OAAO,CAACvC,KAAK,CAACwC,WAAW,CAAC;EACvD,CAAC,EAAE,CAACxC,KAAK,CAACsC,OAAO,EAAEtC,KAAK,CAACwC,WAAW,EAAET,OAAO,CAAC,CAAC;EAE/C,MAAMU,eAAe,GAAG1D,OAAO,CAAC,MAAMM,kBAAkB,CAAC8C,GAAG,CAACO,KAAK,CAAC,IAAI,IAAI,EAAE,CAACP,GAAG,CAACO,KAAK,CAAC,CAAC;EAEzF,MAAMC,QAAQ,GAAG9D,WAAW,CAC1B,CAAC6D,KAAgB,EAAEnC,KAA+B,KAChDhB,uBAAuB,CAACyC,YAAY,EAAEF,QAAQ,EAAEY,KAAK,EAAEnC,KAAK,CAAC,EAC/D,CAACuB,QAAQ,EAAEE,YAAY,CACzB,CAAC;EAED,MAAMY,OAAO,GAAG/D,WAAW,CACzB,CAAC6D,KAAgB,EAAEnC,KAA+B,KAChDd,sBAAsB,CAACuC,YAAY,EAAEF,QAAQ,EAAEY,KAAK,EAAEnC,KAAK,CAAC,EAC9D,CAACuB,QAAQ,EAAEE,YAAY,CACzB,CAAC;EAED,MAAMO,OAAO,GAAG1D,WAAW,CAAEgE,MAAgB,IAAKf,QAAQ,CAACgB,cAAc,CAACD,MAAM,CAAC,EAAE,CAACf,QAAQ,CAAC,CAAC;EAE9F,MAAMiB,SAAS,GAAGlE,WAAW,CAAC,MAAMiD,QAAQ,CAACiB,SAAS,CAAC,CAAC,EAAE,CAACjB,QAAQ,CAAC,CAAC;EAErE,MAAMkB,OAAO,GAAGnE,WAAW,CAAEoE,IAAY,IAAKnB,QAAQ,CAACkB,OAAO,CAACC,IAAI,CAAC,EAAE,CAACnB,QAAQ,CAAC,CAAC;;EAEjF;EACA;EACA,MAAMoB,MAAM,GAAGrE,WAAW,CAAC,MAAY;IACrC,IAAIiD,QAAQ,CAACoB,MAAM,CAAC,CAAC,EAAE;IACvB,MAAMC,OAAO,GAAGrB,QAAQ,CAACsB,MAAM,CAAC,CAAC;IACjC,IAAID,OAAO,CAACF,IAAI,GAAG,CAAC,EAAE;MACpBnB,QAAQ,CAACkB,OAAO,CAACG,OAAO,CAACF,IAAI,GAAG,CAAC,CAAC;MAClC;IACF;IACAnB,QAAQ,CAACgB,cAAc,CAAC,CAAC;EAC3B,CAAC,EAAE,CAAChB,QAAQ,CAAC,CAAC;EAEd,MAAMuB,OAAO,GAAGxE,WAAW,CACzB,CAAC6D,KAAgB,EAAEnC,KAA+B,KAAKf,YAAY,CAACkD,KAAK,EAAEnC,KAAK,CAAC,CAACsC,MAAM,EACxF,EACF,CAAC;EAED,MAAMS,WAAW,GAAGvE,OAAO,CAAkB,MAAM;IACjD,MAAM;MAAEwE,WAAW,EAAEC,gBAAgB;MAAE,GAAGC;IAAK,CAAC,GAAGtB,GAAG,CAAC5B,KAAK;IAC5D,OAAO;MACL;MACAoC,QAAQ;MACRO,MAAM;MACNN,OAAO;MACPG,SAAS;MACTQ,WAAW,EAAEpB,GAAG,CAACc,IAAI;MACrBA,IAAI,EAAEd,GAAG,CAACc,IAAI;MACdS,YAAY,EAAEV,OAAO;MACrBA,OAAO;MACPW,aAAa,EAAExB,GAAG,CAACO,KAAK;MACxB;MACA;MACAkB,OAAO,EAAEtE,qBAAqB;MAC9BuE,eAAe,EAAEvE,qBAAqB;MACtCiD,OAAO;MACPc,OAAO;MACP;MACApB,KAAK,EAAEA,KAAK,CAAC6B,IAAI;MACjB,GAAGL;IACL,CAAC;EACH,CAAC,EAAE,CAACd,QAAQ,EAAEO,MAAM,EAAEN,OAAO,EAAEG,SAAS,EAAEC,OAAO,EAAEK,OAAO,EAAEd,OAAO,EAAEN,KAAK,CAAC6B,IAAI,EAAE3B,GAAG,CAACO,KAAK,EAAEP,GAAG,CAACc,IAAI,EAAEd,GAAG,CAAC5B,KAAK,CAAC,CAAC;EAEjH,IAAI,CAACkC,eAAe,EAAE,OAAO,IAAI;EAEjC,oBACE9C,IAAA,CAACG,mBAAmB;IAACU,UAAU,EAAE2B,GAAG,CAACO,KAAM;IAAAzB,QAAA,eACzCtB,IAAA,CAAC8C,eAAe;MAAA,GAAKa;IAAW,CAAG;EAAC,CACjB,CAAC;AAE1B;AAEA,eAAezB,aAAa","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useEffect","useMemo","useState","StyleSheet","Text","View","useWindowDimensions","useStore","useTheme","useDialogFrame","useDialogHeader","getScreenComponent","pushSurfaceBackHandler","getSurfaceConfig","closeAllRouteSurfaces","navigateWithinOrPresent","presentRoute","replaceWithinOrPresent","SurfaceHeaderContext","jsx","_jsx","jsxs","_jsxs","ScreenErrorBoundary","Component","state","error","getDerivedStateFromError","componentDidCatch","info","__DEV__","console","props","screenName","componentStack","componentDidUpdate","prevProps","setState","render","style","errorStyles","container","children","title","message","create","flex","alignItems","justifyContent","padding","fontSize","fontWeight","marginBottom","textAlign","SurfaceScreen","navStack","surface","dismissOnBackdrop","theme","store","top","frames","length","closing","dismiss","closeResult","ScreenComponent","route","navigate","replace","result","resolveFlowOrDismiss","canGoBack","setStep","step","goBack","current","getTop","requestDismiss","handleSystemBack","present","headerContent","setHeaderContent","headerContext","setContent","config","headerMode","header","height","viewportHeight","frameSize","spec","undefined","heightRatio","Math","round","maxWidth","key","morph","size","canGoBackNow","dialogHeader","largeTitle","onBack","screenProps","initialStep","_omitInitialStep","rest","onStepChange","currentScreen","onClose","onAuthenticated","mode","Provider","value"],"sourceRoot":"../../../../src","sources":["ui/components/SurfaceScreen.tsx"],"mappings":"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","ignoreList":[]}
@@ -2,18 +2,24 @@
2
2
 
3
3
  import { View, Text } from 'react-native';
4
4
  import { Ionicons } from '@expo/vector-icons';
5
- import { Dialog } from '@oxyhq/bloom';
5
+ import { Button } from '@oxyhq/bloom/button';
6
6
  import { useTheme } from '@oxyhq/bloom/theme';
7
+ import { surfaces } from '@oxyhq/bloom/surfaces';
7
8
  import { useI18n } from "../../hooks/useI18n.js";
8
9
  import { formatFileSize, getFileIcon } from "../../utils/fileManagement.js";
9
10
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
+ /**
12
+ * File-detail panel — a rich presented surface (NOT a yes/no confirm): a file's
13
+ * icon + metadata plus download / delete / cancel actions. Each action first
14
+ * dismisses this surface, then runs its handler, so a follow-up delete confirm
15
+ * stacks cleanly above whatever remains. Presented via {@link presentFileDetails}.
16
+ */
10
17
  export const FileDetailsModal = ({
11
- control,
18
+ surface,
12
19
  file,
13
20
  onDownload,
14
21
  onDelete,
15
- isOwner,
16
- onClose
22
+ isOwner
17
23
  }) => {
18
24
  const {
19
25
  t
@@ -21,30 +27,8 @@ export const FileDetailsModal = ({
21
27
  const {
22
28
  colors
23
29
  } = useTheme();
24
- if (!file) return null;
25
- const actions = isOwner ? [{
26
- label: t('fileManagement.details.download'),
27
- onPress: () => onDownload(file.id, file.filename)
28
- }, {
29
- label: t('common.actions.delete'),
30
- color: 'destructive',
31
- onPress: () => onDelete(file.id, file.filename)
32
- }, {
33
- label: t('common.cancel'),
34
- color: 'cancel'
35
- }] : [{
36
- label: t('fileManagement.details.download'),
37
- onPress: () => onDownload(file.id, file.filename)
38
- }, {
39
- label: t('common.cancel'),
40
- color: 'cancel'
41
- }];
42
- return /*#__PURE__*/_jsx(Dialog, {
43
- control: control,
44
- onClose: onClose,
45
- label: t('fileManagement.details.title'),
46
- actions: actions,
47
- children: /*#__PURE__*/_jsxs(View, {
30
+ return /*#__PURE__*/_jsxs(View, {
31
+ children: [/*#__PURE__*/_jsxs(View, {
48
32
  className: "bg-secondary border-border p-[18px] rounded-[14px] border items-center",
49
33
  children: [/*#__PURE__*/_jsx(View, {
50
34
  className: "mb-space-16",
@@ -96,7 +80,40 @@ export const FileDetailsModal = ({
96
80
  })]
97
81
  })]
98
82
  })]
99
- })
83
+ }), /*#__PURE__*/_jsxs(View, {
84
+ style: {
85
+ gap: 8
86
+ },
87
+ children: [/*#__PURE__*/_jsx(Button, {
88
+ variant: "primary",
89
+ onPress: () => {
90
+ surface.dismiss();
91
+ onDownload(file.id, file.filename);
92
+ },
93
+ children: t('fileManagement.details.download')
94
+ }), isOwner ? /*#__PURE__*/_jsx(Button, {
95
+ variant: "destructive",
96
+ onPress: () => {
97
+ surface.dismiss();
98
+ onDelete(file.id, file.filename);
99
+ },
100
+ children: t('common.actions.delete')
101
+ }) : null, /*#__PURE__*/_jsx(Button, {
102
+ variant: "secondary",
103
+ onPress: () => surface.dismiss(),
104
+ children: t('common.cancel')
105
+ })]
106
+ })]
100
107
  });
101
108
  };
109
+
110
+ /** Options accepted by {@link presentFileDetails} (everything but `surface`). */
111
+
112
+ /** Present the file-detail panel on the shared surface stack. */
113
+ export function presentFileDetails(options) {
114
+ void surfaces.present(surface => /*#__PURE__*/_jsx(FileDetailsModal, {
115
+ surface: surface,
116
+ ...options
117
+ }));
118
+ }
102
119
  //# sourceMappingURL=FileDetailsModal.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["View","Text","Ionicons","Dialog","useTheme","useI18n","formatFileSize","getFileIcon","jsx","_jsx","jsxs","_jsxs","FileDetailsModal","control","file","onDownload","onDelete","isOwner","onClose","t","colors","actions","label","onPress","id","filename","color","children","className","name","contentType","size","primary","length","Date","uploadDate","toLocaleString","metadata","description"],"sourceRoot":"../../../../../src","sources":["ui/components/fileManagement/FileDetailsModal.tsx"],"mappings":";;AACA,SAASA,IAAI,EAAEC,IAAI,QAAQ,cAAc;AACzC,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,MAAM,QAAiC,cAAc;AAC9D,SAASC,QAAQ,QAAQ,oBAAoB;AAE7C,SAASC,OAAO,QAAQ,wBAAqB;AAC7C,SAASC,cAAc,EAAEC,WAAW,QAAQ,+BAA4B;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAWzE,OAAO,MAAMC,gBAAiD,GAAGA,CAAC;EAC9DC,OAAO;EACPC,IAAI;EACJC,UAAU;EACVC,QAAQ;EACRC,OAAO;EACPC;AACJ,CAAC,KAAK;EACF,MAAM;IAAEC;EAAE,CAAC,GAAGd,OAAO,CAAC,CAAC;EACvB,MAAM;IAAEe;EAAO,CAAC,GAAGhB,QAAQ,CAAC,CAAC;EAE7B,IAAI,CAACU,IAAI,EAAE,OAAO,IAAI;EAEtB,MAAMO,OAAO,GAAGJ,OAAO,GACjB,CACI;IACIK,KAAK,EAAEH,CAAC,CAAC,iCAAiC,CAAC;IAC3CI,OAAO,EAAEA,CAAA,KAAMR,UAAU,CAACD,IAAI,CAACU,EAAE,EAAEV,IAAI,CAACW,QAAQ;EACpD,CAAC,EACD;IACIH,KAAK,EAAEH,CAAC,CAAC,uBAAuB,CAAC;IACjCO,KAAK,EAAE,aAAsB;IAC7BH,OAAO,EAAEA,CAAA,KAAMP,QAAQ,CAACF,IAAI,CAACU,EAAE,EAAEV,IAAI,CAACW,QAAQ;EAClD,CAAC,EACD;IAAEH,KAAK,EAAEH,CAAC,CAAC,eAAe,CAAC;IAAEO,KAAK,EAAE;EAAkB,CAAC,CAC1D,GACD,CACI;IACIJ,KAAK,EAAEH,CAAC,CAAC,iCAAiC,CAAC;IAC3CI,OAAO,EAAEA,CAAA,KAAMR,UAAU,CAACD,IAAI,CAACU,EAAE,EAAEV,IAAI,CAACW,QAAQ;EACpD,CAAC,EACD;IAAEH,KAAK,EAAEH,CAAC,CAAC,eAAe,CAAC;IAAEO,KAAK,EAAE;EAAkB,CAAC,CAC1D;EAEP,oBACIjB,IAAA,CAACN,MAAM;IACHU,OAAO,EAAEA,OAAQ;IACjBK,OAAO,EAAEA,OAAQ;IACjBI,KAAK,EAAEH,CAAC,CAAC,8BAA8B,CAAE;IACzCE,OAAO,EAAEA,OAAQ;IAAAM,QAAA,eAEjBhB,KAAA,CAACX,IAAI;MAAC4B,SAAS,EAAC,wEAAwE;MAAAD,QAAA,gBACpFlB,IAAA,CAACT,IAAI;QAAC4B,SAAS,EAAC,aAAa;QAAAD,QAAA,eACzBlB,IAAA,CAACP,QAAQ;UACL2B,IAAI,EAAEtB,WAAW,CAACO,IAAI,CAACgB,WAAW,CAAE;UACpCC,IAAI,EAAE,EAAG;UACTL,KAAK,EAAEN,MAAM,CAACY;QAAQ,CACzB;MAAC,CACA,CAAC,eAEPvB,IAAA,CAACR,IAAI;QAAC2B,SAAS,EAAC,yDAAyD;QAAAD,QAAA,EACpEb,IAAI,CAACW;MAAQ,CACZ,CAAC,eAEPd,KAAA,CAACX,IAAI;QAAC4B,SAAS,EAAC,oBAAoB;QAAAD,QAAA,gBAChChB,KAAA,CAACX,IAAI;UAAC4B,SAAS,EAAC,4DAA4D;UAAAD,QAAA,gBACxEhB,KAAA,CAACV,IAAI;YAAC2B,SAAS,EAAC,kEAAkE;YAAAD,QAAA,GAC7ER,CAAC,CAAC,qBAAqB,CAAC,EAAC,GAC9B;UAAA,CAAM,CAAC,eACPV,IAAA,CAACR,IAAI;YAAC2B,SAAS,EAAC,2CAA2C;YAAAD,QAAA,EACtDrB,cAAc,CAACQ,IAAI,CAACmB,MAAM;UAAC,CAC1B,CAAC;QAAA,CACL,CAAC,eAEPtB,KAAA,CAACX,IAAI;UAAC4B,SAAS,EAAC,4DAA4D;UAAAD,QAAA,gBACxEhB,KAAA,CAACV,IAAI;YAAC2B,SAAS,EAAC,kEAAkE;YAAAD,QAAA,GAC7ER,CAAC,CAAC,6BAA6B,CAAC,EAAC,GACtC;UAAA,CAAM,CAAC,eACPV,IAAA,CAACR,IAAI;YAAC2B,SAAS,EAAC,2CAA2C;YAAAD,QAAA,EACtDb,IAAI,CAACgB;UAAW,CACf,CAAC;QAAA,CACL,CAAC,eAEPnB,KAAA,CAACX,IAAI;UAAC4B,SAAS,EAAC,4DAA4D;UAAAD,QAAA,gBACxEhB,KAAA,CAACV,IAAI;YAAC2B,SAAS,EAAC,kEAAkE;YAAAD,QAAA,GAC7ER,CAAC,CAAC,iCAAiC,CAAC,EAAC,GAC1C;UAAA,CAAM,CAAC,eACPV,IAAA,CAACR,IAAI;YAAC2B,SAAS,EAAC,2CAA2C;YAAAD,QAAA,EACtD,IAAIO,IAAI,CAACpB,IAAI,CAACqB,UAAU,CAAC,CAACC,cAAc,CAAC;UAAC,CACzC,CAAC;QAAA,CACL,CAAC,EAENtB,IAAI,CAACuB,QAAQ,EAAEC,WAAW,iBACvB3B,KAAA,CAACX,IAAI;UAAC4B,SAAS,EAAC,4DAA4D;UAAAD,QAAA,gBACxEhB,KAAA,CAACV,IAAI;YAAC2B,SAAS,EAAC,kEAAkE;YAAAD,QAAA,GAC7ER,CAAC,CAAC,oCAAoC,CAAC,EAAC,GAC7C;UAAA,CAAM,CAAC,eACPV,IAAA,CAACR,IAAI;YAAC2B,SAAS,EAAC,2CAA2C;YAAAD,QAAA,EACtDb,IAAI,CAACuB,QAAQ,CAACC;UAAW,CACxB,CAAC;QAAA,CACL,CACT;MAAA,CACC,CAAC;IAAA,CACL;EAAC,CACH,CAAC;AAEjB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["View","Text","Ionicons","Button","useTheme","surfaces","useI18n","formatFileSize","getFileIcon","jsx","_jsx","jsxs","_jsxs","FileDetailsModal","surface","file","onDownload","onDelete","isOwner","t","colors","children","className","name","contentType","size","color","primary","filename","length","Date","uploadDate","toLocaleString","metadata","description","style","gap","variant","onPress","dismiss","id","presentFileDetails","options","present"],"sourceRoot":"../../../../../src","sources":["ui/components/fileManagement/FileDetailsModal.tsx"],"mappings":"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","ignoreList":[]}
@@ -3,11 +3,19 @@
3
3
  import { useState, useCallback } from 'react';
4
4
  import { View, Text, TextInput } from 'react-native';
5
5
  import { Ionicons } from '@expo/vector-icons';
6
- import { Dialog } from '@oxyhq/bloom';
6
+ import { Button } from '@oxyhq/bloom/button';
7
7
  import { useTheme } from '@oxyhq/bloom/theme';
8
+ import { surfaces } from '@oxyhq/bloom/surfaces';
8
9
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
+ /**
11
+ * Delete-account confirmation — a rich presented surface (NOT a yes/no confirm):
12
+ * the user must retype their username, then the destructive action runs
13
+ * `onDelete`. On success the surface is dismissed with `true` (the presenter
14
+ * then signs out + closes); cancel dismisses with `false`. Presented via
15
+ * {@link presentDeleteAccount}.
16
+ */
9
17
  const DeleteAccountModal = ({
10
- control,
18
+ surface,
11
19
  username,
12
20
  onDelete,
13
21
  t
@@ -23,32 +31,18 @@ const DeleteAccountModal = ({
23
31
  setIsDeleting(true);
24
32
  try {
25
33
  await onDelete(confirmUsername);
26
- // Dialog will be closed by parent on success
34
+ surface.dismiss(true);
27
35
  } catch (err) {
28
36
  setError((err instanceof Error ? err.message : null) || t('deleteAccount.error') || 'Failed to delete account');
29
37
  } finally {
30
38
  setIsDeleting(false);
31
39
  }
32
- }, [isValid, confirmUsername, onDelete, t]);
33
- const handleCleanup = useCallback(() => {
40
+ }, [isValid, confirmUsername, onDelete, surface, t]);
41
+ const handleCancel = useCallback(() => {
34
42
  if (isDeleting) return;
35
- setConfirmUsername('');
36
- setError(null);
37
- }, [isDeleting]);
38
- return /*#__PURE__*/_jsxs(Dialog, {
39
- control: control,
40
- onClose: handleCleanup,
41
- label: "Delete Account",
42
- actions: [{
43
- label: t('deleteAccount.confirm') || 'Delete Forever',
44
- color: 'destructive',
45
- onPress: handleDelete,
46
- disabled: !isValid || isDeleting,
47
- shouldCloseOnPress: false
48
- }, {
49
- label: t('common.cancel') || 'Cancel',
50
- color: 'cancel'
51
- }],
43
+ surface.dismiss(false);
44
+ }, [isDeleting, surface]);
45
+ return /*#__PURE__*/_jsxs(View, {
52
46
  children: [/*#__PURE__*/_jsxs(View, {
53
47
  className: "flex-row items-center mb-4 gap-3",
54
48
  children: [/*#__PURE__*/_jsx(Ionicons, {
@@ -87,7 +81,7 @@ const DeleteAccountModal = ({
87
81
  }), /*#__PURE__*/_jsx(TextInput, {
88
82
  className: "text-text bg-bg text-base py-3 px-4 border rounded-lg",
89
83
  style: {
90
- borderColor: confirmUsername === username ? theme.colors.success : theme.colors.border
84
+ borderColor: isValid ? theme.colors.success : theme.colors.border
91
85
  },
92
86
  value: confirmUsername,
93
87
  onChangeText: setConfirmUsername,
@@ -97,8 +91,37 @@ const DeleteAccountModal = ({
97
91
  autoCorrect: false,
98
92
  editable: !isDeleting
99
93
  })]
94
+ }), /*#__PURE__*/_jsxs(View, {
95
+ style: {
96
+ gap: 8
97
+ },
98
+ children: [/*#__PURE__*/_jsx(Button, {
99
+ variant: "destructive",
100
+ onPress: handleDelete,
101
+ disabled: !isValid || isDeleting,
102
+ loading: isDeleting,
103
+ children: t('deleteAccount.confirm') || 'Delete Forever'
104
+ }), /*#__PURE__*/_jsx(Button, {
105
+ variant: "secondary",
106
+ onPress: handleCancel,
107
+ disabled: isDeleting,
108
+ children: t('common.cancel') || 'Cancel'
109
+ })]
100
110
  })]
101
111
  });
102
112
  };
113
+
114
+ /** Options accepted by {@link presentDeleteAccount} (everything but `surface`). */
115
+
116
+ /**
117
+ * Present the delete-account confirmation on the shared surface stack. Resolves
118
+ * `true` once the account is deleted, `false` if cancelled/dismissed.
119
+ */
120
+ export function presentDeleteAccount(options) {
121
+ return surfaces.present(surface => /*#__PURE__*/_jsx(DeleteAccountModal, {
122
+ surface: surface,
123
+ ...options
124
+ })).then(result => result === true);
125
+ }
103
126
  export default DeleteAccountModal;
104
127
  //# sourceMappingURL=DeleteAccountModal.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useState","useCallback","View","Text","TextInput","Ionicons","Dialog","useTheme","jsx","_jsx","jsxs","_jsxs","DeleteAccountModal","control","username","onDelete","t","theme","confirmUsername","setConfirmUsername","isDeleting","setIsDeleting","error","setError","isValid","handleDelete","err","Error","message","handleCleanup","onClose","label","actions","color","onPress","disabled","shouldCloseOnPress","children","className","name","size","colors","style","backgroundColor","borderColor","success","border","value","onChangeText","placeholder","placeholderTextColor","textSecondary","autoCapitalize","autoCorrect","editable"],"sourceRoot":"../../../../../src","sources":["ui/components/modals/DeleteAccountModal.tsx"],"mappings":";;AACA,SAASA,QAAQ,EAAEC,WAAW,QAAQ,OAAO;AAC7C,SAASC,IAAI,EAAEC,IAAI,EAAEC,SAAS,QAAQ,cAAc;AACpD,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,MAAM,QAAiC,cAAc;AAC9D,SAASC,QAAQ,QAAQ,oBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAS9C,MAAMC,kBAAqD,GAAGA,CAAC;EAC3DC,OAAO;EACPC,QAAQ;EACRC,QAAQ;EACRC;AACJ,CAAC,KAAK;EACF,MAAMC,KAAK,GAAGV,QAAQ,CAAC,CAAC;EACxB,MAAM,CAACW,eAAe,EAAEC,kBAAkB,CAAC,GAAGnB,QAAQ,CAAC,EAAE,CAAC;EAC1D,MAAM,CAACoB,UAAU,EAAEC,aAAa,CAAC,GAAGrB,QAAQ,CAAC,KAAK,CAAC;EACnD,MAAM,CAACsB,KAAK,EAAEC,QAAQ,CAAC,GAAGvB,QAAQ,CAAgB,IAAI,CAAC;EAEvD,MAAMwB,OAAO,GAAGN,eAAe,KAAKJ,QAAQ;EAE5C,MAAMW,YAAY,GAAGxB,WAAW,CAAC,YAAY;IACzC,IAAI,CAACuB,OAAO,EAAE;IAEdD,QAAQ,CAAC,IAAI,CAAC;IACdF,aAAa,CAAC,IAAI,CAAC;IAEnB,IAAI;MACA,MAAMN,QAAQ,CAACG,eAAe,CAAC;MAC/B;IACJ,CAAC,CAAC,OAAOQ,GAAY,EAAE;MACnBH,QAAQ,CAAC,CAACG,GAAG,YAAYC,KAAK,GAAGD,GAAG,CAACE,OAAO,GAAG,IAAI,KAAKZ,CAAC,CAAC,qBAAqB,CAAC,IAAI,0BAA0B,CAAC;IACnH,CAAC,SAAS;MACNK,aAAa,CAAC,KAAK,CAAC;IACxB;EACJ,CAAC,EAAE,CAACG,OAAO,EAAEN,eAAe,EAAEH,QAAQ,EAAEC,CAAC,CAAC,CAAC;EAE3C,MAAMa,aAAa,GAAG5B,WAAW,CAAC,MAAM;IACpC,IAAImB,UAAU,EAAE;IAChBD,kBAAkB,CAAC,EAAE,CAAC;IACtBI,QAAQ,CAAC,IAAI,CAAC;EAClB,CAAC,EAAE,CAACH,UAAU,CAAC,CAAC;EAEhB,oBACIT,KAAA,CAACL,MAAM;IACHO,OAAO,EAAEA,OAAQ;IACjBiB,OAAO,EAAED,aAAc;IACvBE,KAAK,EAAC,gBAAgB;IACtBC,OAAO,EAAE,CACL;MACID,KAAK,EAAEf,CAAC,CAAC,uBAAuB,CAAC,IAAI,gBAAgB;MACrDiB,KAAK,EAAE,aAAa;MACpBC,OAAO,EAAET,YAAY;MACrBU,QAAQ,EAAE,CAACX,OAAO,IAAIJ,UAAU;MAChCgB,kBAAkB,EAAE;IACxB,CAAC,EACD;MAAEL,KAAK,EAAEf,CAAC,CAAC,eAAe,CAAC,IAAI,QAAQ;MAAEiB,KAAK,EAAE;IAAS,CAAC,CAC5D;IAAAI,QAAA,gBAEF1B,KAAA,CAACT,IAAI;MAACoC,SAAS,EAAC,kCAAkC;MAAAD,QAAA,gBAC9C5B,IAAA,CAACJ,QAAQ;QAACkC,IAAI,EAAC,cAAc;QAACC,IAAI,EAAE,EAAG;QAACP,KAAK,EAAEhB,KAAK,CAACwB,MAAM,CAACnB;MAAM,CAAE,CAAC,eACrEb,IAAA,CAACN,IAAI;QAACmC,SAAS,EAAC,6BAA6B;QAACI,KAAK,EAAE;UAAET,KAAK,EAAEhB,KAAK,CAACwB,MAAM,CAACnB;QAAM,CAAE;QAAAe,QAAA,EAC9ErB,CAAC,CAAC,qBAAqB,CAAC,IAAI;MAAgB,CAC3C,CAAC;IAAA,CACL,CAAC,eAEPP,IAAA,CAACN,IAAI;MAACmC,SAAS,EAAC,kCAAkC;MAAAD,QAAA,EAC7CrB,CAAC,CAAC,uBAAuB,CAAC,IAAI;IAAiG,CAC9H,CAAC,EAENM,KAAK,iBACFb,IAAA,CAACP,IAAI;MACDoC,SAAS,EAAC,qBAAqB;MAC/BI,KAAK,EAAE;QAAEC,eAAe,EAAE,GAAG1B,KAAK,CAACwB,MAAM,CAACnB,KAAK;MAAK,CAAE;MAAAe,QAAA,eAEtD5B,IAAA,CAACN,IAAI;QAACmC,SAAS,EAAC,+BAA+B;QAACI,KAAK,EAAE;UAAET,KAAK,EAAEhB,KAAK,CAACwB,MAAM,CAACnB;QAAM,CAAE;QAAAe,QAAA,EAChFf;MAAK,CACJ;IAAC,CACL,CACT,eAEDX,KAAA,CAACT,IAAI;MAACoC,SAAS,EAAC,MAAM;MAAAD,QAAA,gBAClB5B,IAAA,CAACN,IAAI;QAACmC,SAAS,EAAC,sCAAsC;QAAAD,QAAA,EACjDrB,CAAC,CAAC,4BAA4B,EAAE;UAAEF;QAAS,CAAC,CAAC,IAAI,SAASA,QAAQ;MAAc,CAC/E,CAAC,eACPL,IAAA,CAACL,SAAS;QACNkC,SAAS,EAAC,uDAAuD;QACjEI,KAAK,EAAE;UACHE,WAAW,EAAE1B,eAAe,KAAKJ,QAAQ,GAAGG,KAAK,CAACwB,MAAM,CAACI,OAAO,GAAG5B,KAAK,CAACwB,MAAM,CAACK;QACpF,CAAE;QACFC,KAAK,EAAE7B,eAAgB;QACvB8B,YAAY,EAAE7B,kBAAmB;QACjC8B,WAAW,EAAEnC,QAAS;QACtBoC,oBAAoB,EAAEjC,KAAK,CAACwB,MAAM,CAACU,aAAc;QACjDC,cAAc,EAAC,MAAM;QACrBC,WAAW,EAAE,KAAM;QACnBC,QAAQ,EAAE,CAAClC;MAAW,CACzB,CAAC;IAAA,CACA,CAAC;EAAA,CACH,CAAC;AAEjB,CAAC;AAED,eAAeR,kBAAkB","ignoreList":[]}
1
+ {"version":3,"names":["useState","useCallback","View","Text","TextInput","Ionicons","Button","useTheme","surfaces","jsx","_jsx","jsxs","_jsxs","DeleteAccountModal","surface","username","onDelete","t","theme","confirmUsername","setConfirmUsername","isDeleting","setIsDeleting","error","setError","isValid","handleDelete","dismiss","err","Error","message","handleCancel","children","className","name","size","color","colors","style","backgroundColor","borderColor","success","border","value","onChangeText","placeholder","placeholderTextColor","textSecondary","autoCapitalize","autoCorrect","editable","gap","variant","onPress","disabled","loading","presentDeleteAccount","options","present","then","result"],"sourceRoot":"../../../../../src","sources":["ui/components/modals/DeleteAccountModal.tsx"],"mappings":"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","ignoreList":[]}
@@ -6,7 +6,7 @@ import { StyleSheet } from 'react-native';
6
6
  const QR_PLATE_BG = '#FFFFFF';
7
7
 
8
8
  /**
9
- * Shared styles for `OxyAuthChooser`'s views. Extracted from `OxyAccountDialog`
9
+ * Shared styles for `OxyAuthChooser`'s views. Extracted from `OxyAccountDialogScreen`
10
10
  * so both the Dialog-wrapped host and any bare host (e.g. a future
11
11
  * auth.oxy.so hub page) render identically without duplicating a StyleSheet.
12
12
  */
@@ -44,28 +44,90 @@ export const authChooserStyles = StyleSheet.create({
44
44
  fontSize: 12.5,
45
45
  marginTop: 1
46
46
  },
47
- addRow: {
48
- flexDirection: 'row',
49
- alignItems: 'center',
50
- gap: 12,
51
- borderWidth: StyleSheet.hairlineWidth,
52
- borderStyle: 'dashed',
53
- borderRadius: 16,
54
- paddingVertical: 10,
55
- paddingHorizontal: 12,
56
- marginTop: 8
47
+ /**
48
+ * Animated-collapse container for the account switch list — the outer clip and
49
+ * the inner measuring wrapper. Style-based (NOT NativeWind): the container
50
+ * carries the animated `height`/`opacity` off a reanimated style, and the
51
+ * measuring wrapper must stay className-free so its `onLayout` fires on RN-Web.
52
+ */
53
+ collapse: {
54
+ overflow: 'hidden'
57
55
  },
58
- addBadge: {
59
- width: 40,
60
- height: 40,
61
- borderRadius: 9999,
62
- borderWidth: StyleSheet.hairlineWidth,
56
+ collapseMeasure: {
57
+ width: '100%'
58
+ },
59
+ /**
60
+ * The HERO block that opens the account menu: the current account's large
61
+ * avatar, a greeting, and the "Manage your Oxy account" pill — centred and
62
+ * deliberately chrome-free (no card, no grouped-section surface) so the
63
+ * grouped cards below read as the menu proper. The account's email sits above
64
+ * it in the Dialog's own nav bar, not here.
65
+ */
66
+ hero: {
63
67
  alignItems: 'center',
64
- justifyContent: 'center'
68
+ paddingTop: 4,
69
+ paddingBottom: 20,
70
+ gap: 12
71
+ },
72
+ /**
73
+ * The current account's accent ring in the switch list, drawn OUTSIDE its
74
+ * avatar as an overlay so it adds no width to the row — every avatar in the
75
+ * list keeps the same footprint and the same content line. The 3px offset is
76
+ * the ring's 2px stroke plus a 1px gap.
77
+ */
78
+ currentAvatarRing: {
79
+ position: 'absolute',
80
+ top: -3,
81
+ left: -3,
82
+ right: -3,
83
+ bottom: -3,
84
+ borderWidth: 2,
85
+ borderRadius: 9999
86
+ },
87
+ /**
88
+ * The hero avatar's pressable wrapper — the "change your photo" entry point.
89
+ * `relative` so the accent ring + camera badge (both absolutely positioned)
90
+ * anchor to the avatar box.
91
+ */
92
+ heroAvatarPressable: {
93
+ position: 'relative'
94
+ },
95
+ /** The hero avatar's accent ring — an overlay, like the row-level one. */
96
+ heroAvatarRing: {
97
+ position: 'absolute',
98
+ top: -4,
99
+ left: -4,
100
+ right: -4,
101
+ bottom: -4,
102
+ borderWidth: 3,
103
+ borderRadius: 9999
104
+ },
105
+ /** Greeting + address stacked tight, centred (the hero's own 12px gap sits
106
+ * between this block and the avatar / manage pill, not between these lines). */
107
+ heroNameBlock: {
108
+ alignItems: 'center',
109
+ gap: 2
110
+ },
111
+ heroGreeting: {
112
+ fontSize: 22,
113
+ fontWeight: '600',
114
+ textAlign: 'center'
65
115
  },
66
- footerLinks: {
116
+ /** The account address (`username@oxy.so` / `@handle`) under the greeting. */
117
+ heroAddress: {
118
+ fontSize: 14,
119
+ textAlign: 'center'
120
+ },
121
+ /**
122
+ * The switch row's disclosure affordance — a filled circle around the chevron,
123
+ * right-aligned to the same 12px row inset every other trailing element uses.
124
+ */
125
+ chevronCircle: {
126
+ width: 32,
127
+ height: 32,
128
+ borderRadius: 16,
67
129
  alignItems: 'center',
68
- marginTop: 16
130
+ justifyContent: 'center'
69
131
  },
70
132
  footerLink: {
71
133
  alignSelf: 'center',
@@ -1 +1 @@
1
- {"version":3,"names":["StyleSheet","QR_PLATE_BG","authChooserStyles","create","rows","width","gap","accountRow","flexDirection","alignItems","borderWidth","hairlineWidth","borderRadius","paddingVertical","paddingHorizontal","rowDisabled","opacity","avatarRing","padding","rowMeta","flex","minWidth","rowName","fontSize","fontWeight","rowHandle","marginTop","addRow","borderStyle","addBadge","height","justifyContent","footerLinks","footerLink","alignSelf","linkText","signInBlock","primaryButton","secondaryButton","usernameInput","dividerRow","marginVertical","dividerLine","dividerText","marginHorizontal","centeredBlock","mutedText","textAlign","qrHeadline","qrPlate","backgroundColor"],"sourceRoot":"../../../../src","sources":["ui/components/oxyAuthChooserStyles.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["StyleSheet","QR_PLATE_BG","authChooserStyles","create","rows","width","gap","accountRow","flexDirection","alignItems","borderWidth","hairlineWidth","borderRadius","paddingVertical","paddingHorizontal","rowDisabled","opacity","avatarRing","padding","rowMeta","flex","minWidth","rowName","fontSize","fontWeight","rowHandle","marginTop","collapse","overflow","collapseMeasure","hero","paddingTop","paddingBottom","currentAvatarRing","position","top","left","right","bottom","heroAvatarPressable","heroAvatarRing","heroNameBlock","heroGreeting","textAlign","heroAddress","chevronCircle","height","justifyContent","footerLink","alignSelf","linkText","signInBlock","primaryButton","secondaryButton","usernameInput","dividerRow","marginVertical","dividerLine","dividerText","marginHorizontal","centeredBlock","mutedText","qrHeadline","qrPlate","backgroundColor"],"sourceRoot":"../../../../src","sources":["ui/components/oxyAuthChooserStyles.ts"],"mappings":"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","ignoreList":[]}
@@ -1,17 +1,66 @@
1
1
  "use strict";
2
2
 
3
- import React, { useEffect, useMemo, useState, useCallback } from 'react';
4
- import { View, Text, useWindowDimensions } from 'react-native';
3
+ import React, { useMemo, useState, useCallback } from 'react';
4
+ import { View, Text, Image, useWindowDimensions } from 'react-native';
5
+ import { useQuery, keepPreviousData } from '@tanstack/react-query';
5
6
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
+ /** Stable empty map so an unresolved query yields a referentially-stable value. */
8
+ const EMPTY_DIMENSIONS = {};
9
+
10
+ /**
11
+ * Measure the intrinsic size of every photo whose thumbnail URL has resolved,
12
+ * via `Image.getSize`. Pure/async (no React state) so it can be a React Query
13
+ * `queryFn`. Photos without a resolved URL are skipped and re-measured on the
14
+ * next signature change; a load error falls back to 1×1 (→ the 4/3 default).
15
+ */
16
+ async function measurePhotoDimensions(photos, getThumbUrl) {
17
+ const measured = {};
18
+ await Promise.all(photos.map(photo => new Promise(resolve => {
19
+ const url = getThumbUrl(photo);
20
+ if (!url) {
21
+ resolve();
22
+ return;
23
+ }
24
+ Image.getSize(url, (width, height) => {
25
+ measured[photo.id] = {
26
+ width,
27
+ height
28
+ };
29
+ resolve();
30
+ }, () => {
31
+ measured[photo.id] = {
32
+ width: 1,
33
+ height: 1
34
+ };
35
+ resolve();
36
+ });
37
+ })));
38
+ return measured;
39
+ }
40
+
41
+ /** Fixed photos-per-row for the justified grid (Apple Photos-style trio). */
42
+ export const PHOTOS_PER_ROW = 3;
43
+
44
+ /** Chunk a photo list into fixed-length rows (last row may be short). */
45
+ export function chunkPhotos(photos, perRow) {
46
+ const rows = [];
47
+ for (let i = 0; i < photos.length; i += perRow) {
48
+ rows.push(photos.slice(i, i + perRow));
49
+ }
50
+ return rows;
51
+ }
6
52
  /**
7
53
  * Responsive justified photo grid that stretches to the provided containerWidth.
8
54
  * Uses flex rows with proportional children widths instead of absolute pixel widths so it always fills.
55
+ *
56
+ * Owns its own intrinsic-dimension measurement: it calls `Image.getSize` on each
57
+ * photo's resolved thumbnail URL and reflows once real aspect ratios are known
58
+ * (falling back to 4/3 until then). Measurement re-runs whenever a photo is added
59
+ * OR its (asynchronously-resolved) private-safe URL first appears.
9
60
  */
10
61
  const JustifiedPhotoGrid = ({
11
62
  photos,
12
- photoDimensions,
13
- loadPhotoDimensions,
14
- createJustifiedRows,
63
+ getThumbUrl,
15
64
  renderJustifiedPhotoItem,
16
65
  textColor,
17
66
  containerWidth: explicitWidth,
@@ -35,11 +84,24 @@ const JustifiedPhotoGrid = ({
35
84
  const w = e.nativeEvent.layout.width;
36
85
  setMeasuredWidth(prev => prev === w ? prev : w);
37
86
  }, [resolvedExplicitWidth]);
38
- // Ensure dimensions are loaded for displayed photos
39
- useEffect(() => {
40
- loadPhotoDimensions(photos);
41
- // eslint-disable-next-line react-hooks/exhaustive-deps
42
- }, [photos.map(p => p.id).join(',')]);
87
+
88
+ // Signature of every photo id + its currently-resolved URL — the measurement
89
+ // query key. A private tile's URL resolves asynchronously after it enters the
90
+ // list, so keying on THIS (not just the photo set) re-measures the moment a
91
+ // URL lands, not just when photos are added.
92
+ const urlSignature = useMemo(() => photos.map(p => `${p.id}:${getThumbUrl(p) ?? ''}`).join('|'), [photos, getThumbUrl]);
93
+
94
+ // Intrinsic dimensions via React Query (no effect): re-runs when the signature
95
+ // changes and reflows the justified rows. `keepPreviousData` holds the last
96
+ // measured map during a re-measure so tiles never flash back to the 4/3 default.
97
+ const dimensionsQuery = useQuery({
98
+ queryKey: ['justifiedPhotoDimensions', urlSignature],
99
+ queryFn: () => measurePhotoDimensions(photos, getThumbUrl),
100
+ placeholderData: keepPreviousData,
101
+ staleTime: Number.POSITIVE_INFINITY,
102
+ gcTime: 5 * 60 * 1000
103
+ });
104
+ const photoDimensions = dimensionsQuery.data ?? EMPTY_DIMENSIONS;
43
105
 
44
106
  // Group photos by date first
45
107
  const photosByDate = useMemo(() => {
@@ -67,10 +129,9 @@ const JustifiedPhotoGrid = ({
67
129
  onLayout: onLayoutContainer,
68
130
  children: sortedDates.map(date => {
69
131
  const dayPhotos = photosByDate[date];
70
- // createJustifiedRows should build rows such that the "ideal" height (availableWidth / totalAspect) stays within min/max.
71
- // We pass the effective container width.
72
- const dateWidth = dateWidths[date] ?? effectiveWidth; // fallback to overall width until measured
73
- const rows = dateWidth > 0 ? createJustifiedRows(dayPhotos, dateWidth) : [];
132
+ // Fall back to the overall width until this section is measured.
133
+ const dateWidth = dateWidths[date] ?? effectiveWidth;
134
+ const rows = dateWidth > 0 ? chunkPhotos(dayPhotos, PHOTOS_PER_ROW) : [];
74
135
  return /*#__PURE__*/_jsxs(View, {
75
136
  style: {
76
137
  marginBottom: 24,
@@ -95,7 +156,7 @@ const JustifiedPhotoGrid = ({
95
156
  width: '100%'
96
157
  },
97
158
  children: rows.map((row, rowIndex) => {
98
- // Compute total aspect ratios using loaded dimensions (fallback 4/3)
159
+ // Total aspect ratio of the row, using measured dims (fallback 4/3).
99
160
  const aspects = row.map(p => {
100
161
  const dims = photoDimensions[p.id];
101
162
  return dims ? dims.width / dims.height : 4 / 3;
@@ -103,32 +164,29 @@ const JustifiedPhotoGrid = ({
103
164
  const totalAspect = aspects.reduce((a, b) => a + b, 0);
104
165
  const gapsTotal = gap * (row.length - 1);
105
166
  const availableWidth = dateWidth - gapsTotal;
106
- // Ideal height that perfectly fills width when preserving aspect ratios
167
+ // Ideal height that perfectly fills width when preserving aspect ratios.
107
168
  const idealHeight = availableWidth / totalAspect;
108
- // We rely on row construction keeping idealHeight within min/max bounds; if not, clamp but then distribute leftover/overflow.
169
+ // Clamp to min/max, then distribute the leftover/overflow proportionally.
109
170
  let rowHeight = idealHeight;
110
- let widthAdjustment = 0; // difference to distribute if clamped
171
+ let widthAdjustment = 0;
111
172
  if (idealHeight < minRowHeight) {
112
173
  rowHeight = minRowHeight;
113
- widthAdjustment = availableWidth - rowHeight * totalAspect; // negative means overflow
174
+ widthAdjustment = availableWidth - rowHeight * totalAspect;
114
175
  } else if (idealHeight > maxRowHeight) {
115
176
  rowHeight = maxRowHeight;
116
177
  widthAdjustment = availableWidth - rowHeight * totalAspect;
117
178
  }
118
-
119
- // Pre-compute widths maintaining aspect ratios
120
179
  let widths = aspects.map(ar => ar * rowHeight);
121
- // If we have widthAdjustment (due to clamping) distribute proportionally so row still fills exactly
122
180
  if (widthAdjustment !== 0) {
123
181
  const widthSum = widths.reduce((a, b) => a + b, 0);
124
182
  widths = widths.map(w => w + w / widthSum * widthAdjustment);
125
183
  }
126
184
 
127
- // To combat rounding issues, adjust last item width to fill precisely
185
+ // Correct any rounding drift on the last tile so the row fills exactly.
128
186
  const widthSumRounded = widths.reduce((a, b) => a + b, 0);
129
187
  const roundingDiff = availableWidth - widthSumRounded;
130
188
  if (Math.abs(roundingDiff) > 0.5) {
131
- widths[widths.length - 1] += roundingDiff; // minimal correction
189
+ widths[widths.length - 1] += roundingDiff;
132
190
  }
133
191
  return /*#__PURE__*/_jsx(View, {
134
192
  style: {
@@ -147,7 +205,7 @@ const JustifiedPhotoGrid = ({
147
205
  children: renderJustifiedPhotoItem(p, photoWidth, rowHeight, i === row.length - 1)
148
206
  }, p.id);
149
207
  })
150
- }, rowIndex);
208
+ }, row[0]?.id ?? rowIndex);
151
209
  })
152
210
  })]
153
211
  }, date);