@oxyhq/services 22.10.0 → 22.11.1
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.
- package/lib/commonjs/ui/components/AvatarCameraBadge.js +42 -0
- package/lib/commonjs/ui/components/AvatarCameraBadge.js.map +1 -0
- package/lib/commonjs/ui/components/OxyAccountDialogScreen.js +41 -19
- package/lib/commonjs/ui/components/OxyAccountDialogScreen.js.map +1 -1
- package/lib/commonjs/ui/components/OxyAuthChooser.js +640 -168
- package/lib/commonjs/ui/components/OxyAuthChooser.js.map +1 -1
- package/lib/commonjs/ui/components/ProfileButton.js +14 -0
- package/lib/commonjs/ui/components/ProfileButton.js.map +1 -1
- package/lib/commonjs/ui/components/ProfileSummaryCard.js +3 -23
- package/lib/commonjs/ui/components/ProfileSummaryCard.js.map +1 -1
- package/lib/commonjs/ui/components/SurfaceScreen.js +41 -5
- package/lib/commonjs/ui/components/SurfaceScreen.js.map +1 -1
- package/lib/commonjs/ui/components/oxyAuthChooserStyles.js +78 -26
- package/lib/commonjs/ui/components/oxyAuthChooserStyles.js.map +1 -1
- package/lib/commonjs/ui/components/photogrid/JustifiedPhotoGrid.js +83 -23
- package/lib/commonjs/ui/components/photogrid/JustifiedPhotoGrid.js.map +1 -1
- package/lib/commonjs/ui/context/OxyContext.js +73 -37
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/hooks/queries/queryKeys.js +18 -1
- package/lib/commonjs/ui/hooks/queries/queryKeys.js.map +1 -1
- package/lib/commonjs/ui/hooks/queries/useFileQueries.js +129 -0
- package/lib/commonjs/ui/hooks/queries/useFileQueries.js.map +1 -0
- package/lib/commonjs/ui/hooks/useAvatarPicker.js +36 -48
- package/lib/commonjs/ui/hooks/useAvatarPicker.js.map +1 -1
- package/lib/commonjs/ui/hooks/useReduceMotion.js +57 -0
- package/lib/commonjs/ui/hooks/useReduceMotion.js.map +1 -0
- package/lib/commonjs/ui/hooks/useSurfaceHeader.js +1 -1
- package/lib/commonjs/ui/hooks/useSurfaceHeader.js.map +1 -1
- package/lib/commonjs/ui/navigation/accountDialogManager.js +22 -0
- package/lib/commonjs/ui/navigation/accountDialogManager.js.map +1 -1
- package/lib/commonjs/ui/navigation/bottomSheetManager.js +5 -6
- package/lib/commonjs/ui/navigation/bottomSheetManager.js.map +1 -1
- package/lib/commonjs/ui/navigation/routes.js +1 -0
- package/lib/commonjs/ui/navigation/routes.js.map +1 -1
- package/lib/commonjs/ui/navigation/surfaceNavStack.js +62 -15
- package/lib/commonjs/ui/navigation/surfaceNavStack.js.map +1 -1
- package/lib/commonjs/ui/navigation/surfaceRegistry.js +38 -17
- package/lib/commonjs/ui/navigation/surfaceRegistry.js.map +1 -1
- package/lib/commonjs/ui/navigation/surfaces.js +98 -21
- package/lib/commonjs/ui/navigation/surfaces.js.map +1 -1
- package/lib/commonjs/ui/screens/AvatarCropScreen.js +281 -279
- package/lib/commonjs/ui/screens/AvatarCropScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/ChangeAvatarScreen.js +301 -0
- package/lib/commonjs/ui/screens/ChangeAvatarScreen.js.map +1 -0
- package/lib/commonjs/ui/screens/FileManagementScreen.js +194 -431
- package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +16 -48
- package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/fileManagement/FileLibraryError.js +63 -0
- package/lib/commonjs/ui/screens/fileManagement/FileLibraryError.js.map +1 -0
- package/lib/commonjs/ui/screens/fileManagement/PhotoPickerSection.js +71 -39
- package/lib/commonjs/ui/screens/fileManagement/PhotoPickerSection.js.map +1 -1
- package/lib/commonjs/ui/screens/fileManagement/hooks/useFileUploadState.js +44 -81
- package/lib/commonjs/ui/screens/fileManagement/hooks/useFileUploadState.js.map +1 -1
- package/lib/commonjs/ui/stores/resetSessionScopedStores.js +8 -3
- package/lib/commonjs/ui/stores/resetSessionScopedStores.js.map +1 -1
- package/lib/commonjs/ui/utils/avatarUtils.js +11 -2
- package/lib/commonjs/ui/utils/avatarUtils.js.map +1 -1
- package/lib/commonjs/ui/utils/fileManagement.js +0 -79
- package/lib/commonjs/ui/utils/fileManagement.js.map +1 -1
- package/lib/module/ui/components/AvatarCameraBadge.js +40 -0
- package/lib/module/ui/components/AvatarCameraBadge.js.map +1 -0
- package/lib/module/ui/components/OxyAccountDialogScreen.js +41 -19
- package/lib/module/ui/components/OxyAccountDialogScreen.js.map +1 -1
- package/lib/module/ui/components/OxyAuthChooser.js +642 -171
- package/lib/module/ui/components/OxyAuthChooser.js.map +1 -1
- package/lib/module/ui/components/ProfileButton.js +15 -1
- package/lib/module/ui/components/ProfileButton.js.map +1 -1
- package/lib/module/ui/components/ProfileSummaryCard.js +2 -23
- package/lib/module/ui/components/ProfileSummaryCard.js.map +1 -1
- package/lib/module/ui/components/SurfaceScreen.js +43 -7
- package/lib/module/ui/components/SurfaceScreen.js.map +1 -1
- package/lib/module/ui/components/oxyAuthChooserStyles.js +78 -26
- package/lib/module/ui/components/oxyAuthChooserStyles.js.map +1 -1
- package/lib/module/ui/components/photogrid/JustifiedPhotoGrid.js +83 -25
- package/lib/module/ui/components/photogrid/JustifiedPhotoGrid.js.map +1 -1
- package/lib/module/ui/context/OxyContext.js +74 -38
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/hooks/queries/queryKeys.js +16 -0
- package/lib/module/ui/hooks/queries/queryKeys.js.map +1 -1
- package/lib/module/ui/hooks/queries/useFileQueries.js +120 -0
- package/lib/module/ui/hooks/queries/useFileQueries.js.map +1 -0
- package/lib/module/ui/hooks/useAvatarPicker.js +37 -49
- package/lib/module/ui/hooks/useAvatarPicker.js.map +1 -1
- package/lib/module/ui/hooks/useReduceMotion.js +53 -0
- package/lib/module/ui/hooks/useReduceMotion.js.map +1 -0
- package/lib/module/ui/hooks/useSurfaceHeader.js +1 -1
- package/lib/module/ui/hooks/useSurfaceHeader.js.map +1 -1
- package/lib/module/ui/navigation/accountDialogManager.js +20 -0
- package/lib/module/ui/navigation/accountDialogManager.js.map +1 -1
- package/lib/module/ui/navigation/bottomSheetManager.js +6 -7
- package/lib/module/ui/navigation/bottomSheetManager.js.map +1 -1
- package/lib/module/ui/navigation/routes.js +1 -0
- package/lib/module/ui/navigation/routes.js.map +1 -1
- package/lib/module/ui/navigation/surfaceNavStack.js +62 -15
- package/lib/module/ui/navigation/surfaceNavStack.js.map +1 -1
- package/lib/module/ui/navigation/surfaceRegistry.js +38 -17
- package/lib/module/ui/navigation/surfaceRegistry.js.map +1 -1
- package/lib/module/ui/navigation/surfaces.js +97 -22
- package/lib/module/ui/navigation/surfaces.js.map +1 -1
- package/lib/module/ui/screens/AvatarCropScreen.js +283 -281
- package/lib/module/ui/screens/AvatarCropScreen.js.map +1 -1
- package/lib/module/ui/screens/ChangeAvatarScreen.js +298 -0
- package/lib/module/ui/screens/ChangeAvatarScreen.js.map +1 -0
- package/lib/module/ui/screens/FileManagementScreen.js +196 -433
- package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
- package/lib/module/ui/screens/WelcomeNewUserScreen.js +17 -49
- package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
- package/lib/module/ui/screens/fileManagement/FileLibraryError.js +59 -0
- package/lib/module/ui/screens/fileManagement/FileLibraryError.js.map +1 -0
- package/lib/module/ui/screens/fileManagement/PhotoPickerSection.js +71 -40
- package/lib/module/ui/screens/fileManagement/PhotoPickerSection.js.map +1 -1
- package/lib/module/ui/screens/fileManagement/hooks/useFileUploadState.js +45 -81
- package/lib/module/ui/screens/fileManagement/hooks/useFileUploadState.js.map +1 -1
- package/lib/module/ui/stores/resetSessionScopedStores.js +8 -3
- package/lib/module/ui/stores/resetSessionScopedStores.js.map +1 -1
- package/lib/module/ui/utils/avatarUtils.js +11 -2
- package/lib/module/ui/utils/avatarUtils.js.map +1 -1
- package/lib/module/ui/utils/fileManagement.js +0 -78
- package/lib/module/ui/utils/fileManagement.js.map +1 -1
- package/lib/typescript/commonjs/ui/components/AvatarCameraBadge.d.ts +4 -0
- package/lib/typescript/commonjs/ui/components/AvatarCameraBadge.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/OxyAccountDialogScreen.d.ts +2 -1
- package/lib/typescript/commonjs/ui/components/OxyAccountDialogScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/ProfileButton.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/ProfileSummaryCard.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/SurfaceScreen.d.ts +1 -4
- package/lib/typescript/commonjs/ui/components/SurfaceScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/oxyAuthChooserStyles.d.ts +71 -19
- package/lib/typescript/commonjs/ui/components/oxyAuthChooserStyles.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/photogrid/JustifiedPhotoGrid.d.ts +10 -8
- package/lib/typescript/commonjs/ui/components/photogrid/JustifiedPhotoGrid.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/queries/queryKeys.d.ts +9 -0
- package/lib/typescript/commonjs/ui/hooks/queries/queryKeys.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/queries/useFileQueries.d.ts +50 -0
- package/lib/typescript/commonjs/ui/hooks/queries/useFileQueries.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/hooks/useAvatarPicker.d.ts +15 -10
- package/lib/typescript/commonjs/ui/hooks/useAvatarPicker.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/useReduceMotion.d.ts +14 -0
- package/lib/typescript/commonjs/ui/hooks/useReduceMotion.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/hooks/useSurfaceHeader.d.ts +1 -1
- package/lib/typescript/commonjs/ui/hooks/useSurfaceHeader.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts +13 -0
- package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/navigation/bottomSheetManager.d.ts +4 -5
- package/lib/typescript/commonjs/ui/navigation/bottomSheetManager.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/navigation/routes.d.ts +1 -1
- package/lib/typescript/commonjs/ui/navigation/routes.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/navigation/surfaceNavStack.d.ts +21 -0
- package/lib/typescript/commonjs/ui/navigation/surfaceNavStack.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/navigation/surfaceRegistry.d.ts +73 -13
- package/lib/typescript/commonjs/ui/navigation/surfaceRegistry.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/navigation/surfaces.d.ts +42 -11
- package/lib/typescript/commonjs/ui/navigation/surfaces.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/AvatarCropScreen.d.ts +18 -5
- package/lib/typescript/commonjs/ui/screens/AvatarCropScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/ChangeAvatarScreen.d.ts +34 -0
- package/lib/typescript/commonjs/ui/screens/ChangeAvatarScreen.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/screens/FileManagementScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/fileManagement/FileLibraryError.d.ts +23 -0
- package/lib/typescript/commonjs/ui/screens/fileManagement/FileLibraryError.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/screens/fileManagement/PhotoPickerSection.d.ts +4 -0
- package/lib/typescript/commonjs/ui/screens/fileManagement/PhotoPickerSection.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/fileManagement/hooks/useFileUploadState.d.ts +10 -2
- package/lib/typescript/commonjs/ui/screens/fileManagement/hooks/useFileUploadState.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/stores/resetSessionScopedStores.d.ts +8 -1
- package/lib/typescript/commonjs/ui/stores/resetSessionScopedStores.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/types/navigation.d.ts +2 -0
- package/lib/typescript/commonjs/ui/types/navigation.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/utils/avatarUtils.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/utils/fileManagement.d.ts +0 -48
- package/lib/typescript/commonjs/ui/utils/fileManagement.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/AvatarCameraBadge.d.ts +4 -0
- package/lib/typescript/module/ui/components/AvatarCameraBadge.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/OxyAccountDialogScreen.d.ts +2 -1
- package/lib/typescript/module/ui/components/OxyAccountDialogScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/ProfileButton.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/ProfileSummaryCard.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/SurfaceScreen.d.ts +1 -4
- package/lib/typescript/module/ui/components/SurfaceScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/oxyAuthChooserStyles.d.ts +71 -19
- package/lib/typescript/module/ui/components/oxyAuthChooserStyles.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/photogrid/JustifiedPhotoGrid.d.ts +10 -8
- package/lib/typescript/module/ui/components/photogrid/JustifiedPhotoGrid.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/queries/queryKeys.d.ts +9 -0
- package/lib/typescript/module/ui/hooks/queries/queryKeys.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/queries/useFileQueries.d.ts +50 -0
- package/lib/typescript/module/ui/hooks/queries/useFileQueries.d.ts.map +1 -0
- package/lib/typescript/module/ui/hooks/useAvatarPicker.d.ts +15 -10
- package/lib/typescript/module/ui/hooks/useAvatarPicker.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/useReduceMotion.d.ts +14 -0
- package/lib/typescript/module/ui/hooks/useReduceMotion.d.ts.map +1 -0
- package/lib/typescript/module/ui/hooks/useSurfaceHeader.d.ts +1 -1
- package/lib/typescript/module/ui/hooks/useSurfaceHeader.d.ts.map +1 -1
- package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts +13 -0
- package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts.map +1 -1
- package/lib/typescript/module/ui/navigation/bottomSheetManager.d.ts +4 -5
- package/lib/typescript/module/ui/navigation/bottomSheetManager.d.ts.map +1 -1
- package/lib/typescript/module/ui/navigation/routes.d.ts +1 -1
- package/lib/typescript/module/ui/navigation/routes.d.ts.map +1 -1
- package/lib/typescript/module/ui/navigation/surfaceNavStack.d.ts +21 -0
- package/lib/typescript/module/ui/navigation/surfaceNavStack.d.ts.map +1 -1
- package/lib/typescript/module/ui/navigation/surfaceRegistry.d.ts +73 -13
- package/lib/typescript/module/ui/navigation/surfaceRegistry.d.ts.map +1 -1
- package/lib/typescript/module/ui/navigation/surfaces.d.ts +42 -11
- package/lib/typescript/module/ui/navigation/surfaces.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/AvatarCropScreen.d.ts +18 -5
- package/lib/typescript/module/ui/screens/AvatarCropScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/ChangeAvatarScreen.d.ts +34 -0
- package/lib/typescript/module/ui/screens/ChangeAvatarScreen.d.ts.map +1 -0
- package/lib/typescript/module/ui/screens/FileManagementScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/fileManagement/FileLibraryError.d.ts +23 -0
- package/lib/typescript/module/ui/screens/fileManagement/FileLibraryError.d.ts.map +1 -0
- package/lib/typescript/module/ui/screens/fileManagement/PhotoPickerSection.d.ts +4 -0
- package/lib/typescript/module/ui/screens/fileManagement/PhotoPickerSection.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/fileManagement/hooks/useFileUploadState.d.ts +10 -2
- package/lib/typescript/module/ui/screens/fileManagement/hooks/useFileUploadState.d.ts.map +1 -1
- package/lib/typescript/module/ui/stores/resetSessionScopedStores.d.ts +8 -1
- package/lib/typescript/module/ui/stores/resetSessionScopedStores.d.ts.map +1 -1
- package/lib/typescript/module/ui/types/navigation.d.ts +2 -0
- package/lib/typescript/module/ui/types/navigation.d.ts.map +1 -1
- package/lib/typescript/module/ui/utils/avatarUtils.d.ts.map +1 -1
- package/lib/typescript/module/ui/utils/fileManagement.d.ts +0 -48
- package/lib/typescript/module/ui/utils/fileManagement.d.ts.map +1 -1
- package/package.json +11 -7
- package/src/ui/components/AvatarCameraBadge.tsx +35 -0
- package/src/ui/components/OxyAccountDialogScreen.tsx +38 -15
- package/src/ui/components/OxyAuthChooser.tsx +722 -185
- package/src/ui/components/ProfileButton.tsx +16 -1
- package/src/ui/components/ProfileSummaryCard.tsx +2 -25
- package/src/ui/components/SurfaceScreen.tsx +48 -14
- package/src/ui/components/oxyAuthChooserStyles.ts +75 -23
- package/src/ui/components/photogrid/JustifiedPhotoGrid.tsx +158 -84
- package/src/ui/components/photogrid/__tests__/chunkPhotos.test.ts +51 -0
- package/src/ui/context/OxyContext.tsx +74 -34
- package/src/ui/hooks/queries/queryKeys.ts +15 -0
- package/src/ui/hooks/queries/useFileQueries.ts +162 -0
- package/src/ui/hooks/useAvatarPicker.ts +38 -53
- package/src/ui/hooks/useReduceMotion.ts +58 -0
- package/src/ui/hooks/useSurfaceHeader.ts +2 -1
- package/src/ui/navigation/__tests__/getSurfaceConfig.test.ts +55 -7
- package/src/ui/navigation/__tests__/surfaceNavStack.test.ts +81 -0
- package/src/ui/navigation/accountDialogManager.ts +28 -0
- package/src/ui/navigation/bottomSheetManager.ts +6 -7
- package/src/ui/navigation/routes.ts +3 -1
- package/src/ui/navigation/surfaceNavStack.ts +72 -9
- package/src/ui/navigation/surfaceRegistry.ts +91 -17
- package/src/ui/navigation/surfaces.ts +108 -29
- package/src/ui/screens/AvatarCropScreen.tsx +336 -298
- package/src/ui/screens/ChangeAvatarScreen.tsx +359 -0
- package/src/ui/screens/FileManagementScreen.tsx +189 -432
- package/src/ui/screens/WelcomeNewUserScreen.tsx +18 -48
- package/src/ui/screens/fileManagement/FileLibraryError.tsx +56 -0
- package/src/ui/screens/fileManagement/PhotoPickerSection.tsx +73 -44
- package/src/ui/screens/fileManagement/hooks/useFileUploadState.ts +55 -71
- package/src/ui/stores/resetSessionScopedStores.ts +8 -3
- package/src/ui/types/navigation.ts +2 -0
- package/src/ui/utils/avatarUtils.ts +11 -2
- package/src/ui/utils/fileManagement.ts +1 -101
- package/lib/commonjs/ui/stores/fileStore.js +0 -153
- package/lib/commonjs/ui/stores/fileStore.js.map +0 -1
- package/lib/module/ui/stores/fileStore.js +0 -145
- package/lib/module/ui/stores/fileStore.js.map +0 -1
- package/lib/typescript/commonjs/ui/stores/fileStore.d.ts +0 -31
- package/lib/typescript/commonjs/ui/stores/fileStore.d.ts.map +0 -1
- package/lib/typescript/module/ui/stores/fileStore.d.ts +0 -31
- package/lib/typescript/module/ui/stores/fileStore.d.ts.map +0 -1
- package/src/ui/stores/fileStore.ts +0 -118
|
@@ -11,11 +11,10 @@ import type { RouteName } from './routes.js';
|
|
|
11
11
|
* z-order / backdrop / dismiss so nothing clashes.
|
|
12
12
|
*/
|
|
13
13
|
/**
|
|
14
|
-
* Open a bottom-sheet route.
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* first one.
|
|
14
|
+
* Open a bottom-sheet route. By DEFAULT it drills into the top-most active
|
|
15
|
+
* surface — morphing it in place (every screen morphs). A NEW surface is stacked
|
|
16
|
+
* on top only when the target route declares `stacks` (reserved for genuine
|
|
17
|
+
* overlays — none today). Opening with no active surface presents the first one.
|
|
19
18
|
*
|
|
20
19
|
* `fullScreen` is accepted for signature compatibility and ignored — a route's
|
|
21
20
|
* surface is now derived from its registry config, not a per-call flag.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bottomSheetManager.d.ts","sourceRoot":"","sources":["../../../../../src/ui/navigation/bottomSheetManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAU,CAAC;AAK1C;;;;;;;;;;GAUG;AAEH
|
|
1
|
+
{"version":3,"file":"bottomSheetManager.d.ts","sourceRoot":"","sources":["../../../../../src/ui/navigation/bottomSheetManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAU,CAAC;AAK1C;;;;;;;;;;GAUG;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,GAC1B,gBACI,SAAS,GACT;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,KAC/E,IAeF,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,gBAAgB,QAAO,IAEnC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,MAAM,QAAO,OAGzB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ComponentType } from 'react';
|
|
2
2
|
import type { BaseScreenProps } from '../types/navigation.js';
|
|
3
|
-
export type RouteName = 'ManageAccount' | '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';
|
|
3
|
+
export type RouteName = 'ManageAccount' | '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';
|
|
4
4
|
export declare const getScreenComponent: (routeName: RouteName) => ComponentType<BaseScreenProps> | undefined;
|
|
5
5
|
export declare const isValidRoute: (routeName: string) => routeName is RouteName;
|
|
6
6
|
//# sourceMappingURL=routes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../../../src/ui/navigation/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAqB,CAAC;AAO3D,MAAM,MAAM,SAAS,GACf,eAAe,GACf,qBAAqB,GACrB,gBAAgB,GAChB,SAAS,GACT,kBAAkB,GAClB,iBAAiB,GACjB,gBAAgB,GAChB,gBAAgB,GAChB,aAAa,GACb,KAAK,GACL,UAAU,GACV,gBAAgB,GAChB,SAAS,GACT,qBAAqB,GACrB,gBAAgB,GAChB,WAAW,GACX,aAAa,GACb,kBAAkB,GAClB,aAAa,GACb,kBAAkB,GAClB,oBAAoB,GACpB,aAAa,GACb,kBAAkB,GAClB,cAAc,GACd,YAAY,GACZ,YAAY,GACZ,UAAU,GACV,eAAe,GACf,eAAe,GACf,eAAe,GACf,gBAAgB,GAChB,iBAAiB,GACjB,YAAY,GACZ,eAAe,GACf,eAAe,GACf,aAAa,GACb,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../../../src/ui/navigation/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAqB,CAAC;AAO3D,MAAM,MAAM,SAAS,GACf,eAAe,GACf,qBAAqB,GACrB,gBAAgB,GAChB,SAAS,GACT,kBAAkB,GAClB,iBAAiB,GACjB,gBAAgB,GAChB,gBAAgB,GAChB,aAAa,GACb,KAAK,GACL,UAAU,GACV,gBAAgB,GAChB,SAAS,GACT,qBAAqB,GACrB,gBAAgB,GAChB,WAAW,GACX,aAAa,GACb,kBAAkB,GAClB,aAAa,GACb,kBAAkB,GAClB,oBAAoB,GACpB,aAAa,GACb,kBAAkB,GAClB,cAAc,GACd,YAAY,GACZ,YAAY,GACZ,UAAU,GACV,eAAe,GACf,eAAe,GACf,eAAe,GACf,gBAAgB,GAChB,iBAAiB,GACjB,cAAc,GACd,YAAY,GACZ,eAAe,GACf,eAAe,GACf,aAAa,GACb,eAAe,CAAC;AAuDtB,eAAO,MAAM,kBAAkB,GAAI,WAAW,SAAS,KAAG,aAAa,CAAC,eAAe,CAAC,GAAG,SAsB1F,CAAC;AAIF,eAAO,MAAM,YAAY,GAAI,WAAW,MAAM,KAAG,SAAS,IAAI,SAE7D,CAAC"}
|
|
@@ -44,6 +44,27 @@ export interface SurfaceNavStack {
|
|
|
44
44
|
setStep(step: number): void;
|
|
45
45
|
/** Request dismissal of the whole surface, resolving its promise with `result`. */
|
|
46
46
|
requestDismiss(result?: unknown): void;
|
|
47
|
+
/**
|
|
48
|
+
* Begin a result-bearing SUB-FLOW inside this surface: push `route` as a frame
|
|
49
|
+
* and return a promise that settles when the flow finishes — a descendant's
|
|
50
|
+
* `dismiss(result)` resolves it with `result`, backing out of the flow's entry
|
|
51
|
+
* frame resolves it with `undefined` (cancelled) — popping the surface back to
|
|
52
|
+
* the frame that started the flow WITHOUT dismissing it. This is how a screen
|
|
53
|
+
* already living inside a surface (EditProfile, ManageAccount, ChangeAvatar)
|
|
54
|
+
* opens the avatar picker / media selector as a MORPH instead of a stacked
|
|
55
|
+
* surface while still awaiting its result. Flows NEST (ChangeAvatar → the "My
|
|
56
|
+
* Oxy files" selector → back), maintained as a stack.
|
|
57
|
+
*/
|
|
58
|
+
beginFlow(route: RouteName, props?: Record<string, unknown>): Promise<unknown>;
|
|
59
|
+
/**
|
|
60
|
+
* Resolve the INNERMOST active sub-flow with `result` and pop back to its entry
|
|
61
|
+
* (the frame that called {@link beginFlow}), leaving the surface open. With NO
|
|
62
|
+
* active flow this falls back to {@link requestDismiss} — so a screen presented
|
|
63
|
+
* as its OWN surface still dismisses it. Wired to every screen's `dismiss` prop.
|
|
64
|
+
*/
|
|
65
|
+
resolveFlowOrDismiss(result?: unknown): void;
|
|
66
|
+
/** Settle EVERY still-pending sub-flow with `undefined` (the surface is going away). */
|
|
67
|
+
abandonActiveFlow(): void;
|
|
47
68
|
/** The current (top) frame. */
|
|
48
69
|
getTop(): NavFrame;
|
|
49
70
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"surfaceNavStack.d.ts","sourceRoot":"","sources":["../../../../../src/ui/navigation/surfaceNavStack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAU,CAAC;AAE1C;;;;;;;;;;;;;;GAcG;AAEH,8CAA8C;AAC9C,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,oFAAoF;IACpF,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,0DAA0D;IAC1D,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,gFAAgF;IAChF,OAAO,EAAE,OAAO,CAAC;IACjB,8EAA8E;IAC9E,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC/B,kCAAkC;IAClC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAClE,sDAAsD;IACtD,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACjE,qEAAqE;IACrE,MAAM,IAAI,OAAO,CAAC;IAClB,0EAA0E;IAC1E,SAAS,IAAI,OAAO,CAAC;IACrB,2CAA2C;IAC3C,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,mFAAmF;IACnF,cAAc,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACvC,+BAA+B;IAC/B,MAAM,IAAI,QAAQ,CAAC;CACpB;AAQD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,SAAS,EAChB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,eAAe,
|
|
1
|
+
{"version":3,"file":"surfaceNavStack.d.ts","sourceRoot":"","sources":["../../../../../src/ui/navigation/surfaceNavStack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAU,CAAC;AAE1C;;;;;;;;;;;;;;GAcG;AAEH,8CAA8C;AAC9C,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,oFAAoF;IACpF,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,0DAA0D;IAC1D,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,gFAAgF;IAChF,OAAO,EAAE,OAAO,CAAC;IACjB,8EAA8E;IAC9E,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC/B,kCAAkC;IAClC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAClE,sDAAsD;IACtD,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACjE,qEAAqE;IACrE,MAAM,IAAI,OAAO,CAAC;IAClB,0EAA0E;IAC1E,SAAS,IAAI,OAAO,CAAC;IACrB,2CAA2C;IAC3C,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,mFAAmF;IACnF,cAAc,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACvC;;;;;;;;;;OAUG;IACH,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/E;;;;;OAKG;IACH,oBAAoB,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7C,wFAAwF;IACxF,iBAAiB,IAAI,IAAI,CAAC;IAC1B,+BAA+B;IAC/B,MAAM,IAAI,QAAQ,CAAC;CACpB;AAQD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,SAAS,EAChB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,eAAe,CAwFjB"}
|
|
@@ -2,6 +2,7 @@ import type { ReactNode } from 'react';
|
|
|
2
2
|
import type { AccountDialogView, FileMetadata } from '@oxyhq/core';
|
|
3
3
|
import type { RouteName } from './routes.js';
|
|
4
4
|
import type { AvatarCropResult } from '../screens/AvatarCropScreen.js';
|
|
5
|
+
import type { AvatarRemovalResult } from '../screens/ChangeAvatarScreen.js';
|
|
5
6
|
/**
|
|
6
7
|
* The SDK's typed surface registry — the contract layer the SDK stacks on top of
|
|
7
8
|
* Bloom's content-agnostic surface stack (`@oxyhq/bloom/surfaces`). One entry per
|
|
@@ -57,7 +58,17 @@ export interface SurfaceRegistry {
|
|
|
57
58
|
CreateAccount: SurfaceRoute;
|
|
58
59
|
AccountMembers: SurfaceRoute;
|
|
59
60
|
AccountSettings: SurfaceRoute;
|
|
60
|
-
/**
|
|
61
|
+
/**
|
|
62
|
+
* Profile-picture source list — the ONE entry into changing an avatar. Every
|
|
63
|
+
* source that yields an image navigates WITHIN this surface to `AvatarCrop`
|
|
64
|
+
* (so the panel morphs), and the crop's own dismissal resolves this surface.
|
|
65
|
+
* Hence the union: a confirmed crop, or the user removing their photo.
|
|
66
|
+
*/
|
|
67
|
+
ChangeAvatar: SurfaceRoute<Record<string, unknown>, AvatarCropResult | AvatarRemovalResult>;
|
|
68
|
+
/**
|
|
69
|
+
* Square-crop editor. Dismissed with the cropped {@link AvatarCropResult}.
|
|
70
|
+
* Reached only by navigating within a `ChangeAvatar` surface.
|
|
71
|
+
*/
|
|
61
72
|
AvatarCrop: SurfaceRoute<Record<string, unknown>, AvatarCropResult>;
|
|
62
73
|
Notifications: SurfaceRoute;
|
|
63
74
|
ConnectedApps: SurfaceRoute;
|
|
@@ -75,15 +86,18 @@ export type SurfaceResult<K extends RouteName> = SurfaceRegistry[K]['result'];
|
|
|
75
86
|
* How a surface renders — the SDK's presentation taxonomy. Each value maps to a
|
|
76
87
|
* concrete Bloom `Dialog` placement/chrome in `surfaces.ts`:
|
|
77
88
|
*
|
|
78
|
-
* - `'sheet'` → responsive `{ base: 'bottom', md: 'center' }` (the default
|
|
79
|
-
*
|
|
80
|
-
*
|
|
89
|
+
* - `'sheet'` → responsive `{ base: 'bottom', md: 'center' }` (the default,
|
|
90
|
+
* and — since every screen morphs — the presentation of EVERY
|
|
91
|
+
* route today: a bottom sheet on narrow, a centered card wide).
|
|
92
|
+
* - `'center'` → a plain centered modal at every width. Currently unused.
|
|
81
93
|
* - `'drawer'` → responsive `{ base: 'bottom', md: 'left' }` side drawer.
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
*
|
|
86
|
-
*
|
|
94
|
+
* Currently unused.
|
|
95
|
+
* - `'fullScreen'` → a flush black-canvas surface (`contentPadding: 0`,
|
|
96
|
+
* programmatic-only dismiss). Currently unused: the flagship
|
|
97
|
+
* photo picker now MORPHS in place as a `sheet` (it paints its
|
|
98
|
+
* own black canvas + bar inside the themed panel), so nothing
|
|
99
|
+
* needs a stacked full-bleed surface. Retained for a future
|
|
100
|
+
* route that genuinely must be full-bleed.
|
|
87
101
|
*/
|
|
88
102
|
export type SurfacePresentation = 'sheet' | 'center' | 'drawer' | 'fullScreen';
|
|
89
103
|
/**
|
|
@@ -106,6 +120,50 @@ export interface SurfaceRouteConfig {
|
|
|
106
120
|
* wrap it in a ScrollView. Threaded onto Bloom's `Dialog` via `bloomOptionsFor`.
|
|
107
121
|
*/
|
|
108
122
|
scrollable: boolean;
|
|
123
|
+
/**
|
|
124
|
+
* Whether the surface MORPHS when this route is navigated to WITHIN it — the
|
|
125
|
+
* panel animates from the outgoing frame's size to this one's instead of
|
|
126
|
+
* hard-cutting (the in-place NAV-WITHIN size animation). `true` for every
|
|
127
|
+
* ordinary route screen; a wizard step swap counts as a frame here too.
|
|
128
|
+
*
|
|
129
|
+
* Distinct from {@link stacks}: `morph` tunes the size animation of an IN-PLACE
|
|
130
|
+
* frame swap; `stacks` decides whether the frame lands in place at all or opens
|
|
131
|
+
* a new surface. A stacked surface can still morph between ITS OWN frames.
|
|
132
|
+
*/
|
|
133
|
+
morph: boolean;
|
|
134
|
+
/**
|
|
135
|
+
* An EXPLICIT target size the panel MORPHS to for this route, instead of the
|
|
136
|
+
* measured natural height / the surface width. This is how an own-scroller frame
|
|
137
|
+
* (its content owns its own scroll, so the panel can't measure it) still GROWS
|
|
138
|
+
* its container to a large declared size — the panel animates UP to it on entry
|
|
139
|
+
* and back DOWN on exit while the frame's inner list scrolls within. `heightRatio`
|
|
140
|
+
* is a fraction of the viewport height (clamped there); `maxWidth` (px) widens the
|
|
141
|
+
* centered card beyond the ordinary sheet. Omit for the normal measured behaviour.
|
|
142
|
+
*/
|
|
143
|
+
frameSize?: {
|
|
144
|
+
heightRatio?: number;
|
|
145
|
+
maxWidth?: number;
|
|
146
|
+
};
|
|
147
|
+
/**
|
|
148
|
+
* Whether navigating TO this route from INSIDE an existing surface opens a NEW
|
|
149
|
+
* stacked surface (its own backdrop + entry animation — the DEPTH axis) instead
|
|
150
|
+
* of morphing in place within the current one (the NAV-WITHIN axis).
|
|
151
|
+
*
|
|
152
|
+
* `false` (the DEFAULT) — morph in place: the route is pushed as a frame in the
|
|
153
|
+
* host surface's nav stack and the panel reshapes from the previous frame to it
|
|
154
|
+
* (size-animated per {@link morph}). Every ordinary screen. This is what makes
|
|
155
|
+
* morph the default: a drill-in navigates WITHIN unless the target opts out.
|
|
156
|
+
*
|
|
157
|
+
* `true` — the route's chrome is fundamentally incompatible with morphing into
|
|
158
|
+
* a host, so it must own its own surface: the full-bleed `fullScreen` image
|
|
159
|
+
* picker (black canvas, flush content, programmatic-only dismiss). Presented on
|
|
160
|
+
* top; dismissing it unwinds back to the surface that opened it.
|
|
161
|
+
*
|
|
162
|
+
* NOTE: the DEPTH `present` / `presentDetached` APIs ALWAYS open a new surface
|
|
163
|
+
* regardless of this flag — `stacks` only governs the in-surface drill-in
|
|
164
|
+
* (`navigate` / `showBottomSheet`) decision in `navigateWithinOrPresent`.
|
|
165
|
+
*/
|
|
166
|
+
stacks: boolean;
|
|
109
167
|
/**
|
|
110
168
|
* Whether the surface renders the Dialog's OWN navigation header (sticky
|
|
111
169
|
* gradient nav bar + large collapsing title over the surface's scroll content).
|
|
@@ -123,10 +181,12 @@ export interface SurfaceRouteConfig {
|
|
|
123
181
|
handleComponent?: () => ReactNode;
|
|
124
182
|
}
|
|
125
183
|
/**
|
|
126
|
-
* Resolve the surface configuration for a route + props.
|
|
127
|
-
* responsive sheet
|
|
128
|
-
*
|
|
129
|
-
*
|
|
184
|
+
* Resolve the surface configuration for a route + props. Every route defaults to
|
|
185
|
+
* the responsive sheet and MORPHS in place when navigated to from within a surface
|
|
186
|
+
* (no route stacks — genuine overlays are Bloom-raw `surfaces.present`/`confirm`
|
|
187
|
+
* calls, outside this registry). The image-only FileManagement picker is a normal
|
|
188
|
+
* sheet that owns its own scroll + translucent bar (no Dialog nav header); every
|
|
189
|
+
* other own-scroller is marked `scrollable: false`.
|
|
130
190
|
*/
|
|
131
191
|
export declare const getSurfaceConfig: (route: RouteName, props: Record<string, unknown>) => SurfaceRouteConfig;
|
|
132
192
|
/** Convenience: just the presentation taxonomy for a route + props. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"surfaceRegistry.d.ts","sourceRoot":"","sources":["../../../../../src/ui/navigation/surfaceRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAU,CAAC;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"surfaceRegistry.d.ts","sourceRoot":"","sources":["../../../../../src/ui/navigation/surfaceRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type PresentOptions } from '@oxyhq/bloom/surfaces';
|
|
2
2
|
import type { RouteName } from './routes.js';
|
|
3
|
-
import { type
|
|
3
|
+
import { type SurfaceProps, type SurfaceResult } from './surfaceRegistry.js';
|
|
4
4
|
import { type SurfaceNavStack } from './surfaceNavStack.js';
|
|
5
5
|
/**
|
|
6
6
|
* A live handle to a presented SDK surface. Exposes DEPTH controls (`dismiss`,
|
|
@@ -10,12 +10,13 @@ import { type SurfaceNavStack } from './surfaceNavStack.js';
|
|
|
10
10
|
*/
|
|
11
11
|
export interface SurfaceInstance<K extends RouteName = RouteName> {
|
|
12
12
|
readonly route: RouteName;
|
|
13
|
-
readonly presentation: SurfacePresentation;
|
|
14
13
|
navigate: (route: RouteName, props?: Record<string, unknown>) => void;
|
|
15
14
|
replace: (route: RouteName, props?: Record<string, unknown>) => void;
|
|
16
15
|
goBack: () => boolean;
|
|
17
16
|
canGoBack: () => boolean;
|
|
18
17
|
setStep: (step: number) => void;
|
|
18
|
+
/** Open a result-bearing sub-flow WITHIN this surface (morph). See {@link openWithinOrPresent}. */
|
|
19
|
+
beginFlow: (route: RouteName, props?: Record<string, unknown>) => Promise<unknown>;
|
|
19
20
|
dismiss: (result?: SurfaceResult<K>) => void;
|
|
20
21
|
readonly result: Promise<SurfaceResult<K> | undefined>;
|
|
21
22
|
}
|
|
@@ -23,12 +24,15 @@ export interface SurfaceInstance<K extends RouteName = RouteName> {
|
|
|
23
24
|
* The type-erased handle the `showBottomSheet` adapter needs from a tracked
|
|
24
25
|
* surface: what it hosts, and how to drive/dismiss it. Kept result-type-free so
|
|
25
26
|
* the (generic) `SurfaceInstance<K>` never has to be widened into a shared array.
|
|
27
|
+
* Exported so `OxyContext` can hold the surface it MORPHS the account dialog into
|
|
28
|
+
* (see {@link topRouteSurface}).
|
|
26
29
|
*/
|
|
27
|
-
interface TrackedSurface {
|
|
30
|
+
export interface TrackedSurface {
|
|
28
31
|
readonly route: RouteName;
|
|
29
|
-
readonly presentation: SurfacePresentation;
|
|
30
32
|
navigate: (route: RouteName, props?: Record<string, unknown>) => void;
|
|
31
33
|
goBack: () => boolean;
|
|
34
|
+
/** Open a result-bearing sub-flow WITHIN this surface (morph). See {@link openWithinOrPresent}. */
|
|
35
|
+
beginFlow: (route: RouteName, props?: Record<string, unknown>) => Promise<unknown>;
|
|
32
36
|
dismiss: () => void;
|
|
33
37
|
}
|
|
34
38
|
/**
|
|
@@ -48,6 +52,13 @@ export declare function presentDetached<K extends RouteName>(route: K, props?: S
|
|
|
48
52
|
export declare function presentRoute(route: RouteName, props?: Record<string, unknown>): SurfaceInstance;
|
|
49
53
|
/** The top-most active route surface, or `undefined` when none are open. */
|
|
50
54
|
export declare function topRouteSurface(): TrackedSurface | undefined;
|
|
55
|
+
/**
|
|
56
|
+
* The frontmost surface a result-bearing flow should morph INTO: the detached
|
|
57
|
+
* AccountDialog if open (it sits on top of everything), else the top tracked
|
|
58
|
+
* route surface. Used by {@link openWithinOrPresent} so the account-menu hero
|
|
59
|
+
* avatar morphs the dialog into `ChangeAvatar` instead of stacking a new surface.
|
|
60
|
+
*/
|
|
61
|
+
export declare function topMorphableSurface(): TrackedSurface | undefined;
|
|
51
62
|
/**
|
|
52
63
|
* Dismiss every active route surface (the whole `showBottomSheet` session). The
|
|
53
64
|
* AccountDialog is untracked, so it is untouched. Iterates a snapshot because
|
|
@@ -55,13 +66,34 @@ export declare function topRouteSurface(): TrackedSurface | undefined;
|
|
|
55
66
|
*/
|
|
56
67
|
export declare function closeAllRouteSurfaces(): void;
|
|
57
68
|
/**
|
|
58
|
-
* Drill in from a screen
|
|
59
|
-
*
|
|
60
|
-
*
|
|
69
|
+
* Drill in from a screen. From inside a surface the DEFAULT is to navigate WITHIN
|
|
70
|
+
* it — the panel MORPHS from the current frame's size to the next's. EVERY screen
|
|
71
|
+
* morphs; a NEW surface is stacked on top ONLY when the target route declares
|
|
72
|
+
* `stacks` (reserved for genuine overlays — none today, since action sheets /
|
|
73
|
+
* confirms / prompts are Bloom-raw `surfaces.present` calls outside this
|
|
74
|
+
* registry). A stacked surface gets its own backdrop + entry animation; dismissing
|
|
75
|
+
* it unwinds back to the surface that opened it.
|
|
76
|
+
*/
|
|
77
|
+
export declare function navigateWithinOrPresent(navStack: SurfaceNavStack, route: RouteName, props?: Record<string, unknown>): void;
|
|
78
|
+
/** Replace variant of {@link navigateWithinOrPresent} (swaps the top frame). */
|
|
79
|
+
export declare function replaceWithinOrPresent(navStack: SurfaceNavStack, route: RouteName, props?: Record<string, unknown>): void;
|
|
80
|
+
/**
|
|
81
|
+
* Open a result-bearing route the SAME way a drill-in navigates (the morph-by-
|
|
82
|
+
* default rule), but returning the route's dismissal RESULT to the caller.
|
|
83
|
+
*
|
|
84
|
+
* When a surface is already open and the target morphs into it (the default —
|
|
85
|
+
* anything not marked `stacks`), it runs as a SUB-FLOW inside that surface: the
|
|
86
|
+
* panel morphs from the current screen into the target, and the promise resolves
|
|
87
|
+
* with the target's `dismiss(result)` (or `undefined` when cancelled), popping
|
|
88
|
+
* back to the caller's frame WITHOUT closing the host. Otherwise (no surface, or a
|
|
89
|
+
* route that stacks) it presents a fresh surface and resolves with its dismissal —
|
|
90
|
+
* identical to the historical `present(route).result`.
|
|
91
|
+
*
|
|
92
|
+
* The entry seam for the avatar picker AND its nested "My Oxy files" media
|
|
93
|
+
* selector: each awaits its result whether it morphed into the caller's surface
|
|
94
|
+
* or opened cold, with no morph-vs-present branch of its own.
|
|
61
95
|
*/
|
|
62
|
-
export declare function
|
|
63
|
-
/** Replace variant of {@link navigateWithinOrPresent}. */
|
|
64
|
-
export declare function replaceWithinOrPresent(currentPresentation: SurfacePresentation, navStack: SurfaceNavStack, route: RouteName, props?: Record<string, unknown>): void;
|
|
96
|
+
export declare function openWithinOrPresent<K extends RouteName>(route: K, props?: SurfaceProps<K>): Promise<SurfaceResult<K> | undefined>;
|
|
65
97
|
/**
|
|
66
98
|
* The SDK's imperative surface API (a module singleton). `present` is the typed
|
|
67
99
|
* route presenter; `dismissAll` unwinds the whole session. Not yet exported from
|
|
@@ -75,5 +107,4 @@ export declare const surfaces: {
|
|
|
75
107
|
};
|
|
76
108
|
/** Hook form of {@link surfaces} (stable singleton). */
|
|
77
109
|
export declare function useSurfaces(): typeof surfaces;
|
|
78
|
-
export {};
|
|
79
110
|
//# sourceMappingURL=surfaces.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"surfaces.d.ts","sourceRoot":"","sources":["../../../../../src/ui/navigation/surfaces.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAU,CAAC;AAC1C,OAAO,
|
|
1
|
+
{"version":3,"file":"surfaces.d.ts","sourceRoot":"","sources":["../../../../../src/ui/navigation/surfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,11 +5,17 @@
|
|
|
5
5
|
* but before the avatar is uploaded. Inspired by iOS Photos, Google Photos and
|
|
6
6
|
* Instagram crop tools.
|
|
7
7
|
*
|
|
8
|
+
* Reached ONLY by navigating within a `ChangeAvatar` surface, so the panel
|
|
9
|
+
* morphs from the source list into the editor. The surface owns the chrome: this
|
|
10
|
+
* screen declares its title and its "Use photo" action through `useSurfaceHeader`
|
|
11
|
+
* and renders no bar of its own — the nav bar's back arrow is Cancel, and it
|
|
12
|
+
* returns to the source list.
|
|
13
|
+
*
|
|
8
14
|
* Architecture:
|
|
9
|
-
* -
|
|
10
|
-
*
|
|
11
|
-
* - Circular viewport with white ring
|
|
12
|
-
*
|
|
15
|
+
* - A dark crop stage, independent of theme, so photos always read well, inset
|
|
16
|
+
* inside the surface's own themed panel.
|
|
17
|
+
* - Circular viewport with white ring and a 3x3 rule-of-thirds grid that
|
|
18
|
+
* appears during gestures and fades after 800ms.
|
|
13
19
|
* - Floating zoom chip during pinch.
|
|
14
20
|
* - Pan + pinch via Gesture Handler, transform driven by Reanimated.
|
|
15
21
|
* - Reduced-motion aware entrance animation.
|
|
@@ -33,8 +39,15 @@ export interface AvatarCropResult {
|
|
|
33
39
|
mime: 'image/jpeg';
|
|
34
40
|
}
|
|
35
41
|
export interface AvatarCropScreenProps extends BaseScreenProps {
|
|
36
|
-
/** URI of the source image to crop. */
|
|
42
|
+
/** URI of the source image to crop (device / camera sources pass this). */
|
|
37
43
|
imageUri?: string;
|
|
44
|
+
/**
|
|
45
|
+
* ID of an existing Oxy file to crop (the "My Oxy files" source passes this
|
|
46
|
+
* instead of a URL). Its download URL is usually private, so it is resolved
|
|
47
|
+
* HERE — showing this screen's own loading state on the dark canvas — rather
|
|
48
|
+
* than in the source list, which would otherwise linger for the round-trip.
|
|
49
|
+
*/
|
|
50
|
+
imageFileId?: string;
|
|
38
51
|
/** Natural width of the source image (optional — measured if absent). */
|
|
39
52
|
sourceWidth?: number;
|
|
40
53
|
/** Natural height of the source image (optional — measured if absent). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AvatarCropScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/AvatarCropScreen.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"AvatarCropScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/AvatarCropScreen.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA+B/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAqB,CAAC;AAK3D,mDAAmD;AACnD,MAAM,WAAW,gBAAgB;IAC7B,oDAAoD;IACpD,GAAG,EAAE,MAAM,CAAC;IACZ,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,IAAI,EAAE,YAAY,CAAC;CACtB;AAED,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAC1D,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAuPD,QAAA,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAs0BrD,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ChangeAvatarScreen — the single entry into changing a profile picture.
|
|
3
|
+
*
|
|
4
|
+
* Shows the current avatar large, then the four sources the user can pick from:
|
|
5
|
+
* device gallery, camera, their existing Oxy files, and removing the current
|
|
6
|
+
* photo. Every source that yields an image NAVIGATES WITHIN THIS SURFACE to
|
|
7
|
+
* `AvatarCrop` (never presents it on top), so the panel morphs from this list's
|
|
8
|
+
* size to the crop editor's and back — Cancel on the cropper returns here to
|
|
9
|
+
* re-pick. One container reshaping, not two sheets. The forward morph is
|
|
10
|
+
* flash-free because only the top frame renders and the cropper does all its own
|
|
11
|
+
* async work (URL resolution + measurement), so this list is never left on screen
|
|
12
|
+
* waiting.
|
|
13
|
+
*
|
|
14
|
+
* The surface resolves with an {@link AvatarCropResult} (the crop confirmed) or
|
|
15
|
+
* an {@link AvatarRemovalResult} (the user removed their photo). This screen
|
|
16
|
+
* performs NO writes: `useAvatarPicker` owns the single upload/removal path.
|
|
17
|
+
*
|
|
18
|
+
* `expo-image-picker` is an optional peer dependency — it is loaded with
|
|
19
|
+
* `await import(...)` so an app that never changes avatars need not install it,
|
|
20
|
+
* and a platform without a given source (camera on web) simply doesn't offer it.
|
|
21
|
+
*/
|
|
22
|
+
import type React from 'react';
|
|
23
|
+
import type { BaseScreenProps } from '../types/navigation.js';
|
|
24
|
+
/**
|
|
25
|
+
* The surface resolves with this when the user confirms removing their photo.
|
|
26
|
+
* Distinguished from a crop result by the presence of `removed`, so the awaiting
|
|
27
|
+
* caller narrows without a cast.
|
|
28
|
+
*/
|
|
29
|
+
export interface AvatarRemovalResult {
|
|
30
|
+
removed: true;
|
|
31
|
+
}
|
|
32
|
+
declare const ChangeAvatarScreen: React.FC<BaseScreenProps>;
|
|
33
|
+
export default ChangeAvatarScreen;
|
|
34
|
+
//# sourceMappingURL=ChangeAvatarScreen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChangeAvatarScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/ChangeAvatarScreen.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAsB/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAqB,CAAC;AAW3D;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAChC,OAAO,EAAE,IAAI,CAAC;CACjB;AAmED,QAAA,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAmOjD,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileManagementScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/FileManagementScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"FileManagementScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/FileManagementScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiD,MAAM,OAAO,CAAC;AActE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAAyB,CAAC;AAiEzE,QAAA,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CA8vC7D,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WelcomeNewUserScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/WelcomeNewUserScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAqB,CAAC;AAiD3D;;;;;GAKG;AACH,QAAA,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,GAAG;IAAE,OAAO,CAAC,EAAE,GAAG,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"WelcomeNewUserScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/WelcomeNewUserScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAqB,CAAC;AAiD3D;;;;;GAKG;AACH,QAAA,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,GAAG;IAAE,OAAO,CAAC,EAAE,GAAG,CAAA;CAAE,CAsRvE,CAAC;AAkFF,eAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
export interface FileLibraryErrorProps {
|
|
3
|
+
title: string;
|
|
4
|
+
description: string;
|
|
5
|
+
retryLabel: string;
|
|
6
|
+
onRetry: () => void;
|
|
7
|
+
/** Failure icon tint. */
|
|
8
|
+
iconColor: string;
|
|
9
|
+
titleColor: string;
|
|
10
|
+
descriptionColor: string;
|
|
11
|
+
/** Retry button background (button label/icon are always white). */
|
|
12
|
+
buttonColor: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Terminal load-failure surface for the file library — rendered (INSTEAD of the
|
|
16
|
+
* "no files yet" empty state) when the list query errors with nothing cached, so
|
|
17
|
+
* a failed load never masquerades as an empty library. Pure presentational; the
|
|
18
|
+
* Retry action is wired to the query's `refetch()` by the caller. Themed via
|
|
19
|
+
* color props so it fits both the browse chrome and the dark picker backdrop.
|
|
20
|
+
*/
|
|
21
|
+
declare const FileLibraryError: React.FC<FileLibraryErrorProps>;
|
|
22
|
+
export default FileLibraryError;
|
|
23
|
+
//# sourceMappingURL=FileLibraryError.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileLibraryError.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/screens/fileManagement/FileLibraryError.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,WAAW,qBAAqB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,oEAAoE;IACpE,WAAW,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;AACH,QAAA,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CA6BrD,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
|
@@ -27,6 +27,10 @@ export interface PhotoPickerViewProps {
|
|
|
27
27
|
* and container width, not the browse file-manager chrome.
|
|
28
28
|
*/
|
|
29
29
|
loading: boolean;
|
|
30
|
+
/** Terminal load failure (nothing cached) — renders a distinct error state. */
|
|
31
|
+
loadError: boolean;
|
|
32
|
+
/** Retry the failed list load (wired to the query's refetch). */
|
|
33
|
+
onRetry: () => void;
|
|
30
34
|
reduceMotion: boolean;
|
|
31
35
|
getThumbUrl: (file: FileMetadata) => string | undefined;
|
|
32
36
|
primaryColor: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PhotoPickerSection.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/screens/fileManagement/PhotoPickerSection.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"PhotoPickerSection.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/screens/fileManagement/PhotoPickerSection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiD,MAAM,OAAO,CAAC;AAgBtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AA4FhD;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACjC,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC1D,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB,+EAA+E;IAC/E,SAAS,EAAE,OAAO,CAAC;IACnB,iEAAiE;IACjE,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,MAAM,GAAG,SAAS,CAAC;IACxD,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC7C,cAAc,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC9C,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,MAAM,CAAC;CACtE;AA+MD,QAAA,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAwZnD,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -2,6 +2,11 @@ import type React from 'react';
|
|
|
2
2
|
import type { FileMetadata } from '@oxyhq/core';
|
|
3
3
|
import type { useUploadFile } from '../../../hooks/mutations/useAccountMutations.js';
|
|
4
4
|
import { type PendingUploadFile } from '../shared.js';
|
|
5
|
+
/** Aggregate progress across a multi-file upload. */
|
|
6
|
+
export interface FileUploadAggregateProgress {
|
|
7
|
+
current: number;
|
|
8
|
+
total: number;
|
|
9
|
+
}
|
|
5
10
|
/** Dependencies threaded into the upload-state hook from the orchestrator. */
|
|
6
11
|
export interface UseFileUploadStateParams {
|
|
7
12
|
targetUserId?: string;
|
|
@@ -15,7 +20,6 @@ export interface UseFileUploadStateParams {
|
|
|
15
20
|
onClose?: () => void;
|
|
16
21
|
selectedIds: Set<string>;
|
|
17
22
|
setSelectedIds: React.Dispatch<React.SetStateAction<Set<string>>>;
|
|
18
|
-
loadFiles: (mode?: 'initial' | 'refresh' | 'silent' | 'more') => Promise<void> | void;
|
|
19
23
|
t: (key: string, vars?: Record<string, string | number>) => string;
|
|
20
24
|
}
|
|
21
25
|
/** Public surface returned to the orchestrator. */
|
|
@@ -23,6 +27,10 @@ export interface UseFileUploadStateResult {
|
|
|
23
27
|
isPickingDocument: boolean;
|
|
24
28
|
pendingFiles: PendingUploadFile[];
|
|
25
29
|
showUploadPreview: boolean;
|
|
30
|
+
/** Whether an upload is in flight (drives the "Uploading…" banner). */
|
|
31
|
+
uploading: boolean;
|
|
32
|
+
/** Aggregate progress across the current upload, or null. */
|
|
33
|
+
uploadProgress: FileUploadAggregateProgress | null;
|
|
26
34
|
handleFileUpload: () => Promise<void>;
|
|
27
35
|
handleConfirmUpload: () => Promise<void>;
|
|
28
36
|
handleCancelUpload: () => void;
|
|
@@ -34,6 +42,6 @@ export interface UseFileUploadStateResult {
|
|
|
34
42
|
* orchestrator simply threads in the values these handlers depend on and
|
|
35
43
|
* consumes the returned state/handlers.
|
|
36
44
|
*/
|
|
37
|
-
export declare const useFileUploadState: ({ targetUserId, uploadFileMutation, defaultVisibility, selectMode, multiSelect, afterSelect, onSelect, goBack, onClose, selectedIds, setSelectedIds,
|
|
45
|
+
export declare const useFileUploadState: ({ targetUserId, uploadFileMutation, defaultVisibility, selectMode, multiSelect, afterSelect, onSelect, goBack, onClose, selectedIds, setSelectedIds, t, }: UseFileUploadStateParams) => UseFileUploadStateResult;
|
|
38
46
|
export default useFileUploadState;
|
|
39
47
|
//# sourceMappingURL=useFileUploadState.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFileUploadState.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/screens/fileManagement/hooks/useFileUploadState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useFileUploadState.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/screens/fileManagement/hooks/useFileUploadState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAoB,YAAY,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iDAA8C,CAAC;AAQlF,OAAO,EAEH,KAAK,iBAAiB,EAQzB,MAAM,cAAW,CAAC;AAEnB,qDAAqD;AACrD,MAAM,WAAW,2BAA2B;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACjB;AAsBD,8EAA8E;AAC9E,MAAM,WAAW,wBAAwB;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;IACrD,iBAAiB,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;IACrD,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACvC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,MAAM,CAAC;CACtE;AAED,mDAAmD;AACnD,MAAM,WAAW,wBAAwB;IACrC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,YAAY,EAAE,iBAAiB,EAAE,CAAC;IAClC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,uEAAuE;IACvE,SAAS,EAAE,OAAO,CAAC;IACnB,6DAA6D;IAC7D,cAAc,EAAE,2BAA2B,GAAG,IAAI,CAAC;IACnD,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,mBAAmB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAAI,2JAahC,wBAAwB,KAAG,wBA+Y7B,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* Drop session-scoped Zustand slices so the next user/account never inherits
|
|
3
|
+
* stale UI state.
|
|
4
|
+
*
|
|
5
|
+
* The file library is NOT reset here: it lives in React Query keyed by owner id
|
|
6
|
+
* (`queryKeys.files.list(ownerId)`), so switching accounts naturally shows the
|
|
7
|
+
* new owner's files and the old owner's cache is garbage-collected on its own.
|
|
8
|
+
*/
|
|
2
9
|
export declare function resetSessionScopedStores(): void;
|
|
3
10
|
//# sourceMappingURL=resetSessionScopedStores.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resetSessionScopedStores.d.ts","sourceRoot":"","sources":["../../../../../src/ui/stores/resetSessionScopedStores.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resetSessionScopedStores.d.ts","sourceRoot":"","sources":["../../../../../src/ui/stores/resetSessionScopedStores.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C"}
|
|
@@ -8,6 +8,8 @@ export interface StepController {
|
|
|
8
8
|
export interface BaseScreenProps {
|
|
9
9
|
navigate?: (screen: RouteName, props?: Record<string, unknown>) => void;
|
|
10
10
|
goBack?: () => void;
|
|
11
|
+
/** Whether the host surface can navigate back — a deeper frame OR a prior step. */
|
|
12
|
+
canGoBack?: () => boolean;
|
|
11
13
|
onClose?: () => void;
|
|
12
14
|
onAuthenticated?: (payload?: unknown) => void;
|
|
13
15
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../../../../src/ui/types/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAsB,CAAC;AAItD,MAAM,WAAW,cAAc;IAC3B,SAAS,EAAE,MAAM,OAAO,CAAC;IACzB,MAAM,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAE5B,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACxE,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,eAAe,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAGrC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IAGlC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACrD,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAGjE,aAAa,CAAC,EAAE,SAAS,CAAC;IAG1B,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAGnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IAMtB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,sFAAsF;IACtF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;CACzC"}
|
|
1
|
+
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../../../../src/ui/types/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAsB,CAAC;AAItD,MAAM,WAAW,cAAc;IAC3B,SAAS,EAAE,MAAM,OAAO,CAAC;IACzB,MAAM,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAE5B,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACxE,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,eAAe,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAGrC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IAGlC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACrD,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAGjE,aAAa,CAAC,EAAE,SAAS,CAAC;IAG1B,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAGnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IAMtB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,sFAAsF;IACtF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;CACzC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avatarUtils.d.ts","sourceRoot":"","sources":["../../../../../src/ui/utils/avatarUtils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGzD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,WAAW,GACvB,IAAI,CAON;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,iBAAiB,EAC1B,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,MAAM,GAAG,IAAI,EAC9B,WAAW,EAAE,WAAW,EACxB,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"avatarUtils.d.ts","sourceRoot":"","sources":["../../../../../src/ui/utils/avatarUtils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGzD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,WAAW,GACvB,IAAI,CAON;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,iBAAiB,EAC1B,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,MAAM,GAAG,IAAI,EAC9B,WAAW,EAAE,WAAW,EACxB,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC,CAoCf"}
|