@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
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SurfaceHeaderContext = void 0;
7
+ exports.useSurfaceHeader = useSurfaceHeader;
8
+ var _react = require("react");
9
+ /**
10
+ * The header content a mounted surface screen contributes at runtime: its
11
+ * (translated) title/subtitle and optional slot nodes. Back/close affordances
12
+ * are owned by the surface host (`SurfaceScreen`) — a screen never wires them.
13
+ *
14
+ * A `right` slot is the canonical place for a screen-state action (e.g. a Save
15
+ * button whose disabled/loading state reflects the form). Slot nodes MUST be
16
+ * referentially stable (memoize them with `useMemo`) so the header does not
17
+ * thrash.
18
+ */
19
+
20
+ /**
21
+ * Provided by {@link ../components/SurfaceScreen}. Bridges a screen's runtime
22
+ * header contribution up to the host, which merges it with the back/close
23
+ * wiring and drives the Dialog's own nav header. `null` outside a surface (or in
24
+ * a headerless surface), so {@link useSurfaceHeader} is a safe no-op there.
25
+ */
26
+ const SurfaceHeaderContext = exports.SurfaceHeaderContext = /*#__PURE__*/(0, _react.createContext)(null);
27
+
28
+ /**
29
+ * Declare the Dialog nav header's content from within a surface screen — its
30
+ * title/subtitle and any action slot. Merges over nothing (the host owns
31
+ * back/close), replaces on change, and clears on unmount. Call it unconditionally;
32
+ * it is a no-op outside a header-mode surface.
33
+ */
34
+ function useSurfaceHeader(content) {
35
+ const ctx = (0, _react.useContext)(SurfaceHeaderContext);
36
+ const set = ctx?.setContent;
37
+ // Set synchronously in the commit's layout phase so the bar/title fill in
38
+ // BEFORE the browser paints — no first-frame flash of an empty bar.
39
+ (0, _react.useLayoutEffect)(() => {
40
+ if (!set) return;
41
+ set(content ?? null);
42
+ return () => set(null);
43
+ // Slot nodes (`left`/`right`) are compared by identity; callers memoize them.
44
+ }, [set, content?.title, content?.titleContent, content?.subtitle, content?.largeTitle, content?.left, content?.right, content?.onBack]);
45
+ }
46
+ //# sourceMappingURL=useSurfaceHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","SurfaceHeaderContext","exports","createContext","useSurfaceHeader","content","ctx","useContext","set","setContent","useLayoutEffect","title","titleContent","subtitle","largeTitle","left","right","onBack"],"sourceRoot":"../../../../src","sources":["ui/hooks/useSurfaceHeader.ts"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAUA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,gBAAG,IAAAE,oBAAa,EAAmC,IAAI,CAAC;;AAEzF;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,gBAAgBA,CAACC,OAAgD,EAAQ;EACvF,MAAMC,GAAG,GAAG,IAAAC,iBAAU,EAACN,oBAAoB,CAAC;EAC5C,MAAMO,GAAG,GAAGF,GAAG,EAAEG,UAAU;EAC3B;EACA;EACA,IAAAC,sBAAe,EAAC,MAAM;IACpB,IAAI,CAACF,GAAG,EAAE;IACVA,GAAG,CAACH,OAAO,IAAI,IAAI,CAAC;IACpB,OAAO,MAAMG,GAAG,CAAC,IAAI,CAAC;IACtB;EACF,CAAC,EAAE,CACDA,GAAG,EACHH,OAAO,EAAEM,KAAK,EACdN,OAAO,EAAEO,YAAY,EACrBP,OAAO,EAAEQ,QAAQ,EACjBR,OAAO,EAAES,UAAU,EACnBT,OAAO,EAAEU,IAAI,EACbV,OAAO,EAAEW,KAAK,EACdX,OAAO,EAAEY,MAAM,CAChB,CAAC;AACJ","ignoreList":[]}
@@ -33,7 +33,7 @@ const EMPTY_SNAPSHOT = {
33
33
  * real per-account name / email / avatar / color.
34
34
  *
35
35
  * This is a thin binding over the shared `AccountDialogController` in
36
- * `@oxyhq/core` (the SAME headless source the {@link OxyAccountDialog} renders),
36
+ * `@oxyhq/core` (the SAME headless source the {@link OxyAccountDialogScreen} renders),
37
37
  * so there is ONE projection (`projectSwitchableAccounts`) and one switch path
38
38
  * (`controller.switchTo`) across the whole SDK — the local duplicate projection
39
39
  * this hook used to own has been removed. Every switch routes through
@@ -4,17 +4,38 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.closeAccountDialog = closeAccountDialog;
7
+ exports.getAccountDialogConsumerHooks = getAccountDialogConsumerHooks;
7
8
  exports.notifyAccountDialogVisibility = notifyAccountDialogVisibility;
8
9
  exports.openAccountDialog = openAccountDialog;
10
+ exports.registerAccountDialogConsumerHooks = registerAccountDialogConsumerHooks;
9
11
  exports.registerAccountDialogControls = registerAccountDialogControls;
10
12
  exports.subscribeToAccountDialog = subscribeToAccountDialog;
11
13
  /**
12
- * Imperative controls for the unified {@link OxyAccountDialog}.
14
+ * Imperative, outside-React entry points for the unified `OxyAccountDialogScreen`.
15
+ *
16
+ * These delegate to the live handles the mounted `OxyProvider` registers via
17
+ * {@link registerAccountDialogControls}. Under the hood `open`/`close` present
18
+ * and dismiss the `AccountDialog` surface on the shared Bloom surface stack
19
+ * (`OxyContext.openAccountDialog` → `presentDetached('AccountDialog', …)`), so
20
+ * whether the dialog is open is owned by that stack — this module is only the
21
+ * thin bridge that reaches the provider's controller (which sets the dialog
22
+ * view) from a non-React call site.
13
23
  */
14
24
 
15
- /** Live open/close handles registered by the mounted provider. */
25
+ /**
26
+ * Live open/close handles registered by the mounted provider. `open` presents
27
+ * the `AccountDialog` surface (and points its view); `close` dismisses it. Both
28
+ * are stack operations — this interface never carries visibility state.
29
+ */
30
+
31
+ /**
32
+ * Optional consumer overrides for account-dialog actions. `ProfileButton` (and
33
+ * similar hosts) register these while mounted so inbox/accounts can route
34
+ * "Manage" / "Add account" to app-local navigation instead of the SDK default.
35
+ */
16
36
 
17
37
  let controls = null;
38
+ let consumerHooks = null;
18
39
  const visibilityListeners = new Set();
19
40
  function registerAccountDialogControls(next) {
20
41
  controls = next;
@@ -25,6 +46,19 @@ function registerAccountDialogControls(next) {
25
46
  };
26
47
  }
27
48
 
49
+ /** Register app-local manage/add/profile handlers for the account dialog. */
50
+ function registerAccountDialogConsumerHooks(next) {
51
+ consumerHooks = next;
52
+ return () => {
53
+ if (consumerHooks === next) {
54
+ consumerHooks = null;
55
+ }
56
+ };
57
+ }
58
+ function getAccountDialogConsumerHooks() {
59
+ return consumerHooks;
60
+ }
61
+
28
62
  /** Open the account dialog on `view` (default `accounts`). No-op before mount. */
29
63
  function openAccountDialog(view) {
30
64
  controls?.open(view);
@@ -1 +1 @@
1
- {"version":3,"names":["controls","visibilityListeners","Set","registerAccountDialogControls","next","openAccountDialog","view","open","closeAccountDialog","close","notifyAccountDialogVisibility","visible","listener","subscribeToAccountDialog","add","delete"],"sourceRoot":"../../../../src","sources":["ui/navigation/accountDialogManager.ts"],"mappings":";;;;;;;;;;AAAA;AACA;AACA;;AAIA;;AAMA,IAAIA,QAAsC,GAAG,IAAI;AACjD,MAAMC,mBAAmB,GAAG,IAAIC,GAAG,CAA6B,CAAC;AAE1D,SAASC,6BAA6BA,CAACC,IAA2B,EAAc;EACrFJ,QAAQ,GAAGI,IAAI;EACf,OAAO,MAAM;IACX,IAAIJ,QAAQ,KAAKI,IAAI,EAAE;MACrBJ,QAAQ,GAAG,IAAI;IACjB;EACF,CAAC;AACH;;AAEA;AACO,SAASK,iBAAiBA,CAACC,IAAwB,EAAQ;EAChEN,QAAQ,EAAEO,IAAI,CAACD,IAAI,CAAC;AACtB;;AAEA;AACO,SAASE,kBAAkBA,CAAA,EAAS;EACzCR,QAAQ,EAAES,KAAK,CAAC,CAAC;AACnB;;AAEA;AACO,SAASC,6BAA6BA,CAACC,OAAgB,EAAQ;EACpE,KAAK,MAAMC,QAAQ,IAAIX,mBAAmB,EAAE;IAC1CW,QAAQ,CAACD,OAAO,CAAC;EACnB;AACF;;AAEA;AACO,SAASE,wBAAwBA,CAACD,QAAoC,EAAc;EACzFX,mBAAmB,CAACa,GAAG,CAACF,QAAQ,CAAC;EACjC,OAAO,MAAM;IACXX,mBAAmB,CAACc,MAAM,CAACH,QAAQ,CAAC;EACtC,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["controls","consumerHooks","visibilityListeners","Set","registerAccountDialogControls","next","registerAccountDialogConsumerHooks","getAccountDialogConsumerHooks","openAccountDialog","view","open","closeAccountDialog","close","notifyAccountDialogVisibility","visible","listener","subscribeToAccountDialog","add","delete"],"sourceRoot":"../../../../src","sources":["ui/navigation/accountDialogManager.ts"],"mappings":";;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;;AAMA;AACA;AACA;AACA;AACA;;AAOA,IAAIA,QAAsC,GAAG,IAAI;AACjD,IAAIC,aAAgD,GAAG,IAAI;AAC3D,MAAMC,mBAAmB,GAAG,IAAIC,GAAG,CAA6B,CAAC;AAE1D,SAASC,6BAA6BA,CAACC,IAA2B,EAAc;EACrFL,QAAQ,GAAGK,IAAI;EACf,OAAO,MAAM;IACX,IAAIL,QAAQ,KAAKK,IAAI,EAAE;MACrBL,QAAQ,GAAG,IAAI;IACjB;EACF,CAAC;AACH;;AAEA;AACO,SAASM,kCAAkCA,CAChDD,IAAuC,EAC3B;EACZJ,aAAa,GAAGI,IAAI;EACpB,OAAO,MAAM;IACX,IAAIJ,aAAa,KAAKI,IAAI,EAAE;MAC1BJ,aAAa,GAAG,IAAI;IACtB;EACF,CAAC;AACH;AAEO,SAASM,6BAA6BA,CAAA,EAAsC;EACjF,OAAON,aAAa;AACtB;;AAEA;AACO,SAASO,iBAAiBA,CAACC,IAAwB,EAAQ;EAChET,QAAQ,EAAEU,IAAI,CAACD,IAAI,CAAC;AACtB;;AAEA;AACO,SAASE,kBAAkBA,CAAA,EAAS;EACzCX,QAAQ,EAAEY,KAAK,CAAC,CAAC;AACnB;;AAEA;AACO,SAASC,6BAA6BA,CAACC,OAAgB,EAAQ;EACpE,KAAK,MAAMC,QAAQ,IAAIb,mBAAmB,EAAE;IAC1Ca,QAAQ,CAACD,OAAO,CAAC;EACnB;AACF;;AAEA;AACO,SAASE,wBAAwBA,CAACD,QAAoC,EAAc;EACzFb,mBAAmB,CAACe,GAAG,CAACF,QAAQ,CAAC;EACjC,OAAO,MAAM;IACXb,mBAAmB,CAACgB,MAAM,CAACH,QAAQ,CAAC;EACtC,CAAC;AACH","ignoreList":[]}
@@ -20,11 +20,10 @@ var _surfaces = require("./surfaces.js");
20
20
  */
21
21
 
22
22
  /**
23
- * Open a bottom-sheet route. If the top-most active surface hosts the SAME
24
- * presentation (the common all-sheets case) the route is drilled into it; a route
25
- * with a different presentation (the image picker's full-bleed surface) is
26
- * presented as a NEW surface on top. Opening with no active surface presents the
27
- * first one.
23
+ * Open a bottom-sheet route. By DEFAULT it drills into the top-most active
24
+ * surface morphing it in place (every screen morphs). A NEW surface is stacked
25
+ * on top only when the target route declares `stacks` (reserved for genuine
26
+ * overlays none today). Opening with no active surface presents the first one.
28
27
  *
29
28
  * `fullScreen` is accepted for signature compatibility and ignored — a route's
30
29
  * surface is now derived from its registry config, not a per-call flag.
@@ -37,7 +36,7 @@ const showBottomSheet = screenOrConfig => {
37
36
  return;
38
37
  }
39
38
  const top = (0, _surfaces.topRouteSurface)();
40
- if (top && top.presentation === (0, _surfaceRegistry.getSurfacePresentation)(screen, props)) {
39
+ if (top && !(0, _surfaceRegistry.getSurfaceConfig)(screen, props).stacks) {
41
40
  top.navigate(screen, props);
42
41
  } else {
43
42
  (0, _surfaces.presentRoute)(screen, props);
@@ -1 +1 @@
1
- {"version":3,"names":["_routes","require","_surfaceRegistry","_surfaces","showBottomSheet","screenOrConfig","screen","props","isValidRoute","__DEV__","console","warn","top","topRouteSurface","presentation","getSurfacePresentation","navigate","presentRoute","exports","closeBottomSheet","closeAllRouteSurfaces","goBack"],"sourceRoot":"../../../../src","sources":["ui/navigation/bottomSheetManager.ts"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMG,eAAe,GAC1BC,cAEgF,IACvE;EACT,MAAMC,MAAM,GAAG,OAAOD,cAAc,KAAK,QAAQ,GAAGA,cAAc,GAAGA,cAAc,CAACC,MAAM;EAC1F,MAAMC,KAAK,GAAG,OAAOF,cAAc,KAAK,QAAQ,GAAG,CAAC,CAAC,GAAGA,cAAc,CAACE,KAAK,IAAI,CAAC,CAAC;EAElF,IAAI,CAAC,IAAAC,oBAAY,EAACF,MAAM,CAAC,EAAE;IACzB,IAAIG,OAAO,EAAEC,OAAO,CAACC,IAAI,CAAC,gCAAgCL,MAAM,EAAE,CAAC;IACnE;EACF;EAEA,MAAMM,GAAG,GAAG,IAAAC,yBAAe,EAAC,CAAC;EAC7B,IAAID,GAAG,IAAIA,GAAG,CAACE,YAAY,KAAK,IAAAC,uCAAsB,EAACT,MAAM,EAAEC,KAAK,CAAC,EAAE;IACrEK,GAAG,CAACI,QAAQ,CAACV,MAAM,EAAEC,KAAK,CAAC;EAC7B,CAAC,MAAM;IACL,IAAAU,sBAAY,EAACX,MAAM,EAAEC,KAAK,CAAC;EAC7B;AACF,CAAC;;AAED;AAAAW,OAAA,CAAAd,eAAA,GAAAA,eAAA;AACO,MAAMe,gBAAgB,GAAGA,CAAA,KAAY;EAC1C,IAAAC,+BAAqB,EAAC,CAAC;AACzB,CAAC;;AAED;AACA;AACA;AACA;AAHAF,OAAA,CAAAC,gBAAA,GAAAA,gBAAA;AAIO,MAAME,MAAM,GAAGA,CAAA,KAAe;EACnC,MAAMT,GAAG,GAAG,IAAAC,yBAAe,EAAC,CAAC;EAC7B,OAAOD,GAAG,GAAGA,GAAG,CAACS,MAAM,CAAC,CAAC,GAAG,KAAK;AACnC,CAAC;AAACH,OAAA,CAAAG,MAAA,GAAAA,MAAA","ignoreList":[]}
1
+ {"version":3,"names":["_routes","require","_surfaceRegistry","_surfaces","showBottomSheet","screenOrConfig","screen","props","isValidRoute","__DEV__","console","warn","top","topRouteSurface","getSurfaceConfig","stacks","navigate","presentRoute","exports","closeBottomSheet","closeAllRouteSurfaces","goBack"],"sourceRoot":"../../../../src","sources":["ui/navigation/bottomSheetManager.ts"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMG,eAAe,GAC1BC,cAEgF,IACvE;EACT,MAAMC,MAAM,GAAG,OAAOD,cAAc,KAAK,QAAQ,GAAGA,cAAc,GAAGA,cAAc,CAACC,MAAM;EAC1F,MAAMC,KAAK,GAAG,OAAOF,cAAc,KAAK,QAAQ,GAAG,CAAC,CAAC,GAAGA,cAAc,CAACE,KAAK,IAAI,CAAC,CAAC;EAElF,IAAI,CAAC,IAAAC,oBAAY,EAACF,MAAM,CAAC,EAAE;IACzB,IAAIG,OAAO,EAAEC,OAAO,CAACC,IAAI,CAAC,gCAAgCL,MAAM,EAAE,CAAC;IACnE;EACF;EAEA,MAAMM,GAAG,GAAG,IAAAC,yBAAe,EAAC,CAAC;EAC7B,IAAID,GAAG,IAAI,CAAC,IAAAE,iCAAgB,EAACR,MAAM,EAAEC,KAAK,CAAC,CAACQ,MAAM,EAAE;IAClDH,GAAG,CAACI,QAAQ,CAACV,MAAM,EAAEC,KAAK,CAAC;EAC7B,CAAC,MAAM;IACL,IAAAU,sBAAY,EAACX,MAAM,EAAEC,KAAK,CAAC;EAC7B;AACF,CAAC;;AAED;AAAAW,OAAA,CAAAd,eAAA,GAAAA,eAAA;AACO,MAAMe,gBAAgB,GAAGA,CAAA,KAAY;EAC1C,IAAAC,+BAAqB,EAAC,CAAC;AACzB,CAAC;;AAED;AACA;AACA;AACA;AAHAF,OAAA,CAAAC,gBAAA,GAAAA,gBAAA;AAIO,MAAME,MAAM,GAAGA,CAAA,KAAe;EACnC,MAAMT,GAAG,GAAG,IAAAC,yBAAe,EAAC,CAAC;EAC7B,OAAOD,GAAG,GAAGA,GAAG,CAACS,MAAM,CAAC,CAAC,GAAG,KAAK;AACnC,CAAC;AAACH,OAAA,CAAAG,MAAA,GAAAA,MAAA","ignoreList":[]}
@@ -10,7 +10,7 @@ exports.isValidRoute = exports.getScreenComponent = void 0;
10
10
 
11
11
  // Define all available route names
12
12
 
13
- // Unified account switcher + sign-in surface (folded OxyAccountDialog body)
13
+ // Unified account switcher + sign-in surface (OxyAccountDialogScreen body)
14
14
 
15
15
  // Lazy screen loaders - functions that return screen components on-demand
16
16
  // This breaks the require cycle by deferring imports until screens are actually needed
@@ -50,14 +50,15 @@ const screenLoaders = {
50
50
  CreateAccount: () => require('../screens/CreateAccountScreen').default,
51
51
  AccountMembers: () => require('../screens/AccountMembersScreen').default,
52
52
  AccountSettings: () => require('../screens/AccountSettingsScreen').default,
53
+ ChangeAvatar: () => require('../screens/ChangeAvatarScreen').default,
53
54
  AvatarCrop: () => require('../screens/AvatarCropScreen').default,
54
55
  Notifications: () => require('../screens/NotificationsScreen').default,
55
56
  ConnectedApps: () => require('../screens/ConnectedAppsScreen').default,
56
57
  Preferences: () => require('../screens/PreferencesScreen').default,
57
58
  // Unified account switcher + sign-in surface. Its body lives in the
58
- // `OxyAccountDialog` component (folded from the standalone dialog); the
59
+ // `OxyAccountDialogScreen` component (folded from the standalone dialog); the
59
60
  // surface stack provides the Dialog chrome around it.
60
- AccountDialog: () => require('../components/OxyAccountDialog').default
61
+ AccountDialog: () => require('../components/OxyAccountDialogScreen').default
61
62
  };
62
63
 
63
64
  // Cache loaded components to avoid re-requiring
@@ -1 +1 @@
1
- {"version":3,"names":["screenLoaders","ManageAccount","require","default","AccountVerification","PaymentGateway","Profile","LanguageSelector","PrivacySettings","SearchSettings","FileManagement","HelpSupport","FAQ","Feedback","LegalDocuments","AppInfo","PremiumSubscription","WelcomeNewUser","UserLinks","HistoryView","SavesCollections","EditProfile","EditProfileField","LearnMoreUsernames","TrustCenter","TrustLeaderboard","TrustRewards","TrustRules","AboutTrust","TrustFAQ","FollowersList","FollowingList","CreateAccount","AccountMembers","AccountSettings","AvatarCrop","Notifications","ConnectedApps","Preferences","AccountDialog","screenCache","Map","getScreenComponent","routeName","has","get","loader","component","set","error","__DEV__","console","undefined","exports","isValidRoute"],"sourceRoot":"../../../../src","sources":["ui/navigation/routes.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["screenLoaders","ManageAccount","require","default","AccountVerification","PaymentGateway","Profile","LanguageSelector","PrivacySettings","SearchSettings","FileManagement","HelpSupport","FAQ","Feedback","LegalDocuments","AppInfo","PremiumSubscription","WelcomeNewUser","UserLinks","HistoryView","SavesCollections","EditProfile","EditProfileField","LearnMoreUsernames","TrustCenter","TrustLeaderboard","TrustRewards","TrustRules","AboutTrust","TrustFAQ","FollowersList","FollowingList","CreateAccount","AccountMembers","AccountSettings","ChangeAvatar","AvatarCrop","Notifications","ConnectedApps","Preferences","AccountDialog","screenCache","Map","getScreenComponent","routeName","has","get","loader","component","set","error","__DEV__","console","undefined","exports","isValidRoute"],"sourceRoot":"../../../../src","sources":["ui/navigation/routes.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.__invokeTopSurfaceBackForTests = __invokeTopSurfaceBackForTests;
7
+ exports.__resetSurfaceBackBridgeForTests = __resetSurfaceBackBridgeForTests;
8
+ exports.pushSurfaceBackHandler = pushSurfaceBackHandler;
9
+ var _reactNative = require("react-native");
10
+ /**
11
+ * Per-surface system-back handlers (Android hardware back + web Escape).
12
+ *
13
+ * Bloom's `SurfaceHost` dismisses the whole top surface on back/Escape. The SDK
14
+ * needs the old `BottomSheetRouter` semantics first: pop nav history, step a
15
+ * wizard back, then dismiss. A single global listener delegates to the topmost
16
+ * registered handler so stacked surfaces route correctly.
17
+ */
18
+
19
+ const handlerStack = [];
20
+ let androidInstalled = false;
21
+ let escapeInstalled = false;
22
+ function invokeTopHandler() {
23
+ const handler = handlerStack[handlerStack.length - 1];
24
+ return handler ? handler() : false;
25
+ }
26
+ function installAndroidHandler() {
27
+ if (androidInstalled || _reactNative.Platform.OS !== 'android') return;
28
+ androidInstalled = true;
29
+ _reactNative.BackHandler.addEventListener('hardwareBackPress', () => {
30
+ if (handlerStack.length === 0) return false;
31
+ return invokeTopHandler();
32
+ });
33
+ }
34
+ function installEscapeHandler() {
35
+ if (escapeInstalled || _reactNative.Platform.OS !== 'web') return;
36
+ if (typeof window === 'undefined') return;
37
+ escapeInstalled = true;
38
+ window.addEventListener('keydown', event => {
39
+ if (event.key !== 'Escape' || handlerStack.length === 0) return;
40
+ invokeTopHandler();
41
+ event.stopImmediatePropagation();
42
+ event.preventDefault();
43
+ }, true);
44
+ }
45
+
46
+ /** Register before Bloom's `SurfaceHost` mounts so Escape capture runs first. */
47
+ installEscapeHandler();
48
+
49
+ /** Push a handler for one live surface; returns unregister. */
50
+ function pushSurfaceBackHandler(handler) {
51
+ handlerStack.push(handler);
52
+ installAndroidHandler();
53
+ return () => {
54
+ const index = handlerStack.lastIndexOf(handler);
55
+ if (index >= 0) handlerStack.splice(index, 1);
56
+ };
57
+ }
58
+
59
+ /** Test-only: invoke the top handler. */
60
+ function __invokeTopSurfaceBackForTests() {
61
+ return invokeTopHandler();
62
+ }
63
+
64
+ /** Test-only reset. */
65
+ function __resetSurfaceBackBridgeForTests() {
66
+ handlerStack.length = 0;
67
+ }
68
+ //# sourceMappingURL=surfaceBackBridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","handlerStack","androidInstalled","escapeInstalled","invokeTopHandler","handler","length","installAndroidHandler","Platform","OS","BackHandler","addEventListener","installEscapeHandler","window","event","key","stopImmediatePropagation","preventDefault","pushSurfaceBackHandler","push","index","lastIndexOf","splice","__invokeTopSurfaceBackForTests","__resetSurfaceBackBridgeForTests"],"sourceRoot":"../../../../src","sources":["ui/navigation/surfaceBackBridge.ts"],"mappings":";;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,MAAMC,YAAkC,GAAG,EAAE;AAC7C,IAAIC,gBAAgB,GAAG,KAAK;AAC5B,IAAIC,eAAe,GAAG,KAAK;AAE3B,SAASC,gBAAgBA,CAAA,EAAY;EACnC,MAAMC,OAAO,GAAGJ,YAAY,CAACA,YAAY,CAACK,MAAM,GAAG,CAAC,CAAC;EACrD,OAAOD,OAAO,GAAGA,OAAO,CAAC,CAAC,GAAG,KAAK;AACpC;AAEA,SAASE,qBAAqBA,CAAA,EAAS;EACrC,IAAIL,gBAAgB,IAAIM,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;EACnDP,gBAAgB,GAAG,IAAI;EACvBQ,wBAAW,CAACC,gBAAgB,CAAC,mBAAmB,EAAE,MAAM;IACtD,IAAIV,YAAY,CAACK,MAAM,KAAK,CAAC,EAAE,OAAO,KAAK;IAC3C,OAAOF,gBAAgB,CAAC,CAAC;EAC3B,CAAC,CAAC;AACJ;AAEA,SAASQ,oBAAoBA,CAAA,EAAS;EACpC,IAAIT,eAAe,IAAIK,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;EAC9C,IAAI,OAAOI,MAAM,KAAK,WAAW,EAAE;EACnCV,eAAe,GAAG,IAAI;EACtBU,MAAM,CAACF,gBAAgB,CACrB,SAAS,EACRG,KAAK,IAAK;IACT,IAAIA,KAAK,CAACC,GAAG,KAAK,QAAQ,IAAId,YAAY,CAACK,MAAM,KAAK,CAAC,EAAE;IACzDF,gBAAgB,CAAC,CAAC;IAClBU,KAAK,CAACE,wBAAwB,CAAC,CAAC;IAChCF,KAAK,CAACG,cAAc,CAAC,CAAC;EACxB,CAAC,EACD,IACF,CAAC;AACH;;AAEA;AACAL,oBAAoB,CAAC,CAAC;;AAEtB;AACO,SAASM,sBAAsBA,CAACb,OAA2B,EAAc;EAC9EJ,YAAY,CAACkB,IAAI,CAACd,OAAO,CAAC;EAC1BE,qBAAqB,CAAC,CAAC;EACvB,OAAO,MAAM;IACX,MAAMa,KAAK,GAAGnB,YAAY,CAACoB,WAAW,CAAChB,OAAO,CAAC;IAC/C,IAAIe,KAAK,IAAI,CAAC,EAAEnB,YAAY,CAACqB,MAAM,CAACF,KAAK,EAAE,CAAC,CAAC;EAC/C,CAAC;AACH;;AAEA;AACO,SAASG,8BAA8BA,CAAA,EAAY;EACxD,OAAOnB,gBAAgB,CAAC,CAAC;AAC3B;;AAEA;AACO,SAASoB,gCAAgCA,CAAA,EAAS;EACvDvB,YAAY,CAACK,MAAM,GAAG,CAAC;AACzB","ignoreList":[]}
@@ -44,9 +44,46 @@ function createSurfaceNavStack(route, props) {
44
44
  } = store.getState();
45
45
  return frames[frames.length - 1];
46
46
  };
47
+
48
+ // Result-bearing sub-flows currently running in this surface (the morphed-in
49
+ // avatar picker, and — NESTED within it — the "My Oxy files" media selector).
50
+ // A STACK: flows nest (ChangeAvatar → FileManagement → back to ChangeAvatar).
51
+ // Held OUTSIDE the store (resolvers are functions; flow presence must not
52
+ // re-render frames). Each flow's `returnLength` is the frame count BEFORE its
53
+ // entry frame was pushed, so settling pops back to exactly the frame that
54
+ // started it. `flowStack` is ordered outer → inner; the top is the innermost.
55
+ const flowStack = [];
56
+ const requestDismiss = result => {
57
+ // Dismissing the whole surface abandons EVERY pending sub-flow — settle each
58
+ // promise so an awaiting caller (the avatar picker) never hangs.
59
+ while (flowStack.length) flowStack.pop()?.resolve(undefined);
60
+ if (store.getState().closing) return;
61
+ store.setState({
62
+ closing: true,
63
+ closeResult: result
64
+ });
65
+ };
66
+ const goBack = () => {
67
+ const {
68
+ frames
69
+ } = store.getState();
70
+ if (frames.length <= 1) return false;
71
+ const nextLength = frames.length - 1;
72
+ store.setState({
73
+ frames: frames.slice(0, -1)
74
+ });
75
+ // Backing out past a sub-flow's entry frame cancels it (resolve undefined).
76
+ // A single pop crosses at most one boundary, but loop for safety.
77
+ while (flowStack.length && nextLength <= flowStack[flowStack.length - 1].returnLength) {
78
+ flowStack.pop()?.resolve(undefined);
79
+ }
80
+ return true;
81
+ };
47
82
  return {
48
83
  store,
49
84
  getTop,
85
+ requestDismiss,
86
+ goBack,
50
87
  navigate(nextRoute, nextProps) {
51
88
  store.setState(state => ({
52
89
  frames: [...state.frames, makeFrame(nextRoute, nextProps)]
@@ -57,16 +94,6 @@ function createSurfaceNavStack(route, props) {
57
94
  frames: [...state.frames.slice(0, -1), makeFrame(nextRoute, nextProps)]
58
95
  }));
59
96
  },
60
- goBack() {
61
- const {
62
- frames
63
- } = store.getState();
64
- if (frames.length <= 1) return false;
65
- store.setState({
66
- frames: frames.slice(0, -1)
67
- });
68
- return true;
69
- },
70
97
  canGoBack() {
71
98
  const {
72
99
  frames
@@ -86,12 +113,32 @@ function createSurfaceNavStack(route, props) {
86
113
  };
87
114
  });
88
115
  },
89
- requestDismiss(result) {
90
- if (store.getState().closing) return;
91
- store.setState({
92
- closing: true,
93
- closeResult: result
116
+ beginFlow(nextRoute, nextProps) {
117
+ const returnLength = store.getState().frames.length;
118
+ store.setState(state => ({
119
+ frames: [...state.frames, makeFrame(nextRoute, nextProps)]
120
+ }));
121
+ return new Promise(resolve => {
122
+ flowStack.push({
123
+ returnLength,
124
+ resolve
125
+ });
94
126
  });
127
+ },
128
+ resolveFlowOrDismiss(result) {
129
+ const flow = flowStack.pop();
130
+ if (!flow) {
131
+ // No flow → this screen owns its surface; dismiss it as before.
132
+ requestDismiss(result);
133
+ return;
134
+ }
135
+ store.setState(state => ({
136
+ frames: state.frames.slice(0, flow.returnLength)
137
+ }));
138
+ flow.resolve(result);
139
+ },
140
+ abandonActiveFlow() {
141
+ while (flowStack.length) flowStack.pop()?.resolve(undefined);
95
142
  }
96
143
  };
97
144
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_vanilla","require","makeFrame","route","props","resolved","step","initialStep","createSurfaceNavStack","store","createStore","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":["_vanilla","require","makeFrame","route","props","resolved","step","initialStep","createSurfaceNavStack","store","createStore","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":[]}
@@ -35,38 +35,63 @@ void _registryCoversRoutes;
35
35
  * How a surface renders — the SDK's presentation taxonomy. Each value maps to a
36
36
  * concrete Bloom `Dialog` placement/chrome in `surfaces.ts`:
37
37
  *
38
- * - `'sheet'` → responsive `{ base: 'bottom', md: 'center' }` (the default:
39
- * a bottom sheet on narrow viewports, a centered card on wide).
40
- * - `'center'` → a plain centered modal at every width.
38
+ * - `'sheet'` → responsive `{ base: 'bottom', md: 'center' }` (the default,
39
+ * and since every screen morphs the presentation of EVERY
40
+ * route today: a bottom sheet on narrow, a centered card wide).
41
+ * - `'center'` → a plain centered modal at every width. Currently unused.
41
42
  * - `'drawer'` → responsive `{ base: 'bottom', md: 'left' }` side drawer.
42
- * - `'fullScreen'` → approximated with the shared `Dialog`: a full-height sheet /
43
- * large centered card, flush (`contentPadding: 0`) content, a
44
- * black canvas and programmatic-only dismiss (the flagship
45
- * image picker). A real Bloom `'fullScreen'` placement is a
46
- * follow-up if the approximation reads wrong on device.
43
+ * Currently unused.
44
+ * - `'fullScreen'` a flush black-canvas surface (`contentPadding: 0`,
45
+ * programmatic-only dismiss). Currently unused: the flagship
46
+ * photo picker now MORPHS in place as a `sheet` (it paints its
47
+ * own black canvas + bar inside the themed panel), so nothing
48
+ * needs a stacked full-bleed surface. Retained for a future
49
+ * route that genuinely must be full-bleed.
47
50
  */
48
51
 
49
52
  /**
50
53
  * Per-route surface configuration. Merges the historical `SheetRouteConfig`
51
54
  * knobs with the new {@link SurfacePresentation}.
52
55
  *
53
- * NOTE: `scrollable` / `manualActivation` / `dynamicBackdrop` / `handleComponent`
54
- * describe the in-tree bottom-sheet's pan + scroll behaviour. On Bloom's `Dialog`
55
- * surface those concerns are now owned by the shared `DialogBottomSheet` (it opts
56
- * pure custom children OUT of its internal ScrollView and manages the pan itself),
57
- * so for P1 these fields are informational — reserved for a future Bloom
58
- * bottom-placement passthrough. `presentation` (+ `scrollable` for the picker's
59
- * flush layout) is what actually drives the surface today.
56
+ * NOTE: `scrollable` is LIVE it is threaded through `bloomOptionsFor` onto the
57
+ * Bloom `Dialog` surface (`scrollable` prop), so a route that owns its own scroll
58
+ * container opts OUT of the Dialog's internal ScrollView. `manualActivation` /
59
+ * `dynamicBackdrop` / `handleComponent` remain informational reserved for a
60
+ * future Bloom bottom-placement passthrough; the shared `DialogBottomSheet`
61
+ * currently owns pan coordination itself.
60
62
  */
61
63
 
62
64
  /** Defaults shared across all routes — the canonical responsive "sheet". */
63
65
  const DEFAULT_SURFACE_CONFIG = {
64
66
  presentation: 'sheet',
65
67
  scrollable: true,
68
+ header: true,
69
+ morph: true,
70
+ stacks: false,
66
71
  manualActivation: true,
67
72
  dynamicBackdrop: true
68
73
  };
69
74
 
75
+ /**
76
+ * Routes that render NO Dialog nav header — they own their chrome:
77
+ * - `PaymentGateway` — the payment surface owns its controls.
78
+ * - `WelcomeNewUser` — a full-bleed onboarding wizard with its own step chrome.
79
+ * - `Profile` — a full profile view, no nav-header chrome.
80
+ * (The flagship full-bleed image picker is handled separately below.)
81
+ *
82
+ * `AccountDialog` used to be here — it now uses the SHARED Dialog nav header like
83
+ * every other screen (its per-view title/subtitle + view-back go through
84
+ * `useSurfaceHeader`), so the account/sign-in surface no longer feels bespoke.
85
+ *
86
+ * `AvatarCrop` used to be here too, for its own translucent Cancel/title/Done
87
+ * bar. It is now reached ONLY by navigating within a `ChangeAvatar` surface, and
88
+ * the Dialog's `header` is fixed for a surface's whole life — a headerless frame
89
+ * inside a header-mode surface would stack two bars. So the crop declares its
90
+ * title + its "Use photo" action through `useSurfaceHeader` like every other
91
+ * screen, and keeps only its dark crop stage.
92
+ */
93
+ const HEADERLESS_ROUTES = new Set(['PaymentGateway', 'WelcomeNewUser', 'Profile']);
94
+
70
95
  /**
71
96
  * Predicate matching `FileManagementScreen`'s internal `isImageOnlyPicker`
72
97
  * derivation. When the consumer restricts to image MIME types (no videos, no
@@ -86,15 +111,55 @@ const isFileManagementImageOnlyPicker = props => {
86
111
  };
87
112
 
88
113
  /**
89
- * Resolve the surface configuration for a route + props. Defaults to the
90
- * responsive sheet; the image-only FileManagement picker upgrades to a full-bleed
91
- * `'fullScreen'` surface that owns its own scrolling.
114
+ * Routes whose screen owns its OWN scroll container a FlatList /
115
+ * VirtualizedList (`ConnectedApps`, `TrustLeaderboard`, `FollowersList` /
116
+ * `FollowingList` via `UserListScreen`) or its own vertical `ScrollView`
117
+ * (`FileManagement`). These MUST opt out of the Dialog's internal ScrollView
118
+ * (`scrollable: false`) so there is exactly ONE scroll container — otherwise a
119
+ * VirtualizedList nests inside a plain ScrollView (RN warning) or a nested
120
+ * vertical scroll-in-scroll breaks windowing. Screens with only a HORIZONTAL
121
+ * ScrollView (FAQ's category row, Premium's plan carousel) are NOT listed — a
122
+ * horizontal scroller does not conflict with the Dialog's vertical scroll.
123
+ */
124
+ const OWN_SCROLL_CONTAINER_ROUTES = new Set(['FileManagement', 'ConnectedApps', 'TrustLeaderboard', 'FollowersList', 'FollowingList']);
125
+
126
+ /**
127
+ * Resolve the surface configuration for a route + props. Every route defaults to
128
+ * the responsive sheet and MORPHS in place when navigated to from within a surface
129
+ * (no route stacks — genuine overlays are Bloom-raw `surfaces.present`/`confirm`
130
+ * calls, outside this registry). The image-only FileManagement picker is a normal
131
+ * sheet that owns its own scroll + translucent bar (no Dialog nav header); every
132
+ * other own-scroller is marked `scrollable: false`.
92
133
  */
93
134
  const getSurfaceConfig = (route, props) => {
94
135
  if (route === 'FileManagement' && isFileManagementImageOnlyPicker(props)) {
136
+ // The flagship photo picker MORPHS in place like every other screen. It is an
137
+ // own-scroller (`PhotoPickerView`'s FlatList) that paints its OWN full-bleed
138
+ // black canvas + translucent top bar INSIDE the themed panel, so it takes no
139
+ // Dialog nav header. It needs ROOM for the photo grid, so it declares an
140
+ // explicit LARGE morph target — the panel grows UP to a near-full-height,
141
+ // wider card on entry (and back down on pick→crop), the grid scrolling within.
142
+ return {
143
+ ...DEFAULT_SURFACE_CONFIG,
144
+ scrollable: false,
145
+ header: false,
146
+ frameSize: {
147
+ heightRatio: 0.9,
148
+ maxWidth: 640
149
+ }
150
+ };
151
+ }
152
+ if (HEADERLESS_ROUTES.has(route)) {
153
+ return {
154
+ ...DEFAULT_SURFACE_CONFIG,
155
+ header: false
156
+ };
157
+ }
158
+ if (OWN_SCROLL_CONTAINER_ROUTES.has(route)) {
159
+ // Own-scroller list screens keep the nav header (static, non-collapsing —
160
+ // there is no Dialog scroll offset to drive the large-title collapse).
95
161
  return {
96
162
  ...DEFAULT_SURFACE_CONFIG,
97
- presentation: 'fullScreen',
98
163
  scrollable: false
99
164
  };
100
165
  }
@@ -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","exports","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;AACO,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;AAAAuB,OAAA,CAAAF,gBAAA,GAAAA,gBAAA;AACO,MAAMG,sBAAsB,GAAGA,CACpCF,KAAgB,EAChBhB,KAA8B,KACNe,gBAAgB,CAACC,KAAK,EAAEhB,KAAK,CAAC,CAACL,YAAY;AAACsB,OAAA,CAAAC,sBAAA,GAAAA,sBAAA","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","exports","getSurfacePresentation"],"sourceRoot":"../../../../src","sources":["ui/navigation/surfaceRegistry.ts"],"mappings":"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","ignoreList":[]}