@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
@@ -41,9 +41,46 @@ export function createSurfaceNavStack(route, props) {
41
41
  } = store.getState();
42
42
  return frames[frames.length - 1];
43
43
  };
44
+
45
+ // Result-bearing sub-flows currently running in this surface (the morphed-in
46
+ // avatar picker, and — NESTED within it — the "My Oxy files" media selector).
47
+ // A STACK: flows nest (ChangeAvatar → FileManagement → back to ChangeAvatar).
48
+ // Held OUTSIDE the store (resolvers are functions; flow presence must not
49
+ // re-render frames). Each flow's `returnLength` is the frame count BEFORE its
50
+ // entry frame was pushed, so settling pops back to exactly the frame that
51
+ // started it. `flowStack` is ordered outer → inner; the top is the innermost.
52
+ const flowStack = [];
53
+ const requestDismiss = result => {
54
+ // Dismissing the whole surface abandons EVERY pending sub-flow — settle each
55
+ // promise so an awaiting caller (the avatar picker) never hangs.
56
+ while (flowStack.length) flowStack.pop()?.resolve(undefined);
57
+ if (store.getState().closing) return;
58
+ store.setState({
59
+ closing: true,
60
+ closeResult: result
61
+ });
62
+ };
63
+ const goBack = () => {
64
+ const {
65
+ frames
66
+ } = store.getState();
67
+ if (frames.length <= 1) return false;
68
+ const nextLength = frames.length - 1;
69
+ store.setState({
70
+ frames: frames.slice(0, -1)
71
+ });
72
+ // Backing out past a sub-flow's entry frame cancels it (resolve undefined).
73
+ // A single pop crosses at most one boundary, but loop for safety.
74
+ while (flowStack.length && nextLength <= flowStack[flowStack.length - 1].returnLength) {
75
+ flowStack.pop()?.resolve(undefined);
76
+ }
77
+ return true;
78
+ };
44
79
  return {
45
80
  store,
46
81
  getTop,
82
+ requestDismiss,
83
+ goBack,
47
84
  navigate(nextRoute, nextProps) {
48
85
  store.setState(state => ({
49
86
  frames: [...state.frames, makeFrame(nextRoute, nextProps)]
@@ -54,16 +91,6 @@ export function createSurfaceNavStack(route, props) {
54
91
  frames: [...state.frames.slice(0, -1), makeFrame(nextRoute, nextProps)]
55
92
  }));
56
93
  },
57
- goBack() {
58
- const {
59
- frames
60
- } = store.getState();
61
- if (frames.length <= 1) return false;
62
- store.setState({
63
- frames: frames.slice(0, -1)
64
- });
65
- return true;
66
- },
67
94
  canGoBack() {
68
95
  const {
69
96
  frames
@@ -83,12 +110,32 @@ export function createSurfaceNavStack(route, props) {
83
110
  };
84
111
  });
85
112
  },
86
- requestDismiss(result) {
87
- if (store.getState().closing) return;
88
- store.setState({
89
- closing: true,
90
- closeResult: result
113
+ beginFlow(nextRoute, nextProps) {
114
+ const returnLength = store.getState().frames.length;
115
+ store.setState(state => ({
116
+ frames: [...state.frames, makeFrame(nextRoute, nextProps)]
117
+ }));
118
+ return new Promise(resolve => {
119
+ flowStack.push({
120
+ returnLength,
121
+ resolve
122
+ });
91
123
  });
124
+ },
125
+ resolveFlowOrDismiss(result) {
126
+ const flow = flowStack.pop();
127
+ if (!flow) {
128
+ // No flow → this screen owns its surface; dismiss it as before.
129
+ requestDismiss(result);
130
+ return;
131
+ }
132
+ store.setState(state => ({
133
+ frames: state.frames.slice(0, flow.returnLength)
134
+ }));
135
+ flow.resolve(result);
136
+ },
137
+ abandonActiveFlow() {
138
+ while (flowStack.length) flowStack.pop()?.resolve(undefined);
92
139
  }
93
140
  };
94
141
  }
@@ -1 +1 @@
1
- {"version":3,"names":["createStore","makeFrame","route","props","resolved","step","initialStep","createSurfaceNavStack","store","frames","closing","closeResult","undefined","getTop","getState","length","navigate","nextRoute","nextProps","setState","state","replace","slice","goBack","canGoBack","setStep","index","requestDismiss","result"],"sourceRoot":"../../../../src","sources":["ui/navigation/surfaceNavStack.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createStore","makeFrame","route","props","resolved","step","initialStep","createSurfaceNavStack","store","frames","closing","closeResult","undefined","getTop","getState","length","flowStack","requestDismiss","result","pop","resolve","setState","goBack","nextLength","slice","returnLength","navigate","nextRoute","nextProps","state","replace","canGoBack","setStep","index","beginFlow","Promise","push","resolveFlowOrDismiss","flow","abandonActiveFlow"],"sourceRoot":"../../../../src","sources":["ui/navigation/surfaceNavStack.ts"],"mappings":"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","ignoreList":[]}
@@ -31,38 +31,63 @@ void _registryCoversRoutes;
31
31
  * How a surface renders — the SDK's presentation taxonomy. Each value maps to a
32
32
  * concrete Bloom `Dialog` placement/chrome in `surfaces.ts`:
33
33
  *
34
- * - `'sheet'` → responsive `{ base: 'bottom', md: 'center' }` (the default:
35
- * a bottom sheet on narrow viewports, a centered card on wide).
36
- * - `'center'` → a plain centered modal at every width.
34
+ * - `'sheet'` → responsive `{ base: 'bottom', md: 'center' }` (the default,
35
+ * and since every screen morphs the presentation of EVERY
36
+ * route today: a bottom sheet on narrow, a centered card wide).
37
+ * - `'center'` → a plain centered modal at every width. Currently unused.
37
38
  * - `'drawer'` → responsive `{ base: 'bottom', md: 'left' }` side drawer.
38
- * - `'fullScreen'` → approximated with the shared `Dialog`: a full-height sheet /
39
- * large centered card, flush (`contentPadding: 0`) content, a
40
- * black canvas and programmatic-only dismiss (the flagship
41
- * image picker). A real Bloom `'fullScreen'` placement is a
42
- * follow-up if the approximation reads wrong on device.
39
+ * Currently unused.
40
+ * - `'fullScreen'` a flush black-canvas surface (`contentPadding: 0`,
41
+ * programmatic-only dismiss). Currently unused: the flagship
42
+ * photo picker now MORPHS in place as a `sheet` (it paints its
43
+ * own black canvas + bar inside the themed panel), so nothing
44
+ * needs a stacked full-bleed surface. Retained for a future
45
+ * route that genuinely must be full-bleed.
43
46
  */
44
47
 
45
48
  /**
46
49
  * Per-route surface configuration. Merges the historical `SheetRouteConfig`
47
50
  * knobs with the new {@link SurfacePresentation}.
48
51
  *
49
- * NOTE: `scrollable` / `manualActivation` / `dynamicBackdrop` / `handleComponent`
50
- * describe the in-tree bottom-sheet's pan + scroll behaviour. On Bloom's `Dialog`
51
- * surface those concerns are now owned by the shared `DialogBottomSheet` (it opts
52
- * pure custom children OUT of its internal ScrollView and manages the pan itself),
53
- * so for P1 these fields are informational — reserved for a future Bloom
54
- * bottom-placement passthrough. `presentation` (+ `scrollable` for the picker's
55
- * flush layout) is what actually drives the surface today.
52
+ * NOTE: `scrollable` is LIVE it is threaded through `bloomOptionsFor` onto the
53
+ * Bloom `Dialog` surface (`scrollable` prop), so a route that owns its own scroll
54
+ * container opts OUT of the Dialog's internal ScrollView. `manualActivation` /
55
+ * `dynamicBackdrop` / `handleComponent` remain informational reserved for a
56
+ * future Bloom bottom-placement passthrough; the shared `DialogBottomSheet`
57
+ * currently owns pan coordination itself.
56
58
  */
57
59
 
58
60
  /** Defaults shared across all routes — the canonical responsive "sheet". */
59
61
  const DEFAULT_SURFACE_CONFIG = {
60
62
  presentation: 'sheet',
61
63
  scrollable: true,
64
+ header: true,
65
+ morph: true,
66
+ stacks: false,
62
67
  manualActivation: true,
63
68
  dynamicBackdrop: true
64
69
  };
65
70
 
71
+ /**
72
+ * Routes that render NO Dialog nav header — they own their chrome:
73
+ * - `PaymentGateway` — the payment surface owns its controls.
74
+ * - `WelcomeNewUser` — a full-bleed onboarding wizard with its own step chrome.
75
+ * - `Profile` — a full profile view, no nav-header chrome.
76
+ * (The flagship full-bleed image picker is handled separately below.)
77
+ *
78
+ * `AccountDialog` used to be here — it now uses the SHARED Dialog nav header like
79
+ * every other screen (its per-view title/subtitle + view-back go through
80
+ * `useSurfaceHeader`), so the account/sign-in surface no longer feels bespoke.
81
+ *
82
+ * `AvatarCrop` used to be here too, for its own translucent Cancel/title/Done
83
+ * bar. It is now reached ONLY by navigating within a `ChangeAvatar` surface, and
84
+ * the Dialog's `header` is fixed for a surface's whole life — a headerless frame
85
+ * inside a header-mode surface would stack two bars. So the crop declares its
86
+ * title + its "Use photo" action through `useSurfaceHeader` like every other
87
+ * screen, and keeps only its dark crop stage.
88
+ */
89
+ const HEADERLESS_ROUTES = new Set(['PaymentGateway', 'WelcomeNewUser', 'Profile']);
90
+
66
91
  /**
67
92
  * Predicate matching `FileManagementScreen`'s internal `isImageOnlyPicker`
68
93
  * derivation. When the consumer restricts to image MIME types (no videos, no
@@ -82,15 +107,55 @@ const isFileManagementImageOnlyPicker = props => {
82
107
  };
83
108
 
84
109
  /**
85
- * Resolve the surface configuration for a route + props. Defaults to the
86
- * responsive sheet; the image-only FileManagement picker upgrades to a full-bleed
87
- * `'fullScreen'` surface that owns its own scrolling.
110
+ * Routes whose screen owns its OWN scroll container a FlatList /
111
+ * VirtualizedList (`ConnectedApps`, `TrustLeaderboard`, `FollowersList` /
112
+ * `FollowingList` via `UserListScreen`) or its own vertical `ScrollView`
113
+ * (`FileManagement`). These MUST opt out of the Dialog's internal ScrollView
114
+ * (`scrollable: false`) so there is exactly ONE scroll container — otherwise a
115
+ * VirtualizedList nests inside a plain ScrollView (RN warning) or a nested
116
+ * vertical scroll-in-scroll breaks windowing. Screens with only a HORIZONTAL
117
+ * ScrollView (FAQ's category row, Premium's plan carousel) are NOT listed — a
118
+ * horizontal scroller does not conflict with the Dialog's vertical scroll.
119
+ */
120
+ const OWN_SCROLL_CONTAINER_ROUTES = new Set(['FileManagement', 'ConnectedApps', 'TrustLeaderboard', 'FollowersList', 'FollowingList']);
121
+
122
+ /**
123
+ * Resolve the surface configuration for a route + props. Every route defaults to
124
+ * the responsive sheet and MORPHS in place when navigated to from within a surface
125
+ * (no route stacks — genuine overlays are Bloom-raw `surfaces.present`/`confirm`
126
+ * calls, outside this registry). The image-only FileManagement picker is a normal
127
+ * sheet that owns its own scroll + translucent bar (no Dialog nav header); every
128
+ * other own-scroller is marked `scrollable: false`.
88
129
  */
89
130
  export const getSurfaceConfig = (route, props) => {
90
131
  if (route === 'FileManagement' && isFileManagementImageOnlyPicker(props)) {
132
+ // The flagship photo picker MORPHS in place like every other screen. It is an
133
+ // own-scroller (`PhotoPickerView`'s FlatList) that paints its OWN full-bleed
134
+ // black canvas + translucent top bar INSIDE the themed panel, so it takes no
135
+ // Dialog nav header. It needs ROOM for the photo grid, so it declares an
136
+ // explicit LARGE morph target — the panel grows UP to a near-full-height,
137
+ // wider card on entry (and back down on pick→crop), the grid scrolling within.
138
+ return {
139
+ ...DEFAULT_SURFACE_CONFIG,
140
+ scrollable: false,
141
+ header: false,
142
+ frameSize: {
143
+ heightRatio: 0.9,
144
+ maxWidth: 640
145
+ }
146
+ };
147
+ }
148
+ if (HEADERLESS_ROUTES.has(route)) {
149
+ return {
150
+ ...DEFAULT_SURFACE_CONFIG,
151
+ header: false
152
+ };
153
+ }
154
+ if (OWN_SCROLL_CONTAINER_ROUTES.has(route)) {
155
+ // Own-scroller list screens keep the nav header (static, non-collapsing —
156
+ // there is no Dialog scroll offset to drive the large-title collapse).
91
157
  return {
92
158
  ...DEFAULT_SURFACE_CONFIG,
93
- presentation: 'fullScreen',
94
159
  scrollable: false
95
160
  };
96
161
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_registryCoversRoutes","DEFAULT_SURFACE_CONFIG","presentation","scrollable","manualActivation","dynamicBackdrop","isFileManagementImageOnlyPicker","props","selectMode","disabled","disabledMimeTypes","Array","isArray","length","has","predicate","some","mt","blocksVideos","startsWith","blocksAudio","blocksDocs","getSurfaceConfig","route","getSurfacePresentation"],"sourceRoot":"../../../../src","sources":["ui/navigation/surfaceRegistry.ts"],"mappings":";;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AA+CA;AACA;AACA;AACA;AACA;;AAMA,MAAMA,qBAA2C,GAAG,IAAI;AACxD,KAAKA,qBAAqB;;AAE1B;;AAEA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAiBA;AACA,MAAMC,sBAA0C,GAAG;EACjDC,YAAY,EAAE,OAAO;EACrBC,UAAU,EAAE,IAAI;EAChBC,gBAAgB,EAAE,IAAI;EACtBC,eAAe,EAAE;AACnB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,+BAA+B,GAAIC,KAA8B,IAAc;EACnF,IAAI,CAACA,KAAK,CAACC,UAAU,EAAE,OAAO,KAAK;EACnC,MAAMC,QAAQ,GAAGF,KAAK,CAACG,iBAAiB;EACxC,IAAI,CAACC,KAAK,CAACC,OAAO,CAACH,QAAQ,CAAC,IAAIA,QAAQ,CAACI,MAAM,KAAK,CAAC,EAAE,OAAO,KAAK;EACnE,MAAMC,GAAG,GAAIC,SAAkC,IAC7CN,QAAQ,CAACO,IAAI,CAAEC,EAAE,IAAK,OAAOA,EAAE,KAAK,QAAQ,IAAIF,SAAS,CAACE,EAAE,CAAC,CAAC;EAChE,MAAMC,YAAY,GAAGJ,GAAG,CAAEG,EAAE,IAAKA,EAAE,KAAK,QAAQ,IAAIA,EAAE,CAACE,UAAU,CAAC,QAAQ,CAAC,CAAC;EAC5E,MAAMC,WAAW,GAAGN,GAAG,CAAEG,EAAE,IAAKA,EAAE,KAAK,QAAQ,IAAIA,EAAE,CAACE,UAAU,CAAC,QAAQ,CAAC,CAAC;EAC3E,MAAME,UAAU,GAAGP,GAAG,CACnBG,EAAE,IAAKA,EAAE,KAAK,iBAAiB,IAAIA,EAAE,KAAK,cAAc,IAAIA,EAAE,CAACE,UAAU,CAAC,cAAc,CAC3F,CAAC;EACD,OAAOD,YAAY,IAAIE,WAAW,IAAIC,UAAU;AAClD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,gBAAgB,GAAGA,CAC9BC,KAAgB,EAChBhB,KAA8B,KACP;EACvB,IAAIgB,KAAK,KAAK,gBAAgB,IAAIjB,+BAA+B,CAACC,KAAK,CAAC,EAAE;IACxE,OAAO;MAAE,GAAGN,sBAAsB;MAAEC,YAAY,EAAE,YAAY;MAAEC,UAAU,EAAE;IAAM,CAAC;EACrF;EACA,OAAOF,sBAAsB;AAC/B,CAAC;;AAED;AACA,OAAO,MAAMuB,sBAAsB,GAAGA,CACpCD,KAAgB,EAChBhB,KAA8B,KACNe,gBAAgB,CAACC,KAAK,EAAEhB,KAAK,CAAC,CAACL,YAAY","ignoreList":[]}
1
+ {"version":3,"names":["_registryCoversRoutes","DEFAULT_SURFACE_CONFIG","presentation","scrollable","header","morph","stacks","manualActivation","dynamicBackdrop","HEADERLESS_ROUTES","Set","isFileManagementImageOnlyPicker","props","selectMode","disabled","disabledMimeTypes","Array","isArray","length","has","predicate","some","mt","blocksVideos","startsWith","blocksAudio","blocksDocs","OWN_SCROLL_CONTAINER_ROUTES","getSurfaceConfig","route","frameSize","heightRatio","maxWidth","getSurfacePresentation"],"sourceRoot":"../../../../src","sources":["ui/navigation/surfaceRegistry.ts"],"mappings":"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","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  import { createElement } from 'react';
4
4
  import { surfaces as bloomSurfaces } from '@oxyhq/bloom/surfaces';
5
5
  import SurfaceScreen from "../components/SurfaceScreen.js";
6
- import { getSurfaceConfig, getSurfacePresentation } from "./surfaceRegistry.js";
6
+ import { getSurfaceConfig } from "./surfaceRegistry.js";
7
7
  import { createSurfaceNavStack } from "./surfaceNavStack.js";
8
8
 
9
9
  /**
@@ -31,19 +31,55 @@ const FULLSCREEN_SURFACE_STYLE = {
31
31
  overflow: 'hidden'
32
32
  };
33
33
 
34
+ /**
35
+ * Every SDK screen owns its own background + content padding + scroll region
36
+ * (they were authored for the bare `BottomSheet`). So the shared `Dialog` must
37
+ * NOT add its own `contentPadding` on top (that double-pads) — it owns only the
38
+ * structural chrome: the surface card, the size cap (`maxHeightRatio`) and the
39
+ * scroll boundary. `contentPadding: 0` makes the screen's own padding the single
40
+ * source, matching the image-picker (`fullScreen`) surface.
41
+ */
42
+ const SDK_SURFACE_CHROME = {
43
+ contentPadding: 0,
44
+ maxHeightRatio: 0.9
45
+ };
46
+
34
47
  /** Map a route's presentation taxonomy onto concrete Bloom `Dialog` options. */
35
48
  function bloomOptionsFor(config) {
49
+ // Threaded onto every placement so a route that owns its own scroll container
50
+ // (`scrollable: false`) opts out of the Dialog's internal ScrollView.
51
+ const scrollable = config.scrollable;
52
+ // Surface-level morph opt-out (the DEPTH axis is untouched — this only governs
53
+ // whether the panel reshapes when the content is swapped in place). Each frame
54
+ // additionally declares its own opt-out through `useDialogFrame` in
55
+ // `SurfaceScreen`, so a surface can morph for most routes and not for one.
56
+ const morph = config.morph;
57
+ // Nav-header mode marker: turns on the Dialog's OWN sticky gradient nav bar +
58
+ // large collapsing title over its scroll content. The title/subtitle/action
59
+ // slots are contributed at runtime by the mounted screen via `useSurfaceHeader`
60
+ // (resolved in `SurfaceScreen`), so the seed here just enables the scaffold.
61
+ const header = config.header ? {
62
+ largeTitle: true
63
+ } : undefined;
36
64
  switch (config.presentation) {
37
65
  case 'center':
38
66
  return {
39
- placement: 'center'
67
+ placement: 'center',
68
+ scrollable,
69
+ header,
70
+ morph,
71
+ ...SDK_SURFACE_CHROME
40
72
  };
41
73
  case 'drawer':
42
74
  return {
43
75
  placement: {
44
76
  base: 'bottom',
45
77
  md: 'left'
46
- }
78
+ },
79
+ scrollable,
80
+ header,
81
+ morph,
82
+ ...SDK_SURFACE_CHROME
47
83
  };
48
84
  case 'fullScreen':
49
85
  // Approximate a full-screen surface with the shared `Dialog`: a tall
@@ -55,12 +91,18 @@ function bloomOptionsFor(config) {
55
91
  maxWidth: 640,
56
92
  maxHeightRatio: 0.9,
57
93
  dismissOnBackdrop: false,
94
+ scrollable,
95
+ morph,
58
96
  style: FULLSCREEN_SURFACE_STYLE,
59
97
  panelStyle: FULLSCREEN_SURFACE_STYLE
60
98
  };
61
99
  default:
62
100
  return {
63
- placement: SHEET_PLACEMENT
101
+ placement: SHEET_PLACEMENT,
102
+ scrollable,
103
+ header,
104
+ morph,
105
+ ...SDK_SURFACE_CHROME
64
106
  };
65
107
  }
66
108
  }
@@ -76,6 +118,8 @@ function bloomOptionsFor(config) {
76
118
  * The type-erased handle the `showBottomSheet` adapter needs from a tracked
77
119
  * surface: what it hosts, and how to drive/dismiss it. Kept result-type-free so
78
120
  * the (generic) `SurfaceInstance<K>` never has to be widened into a shared array.
121
+ * Exported so `OxyContext` can hold the surface it MORPHS the account dialog into
122
+ * (see {@link topRouteSurface}).
79
123
  */
80
124
 
81
125
  /**
@@ -85,6 +129,17 @@ function bloomOptionsFor(config) {
85
129
  * navigable base. Entries self-remove when their surface is dismissed.
86
130
  */
87
131
  const activeRouteSurfaces = [];
132
+
133
+ /**
134
+ * The frontmost DETACHED surface (the AccountDialog), while open. Detached
135
+ * surfaces are kept OUT of `activeRouteSurfaces` so `closeAllRouteSurfaces` never
136
+ * touches them — but the AccountDialog IS a valid morph target: a result-bearing
137
+ * flow opened from within it (the account-menu hero avatar → `ChangeAvatar`) must
138
+ * morph INTO it, not stack a new surface behind it. Invariant: whenever set, this
139
+ * surface is frontmost — every account-menu action that opens a tracked surface
140
+ * (Manage, Help, …) dismisses the dialog FIRST, so the two never overlap.
141
+ */
142
+ let detachedFrontSurface = null;
88
143
  function presentInternal(route, props, opts, track) {
89
144
  const navStack = createSurfaceNavStack(route, props);
90
145
  const config = getSurfaceConfig(route, props);
@@ -96,32 +151,47 @@ function presentInternal(route, props, opts, track) {
96
151
  const result = bloomSurfaces.present(surface => /*#__PURE__*/createElement(SurfaceScreen, {
97
152
  navStack,
98
153
  surface,
99
- presentation: config.presentation
154
+ dismissOnBackdrop: bloomOpts.dismissOnBackdrop ?? true
100
155
  }), bloomOpts);
101
156
  const instance = {
102
157
  route,
103
- presentation: config.presentation,
104
- navigate: (nextRoute, nextProps) => navStack.navigate(nextRoute, nextProps),
158
+ navigate: (nextRoute, nextProps) => {
159
+ const top = navStack.getTop();
160
+ if (top.route === nextRoute) navStack.replace(nextRoute, nextProps);else navStack.navigate(nextRoute, nextProps);
161
+ },
105
162
  replace: (nextRoute, nextProps) => navStack.replace(nextRoute, nextProps),
106
163
  goBack: () => navStack.goBack(),
107
164
  canGoBack: () => navStack.canGoBack(),
108
165
  setStep: step => navStack.setStep(step),
166
+ beginFlow: (nextRoute, nextProps) => navStack.beginFlow(nextRoute, nextProps),
109
167
  dismiss: dismissResult => navStack.requestDismiss(dismissResult),
110
168
  result
111
169
  };
170
+
171
+ // If the surface is torn down (backdrop, `closeAll`, host unmount) while a
172
+ // result-bearing sub-flow is still open, settle that flow so an awaiting caller
173
+ // never hangs. Runs for tracked and detached surfaces alike.
174
+ result.finally(() => navStack.abandonActiveFlow());
175
+ const tracked = {
176
+ route: instance.route,
177
+ navigate: instance.navigate,
178
+ goBack: instance.goBack,
179
+ beginFlow: instance.beginFlow,
180
+ dismiss: () => instance.dismiss()
181
+ };
112
182
  if (track) {
113
- const tracked = {
114
- route: instance.route,
115
- presentation: instance.presentation,
116
- navigate: instance.navigate,
117
- goBack: instance.goBack,
118
- dismiss: () => instance.dismiss()
119
- };
120
183
  activeRouteSurfaces.push(tracked);
121
184
  result.finally(() => {
122
185
  const index = activeRouteSurfaces.indexOf(tracked);
123
186
  if (index >= 0) activeRouteSurfaces.splice(index, 1);
124
187
  });
188
+ } else {
189
+ // Detached (the AccountDialog): NOT in the closeAll lineage, but recorded as
190
+ // the frontmost morph target so a flow opened from within it morphs IN.
191
+ detachedFrontSurface = tracked;
192
+ result.finally(() => {
193
+ if (detachedFrontSurface === tracked) detachedFrontSurface = null;
194
+ });
125
195
  }
126
196
  return instance;
127
197
  }
@@ -155,6 +225,16 @@ export function topRouteSurface() {
155
225
  return activeRouteSurfaces[activeRouteSurfaces.length - 1];
156
226
  }
157
227
 
228
+ /**
229
+ * The frontmost surface a result-bearing flow should morph INTO: the detached
230
+ * AccountDialog if open (it sits on top of everything), else the top tracked
231
+ * route surface. Used by {@link openWithinOrPresent} so the account-menu hero
232
+ * avatar morphs the dialog into `ChangeAvatar` instead of stacking a new surface.
233
+ */
234
+ export function topMorphableSurface() {
235
+ return detachedFrontSurface ?? topRouteSurface();
236
+ }
237
+
158
238
  /**
159
239
  * Dismiss every active route surface (the whole `showBottomSheet` session). The
160
240
  * AccountDialog is untracked, so it is untouched. Iterates a snapshot because
@@ -165,27 +245,59 @@ export function closeAllRouteSurfaces() {
165
245
  }
166
246
 
167
247
  /**
168
- * Drill in from a screen: navigate WITHIN the current surface when the target's
169
- * presentation matches, else present the target as a NEW surface on top (so a
170
- * sheet screen opening the full-bleed picker gets the right chrome).
248
+ * Drill in from a screen. From inside a surface the DEFAULT is to navigate WITHIN
249
+ * it the panel MORPHS from the current frame's size to the next's. EVERY screen
250
+ * morphs; a NEW surface is stacked on top ONLY when the target route declares
251
+ * `stacks` (reserved for genuine overlays — none today, since action sheets /
252
+ * confirms / prompts are Bloom-raw `surfaces.present` calls outside this
253
+ * registry). A stacked surface gets its own backdrop + entry animation; dismissing
254
+ * it unwinds back to the surface that opened it.
171
255
  */
172
- export function navigateWithinOrPresent(currentPresentation, navStack, route, props) {
256
+ export function navigateWithinOrPresent(navStack, route, props) {
173
257
  const nextProps = props ?? {};
174
- if (getSurfacePresentation(route, nextProps) === currentPresentation) {
175
- navStack.navigate(route, nextProps);
176
- } else {
258
+ if (getSurfaceConfig(route, nextProps).stacks) {
177
259
  presentRoute(route, nextProps);
260
+ } else {
261
+ navStack.navigate(route, nextProps);
178
262
  }
179
263
  }
180
264
 
181
- /** Replace variant of {@link navigateWithinOrPresent}. */
182
- export function replaceWithinOrPresent(currentPresentation, navStack, route, props) {
265
+ /** Replace variant of {@link navigateWithinOrPresent} (swaps the top frame). */
266
+ export function replaceWithinOrPresent(navStack, route, props) {
183
267
  const nextProps = props ?? {};
184
- if (getSurfacePresentation(route, nextProps) === currentPresentation) {
185
- navStack.replace(route, nextProps);
186
- } else {
268
+ if (getSurfaceConfig(route, nextProps).stacks) {
187
269
  presentRoute(route, nextProps);
270
+ } else {
271
+ navStack.replace(route, nextProps);
272
+ }
273
+ }
274
+
275
+ /**
276
+ * Open a result-bearing route the SAME way a drill-in navigates (the morph-by-
277
+ * default rule), but returning the route's dismissal RESULT to the caller.
278
+ *
279
+ * When a surface is already open and the target morphs into it (the default —
280
+ * anything not marked `stacks`), it runs as a SUB-FLOW inside that surface: the
281
+ * panel morphs from the current screen into the target, and the promise resolves
282
+ * with the target's `dismiss(result)` (or `undefined` when cancelled), popping
283
+ * back to the caller's frame WITHOUT closing the host. Otherwise (no surface, or a
284
+ * route that stacks) it presents a fresh surface and resolves with its dismissal —
285
+ * identical to the historical `present(route).result`.
286
+ *
287
+ * The entry seam for the avatar picker AND its nested "My Oxy files" media
288
+ * selector: each awaits its result whether it morphed into the caller's surface
289
+ * or opened cold, with no morph-vs-present branch of its own.
290
+ */
291
+ export function openWithinOrPresent(route, props) {
292
+ const nextProps = props ?? {};
293
+ const host = topMorphableSurface();
294
+ if (host && !getSurfaceConfig(route, nextProps).stacks) {
295
+ // Morph: run as a sub-flow inside the host. The erased `Promise<unknown>` is
296
+ // narrowed to this route's result at the typed boundary (the sub-flow resolves
297
+ // with exactly the value a descendant screen passes to `dismiss(result)`).
298
+ return host.beginFlow(route, nextProps);
188
299
  }
300
+ return present(route, props).result;
189
301
  }
190
302
 
191
303
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["createElement","surfaces","bloomSurfaces","SurfaceScreen","getSurfaceConfig","getSurfacePresentation","createSurfaceNavStack","SHEET_PLACEMENT","base","md","FULLSCREEN_SURFACE_STYLE","backgroundColor","overflow","bloomOptionsFor","config","presentation","placement","contentPadding","maxWidth","maxHeightRatio","dismissOnBackdrop","style","panelStyle","activeRouteSurfaces","presentInternal","route","props","opts","track","navStack","bloomOpts","label","result","present","surface","instance","navigate","nextRoute","nextProps","replace","goBack","canGoBack","setStep","step","dismiss","dismissResult","requestDismiss","tracked","push","finally","index","indexOf","splice","presentDetached","presentRoute","undefined","topRouteSurface","length","closeAllRouteSurfaces","reverse","navigateWithinOrPresent","currentPresentation","replaceWithinOrPresent","dismissAll","useSurfaces"],"sourceRoot":"../../../../src","sources":["ui/navigation/surfaces.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createElement","surfaces","bloomSurfaces","SurfaceScreen","getSurfaceConfig","createSurfaceNavStack","SHEET_PLACEMENT","base","md","FULLSCREEN_SURFACE_STYLE","backgroundColor","overflow","SDK_SURFACE_CHROME","contentPadding","maxHeightRatio","bloomOptionsFor","config","scrollable","morph","header","largeTitle","undefined","presentation","placement","maxWidth","dismissOnBackdrop","style","panelStyle","activeRouteSurfaces","detachedFrontSurface","presentInternal","route","props","opts","track","navStack","bloomOpts","label","result","present","surface","instance","navigate","nextRoute","nextProps","top","getTop","replace","goBack","canGoBack","setStep","step","beginFlow","dismiss","dismissResult","requestDismiss","finally","abandonActiveFlow","tracked","push","index","indexOf","splice","presentDetached","presentRoute","topRouteSurface","length","topMorphableSurface","closeAllRouteSurfaces","reverse","navigateWithinOrPresent","stacks","replaceWithinOrPresent","openWithinOrPresent","host","dismissAll","useSurfaces"],"sourceRoot":"../../../../src","sources":["ui/navigation/surfaces.ts"],"mappings":"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","ignoreList":[]}