@oxyhq/services 22.10.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.
- 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 +54 -41
- 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 +54 -42
- 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 +8 -4
- 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 +56 -46
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createStore","makeFrame","route","props","resolved","step","initialStep","createSurfaceNavStack","store","frames","closing","closeResult","undefined","getTop","getState","length","
|
|
1
|
+
{"version":3,"names":["createStore","makeFrame","route","props","resolved","step","initialStep","createSurfaceNavStack","store","frames","closing","closeResult","undefined","getTop","getState","length","flowStack","requestDismiss","result","pop","resolve","setState","goBack","nextLength","slice","returnLength","navigate","nextRoute","nextProps","state","replace","canGoBack","setStep","index","beginFlow","Promise","push","resolveFlowOrDismiss","flow","abandonActiveFlow"],"sourceRoot":"../../../../src","sources":["ui/navigation/surfaceNavStack.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -31,15 +31,18 @@ void _registryCoversRoutes;
|
|
|
31
31
|
* How a surface renders — the SDK's presentation taxonomy. Each value maps to a
|
|
32
32
|
* concrete Bloom `Dialog` placement/chrome in `surfaces.ts`:
|
|
33
33
|
*
|
|
34
|
-
* - `'sheet'` → responsive `{ base: 'bottom', md: 'center' }` (the default
|
|
35
|
-
*
|
|
36
|
-
*
|
|
34
|
+
* - `'sheet'` → responsive `{ base: 'bottom', md: 'center' }` (the default,
|
|
35
|
+
* and — since every screen morphs — the presentation of EVERY
|
|
36
|
+
* route today: a bottom sheet on narrow, a centered card wide).
|
|
37
|
+
* - `'center'` → a plain centered modal at every width. Currently unused.
|
|
37
38
|
* - `'drawer'` → responsive `{ base: 'bottom', md: 'left' }` side drawer.
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
39
|
+
* Currently unused.
|
|
40
|
+
* - `'fullScreen'` → a flush black-canvas surface (`contentPadding: 0`,
|
|
41
|
+
* programmatic-only dismiss). Currently unused: the flagship
|
|
42
|
+
* photo picker now MORPHS in place as a `sheet` (it paints its
|
|
43
|
+
* own black canvas + bar inside the themed panel), so nothing
|
|
44
|
+
* needs a stacked full-bleed surface. Retained for a future
|
|
45
|
+
* route that genuinely must be full-bleed.
|
|
43
46
|
*/
|
|
44
47
|
|
|
45
48
|
/**
|
|
@@ -59,13 +62,14 @@ const DEFAULT_SURFACE_CONFIG = {
|
|
|
59
62
|
presentation: 'sheet',
|
|
60
63
|
scrollable: true,
|
|
61
64
|
header: true,
|
|
65
|
+
morph: true,
|
|
66
|
+
stacks: false,
|
|
62
67
|
manualActivation: true,
|
|
63
68
|
dynamicBackdrop: true
|
|
64
69
|
};
|
|
65
70
|
|
|
66
71
|
/**
|
|
67
72
|
* Routes that render NO Dialog nav header — they own their chrome:
|
|
68
|
-
* - `AvatarCrop` — its own translucent Cancel / title / Done top bar.
|
|
69
73
|
* - `PaymentGateway` — the payment surface owns its controls.
|
|
70
74
|
* - `WelcomeNewUser` — a full-bleed onboarding wizard with its own step chrome.
|
|
71
75
|
* - `Profile` — a full profile view, no nav-header chrome.
|
|
@@ -74,8 +78,15 @@ const DEFAULT_SURFACE_CONFIG = {
|
|
|
74
78
|
* `AccountDialog` used to be here — it now uses the SHARED Dialog nav header like
|
|
75
79
|
* every other screen (its per-view title/subtitle + view-back go through
|
|
76
80
|
* `useSurfaceHeader`), so the account/sign-in surface no longer feels bespoke.
|
|
81
|
+
*
|
|
82
|
+
* `AvatarCrop` used to be here too, for its own translucent Cancel/title/Done
|
|
83
|
+
* bar. It is now reached ONLY by navigating within a `ChangeAvatar` surface, and
|
|
84
|
+
* the Dialog's `header` is fixed for a surface's whole life — a headerless frame
|
|
85
|
+
* inside a header-mode surface would stack two bars. So the crop declares its
|
|
86
|
+
* title + its "Use photo" action through `useSurfaceHeader` like every other
|
|
87
|
+
* screen, and keeps only its dark crop stage.
|
|
77
88
|
*/
|
|
78
|
-
const HEADERLESS_ROUTES = new Set(['
|
|
89
|
+
const HEADERLESS_ROUTES = new Set(['PaymentGateway', 'WelcomeNewUser', 'Profile']);
|
|
79
90
|
|
|
80
91
|
/**
|
|
81
92
|
* Predicate matching `FileManagementScreen`'s internal `isImageOnlyPicker`
|
|
@@ -109,19 +120,29 @@ const isFileManagementImageOnlyPicker = props => {
|
|
|
109
120
|
const OWN_SCROLL_CONTAINER_ROUTES = new Set(['FileManagement', 'ConnectedApps', 'TrustLeaderboard', 'FollowersList', 'FollowingList']);
|
|
110
121
|
|
|
111
122
|
/**
|
|
112
|
-
* Resolve the surface configuration for a route + props.
|
|
113
|
-
* responsive sheet
|
|
114
|
-
*
|
|
115
|
-
*
|
|
123
|
+
* Resolve the surface configuration for a route + props. Every route defaults to
|
|
124
|
+
* the responsive sheet and MORPHS in place when navigated to from within a surface
|
|
125
|
+
* (no route stacks — genuine overlays are Bloom-raw `surfaces.present`/`confirm`
|
|
126
|
+
* calls, outside this registry). The image-only FileManagement picker is a normal
|
|
127
|
+
* sheet that owns its own scroll + translucent bar (no Dialog nav header); every
|
|
128
|
+
* other own-scroller is marked `scrollable: false`.
|
|
116
129
|
*/
|
|
117
130
|
export const getSurfaceConfig = (route, props) => {
|
|
118
131
|
if (route === 'FileManagement' && isFileManagementImageOnlyPicker(props)) {
|
|
119
|
-
// The
|
|
132
|
+
// The flagship photo picker MORPHS in place like every other screen. It is an
|
|
133
|
+
// own-scroller (`PhotoPickerView`'s FlatList) that paints its OWN full-bleed
|
|
134
|
+
// black canvas + translucent top bar INSIDE the themed panel, so it takes no
|
|
135
|
+
// Dialog nav header. It needs ROOM for the photo grid, so it declares an
|
|
136
|
+
// explicit LARGE morph target — the panel grows UP to a near-full-height,
|
|
137
|
+
// wider card on entry (and back down on pick→crop), the grid scrolling within.
|
|
120
138
|
return {
|
|
121
139
|
...DEFAULT_SURFACE_CONFIG,
|
|
122
|
-
presentation: 'fullScreen',
|
|
123
140
|
scrollable: false,
|
|
124
|
-
header: false
|
|
141
|
+
header: false,
|
|
142
|
+
frameSize: {
|
|
143
|
+
heightRatio: 0.9,
|
|
144
|
+
maxWidth: 640
|
|
145
|
+
}
|
|
125
146
|
};
|
|
126
147
|
}
|
|
127
148
|
if (HEADERLESS_ROUTES.has(route)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_registryCoversRoutes","DEFAULT_SURFACE_CONFIG","presentation","scrollable","header","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","getSurfacePresentation"],"sourceRoot":"../../../../src","sources":["ui/navigation/surfaceRegistry.ts"],"mappings":";;
|
|
1
|
+
{"version":3,"names":["_registryCoversRoutes","DEFAULT_SURFACE_CONFIG","presentation","scrollable","header","morph","stacks","manualActivation","dynamicBackdrop","HEADERLESS_ROUTES","Set","isFileManagementImageOnlyPicker","props","selectMode","disabled","disabledMimeTypes","Array","isArray","length","has","predicate","some","mt","blocksVideos","startsWith","blocksAudio","blocksDocs","OWN_SCROLL_CONTAINER_ROUTES","getSurfaceConfig","route","frameSize","heightRatio","maxWidth","getSurfacePresentation"],"sourceRoot":"../../../../src","sources":["ui/navigation/surfaceRegistry.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { createElement } from 'react';
|
|
4
4
|
import { surfaces as bloomSurfaces } from '@oxyhq/bloom/surfaces';
|
|
5
5
|
import SurfaceScreen from "../components/SurfaceScreen.js";
|
|
6
|
-
import { getSurfaceConfig
|
|
6
|
+
import { getSurfaceConfig } from "./surfaceRegistry.js";
|
|
7
7
|
import { createSurfaceNavStack } from "./surfaceNavStack.js";
|
|
8
8
|
|
|
9
9
|
/**
|
|
@@ -49,6 +49,11 @@ function bloomOptionsFor(config) {
|
|
|
49
49
|
// Threaded onto every placement so a route that owns its own scroll container
|
|
50
50
|
// (`scrollable: false`) opts out of the Dialog's internal ScrollView.
|
|
51
51
|
const scrollable = config.scrollable;
|
|
52
|
+
// Surface-level morph opt-out (the DEPTH axis is untouched — this only governs
|
|
53
|
+
// whether the panel reshapes when the content is swapped in place). Each frame
|
|
54
|
+
// additionally declares its own opt-out through `useDialogFrame` in
|
|
55
|
+
// `SurfaceScreen`, so a surface can morph for most routes and not for one.
|
|
56
|
+
const morph = config.morph;
|
|
52
57
|
// Nav-header mode marker: turns on the Dialog's OWN sticky gradient nav bar +
|
|
53
58
|
// large collapsing title over its scroll content. The title/subtitle/action
|
|
54
59
|
// slots are contributed at runtime by the mounted screen via `useSurfaceHeader`
|
|
@@ -62,6 +67,7 @@ function bloomOptionsFor(config) {
|
|
|
62
67
|
placement: 'center',
|
|
63
68
|
scrollable,
|
|
64
69
|
header,
|
|
70
|
+
morph,
|
|
65
71
|
...SDK_SURFACE_CHROME
|
|
66
72
|
};
|
|
67
73
|
case 'drawer':
|
|
@@ -72,6 +78,7 @@ function bloomOptionsFor(config) {
|
|
|
72
78
|
},
|
|
73
79
|
scrollable,
|
|
74
80
|
header,
|
|
81
|
+
morph,
|
|
75
82
|
...SDK_SURFACE_CHROME
|
|
76
83
|
};
|
|
77
84
|
case 'fullScreen':
|
|
@@ -85,6 +92,7 @@ function bloomOptionsFor(config) {
|
|
|
85
92
|
maxHeightRatio: 0.9,
|
|
86
93
|
dismissOnBackdrop: false,
|
|
87
94
|
scrollable,
|
|
95
|
+
morph,
|
|
88
96
|
style: FULLSCREEN_SURFACE_STYLE,
|
|
89
97
|
panelStyle: FULLSCREEN_SURFACE_STYLE
|
|
90
98
|
};
|
|
@@ -93,6 +101,7 @@ function bloomOptionsFor(config) {
|
|
|
93
101
|
placement: SHEET_PLACEMENT,
|
|
94
102
|
scrollable,
|
|
95
103
|
header,
|
|
104
|
+
morph,
|
|
96
105
|
...SDK_SURFACE_CHROME
|
|
97
106
|
};
|
|
98
107
|
}
|
|
@@ -109,6 +118,8 @@ function bloomOptionsFor(config) {
|
|
|
109
118
|
* The type-erased handle the `showBottomSheet` adapter needs from a tracked
|
|
110
119
|
* surface: what it hosts, and how to drive/dismiss it. Kept result-type-free so
|
|
111
120
|
* the (generic) `SurfaceInstance<K>` never has to be widened into a shared array.
|
|
121
|
+
* Exported so `OxyContext` can hold the surface it MORPHS the account dialog into
|
|
122
|
+
* (see {@link topRouteSurface}).
|
|
112
123
|
*/
|
|
113
124
|
|
|
114
125
|
/**
|
|
@@ -118,6 +129,17 @@ function bloomOptionsFor(config) {
|
|
|
118
129
|
* navigable base. Entries self-remove when their surface is dismissed.
|
|
119
130
|
*/
|
|
120
131
|
const activeRouteSurfaces = [];
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* The frontmost DETACHED surface (the AccountDialog), while open. Detached
|
|
135
|
+
* surfaces are kept OUT of `activeRouteSurfaces` so `closeAllRouteSurfaces` never
|
|
136
|
+
* touches them — but the AccountDialog IS a valid morph target: a result-bearing
|
|
137
|
+
* flow opened from within it (the account-menu hero avatar → `ChangeAvatar`) must
|
|
138
|
+
* morph INTO it, not stack a new surface behind it. Invariant: whenever set, this
|
|
139
|
+
* surface is frontmost — every account-menu action that opens a tracked surface
|
|
140
|
+
* (Manage, Help, …) dismisses the dialog FIRST, so the two never overlap.
|
|
141
|
+
*/
|
|
142
|
+
let detachedFrontSurface = null;
|
|
121
143
|
function presentInternal(route, props, opts, track) {
|
|
122
144
|
const navStack = createSurfaceNavStack(route, props);
|
|
123
145
|
const config = getSurfaceConfig(route, props);
|
|
@@ -129,12 +151,10 @@ function presentInternal(route, props, opts, track) {
|
|
|
129
151
|
const result = bloomSurfaces.present(surface => /*#__PURE__*/createElement(SurfaceScreen, {
|
|
130
152
|
navStack,
|
|
131
153
|
surface,
|
|
132
|
-
presentation: config.presentation,
|
|
133
154
|
dismissOnBackdrop: bloomOpts.dismissOnBackdrop ?? true
|
|
134
155
|
}), bloomOpts);
|
|
135
156
|
const instance = {
|
|
136
157
|
route,
|
|
137
|
-
presentation: config.presentation,
|
|
138
158
|
navigate: (nextRoute, nextProps) => {
|
|
139
159
|
const top = navStack.getTop();
|
|
140
160
|
if (top.route === nextRoute) navStack.replace(nextRoute, nextProps);else navStack.navigate(nextRoute, nextProps);
|
|
@@ -143,22 +163,35 @@ function presentInternal(route, props, opts, track) {
|
|
|
143
163
|
goBack: () => navStack.goBack(),
|
|
144
164
|
canGoBack: () => navStack.canGoBack(),
|
|
145
165
|
setStep: step => navStack.setStep(step),
|
|
166
|
+
beginFlow: (nextRoute, nextProps) => navStack.beginFlow(nextRoute, nextProps),
|
|
146
167
|
dismiss: dismissResult => navStack.requestDismiss(dismissResult),
|
|
147
168
|
result
|
|
148
169
|
};
|
|
170
|
+
|
|
171
|
+
// If the surface is torn down (backdrop, `closeAll`, host unmount) while a
|
|
172
|
+
// result-bearing sub-flow is still open, settle that flow so an awaiting caller
|
|
173
|
+
// never hangs. Runs for tracked and detached surfaces alike.
|
|
174
|
+
result.finally(() => navStack.abandonActiveFlow());
|
|
175
|
+
const tracked = {
|
|
176
|
+
route: instance.route,
|
|
177
|
+
navigate: instance.navigate,
|
|
178
|
+
goBack: instance.goBack,
|
|
179
|
+
beginFlow: instance.beginFlow,
|
|
180
|
+
dismiss: () => instance.dismiss()
|
|
181
|
+
};
|
|
149
182
|
if (track) {
|
|
150
|
-
const tracked = {
|
|
151
|
-
route: instance.route,
|
|
152
|
-
presentation: instance.presentation,
|
|
153
|
-
navigate: instance.navigate,
|
|
154
|
-
goBack: instance.goBack,
|
|
155
|
-
dismiss: () => instance.dismiss()
|
|
156
|
-
};
|
|
157
183
|
activeRouteSurfaces.push(tracked);
|
|
158
184
|
result.finally(() => {
|
|
159
185
|
const index = activeRouteSurfaces.indexOf(tracked);
|
|
160
186
|
if (index >= 0) activeRouteSurfaces.splice(index, 1);
|
|
161
187
|
});
|
|
188
|
+
} else {
|
|
189
|
+
// Detached (the AccountDialog): NOT in the closeAll lineage, but recorded as
|
|
190
|
+
// the frontmost morph target so a flow opened from within it morphs IN.
|
|
191
|
+
detachedFrontSurface = tracked;
|
|
192
|
+
result.finally(() => {
|
|
193
|
+
if (detachedFrontSurface === tracked) detachedFrontSurface = null;
|
|
194
|
+
});
|
|
162
195
|
}
|
|
163
196
|
return instance;
|
|
164
197
|
}
|
|
@@ -192,6 +225,16 @@ export function topRouteSurface() {
|
|
|
192
225
|
return activeRouteSurfaces[activeRouteSurfaces.length - 1];
|
|
193
226
|
}
|
|
194
227
|
|
|
228
|
+
/**
|
|
229
|
+
* The frontmost surface a result-bearing flow should morph INTO: the detached
|
|
230
|
+
* AccountDialog if open (it sits on top of everything), else the top tracked
|
|
231
|
+
* route surface. Used by {@link openWithinOrPresent} so the account-menu hero
|
|
232
|
+
* avatar morphs the dialog into `ChangeAvatar` instead of stacking a new surface.
|
|
233
|
+
*/
|
|
234
|
+
export function topMorphableSurface() {
|
|
235
|
+
return detachedFrontSurface ?? topRouteSurface();
|
|
236
|
+
}
|
|
237
|
+
|
|
195
238
|
/**
|
|
196
239
|
* Dismiss every active route surface (the whole `showBottomSheet` session). The
|
|
197
240
|
* AccountDialog is untracked, so it is untouched. Iterates a snapshot because
|
|
@@ -202,27 +245,59 @@ export function closeAllRouteSurfaces() {
|
|
|
202
245
|
}
|
|
203
246
|
|
|
204
247
|
/**
|
|
205
|
-
* Drill in from a screen
|
|
206
|
-
*
|
|
207
|
-
*
|
|
248
|
+
* Drill in from a screen. From inside a surface the DEFAULT is to navigate WITHIN
|
|
249
|
+
* it — the panel MORPHS from the current frame's size to the next's. EVERY screen
|
|
250
|
+
* morphs; a NEW surface is stacked on top ONLY when the target route declares
|
|
251
|
+
* `stacks` (reserved for genuine overlays — none today, since action sheets /
|
|
252
|
+
* confirms / prompts are Bloom-raw `surfaces.present` calls outside this
|
|
253
|
+
* registry). A stacked surface gets its own backdrop + entry animation; dismissing
|
|
254
|
+
* it unwinds back to the surface that opened it.
|
|
208
255
|
*/
|
|
209
|
-
export function navigateWithinOrPresent(
|
|
256
|
+
export function navigateWithinOrPresent(navStack, route, props) {
|
|
210
257
|
const nextProps = props ?? {};
|
|
211
|
-
if (
|
|
212
|
-
navStack.navigate(route, nextProps);
|
|
213
|
-
} else {
|
|
258
|
+
if (getSurfaceConfig(route, nextProps).stacks) {
|
|
214
259
|
presentRoute(route, nextProps);
|
|
260
|
+
} else {
|
|
261
|
+
navStack.navigate(route, nextProps);
|
|
215
262
|
}
|
|
216
263
|
}
|
|
217
264
|
|
|
218
|
-
/** Replace variant of {@link navigateWithinOrPresent}. */
|
|
219
|
-
export function replaceWithinOrPresent(
|
|
265
|
+
/** Replace variant of {@link navigateWithinOrPresent} (swaps the top frame). */
|
|
266
|
+
export function replaceWithinOrPresent(navStack, route, props) {
|
|
220
267
|
const nextProps = props ?? {};
|
|
221
|
-
if (
|
|
222
|
-
navStack.replace(route, nextProps);
|
|
223
|
-
} else {
|
|
268
|
+
if (getSurfaceConfig(route, nextProps).stacks) {
|
|
224
269
|
presentRoute(route, nextProps);
|
|
270
|
+
} else {
|
|
271
|
+
navStack.replace(route, nextProps);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
/**
|
|
276
|
+
* Open a result-bearing route the SAME way a drill-in navigates (the morph-by-
|
|
277
|
+
* default rule), but returning the route's dismissal RESULT to the caller.
|
|
278
|
+
*
|
|
279
|
+
* When a surface is already open and the target morphs into it (the default —
|
|
280
|
+
* anything not marked `stacks`), it runs as a SUB-FLOW inside that surface: the
|
|
281
|
+
* panel morphs from the current screen into the target, and the promise resolves
|
|
282
|
+
* with the target's `dismiss(result)` (or `undefined` when cancelled), popping
|
|
283
|
+
* back to the caller's frame WITHOUT closing the host. Otherwise (no surface, or a
|
|
284
|
+
* route that stacks) it presents a fresh surface and resolves with its dismissal —
|
|
285
|
+
* identical to the historical `present(route).result`.
|
|
286
|
+
*
|
|
287
|
+
* The entry seam for the avatar picker AND its nested "My Oxy files" media
|
|
288
|
+
* selector: each awaits its result whether it morphed into the caller's surface
|
|
289
|
+
* or opened cold, with no morph-vs-present branch of its own.
|
|
290
|
+
*/
|
|
291
|
+
export function openWithinOrPresent(route, props) {
|
|
292
|
+
const nextProps = props ?? {};
|
|
293
|
+
const host = topMorphableSurface();
|
|
294
|
+
if (host && !getSurfaceConfig(route, nextProps).stacks) {
|
|
295
|
+
// Morph: run as a sub-flow inside the host. The erased `Promise<unknown>` is
|
|
296
|
+
// narrowed to this route's result at the typed boundary (the sub-flow resolves
|
|
297
|
+
// with exactly the value a descendant screen passes to `dismiss(result)`).
|
|
298
|
+
return host.beginFlow(route, nextProps);
|
|
225
299
|
}
|
|
300
|
+
return present(route, props).result;
|
|
226
301
|
}
|
|
227
302
|
|
|
228
303
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createElement","surfaces","bloomSurfaces","SurfaceScreen","getSurfaceConfig","
|
|
1
|
+
{"version":3,"names":["createElement","surfaces","bloomSurfaces","SurfaceScreen","getSurfaceConfig","createSurfaceNavStack","SHEET_PLACEMENT","base","md","FULLSCREEN_SURFACE_STYLE","backgroundColor","overflow","SDK_SURFACE_CHROME","contentPadding","maxHeightRatio","bloomOptionsFor","config","scrollable","morph","header","largeTitle","undefined","presentation","placement","maxWidth","dismissOnBackdrop","style","panelStyle","activeRouteSurfaces","detachedFrontSurface","presentInternal","route","props","opts","track","navStack","bloomOpts","label","result","present","surface","instance","navigate","nextRoute","nextProps","top","getTop","replace","goBack","canGoBack","setStep","step","beginFlow","dismiss","dismissResult","requestDismiss","finally","abandonActiveFlow","tracked","push","index","indexOf","splice","presentDetached","presentRoute","topRouteSurface","length","topMorphableSurface","closeAllRouteSurfaces","reverse","navigateWithinOrPresent","stacks","replaceWithinOrPresent","openWithinOrPresent","host","dismissAll","useSurfaces"],"sourceRoot":"../../../../src","sources":["ui/navigation/surfaces.ts"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,OAAO;AAErC,SACEC,QAAQ,IAAIC,aAAa,QAGpB,uBAAuB;AAC9B,OAAOC,aAAa,MAAM,gCAA6B;AAEvD,SACEC,gBAAgB,QAIX,sBAAmB;AAC1B,SAASC,qBAAqB,QAA8B,sBAAmB;;AAE/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAMC,eAAe,GAAG;EAAEC,IAAI,EAAE,QAAQ;EAAEC,EAAE,EAAE;AAAS,CAAU;;AAEjE;AACA,MAAMC,wBAAmC,GAAG;EAAEC,eAAe,EAAE,SAAS;EAAEC,QAAQ,EAAE;AAAS,CAAC;;AAE9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,kBAAkB,GAAG;EAAEC,cAAc,EAAE,CAAC;EAAEC,cAAc,EAAE;AAAI,CAAU;;AAE9E;AACA,SAASC,eAAeA,CAACC,MAA0B,EAAkB;EACnE;EACA;EACA,MAAMC,UAAU,GAAGD,MAAM,CAACC,UAAU;EACpC;EACA;EACA;EACA;EACA,MAAMC,KAAK,GAAGF,MAAM,CAACE,KAAK;EAC1B;EACA;EACA;EACA;EACA,MAAMC,MAAM,GAAGH,MAAM,CAACG,MAAM,GAAG;IAAEC,UAAU,EAAE;EAAK,CAAC,GAAGC,SAAS;EAC/D,QAAQL,MAAM,CAACM,YAAY;IACzB,KAAK,QAAQ;MACX,OAAO;QAAEC,SAAS,EAAE,QAAQ;QAAEN,UAAU;QAAEE,MAAM;QAAED,KAAK;QAAE,GAAGN;MAAmB,CAAC;IAClF,KAAK,QAAQ;MACX,OAAO;QACLW,SAAS,EAAE;UAAEhB,IAAI,EAAE,QAAQ;UAAEC,EAAE,EAAE;QAAO,CAAC;QACzCS,UAAU;QACVE,MAAM;QACND,KAAK;QACL,GAAGN;MACL,CAAC;IACH,KAAK,YAAY;MACf;MACA;MACA;MACA,OAAO;QACLW,SAAS,EAAEjB,eAAe;QAC1BO,cAAc,EAAE,CAAC;QACjBW,QAAQ,EAAE,GAAG;QACbV,cAAc,EAAE,GAAG;QACnBW,iBAAiB,EAAE,KAAK;QACxBR,UAAU;QACVC,KAAK;QACLQ,KAAK,EAAEjB,wBAAwB;QAC/BkB,UAAU,EAAElB;MACd,CAAC;IACH;MACE,OAAO;QAAEc,SAAS,EAAEjB,eAAe;QAAEW,UAAU;QAAEE,MAAM;QAAED,KAAK;QAAE,GAAGN;MAAmB,CAAC;EAC3F;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAcA;AACA;AACA;AACA;AACA;AACA;AACA;;AAUA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMgB,mBAAqC,GAAG,EAAE;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIC,oBAA2C,GAAG,IAAI;AAEtD,SAASC,eAAeA,CACtBC,KAAQ,EACRC,KAA8B,EAC9BC,IAAgC,EAChCC,KAAc,EACM;EACpB,MAAMC,QAAQ,GAAG9B,qBAAqB,CAAC0B,KAAK,EAAEC,KAAK,CAAC;EACpD,MAAMhB,MAAM,GAAGZ,gBAAgB,CAAC2B,KAAK,EAAEC,KAAK,CAAC;EAC7C,MAAMI,SAAyB,GAAG;IAAEC,KAAK,EAAEN,KAAK;IAAE,GAAGhB,eAAe,CAACC,MAAM,CAAC;IAAE,GAAGiB;EAAK,CAAC;EAEvF,MAAMK,MAAM,GAAGpC,aAAa,CAACqC,OAAO,CAAoBC,OAAwB,iBAC9ExC,aAAa,CAACG,aAAa,EAAE;IAC3BgC,QAAQ;IACRK,OAAO;IACPf,iBAAiB,EAAEW,SAAS,CAACX,iBAAiB,IAAI;EACpD,CAAC,CAAC,EACFW,SACF,CAAC;EAED,MAAMK,QAA4B,GAAG;IACnCV,KAAK;IACLW,QAAQ,EAAEA,CAACC,SAAS,EAAEC,SAAS,KAAK;MAClC,MAAMC,GAAG,GAAGV,QAAQ,CAACW,MAAM,CAAC,CAAC;MAC7B,IAAID,GAAG,CAACd,KAAK,KAAKY,SAAS,EAAER,QAAQ,CAACY,OAAO,CAACJ,SAAS,EAAEC,SAAS,CAAC,CAAC,KAC/DT,QAAQ,CAACO,QAAQ,CAACC,SAAS,EAAEC,SAAS,CAAC;IAC9C,CAAC;IACDG,OAAO,EAAEA,CAACJ,SAAS,EAAEC,SAAS,KAAKT,QAAQ,CAACY,OAAO,CAACJ,SAAS,EAAEC,SAAS,CAAC;IACzEI,MAAM,EAAEA,CAAA,KAAMb,QAAQ,CAACa,MAAM,CAAC,CAAC;IAC/BC,SAAS,EAAEA,CAAA,KAAMd,QAAQ,CAACc,SAAS,CAAC,CAAC;IACrCC,OAAO,EAAGC,IAAI,IAAKhB,QAAQ,CAACe,OAAO,CAACC,IAAI,CAAC;IACzCC,SAAS,EAAEA,CAACT,SAAS,EAAEC,SAAS,KAAKT,QAAQ,CAACiB,SAAS,CAACT,SAAS,EAAEC,SAAS,CAAC;IAC7ES,OAAO,EAAGC,aAAa,IAAKnB,QAAQ,CAACoB,cAAc,CAACD,aAAa,CAAC;IAClEhB;EACF,CAAC;;EAED;EACA;EACA;EACAA,MAAM,CAACkB,OAAO,CAAC,MAAMrB,QAAQ,CAACsB,iBAAiB,CAAC,CAAC,CAAC;EAElD,MAAMC,OAAuB,GAAG;IAC9B3B,KAAK,EAAEU,QAAQ,CAACV,KAAK;IACrBW,QAAQ,EAAED,QAAQ,CAACC,QAAQ;IAC3BM,MAAM,EAAEP,QAAQ,CAACO,MAAM;IACvBI,SAAS,EAAEX,QAAQ,CAACW,SAAS;IAC7BC,OAAO,EAAEA,CAAA,KAAMZ,QAAQ,CAACY,OAAO,CAAC;EAClC,CAAC;EACD,IAAInB,KAAK,EAAE;IACTN,mBAAmB,CAAC+B,IAAI,CAACD,OAAO,CAAC;IACjCpB,MAAM,CAACkB,OAAO,CAAC,MAAM;MACnB,MAAMI,KAAK,GAAGhC,mBAAmB,CAACiC,OAAO,CAACH,OAAO,CAAC;MAClD,IAAIE,KAAK,IAAI,CAAC,EAAEhC,mBAAmB,CAACkC,MAAM,CAACF,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC,CAAC;EACJ,CAAC,MAAM;IACL;IACA;IACA/B,oBAAoB,GAAG6B,OAAO;IAC9BpB,MAAM,CAACkB,OAAO,CAAC,MAAM;MACnB,IAAI3B,oBAAoB,KAAK6B,OAAO,EAAE7B,oBAAoB,GAAG,IAAI;IACnE,CAAC,CAAC;EACJ;EAEA,OAAOY,QAAQ;AACjB;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASF,OAAOA,CACrBR,KAAQ,EACRC,KAAuB,EACvBC,IAAqB,EACD;EACpB,OAAOH,eAAe,CAACC,KAAK,EAAGC,KAAK,IAAI,CAAC,CAAC,EAA8BC,IAAI,EAAE,IAAI,CAAC;AACrF;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAAS8B,eAAeA,CAC7BhC,KAAQ,EACRC,KAAuB,EACvBC,IAAqB,EACD;EACpB,OAAOH,eAAe,CAACC,KAAK,EAAGC,KAAK,IAAI,CAAC,CAAC,EAA8BC,IAAI,EAAE,KAAK,CAAC;AACtF;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAAS+B,YAAYA,CAACjC,KAAgB,EAAEC,KAA+B,EAAmB;EAC/F,OAAOF,eAAe,CAACC,KAAK,EAAEC,KAAK,IAAI,CAAC,CAAC,EAAEX,SAAS,EAAE,IAAI,CAAC;AAC7D;;AAEA;AACA,OAAO,SAAS4C,eAAeA,CAAA,EAA+B;EAC5D,OAAOrC,mBAAmB,CAACA,mBAAmB,CAACsC,MAAM,GAAG,CAAC,CAAC;AAC5D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,mBAAmBA,CAAA,EAA+B;EAChE,OAAOtC,oBAAoB,IAAIoC,eAAe,CAAC,CAAC;AAClD;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,qBAAqBA,CAAA,EAAS;EAC5C,KAAK,MAAM3B,QAAQ,IAAI,CAAC,GAAGb,mBAAmB,CAAC,CAACyC,OAAO,CAAC,CAAC,EAAE5B,QAAQ,CAACY,OAAO,CAAC,CAAC;AAC/E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASiB,uBAAuBA,CACrCnC,QAAyB,EACzBJ,KAAgB,EAChBC,KAA+B,EACzB;EACN,MAAMY,SAAS,GAAGZ,KAAK,IAAI,CAAC,CAAC;EAC7B,IAAI5B,gBAAgB,CAAC2B,KAAK,EAAEa,SAAS,CAAC,CAAC2B,MAAM,EAAE;IAC7CP,YAAY,CAACjC,KAAK,EAAEa,SAAS,CAAC;EAChC,CAAC,MAAM;IACLT,QAAQ,CAACO,QAAQ,CAACX,KAAK,EAAEa,SAAS,CAAC;EACrC;AACF;;AAEA;AACA,OAAO,SAAS4B,sBAAsBA,CACpCrC,QAAyB,EACzBJ,KAAgB,EAChBC,KAA+B,EACzB;EACN,MAAMY,SAAS,GAAGZ,KAAK,IAAI,CAAC,CAAC;EAC7B,IAAI5B,gBAAgB,CAAC2B,KAAK,EAAEa,SAAS,CAAC,CAAC2B,MAAM,EAAE;IAC7CP,YAAY,CAACjC,KAAK,EAAEa,SAAS,CAAC;EAChC,CAAC,MAAM;IACLT,QAAQ,CAACY,OAAO,CAAChB,KAAK,EAAEa,SAAS,CAAC;EACpC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAAS6B,mBAAmBA,CACjC1C,KAAQ,EACRC,KAAuB,EACgB;EACvC,MAAMY,SAAS,GAAIZ,KAAK,IAAI,CAAC,CAA6B;EAC1D,MAAM0C,IAAI,GAAGP,mBAAmB,CAAC,CAAC;EAClC,IAAIO,IAAI,IAAI,CAACtE,gBAAgB,CAAC2B,KAAK,EAAEa,SAAS,CAAC,CAAC2B,MAAM,EAAE;IACtD;IACA;IACA;IACA,OAAOG,IAAI,CAACtB,SAAS,CAACrB,KAAK,EAAEa,SAAS,CAAC;EACzC;EACA,OAAOL,OAAO,CAACR,KAAK,EAAEC,KAAK,CAAC,CAACM,MAAM;AACrC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMrC,QAAQ,GAAG;EACtBsC,OAAO,EAAEA,CAAsBR,KAAQ,EAAEC,KAAuB,EAAEC,IAAqB,KACrFM,OAAO,CAACR,KAAK,EAAEC,KAAK,EAAEC,IAAI,CAAC,CAACK,MAAM;EACpCqC,UAAU,EAAEP;AACd,CAAU;;AAEV;AACA,OAAO,SAASQ,WAAWA,CAAA,EAAoB;EAC7C,OAAO3E,QAAQ;AACjB","ignoreList":[]}
|