{"version":3,"file":"static/js/670.edf61c90.js","mappings":"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","sources":["node_modules/@babel/runtime/regenerator/index.js","node_modules/@expo-google-fonts/montserrat/useFonts.js","node_modules/@expo-google-fonts/montserrat/index.js","node_modules/@expo/vector-icons/MaterialCommunityIcons.js","node_modules/@expo/vector-icons/src/MaterialCommunityIcons.ts","node_modules/@expo/vector-icons/src/FontAwesome.ts","node_modules/@expo/vector-icons/src/createMultiStyleIconSet.ts","node_modules/@expo/vector-icons/src/FontAwesome5.ts","node_modules/@expo/vector-icons/src/createIconSetFromFontAwesome5.ts","node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/lib/ensure-native-module-available.js","node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/lib/create-icon-source-cache.js","node_modules/react-native-web/dist/exports/TouchableHighlight/index.js","node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/lib/icon-button.js","node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/lib/create-icon-set.js","node_modules/@expo/vector-icons/src/createIconSet.tsx","node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/textSelection.ts","node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/context.ts","node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/usePress.ts","node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/Pressable.tsx","node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/PressResponder.tsx","node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/utils.ts","node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/useFocus.ts","node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/useFocusVisible.ts","node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/useFocusWithin.ts","node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/useHover.ts","node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/useInteractOutside.ts","node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/createEventHandler.ts","node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/useKeyboard.ts","node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/useMove.ts","node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/useScrollWheel.ts","node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/useLongPress.ts","node_modules/@react-aria/ssr/dist/packages/@react-aria/ssr/src/SSRProvider.tsx","node_modules/@react-stately/utils/dist/packages/@react-stately/utils/src/useControlledState.ts","node_modules/@react-stately/utils/dist/packages/@react-stately/utils/src/number.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useLayoutEffect.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useId.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/chain.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/mergeProps.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/mergeRefs.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/filterDOMProps.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/focusWithoutScrolling.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/getOffset.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/runAfterTransition.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useDrag1D.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useGlobalListeners.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useLabels.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useObjectRef.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useUpdateEffect.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useResizeObserver.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useSyncRef.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/getScrollParent.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useViewportSize.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useDescription.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/platform.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useEvent.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useValueEffect.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/scrollIntoView.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/isVirtualEvent.ts","node_modules/dom-helpers/esm/ownerDocument.js","node_modules/dom-helpers/esm/getComputedStyle.js","node_modules/dom-helpers/esm/ownerWindow.js","node_modules/dom-helpers/esm/hyphenate.js","node_modules/dom-helpers/esm/hyphenateStyle.js","node_modules/dom-helpers/esm/isTransform.js","node_modules/dom-helpers/esm/css.js","node_modules/dom-helpers/esm/isWindow.js","node_modules/dom-helpers/esm/isDocument.js","node_modules/dom-helpers/esm/getScrollAccessor.js","node_modules/dom-helpers/esm/scrollLeft.js","node_modules/dom-helpers/esm/scrollTop.js","node_modules/dom-helpers/esm/offset.js","node_modules/dom-helpers/esm/contains.js","node_modules/dom-helpers/esm/offsetParent.js","node_modules/dom-helpers/esm/position.js","node_modules/@react-native-aria/overlays/lib/module/web/overlays/src/calculatePosition.ts","node_modules/@react-native-aria/overlays/lib/module/web/overlays/src/useCloseOnScroll.ts","node_modules/@react-native-aria/overlays/lib/module/web/overlays/src/useOverlayPosition.ts","node_modules/@internationalized/string/dist/packages/@internationalized/string/src/LocalizedStringFormatter.ts","node_modules/@internationalized/date/dist/packages/@internationalized/date/src/queries.ts","node_modules/@internationalized/date/dist/packages/@internationalized/date/src/conversion.ts","node_modules/@internationalized/date/dist/packages/@internationalized/date/src/CalendarDate.ts","node_modules/@internationalized/date/dist/packages/@internationalized/date/src/DateFormatter.ts","node_modules/@internationalized/number/dist/packages/@internationalized/number/src/NumberFormatter.ts","node_modules/@internationalized/number/dist/packages/@internationalized/number/src/NumberParser.ts","node_modules/@react-aria/i18n/dist/packages/@react-aria/i18n/src/utils.ts","node_modules/@react-aria/i18n/dist/packages/@react-aria/i18n/src/useDefaultLocale.ts","node_modules/@react-aria/i18n/dist/packages/@react-aria/i18n/src/context.tsx","node_modules/@react-aria/i18n/dist/packages/@react-aria/i18n/src/useLocalizedStringFormatter.ts","node_modules/@react-aria/i18n/dist/packages/@react-aria/i18n/src/useCollator.ts","node_modules/@react-aria/focus/dist/packages/@react-aria/focus/src/FocusScope.tsx","node_modules/@react-aria/focus/dist/packages/@react-aria/focus/src/useFocusable.tsx","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/src/calculatePosition.ts","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/src/useCloseOnScroll.ts","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/src/useOverlayPosition.ts","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/src/useOverlay.ts","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/src/useOverlayTrigger.ts","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/src/usePreventScroll.ts","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/src/useModal.tsx","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/src/ariaHideOutside.ts","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/src/Overlay.tsx","node_modules/@react-native-aria/overlays/lib/module/Portal.tsx","node_modules/@react-native-aria/overlays/lib/module/useOverlay.web.ts","node_modules/@react-native-aria/utils/lib/module/ariaToAccessibilityMap.ts","node_modules/@react-native-aria/utils/lib/module/index.ts","node_modules/@react-navigation/routers/lib/module/CommonActions.tsx","node_modules/@react-navigation/core/lib/module/createNavigationContainerRef.tsx","node_modules/@react-navigation/core/lib/module/EnsureSingleNavigator.tsx","node_modules/@react-navigation/core/lib/module/findFocusedRoute.tsx","node_modules/@react-navigation/core/lib/module/NavigationBuilderContext.tsx","node_modules/@react-navigation/core/lib/module/NavigationContainerRefContext.tsx","node_modules/@react-navigation/core/lib/module/NavigationContext.tsx","node_modules/@react-navigation/core/lib/module/NavigationRouteContext.tsx","node_modules/@react-navigation/core/lib/module/NavigationStateContext.tsx","node_modules/@react-navigation/core/lib/module/UnhandledActionContext.tsx","node_modules/@react-navigation/core/lib/module/useChildListeners.tsx","node_modules/@react-navigation/core/lib/module/useEventEmitter.tsx","node_modules/@react-navigation/core/lib/module/useKeyedChildListeners.tsx","node_modules/@react-navigation/core/lib/module/useOptionsGetters.tsx","node_modules/@react-navigation/core/lib/module/useScheduleUpdate.tsx","node_modules/@react-navigation/core/lib/module/useSyncState.tsx","node_modules/@react-navigation/core/lib/module/BaseNavigationContainer.tsx","node_modules/@react-navigation/core/lib/module/Group.tsx","node_modules/@react-navigation/core/lib/module/Screen.tsx","node_modules/@react-navigation/core/lib/module/createNavigatorFactory.tsx","node_modules/@react-navigation/core/lib/module/CurrentRenderContext.tsx","node_modules/@react-navigation/core/lib/module/getActionFromState.tsx","node_modules/@react-navigation/core/lib/module/useRouteCache.tsx","node_modules/@react-navigation/core/lib/module/getFocusedRouteNameFromRoute.tsx","node_modules/@react-navigation/core/lib/module/fromEntries.tsx","node_modules/@react-navigation/core/lib/module/validatePathConfig.tsx","node_modules/@react-navigation/core/lib/module/getPathFromState.tsx","node_modules/@react-navigation/core/lib/module/getStateFromPath.tsx","node_modules/@react-navigation/core/lib/module/NavigationHelpersContext.tsx","node_modules/@react-navigation/core/lib/module/types.tsx","node_modules/@react-navigation/core/lib/module/useNavigation.tsx","node_modules/@react-navigation/core/lib/module/useFocusEffect.tsx","node_modules/@react-navigation/core/lib/module/useIsFocused.tsx","node_modules/@react-navigation/core/lib/module/isArrayEqual.tsx","node_modules/@react-navigation/core/lib/module/StaticContainer.tsx","node_modules/@react-navigation/core/lib/module/SceneView.tsx","node_modules/@react-navigation/core/lib/module/useDescriptors.tsx","node_modules/@react-navigation/core/lib/module/useNavigationCache.tsx","node_modules/@react-navigation/core/lib/module/useOnPreventRemove.tsx","node_modules/@react-navigation/core/lib/module/useOnAction.tsx","node_modules/@react-navigation/core/lib/module/useNavigationBuilder.tsx","node_modules/@react-navigation/core/lib/module/useRegisterNavigator.tsx","node_modules/@react-navigation/core/lib/module/isRecordEqual.tsx","node_modules/@react-navigation/core/lib/module/useFocusEvents.tsx","node_modules/@react-navigation/core/lib/module/useOnRouteFocus.tsx","node_modules/@react-navigation/core/lib/module/useNavigationHelpers.tsx","node_modules/@react-navigation/core/lib/module/useFocusedListenersChildrenAdapter.tsx","node_modules/@react-navigation/core/lib/module/useOnGetState.tsx","node_modules/@react-navigation/core/lib/module/useCurrentRender.tsx","node_modules/@react-navigation/core/lib/module/useComponent.tsx","node_modules/@react-navigation/core/lib/module/useNavigationContainerRef.tsx","node_modules/@react-navigation/core/lib/module/useNavigationState.tsx","node_modules/@react-navigation/core/lib/module/useRoute.tsx","node_modules/@react-navigation/routers/lib/module/BaseRouter.tsx","node_modules/@react-navigation/routers/lib/module/TabRouter.tsx","node_modules/@react-navigation/routers/lib/module/DrawerRouter.tsx","node_modules/@react-navigation/routers/lib/module/StackRouter.tsx","node_modules/@react-navigation/elements/lib/module/SafeAreaProviderCompat.tsx","node_modules/@react-navigation/native/lib/module/theming/useTheme.tsx","node_modules/@react-navigation/elements/lib/module/Background.tsx","node_modules/@react-navigation/elements/lib/module/Header/getDefaultHeaderHeight.tsx","node_modules/@react-navigation/elements/lib/module/getNamedContext.tsx","node_modules/@react-navigation/elements/lib/module/Header/HeaderHeightContext.tsx","node_modules/@react-navigation/elements/lib/module/Header/HeaderShownContext.tsx","node_modules/@react-navigation/elements/lib/module/Screen.tsx","node_modules/@react-navigation/elements/lib/module/Header/getHeaderTitle.tsx","node_modules/@react-navigation/elements/lib/module/Header/HeaderBackground.tsx","node_modules/@react-navigation/elements/lib/module/Header/HeaderTitle.tsx","node_modules/@react-navigation/elements/lib/module/Header/Header.tsx","node_modules/@react-navigation/elements/lib/module/MaskedView.tsx","node_modules/@react-navigation/elements/lib/module/PlatformPressable.tsx","node_modules/@react-navigation/elements/lib/module/Header/HeaderBackButton.tsx","node_modules/@react-navigation/native-stack/lib/module/views/NativeStackView.tsx","node_modules/@react-navigation/native-stack/lib/module/navigators/createNativeStackNavigator.tsx","node_modules/@react-navigation/native/lib/module/LinkingContext.tsx","node_modules/@react-navigation/native/lib/module/theming/ThemeProvider.tsx","node_modules/@react-navigation/native/lib/module/ServerContext.tsx","node_modules/@react-navigation/native/lib/module/useLinking.tsx","node_modules/@react-navigation/native/lib/module/NavigationContainer.tsx","node_modules/@react-navigation/native/lib/module/useBackButton.tsx","node_modules/@react-navigation/native/lib/module/useDocumentTitle.tsx","node_modules/@react-navigation/native/lib/module/useThenable.tsx","node_modules/@react-navigation/native/lib/module/theming/DarkTheme.tsx","node_modules/@react-navigation/native/lib/module/theming/DefaultTheme.tsx","node_modules/@react-navigation/native/lib/module/theming/ThemeContext.tsx","node_modules/expo-app-loading/src/AppLoadingNativeWrapper.tsx","node_modules/expo-app-loading/src/AppLoading.tsx","node_modules/expo-app-loading/src/index.ts","node_modules/expo-camera/src/Camera.types.ts","node_modules/expo-camera/src/WebUserMediaManager.ts","node_modules/expo-camera/src/ExponentCameraManager.web.ts","node_modules/expo-camera/src/WebCapabilityUtils.ts","node_modules/expo-camera/src/WebConstants.ts","node_modules/expo-camera/src/WebCameraUtils.ts","node_modules/expo-camera/src/useWebCameraStream.ts","node_modules/dequal/dist/dequal.mjs","node_modules/expo-camera/node_modules/@koale/useworker/dist/index.mjs","node_modules/expo-camera/src/useWebQRScanner.ts","node_modules/expo-camera/src/ExponentCamera.web.tsx","node_modules/expo-camera/src/utils/props.ts","node_modules/expo-camera/src/Camera.tsx","node_modules/expo-constants/src/ExponentConstants.web.ts","node_modules/expo-constants/src/Constants.ts","node_modules/expo-constants/src/Constants.types.ts","node_modules/expo-error-recovery/src/ExpoErrorRecovery.web.ts","node_modules/expo-error-recovery/src/ErrorRecovery.ts","node_modules/expo-error-recovery/src/ErroRecoveryStore.ts","node_modules/expo-font/src/Font.types.ts","node_modules/expo-font/src/ExpoFontLoader.web.ts","node_modules/expo-font/src/FontLoader.web.ts","node_modules/expo-font/src/Font.ts","node_modules/expo-image-picker/node_modules/uuid/dist/esm-browser/rng.js","node_modules/expo-image-picker/node_modules/uuid/dist/esm-browser/bytesToUuid.js","node_modules/expo-image-picker/node_modules/uuid/dist/esm-browser/v4.js","node_modules/expo-image-picker/src/ImagePicker.types.ts","node_modules/expo-image-picker/src/ExponentImagePicker.web.ts","node_modules/expo-image-picker/src/ImagePicker.ts","node_modules/expo-linking/src/ExpoLinking.web.ts","node_modules/expo-linking/src/Schemes.ts","node_modules/@babel/runtime/helpers/esm/toArray.js","node_modules/expo-linking/src/Linking.ts","node_modules/react-native-web/dist/exports/DeviceEventEmitter/index.js","node_modules/react-native-web/dist/exports/NativeEventEmitter/index.js","node_modules/expo-modules-core/src/EventEmitter.ts","node_modules/expo-modules-core/src/NativeModulesProxy.ts","node_modules/expo-modules-core/src/environment/browser.web.ts","node_modules/expo-modules-core/src/Platform.ts","node_modules/@babel/runtime/helpers/esm/construct.js","node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","node_modules/expo-modules-core/src/errors/CodedError.ts","node_modules/expo-modules-core/src/errors/UnavailabilityError.ts","node_modules/expo-modules-core/src/NativeViewManagerAdapter.tsx","node_modules/expo-modules-core/src/PermissionsInterface.ts","node_modules/expo-modules-core/src/deprecate.ts","node_modules/expo-modules-core/src/PermissionsHook.ts","node_modules/expo-modules-core/src/index.ts","node_modules/expo-splash-screen/src/ExpoSplashScreen.web.ts","node_modules/expo-splash-screen/src/SplashScreen.ts","node_modules/expo-status-bar/src/ExpoStatusBar.tsx","node_modules/react-native-web/dist/exports/unmountComponentAtNode/index.js","node_modules/react-native-web/dist/exports/AppRegistry/AppContainer.js","node_modules/react-native-web/dist/exports/render/index.js","node_modules/react-native-web/dist/exports/AppRegistry/renderApplication.js","node_modules/react-native-web/dist/exports/AppRegistry/index.js","node_modules/expo/src/environment/react-native-logs.fx.ts","node_modules/expo/src/launch/RecoveryProps.ts","node_modules/expo/src/launch/withExpoRoot.web.tsx","node_modules/expo/src/launch/registerRootComponent.tsx","node_modules/expo/AppEntry.js","node_modules/native-base/lib/module/components/primitives/Overlay/ExitAnimationContext.ts","node_modules/native-base/lib/module/components/primitives/Overlay/Overlay.tsx","node_modules/native-base/lib/module/components/composites/Transitions/Transition.tsx","node_modules/native-base/lib/module/components/composites/Transitions/PresenceTransition.tsx","node_modules/native-base/lib/module/hooks/useNativeBase.tsx","node_modules/native-base/lib/module/hooks/useThemeProps/propsFlattener.tsx","node_modules/native-base/lib/module/hooks/useThemeProps/usePropsResolution.tsx","node_modules/native-base/lib/module/hooks/useResponsiveSSRProps.ts","node_modules/native-base/lib/module/hooks/useBreakpointResolvedProps.ts","node_modules/native-base/lib/module/utils/useResponsiveQuery/hash.ts","node_modules/native-base/lib/module/utils/react-native-web-fucntions/staticData.ts","node_modules/native-base/lib/module/utils/react-native-web-fucntions/prefixStyles.ts","node_modules/native-base/lib/module/utils/react-native-web-fucntions/unitlessNumbers.ts","node_modules/native-base/lib/module/utils/react-native-web-fucntions/normalizeColor.ts","node_modules/native-base/lib/module/utils/react-native-web-fucntions/normalizeValueWithProperty.ts","node_modules/native-base/lib/module/utils/react-native-web-fucntions/createReactDOMStyle.ts","node_modules/native-base/lib/module/utils/react-native-web-fucntions/hyphenateStyleName.ts","node_modules/native-base/lib/module/utils/react-native-web-fucntions/atomic.ts","node_modules/native-base/lib/module/utils/react-native-web-fucntions/preprocess.ts","node_modules/stable-hash/dist/index.mjs","node_modules/native-base/lib/module/utils/useResponsiveQuery/useResponsiveQuery.web.tsx","node_modules/native-base/lib/module/utils/useResponsiveQuery/useStableMemo.ts","node_modules/native-base/lib/module/utils/useResponsiveQuery/common.ts","node_modules/native-base/lib/module/hooks/useStyledSystemPropsResolver.ts","node_modules/native-base/lib/module/utils/getStyledSystemPropsAndRestProps.ts","node_modules/native-base/lib/module/utils/styled.tsx","node_modules/native-base/lib/module/components/primitives/Text/index.tsx","node_modules/@react-native-aria/interactions/lib/module/useHover.web.ts","node_modules/native-base/lib/module/hooks/useResolvedFontFamily.ts","node_modules/native-base/lib/module/utils/mergeRefs.ts","node_modules/native-base/lib/module/utils/wrapStringChild.tsx","node_modules/native-base/lib/module/hooks/useSafeArea/utils.ts","node_modules/native-base/lib/module/hooks/useSafeArea/index.ts","node_modules/native-base/lib/module/components/primitives/Box/index.tsx","node_modules/native-base/lib/module/utils/getSpacedChildren.tsx","node_modules/native-base/lib/module/components/primitives/Stack/Stack.tsx","node_modules/native-base/lib/module/components/primitives/Stack/VStack.tsx","node_modules/react-native-web/dist/exports/SafeAreaView/index.js","node_modules/react-native-web/dist/exports/Keyboard/index.js","node_modules/native-base/lib/module/utils/useKeyboardBottomInset.ts","node_modules/native-base/lib/module/components/composites/Toast/Toast.tsx","node_modules/native-base/lib/module/core/NativeBaseContext.ts","node_modules/native-base/lib/module/utils/createContext.tsx","node_modules/native-base/lib/module/theme/components/accordion.ts","node_modules/native-base/lib/module/theme/components/alert.ts","node_modules/native-base/lib/module/theme/components/aspect-ratio.ts","node_modules/native-base/lib/module/theme/components/avatar.ts","node_modules/native-base/lib/module/theme/components/avatar-badge.ts","node_modules/native-base/lib/module/theme/components/avatar-group.ts","node_modules/native-base/lib/module/theme/components/badge.ts","node_modules/native-base/lib/module/theme/components/breadcrumb.ts","node_modules/native-base/lib/module/theme/components/button.ts","node_modules/native-base/lib/module/theme/components/card.ts","node_modules/native-base/lib/module/theme/components/center.ts","node_modules/native-base/lib/module/theme/components/checkbox.ts","node_modules/native-base/lib/module/theme/components/checkbox-group.ts","node_modules/native-base/lib/module/theme/components/box.ts","node_modules/native-base/lib/module/theme/components/flatList.ts","node_modules/native-base/lib/module/theme/components/keyboardAvoidingView.ts","node_modules/native-base/lib/module/theme/components/scrollView.ts","node_modules/native-base/lib/module/theme/components/sectionList.ts","node_modules/native-base/lib/module/theme/components/statusBar.ts","node_modules/native-base/lib/module/theme/components/circular-progress.ts","node_modules/native-base/lib/module/theme/components/code.ts","node_modules/native-base/lib/module/theme/components/container.ts","node_modules/native-base/lib/module/theme/components/hstack.ts","node_modules/native-base/lib/module/theme/components/vstack.ts","node_modules/native-base/lib/module/theme/components/divider.ts","node_modules/native-base/lib/module/theme/components/circle.ts","node_modules/native-base/lib/module/theme/components/simple-grid.ts","node_modules/native-base/lib/module/theme/components/heading.ts","node_modules/native-base/lib/module/theme/components/icon.ts","node_modules/native-base/lib/module/theme/components/icon-button.ts","node_modules/native-base/lib/module/theme/components/image.ts","node_modules/native-base/lib/module/theme/components/input.ts","node_modules/native-base/lib/module/theme/components/tooltip.ts","node_modules/native-base/lib/module/theme/components/kbd.ts","node_modules/native-base/lib/module/theme/components/link.ts","node_modules/native-base/lib/module/theme/components/menu.ts","node_modules/native-base/lib/module/theme/components/modal.ts","node_modules/native-base/lib/module/theme/components/alert-dialog.ts","node_modules/native-base/lib/module/theme/components/popover.ts","node_modules/native-base/lib/module/theme/components/number-input.ts","node_modules/native-base/lib/module/theme/components/pin-input.ts","node_modules/native-base/lib/module/theme/components/pressable.ts","node_modules/native-base/lib/module/theme/components/progress.ts","node_modules/native-base/lib/module/theme/components/radio.ts","node_modules/native-base/lib/module/theme/components/radio-group.ts","node_modules/native-base/lib/module/theme/components/stat.ts","node_modules/native-base/lib/module/theme/components/switch.ts","node_modules/native-base/lib/module/theme/components/tabs.ts","node_modules/native-base/lib/module/theme/components/tag.ts","node_modules/native-base/lib/module/theme/components/text.ts","node_modules/native-base/lib/module/theme/components/app-bar.ts","node_modules/native-base/lib/module/theme/components/textarea.ts","node_modules/native-base/lib/module/theme/components/textField.ts","node_modules/native-base/lib/module/theme/components/toast.ts","node_modules/native-base/lib/module/theme/components/transitions.ts","node_modules/native-base/lib/module/theme/components/typeahead.ts","node_modules/native-base/lib/module/theme/components/stack.ts","node_modules/native-base/lib/module/theme/components/square.ts","node_modules/native-base/lib/module/theme/components/view.ts","node_modules/native-base/lib/module/theme/components/zstack.ts","node_modules/native-base/lib/module/theme/components/slider.ts","node_modules/native-base/lib/module/theme/components/index.ts","node_modules/native-base/lib/module/theme/components/actionsheet.ts","node_modules/native-base/lib/module/theme/components/fab.ts","node_modules/native-base/lib/module/theme/components/flex.ts","node_modules/native-base/lib/module/theme/components/form-control.ts","node_modules/native-base/lib/module/theme/components/inputleftaddon.ts","node_modules/native-base/lib/module/theme/components/inputrightaddon.ts","node_modules/native-base/lib/module/theme/components/list.ts","node_modules/native-base/lib/module/theme/components/select.ts","node_modules/native-base/lib/module/theme/components/skeleton.ts","node_modules/native-base/lib/module/theme/components/spinner.ts","node_modules/native-base/lib/module/theme/components/wrap.ts","node_modules/native-base/lib/module/theme/v33x-theme/base/borders.ts","node_modules/native-base/lib/module/theme/v33x-theme/base/breakpoints.ts","node_modules/native-base/lib/module/theme/v33x-theme/base/colors.ts","node_modules/native-base/lib/module/theme/v33x-theme/base/radius.ts","node_modules/native-base/lib/module/theme/v33x-theme/base/shadows.ts","node_modules/native-base/lib/module/theme/v33x-theme/base/space.ts","node_modules/native-base/lib/module/theme/v33x-theme/base/sizes.ts","node_modules/native-base/lib/module/theme/v33x-theme/base/opacity.ts","node_modules/native-base/lib/module/theme/v33x-theme/base/index.ts","node_modules/native-base/lib/module/theme/v33x-theme/base/typography.ts","node_modules/native-base/lib/module/theme/v33x-theme/tools/colors.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/accordion.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/actionsheet.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/select.ts","node_modules/native-base/lib/module/theme/v33x-theme/tools/utils.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/alert.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/aspect-ratio.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/avatar.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/avatar-badge.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/avatar-group.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/badge.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/breadcrumb.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/button.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/card.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/center.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/checkbox.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/checkbox-group.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/box.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/flatList.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/keyboardAvoidingView.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/scrollView.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/sectionList.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/statusBar.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/circular-progress.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/code.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/container.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/hstack.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/vstack.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/divider.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/circle.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/simple-grid.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/form-control.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/heading.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/icon.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/icon-button.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/image.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/input.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/tooltip.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/kbd.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/link.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/menu.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/modal.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/alert-dialog.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/popover.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/number-input.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/pin-input.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/progress.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/radio.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/radio-group.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/skeleton.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/stat.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/switch.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/tabs.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/tag.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/text.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/app-bar.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/textarea.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/textField.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/toast.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/transitions.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/typeahead.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/stack.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/square.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/view.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/zstack.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/slider.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/index.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/fab.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/flex.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/inputleftaddon.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/inputrightaddon.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/list.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/pressable.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/spinner.ts","node_modules/native-base/lib/module/theme/v33x-theme/components/wrap.ts","node_modules/native-base/lib/module/theme/v33x-theme/index.ts","node_modules/native-base/lib/module/theme/index.ts","node_modules/native-base/lib/module/core/hybrid-overlay/HybridProvider.tsx","node_modules/native-base/lib/module/core/NativeBaseProvider.tsx","node_modules/react-native-web/dist/exports/AppState/index.js","node_modules/native-base/lib/module/core/color-mode/hooks.tsx","node_modules/native-base/lib/module/core/hybrid-overlay/Context.ts","node_modules/native-base/lib/module/hooks/useKeyboardDismissable.ts","node_modules/native-base/lib/module/hooks/useTheme.ts","node_modules/native-base/lib/module/hooks/useContrastText.ts","node_modules/native-base/lib/module/hooks/useToken.ts","node_modules/native-base/lib/module/hooks/useThemeProps/utils.ts","node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js","node_modules/native-base/lib/module/theme/base/borders.ts","node_modules/native-base/lib/module/theme/base/breakpoints.ts","node_modules/native-base/lib/module/theme/base/colors.ts","node_modules/native-base/lib/module/theme/base/radius.ts","node_modules/native-base/lib/module/theme/base/shadows.ts","node_modules/native-base/lib/module/theme/base/space.ts","node_modules/native-base/lib/module/theme/base/sizes.ts","node_modules/native-base/lib/module/theme/base/opacity.ts","node_modules/native-base/lib/module/theme/base/index.ts","node_modules/native-base/lib/module/theme/base/typography.ts","node_modules/native-base/lib/module/utils/convertStringNumberToNumber.ts","node_modules/native-base/lib/module/utils/getRNKeyAndStyleValue.ts","node_modules/native-base/lib/module/theme/styled-system.ts","node_modules/native-base/lib/module/utils/getStyledFromProps.ts","node_modules/native-base/lib/module/theme/tools/colors.ts","node_modules/native-base/lib/module/theme/tools/utils.ts","node_modules/native-base/lib/module/utils/useResponsiveQuery/ResponsiveQueryProvider.tsx","node_modules/bignumber.js/bignumber.mjs","node_modules/react-native-mask-text/lib/module/utils/addPlaceholder.ts","node_modules/react-native-mask-text/lib/module/utils/constants.ts","node_modules/react-native-mask-text/lib/module/utils/toPattern.ts","node_modules/react-native-mask-text/lib/module/utils/mask.ts","node_modules/react-native-mask-text/lib/module/components/MaskedText.tsx","node_modules/react-native-mask-text/lib/module/components/MaskedTextInput.tsx","node_modules/react-native-paper/lib/module/components/ActivityIndicator.tsx","node_modules/react-native-paper/lib/module/components/Icon.tsx","node_modules/react-native-paper/lib/module/styles/shadow.tsx","node_modules/react-native-paper/lib/module/styles/overlay.tsx","node_modules/react-native-paper/lib/module/components/Surface.tsx","node_modules/react-native-paper/lib/module/components/Button.tsx","node_modules/react-native-paper/lib/module/components/Checkbox/CheckboxIOS.tsx","node_modules/react-native-paper/lib/module/components/Checkbox/CheckboxAndroid.tsx","node_modules/react-native-paper/lib/module/components/Checkbox/Checkbox.tsx","node_modules/react-native-paper/lib/module/components/Checkbox/CheckboxItem.tsx","node_modules/react-native-paper/lib/module/components/Checkbox/index.ts","node_modules/react-native-paper/lib/module/components/MaterialCommunityIcon.tsx","node_modules/react-native-paper/lib/module/components/RadioButton/RadioButtonGroup.tsx","node_modules/react-native-paper/lib/module/components/RadioButton/utils.ts","node_modules/react-native-paper/lib/module/components/RadioButton/RadioButtonAndroid.tsx","node_modules/react-native-paper/lib/module/components/RadioButton/RadioButtonIOS.tsx","node_modules/react-native-paper/lib/module/components/RadioButton/RadioButton.tsx","node_modules/react-native-paper/lib/module/components/RadioButton/RadioButtonItem.tsx","node_modules/react-native-paper/lib/module/components/RadioButton/index.ts","node_modules/react-native-web/dist/exports/TouchableWithoutFeedback/index.js","node_modules/react-native-paper/lib/module/components/TouchableRipple/TouchableRipple.tsx","node_modules/react-native-paper/lib/module/components/Typography/Text.tsx","node_modules/react-native-paper/lib/module/components/Portal/PortalManager.tsx","node_modules/react-native-paper/lib/module/components/Portal/PortalHost.tsx","node_modules/react-native-paper/lib/module/core/Provider.tsx","node_modules/react-native-paper/lib/module/utils/addEventListener.tsx","node_modules/react-native-paper/lib/module/core/settings.tsx","node_modules/react-native-paper/lib/module/core/theming.tsx","node_modules/react-native-paper/lib/module/styles/DarkTheme.tsx","node_modules/react-native-paper/lib/module/styles/fonts.tsx","node_modules/react-native-paper/lib/module/styles/DefaultTheme.tsx","node_modules/react-native-paper/lib/module/styles/colors.tsx","node_modules/react-native-safe-area-context/lib/module/InitialWindow.ts","node_modules/react-native-safe-area-context/lib/module/NativeSafeAreaProvider.tsx","node_modules/react-native-safe-area-context/lib/module/SafeAreaContext.tsx","node_modules/react-native-web/dist/exports/AccessibilityInfo/index.js","node_modules/react-native-web/dist/exports/ActivityIndicator/index.js","node_modules/react-native-web/dist/vendor/react-native/Animated/NativeAnimatedHelper.js","node_modules/react-native-web/dist/vendor/react-native/TurboModule/TurboModuleRegistry.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedNode.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedWithChildren.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedInterpolation.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedValue.js","node_modules/react-native-web/dist/vendor/react-native/Animated/AnimatedEvent.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedTransform.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedStyle.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedProps.js","node_modules/react-native-web/dist/vendor/react-native/Utilities/setAndForwardRef.js","node_modules/react-native-web/dist/vendor/react-native/Animated/createAnimatedComponent.js","node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedFlatList.js","node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedImage.js","node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedScrollView.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizedSectionList/index.js","node_modules/react-native-web/dist/vendor/react-native/SectionList/index.js","node_modules/react-native-web/dist/exports/SectionList/index.js","node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedSectionList.js","node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedText.js","node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedView.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedAddition.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedDiffClamp.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedDivision.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedModulo.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedMultiplication.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedSubtraction.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedTracking.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedValueXY.js","node_modules/react-native-web/dist/vendor/react-native/Animated/animations/Animation.js","node_modules/react-native-web/dist/vendor/react-native/Animated/animations/DecayAnimation.js","node_modules/react-native-web/dist/vendor/react-native/Animated/SpringConfig.js","node_modules/react-native-web/dist/vendor/react-native/Animated/animations/SpringAnimation.js","node_modules/react-native-web/dist/vendor/react-native/Animated/animations/TimingAnimation.js","node_modules/react-native-web/dist/vendor/react-native/Animated/AnimatedImplementation.js","node_modules/react-native-web/dist/vendor/react-native/Animated/AnimatedMock.js","node_modules/react-native-web/dist/vendor/react-native/Animated/Animated.js","node_modules/react-native-web/dist/exports/Animated/index.js","node_modules/react-native-web/dist/exports/Appearance/index.js","node_modules/react-native-web/dist/exports/BackHandler/index.js","node_modules/react-native-web/dist/exports/Dimensions/index.js","node_modules/react-native-web/dist/vendor/react-native/Animated/bezier.js","node_modules/react-native-web/dist/vendor/react-native/Animated/Easing.js","node_modules/react-native-web/dist/exports/Easing/index.js","node_modules/react-native-web/dist/vendor/react-native/deepDiffer/index.js","node_modules/react-native-web/dist/vendor/react-native/FlatList/index.js","node_modules/react-native-web/dist/exports/FlatList/index.js","node_modules/react-native-web/dist/exports/I18nManager/index.js","node_modules/react-native-web/dist/modules/AssetRegistry/index.js","node_modules/react-native-web/dist/modules/ImageLoader/index.js","node_modules/react-native-web/dist/exports/Image/index.js","node_modules/react-native-web/dist/exports/ImageBackground/index.js","node_modules/react-native-web/dist/modules/requestIdleCallback/index.js","node_modules/react-native-web/dist/exports/InteractionManager/index.js","node_modules/react-native-web/dist/exports/Modal/ModalPortal.js","node_modules/react-native-web/dist/exports/Modal/ModalAnimation.js","node_modules/react-native-web/dist/exports/Modal/ModalContent.js","node_modules/react-native-web/dist/exports/Modal/ModalFocusTrap.js","node_modules/react-native-web/dist/exports/Modal/index.js","node_modules/react-native-web/dist/exports/NativeModules/index.js","node_modules/react-native-web/dist/exports/PixelRatio/index.js","node_modules/react-native-web/dist/exports/Platform/index.js","node_modules/react-native-web/dist/modules/createEventHandle/index.js","node_modules/react-native-web/dist/modules/modality/index.js","node_modules/react-native-web/dist/modules/useEvent/index.js","node_modules/react-native-web/dist/modules/useHover/index.js","node_modules/react-native-web/dist/exports/Pressable/index.js","node_modules/react-native-web/dist/modules/ScrollResponder/index.js","node_modules/react-native-web/dist/exports/ScrollView/ScrollViewBase.js","node_modules/react-native-web/dist/exports/ScrollView/index.js","node_modules/react-native-web/dist/exports/StyleSheet/ReactNativePropRegistry.js","node_modules/react-native-web/dist/exports/StyleSheet/constants.js","node_modules/react-native-web/dist/exports/StyleSheet/css.js","node_modules/react-native-web/dist/exports/StyleSheet/flattenStyle.js","node_modules/react-native-web/dist/exports/StyleSheet/StyleSheet.js","node_modules/react-native-web/dist/exports/StyleSheet/index.js","node_modules/react-native-web/dist/exports/StyleSheet/normalizeValueWithProperty.js","node_modules/react-native-web/dist/exports/StyleSheet/resolveShadowValue.js","node_modules/react-native-web/dist/exports/StyleSheet/createCompileableStyle.js","node_modules/react-native-web/dist/exports/StyleSheet/createOrderedCSSStyleSheet.js","node_modules/react-native-web/dist/modules/flattenArray/index.js","node_modules/react-native-web/dist/modules/multiplyStyleLengthValue/index.js","node_modules/react-native-web/dist/exports/StyleSheet/i18nStyle.js","node_modules/react-native-web/dist/exports/StyleSheet/createReactDOMStyle.js","node_modules/react-native-web/dist/vendor/hash/index.js","node_modules/react-native-web/dist/modules/prefixStyles/static.js","node_modules/react-native-web/dist/modules/prefixStyles/index.js","node_modules/react-native-web/dist/exports/StyleSheet/compile.js","node_modules/react-native-web/dist/exports/StyleSheet/initialRules.js","node_modules/react-native-web/dist/exports/StyleSheet/modality.js","node_modules/react-native-web/dist/exports/StyleSheet/createStyleResolver.js","node_modules/react-native-web/dist/exports/StyleSheet/styleResolver.js","node_modules/react-native-web/dist/exports/StyleSheet/createCSSStyleSheet.js","node_modules/react-native-web/dist/exports/Text/TextAncestorContext.js","node_modules/react-native-web/dist/exports/Text/index.js","node_modules/react-native-web/dist/exports/TextInput/index.js","node_modules/react-native-web/dist/exports/TouchableOpacity/index.js","node_modules/react-native-web/dist/modules/setValueForStyles/dangerousStyleValue.js","node_modules/react-native-web/dist/modules/setValueForStyles/index.js","node_modules/react-native-web/dist/exports/UIManager/index.js","node_modules/react-native-web/dist/exports/View/index.js","node_modules/react-native-web/dist/exports/createElement/index.js","node_modules/react-native-web/dist/exports/findNodeHandle/index.js","node_modules/react-native-web/dist/exports/processColor/index.js","node_modules/react-native-web/dist/exports/useColorScheme/index.js","node_modules/react-native-web/dist/exports/useWindowDimensions/index.js","node_modules/react-native-web/dist/modules/AccessibilityUtil/propsToAriaRole.js","node_modules/react-native-web/dist/modules/AccessibilityUtil/propsToAccessibilityComponent.js","node_modules/react-native-web/dist/modules/AccessibilityUtil/index.js","node_modules/react-native-web/dist/modules/AccessibilityUtil/isDisabled.js","node_modules/react-native-web/dist/modules/TextInputState/index.js","node_modules/react-native-web/dist/modules/createDOMProps/index.js","node_modules/react-native-web/dist/modules/dismissKeyboard/index.js","node_modules/react-native-web/dist/modules/forwardedProps/index.js","node_modules/react-native-web/dist/modules/getBoundingClientRect/index.js","node_modules/react-native-web/dist/modules/mergeRefs/index.js","node_modules/react-native-web/dist/modules/isWebColor/index.js","node_modules/react-native-web/dist/modules/normalizeColor/index.js","node_modules/react-native-web/dist/modules/pick/index.js","node_modules/react-native-web/dist/modules/unitlessNumbers/index.js","node_modules/react-native-web/dist/modules/useElementLayout/index.js","node_modules/react-native-web/dist/modules/useLayoutEffect/index.js","node_modules/react-native-web/dist/modules/useMergeRefs/index.js","node_modules/react-native-web/dist/modules/usePlatformMethods/index.js","node_modules/react-native-web/dist/modules/usePressEvents/PressResponder.js","node_modules/react-native-web/dist/modules/usePressEvents/index.js","node_modules/react-native-web/dist/modules/useResponderEvents/ResponderEventTypes.js","node_modules/react-native-web/dist/modules/useResponderEvents/ResponderTouchHistoryStore.js","node_modules/react-native-web/dist/modules/useResponderEvents/createResponderEvent.js","node_modules/react-native-web/dist/modules/useResponderEvents/utils.js","node_modules/react-native-web/dist/modules/isSelectionValid/index.js","node_modules/react-native-web/dist/modules/useResponderEvents/ResponderSystem.js","node_modules/react-native-web/dist/modules/useResponderEvents/index.js","node_modules/react-native-web/dist/modules/useStable/index.js","node_modules/react-native-web/dist/vendor/react-native/emitter/_EmitterSubscription.js","node_modules/react-native-web/dist/vendor/react-native/emitter/_EventSubscription.js","node_modules/react-native-web/dist/vendor/react-native/emitter/_EventSubscriptionVendor.js","node_modules/react-native-web/dist/vendor/react-native/emitter/_EventEmitter.js","node_modules/react-native-web/dist/vendor/react-native/NativeEventEmitter/RCTDeviceEventEmitter.js","node_modules/react-native-web/dist/vendor/react-native/NativeEventEmitter/index.js","node_modules/react-native-web/dist/vendor/react-native/Batchinator/index.js","node_modules/react-native-web/dist/vendor/react-native/FillRateHelper/index.js","node_modules/react-native-web/dist/exports/RefreshControl/index.js","node_modules/react-native-web/dist/vendor/react-native/ViewabilityHelper/index.js","node_modules/react-native-web/dist/vendor/react-native/infoLog/index.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizeUtils/index.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/VirtualizedListContext.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/index.js","node_modules/react-native-web/node_modules/fbjs/lib/ExecutionEnvironment.js","node_modules/react-native-web/node_modules/fbjs/lib/emptyFunction.js","node_modules/react-native-web/node_modules/fbjs/lib/invariant.js","node_modules/react-native-web/node_modules/fbjs/lib/warning.js","node_modules/@callstack/react-theme-provider/src/createThemeProvider.js","node_modules/@callstack/react-theme-provider/src/createTheming.js","node_modules/@callstack/react-theme-provider/src/createWithTheme.js","node_modules/@callstack/react-theme-provider/src/index.js","node_modules/@callstack/react-theme-provider/node_modules/deepmerge/dist/umd.js","node_modules/array-find-index/index.js","node_modules/axios/index.js","node_modules/axios/lib/adapters/xhr.js","node_modules/axios/lib/axios.js","node_modules/axios/lib/cancel/Cancel.js","node_modules/axios/lib/cancel/CancelToken.js","node_modules/axios/lib/cancel/isCancel.js","node_modules/axios/lib/core/Axios.js","node_modules/axios/lib/core/InterceptorManager.js","node_modules/axios/lib/core/buildFullPath.js","node_modules/axios/lib/core/createError.js","node_modules/axios/lib/core/dispatchRequest.js","node_modules/axios/lib/core/enhanceError.js","node_modules/axios/lib/core/mergeConfig.js","node_modules/axios/lib/core/settle.js","node_modules/axios/lib/core/transformData.js","node_modules/axios/lib/defaults/index.js","node_modules/axios/lib/defaults/transitional.js","node_modules/axios/lib/env/data.js","node_modules/axios/lib/helpers/bind.js","node_modules/axios/lib/helpers/buildURL.js","node_modules/axios/lib/helpers/combineURLs.js","node_modules/axios/lib/helpers/cookies.js","node_modules/axios/lib/helpers/isAbsoluteURL.js","node_modules/axios/lib/helpers/isAxiosError.js","node_modules/axios/lib/helpers/isURLSameOrigin.js","node_modules/axios/lib/helpers/normalizeHeaderName.js","node_modules/axios/lib/helpers/parseHeaders.js","node_modules/axios/lib/helpers/spread.js","node_modules/axios/lib/helpers/validator.js","node_modules/axios/lib/utils.js","node_modules/call-bind/callBound.js","node_modules/call-bind/index.js","node_modules/clsx/dist/clsx.m.js","node_modules/color-convert/conversions.js","node_modules/color-convert/index.js","node_modules/color-convert/route.js","node_modules/color-name/index.js","node_modules/color-string/index.js","node_modules/color/index.js","node_modules/compare-versions/index.js","node_modules/create-react-class/factory.js","node_modules/create-react-class/index.js","node_modules/css-in-js-utils/lib/hyphenateProperty.js","node_modules/css-in-js-utils/lib/isPrefixedValue.js","node_modules/decode-uri-component/index.js","node_modules/escape-string-regexp/index.js","node_modules/fast-deep-equal/index.js","node_modules/filter-obj/index.js","node_modules/fontfaceobserver/fontfaceobserver.standalone.js","node_modules/formik/node_modules/deepmerge/dist/es.js","node_modules/lodash-es/_freeGlobal.js","node_modules/lodash-es/_root.js","node_modules/lodash-es/_Symbol.js","node_modules/lodash-es/_getRawTag.js","node_modules/lodash-es/_objectToString.js","node_modules/lodash-es/_baseGetTag.js","node_modules/lodash-es/_overArg.js","node_modules/lodash-es/_getPrototype.js","node_modules/lodash-es/isObjectLike.js","node_modules/lodash-es/isPlainObject.js","node_modules/lodash-es/_listCacheClear.js","node_modules/lodash-es/eq.js","node_modules/lodash-es/_assocIndexOf.js","node_modules/lodash-es/_listCacheDelete.js","node_modules/lodash-es/_listCacheGet.js","node_modules/lodash-es/_listCacheHas.js","node_modules/lodash-es/_listCacheSet.js","node_modules/lodash-es/_ListCache.js","node_modules/lodash-es/_stackClear.js","node_modules/lodash-es/_stackDelete.js","node_modules/lodash-es/_stackGet.js","node_modules/lodash-es/_stackHas.js","node_modules/lodash-es/isObject.js","node_modules/lodash-es/isFunction.js","node_modules/lodash-es/_coreJsData.js","node_modules/lodash-es/_isMasked.js","node_modules/lodash-es/_toSource.js","node_modules/lodash-es/_baseIsNative.js","node_modules/lodash-es/_getValue.js","node_modules/lodash-es/_getNative.js","node_modules/lodash-es/_Map.js","node_modules/lodash-es/_nativeCreate.js","node_modules/lodash-es/_hashClear.js","node_modules/lodash-es/_hashDelete.js","node_modules/lodash-es/_hashGet.js","node_modules/lodash-es/_hashHas.js","node_modules/lodash-es/_hashSet.js","node_modules/lodash-es/_Hash.js","node_modules/lodash-es/_mapCacheClear.js","node_modules/lodash-es/_isKeyable.js","node_modules/lodash-es/_getMapData.js","node_modules/lodash-es/_mapCacheDelete.js","node_modules/lodash-es/_mapCacheGet.js","node_modules/lodash-es/_mapCacheHas.js","node_modules/lodash-es/_mapCacheSet.js","node_modules/lodash-es/_MapCache.js","node_modules/lodash-es/_stackSet.js","node_modules/lodash-es/_Stack.js","node_modules/lodash-es/_arrayEach.js","node_modules/lodash-es/_defineProperty.js","node_modules/lodash-es/_baseAssignValue.js","node_modules/lodash-es/_assignValue.js","node_modules/lodash-es/_copyObject.js","node_modules/lodash-es/_baseTimes.js","node_modules/lodash-es/_baseIsArguments.js","node_modules/lodash-es/isArguments.js","node_modules/lodash-es/isArray.js","node_modules/lodash-es/stubFalse.js","node_modules/lodash-es/isBuffer.js","node_modules/lodash-es/_isIndex.js","node_modules/lodash-es/isLength.js","node_modules/lodash-es/_baseIsTypedArray.js","node_modules/lodash-es/_baseUnary.js","node_modules/lodash-es/_nodeUtil.js","node_modules/lodash-es/isTypedArray.js","node_modules/lodash-es/_arrayLikeKeys.js","node_modules/lodash-es/_isPrototype.js","node_modules/lodash-es/_nativeKeys.js","node_modules/lodash-es/_baseKeys.js","node_modules/lodash-es/isArrayLike.js","node_modules/lodash-es/keys.js","node_modules/lodash-es/_baseAssign.js","node_modules/lodash-es/_nativeKeysIn.js","node_modules/lodash-es/_baseKeysIn.js","node_modules/lodash-es/keysIn.js","node_modules/lodash-es/_baseAssignIn.js","node_modules/lodash-es/_cloneBuffer.js","node_modules/lodash-es/_copyArray.js","node_modules/lodash-es/_arrayFilter.js","node_modules/lodash-es/stubArray.js","node_modules/lodash-es/_getSymbols.js","node_modules/lodash-es/_copySymbols.js","node_modules/lodash-es/_arrayPush.js","node_modules/lodash-es/_getSymbolsIn.js","node_modules/lodash-es/_copySymbolsIn.js","node_modules/lodash-es/_baseGetAllKeys.js","node_modules/lodash-es/_getAllKeys.js","node_modules/lodash-es/_getAllKeysIn.js","node_modules/lodash-es/_DataView.js","node_modules/lodash-es/_Promise.js","node_modules/lodash-es/_Set.js","node_modules/lodash-es/_WeakMap.js","node_modules/lodash-es/_getTag.js","node_modules/lodash-es/_initCloneArray.js","node_modules/lodash-es/_Uint8Array.js","node_modules/lodash-es/_cloneArrayBuffer.js","node_modules/lodash-es/_cloneDataView.js","node_modules/lodash-es/_cloneRegExp.js","node_modules/lodash-es/_cloneSymbol.js","node_modules/lodash-es/_cloneTypedArray.js","node_modules/lodash-es/_initCloneByTag.js","node_modules/lodash-es/_baseCreate.js","node_modules/lodash-es/_initCloneObject.js","node_modules/lodash-es/_baseIsMap.js","node_modules/lodash-es/isMap.js","node_modules/lodash-es/_baseIsSet.js","node_modules/lodash-es/isSet.js","node_modules/lodash-es/_baseClone.js","node_modules/lodash-es/clone.js","node_modules/lodash-es/_arrayMap.js","node_modules/lodash-es/isSymbol.js","node_modules/lodash-es/memoize.js","node_modules/lodash-es/_stringToPath.js","node_modules/lodash-es/_memoizeCapped.js","node_modules/lodash-es/_toKey.js","node_modules/lodash-es/_baseToString.js","node_modules/lodash-es/toString.js","node_modules/lodash-es/toPath.js","node_modules/tiny-warning/dist/tiny-warning.esm.js","node_modules/lodash-es/cloneDeep.js","node_modules/formik/src/utils.ts","node_modules/formik/src/FormikContext.tsx","node_modules/formik/src/Formik.tsx","node_modules/formik/src/Field.tsx","node_modules/formik/src/Form.tsx","node_modules/formik/src/withFormik.tsx","node_modules/formik/src/connect.tsx","node_modules/formik/src/FieldArray.tsx","node_modules/formik/src/ErrorMessage.tsx","node_modules/formik/src/FastField.tsx","node_modules/function-bind/implementation.js","node_modules/function-bind/index.js","node_modules/get-intrinsic/index.js","node_modules/has-symbols/index.js","node_modules/has-symbols/shams.js","node_modules/has/src/index.js","node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","node_modules/hyphenate-style-name/index.js","node_modules/inline-style-prefixer/lib/createPrefixer.js","node_modules/inline-style-prefixer/lib/plugins/backgroundClip.js","node_modules/inline-style-prefixer/lib/plugins/crossFade.js","node_modules/inline-style-prefixer/lib/plugins/cursor.js","node_modules/inline-style-prefixer/lib/plugins/filter.js","node_modules/inline-style-prefixer/lib/plugins/flex.js","node_modules/inline-style-prefixer/lib/plugins/flexboxIE.js","node_modules/inline-style-prefixer/lib/plugins/flexboxOld.js","node_modules/inline-style-prefixer/lib/plugins/gradient.js","node_modules/inline-style-prefixer/lib/plugins/grid.js","node_modules/inline-style-prefixer/lib/plugins/imageSet.js","node_modules/inline-style-prefixer/lib/plugins/logical.js","node_modules/inline-style-prefixer/lib/plugins/position.js","node_modules/inline-style-prefixer/lib/plugins/sizing.js","node_modules/inline-style-prefixer/lib/plugins/transition.js","node_modules/inline-style-prefixer/lib/utils/addNewValuesOnly.js","node_modules/inline-style-prefixer/lib/utils/capitalizeString.js","node_modules/inline-style-prefixer/lib/utils/isObject.js","node_modules/inline-style-prefixer/lib/utils/prefixProperty.js","node_modules/inline-style-prefixer/lib/utils/prefixValue.js","node_modules/invariant/browser.js","node_modules/lodash.clonedeep/index.js","node_modules/lodash.get/index.js","node_modules/lodash.isempty/index.js","node_modules/lodash.isnil/index.js","node_modules/lodash.isstring/index.js","node_modules/lodash.merge/index.js","node_modules/lodash.mergewith/index.js","node_modules/lodash.omit/index.js","node_modules/lodash.omitby/index.js","node_modules/lodash.pick/index.js","node_modules/lodash/_DataView.js","node_modules/lodash/_Hash.js","node_modules/lodash/_ListCache.js","node_modules/lodash/_Map.js","node_modules/lodash/_MapCache.js","node_modules/lodash/_Promise.js","node_modules/lodash/_Set.js","node_modules/lodash/_SetCache.js","node_modules/lodash/_Stack.js","node_modules/lodash/_Symbol.js","node_modules/lodash/_Uint8Array.js","node_modules/lodash/_WeakMap.js","node_modules/lodash/_arrayFilter.js","node_modules/lodash/_arrayLikeKeys.js","node_modules/lodash/_arrayMap.js","node_modules/lodash/_arrayPush.js","node_modules/lodash/_arrayReduce.js","node_modules/lodash/_arraySome.js","node_modules/lodash/_asciiToArray.js","node_modules/lodash/_asciiWords.js","node_modules/lodash/_assocIndexOf.js","node_modules/lodash/_baseAssignValue.js","node_modules/lodash/_baseFor.js","node_modules/lodash/_baseForOwn.js","node_modules/lodash/_baseGet.js","node_modules/lodash/_baseGetAllKeys.js","node_modules/lodash/_baseGetTag.js","node_modules/lodash/_baseHas.js","node_modules/lodash/_baseHasIn.js","node_modules/lodash/_baseIsArguments.js","node_modules/lodash/_baseIsEqual.js","node_modules/lodash/_baseIsEqualDeep.js","node_modules/lodash/_baseIsMatch.js","node_modules/lodash/_baseIsNative.js","node_modules/lodash/_baseIsTypedArray.js","node_modules/lodash/_baseIteratee.js","node_modules/lodash/_baseKeys.js","node_modules/lodash/_baseMatches.js","node_modules/lodash/_baseMatchesProperty.js","node_modules/lodash/_baseProperty.js","node_modules/lodash/_basePropertyDeep.js","node_modules/lodash/_basePropertyOf.js","node_modules/lodash/_baseSlice.js","node_modules/lodash/_baseTimes.js","node_modules/lodash/_baseToString.js","node_modules/lodash/_baseUnary.js","node_modules/lodash/_cacheHas.js","node_modules/lodash/_castPath.js","node_modules/lodash/_castSlice.js","node_modules/lodash/_coreJsData.js","node_modules/lodash/_createBaseFor.js","node_modules/lodash/_createCaseFirst.js","node_modules/lodash/_createCompounder.js","node_modules/lodash/_deburrLetter.js","node_modules/lodash/_defineProperty.js","node_modules/lodash/_equalArrays.js","node_modules/lodash/_equalByTag.js","node_modules/lodash/_equalObjects.js","node_modules/lodash/_freeGlobal.js","node_modules/lodash/_getAllKeys.js","node_modules/lodash/_getMapData.js","node_modules/lodash/_getMatchData.js","node_modules/lodash/_getNative.js","node_modules/lodash/_getRawTag.js","node_modules/lodash/_getSymbols.js","node_modules/lodash/_getTag.js","node_modules/lodash/_getValue.js","node_modules/lodash/_hasPath.js","node_modules/lodash/_hasUnicode.js","node_modules/lodash/_hasUnicodeWord.js","node_modules/lodash/_hashClear.js","node_modules/lodash/_hashDelete.js","node_modules/lodash/_hashGet.js","node_modules/lodash/_hashHas.js","node_modules/lodash/_hashSet.js","node_modules/lodash/_isIndex.js","node_modules/lodash/_isKey.js","node_modules/lodash/_isKeyable.js","node_modules/lodash/_isMasked.js","node_modules/lodash/_isPrototype.js","node_modules/lodash/_isStrictComparable.js","node_modules/lodash/_listCacheClear.js","node_modules/lodash/_listCacheDelete.js","node_modules/lodash/_listCacheGet.js","node_modules/lodash/_listCacheHas.js","node_modules/lodash/_listCacheSet.js","node_modules/lodash/_mapCacheClear.js","node_modules/lodash/_mapCacheDelete.js","node_modules/lodash/_mapCacheGet.js","node_modules/lodash/_mapCacheHas.js","node_modules/lodash/_mapCacheSet.js","node_modules/lodash/_mapToArray.js","node_modules/lodash/_matchesStrictComparable.js","node_modules/lodash/_memoizeCapped.js","node_modules/lodash/_nativeCreate.js","node_modules/lodash/_nativeKeys.js","node_modules/lodash/_nodeUtil.js","node_modules/lodash/_objectToString.js","node_modules/lodash/_overArg.js","node_modules/lodash/_root.js","node_modules/lodash/_setCacheAdd.js","node_modules/lodash/_setCacheHas.js","node_modules/lodash/_setToArray.js","node_modules/lodash/_stackClear.js","node_modules/lodash/_stackDelete.js","node_modules/lodash/_stackGet.js","node_modules/lodash/_stackHas.js","node_modules/lodash/_stackSet.js","node_modules/lodash/_stringToArray.js","node_modules/lodash/_stringToPath.js","node_modules/lodash/_toKey.js","node_modules/lodash/_toSource.js","node_modules/lodash/_unicodeToArray.js","node_modules/lodash/_unicodeWords.js","node_modules/lodash/camelCase.js","node_modules/lodash/capitalize.js","node_modules/lodash/deburr.js","node_modules/lodash/eq.js","node_modules/lodash/get.js","node_modules/lodash/has.js","node_modules/lodash/hasIn.js","node_modules/lodash/identity.js","node_modules/lodash/isArguments.js","node_modules/lodash/isArray.js","node_modules/lodash/isArrayLike.js","node_modules/lodash/isBuffer.js","node_modules/lodash/isFunction.js","node_modules/lodash/isLength.js","node_modules/lodash/isObject.js","node_modules/lodash/isObjectLike.js","node_modules/lodash/isSymbol.js","node_modules/lodash/isTypedArray.js","node_modules/lodash/keys.js","node_modules/lodash/mapKeys.js","node_modules/lodash/mapValues.js","node_modules/lodash/memoize.js","node_modules/lodash/property.js","node_modules/lodash/snakeCase.js","node_modules/lodash/stubArray.js","node_modules/lodash/stubFalse.js","node_modules/lodash/toString.js","node_modules/lodash/upperFirst.js","node_modules/lodash/words.js","node_modules/normalize-css-color/index.js","node_modules/object-assign/index.js","node_modules/object-inspect/index.js","node_modules/property-expr/index.js","node_modules/qs/lib/formats.js","node_modules/qs/lib/index.js","node_modules/qs/lib/parse.js","node_modules/qs/lib/stringify.js","node_modules/qs/lib/utils.js","node_modules/query-string/index.js","node_modules/querystringify/index.js","node_modules/react-dom/cjs/react-dom.production.min.js","node_modules/react-dom/index.js","ReactPixel/fb-pixel.js","node_modules/react-fast-compare/index.js","node_modules/react-is/cjs/react-is.production.min.js","node_modules/react-is/index.js","node_modules/react-redux/es/components/Context.js","node_modules/react-redux/es/utils/batch.js","node_modules/react-redux/es/utils/Subscription.js","node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","node_modules/react-redux/es/components/Provider.js","node_modules/react-redux/es/components/connectAdvanced.js","node_modules/react-redux/es/utils/shallowEqual.js","node_modules/react-redux/es/connect/wrapMapToProps.js","node_modules/react-redux/es/connect/mapDispatchToProps.js","node_modules/react-redux/es/utils/bindActionCreators.js","node_modules/react-redux/es/connect/mapStateToProps.js","node_modules/react-redux/es/connect/mergeProps.js","node_modules/react-redux/es/connect/selectorFactory.js","node_modules/react-redux/es/connect/connect.js","node_modules/react-redux/es/hooks/useReduxContext.js","node_modules/react-redux/es/hooks/useStore.js","node_modules/react-redux/es/hooks/useDispatch.js","node_modules/react-redux/es/hooks/useSelector.js","node_modules/react-redux/es/index.js","node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js","node_modules/react-redux/node_modules/react-is/index.js","node_modules/react/cjs/react-jsx-runtime.production.min.js","node_modules/react/cjs/react.production.min.js","node_modules/react/index.js","node_modules/react/jsx-runtime.js","node_modules/redux-thunk/es/index.js","node_modules/@babel/runtime/helpers/esm/objectSpread2.js","node_modules/redux/es/redux.js","node_modules/regenerator-runtime/runtime.js","node_modules/requires-port/index.js","node_modules/scheduler/cjs/scheduler.production.min.js","node_modules/scheduler/index.js","node_modules/side-channel/index.js","node_modules/simple-swizzle/index.js","node_modules/simple-swizzle/node_modules/is-arrayish/index.js","node_modules/split-on-first/index.js","node_modules/strict-uri-encode/index.js","node_modules/tinycolor2/tinycolor.js","node_modules/toposort/index.js","node_modules/url-parse/index.js","node_modules/use-subscription/cjs/use-subscription.production.min.js","node_modules/use-subscription/index.js","node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","node_modules/use-sync-external-store/shim/index.js","node_modules/uuid/index.js","node_modules/uuid/lib/bytesToUuid.js","node_modules/uuid/lib/rng-browser.js","node_modules/uuid/v1.js","node_modules/uuid/v4.js","node_modules/nanoclone/src/index.js","node_modules/yup/es/util/printValue.js","node_modules/yup/es/locale.js","node_modules/yup/es/util/isSchema.js","node_modules/yup/es/Condition.js","node_modules/yup/es/util/toArray.js","node_modules/yup/es/ValidationError.js","node_modules/yup/es/util/runTests.js","node_modules/yup/es/Reference.js","node_modules/yup/es/util/createValidation.js","node_modules/yup/es/util/reach.js","node_modules/yup/es/util/ReferenceSet.js","node_modules/yup/es/schema.js","node_modules/yup/es/mixed.js","node_modules/yup/es/util/isAbsent.js","node_modules/yup/es/boolean.js","node_modules/yup/es/string.js","node_modules/yup/es/number.js","node_modules/yup/es/util/isodate.js","node_modules/yup/es/date.js","node_modules/yup/es/util/sortByKeyOrder.js","node_modules/yup/es/object.js","node_modules/yup/es/util/sortFields.js","node_modules/yup/es/array.js","node_modules/yup/es/Lazy.js","node_modules/yup/es/setLocale.js","node_modules/yup/es/index.js","node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","node_modules/@babel/runtime/helpers/esm/classCallCheck.js","node_modules/@babel/runtime/helpers/esm/createClass.js","node_modules/@babel/runtime/helpers/esm/defineProperty.js","node_modules/@babel/runtime/helpers/esm/extends.js","node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","node_modules/@babel/runtime/helpers/esm/inherits.js","node_modules/@babel/runtime/helpers/esm/iterableToArray.js","node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","node_modules/@babel/runtime/helpers/esm/typeof.js","node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","node_modules/@babel/runtime/helpers/esm/slicedToArray.js","node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","node_modules/nanoid/non-secure/index.js"],"sourcesContent":["module.exports = require(\"regenerator-runtime\");\n","import { useEffect, useState } from 'react';\n\nimport { loadAsync } from 'expo-font';\n\n/**\n * Load a map of custom fonts to use in textual elements.\n * The map keys are used as font names, and can be used with `fontFamily: ;`.\n * It returns a boolean describing if all fonts are loaded.\n *\n * Note, the fonts are not \"reloaded\" when you dynamically change the font map.\n *\n * @see https://docs.expo.io/versions/latest/sdk/font/\n * @example const [loaded, error] = useFonts(...);\n */\nexport function useFonts(map) {\n let [loaded, setLoaded] = useState(false);\n let [error, setError] = useState(null);\n\n useEffect(() => {\n loadAsync(map)\n .then(() => setLoaded(true))\n .catch(setError);\n }, []);\n\n return [loaded, error];\n}\n","/// Generated by expo-google-fonts/generator\n/// Do not edit by hand unless you know what you are doing\n///\n\nexport { useFonts } from './useFonts';\n\nexport { default as __metadata__ } from './metadata.json';\nexport const Montserrat_100Thin = require('./Montserrat_100Thin.ttf');\nexport const Montserrat_200ExtraLight = require('./Montserrat_200ExtraLight.ttf');\nexport const Montserrat_300Light = require('./Montserrat_300Light.ttf');\nexport const Montserrat_400Regular = require('./Montserrat_400Regular.ttf');\nexport const Montserrat_500Medium = require('./Montserrat_500Medium.ttf');\nexport const Montserrat_600SemiBold = require('./Montserrat_600SemiBold.ttf');\nexport const Montserrat_700Bold = require('./Montserrat_700Bold.ttf');\nexport const Montserrat_800ExtraBold = require('./Montserrat_800ExtraBold.ttf');\nexport const Montserrat_900Black = require('./Montserrat_900Black.ttf');\nexport const Montserrat_100Thin_Italic = require('./Montserrat_100Thin_Italic.ttf');\nexport const Montserrat_200ExtraLight_Italic = require('./Montserrat_200ExtraLight_Italic.ttf');\nexport const Montserrat_300Light_Italic = require('./Montserrat_300Light_Italic.ttf');\nexport const Montserrat_400Regular_Italic = require('./Montserrat_400Regular_Italic.ttf');\nexport const Montserrat_500Medium_Italic = require('./Montserrat_500Medium_Italic.ttf');\nexport const Montserrat_600SemiBold_Italic = require('./Montserrat_600SemiBold_Italic.ttf');\nexport const Montserrat_700Bold_Italic = require('./Montserrat_700Bold_Italic.ttf');\nexport const Montserrat_800ExtraBold_Italic = require('./Montserrat_800ExtraBold_Italic.ttf');\nexport const Montserrat_900Black_Italic = require('./Montserrat_900Black_Italic.ttf');\n","import MaterialCommunityIcons from './build/MaterialCommunityIcons';\nexport default MaterialCommunityIcons;\n","import createIconSet from './createIconSet';\nimport font from './vendor/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf';\nimport glyphMap from './vendor/react-native-vector-icons/glyphmaps/MaterialCommunityIcons.json';\n\nexport default createIconSet(glyphMap, 'material-community', font);\n","import createIconSet from './createIconSet';\nimport font from './vendor/react-native-vector-icons/Fonts/FontAwesome.ttf';\nimport glyphMap from './vendor/react-native-vector-icons/glyphmaps/FontAwesome.json';\n\nexport default createIconSet(glyphMap, 'FontAwesome', font);\n","import React, { PureComponent } from 'react';\n\nimport createIconSet from './createIconSet';\n\ntype FontStyle = {\n fontFamily: string;\n fontFile: any;\n glyphMap: any;\n fontStyle: any;\n};\n\ntype FontStyles = {\n [key: string]: FontStyle;\n};\n\nexport default function createMultiStyleIconSet(\n styles: FontStyles,\n optionsInput = {}\n): any {\n const styleNames = Object.keys(styles);\n\n if (styleNames.length === 0) {\n throw new Error('You need to add at least one style');\n }\n\n const options = {\n defaultStyle: styleNames[0],\n fallbackFamily: (_unused: any) => styleNames[0],\n glyphValidator: (_unused: any, __unused: any) => true,\n ...optionsInput,\n };\n\n const iconSets = styleNames.reduce((acc, name) => {\n const style = styles[name];\n\n acc[name] = createIconSet(\n style.glyphMap || {},\n style.fontFamily || '',\n style.fontFile || '',\n style.fontStyle || {}\n );\n\n return acc;\n }, {});\n\n function styleFromProps(props) {\n return Object.keys(props).reduce(\n (result, propName) =>\n styleNames.indexOf(propName) !== -1 && props[propName] === true\n ? propName\n : result,\n options.defaultStyle\n );\n }\n\n function getIconSetForProps(props) {\n const { name } = props;\n const style = styleFromProps(props);\n\n if (options.glyphValidator(name, style)) return iconSets[style];\n\n const family = options.fallbackFamily(name);\n\n if (styleNames.indexOf(family) === -1) {\n return options.defaultStyle;\n }\n\n return iconSets[family];\n }\n\n function selectIconClass(iconSet, iconClass) {\n return iconClass.length > 0 ? iconSet[iconClass] : iconSet;\n }\n\n function reduceProps(props) {\n return Object.keys(props).reduce((acc, prop) => {\n if (styleNames.indexOf(prop) === -1) {\n acc[prop] = props[prop];\n }\n\n return acc;\n }, {});\n }\n\n function getStyledIconSet(style, name = '') {\n if (styleNames.indexOf(style) === -1) {\n return iconSets[options.defaultStyle];\n }\n\n return !name\n ? iconSets[styleFromProps({ [style]: true })]\n : getIconSetForProps({ name, [style]: true });\n }\n\n function getFontFamily(style = options.defaultStyle) {\n return getStyledIconSet(style).getFontFamily();\n }\n\n function getRawGlyphMap(style = options.defaultStyle) {\n return getStyledIconSet(style).getRawGlyphMap();\n }\n\n function hasIcon(name, style = options.defaultStyle) {\n return options.glyphValidator(name, style);\n }\n\n function createStyledIconClass(selectClass = '') {\n class IconClass extends PureComponent {\n static defaultProps = styleNames.reduce((acc, name) => {\n acc[name] = false;\n return acc;\n }, {});\n\n static font = Object.values(styles).reduce((acc, style) => {\n acc[style.fontFamily] = style.fontFile;\n return acc;\n }, {});\n\n static Button: any;\n\n static StyledIconSet = getStyledIconSet;\n static getFontFamily = getFontFamily;\n static getRawGlyphMap = getRawGlyphMap;\n static hasIcon = hasIcon;\n\n render() {\n const selectedIconSet = getIconSetForProps(this.props);\n const SelectedIconClass = selectIconClass(selectedIconSet, selectClass);\n const props = reduceProps(this.props);\n\n return React.createElement(SelectedIconClass, props);\n }\n }\n\n return IconClass;\n }\n\n const Icon = createStyledIconClass();\n Icon.Button = createStyledIconClass('Button');\n return Icon;\n}\n","import { createFA5iconSet } from './createIconSetFromFontAwesome5';\n\nimport glyphMap from './vendor/react-native-vector-icons/glyphmaps/FontAwesome5Free.json';\nimport metadata from './vendor/react-native-vector-icons/glyphmaps/FontAwesome5Free_meta.json';\nconst fontMap = {\n Regular: require('./vendor/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf'),\n Light: require('./vendor/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf'),\n Solid: require('./vendor/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf'),\n Brand: require('./vendor/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf'),\n};\n\nexport const FA5Style = {\n regular: 'regular',\n light: 'light',\n solid: 'solid',\n brand: 'brand',\n};\n\nconst iconSet = createFA5iconSet(glyphMap, metadata, fontMap, false);\n\nexport default iconSet;\n","import { Platform } from 'react-native';\nimport createMultiStyleIconSet from './createMultiStyleIconSet';\n\nexport const FA5Style = {\n regular: 'regular',\n light: 'light',\n solid: 'solid',\n brand: 'brand',\n};\n\nexport function createFA5iconSet(glyphMap, metadata = {}, fonts, pro = false) {\n const metadataKeys = Object.keys(metadata);\n const fontFamily = `FontAwesome5${pro ? 'Pro' : 'Free'}`;\n\n function fallbackFamily(glyph) {\n for (let i = 0; i < metadataKeys.length; i += 1) {\n const family = metadataKeys[i];\n if (metadata[family].indexOf(glyph) !== -1) {\n return family === 'brands' ? 'brand' : family;\n }\n }\n\n return 'regular';\n }\n\n function glyphValidator(glyph, style) {\n const family = style === 'brand' ? 'brands' : style;\n if (metadataKeys.indexOf(family) === -1) return false;\n return metadata[family].indexOf(glyph) !== -1;\n }\n\n function createFontAwesomeStyle(styleName, fontWeight, family = fontFamily) {\n let fontFile = fonts[styleName];\n\n return {\n fontFamily: `${family}-${styleName}`,\n fontFile,\n fontStyle: Platform.select({\n ios: {\n fontWeight,\n },\n default: {},\n }),\n glyphMap,\n };\n }\n\n const brandIcons = createFontAwesomeStyle('Brand', '400');\n const lightIcons = createFontAwesomeStyle('Light', '100');\n const regularIcons = createFontAwesomeStyle('Regular', '400');\n const solidIcons = createFontAwesomeStyle('Solid', '700');\n const Icon = createMultiStyleIconSet(\n {\n brand: brandIcons,\n light: lightIcons,\n regular: regularIcons,\n solid: solidIcons,\n },\n {\n defaultStyle: 'regular',\n fallbackFamily,\n glyphValidator,\n },\n );\n\n return Icon;\n}","import { Platform, NativeModules } from './react-native';\n\nconst NativeIconAPI =\n NativeModules.RNVectorIconsManager || NativeModules.RNVectorIconsModule;\n\nexport default function ensureNativeModuleAvailable() {\n if (!NativeIconAPI) {\n if (Platform.OS === 'android') {\n throw new Error(\n 'RNVectorIconsModule not available, did you properly integrate the module? Try running `react-native link react-native-vector-icons` and recompiling.'\n );\n }\n throw new Error(\n 'RNVectorIconsManager not available, did you add the library to your project and link with libRNVectorIcons.a? Try running `react-native link react-native-vector-icons` and recompiling.'\n );\n }\n}\n","const TYPE_VALUE = 'value';\nconst TYPE_ERROR = 'error';\n\nexport default function createIconSourceCache() {\n const cache = new Map();\n\n const setValue = (key, value) =>\n cache.set(key, { type: TYPE_VALUE, data: value });\n\n const setError = (key, error) =>\n cache.set(key, { type: TYPE_ERROR, data: error });\n\n const has = key => cache.has(key);\n\n const get = key => {\n if (!cache.has(key)) {\n return undefined;\n }\n const { type, data } = cache.get(key);\n if (type === TYPE_ERROR) {\n throw data;\n }\n return data;\n };\n\n return { setValue, setError, has, get };\n}\n","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from 'react';\nimport { useCallback, useMemo, useState, useRef } from 'react';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePressEvents from '../../modules/usePressEvents';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\n\nfunction createExtraStyles(activeOpacity, underlayColor) {\n return {\n child: {\n opacity: activeOpacity !== null && activeOpacity !== void 0 ? activeOpacity : 0.85\n },\n underlay: {\n backgroundColor: underlayColor === undefined ? 'black' : underlayColor\n }\n };\n}\n\nfunction hasPressHandler(props) {\n return props.onPress != null || props.onPressIn != null || props.onPressOut != null || props.onLongPress != null;\n}\n/**\n * A wrapper for making views respond properly to touches.\n * On press down, the opacity of the wrapped view is decreased, which allows\n * the underlay color to show through, darkening or tinting the view.\n *\n * The underlay comes from wrapping the child in a new View, which can affect\n * layout, and sometimes cause unwanted visual artifacts if not used correctly,\n * for example if the backgroundColor of the wrapped view isn't explicitly set\n * to an opaque color.\n *\n * TouchableHighlight must have one child (not zero or more than one).\n * If you wish to have several child components, wrap them in a View.\n */\n\n\nfunction TouchableHighlight(props, forwardedRef) {\n var activeOpacity = props.activeOpacity,\n children = props.children,\n delayPressIn = props.delayPressIn,\n delayPressOut = props.delayPressOut,\n delayLongPress = props.delayLongPress,\n disabled = props.disabled,\n focusable = props.focusable,\n onHideUnderlay = props.onHideUnderlay,\n onLongPress = props.onLongPress,\n onPress = props.onPress,\n onPressIn = props.onPressIn,\n onPressOut = props.onPressOut,\n onShowUnderlay = props.onShowUnderlay,\n rejectResponderTermination = props.rejectResponderTermination,\n style = props.style,\n testOnly_pressed = props.testOnly_pressed,\n underlayColor = props.underlayColor,\n rest = _objectWithoutPropertiesLoose(props, [\"activeOpacity\", \"children\", \"delayPressIn\", \"delayPressOut\", \"delayLongPress\", \"disabled\", \"focusable\", \"onHideUnderlay\", \"onLongPress\", \"onPress\", \"onPressIn\", \"onPressOut\", \"onShowUnderlay\", \"rejectResponderTermination\", \"style\", \"testOnly_pressed\", \"underlayColor\"]);\n\n var hostRef = useRef(null);\n var setRef = useMergeRefs(forwardedRef, hostRef);\n\n var _useState = useState(testOnly_pressed === true ? createExtraStyles(activeOpacity, underlayColor) : null),\n extraStyles = _useState[0],\n setExtraStyles = _useState[1];\n\n var showUnderlay = useCallback(function () {\n if (!hasPressHandler(props)) {\n return;\n }\n\n setExtraStyles(createExtraStyles(activeOpacity, underlayColor));\n\n if (onShowUnderlay != null) {\n onShowUnderlay();\n }\n }, [activeOpacity, onShowUnderlay, props, underlayColor]);\n var hideUnderlay = useCallback(function () {\n if (testOnly_pressed === true) {\n return;\n }\n\n if (hasPressHandler(props)) {\n setExtraStyles(null);\n\n if (onHideUnderlay != null) {\n onHideUnderlay();\n }\n }\n }, [onHideUnderlay, props, testOnly_pressed]);\n var pressConfig = useMemo(function () {\n return {\n cancelable: !rejectResponderTermination,\n disabled: disabled,\n delayLongPress: delayLongPress,\n delayPressStart: delayPressIn,\n delayPressEnd: delayPressOut,\n onLongPress: onLongPress,\n onPress: onPress,\n onPressStart: function onPressStart(event) {\n showUnderlay();\n\n if (onPressIn != null) {\n onPressIn(event);\n }\n },\n onPressEnd: function onPressEnd(event) {\n hideUnderlay();\n\n if (onPressOut != null) {\n onPressOut(event);\n }\n }\n };\n }, [delayLongPress, delayPressIn, delayPressOut, disabled, onLongPress, onPress, onPressIn, onPressOut, rejectResponderTermination, showUnderlay, hideUnderlay]);\n var pressEventHandlers = usePressEvents(hostRef, pressConfig);\n var child = React.Children.only(children);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, pressEventHandlers, {\n accessibilityDisabled: disabled,\n focusable: !disabled && focusable !== false,\n ref: setRef,\n style: [styles.root, style, !disabled && styles.actionable, extraStyles && extraStyles.underlay]\n }), /*#__PURE__*/React.cloneElement(child, {\n style: StyleSheet.compose(child.props.style, extraStyles && extraStyles.child)\n }));\n}\n\nvar styles = StyleSheet.create({\n root: {\n userSelect: 'none'\n },\n actionable: {\n cursor: 'pointer',\n touchAction: 'manipulation'\n }\n});\nvar MemoedTouchableHighlight = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(TouchableHighlight));\nMemoedTouchableHighlight.displayName = 'TouchableHighlight';\nexport default MemoedTouchableHighlight;","import isString from 'lodash.isstring';\nimport omit from 'lodash.omit';\nimport pick from 'lodash.pick';\nimport React, { PureComponent } from 'react';\nimport { StyleSheet, Text, TouchableHighlight, View } from './react-native';\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n justifyContent: 'flex-start',\n alignItems: 'center',\n padding: 8,\n },\n touchable: {\n overflow: 'hidden',\n },\n icon: {\n marginRight: 10,\n },\n text: {\n fontWeight: '600',\n backgroundColor: 'transparent',\n },\n});\n\nconst IOS7_BLUE = '#007AFF';\n\nconst TEXT_PROP_NAMES = [\n 'ellipsizeMode',\n 'numberOfLines',\n 'textBreakStrategy',\n 'selectable',\n 'suppressHighlighting',\n 'allowFontScaling',\n 'adjustsFontSizeToFit',\n 'minimumFontScale',\n];\n\nconst TOUCHABLE_PROP_NAMES = [\n 'accessible',\n 'accessibilityLabel',\n 'accessibilityHint',\n 'accessibilityComponentType',\n 'accessibilityRole',\n 'accessibilityStates',\n 'accessibilityTraits',\n 'onFocus',\n 'onBlur',\n 'disabled',\n 'onPress',\n 'onPressIn',\n 'onPressOut',\n 'onLayout',\n 'onLongPress',\n 'nativeID',\n 'testID',\n 'delayPressIn',\n 'delayPressOut',\n 'delayLongPress',\n 'activeOpacity',\n 'underlayColor',\n 'selectionColor',\n 'onShowUnderlay',\n 'onHideUnderlay',\n 'hasTVPreferredFocus',\n 'tvParallaxProperties',\n];\n\nexport default function createIconButtonComponent(Icon) {\n return class IconButton extends PureComponent {\n static defaultProps = {\n backgroundColor: IOS7_BLUE,\n borderRadius: 5,\n color: 'white',\n size: 20,\n };\n\n render() {\n const { style, iconStyle, children, ...restProps } = this.props;\n\n const iconProps = pick(\n restProps,\n TEXT_PROP_NAMES,\n 'style',\n 'name',\n 'size',\n 'color'\n );\n const touchableProps = pick(restProps, TOUCHABLE_PROP_NAMES);\n const props = omit(\n restProps,\n Object.keys(iconProps),\n Object.keys(touchableProps),\n 'iconStyle',\n 'borderRadius',\n 'backgroundColor'\n );\n iconProps.style = iconStyle ? [styles.icon, iconStyle] : styles.icon;\n\n const colorStyle = pick(this.props, 'color');\n const blockStyle = pick(this.props, 'backgroundColor', 'borderRadius');\n\n return (\n \n \n \n {isString(children) ? (\n {children}\n ) : (\n children\n )}\n \n \n );\n }\n };\n}\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n NativeModules,\n Platform,\n PixelRatio,\n processColor,\n Text,\n} from './react-native';\n\nimport ensureNativeModuleAvailable from './ensure-native-module-available';\nimport createIconSourceCache from './create-icon-source-cache';\nimport createIconButtonComponent from './icon-button';\nimport createTabBarItemIOSComponent from './tab-bar-item-ios';\n\nexport const NativeIconAPI =\n NativeModules.RNVectorIconsManager || NativeModules.RNVectorIconsModule;\n\nexport const DEFAULT_ICON_SIZE = 12;\nexport const DEFAULT_ICON_COLOR = 'black';\n\nexport default function createIconSet(\n glyphMap,\n fontFamily,\n fontFile,\n fontStyle\n) {\n // Android doesn't care about actual fontFamily name, it will only look in fonts folder.\n const fontBasename = fontFile\n ? fontFile.replace(/\\.(otf|ttf)$/, '')\n : fontFamily;\n\n const fontReference = Platform.select({\n windows: `/Assets/${fontFile}#${fontFamily}`,\n android: fontBasename,\n web: fontBasename,\n default: fontFamily,\n });\n\n class Icon extends PureComponent {\n root = null;\n\n static defaultProps = {\n size: DEFAULT_ICON_SIZE,\n allowFontScaling: false,\n };\n\n setNativeProps(nativeProps) {\n if (this.root) {\n this.root.setNativeProps(nativeProps);\n }\n }\n\n handleRef = ref => {\n this.root = ref;\n };\n\n render() {\n const { name, size, color, style, children, ...props } = this.props;\n\n let glyph = name ? glyphMap[name] || '?' : '';\n if (typeof glyph === 'number') {\n glyph = String.fromCodePoint(glyph);\n }\n\n const styleDefaults = {\n fontSize: size,\n color,\n };\n\n const styleOverrides = {\n fontFamily: fontReference,\n fontWeight: 'normal',\n fontStyle: 'normal',\n };\n\n props.style = [styleDefaults, style, styleOverrides, fontStyle || {}];\n props.ref = this.handleRef;\n\n return (\n \n {glyph}\n {children}\n \n );\n }\n }\n\n const imageSourceCache = createIconSourceCache();\n\n function resolveGlyph(name) {\n const glyph = glyphMap[name] || '?';\n if (typeof glyph === 'number') {\n return String.fromCodePoint(glyph);\n }\n return glyph;\n }\n\n function getImageSourceSync(\n name,\n size = DEFAULT_ICON_SIZE,\n color = DEFAULT_ICON_COLOR\n ) {\n ensureNativeModuleAvailable();\n\n const glyph = resolveGlyph(name);\n const processedColor = processColor(color);\n const cacheKey = `${glyph}:${size}:${processedColor}`;\n\n if (imageSourceCache.has(cacheKey)) {\n return imageSourceCache.get(cacheKey);\n }\n try {\n const imagePath = NativeIconAPI.getImageForFontSync(\n fontReference,\n glyph,\n size,\n processedColor\n );\n const value = { uri: imagePath, scale: PixelRatio.get() };\n imageSourceCache.setValue(cacheKey, value);\n return value;\n } catch (error) {\n imageSourceCache.setError(cacheKey, error);\n throw error;\n }\n }\n\n async function getImageSource(\n name,\n size = DEFAULT_ICON_SIZE,\n color = DEFAULT_ICON_COLOR\n ) {\n ensureNativeModuleAvailable();\n\n const glyph = resolveGlyph(name);\n const processedColor = processColor(color);\n const cacheKey = `${glyph}:${size}:${processedColor}`;\n\n if (imageSourceCache.has(cacheKey)) {\n return imageSourceCache.get(cacheKey);\n }\n try {\n const imagePath = await NativeIconAPI.getImageForFont(\n fontReference,\n glyph,\n size,\n processedColor\n );\n const value = { uri: imagePath, scale: PixelRatio.get() };\n imageSourceCache.setValue(cacheKey, value);\n return value;\n } catch (error) {\n imageSourceCache.setError(cacheKey, error);\n throw error;\n }\n }\n\n async function loadFont(file = fontFile) {\n if (Platform.OS === 'ios') {\n ensureNativeModuleAvailable();\n if (!file) {\n throw new Error('Unable to load font, because no file was specified. ');\n }\n await NativeIconAPI.loadFontWithFileName(...file.split('.'));\n }\n }\n\n function hasIcon(name) {\n return Object.prototype.hasOwnProperty.call(glyphMap, name);\n }\n\n function getRawGlyphMap() {\n return glyphMap;\n }\n\n function getFontFamily() {\n return fontReference;\n }\n\n Icon.Button = createIconButtonComponent(Icon);\n Icon.TabBarItemIOS = Icon.TabBarItem;\n Icon.getImageSource = getImageSource;\n Icon.getImageSourceSync = getImageSourceSync;\n Icon.loadFont = loadFont;\n Icon.hasIcon = hasIcon;\n Icon.getRawGlyphMap = getRawGlyphMap;\n Icon.getFontFamily = getFontFamily;\n\n return Icon;\n}\n","import * as Font from \"expo-font\";\nimport React, { ComponentClass } from \"react\";\nimport {\n Text,\n TextProps,\n TouchableHighlightProps,\n ViewProps,\n OpaqueColorValue,\n TextStyle,\n ViewStyle,\n} from \"react-native\";\n\nimport createIconSet from \"./vendor/react-native-vector-icons/lib/create-icon-set\";\nimport createIconButtonComponent from \"./vendor/react-native-vector-icons/lib/icon-button\";\n\nexport {\n DEFAULT_ICON_COLOR,\n DEFAULT_ICON_SIZE,\n} from \"./vendor/react-native-vector-icons/lib/create-icon-set\";\n\nexport interface IconProps extends TextProps {\n /**\n * Size of the icon, can also be passed as fontSize in the style object.\n *\n * @default 12\n */\n size?: number;\n\n /**\n * Name of the icon to show\n *\n * See Icon Explorer app\n * {@link https://expo.github.io/vector-icons/}\n */\n name: GLYPHS;\n\n /**\n * Color of the icon. Can be a string or OpaqueColorValue (returned from\n * PlatformColor(..))\n *\n */\n color?: string | OpaqueColorValue;\n}\n\nexport interface IconButtonProps\n extends IconProps,\n ViewProps,\n TouchableHighlightProps {\n /**\n * Text and icon color\n * Use iconStyle or nest a Text component if you need different colors.\n * Can be a string or OpaqueColorValue (returned from PlatformColor(..))\n *\n * @default 'white'\n */\n color?: string | OpaqueColorValue;\n\n /**\n * Border radius of the button\n * Set to 0 to disable.\n *\n * @default 5\n */\n borderRadius?: number;\n\n /**\n * Styles applied to the icon only\n * Good for setting margins or a different color.\n *\n * @default {marginRight: 10}\n */\n iconStyle?: TextStyle;\n\n /**\n * Style prop inherited from TextProps and TouchableWithoutFeedbackProperties\n * Only exist here so we can have ViewStyle or TextStyle\n *\n */\n style?: ViewStyle | TextStyle;\n\n /**\n * Background color of the button. Can be a string or OpaqueColorValue (returned from\n * PlatformColor(..))\n *\n * @default '#007AFF'\n */\n backgroundColor?: string | OpaqueColorValue;\n}\n\nexport type GlyphMap = { [K in G]: number | string };\n\nexport interface Icon {\n defaultProps: any;\n Button: ComponentClass>;\n glyphMap: GlyphMap;\n getRawGlyphMap: () => GlyphMap;\n getFontFamily: () => FN;\n loadFont: () => Promise;\n font: { [x: string]: any };\n new (props: IconProps): React.Component>;\n}\n\nexport default function (\n glyphMap: GlyphMap,\n fontName: FN,\n expoAssetId,\n fontStyle?: any\n): Icon {\n const font = { [fontName]: expoAssetId };\n const RNVIconComponent = createIconSet(glyphMap, fontName, null, fontStyle);\n\n return class Icon extends React.Component> {\n static defaultProps = RNVIconComponent.defaultProps;\n static Button = createIconButtonComponent(Icon);\n static glyphMap = glyphMap;\n static getRawGlyphMap = () => glyphMap;\n static getFontFamily = () => fontName;\n static loadFont = () => Font.loadAsync(font);\n static font = font;\n\n _mounted = false;\n _icon?: any;\n\n state = {\n fontIsLoaded: Font.isLoaded(fontName),\n };\n\n async componentDidMount() {\n this._mounted = true;\n if (!this.state.fontIsLoaded) {\n await Font.loadAsync(font);\n this._mounted && this.setState({ fontIsLoaded: true });\n }\n }\n\n componentWillUnmount() {\n this._mounted = false;\n }\n\n setNativeProps(props) {\n if (this._icon) {\n this._icon.setNativeProps(props);\n }\n }\n\n render() {\n if (__DEV__ && this.props.name && !(this.props.name in glyphMap)) {\n console.warn(\n `\"${this.props.name}\" is not a valid icon name for family \"${fontName}\"`\n );\n }\n\n if (!this.state.fontIsLoaded) {\n return ;\n }\n\n return (\n {\n this._icon = view;\n }}\n {...this.props}\n />\n );\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {isIOS, runAfterTransition} from '@react-aria/utils';\n\n// Safari on iOS starts selecting text on long press. The only way to avoid this, it seems,\n// is to add user-select: none to the entire page. Adding it to the pressable element prevents\n// that element from being selected, but nearby elements may still receive selection. We add\n// user-select: none on touch start, and remove it again on touch end to prevent this.\n// This must be implemented using global state to avoid race conditions between multiple elements.\n\n// There are three possible states due to the delay before removing user-select: none after\n// pointer up. The 'default' state always transitions to the 'disabled' state, which transitions\n// to 'restoring'. The 'restoring' state can either transition back to 'disabled' or 'default'.\n\n// For non-iOS devices, we apply user-select: none to the pressed element instead to avoid possible\n// performance issues that arise from applying and removing user-select: none to the entire page\n// (see https://github.com/adobe/react-spectrum/issues/1609).\ntype State = 'default' | 'disabled' | 'restoring';\n\n// Note that state only matters here for iOS. Non-iOS gets user-select: none applied to the target element\n// rather than at the document level so we just need to apply/remove user-select: none for each pressed element individually\nlet state: State = 'default';\nlet savedUserSelect = '';\nlet modifiedElementMap = new WeakMap();\n\nexport function disableTextSelection(target?: Element) {\n if (isIOS()) {\n if (state === 'default') {\n savedUserSelect = document.documentElement.style.webkitUserSelect;\n document.documentElement.style.webkitUserSelect = 'none';\n }\n\n state = 'disabled';\n } else if (target instanceof HTMLElement || target instanceof SVGElement) {\n // If not iOS, store the target's original user-select and change to user-select: none\n // Ignore state since it doesn't apply for non iOS\n modifiedElementMap.set(target, target.style.userSelect);\n target.style.userSelect = 'none';\n }\n}\n\nexport function restoreTextSelection(target?: Element) {\n if (isIOS()) {\n // If the state is already default, there's nothing to do.\n // If it is restoring, then there's no need to queue a second restore.\n if (state !== 'disabled') {\n return;\n }\n\n state = 'restoring';\n\n // There appears to be a delay on iOS where selection still might occur\n // after pointer up, so wait a bit before removing user-select.\n setTimeout(() => {\n // Wait for any CSS transitions to complete so we don't recompute style\n // for the whole page in the middle of the animation and cause jank.\n runAfterTransition(() => {\n // Avoid race conditions\n if (state === 'restoring') {\n if (document.documentElement.style.webkitUserSelect === 'none') {\n document.documentElement.style.webkitUserSelect = savedUserSelect || '';\n }\n\n savedUserSelect = '';\n state = 'default';\n }\n });\n }, 300);\n } else if (target instanceof HTMLElement || target instanceof SVGElement) {\n // If not iOS, restore the target's original user-select if any\n // Ignore state since it doesn't apply for non iOS\n if (target && modifiedElementMap.has(target)) {\n let targetOldUserSelect = modifiedElementMap.get(target);\n\n if (target.style.userSelect === 'none') {\n target.style.userSelect = targetOldUserSelect;\n }\n\n if (target.getAttribute('style') === '') {\n target.removeAttribute('style');\n }\n modifiedElementMap.delete(target);\n }\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusableElement} from '@react-types/shared';\nimport {PressProps} from './usePress';\nimport React, {MutableRefObject} from 'react';\n\ninterface IPressResponderContext extends PressProps {\n register(): void,\n ref?: MutableRefObject\n}\n\nexport const PressResponderContext = React.createContext(null);\nPressResponderContext.displayName = 'PressResponderContext';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {disableTextSelection, restoreTextSelection} from './textSelection';\nimport {DOMAttributes, FocusableElement, PointerType, PressEvents} from '@react-types/shared';\nimport {focusWithoutScrolling, isVirtualClick, isVirtualPointerEvent, mergeProps, useGlobalListeners, useSyncRef} from '@react-aria/utils';\nimport {PressResponderContext} from './context';\nimport {RefObject, useContext, useEffect, useMemo, useRef, useState} from 'react';\n\nexport interface PressProps extends PressEvents {\n /** Whether the target is in a controlled press state (e.g. an overlay it triggers is open). */\n isPressed?: boolean,\n /** Whether the press events should be disabled. */\n isDisabled?: boolean,\n /** Whether the target should not receive focus on press. */\n preventFocusOnPress?: boolean,\n /**\n * Whether press events should be canceled when the pointer leaves the target while pressed.\n * By default, this is `false`, which means if the pointer returns back over the target while\n * still pressed, onPressStart will be fired again. If set to `true`, the press is canceled\n * when the pointer leaves the target and onPressStart will not be fired if the pointer returns.\n */\n shouldCancelOnPointerExit?: boolean,\n /** Whether text selection should be enabled on the pressable element. */\n allowTextSelectionOnPress?: boolean\n}\n\nexport interface PressHookProps extends PressProps {\n /** A ref to the target element. */\n ref?: RefObject\n}\n\ninterface PressState {\n isPressed: boolean,\n ignoreEmulatedMouseEvents: boolean,\n ignoreClickAfterPress: boolean,\n didFirePressStart: boolean,\n activePointerId: any,\n target: FocusableElement | null,\n isOverTarget: boolean,\n pointerType: PointerType,\n userSelect?: string\n}\n\ninterface EventBase {\n currentTarget: EventTarget,\n shiftKey: boolean,\n ctrlKey: boolean,\n metaKey: boolean,\n altKey: boolean\n}\n\nexport interface PressResult {\n /** Whether the target is currently pressed. */\n isPressed: boolean,\n /** Props to spread on the target element. */\n pressProps: DOMAttributes\n}\n\nfunction usePressResponderContext(props: PressHookProps): PressHookProps {\n // Consume context from and merge with props.\n let context = useContext(PressResponderContext);\n if (context) {\n let {register, ...contextProps} = context;\n props = mergeProps(contextProps, props) as PressHookProps;\n register();\n }\n useSyncRef(context, props.ref);\n\n return props;\n}\n\n/**\n * Handles press interactions across mouse, touch, keyboard, and screen readers.\n * It normalizes behavior across browsers and platforms, and handles many nuances\n * of dealing with pointer and keyboard events.\n */\nexport function usePress(props: PressHookProps): PressResult {\n let {\n onPress,\n onPressChange,\n onPressStart,\n onPressEnd,\n onPressUp,\n isDisabled,\n isPressed: isPressedProp,\n preventFocusOnPress,\n shouldCancelOnPointerExit,\n allowTextSelectionOnPress,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ref: _, // Removing `ref` from `domProps` because TypeScript is dumb\n ...domProps\n } = usePressResponderContext(props);\n let propsRef = useRef(null);\n propsRef.current = {onPress, onPressChange, onPressStart, onPressEnd, onPressUp, isDisabled, shouldCancelOnPointerExit};\n\n let [isPressed, setPressed] = useState(false);\n let ref = useRef({\n isPressed: false,\n ignoreEmulatedMouseEvents: false,\n ignoreClickAfterPress: false,\n didFirePressStart: false,\n activePointerId: null,\n target: null,\n isOverTarget: false,\n pointerType: null\n });\n\n let {addGlobalListener, removeAllGlobalListeners} = useGlobalListeners();\n\n let pressProps = useMemo(() => {\n let state = ref.current;\n let triggerPressStart = (originalEvent: EventBase, pointerType: PointerType) => {\n let {onPressStart, onPressChange, isDisabled} = propsRef.current;\n if (isDisabled || state.didFirePressStart) {\n return;\n }\n\n if (onPressStart) {\n onPressStart({\n type: 'pressstart',\n pointerType,\n target: originalEvent.currentTarget as Element,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n\n if (onPressChange) {\n onPressChange(true);\n }\n\n state.didFirePressStart = true;\n setPressed(true);\n };\n\n let triggerPressEnd = (originalEvent: EventBase, pointerType: PointerType, wasPressed = true) => {\n let {onPressEnd, onPressChange, onPress, isDisabled} = propsRef.current;\n if (!state.didFirePressStart) {\n return;\n }\n\n state.ignoreClickAfterPress = true;\n state.didFirePressStart = false;\n\n if (onPressEnd) {\n onPressEnd({\n type: 'pressend',\n pointerType,\n target: originalEvent.currentTarget as Element,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n\n if (onPressChange) {\n onPressChange(false);\n }\n\n setPressed(false);\n\n if (onPress && wasPressed && !isDisabled) {\n onPress({\n type: 'press',\n pointerType,\n target: originalEvent.currentTarget as Element,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n };\n\n let triggerPressUp = (originalEvent: EventBase, pointerType: PointerType) => {\n let {onPressUp, isDisabled} = propsRef.current;\n if (isDisabled) {\n return;\n }\n\n if (onPressUp) {\n onPressUp({\n type: 'pressup',\n pointerType,\n target: originalEvent.currentTarget as Element,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n };\n\n let cancel = (e: EventBase) => {\n if (state.isPressed) {\n if (state.isOverTarget) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType, false);\n }\n state.isPressed = false;\n state.isOverTarget = false;\n state.activePointerId = null;\n state.pointerType = null;\n removeAllGlobalListeners();\n if (!allowTextSelectionOnPress) {\n restoreTextSelection(state.target);\n }\n }\n };\n\n let pressProps: DOMAttributes = {\n onKeyDown(e) {\n if (isValidKeyboardEvent(e.nativeEvent, e.currentTarget) && e.currentTarget.contains(e.target as Element)) {\n if (shouldPreventDefaultKeyboard(e.target as Element, e.key)) {\n e.preventDefault();\n }\n e.stopPropagation();\n\n // If the event is repeating, it may have started on a different element\n // after which focus moved to the current element. Ignore these events and\n // only handle the first key down event.\n if (!state.isPressed && !e.repeat) {\n state.target = e.currentTarget;\n state.isPressed = true;\n triggerPressStart(e, 'keyboard');\n\n // Focus may move before the key up event, so register the event on the document\n // instead of the same element where the key down event occurred.\n addGlobalListener(document, 'keyup', onKeyUp, false);\n }\n } else if (e.key === 'Enter' && isHTMLAnchorLink(e.currentTarget)) {\n // If the target is a link, we won't have handled this above because we want the default\n // browser behavior to open the link when pressing Enter. But we still need to prevent\n // default so that elements above do not also handle it (e.g. table row).\n e.stopPropagation();\n }\n },\n onKeyUp(e) {\n if (isValidKeyboardEvent(e.nativeEvent, e.currentTarget) && !e.repeat && e.currentTarget.contains(e.target as Element)) {\n triggerPressUp(createEvent(state.target, e), 'keyboard');\n }\n },\n onClick(e) {\n if (e && !e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n if (e && e.button === 0) {\n e.stopPropagation();\n if (isDisabled) {\n e.preventDefault();\n }\n\n // If triggered from a screen reader or by using element.click(),\n // trigger as if it were a keyboard click.\n if (!state.ignoreClickAfterPress && !state.ignoreEmulatedMouseEvents && (state.pointerType === 'virtual' || isVirtualClick(e.nativeEvent))) {\n // Ensure the element receives focus (VoiceOver on iOS does not do this)\n if (!isDisabled && !preventFocusOnPress) {\n focusWithoutScrolling(e.currentTarget);\n }\n\n triggerPressStart(e, 'virtual');\n triggerPressUp(e, 'virtual');\n triggerPressEnd(e, 'virtual');\n }\n\n state.ignoreEmulatedMouseEvents = false;\n state.ignoreClickAfterPress = false;\n }\n }\n };\n\n let onKeyUp = (e: KeyboardEvent) => {\n if (state.isPressed && isValidKeyboardEvent(e, state.target)) {\n if (shouldPreventDefaultKeyboard(e.target as Element, e.key)) {\n e.preventDefault();\n }\n e.stopPropagation();\n\n state.isPressed = false;\n let target = e.target as Element;\n triggerPressEnd(createEvent(state.target, e), 'keyboard', state.target.contains(target));\n removeAllGlobalListeners();\n\n // If the target is a link, trigger the click method to open the URL,\n // but defer triggering pressEnd until onClick event handler.\n if (state.target instanceof HTMLElement && state.target.contains(target) && (isHTMLAnchorLink(state.target) || state.target.getAttribute('role') === 'link')) {\n state.target.click();\n }\n }\n };\n\n if (typeof PointerEvent !== 'undefined') {\n pressProps.onPointerDown = (e) => {\n // Only handle left clicks, and ignore events that bubbled through portals.\n if (e.button !== 0 || !e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n // iOS safari fires pointer events from VoiceOver with incorrect coordinates/target.\n // Ignore and let the onClick handler take care of it instead.\n // https://bugs.webkit.org/show_bug.cgi?id=222627\n // https://bugs.webkit.org/show_bug.cgi?id=223202\n if (isVirtualPointerEvent(e.nativeEvent)) {\n state.pointerType = 'virtual';\n return;\n }\n\n // Due to browser inconsistencies, especially on mobile browsers, we prevent\n // default on pointer down and handle focusing the pressable element ourselves.\n if (shouldPreventDefault(e.currentTarget as Element)) {\n e.preventDefault();\n }\n\n state.pointerType = e.pointerType;\n\n e.stopPropagation();\n if (!state.isPressed) {\n state.isPressed = true;\n state.isOverTarget = true;\n state.activePointerId = e.pointerId;\n state.target = e.currentTarget;\n\n if (!isDisabled && !preventFocusOnPress) {\n focusWithoutScrolling(e.currentTarget);\n }\n\n if (!allowTextSelectionOnPress) {\n disableTextSelection(state.target);\n }\n\n triggerPressStart(e, state.pointerType);\n\n addGlobalListener(document, 'pointermove', onPointerMove, false);\n addGlobalListener(document, 'pointerup', onPointerUp, false);\n addGlobalListener(document, 'pointercancel', onPointerCancel, false);\n }\n };\n\n pressProps.onMouseDown = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n if (e.button === 0) {\n // Chrome and Firefox on touch Windows devices require mouse down events\n // to be canceled in addition to pointer events, or an extra asynchronous\n // focus event will be fired.\n if (shouldPreventDefault(e.currentTarget as Element)) {\n e.preventDefault();\n }\n\n e.stopPropagation();\n }\n };\n\n pressProps.onPointerUp = (e) => {\n // iOS fires pointerup with zero width and height, so check the pointerType recorded during pointerdown.\n if (!e.currentTarget.contains(e.target as Element) || state.pointerType === 'virtual') {\n return;\n }\n\n // Only handle left clicks\n // Safari on iOS sometimes fires pointerup events, even\n // when the touch isn't over the target, so double check.\n if (e.button === 0 && isOverTarget(e, e.currentTarget)) {\n triggerPressUp(e, state.pointerType || e.pointerType);\n }\n };\n\n // Safari on iOS < 13.2 does not implement pointerenter/pointerleave events correctly.\n // Use pointer move events instead to implement our own hit testing.\n // See https://bugs.webkit.org/show_bug.cgi?id=199803\n let onPointerMove = (e: PointerEvent) => {\n if (e.pointerId !== state.activePointerId) {\n return;\n }\n\n if (isOverTarget(e, state.target)) {\n if (!state.isOverTarget) {\n state.isOverTarget = true;\n triggerPressStart(createEvent(state.target, e), state.pointerType);\n }\n } else if (state.isOverTarget) {\n state.isOverTarget = false;\n triggerPressEnd(createEvent(state.target, e), state.pointerType, false);\n if (propsRef.current.shouldCancelOnPointerExit) {\n cancel(e);\n }\n }\n };\n\n let onPointerUp = (e: PointerEvent) => {\n if (e.pointerId === state.activePointerId && state.isPressed && e.button === 0) {\n if (isOverTarget(e, state.target)) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType);\n } else if (state.isOverTarget) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType, false);\n }\n\n state.isPressed = false;\n state.isOverTarget = false;\n state.activePointerId = null;\n state.pointerType = null;\n removeAllGlobalListeners();\n if (!allowTextSelectionOnPress) {\n restoreTextSelection(state.target);\n }\n }\n };\n\n let onPointerCancel = (e: PointerEvent) => {\n cancel(e);\n };\n\n pressProps.onDragStart = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n // Safari does not call onPointerCancel when a drag starts, whereas Chrome and Firefox do.\n cancel(e);\n };\n } else {\n pressProps.onMouseDown = (e) => {\n // Only handle left clicks\n if (e.button !== 0 || !e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n // Due to browser inconsistencies, especially on mobile browsers, we prevent\n // default on mouse down and handle focusing the pressable element ourselves.\n if (shouldPreventDefault(e.currentTarget)) {\n e.preventDefault();\n }\n\n e.stopPropagation();\n if (state.ignoreEmulatedMouseEvents) {\n return;\n }\n\n state.isPressed = true;\n state.isOverTarget = true;\n state.target = e.currentTarget;\n state.pointerType = isVirtualClick(e.nativeEvent) ? 'virtual' : 'mouse';\n\n if (!isDisabled && !preventFocusOnPress) {\n focusWithoutScrolling(e.currentTarget);\n }\n\n triggerPressStart(e, state.pointerType);\n\n addGlobalListener(document, 'mouseup', onMouseUp, false);\n };\n\n pressProps.onMouseEnter = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n e.stopPropagation();\n if (state.isPressed && !state.ignoreEmulatedMouseEvents) {\n state.isOverTarget = true;\n triggerPressStart(e, state.pointerType);\n }\n };\n\n pressProps.onMouseLeave = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n e.stopPropagation();\n if (state.isPressed && !state.ignoreEmulatedMouseEvents) {\n state.isOverTarget = false;\n triggerPressEnd(e, state.pointerType, false);\n if (propsRef.current.shouldCancelOnPointerExit) {\n cancel(e);\n }\n }\n };\n\n pressProps.onMouseUp = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n if (!state.ignoreEmulatedMouseEvents && e.button === 0) {\n triggerPressUp(e, state.pointerType);\n }\n };\n\n let onMouseUp = (e: MouseEvent) => {\n // Only handle left clicks\n if (e.button !== 0) {\n return;\n }\n\n state.isPressed = false;\n removeAllGlobalListeners();\n\n if (state.ignoreEmulatedMouseEvents) {\n state.ignoreEmulatedMouseEvents = false;\n return;\n }\n\n if (isOverTarget(e, state.target)) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType);\n } else if (state.isOverTarget) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType, false);\n }\n\n state.isOverTarget = false;\n };\n\n pressProps.onTouchStart = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n e.stopPropagation();\n let touch = getTouchFromEvent(e.nativeEvent);\n if (!touch) {\n return;\n }\n state.activePointerId = touch.identifier;\n state.ignoreEmulatedMouseEvents = true;\n state.isOverTarget = true;\n state.isPressed = true;\n state.target = e.currentTarget;\n state.pointerType = 'touch';\n\n // Due to browser inconsistencies, especially on mobile browsers, we prevent default\n // on the emulated mouse event and handle focusing the pressable element ourselves.\n if (!isDisabled && !preventFocusOnPress) {\n focusWithoutScrolling(e.currentTarget);\n }\n\n if (!allowTextSelectionOnPress) {\n disableTextSelection(state.target);\n }\n\n triggerPressStart(e, state.pointerType);\n\n addGlobalListener(window, 'scroll', onScroll, true);\n };\n\n pressProps.onTouchMove = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n e.stopPropagation();\n if (!state.isPressed) {\n return;\n }\n\n let touch = getTouchById(e.nativeEvent, state.activePointerId);\n if (touch && isOverTarget(touch, e.currentTarget)) {\n if (!state.isOverTarget) {\n state.isOverTarget = true;\n triggerPressStart(e, state.pointerType);\n }\n } else if (state.isOverTarget) {\n state.isOverTarget = false;\n triggerPressEnd(e, state.pointerType, false);\n if (propsRef.current.shouldCancelOnPointerExit) {\n cancel(e);\n }\n }\n };\n\n pressProps.onTouchEnd = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n e.stopPropagation();\n if (!state.isPressed) {\n return;\n }\n\n let touch = getTouchById(e.nativeEvent, state.activePointerId);\n if (touch && isOverTarget(touch, e.currentTarget)) {\n triggerPressUp(e, state.pointerType);\n triggerPressEnd(e, state.pointerType);\n } else if (state.isOverTarget) {\n triggerPressEnd(e, state.pointerType, false);\n }\n\n state.isPressed = false;\n state.activePointerId = null;\n state.isOverTarget = false;\n state.ignoreEmulatedMouseEvents = true;\n if (!allowTextSelectionOnPress) {\n restoreTextSelection(state.target);\n }\n removeAllGlobalListeners();\n };\n\n pressProps.onTouchCancel = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n e.stopPropagation();\n if (state.isPressed) {\n cancel(e);\n }\n };\n\n let onScroll = (e: Event) => {\n if (state.isPressed && (e.target as Element).contains(state.target)) {\n cancel({\n currentTarget: state.target,\n shiftKey: false,\n ctrlKey: false,\n metaKey: false,\n altKey: false\n });\n }\n };\n\n pressProps.onDragStart = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n cancel(e);\n };\n }\n\n return pressProps;\n }, [addGlobalListener, isDisabled, preventFocusOnPress, removeAllGlobalListeners, allowTextSelectionOnPress]);\n\n // Remove user-select: none in case component unmounts immediately after pressStart\n // eslint-disable-next-line arrow-body-style\n useEffect(() => {\n return () => {\n if (!allowTextSelectionOnPress) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n restoreTextSelection(ref.current.target);\n }\n };\n }, [allowTextSelectionOnPress]);\n\n return {\n isPressed: isPressedProp || isPressed,\n pressProps: mergeProps(domProps, pressProps)\n };\n}\n\nfunction isHTMLAnchorLink(target: Element): boolean {\n return target.tagName === 'A' && target.hasAttribute('href');\n}\n\nfunction isValidKeyboardEvent(event: KeyboardEvent, currentTarget: Element): boolean {\n const {key, code} = event;\n const element = currentTarget as HTMLElement;\n const role = element.getAttribute('role');\n // Accessibility for keyboards. Space and Enter only.\n // \"Spacebar\" is for IE 11\n return (\n (key === 'Enter' || key === ' ' || key === 'Spacebar' || code === 'Space') &&\n !((element instanceof HTMLInputElement && !isValidInputKey(element, key)) ||\n element instanceof HTMLTextAreaElement ||\n element.isContentEditable) &&\n // A link with a valid href should be handled natively,\n // unless it also has role='button' and was triggered using Space.\n (!isHTMLAnchorLink(element) || (role === 'button' && key !== 'Enter')) &&\n // An element with role='link' should only trigger with Enter key\n !(role === 'link' && key !== 'Enter')\n );\n}\n\nfunction getTouchFromEvent(event: TouchEvent): Touch | null {\n const {targetTouches} = event;\n if (targetTouches.length > 0) {\n return targetTouches[0];\n }\n return null;\n}\n\nfunction getTouchById(\n event: TouchEvent,\n pointerId: null | number\n): null | Touch {\n const changedTouches = event.changedTouches;\n for (let i = 0; i < changedTouches.length; i++) {\n const touch = changedTouches[i];\n if (touch.identifier === pointerId) {\n return touch;\n }\n }\n return null;\n}\n\nfunction createEvent(target: FocusableElement, e: EventBase): EventBase {\n return {\n currentTarget: target,\n shiftKey: e.shiftKey,\n ctrlKey: e.ctrlKey,\n metaKey: e.metaKey,\n altKey: e.altKey\n };\n}\n\ninterface Rect {\n top: number,\n right: number,\n bottom: number,\n left: number\n}\n\ninterface EventPoint {\n clientX: number,\n clientY: number,\n width?: number,\n height?: number,\n radiusX?: number,\n radiusY?: number\n}\n\nfunction getPointClientRect(point: EventPoint): Rect {\n let offsetX = (point.width / 2) || point.radiusX || 0;\n let offsetY = (point.height / 2) || point.radiusY || 0;\n\n return {\n top: point.clientY - offsetY,\n right: point.clientX + offsetX,\n bottom: point.clientY + offsetY,\n left: point.clientX - offsetX\n };\n}\n\nfunction areRectanglesOverlapping(a: Rect, b: Rect) {\n // check if they cannot overlap on x axis\n if (a.left > b.right || b.left > a.right) {\n return false;\n }\n // check if they cannot overlap on y axis\n if (a.top > b.bottom || b.top > a.bottom) {\n return false;\n }\n return true;\n}\n\nfunction isOverTarget(point: EventPoint, target: Element) {\n let rect = target.getBoundingClientRect();\n let pointRect = getPointClientRect(point);\n return areRectanglesOverlapping(rect, pointRect);\n}\n\nfunction shouldPreventDefault(target: Element) {\n // We cannot prevent default if the target is a draggable element.\n return !(target instanceof HTMLElement) || !target.draggable;\n}\n\nfunction shouldPreventDefaultKeyboard(target: Element, key: string) {\n if (target instanceof HTMLInputElement) {\n return !isValidInputKey(target, key);\n }\n\n if (target instanceof HTMLButtonElement) {\n return target.type !== 'submit';\n }\n\n return true;\n}\n\nconst nonTextInputTypes = new Set([\n 'checkbox',\n 'radio',\n 'range',\n 'color',\n 'file',\n 'image',\n 'button',\n 'submit',\n 'reset'\n]);\n\nfunction isValidInputKey(target: HTMLInputElement, key: string) {\n // Only space should toggle checkboxes and radios, not enter.\n return target.type === 'checkbox' || target.type === 'radio'\n ? key === ' '\n : nonTextInputTypes.has(target.type);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes} from '@react-types/shared';\nimport {mergeProps} from '@react-aria/utils';\nimport {PressProps, usePress} from './usePress';\nimport React, {ReactElement, RefObject, useRef} from 'react';\n\ninterface PressableProps extends PressProps {\n children: ReactElement\n}\n\nexport const Pressable = React.forwardRef(({children, ...props}: PressableProps, ref: RefObject) => {\n let newRef = useRef();\n ref = ref ?? newRef;\n let {pressProps} = usePress({...props, ref});\n let child = React.Children.only(children);\n return React.cloneElement(\n child,\n // @ts-ignore\n {ref, ...mergeProps(child.props, pressProps)}\n );\n});\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusableElement} from '@react-types/shared';\nimport {mergeProps, useSyncRef} from '@react-aria/utils';\nimport {PressProps} from './usePress';\nimport {PressResponderContext} from './context';\nimport React, {ReactNode, RefObject, useContext, useEffect, useRef} from 'react';\n\ninterface PressResponderProps extends PressProps {\n children: ReactNode\n}\n\nexport const PressResponder = React.forwardRef(({children, ...props}: PressResponderProps, ref: RefObject) => {\n let isRegistered = useRef(false);\n let prevContext = useContext(PressResponderContext);\n let context = mergeProps(prevContext || {}, {\n ...props,\n ref: ref || prevContext?.ref,\n register() {\n isRegistered.current = true;\n if (prevContext) {\n prevContext.register();\n }\n }\n });\n\n useSyncRef(prevContext, ref);\n\n useEffect(() => {\n if (!isRegistered.current) {\n console.warn(\n 'A PressResponder was rendered without a pressable child. ' +\n 'Either call the usePress hook, or wrap your DOM node with component.'\n );\n }\n }, []);\n\n return (\n \n {children}\n \n );\n});\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusEvent as ReactFocusEvent, useCallback, useRef} from 'react';\nimport {useLayoutEffect} from '@react-aria/utils';\n\nexport class SyntheticFocusEvent implements ReactFocusEvent {\n nativeEvent: FocusEvent;\n target: Element;\n currentTarget: Element;\n relatedTarget: Element;\n bubbles: boolean;\n cancelable: boolean;\n defaultPrevented: boolean;\n eventPhase: number;\n isTrusted: boolean;\n timeStamp: number;\n type: string;\n\n constructor(type: string, nativeEvent: FocusEvent) {\n this.nativeEvent = nativeEvent;\n this.target = nativeEvent.target as Element;\n this.currentTarget = nativeEvent.currentTarget as Element;\n this.relatedTarget = nativeEvent.relatedTarget as Element;\n this.bubbles = nativeEvent.bubbles;\n this.cancelable = nativeEvent.cancelable;\n this.defaultPrevented = nativeEvent.defaultPrevented;\n this.eventPhase = nativeEvent.eventPhase;\n this.isTrusted = nativeEvent.isTrusted;\n this.timeStamp = nativeEvent.timeStamp;\n this.type = type;\n }\n\n isDefaultPrevented(): boolean {\n return this.nativeEvent.defaultPrevented;\n }\n\n preventDefault(): void {\n this.defaultPrevented = true;\n this.nativeEvent.preventDefault();\n }\n\n stopPropagation(): void {\n this.nativeEvent.stopPropagation();\n this.isPropagationStopped = () => true;\n }\n\n isPropagationStopped(): boolean {\n return false;\n }\n\n persist() {}\n}\n\nexport function useSyntheticBlurEvent(onBlur: (e: ReactFocusEvent) => void) {\n let stateRef = useRef({\n isFocused: false,\n onBlur,\n observer: null as MutationObserver\n });\n stateRef.current.onBlur = onBlur;\n\n // Clean up MutationObserver on unmount. See below.\n // eslint-disable-next-line arrow-body-style\n useLayoutEffect(() => {\n const state = stateRef.current;\n return () => {\n if (state.observer) {\n state.observer.disconnect();\n state.observer = null;\n }\n };\n }, []);\n\n // This function is called during a React onFocus event.\n return useCallback((e: ReactFocusEvent) => {\n // React does not fire onBlur when an element is disabled. https://github.com/facebook/react/issues/9142\n // Most browsers fire a native focusout event in this case, except for Firefox. In that case, we use a\n // MutationObserver to watch for the disabled attribute, and dispatch these events ourselves.\n // For browsers that do, focusout fires before the MutationObserver, so onBlur should not fire twice.\n if (\n e.target instanceof HTMLButtonElement ||\n e.target instanceof HTMLInputElement ||\n e.target instanceof HTMLTextAreaElement ||\n e.target instanceof HTMLSelectElement\n ) {\n stateRef.current.isFocused = true;\n\n let target = e.target;\n let onBlurHandler = (e: FocusEvent) => {\n stateRef.current.isFocused = false;\n\n if (target.disabled) {\n // For backward compatibility, dispatch a (fake) React synthetic event.\n stateRef.current.onBlur?.(new SyntheticFocusEvent('blur', e));\n }\n\n // We no longer need the MutationObserver once the target is blurred.\n if (stateRef.current.observer) {\n stateRef.current.observer.disconnect();\n stateRef.current.observer = null;\n }\n };\n\n target.addEventListener('focusout', onBlurHandler, {once: true});\n\n stateRef.current.observer = new MutationObserver(() => {\n if (stateRef.current.isFocused && target.disabled) {\n stateRef.current.observer.disconnect();\n target.dispatchEvent(new FocusEvent('blur'));\n target.dispatchEvent(new FocusEvent('focusout', {bubbles: true}));\n }\n });\n\n stateRef.current.observer.observe(target, {attributes: true, attributeFilter: ['disabled']});\n }\n }, []);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {DOMAttributes, FocusEvents} from '@react-types/shared';\nimport {FocusEvent, useCallback} from 'react';\nimport {useSyntheticBlurEvent} from './utils';\n\nexport interface FocusProps extends FocusEvents {\n /** Whether the focus events should be disabled. */\n isDisabled?: boolean\n}\n\nexport interface FocusResult {\n /** Props to spread onto the target element. */\n focusProps: DOMAttributes\n}\n\n/**\n * Handles focus events for the immediate target.\n * Focus events on child elements will be ignored.\n */\nexport function useFocus(props: FocusProps): FocusResult {\n let {\n isDisabled,\n onFocus: onFocusProp,\n onBlur: onBlurProp,\n onFocusChange\n } = props;\n\n const onBlur: FocusProps['onBlur'] = useCallback((e: FocusEvent) => {\n if (e.target === e.currentTarget) {\n if (onBlurProp) {\n onBlurProp(e);\n }\n\n if (onFocusChange) {\n onFocusChange(false);\n }\n\n return true;\n }\n }, [onBlurProp, onFocusChange]);\n\n\n const onSyntheticFocus = useSyntheticBlurEvent(onBlur);\n\n const onFocus: FocusProps['onFocus'] = useCallback((e: FocusEvent) => {\n if (e.target === e.currentTarget) {\n if (onFocusProp) {\n onFocusProp(e);\n }\n\n if (onFocusChange) {\n onFocusChange(true);\n }\n\n onSyntheticFocus(e);\n }\n }, [onFocusChange, onFocusProp, onSyntheticFocus]);\n\n return {\n focusProps: {\n onFocus: (!isDisabled && (onFocusProp || onFocusChange || onBlurProp)) ? onFocus : undefined,\n onBlur: (!isDisabled && (onBlurProp || onFocusChange)) ? onBlur : null\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {isMac, isVirtualClick} from '@react-aria/utils';\nimport {useEffect, useState} from 'react';\n\nexport type Modality = 'keyboard' | 'pointer' | 'virtual';\ntype HandlerEvent = PointerEvent | MouseEvent | KeyboardEvent | FocusEvent;\ntype Handler = (modality: Modality, e: HandlerEvent) => void;\nexport type FocusVisibleHandler = (isFocusVisible: boolean) => void;\nexport interface FocusVisibleProps {\n /** Whether the element is a text input. */\n isTextInput?: boolean,\n /** Whether the element will be auto focused. */\n autoFocus?: boolean\n}\n\nexport interface FocusVisibleResult {\n /** Whether keyboard focus is visible globally. */\n isFocusVisible: boolean\n}\n\nlet currentModality = null;\nlet changeHandlers = new Set();\nlet hasSetupGlobalListeners = false;\nlet hasEventBeforeFocus = false;\nlet hasBlurredWindowRecently = false;\n\n// Only Tab or Esc keys will make focus visible on text input elements\nconst FOCUS_VISIBLE_INPUT_KEYS = {\n Tab: true,\n Escape: true\n};\n\nfunction triggerChangeHandlers(modality: Modality, e: HandlerEvent) {\n for (let handler of changeHandlers) {\n handler(modality, e);\n }\n}\n\n/**\n * Helper function to determine if a KeyboardEvent is unmodified and could make keyboard focus styles visible.\n */\nfunction isValidKey(e: KeyboardEvent) {\n // Control and Shift keys trigger when navigating back to the tab with keyboard.\n return !(e.metaKey || (!isMac() && e.altKey) || e.ctrlKey || e.key === 'Control' || e.key === 'Shift' || e.key === 'Meta');\n}\n\n\nfunction handleKeyboardEvent(e: KeyboardEvent) {\n hasEventBeforeFocus = true;\n if (isValidKey(e)) {\n currentModality = 'keyboard';\n triggerChangeHandlers('keyboard', e);\n }\n}\n\nfunction handlePointerEvent(e: PointerEvent | MouseEvent) {\n currentModality = 'pointer';\n if (e.type === 'mousedown' || e.type === 'pointerdown') {\n hasEventBeforeFocus = true;\n triggerChangeHandlers('pointer', e);\n }\n}\n\nfunction handleClickEvent(e: MouseEvent) {\n if (isVirtualClick(e)) {\n hasEventBeforeFocus = true;\n currentModality = 'virtual';\n }\n}\n\nfunction handleFocusEvent(e: FocusEvent) {\n // Firefox fires two extra focus events when the user first clicks into an iframe:\n // first on the window, then on the document. We ignore these events so they don't\n // cause keyboard focus rings to appear.\n if (e.target === window || e.target === document) {\n return;\n }\n\n // If a focus event occurs without a preceding keyboard or pointer event, switch to virtual modality.\n // This occurs, for example, when navigating a form with the next/previous buttons on iOS.\n if (!hasEventBeforeFocus && !hasBlurredWindowRecently) {\n currentModality = 'virtual';\n triggerChangeHandlers('virtual', e);\n }\n\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = false;\n}\n\nfunction handleWindowBlur() {\n // When the window is blurred, reset state. This is necessary when tabbing out of the window,\n // for example, since a subsequent focus event won't be fired.\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = true;\n}\n\n/**\n * Setup global event listeners to control when keyboard focus style should be visible.\n */\nfunction setupGlobalFocusEvents() {\n if (typeof window === 'undefined' || hasSetupGlobalListeners) {\n return;\n }\n\n // Programmatic focus() calls shouldn't affect the current input modality.\n // However, we need to detect other cases when a focus event occurs without\n // a preceding user event (e.g. screen reader focus). Overriding the focus\n // method on HTMLElement.prototype is a bit hacky, but works.\n let focus = HTMLElement.prototype.focus;\n HTMLElement.prototype.focus = function () {\n hasEventBeforeFocus = true;\n focus.apply(this, arguments);\n };\n\n document.addEventListener('keydown', handleKeyboardEvent, true);\n document.addEventListener('keyup', handleKeyboardEvent, true);\n document.addEventListener('click', handleClickEvent, true);\n\n // Register focus events on the window so they are sure to happen\n // before React's event listeners (registered on the document).\n window.addEventListener('focus', handleFocusEvent, true);\n window.addEventListener('blur', handleWindowBlur, false);\n\n if (typeof PointerEvent !== 'undefined') {\n document.addEventListener('pointerdown', handlePointerEvent, true);\n document.addEventListener('pointermove', handlePointerEvent, true);\n document.addEventListener('pointerup', handlePointerEvent, true);\n } else {\n document.addEventListener('mousedown', handlePointerEvent, true);\n document.addEventListener('mousemove', handlePointerEvent, true);\n document.addEventListener('mouseup', handlePointerEvent, true);\n }\n\n hasSetupGlobalListeners = true;\n}\n\nif (typeof document !== 'undefined') {\n if (document.readyState !== 'loading') {\n setupGlobalFocusEvents();\n } else {\n document.addEventListener('DOMContentLoaded', setupGlobalFocusEvents);\n }\n}\n\n/**\n * If true, keyboard focus is visible.\n */\nexport function isFocusVisible(): boolean {\n return currentModality !== 'pointer';\n}\n\nexport function getInteractionModality(): Modality {\n return currentModality;\n}\n\nexport function setInteractionModality(modality: Modality) {\n currentModality = modality;\n triggerChangeHandlers(modality, null);\n}\n\n/**\n * Keeps state of the current modality.\n */\nexport function useInteractionModality(): Modality {\n setupGlobalFocusEvents();\n\n let [modality, setModality] = useState(currentModality);\n useEffect(() => {\n let handler = () => {\n setModality(currentModality);\n };\n\n changeHandlers.add(handler);\n return () => {\n changeHandlers.delete(handler);\n };\n }, []);\n\n return modality;\n}\n\n/**\n * If this is attached to text input component, return if the event is a focus event (Tab/Escape keys pressed) so that\n * focus visible style can be properly set.\n */\nfunction isKeyboardFocusEvent(isTextInput: boolean, modality: Modality, e: HandlerEvent) {\n return !(isTextInput && modality === 'keyboard' && e instanceof KeyboardEvent && !FOCUS_VISIBLE_INPUT_KEYS[e.key]);\n}\n\n/**\n * Manages focus visible state for the page, and subscribes individual components for updates.\n */\nexport function useFocusVisible(props: FocusVisibleProps = {}): FocusVisibleResult {\n let {isTextInput, autoFocus} = props;\n let [isFocusVisibleState, setFocusVisible] = useState(autoFocus || isFocusVisible());\n useFocusVisibleListener((isFocusVisible) => {\n setFocusVisible(isFocusVisible);\n }, [isTextInput], {isTextInput});\n\n return {isFocusVisible: isFocusVisibleState};\n}\n\n/**\n * Listens for trigger change and reports if focus is visible (i.e., modality is not pointer).\n */\nexport function useFocusVisibleListener(fn: FocusVisibleHandler, deps: ReadonlyArray, opts?: {isTextInput?: boolean}): void {\n setupGlobalFocusEvents();\n\n useEffect(() => {\n let handler = (modality: Modality, e: HandlerEvent) => {\n if (!isKeyboardFocusEvent(opts?.isTextInput, modality, e)) {\n return;\n }\n fn(isFocusVisible());\n };\n changeHandlers.add(handler);\n return () => {\n changeHandlers.delete(handler);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {DOMAttributes} from '@react-types/shared';\nimport {FocusEvent, useCallback, useRef} from 'react';\nimport {useSyntheticBlurEvent} from './utils';\n\nexport interface FocusWithinProps {\n /** Whether the focus within events should be disabled. */\n isDisabled?: boolean,\n /** Handler that is called when the target element or a descendant receives focus. */\n onFocusWithin?: (e: FocusEvent) => void,\n /** Handler that is called when the target element and all descendants lose focus. */\n onBlurWithin?: (e: FocusEvent) => void,\n /** Handler that is called when the the focus within state changes. */\n onFocusWithinChange?: (isFocusWithin: boolean) => void\n}\n\nexport interface FocusWithinResult {\n /** Props to spread onto the target element. */\n focusWithinProps: DOMAttributes\n}\n\n/**\n * Handles focus events for the target and its descendants.\n */\nexport function useFocusWithin(props: FocusWithinProps): FocusWithinResult {\n let {\n isDisabled,\n onBlurWithin,\n onFocusWithin,\n onFocusWithinChange\n } = props;\n let state = useRef({\n isFocusWithin: false\n });\n\n let onBlur = useCallback((e: FocusEvent) => {\n // We don't want to trigger onBlurWithin and then immediately onFocusWithin again\n // when moving focus inside the element. Only trigger if the currentTarget doesn't\n // include the relatedTarget (where focus is moving).\n if (state.current.isFocusWithin && !(e.currentTarget as Element).contains(e.relatedTarget as Element)) {\n state.current.isFocusWithin = false;\n\n if (onBlurWithin) {\n onBlurWithin(e);\n }\n\n if (onFocusWithinChange) {\n onFocusWithinChange(false);\n }\n }\n }, [onBlurWithin, onFocusWithinChange, state]);\n\n let onSyntheticFocus = useSyntheticBlurEvent(onBlur);\n let onFocus = useCallback((e: FocusEvent) => {\n if (!state.current.isFocusWithin) {\n if (onFocusWithin) {\n onFocusWithin(e);\n }\n\n if (onFocusWithinChange) {\n onFocusWithinChange(true);\n }\n\n state.current.isFocusWithin = true;\n onSyntheticFocus(e);\n }\n }, [onFocusWithin, onFocusWithinChange, onSyntheticFocus]);\n\n if (isDisabled) {\n return {\n focusWithinProps: {\n onFocus: null,\n onBlur: null\n }\n };\n }\n\n return {\n focusWithinProps: {\n onFocus,\n onBlur\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {DOMAttributes} from '@react-types/shared';\nimport {HoverEvents} from '@react-types/shared';\nimport {useEffect, useMemo, useRef, useState} from 'react';\n\nexport interface HoverProps extends HoverEvents {\n /** Whether the hover events should be disabled. */\n isDisabled?: boolean\n}\n\nexport interface HoverResult {\n /** Props to spread on the target element. */\n hoverProps: DOMAttributes,\n isHovered: boolean\n}\n\n// iOS fires onPointerEnter twice: once with pointerType=\"touch\" and again with pointerType=\"mouse\".\n// We want to ignore these emulated events so they do not trigger hover behavior.\n// See https://bugs.webkit.org/show_bug.cgi?id=214609.\nlet globalIgnoreEmulatedMouseEvents = false;\nlet hoverCount = 0;\n\nfunction setGlobalIgnoreEmulatedMouseEvents() {\n globalIgnoreEmulatedMouseEvents = true;\n\n // Clear globalIgnoreEmulatedMouseEvents after a short timeout. iOS fires onPointerEnter\n // with pointerType=\"mouse\" immediately after onPointerUp and before onFocus. On other\n // devices that don't have this quirk, we don't want to ignore a mouse hover sometime in\n // the distant future because a user previously touched the element.\n setTimeout(() => {\n globalIgnoreEmulatedMouseEvents = false;\n }, 50);\n}\n\nfunction handleGlobalPointerEvent(e) {\n if (e.pointerType === 'touch') {\n setGlobalIgnoreEmulatedMouseEvents();\n }\n}\n\nfunction setupGlobalTouchEvents() {\n if (typeof document === 'undefined') {\n return;\n }\n\n if (typeof PointerEvent !== 'undefined') {\n document.addEventListener('pointerup', handleGlobalPointerEvent);\n } else {\n document.addEventListener('touchend', setGlobalIgnoreEmulatedMouseEvents);\n }\n\n hoverCount++;\n return () => {\n hoverCount--;\n if (hoverCount > 0) {\n return;\n }\n\n if (typeof PointerEvent !== 'undefined') {\n document.removeEventListener('pointerup', handleGlobalPointerEvent);\n } else {\n document.removeEventListener('touchend', setGlobalIgnoreEmulatedMouseEvents);\n }\n };\n}\n\n/**\n * Handles pointer hover interactions for an element. Normalizes behavior\n * across browsers and platforms, and ignores emulated mouse events on touch devices.\n */\nexport function useHover(props: HoverProps): HoverResult {\n let {\n onHoverStart,\n onHoverChange,\n onHoverEnd,\n isDisabled\n } = props;\n\n let [isHovered, setHovered] = useState(false);\n let state = useRef({\n isHovered: false,\n ignoreEmulatedMouseEvents: false,\n pointerType: '',\n target: null\n }).current;\n\n useEffect(setupGlobalTouchEvents, []);\n\n let {hoverProps, triggerHoverEnd} = useMemo(() => {\n let triggerHoverStart = (event, pointerType) => {\n state.pointerType = pointerType;\n if (isDisabled || pointerType === 'touch' || state.isHovered || !event.currentTarget.contains(event.target)) {\n return;\n }\n\n state.isHovered = true;\n let target = event.currentTarget;\n state.target = target;\n\n if (onHoverStart) {\n onHoverStart({\n type: 'hoverstart',\n target,\n pointerType\n });\n }\n\n if (onHoverChange) {\n onHoverChange(true);\n }\n\n setHovered(true);\n };\n\n let triggerHoverEnd = (event, pointerType) => {\n state.pointerType = '';\n state.target = null;\n\n if (pointerType === 'touch' || !state.isHovered) {\n return;\n }\n\n state.isHovered = false;\n let target = event.currentTarget;\n if (onHoverEnd) {\n onHoverEnd({\n type: 'hoverend',\n target,\n pointerType\n });\n }\n\n if (onHoverChange) {\n onHoverChange(false);\n }\n\n setHovered(false);\n };\n\n let hoverProps: DOMAttributes = {};\n\n if (typeof PointerEvent !== 'undefined') {\n hoverProps.onPointerEnter = (e) => {\n if (globalIgnoreEmulatedMouseEvents && e.pointerType === 'mouse') {\n return;\n }\n\n triggerHoverStart(e, e.pointerType);\n };\n\n hoverProps.onPointerLeave = (e) => {\n if (!isDisabled && e.currentTarget.contains(e.target as Element)) {\n triggerHoverEnd(e, e.pointerType);\n }\n };\n } else {\n hoverProps.onTouchStart = () => {\n state.ignoreEmulatedMouseEvents = true;\n };\n\n hoverProps.onMouseEnter = (e) => {\n if (!state.ignoreEmulatedMouseEvents && !globalIgnoreEmulatedMouseEvents) {\n triggerHoverStart(e, 'mouse');\n }\n\n state.ignoreEmulatedMouseEvents = false;\n };\n\n hoverProps.onMouseLeave = (e) => {\n if (!isDisabled && e.currentTarget.contains(e.target as Element)) {\n triggerHoverEnd(e, 'mouse');\n }\n };\n }\n return {hoverProps, triggerHoverEnd};\n }, [onHoverStart, onHoverChange, onHoverEnd, isDisabled, state]);\n\n useEffect(() => {\n // Call the triggerHoverEnd as soon as isDisabled changes to true\n // Safe to call triggerHoverEnd, it will early return if we aren't currently hovering\n if (isDisabled) {\n triggerHoverEnd({currentTarget: state.target}, state.pointerType);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isDisabled]);\n\n return {\n hoverProps,\n isHovered\n };\n}\n\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {RefObject, SyntheticEvent, useEffect, useRef} from 'react';\n\nexport interface InteractOutsideProps {\n ref: RefObject,\n onInteractOutside?: (e: SyntheticEvent) => void,\n onInteractOutsideStart?: (e: SyntheticEvent) => void,\n /** Whether the interact outside events should be disabled. */\n isDisabled?: boolean\n}\n\n/**\n * Example, used in components like Dialogs and Popovers so they can close\n * when a user clicks outside them.\n */\nexport function useInteractOutside(props: InteractOutsideProps) {\n let {ref, onInteractOutside, isDisabled, onInteractOutsideStart} = props;\n let stateRef = useRef({\n isPointerDown: false,\n ignoreEmulatedMouseEvents: false,\n onInteractOutside,\n onInteractOutsideStart\n });\n let state = stateRef.current;\n state.onInteractOutside = onInteractOutside;\n state.onInteractOutsideStart = onInteractOutsideStart;\n\n useEffect(() => {\n if (isDisabled) {\n return;\n }\n\n let onPointerDown = (e) => {\n if (isValidEvent(e, ref) && state.onInteractOutside) {\n if (state.onInteractOutsideStart) {\n state.onInteractOutsideStart(e);\n }\n state.isPointerDown = true;\n }\n };\n\n // Use pointer events if available. Otherwise, fall back to mouse and touch events.\n if (typeof PointerEvent !== 'undefined') {\n let onPointerUp = (e) => {\n if (state.isPointerDown && state.onInteractOutside && isValidEvent(e, ref)) {\n state.isPointerDown = false;\n state.onInteractOutside(e);\n }\n };\n\n // changing these to capture phase fixed combobox\n document.addEventListener('pointerdown', onPointerDown, true);\n document.addEventListener('pointerup', onPointerUp, true);\n\n return () => {\n document.removeEventListener('pointerdown', onPointerDown, true);\n document.removeEventListener('pointerup', onPointerUp, true);\n };\n } else {\n let onMouseUp = (e) => {\n if (state.ignoreEmulatedMouseEvents) {\n state.ignoreEmulatedMouseEvents = false;\n } else if (state.isPointerDown && state.onInteractOutside && isValidEvent(e, ref)) {\n state.isPointerDown = false;\n state.onInteractOutside(e);\n }\n };\n\n let onTouchEnd = (e) => {\n state.ignoreEmulatedMouseEvents = true;\n if (state.onInteractOutside && state.isPointerDown && isValidEvent(e, ref)) {\n state.isPointerDown = false;\n state.onInteractOutside(e);\n }\n };\n\n document.addEventListener('mousedown', onPointerDown, true);\n document.addEventListener('mouseup', onMouseUp, true);\n document.addEventListener('touchstart', onPointerDown, true);\n document.addEventListener('touchend', onTouchEnd, true);\n\n return () => {\n document.removeEventListener('mousedown', onPointerDown, true);\n document.removeEventListener('mouseup', onMouseUp, true);\n document.removeEventListener('touchstart', onPointerDown, true);\n document.removeEventListener('touchend', onTouchEnd, true);\n };\n }\n }, [ref, state, isDisabled]);\n}\n\nfunction isValidEvent(event, ref) {\n if (event.button > 0) {\n return false;\n }\n\n // if the event target is no longer in the document\n if (event.target) {\n const ownerDocument = event.target.ownerDocument;\n if (!ownerDocument || !ownerDocument.documentElement.contains(event.target)) {\n return false;\n }\n }\n\n return ref.current && !ref.current.contains(event.target);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {BaseEvent} from '@react-types/shared';\nimport {SyntheticEvent} from 'react';\n\n/**\n * This function wraps a React event handler to make stopPropagation the default, and support continuePropagation instead.\n */\nexport function createEventHandler(handler: (e: BaseEvent) => void): (e: T) => void {\n if (!handler) {\n return;\n }\n\n let shouldStopPropagation = true;\n return (e: T) => {\n let event: BaseEvent = {\n ...e,\n preventDefault() {\n e.preventDefault();\n },\n isDefaultPrevented() {\n return e.isDefaultPrevented();\n },\n stopPropagation() {\n console.error('stopPropagation is now the default behavior for events in React Spectrum. You can use continuePropagation() to revert this behavior.');\n },\n continuePropagation() {\n shouldStopPropagation = false;\n }\n };\n\n handler(event);\n\n if (shouldStopPropagation) {\n e.stopPropagation();\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {createEventHandler} from './createEventHandler';\nimport {DOMAttributes, KeyboardEvents} from '@react-types/shared';\n\nexport interface KeyboardProps extends KeyboardEvents {\n /** Whether the keyboard events should be disabled. */\n isDisabled?: boolean\n}\n\nexport interface KeyboardResult {\n /** Props to spread onto the target element. */\n keyboardProps: DOMAttributes\n}\n\n/**\n * Handles keyboard interactions for a focusable element.\n */\nexport function useKeyboard(props: KeyboardProps): KeyboardResult {\n return {\n keyboardProps: props.isDisabled ? {} : {\n onKeyDown: createEventHandler(props.onKeyDown),\n onKeyUp: createEventHandler(props.onKeyUp)\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {disableTextSelection, restoreTextSelection} from './textSelection';\nimport {DOMAttributes, MoveEvents, PointerType} from '@react-types/shared';\nimport React, {useMemo, useRef} from 'react';\nimport {useGlobalListeners} from '@react-aria/utils';\n\nexport interface MoveResult {\n /** Props to spread on the target element. */\n moveProps: DOMAttributes\n}\n\ninterface EventBase {\n shiftKey: boolean,\n ctrlKey: boolean,\n metaKey: boolean,\n altKey: boolean\n}\n\n/**\n * Handles move interactions across mouse, touch, and keyboard, including dragging with\n * the mouse or touch, and using the arrow keys. Normalizes behavior across browsers and\n * platforms, and ignores emulated mouse events on touch devices.\n */\nexport function useMove(props: MoveEvents): MoveResult {\n let {onMoveStart, onMove, onMoveEnd} = props;\n\n let state = useRef<{\n didMove: boolean,\n lastPosition: {pageX: number, pageY: number} | null,\n id: number | null\n }>({didMove: false, lastPosition: null, id: null});\n\n let {addGlobalListener, removeGlobalListener} = useGlobalListeners();\n\n let moveProps = useMemo(() => {\n let moveProps: DOMAttributes = {};\n\n let start = () => {\n disableTextSelection();\n state.current.didMove = false;\n };\n let move = (originalEvent: EventBase, pointerType: PointerType, deltaX: number, deltaY: number) => {\n if (deltaX === 0 && deltaY === 0) {\n return;\n }\n\n if (!state.current.didMove) {\n state.current.didMove = true;\n onMoveStart?.({\n type: 'movestart',\n pointerType,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n onMove({\n type: 'move',\n pointerType,\n deltaX: deltaX,\n deltaY: deltaY,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n };\n let end = (originalEvent: EventBase, pointerType: PointerType) => {\n restoreTextSelection();\n if (state.current.didMove) {\n onMoveEnd?.({\n type: 'moveend',\n pointerType,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n };\n\n if (typeof PointerEvent === 'undefined') {\n let onMouseMove = (e: MouseEvent) => {\n if (e.button === 0) {\n move(e, 'mouse', e.pageX - state.current.lastPosition.pageX, e.pageY - state.current.lastPosition.pageY);\n state.current.lastPosition = {pageX: e.pageX, pageY: e.pageY};\n }\n };\n let onMouseUp = (e: MouseEvent) => {\n if (e.button === 0) {\n end(e, 'mouse');\n removeGlobalListener(window, 'mousemove', onMouseMove, false);\n removeGlobalListener(window, 'mouseup', onMouseUp, false);\n }\n };\n moveProps.onMouseDown = (e: React.MouseEvent) => {\n if (e.button === 0) {\n start();\n e.stopPropagation();\n e.preventDefault();\n state.current.lastPosition = {pageX: e.pageX, pageY: e.pageY};\n addGlobalListener(window, 'mousemove', onMouseMove, false);\n addGlobalListener(window, 'mouseup', onMouseUp, false);\n }\n };\n\n let onTouchMove = (e: TouchEvent) => {\n let touch = [...e.changedTouches].findIndex(({identifier}) => identifier === state.current.id);\n if (touch >= 0) {\n let {pageX, pageY} = e.changedTouches[touch];\n move(e, 'touch', pageX - state.current.lastPosition.pageX, pageY - state.current.lastPosition.pageY);\n state.current.lastPosition = {pageX, pageY};\n }\n };\n let onTouchEnd = (e: TouchEvent) => {\n let touch = [...e.changedTouches].findIndex(({identifier}) => identifier === state.current.id);\n if (touch >= 0) {\n end(e, 'touch');\n state.current.id = null;\n removeGlobalListener(window, 'touchmove', onTouchMove);\n removeGlobalListener(window, 'touchend', onTouchEnd);\n removeGlobalListener(window, 'touchcancel', onTouchEnd);\n }\n };\n moveProps.onTouchStart = (e: React.TouchEvent) => {\n if (e.changedTouches.length === 0 || state.current.id != null) {\n return;\n }\n\n let {pageX, pageY, identifier} = e.changedTouches[0];\n start();\n e.stopPropagation();\n e.preventDefault();\n state.current.lastPosition = {pageX, pageY};\n state.current.id = identifier;\n addGlobalListener(window, 'touchmove', onTouchMove, false);\n addGlobalListener(window, 'touchend', onTouchEnd, false);\n addGlobalListener(window, 'touchcancel', onTouchEnd, false);\n };\n } else {\n let onPointerMove = (e: PointerEvent) => {\n if (e.pointerId === state.current.id) {\n let pointerType = (e.pointerType || 'mouse') as PointerType;\n\n // Problems with PointerEvent#movementX/movementY:\n // 1. it is always 0 on macOS Safari.\n // 2. On Chrome Android, it's scaled by devicePixelRatio, but not on Chrome macOS\n move(e, pointerType, e.pageX - state.current.lastPosition.pageX, e.pageY - state.current.lastPosition.pageY);\n state.current.lastPosition = {pageX: e.pageX, pageY: e.pageY};\n }\n };\n\n let onPointerUp = (e: PointerEvent) => {\n if (e.pointerId === state.current.id) {\n let pointerType = (e.pointerType || 'mouse') as PointerType;\n end(e, pointerType);\n state.current.id = null;\n removeGlobalListener(window, 'pointermove', onPointerMove, false);\n removeGlobalListener(window, 'pointerup', onPointerUp, false);\n removeGlobalListener(window, 'pointercancel', onPointerUp, false);\n }\n };\n\n moveProps.onPointerDown = (e: React.PointerEvent) => {\n if (e.button === 0 && state.current.id == null) {\n start();\n e.stopPropagation();\n e.preventDefault();\n state.current.lastPosition = {pageX: e.pageX, pageY: e.pageY};\n state.current.id = e.pointerId;\n addGlobalListener(window, 'pointermove', onPointerMove, false);\n addGlobalListener(window, 'pointerup', onPointerUp, false);\n addGlobalListener(window, 'pointercancel', onPointerUp, false);\n }\n };\n }\n\n let triggerKeyboardMove = (e: EventBase, deltaX: number, deltaY: number) => {\n start();\n move(e, 'keyboard', deltaX, deltaY);\n end(e, 'keyboard');\n };\n\n moveProps.onKeyDown = (e) => {\n switch (e.key) {\n case 'Left':\n case 'ArrowLeft':\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(e, -1, 0);\n break;\n case 'Right':\n case 'ArrowRight':\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(e, 1, 0);\n break;\n case 'Up':\n case 'ArrowUp':\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(e, 0, -1);\n break;\n case 'Down':\n case 'ArrowDown':\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(e, 0, 1);\n break;\n }\n };\n\n return moveProps;\n }, [state, onMoveStart, onMove, onMoveEnd, addGlobalListener, removeGlobalListener]);\n\n return {moveProps};\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {RefObject, useCallback} from 'react';\nimport {ScrollEvents} from '@react-types/shared';\nimport {useEvent} from '@react-aria/utils';\n\nexport interface ScrollWheelProps extends ScrollEvents {\n /** Whether the scroll listener should be disabled. */\n isDisabled?: boolean\n}\n\n// scroll wheel needs to be added not passively so it's cancelable, small helper hook to remember that\nexport function useScrollWheel(props: ScrollWheelProps, ref: RefObject): void {\n let {onScroll, isDisabled} = props;\n let onScrollHandler = useCallback((e) => {\n // If the ctrlKey is pressed, this is a zoom event, do nothing.\n if (e.ctrlKey) {\n return;\n }\n\n // stop scrolling the page\n e.preventDefault();\n e.stopPropagation();\n\n if (onScroll) {\n onScroll({deltaX: e.deltaX, deltaY: e.deltaY});\n }\n }, [onScroll]);\n\n useEvent(ref, 'wheel', isDisabled ? null : onScrollHandler);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes, LongPressEvent} from '@react-types/shared';\nimport {mergeProps, useDescription, useGlobalListeners} from '@react-aria/utils';\nimport {usePress} from './usePress';\nimport {useRef} from 'react';\n\nexport interface LongPressProps {\n /** Whether long press events should be disabled. */\n isDisabled?: boolean,\n /** Handler that is called when a long press interaction starts. */\n onLongPressStart?: (e: LongPressEvent) => void,\n /**\n * Handler that is called when a long press interaction ends, either\n * over the target or when the pointer leaves the target.\n */\n onLongPressEnd?: (e: LongPressEvent) => void,\n /**\n * Handler that is called when the threshold time is met while\n * the press is over the target.\n */\n onLongPress?: (e: LongPressEvent) => void,\n /**\n * The amount of time in milliseconds to wait before triggering a long press.\n * @default 500ms\n */\n threshold?: number,\n /**\n * A description for assistive techology users indicating that a long press\n * action is available, e.g. \"Long press to open menu\".\n */\n accessibilityDescription?: string\n}\n\nexport interface LongPressResult {\n /** Props to spread on the target element. */\n longPressProps: DOMAttributes\n}\n\nconst DEFAULT_THRESHOLD = 500;\n\n/**\n * Handles long press interactions across mouse and touch devices. Supports a customizable time threshold,\n * accessibility description, and normalizes behavior across browsers and devices.\n */\nexport function useLongPress(props: LongPressProps): LongPressResult {\n let {\n isDisabled,\n onLongPressStart,\n onLongPressEnd,\n onLongPress,\n threshold = DEFAULT_THRESHOLD,\n accessibilityDescription\n } = props;\n\n const timeRef = useRef(null);\n let {addGlobalListener, removeGlobalListener} = useGlobalListeners();\n\n let {pressProps} = usePress({\n isDisabled,\n onPressStart(e) {\n if (e.pointerType === 'mouse' || e.pointerType === 'touch') {\n if (onLongPressStart) {\n onLongPressStart({\n ...e,\n type: 'longpressstart'\n });\n }\n\n timeRef.current = setTimeout(() => {\n // Prevent other usePress handlers from also handling this event.\n e.target.dispatchEvent(new PointerEvent('pointercancel', {bubbles: true}));\n if (onLongPress) {\n onLongPress({\n ...e,\n type: 'longpress'\n });\n }\n timeRef.current = null;\n }, threshold);\n\n // Prevent context menu, which may be opened on long press on touch devices\n if (e.pointerType === 'touch') {\n let onContextMenu = e => {\n e.preventDefault();\n };\n\n addGlobalListener(e.target, 'contextmenu', onContextMenu, {once: true});\n addGlobalListener(window, 'pointerup', () => {\n // If no contextmenu event is fired quickly after pointerup, remove the handler\n // so future context menu events outside a long press are not prevented.\n setTimeout(() => {\n removeGlobalListener(e.target, 'contextmenu', onContextMenu);\n }, 30);\n }, {once: true});\n }\n }\n },\n onPressEnd(e) {\n if (timeRef.current) {\n clearTimeout(timeRef.current);\n }\n\n if (onLongPressEnd && (e.pointerType === 'mouse' || e.pointerType === 'touch')) {\n onLongPressEnd({\n ...e,\n type: 'longpressend'\n });\n }\n }\n });\n\n let descriptionProps = useDescription(onLongPress && !isDisabled ? accessibilityDescription : null);\n\n return {\n longPressProps: mergeProps(pressProps, descriptionProps)\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// We must avoid a circular dependency with @react-aria/utils, and this useLayoutEffect is\n// guarded by a check that it only runs on the client side.\n// eslint-disable-next-line rulesdir/useLayoutEffectRule\nimport React, {ReactNode, useContext, useLayoutEffect, useMemo, useState} from 'react';\n\n// To support SSR, the auto incrementing id counter is stored in a context. This allows\n// it to be reset on every request to ensure the client and server are consistent.\n// There is also a prefix string that is used to support async loading components\n// Each async boundary must be wrapped in an SSR provider, which appends to the prefix\n// and resets the current id counter. This ensures that async loaded components have\n// consistent ids regardless of the loading order.\ninterface SSRContextValue {\n prefix: string,\n current: number\n}\n\n// Default context value to use in case there is no SSRProvider. This is fine for\n// client-only apps. In order to support multiple copies of React Aria potentially\n// being on the page at once, the prefix is set to a random number. SSRProvider\n// will reset this to zero for consistency between server and client, so in the\n// SSR case multiple copies of React Aria is not supported.\nconst defaultContext: SSRContextValue = {\n prefix: String(Math.round(Math.random() * 10000000000)),\n current: 0\n};\n\nconst SSRContext = React.createContext(defaultContext);\n\nexport interface SSRProviderProps {\n /** Your application here. */\n children: ReactNode\n}\n\n/**\n * When using SSR with React Aria, applications must be wrapped in an SSRProvider.\n * This ensures that auto generated ids are consistent between the client and server.\n */\nexport function SSRProvider(props: SSRProviderProps): JSX.Element {\n let cur = useContext(SSRContext);\n let value: SSRContextValue = useMemo(() => ({\n // If this is the first SSRProvider, start with an empty string prefix, otherwise\n // append and increment the counter.\n prefix: cur === defaultContext ? '' : `${cur.prefix}-${++cur.current}`,\n current: 0\n }), [cur]);\n\n return (\n \n {props.children}\n \n );\n}\n\nlet canUseDOM = Boolean(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n);\n\n/** @private */\nexport function useSSRSafeId(defaultId?: string): string {\n let ctx = useContext(SSRContext);\n\n // If we are rendering in a non-DOM environment, and there's no SSRProvider,\n // provide a warning to hint to the developer to add one.\n if (ctx === defaultContext && !canUseDOM) {\n console.warn('When server rendering, you must wrap your application in an to ensure consistent ids are generated between the client and server.');\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return useMemo(() => defaultId || `react-aria${ctx.prefix}-${++ctx.current}`, [defaultId]);\n}\n\n/**\n * Returns whether the component is currently being server side rendered or\n * hydrated on the client. Can be used to delay browser-specific rendering\n * until after hydration.\n */\nexport function useIsSSR(): boolean {\n let cur = useContext(SSRContext);\n let isInSSRContext = cur !== defaultContext;\n let [isSSR, setIsSSR] = useState(isInSSRContext);\n\n // If on the client, and the component was initially server rendered,\n // then schedule a layout effect to update the component after hydration.\n if (typeof window !== 'undefined' && isInSSRContext) {\n // This if statement technically breaks the rules of hooks, but is safe\n // because the condition never changes after mounting.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useLayoutEffect(() => {\n setIsSSR(false);\n }, []);\n }\n\n return isSSR;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {useCallback, useRef, useState} from 'react';\n\nexport function useControlledState(\n value: T,\n defaultValue: T,\n onChange: (value: T, ...args: any[]) => void\n): [T, (value: T, ...args: any[]) => void] {\n let [stateValue, setStateValue] = useState(value || defaultValue);\n let ref = useRef(value !== undefined);\n let wasControlled = ref.current;\n let isControlled = value !== undefined;\n // Internal state reference for useCallback\n let stateRef = useRef(stateValue);\n if (wasControlled !== isControlled) {\n console.warn(`WARN: A component changed from ${wasControlled ? 'controlled' : 'uncontrolled'} to ${isControlled ? 'controlled' : 'uncontrolled'}.`);\n }\n\n ref.current = isControlled;\n\n let setValue = useCallback((value, ...args) => {\n let onChangeCaller = (value, ...onChangeArgs) => {\n if (onChange) {\n if (!Object.is(stateRef.current, value)) {\n onChange(value, ...onChangeArgs);\n }\n }\n if (!isControlled) {\n stateRef.current = value;\n }\n };\n\n if (typeof value === 'function') {\n console.warn('We can not support a function callback. See Github Issues for details https://github.com/adobe/react-spectrum/issues/2320');\n // this supports functional updates https://reactjs.org/docs/hooks-reference.html#functional-updates\n // when someone using useControlledState calls setControlledState(myFunc)\n // this will call our useState setState with a function as well which invokes myFunc and calls onChange with the value from myFunc\n // if we're in an uncontrolled state, then we also return the value of myFunc which to setState looks as though it was just called with myFunc from the beginning\n // otherwise we just return the controlled value, which won't cause a rerender because React knows to bail out when the value is the same\n let updateFunction = (oldValue, ...functionArgs) => {\n let interceptedValue = value(isControlled ? stateRef.current : oldValue, ...functionArgs);\n onChangeCaller(interceptedValue, ...args);\n if (!isControlled) {\n return interceptedValue;\n }\n return oldValue;\n };\n setStateValue(updateFunction);\n } else {\n if (!isControlled) {\n setStateValue(value);\n }\n onChangeCaller(value, ...args);\n }\n }, [isControlled, onChange]);\n\n // If a controlled component's value prop changes, we need to update stateRef\n if (isControlled) {\n stateRef.current = value;\n } else {\n value = stateValue;\n }\n\n return [value, setValue];\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n/**\n * Takes a value and forces it to the closest min/max if it's outside. Also forces it to the closest valid step.\n */\nexport function clamp(value: number, min: number = -Infinity, max: number = Infinity): number {\n let newValue = Math.min(Math.max(value, min), max);\n return newValue;\n}\n\nexport function snapValueToStep(value: number, min: number, max: number, step: number): number {\n let remainder = ((value - (isNaN(min) ? 0 : min)) % step);\n let snappedValue = Math.abs(remainder) * 2 >= step\n ? value + Math.sign(remainder) * (step - Math.abs(remainder))\n : value - remainder;\n\n if (!isNaN(min)) {\n if (snappedValue < min) {\n snappedValue = min;\n } else if (!isNaN(max) && snappedValue > max) {\n snappedValue = min + Math.floor((max - min) / step) * step;\n }\n } else if (!isNaN(max) && snappedValue > max) {\n snappedValue = Math.floor(max / step) * step;\n }\n\n // correct floating point behavior by rounding to step precision\n let string = step.toString();\n let index = string.indexOf('.');\n let precision = index >= 0 ? string.length - index : 0;\n\n if (precision > 0) {\n let pow = Math.pow(10, precision);\n snappedValue = Math.round(snappedValue * pow) / pow;\n }\n\n return snappedValue;\n}\n\n/* Takes a value and rounds off to the number of digits. */\nexport function toFixedNumber(value: number, digits: number, base: number = 10): number {\n const pow = Math.pow(base, digits);\n\n return Math.round(value * pow) / pow;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport React from 'react';\n\n// During SSR, React emits a warning when calling useLayoutEffect.\n// Since neither useLayoutEffect nor useEffect run on the server,\n// we can suppress this by replace it with a noop on the server.\nexport const useLayoutEffect = typeof window !== 'undefined'\n ? React.useLayoutEffect\n : () => {};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {useCallback, useEffect, useRef, useState} from 'react';\nimport {useLayoutEffect} from './useLayoutEffect';\nimport {useSSRSafeId} from '@react-aria/ssr';\nimport {useValueEffect} from './';\n\nlet idsUpdaterMap: Map void> = new Map();\n\n/**\n * If a default is not provided, generate an id.\n * @param defaultId - Default component id.\n */\nexport function useId(defaultId?: string): string {\n let [value, setValue] = useState(defaultId);\n let nextId = useRef(null);\n\n let res = useSSRSafeId(value);\n\n let updateValue = useCallback((val) => {\n nextId.current = val;\n }, []);\n\n idsUpdaterMap.set(res, updateValue);\n\n useLayoutEffect(() => {\n let r = res;\n return () => {\n idsUpdaterMap.delete(r);\n };\n }, [res]);\n\n // This cannot cause an infinite loop because the ref is updated first.\n // eslint-disable-next-line\n useEffect(() => {\n let newId = nextId.current;\n if (newId) {\n nextId.current = null;\n setValue(newId);\n }\n });\n\n return res;\n}\n\n/**\n * Merges two ids.\n * Different ids will trigger a side-effect and re-render components hooked up with `useId`.\n */\nexport function mergeIds(idA: string, idB: string): string {\n if (idA === idB) {\n return idA;\n }\n\n let setIdA = idsUpdaterMap.get(idA);\n if (setIdA) {\n setIdA(idB);\n return idB;\n }\n\n let setIdB = idsUpdaterMap.get(idB);\n if (setIdB) {\n setIdB(idA);\n return idA;\n }\n\n return idB;\n}\n\n/**\n * Used to generate an id, and after render, check if that id is rendered so we know\n * if we can use it in places such as labelledby.\n * @param depArray - When to recalculate if the id is in the DOM.\n */\nexport function useSlotId(depArray: ReadonlyArray = []): string {\n let id = useId();\n let [resolvedId, setResolvedId] = useValueEffect(id);\n let updateId = useCallback(() => {\n setResolvedId(function *() {\n yield id;\n\n yield document.getElementById(id) ? id : undefined;\n });\n }, [id, setResolvedId]);\n\n useLayoutEffect(updateId, [id, updateId, ...depArray]);\n\n return resolvedId;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n/**\n * Calls all functions in the order they were chained with the same arguments.\n */\nexport function chain(...callbacks: any[]): (...args: any[]) => void {\n return (...args: any[]) => {\n for (let callback of callbacks) {\n if (typeof callback === 'function') {\n callback(...args);\n }\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {chain} from './chain';\nimport clsx from 'clsx';\nimport {mergeIds} from './useId';\n\ninterface Props {\n [key: string]: any\n}\n\n// taken from: https://stackoverflow.com/questions/51603250/typescript-3-parameter-list-intersection-type/51604379#51604379\ntype TupleTypes = { [P in keyof T]: T[P] } extends { [key: number]: infer V } ? V : never;\n// eslint-disable-next-line no-undef, @typescript-eslint/no-unused-vars\ntype UnionToIntersection = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;\n\n/**\n * Merges multiple props objects together. Event handlers are chained,\n * classNames are combined, and ids are deduplicated - different ids\n * will trigger a side-effect and re-render components hooked up with `useId`.\n * For all other props, the last prop object overrides all previous ones.\n * @param args - Multiple sets of props to merge together.\n */\nexport function mergeProps(...args: T): UnionToIntersection> {\n // Start with a base clone of the first argument. This is a lot faster than starting\n // with an empty object and adding properties as we go.\n let result: Props = {...args[0]};\n for (let i = 1; i < args.length; i++) {\n let props = args[i];\n for (let key in props) {\n let a = result[key];\n let b = props[key];\n\n // Chain events\n if (\n typeof a === 'function' &&\n typeof b === 'function' &&\n // This is a lot faster than a regex.\n key[0] === 'o' &&\n key[1] === 'n' &&\n key.charCodeAt(2) >= /* 'A' */ 65 &&\n key.charCodeAt(2) <= /* 'Z' */ 90\n ) {\n result[key] = chain(a, b);\n\n // Merge classnames, sometimes classNames are empty string which eval to false, so we just need to do a type check\n } else if (\n (key === 'className' || key === 'UNSAFE_className') &&\n typeof a === 'string' &&\n typeof b === 'string'\n ) {\n result[key] = clsx(a, b);\n } else if (key === 'id' && a && b) {\n result.id = mergeIds(a, b);\n // Override others\n } else {\n result[key] = b !== undefined ? b : a;\n }\n }\n }\n\n return result as UnionToIntersection>;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ForwardedRef} from 'react';\n\n/**\n * Merges multiple refs into one. Works with either callback or object refs.\n */\nexport function mergeRefs(...refs: ForwardedRef[]): ForwardedRef {\n return (value: T) => {\n for (let ref of refs) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref != null) {\n ref.current = value;\n }\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMProps} from '@react-types/shared';\n\nconst DOMPropNames = new Set([\n 'id'\n]);\n\nconst labelablePropNames = new Set([\n 'aria-label',\n 'aria-labelledby',\n 'aria-describedby',\n 'aria-details'\n]);\n\ninterface Options {\n /**\n * If labelling associated aria properties should be included in the filter.\n */\n labelable?: boolean,\n /**\n * A Set of other property names that should be included in the filter.\n */\n propNames?: Set\n}\n\nconst propRe = /^(data-.*)$/;\n\n/**\n * Filters out all props that aren't valid DOM props or defined via override prop obj.\n * @param props - The component props to be filtered.\n * @param opts - Props to override.\n */\nexport function filterDOMProps(props: DOMProps & AriaLabelingProps, opts: Options = {}): DOMProps & AriaLabelingProps {\n let {labelable, propNames} = opts;\n let filteredProps = {};\n\n for (const prop in props) {\n if (\n Object.prototype.hasOwnProperty.call(props, prop) && (\n DOMPropNames.has(prop) ||\n (labelable && labelablePropNames.has(prop)) ||\n propNames?.has(prop) ||\n propRe.test(prop)\n )\n ) {\n filteredProps[prop] = props[prop];\n }\n }\n\n return filteredProps;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusableElement} from '@react-types/shared';\n\n// This is a polyfill for element.focus({preventScroll: true});\n// Currently necessary for Safari and old Edge:\n// https://caniuse.com/#feat=mdn-api_htmlelement_focus_preventscroll_option\n// See https://bugs.webkit.org/show_bug.cgi?id=178583\n//\n\n// Original licensing for the following methods can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/calvellido/focus-options-polyfill\n\ninterface ScrollableElement {\n element: HTMLElement,\n scrollTop: number,\n scrollLeft: number\n}\n\nexport function focusWithoutScrolling(element: FocusableElement) {\n if (supportsPreventScroll()) {\n element.focus({preventScroll: true});\n } else {\n let scrollableElements = getScrollableElements(element);\n element.focus();\n restoreScrollPosition(scrollableElements);\n }\n}\n\nlet supportsPreventScrollCached: boolean = null;\nfunction supportsPreventScroll() {\n if (supportsPreventScrollCached == null) {\n supportsPreventScrollCached = false;\n try {\n var focusElem = document.createElement('div');\n focusElem.focus({\n get preventScroll() {\n supportsPreventScrollCached = true;\n return true;\n }\n });\n } catch (e) {\n // Ignore\n }\n }\n\n return supportsPreventScrollCached;\n}\n\nfunction getScrollableElements(element: FocusableElement): ScrollableElement[] {\n var parent = element.parentNode;\n var scrollableElements: ScrollableElement[] = [];\n var rootScrollingElement = document.scrollingElement || document.documentElement;\n\n while (parent instanceof HTMLElement && parent !== rootScrollingElement) {\n if (\n parent.offsetHeight < parent.scrollHeight ||\n parent.offsetWidth < parent.scrollWidth\n ) {\n scrollableElements.push({\n element: parent,\n scrollTop: parent.scrollTop,\n scrollLeft: parent.scrollLeft\n });\n }\n parent = parent.parentNode;\n }\n\n if (rootScrollingElement instanceof HTMLElement) {\n scrollableElements.push({\n element: rootScrollingElement,\n scrollTop: rootScrollingElement.scrollTop,\n scrollLeft: rootScrollingElement.scrollLeft\n });\n }\n\n return scrollableElements;\n}\n\nfunction restoreScrollPosition(scrollableElements: ScrollableElement[]) {\n for (let {element, scrollTop, scrollLeft} of scrollableElements) {\n element.scrollTop = scrollTop;\n element.scrollLeft = scrollLeft;\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport function getOffset(element, reverse, orientation = 'horizontal') {\n let rect = element.getBoundingClientRect();\n if (reverse) {\n return orientation === 'horizontal' ? rect.right : rect.bottom;\n }\n return orientation === 'horizontal' ? rect.left : rect.top;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// We store a global list of elements that are currently transitioning,\n// mapped to a set of CSS properties that are transitioning for that element.\n// This is necessary rather than a simple count of transitions because of browser\n// bugs, e.g. Chrome sometimes fires both transitionend and transitioncancel rather\n// than one or the other. So we need to track what's actually transitioning so that\n// we can ignore these duplicate events.\nlet transitionsByElement = new Map>();\n\n// A list of callbacks to call once there are no transitioning elements.\nlet transitionCallbacks = new Set<() => void>();\n\nfunction setupGlobalEvents() {\n if (typeof window === 'undefined') {\n return;\n }\n\n let onTransitionStart = (e: TransitionEvent) => {\n // Add the transitioning property to the list for this element.\n let transitions = transitionsByElement.get(e.target);\n if (!transitions) {\n transitions = new Set();\n transitionsByElement.set(e.target, transitions);\n\n // The transitioncancel event must be registered on the element itself, rather than as a global\n // event. This enables us to handle when the node is deleted from the document while it is transitioning.\n // In that case, the cancel event would have nowhere to bubble to so we need to handle it directly.\n e.target.addEventListener('transitioncancel', onTransitionEnd);\n }\n\n transitions.add(e.propertyName);\n };\n\n let onTransitionEnd = (e: TransitionEvent) => {\n // Remove property from list of transitioning properties.\n let properties = transitionsByElement.get(e.target);\n if (!properties) {\n return;\n }\n\n properties.delete(e.propertyName);\n\n // If empty, remove transitioncancel event, and remove the element from the list of transitioning elements.\n if (properties.size === 0) {\n e.target.removeEventListener('transitioncancel', onTransitionEnd);\n transitionsByElement.delete(e.target);\n }\n\n // If no transitioning elements, call all of the queued callbacks.\n if (transitionsByElement.size === 0) {\n for (let cb of transitionCallbacks) {\n cb();\n }\n\n transitionCallbacks.clear();\n }\n };\n\n document.body.addEventListener('transitionrun', onTransitionStart);\n document.body.addEventListener('transitionend', onTransitionEnd);\n}\n\nif (typeof document !== 'undefined') {\n if (document.readyState !== 'loading') {\n setupGlobalEvents();\n } else {\n document.addEventListener('DOMContentLoaded', setupGlobalEvents);\n }\n}\n\nexport function runAfterTransition(fn: () => void) {\n // Wait one frame to see if an animation starts, e.g. a transition on mount.\n requestAnimationFrame(() => {\n // If no transitions are running, call the function immediately.\n // Otherwise, add it to a list of callbacks to run at the end of the animation.\n if (transitionsByElement.size === 0) {\n fn();\n } else {\n transitionCallbacks.add(fn);\n }\n });\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {getOffset} from './getOffset';\nimport {Orientation} from '@react-types/shared';\nimport React, {HTMLAttributes, MutableRefObject, useRef} from 'react';\n\ninterface UseDrag1DProps {\n containerRef: MutableRefObject,\n reverse?: boolean,\n orientation?: Orientation,\n onHover?: (hovered: boolean) => void,\n onDrag?: (dragging: boolean) => void,\n onPositionChange?: (position: number) => void,\n onIncrement?: () => void,\n onDecrement?: () => void,\n onIncrementToMax?: () => void,\n onDecrementToMin?: () => void,\n onCollapseToggle?: () => void\n}\n\n// Keep track of elements that we are currently handling dragging for via useDrag1D.\n// If there's an ancestor and a descendant both using useDrag1D(), and the user starts\n// dragging the descendant, we don't want useDrag1D events to fire for the ancestor.\nconst draggingElements: HTMLElement[] = [];\n\n// created for splitview, this should be reusable for things like sliders/dials\n// It also handles keyboard events on the target allowing for increment/decrement by a given stepsize as well as minifying/maximizing and toggling between minified and previous size\n// It can also take a 'reverse' param to say if we should measure from the right/bottom instead of the top/left\n// It can also handle either a vertical or horizontal movement, but not both at the same time\n\nexport function useDrag1D(props: UseDrag1DProps): HTMLAttributes {\n console.warn('useDrag1D is deprecated, please use `useMove` instead https://react-spectrum.adobe.com/react-aria/useMove.html');\n let {containerRef, reverse, orientation, onHover, onDrag, onPositionChange, onIncrement, onDecrement, onIncrementToMax, onDecrementToMin, onCollapseToggle} = props;\n let getPosition = (e) => orientation === 'horizontal' ? e.clientX : e.clientY;\n let getNextOffset = (e: MouseEvent) => {\n let containerOffset = getOffset(containerRef.current, reverse, orientation);\n let mouseOffset = getPosition(e);\n let nextOffset = reverse ? containerOffset - mouseOffset : mouseOffset - containerOffset;\n return nextOffset;\n };\n let dragging = useRef(false);\n let prevPosition = useRef(0);\n\n // Keep track of the current handlers in a ref so that the events can access them.\n let handlers = useRef({onPositionChange, onDrag});\n handlers.current.onDrag = onDrag;\n handlers.current.onPositionChange = onPositionChange;\n\n let onMouseDragged = (e: MouseEvent) => {\n e.preventDefault();\n let nextOffset = getNextOffset(e);\n if (!dragging.current) {\n dragging.current = true;\n if (handlers.current.onDrag) {\n handlers.current.onDrag(true);\n }\n if (handlers.current.onPositionChange) {\n handlers.current.onPositionChange(nextOffset);\n }\n }\n if (prevPosition.current === nextOffset) {\n return;\n }\n prevPosition.current = nextOffset;\n if (onPositionChange) {\n onPositionChange(nextOffset);\n }\n };\n\n let onMouseUp = (e: MouseEvent) => {\n const target = e.target as HTMLElement;\n dragging.current = false;\n let nextOffset = getNextOffset(e);\n if (handlers.current.onDrag) {\n handlers.current.onDrag(false);\n }\n if (handlers.current.onPositionChange) {\n handlers.current.onPositionChange(nextOffset);\n }\n\n draggingElements.splice(draggingElements.indexOf(target), 1);\n window.removeEventListener('mouseup', onMouseUp, false);\n window.removeEventListener('mousemove', onMouseDragged, false);\n };\n\n let onMouseDown = (e: React.MouseEvent) => {\n const target = e.currentTarget;\n // If we're already handling dragging on a descendant with useDrag1D, then\n // we don't want to handle the drag motion on this target as well.\n if (draggingElements.some(elt => target.contains(elt))) {\n return;\n }\n draggingElements.push(target);\n window.addEventListener('mousemove', onMouseDragged, false);\n window.addEventListener('mouseup', onMouseUp, false);\n };\n\n let onMouseEnter = () => {\n if (onHover) {\n onHover(true);\n }\n };\n\n let onMouseOut = () => {\n if (onHover) {\n onHover(false);\n }\n };\n\n let onKeyDown = (e) => {\n switch (e.key) {\n case 'Left':\n case 'ArrowLeft':\n if (orientation === 'horizontal') {\n e.preventDefault();\n if (onDecrement && !reverse) {\n onDecrement();\n } else if (onIncrement && reverse) {\n onIncrement();\n }\n }\n break;\n case 'Up':\n case 'ArrowUp':\n if (orientation === 'vertical') {\n e.preventDefault();\n if (onDecrement && !reverse) {\n onDecrement();\n } else if (onIncrement && reverse) {\n onIncrement();\n }\n }\n break;\n case 'Right':\n case 'ArrowRight':\n if (orientation === 'horizontal') {\n e.preventDefault();\n if (onIncrement && !reverse) {\n onIncrement();\n } else if (onDecrement && reverse) {\n onDecrement();\n }\n }\n break;\n case 'Down':\n case 'ArrowDown':\n if (orientation === 'vertical') {\n e.preventDefault();\n if (onIncrement && !reverse) {\n onIncrement();\n } else if (onDecrement && reverse) {\n onDecrement();\n }\n }\n break;\n case 'Home':\n e.preventDefault();\n if (onDecrementToMin) {\n onDecrementToMin();\n }\n break;\n case 'End':\n e.preventDefault();\n if (onIncrementToMax) {\n onIncrementToMax();\n }\n break;\n case 'Enter':\n e.preventDefault();\n if (onCollapseToggle) {\n onCollapseToggle();\n }\n break;\n }\n };\n\n return {onMouseDown, onMouseEnter, onMouseOut, onKeyDown};\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {useCallback, useEffect, useRef} from 'react';\n\ninterface GlobalListeners {\n addGlobalListener(el: EventTarget, type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void,\n addGlobalListener(el: EventTarget, type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void,\n removeGlobalListener(el: EventTarget, type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void,\n removeGlobalListener(el: EventTarget, type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void,\n removeAllGlobalListeners(): void\n}\n\nexport function useGlobalListeners(): GlobalListeners {\n let globalListeners = useRef(new Map());\n let addGlobalListener = useCallback((eventTarget, type, listener, options) => {\n // Make sure we remove the listener after it is called with the `once` option.\n let fn = options?.once ? (...args) => {\n globalListeners.current.delete(listener);\n listener(...args);\n } : listener;\n globalListeners.current.set(listener, {type, eventTarget, fn, options});\n eventTarget.addEventListener(type, listener, options);\n }, []);\n let removeGlobalListener = useCallback((eventTarget, type, listener, options) => {\n let fn = globalListeners.current.get(listener)?.fn || listener;\n eventTarget.removeEventListener(type, fn, options);\n globalListeners.current.delete(listener);\n }, []);\n let removeAllGlobalListeners = useCallback(() => {\n globalListeners.current.forEach((value, key) => {\n removeGlobalListener(value.eventTarget, value.type, key, value.options);\n });\n }, [removeGlobalListener]);\n\n // eslint-disable-next-line arrow-body-style\n useEffect(() => {\n return removeAllGlobalListeners;\n }, [removeAllGlobalListeners]);\n\n return {addGlobalListener, removeGlobalListener, removeAllGlobalListeners};\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMProps} from '@react-types/shared';\nimport {useId} from './useId';\n\n/**\n * Merges aria-label and aria-labelledby into aria-labelledby when both exist.\n * @param props - Aria label props.\n * @param defaultLabel - Default value for aria-label when not present.\n */\nexport function useLabels(props: DOMProps & AriaLabelingProps, defaultLabel?: string): DOMProps & AriaLabelingProps {\n let {\n id,\n 'aria-label': label,\n 'aria-labelledby': labelledBy\n } = props;\n\n // If there is both an aria-label and aria-labelledby,\n // combine them by pointing to the element itself.\n id = useId(id);\n if (labelledBy && label) {\n let ids = new Set([...labelledBy.trim().split(/\\s+/), id]);\n labelledBy = [...ids].join(' ');\n } else if (labelledBy) {\n labelledBy = labelledBy.trim().split(/\\s+/).join(' ');\n }\n\n // If no labels are provided, use the default\n if (!label && !labelledBy && defaultLabel) {\n label = defaultLabel;\n }\n\n return {\n id,\n 'aria-label': label,\n 'aria-labelledby': labelledBy\n };\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {MutableRefObject, useRef} from 'react';\nimport {useLayoutEffect} from './';\n\n/**\n * Offers an object ref for a given callback ref or an object ref. Especially\n * helfpul when passing forwarded refs (created using `React.forwardRef`) to\n * React Aria Hooks.\n *\n * @param forwardedRef The original ref intended to be used.\n * @returns An object ref that updates the given ref.\n * @see https://reactjs.org/docs/forwarding-refs.html\n */\nexport function useObjectRef(forwardedRef?: ((instance: T | null) => void) | MutableRefObject | null): MutableRefObject {\n const objRef = useRef();\n\n /**\n * We're using `useLayoutEffect` here instead of `useEffect` because we want\n * to make sure that the `ref` value is up to date before other places in the\n * the execution cycle try to read it.\n */\n useLayoutEffect(() => {\n if (!forwardedRef) {\n return;\n }\n\n if (typeof forwardedRef === 'function') {\n forwardedRef(objRef.current);\n } else {\n forwardedRef.current = objRef.current;\n }\n }, [forwardedRef]);\n\n return objRef;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {EffectCallback, useEffect, useRef} from 'react';\n\n// Like useEffect, but only called for updates after the initial render.\nexport function useUpdateEffect(effect: EffectCallback, dependencies: any[]) {\n const isInitialMount = useRef(true);\n\n useEffect(() => {\n if (isInitialMount.current) {\n isInitialMount.current = false;\n } else {\n effect();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, dependencies);\n}\n","import {RefObject, useEffect} from 'react';\n\nfunction hasResizeObserver() {\n return typeof window.ResizeObserver !== 'undefined';\n}\n\ntype useResizeObserverOptionsType = {\n ref: RefObject | undefined,\n onResize: () => void\n}\n\nexport function useResizeObserver(options: useResizeObserverOptionsType) {\n const {ref, onResize} = options;\n\n useEffect(() => {\n let element = ref?.current;\n if (!element) {\n return;\n }\n\n if (!hasResizeObserver()) {\n window.addEventListener('resize', onResize, false);\n return () => {\n window.removeEventListener('resize', onResize, false);\n };\n } else {\n\n const resizeObserverInstance = new window.ResizeObserver((entries) => {\n if (!entries.length) {\n return;\n }\n\n onResize();\n });\n resizeObserverInstance.observe(element);\n\n return () => {\n if (element) {\n resizeObserverInstance.unobserve(element);\n }\n };\n }\n\n }, [onResize, ref]);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {MutableRefObject, RefObject} from 'react';\nimport {useLayoutEffect} from './';\n\ninterface ContextValue {\n ref?: MutableRefObject\n}\n\n// Syncs ref from context with ref passed to hook\nexport function useSyncRef(context: ContextValue, ref: RefObject) {\n useLayoutEffect(() => {\n if (context && context.ref && ref) {\n context.ref.current = ref.current;\n return () => {\n context.ref.current = null;\n };\n }\n }, [context, ref]);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport function getScrollParent(node: Element): Element {\n while (node && !isScrollable(node)) {\n node = node.parentElement;\n }\n\n return node || document.scrollingElement || document.documentElement;\n}\n\nfunction isScrollable(node: Element): boolean {\n let style = window.getComputedStyle(node);\n return /(auto|scroll)/.test(style.overflow + style.overflowX + style.overflowY);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {useEffect, useState} from 'react';\n\ninterface ViewportSize {\n width: number,\n height: number\n}\n\n// @ts-ignore\nlet visualViewport = typeof window !== 'undefined' && window.visualViewport;\n\nexport function useViewportSize(): ViewportSize {\n let [size, setSize] = useState(() => getViewportSize());\n\n useEffect(() => {\n // Use visualViewport api to track available height even on iOS virtual keyboard opening\n let onResize = () => {\n setSize(size => {\n let newSize = getViewportSize();\n if (newSize.width === size.width && newSize.height === size.height) {\n return size;\n }\n return newSize;\n });\n };\n\n if (!visualViewport) {\n window.addEventListener('resize', onResize);\n } else {\n visualViewport.addEventListener('resize', onResize);\n }\n\n return () => {\n if (!visualViewport) {\n window.removeEventListener('resize', onResize);\n } else {\n visualViewport.removeEventListener('resize', onResize);\n }\n };\n }, []);\n\n return size;\n}\n\nfunction getViewportSize(): ViewportSize {\n return {\n width: visualViewport?.width || window.innerWidth,\n height: visualViewport?.height || window.innerHeight\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps} from '@react-types/shared';\nimport {useLayoutEffect} from './useLayoutEffect';\nimport {useState} from 'react';\n\nlet descriptionId = 0;\nconst descriptionNodes = new Map();\n\nexport function useDescription(description: string): AriaLabelingProps {\n let [id, setId] = useState(undefined);\n\n useLayoutEffect(() => {\n if (!description) {\n return;\n }\n\n let desc = descriptionNodes.get(description);\n if (!desc) {\n let id = `react-aria-description-${descriptionId++}`;\n setId(id);\n\n let node = document.createElement('div');\n node.id = id;\n node.style.display = 'none';\n node.textContent = description;\n document.body.appendChild(node);\n desc = {refCount: 0, element: node};\n descriptionNodes.set(description, desc);\n } else {\n setId(desc.element.id);\n }\n\n desc.refCount++;\n return () => {\n if (--desc.refCount === 0) {\n desc.element.remove();\n descriptionNodes.delete(description);\n }\n };\n }, [description]);\n\n return {\n 'aria-describedby': description ? id : undefined\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nfunction testUserAgent(re: RegExp) {\n if (typeof window === 'undefined' || window.navigator == null) {\n return false;\n }\n return (\n window.navigator['userAgentData']?.brands.some((brand: {brand: string, version: string}) => re.test(brand.brand))\n ) ||\n re.test(window.navigator.userAgent);\n}\n\nfunction testPlatform(re: RegExp) {\n return typeof window !== 'undefined' && window.navigator != null\n ? re.test(window.navigator['userAgentData']?.platform || window.navigator.platform)\n : false;\n}\n\nexport function isMac() {\n return testPlatform(/^Mac/i);\n}\n\nexport function isIPhone() {\n return testPlatform(/^iPhone/i);\n}\n\nexport function isIPad() {\n return testPlatform(/^iPad/i) ||\n // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.\n (isMac() && navigator.maxTouchPoints > 1);\n}\n\nexport function isIOS() {\n return isIPhone() || isIPad();\n}\n\nexport function isAppleDevice() {\n return isMac() || isIOS();\n}\n\nexport function isWebKit() {\n return testUserAgent(/AppleWebKit/i) && !isChrome();\n}\n\nexport function isChrome() {\n return testUserAgent(/Chrome/i);\n}\n\nexport function isAndroid() {\n return testUserAgent(/Android/i);\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {RefObject, useEffect, useRef} from 'react';\n\nexport function useEvent(\n ref: RefObject,\n event: K,\n handler: (this: Document, ev: GlobalEventHandlersEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions\n) {\n let handlerRef = useRef(handler);\n handlerRef.current = handler;\n\n let isDisabled = handler == null;\n\n useEffect(() => {\n if (isDisabled) {\n return;\n }\n\n let element = ref.current;\n let handler = (e: GlobalEventHandlersEventMap[K]) => handlerRef.current.call(this, e);\n\n element.addEventListener(event, handler, options);\n return () => {\n element.removeEventListener(event, handler, options);\n };\n }, [ref, event, options, isDisabled]);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Dispatch, useCallback, useRef, useState} from 'react';\nimport {useLayoutEffect} from './';\n\ntype SetValueAction = (prev: S) => Generator;\n\n// This hook works like `useState`, but when setting the value, you pass a generator function\n// that can yield multiple values. Each yielded value updates the state and waits for the next\n// layout effect, then continues the generator. This allows sequential updates to state to be\n// written linearly.\nexport function useValueEffect(defaultValue: S | (() => S)): [S, Dispatch>] {\n let [value, setValue] = useState(defaultValue);\n let valueRef = useRef(value);\n let effect = useRef(null);\n\n valueRef.current = value;\n\n // Store the function in a ref so we can always access the current version\n // which has the proper `value` in scope.\n let nextRef = useRef(null);\n nextRef.current = () => {\n // Run the generator to the next yield.\n let newValue = effect.current.next();\n\n // If the generator is done, reset the effect.\n if (newValue.done) {\n effect.current = null;\n return;\n }\n\n // If the value is the same as the current value,\n // then continue to the next yield. Otherwise,\n // set the value in state and wait for the next layout effect.\n if (value === newValue.value) {\n nextRef.current();\n } else {\n setValue(newValue.value);\n }\n };\n\n useLayoutEffect(() => {\n // If there is an effect currently running, continue to the next yield.\n if (effect.current) {\n nextRef.current();\n }\n });\n\n let queue = useCallback(fn => {\n effect.current = fn(valueRef.current);\n nextRef.current();\n }, [effect, nextRef]);\n\n return [value, queue];\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n/**\n * Scrolls `scrollView` so that `element` is visible.\n * Similar to `element.scrollIntoView({block: 'nearest'})` (not supported in Edge),\n * but doesn't affect parents above `scrollView`.\n */\nexport function scrollIntoView(scrollView: HTMLElement, element: HTMLElement) {\n let offsetX = relativeOffset(scrollView, element, 'left');\n let offsetY = relativeOffset(scrollView, element, 'top');\n let width = element.offsetWidth;\n let height = element.offsetHeight;\n let x = scrollView.scrollLeft;\n let y = scrollView.scrollTop;\n let maxX = x + scrollView.offsetWidth;\n let maxY = y + scrollView.offsetHeight;\n\n if (offsetX <= x) {\n x = offsetX;\n } else if (offsetX + width > maxX) {\n x += offsetX + width - maxX;\n }\n if (offsetY <= y) {\n y = offsetY;\n } else if (offsetY + height > maxY) {\n y += offsetY + height - maxY;\n }\n\n scrollView.scrollLeft = x;\n scrollView.scrollTop = y;\n}\n\n/**\n * Computes the offset left or top from child to ancestor by accumulating\n * offsetLeft or offsetTop through intervening offsetParents.\n */\nfunction relativeOffset(ancestor: HTMLElement, child: HTMLElement, axis: 'left'|'top') {\n const prop = axis === 'left' ? 'offsetLeft' : 'offsetTop';\n let sum = 0;\n while (child.offsetParent) {\n sum += child[prop];\n if (child.offsetParent === ancestor) {\n // Stop once we have found the ancestor we are interested in.\n break;\n } else if (child.offsetParent.contains(ancestor)) {\n // If the ancestor is not `position:relative`, then we stop at\n // _its_ offset parent, and we subtract off _its_ offset, so that\n // we end up with the proper offset from child to ancestor.\n sum -= ancestor[prop];\n break;\n }\n child = child.offsetParent as HTMLElement;\n }\n return sum;\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {isAndroid} from './platform';\n\n// Original licensing for the following method can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/blob/3c713d513195a53788b3f8bb4b70279d68b15bcc/packages/react-interactions/events/src/dom/shared/index.js#L74-L87\n\n// Keyboards, Assistive Technologies, and element.click() all produce a \"virtual\"\n// click event. This is a method of inferring such clicks. Every browser except\n// IE 11 only sets a zero value of \"detail\" for click events that are \"virtual\".\n// However, IE 11 uses a zero value for all click events. For IE 11 we rely on\n// the quirk that it produces click events that are of type PointerEvent, and\n// where only the \"virtual\" click lacks a pointerType field.\n\nexport function isVirtualClick(event: MouseEvent | PointerEvent): boolean {\n // JAWS/NVDA with Firefox.\n if ((event as any).mozInputSource === 0 && event.isTrusted) {\n return true;\n }\n\n // Android TalkBack's detail value varies depending on the event listener providing the event so we have specific logic here instead\n // If pointerType is defined, event is from a click listener. For events from mousedown listener, detail === 0 is a sufficient check\n // to detect TalkBack virtual clicks.\n if (isAndroid() && (event as PointerEvent).pointerType) {\n return event.type === 'click' && event.buttons === 1;\n }\n\n return event.detail === 0 && !(event as PointerEvent).pointerType;\n}\n\nexport function isVirtualPointerEvent(event: PointerEvent) {\n // If the pointer size is zero, then we assume it's from a screen reader.\n // Android TalkBack double tap will sometimes return a event with width and height of 1\n // and pointerType === 'mouse' so we need to check for a specific combination of event attributes.\n // Cannot use \"event.pressure === 0\" as the sole check due to Safari pointer events always returning pressure === 0\n // instead of .5, see https://bugs.webkit.org/show_bug.cgi?id=206216. event.pointerType === 'mouse' is to distingush\n // Talkback double tap from Windows Firefox touch screen press\n return (\n (event.width === 0 && event.height === 0) ||\n (event.width === 1 &&\n event.height === 1 &&\n event.pressure === 0 &&\n event.detail === 0 &&\n event.pointerType === 'mouse'\n )\n );\n}\n","/**\n * Returns the owner document of a given element.\n * \n * @param node the element\n */\nexport default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","import ownerWindow from './ownerWindow';\n/**\n * Returns one or all computed style properties of an element.\n * \n * @param node the element\n * @param psuedoElement the style property\n */\n\nexport default function getComputedStyle(node, psuedoElement) {\n return ownerWindow(node).getComputedStyle(node, psuedoElement);\n}","import ownerDocument from './ownerDocument';\n/**\n * Returns the owner window of a given element.\n * \n * @param node the element\n */\n\nexport default function ownerWindow(node) {\n var doc = ownerDocument(node);\n return doc && doc.defaultView || window;\n}","var rUpper = /([A-Z])/g;\nexport default function hyphenate(string) {\n return string.replace(rUpper, '-$1').toLowerCase();\n}","/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js\n */\nimport hyphenate from './hyphenate';\nvar msPattern = /^ms-/;\nexport default function hyphenateStyleName(string) {\n return hyphenate(string).replace(msPattern, '-ms-');\n}","var supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i;\nexport default function isTransform(value) {\n return !!(value && supportedTransforms.test(value));\n}","import getComputedStyle from './getComputedStyle';\nimport hyphenate from './hyphenateStyle';\nimport isTransform from './isTransform';\n\nfunction style(node, property) {\n var css = '';\n var transforms = '';\n\n if (typeof property === 'string') {\n return node.style.getPropertyValue(hyphenate(property)) || getComputedStyle(node).getPropertyValue(hyphenate(property));\n }\n\n Object.keys(property).forEach(function (key) {\n var value = property[key];\n\n if (!value && value !== 0) {\n node.style.removeProperty(hyphenate(key));\n } else if (isTransform(key)) {\n transforms += key + \"(\" + value + \") \";\n } else {\n css += hyphenate(key) + \": \" + value + \";\";\n }\n });\n\n if (transforms) {\n css += \"transform: \" + transforms + \";\";\n }\n\n node.style.cssText += \";\" + css;\n}\n\nexport default style;","import isDocument from './isDocument';\nexport default function isWindow(node) {\n if ('window' in node && node.window === node) return node;\n if (isDocument(node)) return node.defaultView || false;\n return false;\n}","export default function isDocument(element) {\n return 'nodeType' in element && element.nodeType === document.DOCUMENT_NODE;\n}","import isWindow from './isWindow';\nexport default function getscrollAccessor(offset) {\n var prop = offset === 'pageXOffset' ? 'scrollLeft' : 'scrollTop';\n\n function scrollAccessor(node, val) {\n var win = isWindow(node);\n\n if (val === undefined) {\n return win ? win[offset] : node[prop];\n }\n\n if (win) {\n win.scrollTo(win[offset], val);\n } else {\n node[prop] = val;\n }\n }\n\n return scrollAccessor;\n}","import getScrollAccessor from './getScrollAccessor';\n/**\n * Gets or sets the scroll left position of a given element.\n * \n * @param node the element\n * @param val the position to set\n */\n\nexport default getScrollAccessor('pageXOffset');","import getScrollAccessor from './getScrollAccessor';\n/**\n * Gets or sets the scroll top position of a given element.\n * \n * @param node the element\n * @param val the position to set\n */\n\nexport default getScrollAccessor('pageYOffset');","import contains from './contains';\nimport ownerDocument from './ownerDocument';\nimport scrollLeft from './scrollLeft';\nimport scrollTop from './scrollTop';\n/**\n * Returns the offset of a given element, including top and left positions, width and height.\n * \n * @param node the element\n */\n\nexport default function offset(node) {\n var doc = ownerDocument(node);\n var box = {\n top: 0,\n left: 0,\n height: 0,\n width: 0\n };\n var docElem = doc && doc.documentElement; // Make sure it's not a disconnected DOM node\n\n if (!docElem || !contains(docElem, node)) return box;\n if (node.getBoundingClientRect !== undefined) box = node.getBoundingClientRect();\n box = {\n top: box.top + scrollTop(docElem) - (docElem.clientTop || 0),\n left: box.left + scrollLeft(docElem) - (docElem.clientLeft || 0),\n width: box.width,\n height: box.height\n };\n return box;\n}","/* eslint-disable no-bitwise, no-cond-assign */\n\n/**\n * Checks if an element contains another given element.\n * \n * @param context the context element\n * @param node the element to check\n */\nexport default function contains(context, node) {\n // HTML DOM and SVG DOM may have different support levels,\n // so we need to check on context instead of a document root element.\n if (context.contains) return context.contains(node);\n if (context.compareDocumentPosition) return context === node || !!(context.compareDocumentPosition(node) & 16);\n}","import css from './css';\nimport ownerDocument from './ownerDocument';\n\nvar isHTMLElement = function isHTMLElement(e) {\n return !!e && 'offsetParent' in e;\n};\n\nexport default function offsetParent(node) {\n var doc = ownerDocument(node);\n var parent = node && node.offsetParent;\n\n while (isHTMLElement(parent) && parent.nodeName !== 'HTML' && css(parent, 'position') === 'static') {\n parent = parent.offsetParent;\n }\n\n return parent || doc.documentElement;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport css from './css';\nimport getOffset from './offset';\nimport getOffsetParent from './offsetParent';\nimport scrollLeft from './scrollLeft';\nimport scrollTop from './scrollTop';\n\nvar nodeName = function nodeName(node) {\n return node.nodeName && node.nodeName.toLowerCase();\n};\n/**\n * Returns the relative position of a given element.\n * \n * @param node the element\n * @param offsetParent the offset parent\n */\n\n\nexport default function position(node, offsetParent) {\n var parentOffset = {\n top: 0,\n left: 0\n };\n var offset; // Fixed elements are offset from window (parentOffset = {top:0, left: 0},\n // because it is its only offset parent\n\n if (css(node, 'position') === 'fixed') {\n offset = node.getBoundingClientRect();\n } else {\n var parent = offsetParent || getOffsetParent(node);\n offset = getOffset(node);\n if (nodeName(parent) !== 'html') parentOffset = getOffset(parent);\n var borderTop = String(css(parent, 'borderTopWidth') || 0);\n parentOffset.top += parseInt(borderTop, 10) - scrollTop(parent) || 0;\n var borderLeft = String(css(parent, 'borderLeftWidth') || 0);\n parentOffset.left += parseInt(borderLeft, 10) - scrollLeft(parent) || 0;\n }\n\n var marginTop = String(css(node, 'marginTop') || 0);\n var marginLeft = String(css(node, 'marginLeft') || 0); // Subtract parent offsets and node margins\n\n return _extends({}, offset, {\n top: offset.top - parentOffset.top - (parseInt(marginTop, 10) || 0),\n left: offset.left - parentOffset.left - (parseInt(marginLeft, 10) || 0)\n });\n}","// @ts-nocheck\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Axis, Placement, PlacementAxis, SizeAxis} from '@react-types/overlays';\nimport getCss from 'dom-helpers/css';\nimport getOffset from 'dom-helpers/offset';\nimport getPosition from 'dom-helpers/position';\nimport getScrollLeft from 'dom-helpers/scrollLeft';\nimport getScrollTop from 'dom-helpers/scrollTop';\nimport ownerDocument from 'dom-helpers/ownerDocument';\n\ninterface Position {\n top?: number,\n left?: number,\n bottom?: number,\n right?: number\n}\n\ninterface Dimensions {\n width: number,\n height: number,\n top: number,\n left: number,\n scroll: Position\n}\n\ninterface ParsedPlacement {\n placement: PlacementAxis,\n crossPlacement: PlacementAxis,\n axis: Axis,\n crossAxis: Axis,\n size: SizeAxis,\n crossSize: SizeAxis\n}\n\ninterface Offset {\n top: number,\n left: number,\n width: number,\n height: number\n}\n\ninterface PositionOpts {\n placement: Placement,\n targetNode: HTMLElement,\n overlayNode: HTMLElement,\n scrollNode: HTMLElement,\n padding: number,\n shouldFlip: boolean,\n boundaryElement: HTMLElement,\n offset: number,\n crossOffset: number,\n shouldOverlapWithTrigger: boolean\n}\n\nexport interface PositionResult {\n position?: Position,\n arrowOffsetLeft?: number,\n arrowOffsetTop?: number,\n maxHeight?: number,\n placement: PlacementAxis\n}\n\nconst AXIS = {\n top: 'top',\n bottom: 'top',\n left: 'left',\n right: 'left'\n};\n\nconst FLIPPED_DIRECTION = {\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left'\n};\n\nconst CROSS_AXIS = {\n top: 'left',\n left: 'top'\n};\n\nconst AXIS_SIZE = {\n top: 'height',\n left: 'width'\n};\n\nconst PARSED_PLACEMENT_CACHE = {};\n\n// @ts-ignore\nlet visualViewport = typeof window !== 'undefined' && window.visualViewport;\n\nfunction getContainerDimensions(containerNode: Element): Dimensions {\n let width = 0, height = 0, top = 0, left = 0;\n let scroll: Position = {};\n\n if (containerNode.tagName === 'BODY') {\n width = visualViewport?.width ?? document.documentElement.clientWidth;\n height = visualViewport?.height ?? document.documentElement.clientHeight;\n\n scroll.top =\n getScrollTop(ownerDocument(containerNode).documentElement) ||\n getScrollTop(containerNode);\n scroll.left =\n getScrollLeft(ownerDocument(containerNode).documentElement) ||\n getScrollLeft(containerNode);\n } else {\n ({width, height, top, left} = getOffset(containerNode));\n scroll.top = getScrollTop(containerNode);\n scroll.left = getScrollLeft(containerNode);\n }\n\n return {width, height, scroll, top, left};\n}\n\nfunction getScroll(node: HTMLElement): Offset {\n return {\n top: node.scrollTop,\n left: node.scrollLeft,\n width: node.scrollWidth,\n height: node.scrollHeight\n };\n}\n\nfunction getDelta(\n axis: Axis,\n offset: number,\n size: number,\n containerDimensions: Dimensions,\n padding: number\n) {\n let containerScroll = containerDimensions.scroll[axis];\n let containerHeight = containerDimensions[AXIS_SIZE[axis]];\n\n let startEdgeOffset = offset - padding - containerScroll;\n let endEdgeOffset = offset + padding - containerScroll + size;\n\n if (startEdgeOffset < 0) {\n return -startEdgeOffset;\n } else if (endEdgeOffset > containerHeight) {\n return Math.max(containerHeight - endEdgeOffset, -startEdgeOffset);\n } else {\n return 0;\n }\n}\n\nfunction getMargins(node: HTMLElement): Position {\n let style = window.getComputedStyle(node);\n return {\n top: parseInt(style.marginTop, 10) || 0,\n bottom: parseInt(style.marginBottom, 10) || 0,\n left: parseInt(style.marginLeft, 10) || 0,\n right: parseInt(style.marginRight, 10) || 0\n };\n}\n\nfunction parsePlacement(input: Placement): ParsedPlacement {\n if (PARSED_PLACEMENT_CACHE[input]) {\n return PARSED_PLACEMENT_CACHE[input];\n }\n\n let [placement, crossPlacement] = input.split(' ');\n let axis: Axis = AXIS[placement] || 'right';\n let crossAxis: Axis = CROSS_AXIS[axis];\n\n if (!AXIS[crossPlacement]) {\n crossPlacement = 'center';\n }\n\n let size = AXIS_SIZE[axis];\n let crossSize = AXIS_SIZE[crossAxis];\n PARSED_PLACEMENT_CACHE[input] = {placement, crossPlacement, axis, crossAxis, size, crossSize};\n return PARSED_PLACEMENT_CACHE[input];\n}\n\nfunction computePosition(\n childOffset: Offset,\n boundaryDimensions: Dimensions,\n overlaySize: Offset,\n placementInfo: ParsedPlacement,\n offset: number,\n crossOffset: number,\n containerOffsetWithBoundary: Offset,\n isContainerPositioned: boolean\n) {\n let {placement, crossPlacement, axis, crossAxis, size, crossSize} = placementInfo;\n let position: Position = {};\n\n // button position\n position[crossAxis] = childOffset[crossAxis];\n if (crossPlacement === 'center') {\n // + (button size / 2) - (overlay size / 2)\n // at this point the overlay center should match the button center\n position[crossAxis] += (childOffset[crossSize] - overlaySize[crossSize]) / 2;\n } else if (crossPlacement !== crossAxis) {\n // + (button size) - (overlay size)\n // at this point the overlay bottom should match the button bottom\n position[crossAxis] += (childOffset[crossSize] - overlaySize[crossSize]);\n }/* else {\n the overlay top should match the button top\n } */\n // add the crossOffset from props\n position[crossAxis] += crossOffset;\n\n // this is button center position - the overlay size + half of the button to align bottom of overlay with button center\n let minViablePosition = childOffset[crossAxis] + (childOffset[crossSize] / 2) - overlaySize[crossSize];\n // this is button position of center, aligns top of overlay with button center\n let maxViablePosition = childOffset[crossAxis] + (childOffset[crossSize] / 2);\n\n // clamp it into the range of the min/max positions\n position[crossAxis] = Math.min(Math.max(minViablePosition, position[crossAxis]), maxViablePosition);\n\n // Floor these so the position isn't placed on a partial pixel, only whole pixels. Shouldn't matter if it was floored or ceiled, so chose one.\n if (placement === axis) {\n // If the container is positioned (non-static), then we use the container's actual\n // height, as `bottom` will be relative to this height. But if the container is static,\n // then it can only be the `document.body`, and `bottom` will be relative to _its_\n // container, which should be as large as boundaryDimensions.\n const containerHeight = (isContainerPositioned ? containerOffsetWithBoundary[size] : boundaryDimensions[size]);\n position[FLIPPED_DIRECTION[axis]] = Math.floor(containerHeight - childOffset[axis] + offset);\n } else {\n position[axis] = Math.floor(childOffset[axis] + childOffset[size] + offset);\n }\n\n return position;\n}\n\nfunction getMaxHeight(\n position: Position,\n boundaryDimensions: Dimensions,\n containerOffsetWithBoundary: Offset,\n childOffset: Offset,\n margins: Position,\n padding: number\n) {\n return position.top != null\n // We want the distance between the top of the overlay to the bottom of the boundary\n ? Math.max(0,\n (boundaryDimensions.height + boundaryDimensions.top + boundaryDimensions.scroll.top) // this is the bottom of the boundary\n - (containerOffsetWithBoundary.top + position.top) // this is the top of the overlay\n - (margins.top + margins.bottom + padding) // save additional space for margin and padding\n )\n // We want the distance between the top of the trigger to the top of the boundary\n : Math.max(0,\n (childOffset.top + containerOffsetWithBoundary.top) // this is the top of the trigger\n - (boundaryDimensions.top + boundaryDimensions.scroll.top) // this is the top of the boundary\n - (margins.top + margins.bottom + padding) // save additional space for margin and padding\n );\n}\n\nfunction getAvailableSpace(\n boundaryDimensions: Dimensions,\n containerOffsetWithBoundary: Offset,\n childOffset: Offset,\n margins: Position,\n padding: number,\n placementInfo: ParsedPlacement\n) {\n let {placement, axis, size} = placementInfo;\n if (placement === axis) {\n return Math.max(0, childOffset[axis] - boundaryDimensions[axis] - boundaryDimensions.scroll[axis] + containerOffsetWithBoundary[axis] - margins[axis] - margins[FLIPPED_DIRECTION[axis]] - padding);\n }\n\n return Math.max(0, boundaryDimensions[size] + boundaryDimensions[axis] + boundaryDimensions.scroll[axis] - containerOffsetWithBoundary[axis] - childOffset[axis] - childOffset[size] - margins[axis] - margins[FLIPPED_DIRECTION[axis]] - padding);\n}\n\nexport function calculatePositionInternal(\n placementInput: Placement,\n childOffset: Offset,\n overlaySize: Offset,\n scrollSize: Offset,\n margins: Position,\n padding: number,\n flip: boolean,\n boundaryDimensions: Dimensions,\n containerOffsetWithBoundary: Offset,\n offset: number,\n crossOffset: number,\n isContainerPositioned: boolean,\n shouldOverlapWithTrigger: boolean\n): PositionResult {\n let placementInfo = parsePlacement(placementInput);\n let {size, crossAxis, crossSize, placement, crossPlacement, axis} = placementInfo;\n let position = computePosition(childOffset, boundaryDimensions, overlaySize, placementInfo, offset, crossOffset, containerOffsetWithBoundary, isContainerPositioned);\n let normalizedOffset = offset;\n let space = getAvailableSpace(\n boundaryDimensions,\n containerOffsetWithBoundary,\n childOffset,\n margins,\n padding + offset,\n placementInfo\n );\n\n // Check if the scroll size of the overlay is greater than the available space to determine if we need to flip\n if (flip && scrollSize[size] > space) {\n let flippedPlacementInfo = parsePlacement(`${FLIPPED_DIRECTION[placement]} ${crossPlacement}` as Placement);\n let flippedPosition = computePosition(childOffset, boundaryDimensions, overlaySize, flippedPlacementInfo, offset, crossOffset, containerOffsetWithBoundary, isContainerPositioned);\n let flippedSpace = getAvailableSpace(\n boundaryDimensions,\n containerOffsetWithBoundary,\n childOffset,\n margins,\n padding + offset,\n flippedPlacementInfo\n );\n\n // If the available space for the flipped position is greater than the original available space, flip.\n if (flippedSpace > space) {\n placementInfo = flippedPlacementInfo;\n position = flippedPosition;\n normalizedOffset = offset;\n }\n }\n\n let delta = getDelta(crossAxis, position[crossAxis], overlaySize[crossSize], boundaryDimensions, padding);\n position[crossAxis] += delta;\n\n let maxHeight = getMaxHeight(\n position,\n boundaryDimensions,\n containerOffsetWithBoundary,\n childOffset,\n margins,\n padding\n );\n\n overlaySize.height = Math.min(overlaySize.height, maxHeight);\n\n position = computePosition(childOffset, boundaryDimensions, overlaySize, placementInfo, normalizedOffset, crossOffset, containerOffsetWithBoundary, isContainerPositioned);\n delta = getDelta(crossAxis, position[crossAxis], overlaySize[crossSize], boundaryDimensions, padding);\n position[crossAxis] += delta;\n\n let arrowPosition: Position = {};\n arrowPosition[crossAxis] = (childOffset[crossAxis] - position[crossAxis] + childOffset[crossSize] / 2);\n\n if (shouldOverlapWithTrigger) {\n position[FLIPPED_DIRECTION[placementInfo.placement]] = position[FLIPPED_DIRECTION[placementInfo.placement]] - childOffset[size];\n }\n\n return {\n position,\n maxHeight: maxHeight,\n arrowOffsetLeft: arrowPosition.left,\n arrowOffsetTop: arrowPosition.top,\n placement: placementInfo.placement\n };\n}\n\n/**\n * Determines where to place the overlay with regards to the target and the position of an optional indicator.\n */\nexport function calculatePosition(opts: PositionOpts): PositionResult {\n let {\n placement,\n targetNode,\n overlayNode,\n scrollNode,\n padding,\n shouldFlip,\n boundaryElement,\n offset,\n crossOffset,\n shouldOverlapWithTrigger\n } = opts;\n\n let container = overlayNode.offsetParent || document.body;\n let isBodyContainer = container.tagName === 'BODY';\n const containerPositionStyle = window.getComputedStyle(container).position;\n let isContainerPositioned = !!containerPositionStyle && containerPositionStyle !== 'static';\n let childOffset: Offset = isBodyContainer ? getOffset(targetNode) : getPosition(targetNode, container);\n\n if (!isBodyContainer) {\n childOffset.top += parseInt(getCss(targetNode, 'marginTop'), 10) || 0;\n childOffset.left += parseInt(getCss(targetNode, 'marginLeft'), 10) || 0;\n }\n\n let overlaySize: Offset = getOffset(overlayNode);\n let margins = getMargins(overlayNode);\n overlaySize.width += margins.left + margins.right;\n overlaySize.height += margins.top + margins.bottom;\n\n let scrollSize = getScroll(scrollNode);\n let boundaryDimensions = getContainerDimensions(boundaryElement);\n let containerOffsetWithBoundary: Offset = boundaryElement.tagName === 'BODY' ? getOffset(container) : getPosition(container, boundaryElement);\n\n\n return calculatePositionInternal(\n placement,\n childOffset,\n overlaySize,\n scrollSize,\n margins,\n padding,\n shouldFlip,\n boundaryDimensions,\n containerOffsetWithBoundary,\n offset,\n crossOffset,\n isContainerPositioned,\n shouldOverlapWithTrigger\n );\n}\n","//@ts-nocheck\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {RefObject, useEffect} from 'react';\n\n// This behavior moved from useOverlayTrigger to useOverlayPosition.\n// For backward compatibility, where useOverlayTrigger handled hiding the popover on close,\n// it sets a close function here mapped from the trigger element. This way we can avoid\n// forcing users to pass an onClose function to useOverlayPosition which could be considered\n// a breaking change.\nexport const onCloseMap: WeakMap void> = new WeakMap();\n\ninterface CloseOnScrollOptions {\n triggerRef: RefObject,\n isOpen?: boolean,\n onClose?: () => void\n}\n\n/** @private */\nexport function useCloseOnScroll(opts: CloseOnScrollOptions) {\n let {triggerRef, isOpen, onClose} = opts;\n\n useEffect(() => {\n if (!isOpen) {\n return;\n }\n\n let onScroll = (e: MouseEvent) => {\n // Ignore if scrolling an scrollable region outside the trigger's tree.\n let target = e.target as HTMLElement;\n if (!triggerRef.current || !target.contains(triggerRef.current)) {\n return;\n }\n\n let onCloseHandler = onClose || onCloseMap.get(triggerRef.current);\n if (onCloseHandler) {\n onCloseHandler();\n }\n };\n\n window.addEventListener('scroll', onScroll, true);\n return () => {\n window.removeEventListener('scroll', onScroll, true);\n };\n }, [isOpen, onClose, triggerRef]);\n}\n","//@ts-nocheck\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport { calculatePosition, PositionResult } from './calculatePosition';\nimport {\n HTMLAttributes,\n RefObject,\n useCallback,\n useRef,\n useState,\n} from 'react';\nimport { Placement, PlacementAxis, PositionProps } from '@react-types/overlays';\nimport { useCloseOnScroll } from './useCloseOnScroll';\nimport { isRTL, useLayoutEffect } from '@react-native-aria/utils';\n\ninterface AriaPositionProps extends PositionProps {\n /**\n * Element that that serves as the positioning boundary.\n * @default document.body\n */\n boundaryElement?: HTMLElement;\n /**\n * The ref for the element which the overlay positions itself with respect to.\n */\n targetRef: RefObject;\n /**\n * The ref for the overlay element.\n */\n overlayRef: RefObject;\n /**\n * A ref for the scrollable region within the overlay.\n * @default overlayRef\n */\n scrollRef?: RefObject;\n /**\n * Whether the overlay should update its position automatically.\n * @default true\n */\n shouldUpdatePosition?: boolean;\n /** Handler that is called when the overlay should close. */\n onClose?: () => void;\n /** Determines whether the overlay should overlap with the trigger */\n shouldOverlapWithTrigger?: boolean;\n}\n\ninterface PositionAria {\n /** Props for the overlay container element. */\n overlayProps: HTMLAttributes;\n /** Props for the overlay tip arrow if any. */\n arrowProps: HTMLAttributes;\n /** Placement of the overlay with respect to the overlay trigger. */\n placement: PlacementAxis;\n /** Updates the position of the overlay. */\n updatePosition(): void;\n}\n\n// @ts-ignore\nlet visualViewport = typeof window !== 'undefined' && window.visualViewport;\n\n/**\n * Handles positioning overlays like popovers and menus relative to a trigger\n * element, and updating the position when the window resizes.\n */\nexport function useOverlayPosition(props: AriaPositionProps): PositionAria {\n const direction = isRTL() ? 'rtl' : undefined;\n let {\n targetRef,\n overlayRef,\n scrollRef = overlayRef,\n placement = 'bottom' as Placement,\n containerPadding = 12,\n shouldFlip = true,\n boundaryElement = typeof document !== 'undefined' ? document.body : null,\n offset = 0,\n crossOffset = 0,\n shouldUpdatePosition = true,\n isOpen = true,\n shouldOverlapWithTrigger = false,\n onClose,\n } = props;\n let [position, setPosition] = useState({\n position: {},\n arrowOffsetLeft: undefined,\n arrowOffsetTop: undefined,\n maxHeight: undefined,\n placement: undefined,\n });\n\n let deps = [\n shouldUpdatePosition,\n placement,\n overlayRef.current,\n targetRef.current,\n scrollRef.current,\n containerPadding,\n shouldFlip,\n boundaryElement,\n offset,\n crossOffset,\n isOpen,\n direction,\n shouldOverlapWithTrigger\n ];\n\n let updatePosition = useCallback(() => {\n if (\n shouldUpdatePosition === false ||\n !isOpen ||\n !overlayRef.current ||\n !targetRef.current ||\n !scrollRef.current ||\n !boundaryElement\n ) {\n return;\n }\n\n setPosition(\n calculatePosition({\n placement: translateRTL(placement, direction),\n overlayNode: overlayRef.current,\n targetNode: targetRef.current,\n scrollNode: scrollRef.current,\n padding: containerPadding,\n shouldFlip,\n boundaryElement,\n offset,\n crossOffset,\n shouldOverlapWithTrigger,\n })\n );\n }, deps);\n\n // Update position when anything changes\n useLayoutEffect(updatePosition, deps);\n\n // Update position on window resize\n useResize(updatePosition);\n\n // Reposition the overlay and do not close on scroll while the visual viewport is resizing.\n // This will ensure that overlays adjust their positioning when the iOS virtual keyboard appears.\n let isResizing = useRef(false);\n useLayoutEffect(() => {\n let timeout: NodeJS.Timeout;\n let onResize = () => {\n isResizing.current = true;\n clearTimeout(timeout);\n\n timeout = setTimeout(() => {\n isResizing.current = false;\n }, 500);\n\n updatePosition();\n };\n\n visualViewport?.addEventListener('resize', onResize);\n\n return () => {\n visualViewport?.removeEventListener('resize', onResize);\n };\n }, [updatePosition]);\n\n let close = useCallback(() => {\n if (!isResizing.current) {\n onClose();\n }\n }, [onClose, isResizing]);\n\n // When scrolling a parent scrollable region of the trigger (other than the body),\n // we hide the popover. Otherwise, its position would be incorrect.\n useCloseOnScroll({\n triggerRef: targetRef,\n isOpen,\n onClose: onClose ? close : undefined,\n });\n\n return {\n rendered: true,\n overlayProps: {\n style: {\n position: 'absolute',\n zIndex: 100000, // should match the z-index in ModalTrigger\n ...position.position,\n maxHeight: position.maxHeight,\n },\n },\n placement: position.placement,\n arrowProps: {\n style: {\n left: position.arrowOffsetLeft,\n top: position.arrowOffsetTop,\n },\n },\n updatePosition,\n };\n}\n\nfunction useResize(onResize) {\n useLayoutEffect(() => {\n window.addEventListener('resize', onResize, false);\n return () => {\n window.removeEventListener('resize', onResize, false);\n };\n }, [onResize]);\n}\n\nfunction translateRTL(position, direction) {\n if (direction === 'rtl') {\n return position.replace('start', 'right').replace('end', 'left');\n }\n return position.replace('start', 'left').replace('end', 'right');\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport type {LocalizedStringDictionary} from './LocalizedStringDictionary';\n\nexport type Variables = Record | undefined;\nexport type LocalizedString = string | ((args: Variables, formatter?: LocalizedStringFormatter) => string);\ntype InternalString = string | (() => string);\n\nconst pluralRulesCache = new Map();\nconst numberFormatCache = new Map();\n\n/**\n * Formats localized strings from a LocalizedStringDictionary. Supports interpolating variables,\n * selecting the correct pluralization, and formatting numbers for the locale.\n */\nexport class LocalizedStringFormatter {\n private locale: string;\n private strings: LocalizedStringDictionary;\n\n constructor(locale: string, strings: LocalizedStringDictionary) {\n this.locale = locale;\n this.strings = strings;\n }\n\n /** Formats a localized string for the given key with the provided variables. */\n format(key: K, variables?: Variables): string {\n let message = this.strings.getStringForLocale(key, this.locale);\n return typeof message === 'function' ? message(variables, this) : message;\n }\n\n protected plural(count: number, options: Record, type: Intl.PluralRuleType = 'cardinal') {\n let opt = options['=' + count];\n if (opt) {\n return typeof opt === 'function' ? opt() : opt;\n }\n\n let key = this.locale + ':' + type;\n let pluralRules = pluralRulesCache.get(key);\n if (!pluralRules) {\n pluralRules = new Intl.PluralRules(this.locale, {type});\n pluralRulesCache.set(key, pluralRules);\n }\n\n let selected = pluralRules.select(count);\n opt = options[selected] || options.other;\n return typeof opt === 'function' ? opt() : opt;\n }\n\n protected number(value: number) {\n let numberFormat = numberFormatCache.get(this.locale);\n if (!numberFormat) {\n numberFormat = new Intl.NumberFormat(this.locale);\n numberFormatCache.set(this.locale, numberFormat);\n }\n return numberFormat.format(value);\n }\n\n protected select(options: Record, value: string) {\n let opt = options[value] || options.other;\n return typeof opt === 'function' ? opt() : opt;\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AnyCalendarDate, AnyTime} from './types';\nimport {CalendarDate, CalendarDateTime, ZonedDateTime} from './CalendarDate';\nimport {fromAbsolute, toAbsolute, toCalendar, toCalendarDate} from './conversion';\nimport {weekStartData} from './weekStartData';\n\ntype DateValue = CalendarDate | CalendarDateTime | ZonedDateTime;\n\n/** Returns whether the given dates occur on the same day, regardless of the time or calendar system. */\nexport function isSameDay(a: DateValue, b: DateValue): boolean {\n b = toCalendar(b, a.calendar);\n return a.era === b.era && a.year === b.year && a.month === b.month && a.day === b.day;\n}\n\n/** Returns whether the given dates occur in the same month, using the calendar system of the first date. */\nexport function isSameMonth(a: DateValue, b: DateValue): boolean {\n b = toCalendar(b, a.calendar);\n // In the Japanese calendar, months can span multiple eras/years, so only compare the first of the month.\n a = startOfMonth(a);\n b = startOfMonth(b);\n return a.era === b.era && a.year === b.year && a.month === b.month;\n}\n\n/** Returns whether the given dates occur in the same year, using the calendar system of the first date. */\nexport function isSameYear(a: DateValue, b: DateValue): boolean {\n b = toCalendar(b, a.calendar);\n a = startOfYear(a);\n b = startOfYear(b);\n return a.era === b.era && a.year === b.year;\n}\n\n/** Returns whether the given dates occur on the same day, and are of the same calendar system. */\nexport function isEqualDay(a: DateValue, b: DateValue): boolean {\n return a.calendar.identifier === b.calendar.identifier && a.era === b.era && a.year === b.year && a.month === b.month && a.day === b.day;\n}\n\n/** Returns whether the given dates occur in the same month, and are of the same calendar system. */\nexport function isEqualMonth(a: DateValue, b: DateValue): boolean {\n a = startOfMonth(a);\n b = startOfMonth(b);\n return a.calendar.identifier === b.calendar.identifier && a.era === b.era && a.year === b.year && a.month === b.month;\n}\n\n/** Returns whether the given dates occur in the same year, and are of the same calendar system. */\nexport function isEqualYear(a: DateValue, b: DateValue): boolean {\n a = startOfYear(a);\n b = startOfYear(b);\n return a.calendar.identifier === b.calendar.identifier && a.era === b.era && a.year === b.year;\n}\n\n/** Returns whether the date is today in the given time zone. */\nexport function isToday(date: DateValue, timeZone: string): boolean {\n return isSameDay(date, today(timeZone));\n}\n\n/**\n * Returns the day of week for the given date and locale. Days are numbered from zero to six,\n * where zero is the first day of the week in the given locale. For example, in the United States,\n * the first day of the week is Sunday, but in France it is Monday.\n */\nexport function getDayOfWeek(date: DateValue, locale: string): number {\n let julian = date.calendar.toJulianDay(date);\n\n // If julian is negative, then julian % 7 will be negative, so we adjust\n // accordingly. Julian day 0 is Monday.\n let dayOfWeek = Math.ceil(julian + 1 - getWeekStart(locale)) % 7;\n if (dayOfWeek < 0) {\n dayOfWeek += 7;\n }\n\n return dayOfWeek;\n}\n\n/** Returns the current time in the given time zone. */\nexport function now(timeZone: string): ZonedDateTime {\n return fromAbsolute(Date.now(), timeZone);\n}\n\n/** Returns today's date in the given time zone. */\nexport function today(timeZone: string): CalendarDate {\n return toCalendarDate(now(timeZone));\n}\n\nexport function compareDate(a: AnyCalendarDate, b: AnyCalendarDate): number {\n return a.calendar.toJulianDay(a) - b.calendar.toJulianDay(b);\n}\n\nexport function compareTime(a: AnyTime, b: AnyTime): number {\n return timeToMs(a) - timeToMs(b);\n}\n\nfunction timeToMs(a: AnyTime): number {\n return a.hour * 60 * 60 * 1000 + a.minute * 60 * 1000 + a.second * 1000 + a.millisecond;\n}\n\n/**\n * Returns the number of hours in the given date and time zone.\n * Usually this is 24, but it could be 23 or 25 if the date is on a daylight saving transition.\n */\nexport function getHoursInDay(a: CalendarDate, timeZone: string): number {\n let ms = toAbsolute(a, timeZone);\n let tomorrow = a.add({days: 1});\n let tomorrowMs = toAbsolute(tomorrow, timeZone);\n return (tomorrowMs - ms) / 3600000;\n}\n\nlet localTimeZone = null;\n\n/** Returns the time zone identifier for the current user. */\nexport function getLocalTimeZone(): string {\n // TODO: invalidate this somehow?\n if (localTimeZone == null) {\n localTimeZone = new Intl.DateTimeFormat().resolvedOptions().timeZone;\n }\n\n return localTimeZone;\n}\n\n/** Returns the first date of the month for the given date. */\nexport function startOfMonth(date: ZonedDateTime): ZonedDateTime;\nexport function startOfMonth(date: CalendarDateTime): CalendarDateTime;\nexport function startOfMonth(date: CalendarDate): CalendarDate;\nexport function startOfMonth(date: DateValue): DateValue;\nexport function startOfMonth(date: DateValue): DateValue {\n // Use `subtract` instead of `set` so we don't get constrained in an era.\n return date.subtract({days: date.day - 1});\n}\n\n/** Returns the last date of the month for the given date. */\nexport function endOfMonth(date: ZonedDateTime): ZonedDateTime;\nexport function endOfMonth(date: CalendarDateTime): CalendarDateTime;\nexport function endOfMonth(date: CalendarDate): CalendarDate;\nexport function endOfMonth(date: DateValue): DateValue;\nexport function endOfMonth(date: DateValue): DateValue {\n return date.add({days: date.calendar.getDaysInMonth(date) - date.day});\n}\n\n/** Returns the first day of the year for the given date. */\nexport function startOfYear(date: ZonedDateTime): ZonedDateTime;\nexport function startOfYear(date: CalendarDateTime): CalendarDateTime;\nexport function startOfYear(date: CalendarDate): CalendarDate;\nexport function startOfYear(date: DateValue): DateValue;\nexport function startOfYear(date: DateValue): DateValue {\n return startOfMonth(date.subtract({months: date.month - 1}));\n}\n\n/** Returns the last day of the year for the given date. */\nexport function endOfYear(date: ZonedDateTime): ZonedDateTime;\nexport function endOfYear(date: CalendarDateTime): CalendarDateTime;\nexport function endOfYear(date: CalendarDate): CalendarDate;\nexport function endOfYear(date: DateValue): DateValue;\nexport function endOfYear(date: DateValue): DateValue {\n return endOfMonth(date.add({months: date.calendar.getMonthsInYear(date) - date.month}));\n}\n\nexport function getMinimumMonthInYear(date: AnyCalendarDate) {\n if (date.calendar.getMinimumMonthInYear) {\n return date.calendar.getMinimumMonthInYear(date);\n }\n\n return 1;\n}\n\nexport function getMinimumDayInMonth(date: AnyCalendarDate) {\n if (date.calendar.getMinimumDayInMonth) {\n return date.calendar.getMinimumDayInMonth(date);\n }\n\n return 1;\n}\n\n/** Returns the first date of the week for the given date and locale. */\nexport function startOfWeek(date: ZonedDateTime, locale: string): ZonedDateTime;\nexport function startOfWeek(date: CalendarDateTime, locale: string): CalendarDateTime;\nexport function startOfWeek(date: CalendarDate, locale: string): CalendarDate;\nexport function startOfWeek(date: DateValue, locale: string): DateValue;\nexport function startOfWeek(date: DateValue, locale: string): DateValue {\n let dayOfWeek = getDayOfWeek(date, locale);\n return date.subtract({days: dayOfWeek});\n}\n\n/** Returns the last date of the week for the given date and locale. */\nexport function endOfWeek(date: ZonedDateTime, locale: string): ZonedDateTime;\nexport function endOfWeek(date: CalendarDateTime, locale: string): CalendarDateTime;\nexport function endOfWeek(date: CalendarDate, locale: string): CalendarDate;\nexport function endOfWeek(date: DateValue, locale: string): DateValue {\n return startOfWeek(date, locale).add({days: 6});\n}\n\nconst cachedRegions = new Map();\n\nfunction getRegion(locale: string) {\n // If the Intl.Locale API is available, use it to get the region for the locale.\n // @ts-ignore\n if (Intl.Locale) {\n // Constructing an Intl.Locale is expensive, so cache the result.\n let region = cachedRegions.get(locale);\n if (!region) {\n // @ts-ignore\n region = new Intl.Locale(locale).maximize().region;\n cachedRegions.set(locale, region);\n }\n return region;\n }\n\n // If not, just try splitting the string.\n // If the second part of the locale string is 'u',\n // then this is a unicode extension, so ignore it.\n // Otherwise, it should be the region.\n let part = locale.split('-')[1];\n return part === 'u' ? null : part;\n}\n\nfunction getWeekStart(locale: string) {\n // TODO: use Intl.Locale for this once browsers support the weekInfo property\n // https://github.com/tc39/proposal-intl-locale-info\n let region = getRegion(locale);\n return weekStartData[region] || 0;\n}\n\n/** Returns the number of weeks in the given month and locale. */\nexport function getWeeksInMonth(date: DateValue, locale: string): number {\n let days = date.calendar.getDaysInMonth(date);\n return Math.ceil((getDayOfWeek(startOfMonth(date), locale) + days) / 7);\n}\n\n/** Returns the lesser of the two provider dates. */\nexport function minDate(a: A, b: B): A | B {\n if (a && b) {\n return a.compare(b) <= 0 ? a : b;\n }\n\n return a || b;\n}\n\n/** Returns the greater of the two provider dates. */\nexport function maxDate(a: A, b: B): A | B {\n if (a && b) {\n return a.compare(b) >= 0 ? a : b;\n }\n\n return a || b;\n}\n\nconst WEEKEND_DATA = {\n AF: [4, 5],\n AE: [5, 6],\n BH: [5, 6],\n DZ: [5, 6],\n EG: [5, 6],\n IL: [5, 6],\n IQ: [5, 6],\n IR: [5, 5],\n JO: [5, 6],\n KW: [5, 6],\n LY: [5, 6],\n OM: [5, 6],\n QA: [5, 6],\n SA: [5, 6],\n SD: [5, 6],\n SY: [5, 6],\n YE: [5, 6]\n};\n\n/** Returns whether the given date is on a weekend in the given locale. */\nexport function isWeekend(date: DateValue, locale: string): boolean {\n let julian = date.calendar.toJulianDay(date);\n\n // If julian is negative, then julian % 7 will be negative, so we adjust\n // accordingly. Julian day 0 is Monday.\n let dayOfWeek = Math.ceil(julian + 1) % 7;\n if (dayOfWeek < 0) {\n dayOfWeek += 7;\n }\n\n let region = getRegion(locale);\n // Use Intl.Locale for this once weekInfo is supported.\n // https://github.com/tc39/proposal-intl-locale-info\n let [start, end] = WEEKEND_DATA[region] || [6, 0];\n return dayOfWeek === start || dayOfWeek === end;\n}\n\n/** Returns whether the given date is on a weekday in the given locale. */\nexport function isWeekday(date: DateValue, locale: string): boolean {\n return !isWeekend(date, locale);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from the TC39 Temporal proposal.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\nimport {AnyCalendarDate, AnyDateTime, AnyTime, Calendar, DateFields, Disambiguation, TimeFields} from './types';\nimport {CalendarDate, CalendarDateTime, Time, ZonedDateTime} from './CalendarDate';\nimport {constrain} from './manipulation';\nimport {getExtendedYear, GregorianCalendar} from './calendars/GregorianCalendar';\nimport {getLocalTimeZone} from './queries';\nimport {Mutable} from './utils';\n\nexport function epochFromDate(date: AnyDateTime) {\n date = toCalendar(date, new GregorianCalendar());\n let year = getExtendedYear(date.era, date.year);\n return epochFromParts(year, date.month, date.day, date.hour, date.minute, date.second, date.millisecond);\n}\n\nfunction epochFromParts(year: number, month: number, day: number, hour: number, minute: number, second: number, millisecond: number) {\n // Note: Date.UTC() interprets one and two-digit years as being in the\n // 20th century, so don't use it\n let date = new Date();\n date.setUTCHours(hour, minute, second, millisecond);\n date.setUTCFullYear(year, month - 1, day);\n return date.getTime();\n}\n\nexport function getTimeZoneOffset(ms: number, timeZone: string) {\n // Fast path for UTC.\n if (timeZone === 'UTC') {\n return 0;\n }\n\n // Fast path: for local timezone, use native Date.\n if (timeZone === getLocalTimeZone()) {\n return new Date(ms).getTimezoneOffset() * -60 * 1000;\n }\n\n let {year, month, day, hour, minute, second} = getTimeZoneParts(ms, timeZone);\n let utc = epochFromParts(year, month, day, hour, minute, second, 0);\n return utc - Math.floor(ms / 1000) * 1000;\n}\n\nconst formattersByTimeZone = new Map();\n\nfunction getTimeZoneParts(ms: number, timeZone: string) {\n let formatter = formattersByTimeZone.get(timeZone);\n if (!formatter) {\n formatter = new Intl.DateTimeFormat('en-US', {\n timeZone,\n hour12: false,\n era: 'short',\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric'\n });\n\n formattersByTimeZone.set(timeZone, formatter);\n }\n\n let parts = formatter.formatToParts(new Date(ms));\n let namedParts: {[name: string]: string} = {};\n for (let part of parts) {\n if (part.type !== 'literal') {\n namedParts[part.type] = part.value;\n }\n }\n\n\n return {\n // Firefox returns B instead of BC... https://bugzilla.mozilla.org/show_bug.cgi?id=1752253\n year: namedParts.era === 'BC' || namedParts.era === 'B' ? -namedParts.year + 1 : +namedParts.year,\n month: +namedParts.month,\n day: +namedParts.day,\n hour: namedParts.hour === '24' ? 0 : +namedParts.hour, // bugs.chromium.org/p/chromium/issues/detail?id=1045791\n minute: +namedParts.minute,\n second: +namedParts.second\n };\n}\n\nconst DAYMILLIS = 86400000;\n\nexport function possibleAbsolutes(date: CalendarDateTime, timeZone: string): number[] {\n let ms = epochFromDate(date);\n let earlier = ms - getTimeZoneOffset(ms - DAYMILLIS, timeZone);\n let later = ms - getTimeZoneOffset(ms + DAYMILLIS, timeZone);\n return getValidWallTimes(date, timeZone, earlier, later);\n}\n\nfunction getValidWallTimes(date: CalendarDateTime, timeZone: string, earlier: number, later: number): number[] {\n let found = earlier === later ? [earlier] : [earlier, later];\n return found.filter(absolute => isValidWallTime(date, timeZone, absolute));\n}\n\nfunction isValidWallTime(date: CalendarDateTime, timeZone: string, absolute: number) {\n let parts = getTimeZoneParts(absolute, timeZone);\n return date.year === parts.year\n && date.month === parts.month\n && date.day === parts.day\n && date.hour === parts.hour\n && date.minute === parts.minute\n && date.second === parts.second;\n}\n\nexport function toAbsolute(date: CalendarDate | CalendarDateTime, timeZone: string, disambiguation: Disambiguation = 'compatible'): number {\n let dateTime = toCalendarDateTime(date);\n\n // Fast path: if the time zone is UTC, use native Date.\n if (timeZone === 'UTC') {\n return epochFromDate(dateTime);\n }\n\n // Fast path: if the time zone is the local timezone and disambiguation is compatible, use native Date.\n if (timeZone === getLocalTimeZone() && disambiguation === 'compatible') {\n dateTime = toCalendar(dateTime, new GregorianCalendar());\n\n // Don't use Date constructor here because two-digit years are interpreted in the 20th century.\n let date = new Date();\n let year = getExtendedYear(dateTime.era, dateTime.year);\n date.setFullYear(year, dateTime.month - 1, dateTime.day);\n date.setHours(dateTime.hour, dateTime.minute, dateTime.second, dateTime.millisecond);\n return date.getTime();\n }\n\n let ms = epochFromDate(dateTime);\n let offsetBefore = getTimeZoneOffset(ms - DAYMILLIS, timeZone);\n let offsetAfter = getTimeZoneOffset(ms + DAYMILLIS, timeZone);\n let valid = getValidWallTimes(dateTime, timeZone, ms - offsetBefore, ms - offsetAfter);\n\n if (valid.length === 1) {\n return valid[0];\n }\n\n if (valid.length > 1) {\n switch (disambiguation) {\n // 'compatible' means 'earlier' for \"fall back\" transitions\n case 'compatible':\n case 'earlier':\n return valid[0];\n case 'later':\n return valid[valid.length - 1];\n case 'reject':\n throw new RangeError('Multiple possible absolute times found');\n }\n }\n\n switch (disambiguation) {\n case 'earlier':\n return Math.min(ms - offsetBefore, ms - offsetAfter);\n // 'compatible' means 'later' for \"spring forward\" transitions\n case 'compatible':\n case 'later':\n return Math.max(ms - offsetBefore, ms - offsetAfter);\n case 'reject':\n throw new RangeError('No such absolute time found');\n }\n}\n\nexport function toDate(dateTime: CalendarDate | CalendarDateTime, timeZone: string, disambiguation: Disambiguation = 'compatible'): Date {\n return new Date(toAbsolute(dateTime, timeZone, disambiguation));\n}\n\nexport function fromAbsolute(ms: number, timeZone: string): ZonedDateTime {\n let offset = getTimeZoneOffset(ms, timeZone);\n let date = new Date(ms + offset);\n let year = date.getUTCFullYear();\n let month = date.getUTCMonth() + 1;\n let day = date.getUTCDate();\n let hour = date.getUTCHours();\n let minute = date.getUTCMinutes();\n let second = date.getUTCSeconds();\n let millisecond = date.getUTCMilliseconds();\n\n return new ZonedDateTime(year, month, day, timeZone, offset, hour, minute, second, millisecond);\n}\n\nexport function fromDate(date: Date, timeZone: string): ZonedDateTime {\n return fromAbsolute(date.getTime(), timeZone);\n}\n\nexport function fromDateToLocal(date: Date): ZonedDateTime {\n return fromDate(date, getLocalTimeZone());\n}\n\n/** Converts a value with date components such as a `CalendarDateTime` or `ZonedDateTime` into a `CalendarDate`. */\nexport function toCalendarDate(dateTime: AnyCalendarDate): CalendarDate {\n return new CalendarDate(dateTime.calendar, dateTime.era, dateTime.year, dateTime.month, dateTime.day);\n}\n\nexport function toDateFields(date: AnyCalendarDate): DateFields {\n return {\n era: date.era,\n year: date.year,\n month: date.month,\n day: date.day\n };\n}\n\nexport function toTimeFields(date: AnyTime): TimeFields {\n return {\n hour: date.hour,\n minute: date.minute,\n second: date.second,\n millisecond: date.millisecond\n };\n}\n\n/**\n * Converts a date value to a `CalendarDateTime`. An optional `Time` value can be passed to set the time\n * of the resulting value, otherwise it will default to midnight.\n */\nexport function toCalendarDateTime(date: CalendarDate | CalendarDateTime | ZonedDateTime, time?: AnyTime): CalendarDateTime {\n let hour = 0, minute = 0, second = 0, millisecond = 0;\n if ('timeZone' in date) {\n ({hour, minute, second, millisecond} = date);\n } else if ('hour' in date && !time) {\n return date;\n }\n\n if (time) {\n ({hour, minute, second, millisecond} = time);\n }\n\n return new CalendarDateTime(\n date.calendar,\n date.era,\n date.year,\n date.month,\n date.day,\n hour,\n minute,\n second,\n millisecond\n );\n}\n\n/** Extracts the time components from a value containing a date and time. */\nexport function toTime(dateTime: CalendarDateTime | ZonedDateTime): Time {\n return new Time(dateTime.hour, dateTime.minute, dateTime.second, dateTime.millisecond);\n}\n\n/** Converts a date from one calendar system to another. */\nexport function toCalendar(date: T, calendar: Calendar): T {\n if (date.calendar.identifier === calendar.identifier) {\n return date;\n }\n\n let calendarDate = calendar.fromJulianDay(date.calendar.toJulianDay(date));\n let copy: Mutable = date.copy();\n copy.calendar = calendar;\n copy.era = calendarDate.era;\n copy.year = calendarDate.year;\n copy.month = calendarDate.month;\n copy.day = calendarDate.day;\n constrain(copy);\n return copy;\n}\n\n/**\n * Converts a date value to a `ZonedDateTime` in the provided time zone. The `disambiguation` option can be set\n * to control how values that fall on daylight saving time changes are interpreted.\n */\nexport function toZoned(date: CalendarDate | CalendarDateTime | ZonedDateTime, timeZone: string, disambiguation?: Disambiguation): ZonedDateTime {\n if (date instanceof ZonedDateTime) {\n if (date.timeZone === timeZone) {\n return date;\n }\n\n return toTimeZone(date, timeZone);\n }\n\n let ms = toAbsolute(date, timeZone, disambiguation);\n return fromAbsolute(ms, timeZone);\n}\n\nexport function zonedToDate(date: ZonedDateTime) {\n let ms = epochFromDate(date) - date.offset;\n return new Date(ms);\n}\n\n/** Converts a `ZonedDateTime` from one time zone to another. */\nexport function toTimeZone(date: ZonedDateTime, timeZone: string): ZonedDateTime {\n let ms = epochFromDate(date) - date.offset;\n return toCalendar(fromAbsolute(ms, timeZone), date.calendar);\n}\n\n/** Converts the given `ZonedDateTime` into the user's local time zone. */\nexport function toLocalTimeZone(date: ZonedDateTime): ZonedDateTime {\n return toTimeZone(date, getLocalTimeZone());\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {add, addTime, addZoned, constrain, constrainTime, cycleDate, cycleTime, cycleZoned, set, setTime, setZoned, subtract, subtractTime, subtractZoned} from './manipulation';\nimport {AnyCalendarDate, AnyTime, Calendar, CycleOptions, CycleTimeOptions, DateDuration, DateField, DateFields, DateTimeDuration, Disambiguation, TimeDuration, TimeField, TimeFields} from './types';\nimport {compareDate, compareTime} from './queries';\nimport {dateTimeToString, dateToString, timeToString, zonedDateTimeToString} from './string';\nimport {GregorianCalendar} from './calendars/GregorianCalendar';\nimport {toCalendarDateTime, toDate, toZoned, zonedToDate} from './conversion';\n\nfunction shiftArgs(args: any[]) {\n let calendar: Calendar = typeof args[0] === 'object'\n ? args.shift()\n : new GregorianCalendar();\n\n let era: string;\n if (typeof args[0] === 'string') {\n era = args.shift();\n } else {\n let eras = calendar.getEras();\n era = eras[eras.length - 1];\n }\n\n let year = args.shift();\n let month = args.shift();\n let day = args.shift();\n\n return [calendar, era, year, month, day];\n}\n\n/** A CalendarDate represents a date without any time components in a specific calendar system. */\nexport class CalendarDate {\n // This prevents TypeScript from allowing other types with the same fields to match.\n // i.e. a ZonedDateTime should not be be passable to a parameter that expects CalendarDate.\n // If that behavior is desired, use the AnyCalendarDate interface instead.\n #type;\n /** The calendar system associated with this date, e.g. Gregorian. */\n public readonly calendar: Calendar;\n /** The calendar era for this date, e.g. \"BC\" or \"AD\". */\n public readonly era: string;\n /** The year of this date within the era. */\n public readonly year: number;\n /**\n * The month number within the year. Note that some calendar systems such as Hebrew\n * may have a variable number of months per year. Therefore, month numbers may not\n * always correspond to the same month names in different years.\n */\n public readonly month: number;\n /** The day number within the month. */\n public readonly day: number;\n\n constructor(year: number, month: number, day: number);\n constructor(era: string, year: number, month: number, day: number);\n constructor(calendar: Calendar, year: number, month: number, day: number);\n constructor(calendar: Calendar, era: string, year: number, month: number, day: number);\n constructor(...args: any[]) {\n let [calendar, era, year, month, day] = shiftArgs(args);\n this.calendar = calendar;\n this.era = era;\n this.year = year;\n this.month = month;\n this.day = day;\n\n constrain(this);\n }\n\n /** Returns a copy of this date. */\n copy(): CalendarDate {\n if (this.era) {\n return new CalendarDate(this.calendar, this.era, this.year, this.month, this.day);\n } else {\n return new CalendarDate(this.calendar, this.year, this.month, this.day);\n }\n }\n\n /** Returns a new `CalendarDate` with the given duration added to it. */\n add(duration: DateDuration): CalendarDate {\n return add(this, duration);\n }\n\n /** Returns a new `CalendarDate` with the given duration subtracted from it. */\n subtract(duration: DateDuration): CalendarDate {\n return subtract(this, duration);\n }\n\n /** Returns a new `CalendarDate` with the given fields set to the provided values. Other fields will be constrained accordingly. */\n set(fields: DateFields): CalendarDate {\n return set(this, fields);\n }\n\n /**\n * Returns a new `CalendarDate` with the given field adjusted by a specified amount.\n * When the resulting value reaches the limits of the field, it wraps around.\n */\n cycle(field: DateField, amount: number, options?: CycleOptions): CalendarDate {\n return cycleDate(this, field, amount, options);\n }\n\n /** Converts the date to a native JavaScript Date object, with the time set to midnight in the given time zone. */\n toDate(timeZone: string): Date {\n return toDate(this, timeZone);\n }\n\n /** Converts the date to an ISO 8601 formatted string. */\n toString(): string {\n return dateToString(this);\n }\n\n /** Compares this date with another. A negative result indicates that this date is before the given one, and a positive date indicates that it is after. */\n compare(b: AnyCalendarDate): number {\n return compareDate(this, b);\n }\n}\n\n/** A Time represents a clock time without any date components. */\nexport class Time {\n // This prevents TypeScript from allowing other types with the same fields to match.\n #type;\n /** The hour, numbered from 0 to 23. */\n public readonly hour: number;\n /** The minute in the hour. */\n public readonly minute: number;\n /** The second in the minute. */\n public readonly second: number;\n /** The millisecond in the second. */\n public readonly millisecond: number;\n\n constructor(\n hour: number = 0,\n minute: number = 0,\n second: number = 0,\n millisecond: number = 0\n ) {\n this.hour = hour;\n this.minute = minute;\n this.second = second;\n this.millisecond = millisecond;\n constrainTime(this);\n }\n\n /** Returns a copy of this time. */\n copy(): Time {\n return new Time(this.hour, this.minute, this.second, this.millisecond);\n }\n\n /** Returns a new `Time` with the given duration added to it. */\n add(duration: TimeDuration) {\n return addTime(this, duration);\n }\n\n /** Returns a new `Time` with the given duration subtracted from it. */\n subtract(duration: TimeDuration) {\n return subtractTime(this, duration);\n }\n\n /** Returns a new `Time` with the given fields set to the provided values. Other fields will be constrained accordingly. */\n set(fields: TimeFields) {\n return setTime(this, fields);\n }\n\n /**\n * Returns a new `Time` with the given field adjusted by a specified amount.\n * When the resulting value reaches the limits of the field, it wraps around.\n */\n cycle(field: TimeField, amount: number, options?: CycleTimeOptions) {\n return cycleTime(this, field, amount, options);\n }\n\n /** Converts the time to an ISO 8601 formatted string. */\n toString() {\n return timeToString(this);\n }\n\n /** Compares this time with another. A negative result indicates that this time is before the given one, and a positive time indicates that it is after. */\n compare(b: AnyTime) {\n return compareTime(this, b);\n }\n}\n\n/** A CalendarDateTime represents a date and time without a time zone, in a specific calendar system. */\nexport class CalendarDateTime {\n // This prevents TypeScript from allowing other types with the same fields to match.\n #type;\n /** The calendar system associated with this date, e.g. Gregorian. */\n public readonly calendar: Calendar;\n /** The calendar era for this date, e.g. \"BC\" or \"AD\". */\n public readonly era: string;\n /** The year of this date within the era. */\n public readonly year: number;\n /**\n * The month number within the year. Note that some calendar systems such as Hebrew\n * may have a variable number of months per year. Therefore, month numbers may not\n * always correspond to the same month names in different years.\n */\n public readonly month: number;\n /** The day number within the month. */\n public readonly day: number;\n /** The hour in the day, numbered from 0 to 23. */\n public readonly hour: number;\n /** The minute in the hour. */\n public readonly minute: number;\n /** The second in the minute. */\n public readonly second: number;\n /** The millisecond in the second. */\n public readonly millisecond: number;\n\n constructor(year: number, month: number, day: number, hour?: number, minute?: number, second?: number, millisecond?: number);\n constructor(era: string, year: number, month: number, day: number, hour?: number, minute?: number, second?: number, millisecond?: number);\n constructor(calendar: Calendar, year: number, month: number, day: number, hour?: number, minute?: number, second?: number, millisecond?: number);\n constructor(calendar: Calendar, era: string, year: number, month: number, day: number, hour?: number, minute?: number, second?: number, millisecond?: number);\n constructor(...args: any[]) {\n let [calendar, era, year, month, day] = shiftArgs(args);\n this.calendar = calendar;\n this.era = era;\n this.year = year;\n this.month = month;\n this.day = day;\n this.hour = args.shift() || 0;\n this.minute = args.shift() || 0;\n this.second = args.shift() || 0;\n this.millisecond = args.shift() || 0;\n\n constrain(this);\n }\n\n /** Returns a copy of this date. */\n copy(): CalendarDateTime {\n if (this.era) {\n return new CalendarDateTime(this.calendar, this.era, this.year, this.month, this.day, this.hour, this.minute, this.second, this.millisecond);\n } else {\n return new CalendarDateTime(this.calendar, this.year, this.month, this.day, this.hour, this.minute, this.second, this.millisecond);\n }\n }\n\n /** Returns a new `CalendarDateTime` with the given duration added to it. */\n add(duration: DateTimeDuration): CalendarDateTime {\n return add(this, duration);\n }\n\n /** Returns a new `CalendarDateTime` with the given duration subtracted from it. */\n subtract(duration: DateTimeDuration): CalendarDateTime {\n return subtract(this, duration);\n }\n\n /** Returns a new `CalendarDateTime` with the given fields set to the provided values. Other fields will be constrained accordingly. */\n set(fields: DateFields & TimeFields): CalendarDateTime {\n return set(setTime(this, fields), fields);\n }\n\n /**\n * Returns a new `CalendarDateTime` with the given field adjusted by a specified amount.\n * When the resulting value reaches the limits of the field, it wraps around.\n */\n cycle(field: DateField | TimeField, amount: number, options?: CycleTimeOptions): CalendarDateTime {\n switch (field) {\n case 'era':\n case 'year':\n case 'month':\n case 'day':\n return cycleDate(this, field, amount, options);\n default:\n return cycleTime(this, field, amount, options);\n }\n }\n\n /** Converts the date to a native JavaScript Date object in the given time zone. */\n toDate(timeZone: string, disambiguation?: Disambiguation): Date {\n return toDate(this, timeZone, disambiguation);\n }\n\n /** Converts the date to an ISO 8601 formatted string. */\n toString(): string {\n return dateTimeToString(this);\n }\n\n /** Compares this date with another. A negative result indicates that this date is before the given one, and a positive date indicates that it is after. */\n compare(b: CalendarDate | CalendarDateTime | ZonedDateTime): number {\n let res = compareDate(this, b);\n if (res === 0) {\n return compareTime(this, toCalendarDateTime(b));\n }\n\n return res;\n }\n}\n\n/** A ZonedDateTime represents a date and time in a specific time zone and calendar system. */\nexport class ZonedDateTime {\n // This prevents TypeScript from allowing other types with the same fields to match.\n #type;\n /** The calendar system associated with this date, e.g. Gregorian. */\n public readonly calendar: Calendar;\n /** The calendar era for this date, e.g. \"BC\" or \"AD\". */\n public readonly era: string;\n /** The year of this date within the era. */\n public readonly year: number;\n /**\n * The month number within the year. Note that some calendar systems such as Hebrew\n * may have a variable number of months per year. Therefore, month numbers may not\n * always correspond to the same month names in different years.\n */\n public readonly month: number;\n /** The day number within the month. */\n public readonly day: number;\n /** The hour in the day, numbered from 0 to 23. */\n public readonly hour: number;\n /** The minute in the hour. */\n public readonly minute: number;\n /** The second in the minute. */\n public readonly second: number;\n /** The millisecond in the second. */\n public readonly millisecond: number;\n /** The IANA time zone identifier that this date and time is represented in. */\n public readonly timeZone: string;\n /** The UTC offset for this time, in seconds. */\n public readonly offset: number;\n\n constructor(year: number, month: number, day: number, timeZone: string, offset: number, hour?: number, minute?: number, second?: number, millisecond?: number);\n constructor(era: string, year: number, month: number, day: number, timeZone: string, offset: number, hour?: number, minute?: number, second?: number, millisecond?: number);\n constructor(calendar: Calendar, year: number, month: number, day: number, timeZone: string, offset: number, hour?: number, minute?: number, second?: number, millisecond?: number);\n constructor(calendar: Calendar, era: string, year: number, month: number, day: number, timeZone: string, offset: number, hour?: number, minute?: number, second?: number, millisecond?: number);\n constructor(...args: any[]) {\n let [calendar, era, year, month, day] = shiftArgs(args);\n let timeZone = args.shift();\n let offset = args.shift();\n this.calendar = calendar;\n this.era = era;\n this.year = year;\n this.month = month;\n this.day = day;\n this.timeZone = timeZone;\n this.offset = offset;\n this.hour = args.shift() || 0;\n this.minute = args.shift() || 0;\n this.second = args.shift() || 0;\n this.millisecond = args.shift() || 0;\n\n constrain(this);\n }\n\n /** Returns a copy of this date. */\n copy(): ZonedDateTime {\n if (this.era) {\n return new ZonedDateTime(this.calendar, this.era, this.year, this.month, this.day, this.timeZone, this.offset, this.hour, this.minute, this.second, this.millisecond);\n } else {\n return new ZonedDateTime(this.calendar, this.year, this.month, this.day, this.timeZone, this.offset, this.hour, this.minute, this.second, this.millisecond);\n }\n }\n\n /** Returns a new `ZonedDateTime` with the given duration added to it. */\n add(duration: DateTimeDuration) {\n return addZoned(this, duration);\n }\n\n /** Returns a new `ZonedDateTime` with the given duration subtracted from it. */\n subtract(duration: DateTimeDuration) {\n return subtractZoned(this, duration);\n }\n\n /** Returns a new `ZonedDateTime` with the given fields set to the provided values. Other fields will be constrained accordingly. */\n set(fields: DateFields & TimeFields, disambiguation?: Disambiguation) {\n return setZoned(this, fields, disambiguation);\n }\n\n /**\n * Returns a new `ZonedDateTime` with the given field adjusted by a specified amount.\n * When the resulting value reaches the limits of the field, it wraps around.\n */\n cycle(field: DateField | TimeField, amount: number, options?: CycleTimeOptions) {\n return cycleZoned(this, field, amount, options);\n }\n\n /** Converts the date to a native JavaScript Date object. */\n toDate() {\n return zonedToDate(this);\n }\n\n /** Converts the date to an ISO 8601 formatted string, including the UTC offset and time zone identifier. */\n toString() {\n return zonedDateTimeToString(this);\n }\n\n /** Converts the date to an ISO 8601 formatted string in UTC. */\n toAbsoluteString() {\n return this.toDate().toISOString();\n }\n\n /** Compares this date with another. A negative result indicates that this date is before the given one, and a positive date indicates that it is after. */\n compare(b: CalendarDate | CalendarDateTime | ZonedDateTime) {\n // TODO: Is this a bad idea??\n return this.toDate().getTime() - toZoned(b, this.timeZone).toDate().getTime();\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nlet formatterCache = new Map();\n\ninterface ResolvedDateTimeFormatOptions extends Intl.ResolvedDateTimeFormatOptions {\n hourCycle?: Intl.DateTimeFormatOptions['hourCycle']\n}\n\ninterface DateRangeFormatPart extends Intl.DateTimeFormatPart {\n source: 'startRange' | 'endRange' | 'shared'\n}\n\n/** A wrapper around Intl.DateTimeFormat that fixes various browser bugs, and polyfills new features. */\nexport class DateFormatter implements Intl.DateTimeFormat {\n private formatter: Intl.DateTimeFormat;\n private options: Intl.DateTimeFormatOptions;\n private resolvedHourCycle: Intl.DateTimeFormatOptions['hourCycle'];\n\n constructor(locale: string, options: Intl.DateTimeFormatOptions = {}) {\n this.formatter = getCachedDateFormatter(locale, options);\n this.options = options;\n }\n\n /** Formats a date as a string according to the locale and format options passed to the constructor. */\n format(value: Date): string {\n return this.formatter.format(value);\n }\n\n /** Formats a date to an array of parts such as separators, numbers, punctuation, and more. */\n formatToParts(value: Date): Intl.DateTimeFormatPart[] {\n return this.formatter.formatToParts(value);\n }\n\n /** Formats a date range as a string. */\n formatRange(start: Date, end: Date): string {\n // @ts-ignore\n if (typeof this.formatter.formatRange === 'function') {\n // @ts-ignore\n return this.formatter.formatRange(start, end);\n }\n\n if (end < start) {\n throw new RangeError('End date must be >= start date');\n }\n\n // Very basic fallback for old browsers.\n return `${this.formatter.format(start)} – ${this.formatter.format(end)}`;\n }\n\n /** Formats a date range as an array of parts. */\n formatRangeToParts(start: Date, end: Date): DateRangeFormatPart[] {\n // @ts-ignore\n if (typeof this.formatter.formatRangeToParts === 'function') {\n // @ts-ignore\n return this.formatter.formatRangeToParts(start, end);\n }\n\n if (end < start) {\n throw new RangeError('End date must be >= start date');\n }\n\n let startParts = this.formatter.formatToParts(start);\n let endParts = this.formatter.formatToParts(end);\n return [\n ...startParts.map(p => ({...p, source: 'startRange'} as DateRangeFormatPart)),\n {type: 'literal', value: ' – ', source: 'shared'},\n ...endParts.map(p => ({...p, source: 'endRange'} as DateRangeFormatPart))\n ];\n }\n\n /** Returns the resolved formatting options based on the values passed to the constructor. */\n resolvedOptions(): ResolvedDateTimeFormatOptions {\n let resolvedOptions = this.formatter.resolvedOptions() as ResolvedDateTimeFormatOptions;\n if (hasBuggyResolvedHourCycle()) {\n if (!this.resolvedHourCycle) {\n this.resolvedHourCycle = getResolvedHourCycle(resolvedOptions.locale, this.options);\n }\n resolvedOptions.hourCycle = this.resolvedHourCycle;\n resolvedOptions.hour12 = this.resolvedHourCycle === 'h11' || this.resolvedHourCycle === 'h12';\n }\n\n // Safari uses a different name for the Ethiopic (Amete Alem) calendar.\n // https://bugs.webkit.org/show_bug.cgi?id=241564\n if (resolvedOptions.calendar === 'ethiopic-amete-alem') {\n resolvedOptions.calendar = 'ethioaa';\n }\n\n return resolvedOptions;\n }\n}\n\n// There are multiple bugs involving the hour12 and hourCycle options in various browser engines.\n// - Chrome [1] (and the ECMA 402 spec [2]) resolve hour12: false in English and other locales to h24 (24:00 - 23:59)\n// rather than h23 (00:00 - 23:59). Same can happen with hour12: true in French, which Chrome resolves to h11 (00:00 - 11:59)\n// rather than h12 (12:00 - 11:59).\n// - WebKit returns an incorrect hourCycle resolved option in the French locale due to incorrect parsing of 'h' literal\n// in the resolved pattern. It also formats incorrectly when specifying the hourCycle option for the same reason. [3]\n// [1] https://bugs.chromium.org/p/chromium/issues/detail?id=1045791\n// [2] https://github.com/tc39/ecma402/issues/402\n// [3] https://bugs.webkit.org/show_bug.cgi?id=229313\n\n// https://github.com/unicode-org/cldr/blob/018b55eff7ceb389c7e3fc44e2f657eae3b10b38/common/supplemental/supplementalData.xml#L4774-L4802\nconst hour12Preferences = {\n true: {\n // Only Japanese uses the h11 style for 12 hour time. All others use h12.\n ja: 'h11'\n },\n false: {\n // All locales use h23 for 24 hour time. None use h24.\n }\n};\n\nfunction getCachedDateFormatter(locale: string, options: Intl.DateTimeFormatOptions = {}): Intl.DateTimeFormat {\n // Work around buggy hour12 behavior in Chrome / ECMA 402 spec by using hourCycle instead.\n // Only apply the workaround if the issue is detected, because the hourCycle option is buggy in Safari.\n if (typeof options.hour12 === 'boolean' && hasBuggyHour12Behavior()) {\n options = {...options};\n let pref = hour12Preferences[String(options.hour12)][locale.split('-')[0]];\n let defaultHourCycle = options.hour12 ? 'h12' : 'h23';\n options.hourCycle = pref ?? defaultHourCycle;\n delete options.hour12;\n }\n\n let cacheKey = locale + (options ? Object.entries(options).sort((a, b) => a[0] < b[0] ? -1 : 1).join() : '');\n if (formatterCache.has(cacheKey)) {\n return formatterCache.get(cacheKey);\n }\n\n let numberFormatter = new Intl.DateTimeFormat(locale, options);\n formatterCache.set(cacheKey, numberFormatter);\n return numberFormatter;\n}\n\nlet _hasBuggyHour12Behavior: boolean = null;\nfunction hasBuggyHour12Behavior() {\n if (_hasBuggyHour12Behavior == null) {\n _hasBuggyHour12Behavior = new Intl.DateTimeFormat('en-US', {\n hour: 'numeric',\n hour12: false\n }).format(new Date(2020, 2, 3, 0)) === '24';\n }\n\n return _hasBuggyHour12Behavior;\n}\n\nlet _hasBuggyResolvedHourCycle: boolean = null;\nfunction hasBuggyResolvedHourCycle() {\n if (_hasBuggyResolvedHourCycle == null) {\n _hasBuggyResolvedHourCycle = (new Intl.DateTimeFormat('fr', {\n hour: 'numeric',\n hour12: false\n }).resolvedOptions() as ResolvedDateTimeFormatOptions).hourCycle === 'h12';\n }\n\n return _hasBuggyResolvedHourCycle;\n}\n\nfunction getResolvedHourCycle(locale: string, options: Intl.DateTimeFormatOptions) {\n if (!options.timeStyle && !options.hour) {\n return undefined;\n }\n\n // Work around buggy results in resolved hourCycle and hour12 options in WebKit.\n // Format the minimum possible hour and maximum possible hour in a day and parse the results.\n locale = locale.replace(/(-u-)?-nu-[a-zA-Z0-9]+/, '');\n locale += (locale.includes('-u-') ? '' : '-u') + '-nu-latn';\n let formatter = getCachedDateFormatter(locale, {\n ...options,\n timeZone: undefined // use local timezone\n });\n\n let min = parseInt(formatter.formatToParts(new Date(2020, 2, 3, 0)).find(p => p.type === 'hour').value, 10);\n let max = parseInt(formatter.formatToParts(new Date(2020, 2, 3, 23)).find(p => p.type === 'hour').value, 10);\n\n if (min === 0 && max === 23) {\n return 'h23';\n }\n\n if (min === 24 && max === 23) {\n return 'h24';\n }\n\n if (min === 0 && max === 11) {\n return 'h11';\n }\n\n if (min === 12 && max === 11) {\n return 'h12';\n }\n\n throw new Error('Unexpected hour cycle result');\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nlet formatterCache = new Map();\n\nlet supportsSignDisplay = false;\ntry {\n // @ts-ignore\n supportsSignDisplay = (new Intl.NumberFormat('de-DE', {signDisplay: 'exceptZero'})).resolvedOptions().signDisplay === 'exceptZero';\n // eslint-disable-next-line no-empty\n} catch (e) {}\n\nlet supportsUnit = false;\ntry {\n // @ts-ignore\n supportsUnit = (new Intl.NumberFormat('de-DE', {style: 'unit', unit: 'degree'})).resolvedOptions().style === 'unit';\n // eslint-disable-next-line no-empty\n} catch (e) {}\n\n// Polyfill for units since Safari doesn't support them yet. See https://bugs.webkit.org/show_bug.cgi?id=215438.\n// Currently only polyfilling the unit degree in narrow format for ColorSlider in our supported locales.\n// Values were determined by switching to each locale manually in Chrome.\nconst UNITS = {\n degree: {\n narrow: {\n default: '°',\n 'ja-JP': ' 度',\n 'zh-TW': '度',\n 'sl-SI': ' °'\n // Arabic?? But Safari already doesn't use Arabic digits so might be ok...\n // https://bugs.webkit.org/show_bug.cgi?id=218139\n }\n }\n};\n\nexport interface NumberFormatOptions extends Intl.NumberFormatOptions {\n /** Overrides default numbering system for the current locale. */\n numberingSystem?: string\n}\n\ninterface NumberRangeFormatPart extends Intl.NumberFormatPart {\n source: 'startRange' | 'endRange' | 'shared'\n}\n\n/**\n * A wrapper around Intl.NumberFormat providing additional options, polyfills, and caching for performance.\n */\nexport class NumberFormatter implements Intl.NumberFormat {\n private numberFormatter: Intl.NumberFormat;\n private options: NumberFormatOptions;\n\n constructor(locale: string, options: NumberFormatOptions = {}) {\n this.numberFormatter = getCachedNumberFormatter(locale, options);\n this.options = options;\n }\n\n /** Formats a number value as a string, according to the locale and options provided to the constructor. */\n format(value: number): string {\n let res = '';\n if (!supportsSignDisplay && this.options.signDisplay != null) {\n res = numberFormatSignDisplayPolyfill(this.numberFormatter, this.options.signDisplay, value);\n } else {\n res = this.numberFormatter.format(value);\n }\n\n if (this.options.style === 'unit' && !supportsUnit) {\n let {unit, unitDisplay = 'short', locale} = this.resolvedOptions();\n let values = UNITS[unit]?.[unitDisplay];\n res += values[locale] || values.default;\n }\n\n return res;\n }\n\n /** Formats a number to an array of parts such as separators, digits, punctuation, and more. */\n formatToParts(value: number): Intl.NumberFormatPart[] {\n // TODO: implement signDisplay for formatToParts\n // @ts-ignore\n return this.numberFormatter.formatToParts(value);\n }\n\n /** Formats a number range as a string. */\n formatRange(start: number, end: number): string {\n // @ts-ignore\n if (typeof this.numberFormatter.formatRange === 'function') {\n // @ts-ignore\n return this.numberFormatter.formatRange(start, end);\n }\n\n if (end < start) {\n throw new RangeError('End date must be >= start date');\n }\n\n // Very basic fallback for old browsers.\n return `${this.format(start)} – ${this.format(end)}`;\n }\n\n /** Formats a number range as an array of parts. */\n formatRangeToParts(start: number, end: number): NumberRangeFormatPart[] {\n // @ts-ignore\n if (typeof this.numberFormatter.formatRangeToParts === 'function') {\n // @ts-ignore\n return this.numberFormatter.formatRangeToParts(start, end);\n }\n\n if (end < start) {\n throw new RangeError('End date must be >= start date');\n }\n\n let startParts = this.numberFormatter.formatToParts(start);\n let endParts = this.numberFormatter.formatToParts(end);\n return [\n ...startParts.map(p => ({...p, source: 'startRange'} as NumberRangeFormatPart)),\n {type: 'literal', value: ' – ', source: 'shared'},\n ...endParts.map(p => ({...p, source: 'endRange'} as NumberRangeFormatPart))\n ];\n }\n\n /** Returns the resolved formatting options based on the values passed to the constructor. */\n resolvedOptions(): Intl.ResolvedNumberFormatOptions {\n let options = this.numberFormatter.resolvedOptions();\n if (!supportsSignDisplay && this.options.signDisplay != null) {\n options = {...options, signDisplay: this.options.signDisplay};\n }\n\n if (!supportsUnit && this.options.style === 'unit') {\n options = {...options, style: 'unit', unit: this.options.unit, unitDisplay: this.options.unitDisplay};\n }\n\n return options;\n }\n}\n\nfunction getCachedNumberFormatter(locale: string, options: NumberFormatOptions = {}): Intl.NumberFormat {\n let {numberingSystem} = options;\n if (numberingSystem && locale.indexOf('-u-nu-') === -1) {\n locale = `${locale}-u-nu-${numberingSystem}`;\n }\n\n if (options.style === 'unit' && !supportsUnit) {\n let {unit, unitDisplay = 'short'} = options;\n if (!unit) {\n throw new Error('unit option must be provided with style: \"unit\"');\n }\n if (!UNITS[unit]?.[unitDisplay]) {\n throw new Error(`Unsupported unit ${unit} with unitDisplay = ${unitDisplay}`);\n }\n options = {...options, style: 'decimal'};\n }\n\n let cacheKey = locale + (options ? Object.entries(options).sort((a, b) => a[0] < b[0] ? -1 : 1).join() : '');\n if (formatterCache.has(cacheKey)) {\n return formatterCache.get(cacheKey);\n }\n\n let numberFormatter = new Intl.NumberFormat(locale, options);\n formatterCache.set(cacheKey, numberFormatter);\n return numberFormatter;\n}\n\n/** @private - exported for tests */\nexport function numberFormatSignDisplayPolyfill(numberFormat: Intl.NumberFormat, signDisplay: string, num: number) {\n if (signDisplay === 'auto') {\n return numberFormat.format(num);\n } else if (signDisplay === 'never') {\n return numberFormat.format(Math.abs(num));\n } else {\n let needsPositiveSign = false;\n if (signDisplay === 'always') {\n needsPositiveSign = num > 0 || Object.is(num, 0);\n } else if (signDisplay === 'exceptZero') {\n if (Object.is(num, -0) || Object.is(num, 0)) {\n num = Math.abs(num);\n } else {\n needsPositiveSign = num > 0;\n }\n }\n\n if (needsPositiveSign) {\n let negative = numberFormat.format(-num);\n let noSign = numberFormat.format(num);\n // ignore RTL/LTR marker character\n let minus = negative.replace(noSign, '').replace(/\\u200e|\\u061C/, '');\n if ([...minus].length !== 1) {\n console.warn('@react-aria/i18n polyfill for NumberFormat signDisplay: Unsupported case');\n }\n let positive = negative.replace(noSign, '!!!').replace(minus, '+').replace('!!!', noSign);\n return positive;\n } else {\n return numberFormat.format(num);\n }\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\ninterface Symbols {\n minusSign: string,\n plusSign: string,\n decimal: string,\n group: string,\n literals: RegExp,\n numeral: RegExp,\n index: (v: string) => string\n}\n\nconst CURRENCY_SIGN_REGEX = new RegExp('^.*\\\\(.*\\\\).*$');\nconst NUMBERING_SYSTEMS = ['latn', 'arab', 'hanidec'];\n\n/**\n * A NumberParser can be used to perform locale-aware parsing of numbers from Unicode strings,\n * as well as validation of partial user input. It automatically detects the numbering system\n * used in the input, and supports parsing decimals, percentages, currency values, and units\n * according to the locale.\n */\nexport class NumberParser {\n private locale: string;\n private options: Intl.NumberFormatOptions;\n\n constructor(locale: string, options: Intl.NumberFormatOptions = {}) {\n this.locale = locale;\n this.options = options;\n }\n\n /**\n * Parses the given string to a number. Returns NaN if a valid number could not be parsed.\n */\n parse(value: string): number {\n return getNumberParserImpl(this.locale, this.options, value).parse(value);\n }\n\n /**\n * Returns whether the given string could potentially be a valid number. This should be used to\n * validate user input as the user types. If a `minValue` or `maxValue` is provided, the validity\n * of the minus/plus sign characters can be checked.\n */\n isValidPartialNumber(value: string, minValue?: number, maxValue?: number): boolean {\n return getNumberParserImpl(this.locale, this.options, value).isValidPartialNumber(value, minValue, maxValue);\n }\n\n /**\n * Returns a numbering system for which the given string is valid in the current locale.\n * If no numbering system could be detected, the default numbering system for the current\n * locale is returned.\n */\n getNumberingSystem(value: string): string {\n return getNumberParserImpl(this.locale, this.options, value).options.numberingSystem;\n }\n}\n\nconst numberParserCache = new Map();\nfunction getNumberParserImpl(locale: string, options: Intl.NumberFormatOptions, value: string) {\n // First try the default numbering system for the provided locale\n let defaultParser = getCachedNumberParser(locale, options);\n\n // If that doesn't match, and the locale doesn't include a hard coded numbering system,\n // try each of the other supported numbering systems until we find one that matches.\n if (!locale.includes('-nu-') && !defaultParser.isValidPartialNumber(value)) {\n for (let numberingSystem of NUMBERING_SYSTEMS) {\n if (numberingSystem !== defaultParser.options.numberingSystem) {\n let parser = getCachedNumberParser(locale + (locale.includes('-u-') ? '-nu-' : '-u-nu-') + numberingSystem, options);\n if (parser.isValidPartialNumber(value)) {\n return parser;\n }\n }\n }\n }\n\n return defaultParser;\n}\n\nfunction getCachedNumberParser(locale: string, options: Intl.NumberFormatOptions) {\n let cacheKey = locale + (options ? Object.entries(options).sort((a, b) => a[0] < b[0] ? -1 : 1).join() : '');\n let parser = numberParserCache.get(cacheKey);\n if (!parser) {\n parser = new NumberParserImpl(locale, options);\n numberParserCache.set(cacheKey, parser);\n }\n\n return parser;\n}\n\n// The actual number parser implementation. Instances of this class are cached\n// based on the locale, options, and detected numbering system.\nclass NumberParserImpl {\n formatter: Intl.NumberFormat;\n options: Intl.ResolvedNumberFormatOptions;\n symbols: Symbols;\n\n constructor(locale: string, options: Intl.NumberFormatOptions = {}) {\n this.formatter = new Intl.NumberFormat(locale, options);\n this.options = this.formatter.resolvedOptions();\n this.symbols = getSymbols(this.formatter, this.options, options);\n }\n\n parse(value: string) {\n // to parse the number, we need to remove anything that isn't actually part of the number, for example we want '-10.40' not '-10.40 USD'\n let fullySanitizedValue = this.sanitize(value);\n\n // Remove group characters, and replace decimal points and numerals with ASCII values.\n fullySanitizedValue = replaceAll(fullySanitizedValue, this.symbols.group, '')\n .replace(this.symbols.decimal, '.')\n .replace(this.symbols.minusSign, '-')\n .replace(this.symbols.numeral, this.symbols.index);\n\n let newValue = fullySanitizedValue ? +fullySanitizedValue : NaN;\n if (isNaN(newValue)) {\n return NaN;\n }\n\n // accounting will always be stripped to a positive number, so if it's accounting and has a () around everything, then we need to make it negative again\n if (this.options.currencySign === 'accounting' && CURRENCY_SIGN_REGEX.test(value)) {\n newValue = -1 * newValue;\n }\n\n // when reading the number, if it's a percent, then it should be interpreted as being divided by 100\n if (this.options.style === 'percent') {\n newValue /= 100;\n // after dividing to get the percent value, javascript may get .0210999999 instead of .0211, so fix the number of fraction digits\n newValue = +newValue.toFixed((this.options.maximumFractionDigits ?? 0) + 2);\n }\n\n return newValue;\n }\n\n sanitize(value: string) {\n // Remove literals and whitespace, which are allowed anywhere in the string\n value = value.replace(this.symbols.literals, '');\n\n // Replace the ASCII minus sign with the minus sign used in the current locale\n // so that both are allowed in case the user's keyboard doesn't have the locale's minus sign.\n value = value.replace('-', this.symbols.minusSign);\n\n // In arab numeral system, their decimal character is 1643, but most keyboards don't type that\n // instead they use the , (44) character or apparently the (1548) character.\n if (this.options.numberingSystem === 'arab') {\n value = value.replace(',', this.symbols.decimal);\n value = value.replace(String.fromCharCode(1548), this.symbols.decimal);\n value = replaceAll(value, '.', this.symbols.group);\n }\n\n // fr-FR group character is char code 8239, but that's not a key on the french keyboard,\n // so allow 'period' as a group char and replace it with a space\n if (this.options.locale === 'fr-FR') {\n value = replaceAll(value, '.', String.fromCharCode(8239));\n }\n\n return value;\n }\n\n isValidPartialNumber(value: string, minValue: number = -Infinity, maxValue: number = Infinity): boolean {\n value = this.sanitize(value);\n\n // Remove minus or plus sign, which must be at the start of the string.\n if (value.startsWith(this.symbols.minusSign) && minValue < 0) {\n value = value.slice(this.symbols.minusSign.length);\n } else if (this.symbols.plusSign && value.startsWith(this.symbols.plusSign) && maxValue > 0) {\n value = value.slice(this.symbols.plusSign.length);\n }\n\n // Numbers cannot start with a group separator\n if (value.startsWith(this.symbols.group)) {\n return false;\n }\n\n // Remove numerals, groups, and decimals\n value = replaceAll(value, this.symbols.group, '')\n .replace(this.symbols.numeral, '')\n .replace(this.symbols.decimal, '');\n\n // The number is valid if there are no remaining characters\n return value.length === 0;\n }\n}\n\nconst nonLiteralParts = new Set(['decimal', 'fraction', 'integer', 'minusSign', 'plusSign', 'group']);\n\nfunction getSymbols(formatter: Intl.NumberFormat, intlOptions: Intl.ResolvedNumberFormatOptions, originalOptions: Intl.NumberFormatOptions): Symbols {\n // Note: some locale's don't add a group symbol until there is a ten thousands place\n let allParts = formatter.formatToParts(-10000.111);\n let posAllParts = formatter.formatToParts(10000.111);\n let singularParts = formatter.formatToParts(1);\n\n let minusSign = allParts.find(p => p.type === 'minusSign')?.value ?? '-';\n let plusSign = posAllParts.find(p => p.type === 'plusSign')?.value;\n\n // Safari does not support the signDisplay option, but our number parser polyfills it.\n // If no plus sign was returned, but the original options contained signDisplay, default to the '+' character.\n // @ts-ignore\n if (!plusSign && (originalOptions?.signDisplay === 'exceptZero' || originalOptions?.signDisplay === 'always')) {\n plusSign = '+';\n }\n\n let decimal = allParts.find(p => p.type === 'decimal')?.value;\n let group = allParts.find(p => p.type === 'group')?.value;\n\n // this set is also for a regex, it's all literals that might be in the string we want to eventually parse that\n // don't contribute to the numerical value\n let pluralLiterals = allParts.filter(p => !nonLiteralParts.has(p.type)).map(p => escapeRegex(p.value));\n let singularLiterals = singularParts.filter(p => !nonLiteralParts.has(p.type)).map(p => escapeRegex(p.value));\n let sortedLiterals = [...new Set([...singularLiterals, ...pluralLiterals])].sort((a, b) => b.length - a.length);\n let literals = sortedLiterals.length === 0 ? \n new RegExp('[\\\\p{White_Space}]', 'gu') :\n new RegExp(`${sortedLiterals.join('|')}|[\\\\p{White_Space}]`, 'gu');\n\n // These are for replacing non-latn characters with the latn equivalent\n let numerals = [...new Intl.NumberFormat(intlOptions.locale, {useGrouping: false}).format(9876543210)].reverse();\n let indexes = new Map(numerals.map((d, i) => [d, i]));\n let numeral = new RegExp(`[${numerals.join('')}]`, 'g');\n let index = d => String(indexes.get(d));\n\n return {minusSign, plusSign, decimal, group, literals, numeral, index};\n}\n\nfunction replaceAll(str: string, find: string, replace: string) {\n // @ts-ignore\n if (str.replaceAll) {\n // @ts-ignore\n return str.replaceAll(find, replace);\n }\n\n return str.split(find).join(replace);\n}\n\nfunction escapeRegex(string: string) {\n return string.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// https://en.wikipedia.org/wiki/Right-to-left\nconst RTL_SCRIPTS = new Set(['Arab', 'Syrc', 'Samr', 'Mand', 'Thaa', 'Mend', 'Nkoo', 'Adlm', 'Rohg', 'Hebr']);\nconst RTL_LANGS = new Set(['ae', 'ar', 'arc', 'bcc', 'bqi', 'ckb', 'dv', 'fa', 'glk', 'he', 'ku', 'mzn', 'nqo', 'pnb', 'ps', 'sd', 'ug', 'ur', 'yi']);\n\n/**\n * Determines if a locale is read right to left using [Intl.Locale]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale}.\n */\nexport function isRTL(locale: string) {\n // If the Intl.Locale API is available, use it to get the script for the locale.\n // This is more accurate than guessing by language, since languages can be written in multiple scripts.\n // @ts-ignore\n if (Intl.Locale) {\n // @ts-ignore\n let script = new Intl.Locale(locale).maximize().script;\n return RTL_SCRIPTS.has(script);\n }\n\n // If not, just guess by the language (first part of the locale)\n let lang = locale.split('-')[0];\n return RTL_LANGS.has(lang);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Direction} from '@react-types/shared';\nimport {isRTL} from './utils';\nimport {useEffect, useState} from 'react';\nimport {useIsSSR} from '@react-aria/ssr';\n\nexport interface Locale {\n /** The [BCP47](https://www.ietf.org/rfc/bcp/bcp47.txt) language code for the locale. */\n locale: string,\n /** The writing direction for the locale. */\n direction: Direction\n}\n\n/**\n * Gets the locale setting of the browser.\n */\nexport function getDefaultLocale(): Locale {\n // @ts-ignore\n let locale = (typeof navigator !== 'undefined' && (navigator.language || navigator.userLanguage)) || 'en-US';\n try {\n // @ts-ignore\n Intl.DateTimeFormat.supportedLocalesOf([locale]);\n } catch (_err) {\n locale = 'en-US';\n }\n return {\n locale,\n direction: isRTL(locale) ? 'rtl' : 'ltr'\n };\n}\n\nlet currentLocale = getDefaultLocale();\nlet listeners = new Set<(locale: Locale) => void>();\n\nfunction updateLocale() {\n currentLocale = getDefaultLocale();\n for (let listener of listeners) {\n listener(currentLocale);\n }\n}\n\n/**\n * Returns the current browser/system language, and updates when it changes.\n */\nexport function useDefaultLocale(): Locale {\n let isSSR = useIsSSR();\n let [defaultLocale, setDefaultLocale] = useState(currentLocale);\n\n useEffect(() => {\n if (listeners.size === 0) {\n window.addEventListener('languagechange', updateLocale);\n }\n\n listeners.add(setDefaultLocale);\n\n return () => {\n listeners.delete(setDefaultLocale);\n if (listeners.size === 0) {\n window.removeEventListener('languagechange', updateLocale);\n }\n };\n }, []);\n\n // We cannot determine the browser's language on the server, so default to\n // en-US. This will be updated after hydration on the client to the correct value.\n if (isSSR) {\n return {\n locale: 'en-US',\n direction: 'ltr'\n };\n }\n\n return defaultLocale;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {isRTL} from './utils';\nimport {Locale, useDefaultLocale} from './useDefaultLocale';\nimport React, {ReactNode, useContext} from 'react';\n\nexport interface I18nProviderProps {\n /** Contents that should have the locale applied. */\n children: ReactNode,\n /** The locale to apply to the children. */\n locale?: string\n}\n\nconst I18nContext = React.createContext(null);\n\n/**\n * Provides the locale for the application to all child components.\n */\nexport function I18nProvider(props: I18nProviderProps) {\n let {locale, children} = props;\n let defaultLocale = useDefaultLocale();\n\n let value: Locale = locale ? {\n locale,\n direction: isRTL(locale) ? 'rtl' : 'ltr'\n } : defaultLocale;\n\n return (\n \n {children}\n \n );\n}\n\n/**\n * Returns the current locale and layout direction.\n */\nexport function useLocale(): Locale {\n let defaultLocale = useDefaultLocale();\n let context = useContext(I18nContext);\n return context || defaultLocale;\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {LocalizedString, LocalizedStringDictionary, LocalizedStringFormatter, LocalizedStrings} from '@internationalized/string';\nimport {useLocale} from './context';\nimport {useMemo} from 'react';\n\nconst cache = new WeakMap();\nfunction getCachedDictionary(strings: LocalizedStrings): LocalizedStringDictionary {\n let dictionary = cache.get(strings);\n if (!dictionary) {\n dictionary = new LocalizedStringDictionary(strings);\n cache.set(strings, dictionary);\n }\n\n return dictionary;\n}\n\n/**\n * Provides localized string formatting for the current locale. Supports interpolating variables,\n * selecting the correct pluralization, and formatting numbers. Automatically updates when the locale changes.\n * @param strings - A mapping of languages to localized strings by key.\n */\nexport function useLocalizedStringFormatter(strings: LocalizedStrings): LocalizedStringFormatter {\n let {locale} = useLocale();\n let dictionary = useMemo(() => getCachedDictionary(strings), [strings]);\n return useMemo(() => new LocalizedStringFormatter(locale, dictionary), [locale, dictionary]);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {useLocale} from './context';\n\nlet cache = new Map();\n\n/**\n * Provides localized string collation for the current locale. Automatically updates when the locale changes,\n * and handles caching of the collator for performance.\n * @param options - Collator options.\n */\nexport function useCollator(options?: Intl.CollatorOptions): Intl.Collator {\n let {locale} = useLocale();\n\n let cacheKey = locale + (options ? Object.entries(options).sort((a, b) => a[0] < b[0] ? -1 : 1).join() : '');\n if (cache.has(cacheKey)) {\n return cache.get(cacheKey);\n }\n\n let formatter = new Intl.Collator(locale, options);\n cache.set(cacheKey, formatter);\n return formatter;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusableElement} from '@react-types/shared';\nimport {focusSafely} from './focusSafely';\nimport {isElementVisible} from './isElementVisible';\nimport React, {ReactNode, RefObject, useContext, useEffect, useMemo, useRef} from 'react';\nimport {useLayoutEffect} from '@react-aria/utils';\n\n\nexport interface FocusScopeProps {\n /** The contents of the focus scope. */\n children: ReactNode,\n\n /**\n * Whether to contain focus inside the scope, so users cannot\n * move focus outside, for example in a modal dialog.\n */\n contain?: boolean,\n\n /**\n * Whether to restore focus back to the element that was focused\n * when the focus scope mounted, after the focus scope unmounts.\n */\n restoreFocus?: boolean,\n\n /** Whether to auto focus the first focusable element in the focus scope on mount. */\n autoFocus?: boolean\n}\n\nexport interface FocusManagerOptions {\n /** The element to start searching from. The currently focused element by default. */\n from?: Element,\n /** Whether to only include tabbable elements, or all focusable elements. */\n tabbable?: boolean,\n /** Whether focus should wrap around when it reaches the end of the scope. */\n wrap?: boolean,\n /** A callback that determines whether the given element is focused. */\n accept?: (node: Element) => boolean\n}\n\nexport interface FocusManager {\n /** Moves focus to the next focusable or tabbable element in the focus scope. */\n focusNext(opts?: FocusManagerOptions): FocusableElement,\n /** Moves focus to the previous focusable or tabbable element in the focus scope. */\n focusPrevious(opts?: FocusManagerOptions): FocusableElement,\n /** Moves focus to the first focusable or tabbable element in the focus scope. */\n focusFirst(opts?: FocusManagerOptions): FocusableElement,\n /** Moves focus to the last focusable or tabbable element in the focus scope. */\n focusLast(opts?: FocusManagerOptions): FocusableElement\n}\n\ntype ScopeRef = RefObject;\ninterface IFocusContext {\n scopeRef: ScopeRef,\n focusManager: FocusManager\n}\n\nconst FocusContext = React.createContext(null);\n\nlet activeScope: ScopeRef = null;\n\n// This is a hacky DOM-based implementation of a FocusScope until this RFC lands in React:\n// https://github.com/reactjs/rfcs/pull/109\n\n/**\n * A FocusScope manages focus for its descendants. It supports containing focus inside\n * the scope, restoring focus to the previously focused element on unmount, and auto\n * focusing children on mount. It also acts as a container for a programmatic focus\n * management interface that can be used to move focus forward and back in response\n * to user events.\n */\nexport function FocusScope(props: FocusScopeProps) {\n let {children, contain, restoreFocus, autoFocus} = props;\n let startRef = useRef();\n let endRef = useRef();\n let scopeRef = useRef([]);\n let ctx = useContext(FocusContext);\n\n // The parent scope is based on the JSX tree, using context.\n // However, if a new scope mounts outside the active scope (e.g. DialogContainer launched from a menu),\n // we want the parent scope to be the active scope instead.\n let ctxParent = ctx?.scopeRef ?? null;\n let parentScope = useMemo(() => activeScope && focusScopeTree.getTreeNode(activeScope) && !isAncestorScope(activeScope, ctxParent) ? activeScope : ctxParent, [ctxParent]);\n\n useLayoutEffect(() => {\n // Find all rendered nodes between the sentinels and add them to the scope.\n let node = startRef.current.nextSibling;\n let nodes = [];\n while (node && node !== endRef.current) {\n nodes.push(node);\n node = node.nextSibling;\n }\n\n scopeRef.current = nodes;\n }, [children, parentScope]);\n\n // add to the focus scope tree in render order because useEffects/useLayoutEffects run children first whereas render runs parent first\n // which matters when constructing a tree\n if (focusScopeTree.getTreeNode(parentScope) && !focusScopeTree.getTreeNode(scopeRef)) {\n focusScopeTree.addTreeNode(scopeRef, parentScope);\n }\n\n let node = focusScopeTree.getTreeNode(scopeRef);\n node.contain = contain;\n\n useActiveScopeTracker(scopeRef, restoreFocus, contain);\n useFocusContainment(scopeRef, contain);\n useRestoreFocus(scopeRef, restoreFocus, contain);\n useAutoFocus(scopeRef, autoFocus);\n\n // this layout effect needs to run last so that focusScopeTree cleanup happens at the last moment possible\n useLayoutEffect(() => {\n if (scopeRef) {\n return () => {\n // Scope may have been re-parented.\n let parentScope = focusScopeTree.getTreeNode(scopeRef).parent.scopeRef;\n\n // Restore the active scope on unmount if this scope or a descendant scope is active.\n // Parent effect cleanups run before children, so we need to check if the\n // parent scope actually still exists before restoring the active scope to it.\n if (\n (scopeRef === activeScope || isAncestorScope(scopeRef, activeScope)) &&\n (!parentScope || focusScopeTree.getTreeNode(parentScope))\n ) {\n activeScope = parentScope;\n }\n focusScopeTree.removeTreeNode(scopeRef);\n };\n }\n }, [scopeRef, parentScope]);\n\n let focusManager = createFocusManagerForScope(scopeRef);\n\n return (\n \n \n );\n}\n\n/**\n * Returns a FocusManager interface for the parent FocusScope.\n * A FocusManager can be used to programmatically move focus within\n * a FocusScope, e.g. in response to user events like keyboard navigation.\n */\nexport function useFocusManager(): FocusManager {\n return useContext(FocusContext)?.focusManager;\n}\n\nfunction createFocusManagerForScope(scopeRef: React.RefObject): FocusManager {\n return {\n focusNext(opts: FocusManagerOptions = {}) {\n let scope = scopeRef.current;\n let {from, tabbable, wrap, accept} = opts;\n let node = from || document.activeElement;\n let sentinel = scope[0].previousElementSibling;\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable, accept}, scope);\n walker.currentNode = isElementInScope(node, scope) ? node : sentinel;\n let nextNode = walker.nextNode() as FocusableElement;\n if (!nextNode && wrap) {\n walker.currentNode = sentinel;\n nextNode = walker.nextNode() as FocusableElement;\n }\n if (nextNode) {\n focusElement(nextNode, true);\n }\n return nextNode;\n },\n focusPrevious(opts: FocusManagerOptions = {}) {\n let scope = scopeRef.current;\n let {from, tabbable, wrap, accept} = opts;\n let node = from || document.activeElement;\n let sentinel = scope[scope.length - 1].nextElementSibling;\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable, accept}, scope);\n walker.currentNode = isElementInScope(node, scope) ? node : sentinel;\n let previousNode = walker.previousNode() as FocusableElement;\n if (!previousNode && wrap) {\n walker.currentNode = sentinel;\n previousNode = walker.previousNode() as FocusableElement;\n }\n if (previousNode) {\n focusElement(previousNode, true);\n }\n return previousNode;\n },\n focusFirst(opts = {}) {\n let scope = scopeRef.current;\n let {tabbable, accept} = opts;\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable, accept}, scope);\n walker.currentNode = scope[0].previousElementSibling;\n let nextNode = walker.nextNode() as FocusableElement;\n if (nextNode) {\n focusElement(nextNode, true);\n }\n return nextNode;\n },\n focusLast(opts = {}) {\n let scope = scopeRef.current;\n let {tabbable, accept} = opts;\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable, accept}, scope);\n walker.currentNode = scope[scope.length - 1].nextElementSibling;\n let previousNode = walker.previousNode() as FocusableElement;\n if (previousNode) {\n focusElement(previousNode, true);\n }\n return previousNode;\n }\n };\n}\n\nconst focusableElements = [\n 'input:not([disabled]):not([type=hidden])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n 'button:not([disabled])',\n 'a[href]',\n 'area[href]',\n 'summary',\n 'iframe',\n 'object',\n 'embed',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]'\n];\n\nconst FOCUSABLE_ELEMENT_SELECTOR = focusableElements.join(':not([hidden]),') + ',[tabindex]:not([disabled]):not([hidden])';\n\nfocusableElements.push('[tabindex]:not([tabindex=\"-1\"]):not([disabled])');\nconst TABBABLE_ELEMENT_SELECTOR = focusableElements.join(':not([hidden]):not([tabindex=\"-1\"]),');\n\nfunction getScopeRoot(scope: Element[]) {\n return scope[0].parentElement;\n}\n\nfunction shouldContainFocus(scopeRef: ScopeRef) {\n let scope = focusScopeTree.getTreeNode(activeScope);\n while (scope && scope.scopeRef !== scopeRef) {\n if (scope.contain) {\n return false;\n }\n\n scope = scope.parent;\n }\n\n return true;\n}\n\nfunction useFocusContainment(scopeRef: RefObject, contain: boolean) {\n let focusedNode = useRef();\n\n let raf = useRef(null);\n useLayoutEffect(() => {\n let scope = scopeRef.current;\n if (!contain) {\n // if contain was changed, then we should cancel any ongoing waits to pull focus back into containment\n if (raf.current) {\n cancelAnimationFrame(raf.current);\n raf.current = null;\n }\n return;\n }\n\n // Handle the Tab key to contain focus within the scope\n let onKeyDown = (e) => {\n if (e.key !== 'Tab' || e.altKey || e.ctrlKey || e.metaKey || !shouldContainFocus(scopeRef)) {\n return;\n }\n\n let focusedElement = document.activeElement;\n let scope = scopeRef.current;\n if (!isElementInScope(focusedElement, scope)) {\n return;\n }\n\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable: true}, scope);\n walker.currentNode = focusedElement;\n let nextElement = (e.shiftKey ? walker.previousNode() : walker.nextNode()) as FocusableElement;\n if (!nextElement) {\n walker.currentNode = e.shiftKey ? scope[scope.length - 1].nextElementSibling : scope[0].previousElementSibling;\n nextElement = (e.shiftKey ? walker.previousNode() : walker.nextNode()) as FocusableElement;\n }\n\n e.preventDefault();\n if (nextElement) {\n focusElement(nextElement, true);\n }\n };\n\n let onFocus = (e) => {\n // If focusing an element in a child scope of the currently active scope, the child becomes active.\n // Moving out of the active scope to an ancestor is not allowed.\n if ((!activeScope || isAncestorScope(activeScope, scopeRef)) && isElementInScope(e.target, scopeRef.current)) {\n activeScope = scopeRef;\n focusedNode.current = e.target;\n } else if (shouldContainFocus(scopeRef) && !isElementInChildScope(e.target, scopeRef)) {\n // If a focus event occurs outside the active scope (e.g. user tabs from browser location bar),\n // restore focus to the previously focused node or the first tabbable element in the active scope.\n if (focusedNode.current) {\n focusedNode.current.focus();\n } else if (activeScope) {\n focusFirstInScope(activeScope.current);\n }\n } else if (shouldContainFocus(scopeRef)) {\n focusedNode.current = e.target;\n }\n };\n\n let onBlur = (e) => {\n // Firefox doesn't shift focus back to the Dialog properly without this\n raf.current = requestAnimationFrame(() => {\n // Use document.activeElement instead of e.relatedTarget so we can tell if user clicked into iframe\n if (shouldContainFocus(scopeRef) && !isElementInChildScope(document.activeElement, scopeRef)) {\n activeScope = scopeRef;\n if (document.body.contains(e.target)) {\n focusedNode.current = e.target;\n focusedNode.current.focus();\n } else if (activeScope) {\n focusFirstInScope(activeScope.current);\n }\n }\n });\n };\n\n document.addEventListener('keydown', onKeyDown, false);\n document.addEventListener('focusin', onFocus, false);\n scope.forEach(element => element.addEventListener('focusin', onFocus, false));\n scope.forEach(element => element.addEventListener('focusout', onBlur, false));\n return () => {\n document.removeEventListener('keydown', onKeyDown, false);\n document.removeEventListener('focusin', onFocus, false);\n scope.forEach(element => element.removeEventListener('focusin', onFocus, false));\n scope.forEach(element => element.removeEventListener('focusout', onBlur, false));\n };\n }, [scopeRef, contain]);\n\n // eslint-disable-next-line arrow-body-style\n useEffect(() => {\n return () => {\n if (raf.current) {\n cancelAnimationFrame(raf.current);\n }\n };\n }, [raf]);\n}\n\nfunction isElementInAnyScope(element: Element) {\n return isElementInChildScope(element);\n}\n\nfunction isElementInScope(element: Element, scope: Element[]) {\n return scope.some(node => node.contains(element));\n}\n\nfunction isElementInChildScope(element: Element, scope: ScopeRef = null) {\n // node.contains in isElementInScope covers child scopes that are also DOM children,\n // but does not cover child scopes in portals.\n for (let {scopeRef: s} of focusScopeTree.traverse(focusScopeTree.getTreeNode(scope))) {\n if (isElementInScope(element, s.current)) {\n return true;\n }\n }\n\n return false;\n}\n\n/** @private */\nexport function isElementInChildOfActiveScope(element: Element) {\n return isElementInChildScope(element, activeScope);\n}\n\nfunction isAncestorScope(ancestor: ScopeRef, scope: ScopeRef) {\n let parent = focusScopeTree.getTreeNode(scope)?.parent;\n while (parent) {\n if (parent.scopeRef === ancestor) {\n return true;\n }\n parent = parent.parent;\n }\n return false;\n}\n\nfunction focusElement(element: FocusableElement | null, scroll = false) {\n if (element != null && !scroll) {\n try {\n focusSafely(element);\n } catch (err) {\n // ignore\n }\n } else if (element != null) {\n try {\n element.focus();\n } catch (err) {\n // ignore\n }\n }\n}\n\nfunction focusFirstInScope(scope: Element[], tabbable:boolean = true) {\n let sentinel = scope[0].previousElementSibling;\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable}, scope);\n walker.currentNode = sentinel;\n let nextNode = walker.nextNode();\n\n // If the scope does not contain a tabbable element, use the first focusable element.\n if (tabbable && !nextNode) {\n walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable: false}, scope);\n walker.currentNode = sentinel;\n nextNode = walker.nextNode();\n }\n\n focusElement(nextNode as FocusableElement);\n}\n\nfunction useAutoFocus(scopeRef: RefObject, autoFocus: boolean) {\n const autoFocusRef = React.useRef(autoFocus);\n useEffect(() => {\n if (autoFocusRef.current) {\n activeScope = scopeRef;\n if (!isElementInScope(document.activeElement, activeScope.current)) {\n focusFirstInScope(scopeRef.current);\n }\n }\n autoFocusRef.current = false;\n }, [scopeRef]);\n}\n\nfunction useActiveScopeTracker(scopeRef: RefObject, restore: boolean, contain: boolean) {\n // tracks the active scope, in case restore and contain are both false.\n // if either are true, this is tracked in useRestoreFocus or useFocusContainment.\n useLayoutEffect(() => {\n if (restore || contain) {\n return;\n }\n\n let scope = scopeRef.current;\n\n let onFocus = (e: FocusEvent) => {\n let target = e.target as Element;\n if (isElementInScope(target, scopeRef.current)) {\n activeScope = scopeRef;\n } else if (!isElementInAnyScope(target)) {\n activeScope = null;\n }\n };\n\n document.addEventListener('focusin', onFocus, false);\n scope.forEach(element => element.addEventListener('focusin', onFocus, false));\n return () => {\n document.removeEventListener('focusin', onFocus, false);\n scope.forEach(element => element.removeEventListener('focusin', onFocus, false));\n };\n }, [scopeRef, restore, contain]);\n}\n\nfunction shouldRestoreFocus(scopeRef: ScopeRef) {\n let scope = focusScopeTree.getTreeNode(activeScope);\n while (scope && scope.scopeRef !== scopeRef) {\n if (scope.nodeToRestore) {\n return false;\n }\n\n scope = scope.parent;\n }\n\n return scope?.scopeRef === scopeRef;\n}\n\nfunction useRestoreFocus(scopeRef: RefObject, restoreFocus: boolean, contain: boolean) {\n // create a ref during render instead of useLayoutEffect so the active element is saved before a child with autoFocus=true mounts.\n const nodeToRestoreRef = useRef(typeof document !== 'undefined' ? document.activeElement as FocusableElement : null);\n\n // restoring scopes should all track if they are active regardless of contain, but contain already tracks it plus logic to contain the focus\n // restoring-non-containing scopes should only care if they become active so they can perform the restore\n useLayoutEffect(() => {\n let scope = scopeRef.current;\n if (!restoreFocus || contain) {\n return;\n }\n\n let onFocus = () => {\n // If focusing an element in a child scope of the currently active scope, the child becomes active.\n // Moving out of the active scope to an ancestor is not allowed.\n if (!activeScope || isAncestorScope(activeScope, scopeRef)) {\n activeScope = scopeRef;\n }\n };\n\n document.addEventListener('focusin', onFocus, false);\n scope.forEach(element => element.addEventListener('focusin', onFocus, false));\n return () => {\n document.removeEventListener('focusin', onFocus, false);\n scope.forEach(element => element.removeEventListener('focusin', onFocus, false));\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [scopeRef, contain]);\n\n // useLayoutEffect instead of useEffect so the active element is saved synchronously instead of asynchronously.\n useLayoutEffect(() => {\n if (!restoreFocus) {\n return;\n }\n\n focusScopeTree.getTreeNode(scopeRef).nodeToRestore = nodeToRestoreRef.current;\n\n // Handle the Tab key so that tabbing out of the scope goes to the next element\n // after the node that had focus when the scope mounted. This is important when\n // using portals for overlays, so that focus goes to the expected element when\n // tabbing out of the overlay.\n let onKeyDown = (e: KeyboardEvent) => {\n if (e.key !== 'Tab' || e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n\n let focusedElement = document.activeElement as FocusableElement;\n if (!isElementInScope(focusedElement, scopeRef.current)) {\n return;\n }\n let nodeToRestore = focusScopeTree.getTreeNode(scopeRef).nodeToRestore;\n\n // Create a DOM tree walker that matches all tabbable elements\n let walker = getFocusableTreeWalker(document.body, {tabbable: true});\n\n // Find the next tabbable element after the currently focused element\n walker.currentNode = focusedElement;\n let nextElement = (e.shiftKey ? walker.previousNode() : walker.nextNode()) as FocusableElement;\n\n if (!document.body.contains(nodeToRestore) || nodeToRestore === document.body) {\n nodeToRestore = null;\n focusScopeTree.getTreeNode(scopeRef).nodeToRestore = null;\n }\n\n // If there is no next element, or it is outside the current scope, move focus to the\n // next element after the node to restore to instead.\n if ((!nextElement || !isElementInScope(nextElement, scopeRef.current)) && nodeToRestore) {\n walker.currentNode = nodeToRestore;\n\n // Skip over elements within the scope, in case the scope immediately follows the node to restore.\n do {\n nextElement = (e.shiftKey ? walker.previousNode() : walker.nextNode()) as FocusableElement;\n } while (isElementInScope(nextElement, scopeRef.current));\n\n e.preventDefault();\n e.stopPropagation();\n if (nextElement) {\n focusElement(nextElement, true);\n } else {\n // If there is no next element and the nodeToRestore isn't within a FocusScope (i.e. we are leaving the top level focus scope)\n // then move focus to the body.\n // Otherwise restore focus to the nodeToRestore (e.g menu within a popover -> tabbing to close the menu should move focus to menu trigger)\n if (!isElementInAnyScope(nodeToRestore)) {\n focusedElement.blur();\n } else {\n focusElement(nodeToRestore, true);\n }\n }\n }\n };\n\n if (!contain) {\n document.addEventListener('keydown', onKeyDown, true);\n }\n\n return () => {\n if (!contain) {\n document.removeEventListener('keydown', onKeyDown, true);\n }\n let nodeToRestore = focusScopeTree.getTreeNode(scopeRef).nodeToRestore;\n\n // if we already lost focus to the body and this was the active scope, then we should attempt to restore\n if (\n restoreFocus\n && nodeToRestore\n && (\n // eslint-disable-next-line react-hooks/exhaustive-deps\n isElementInScope(document.activeElement, scopeRef.current)\n || (document.activeElement === document.body && shouldRestoreFocus(scopeRef))\n )\n ) {\n // freeze the focusScopeTree so it persists after the raf, otherwise during unmount nodes are removed from it\n let clonedTree = focusScopeTree.clone();\n requestAnimationFrame(() => {\n // Only restore focus if we've lost focus to the body, the alternative is that focus has been purposefully moved elsewhere\n if (document.activeElement === document.body) {\n // look up the tree starting with our scope to find a nodeToRestore still in the DOM\n let treeNode = clonedTree.getTreeNode(scopeRef);\n while (treeNode) {\n if (treeNode.nodeToRestore && document.body.contains(treeNode.nodeToRestore)) {\n focusElement(treeNode.nodeToRestore);\n return;\n }\n treeNode = treeNode.parent;\n }\n\n // If no nodeToRestore was found, focus the first element in the nearest\n // ancestor scope that is still in the tree.\n treeNode = clonedTree.getTreeNode(scopeRef);\n while (treeNode) {\n if (treeNode.scopeRef && focusScopeTree.getTreeNode(treeNode.scopeRef)) {\n focusFirstInScope(treeNode.scopeRef.current, true);\n return;\n }\n treeNode = treeNode.parent;\n }\n }\n });\n }\n };\n }, [scopeRef, restoreFocus, contain]);\n}\n\n/**\n * Create a [TreeWalker]{@link https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker}\n * that matches all focusable/tabbable elements.\n */\nexport function getFocusableTreeWalker(root: Element, opts?: FocusManagerOptions, scope?: Element[]) {\n let selector = opts?.tabbable ? TABBABLE_ELEMENT_SELECTOR : FOCUSABLE_ELEMENT_SELECTOR;\n let walker = document.createTreeWalker(\n root,\n NodeFilter.SHOW_ELEMENT,\n {\n acceptNode(node) {\n // Skip nodes inside the starting node.\n if (opts?.from?.contains(node)) {\n return NodeFilter.FILTER_REJECT;\n }\n\n if ((node as Element).matches(selector)\n && isElementVisible(node as Element)\n && (!scope || isElementInScope(node as Element, scope))\n && (!opts?.accept || opts.accept(node as Element))\n ) {\n return NodeFilter.FILTER_ACCEPT;\n }\n\n return NodeFilter.FILTER_SKIP;\n }\n }\n );\n\n if (opts?.from) {\n walker.currentNode = opts.from;\n }\n\n return walker;\n}\n\n/**\n * Creates a FocusManager object that can be used to move focus within an element.\n */\nexport function createFocusManager(ref: RefObject, defaultOptions: FocusManagerOptions = {}): FocusManager {\n return {\n focusNext(opts: FocusManagerOptions = {}) {\n let root = ref.current;\n if (!root) {\n return;\n }\n let {from, tabbable = defaultOptions.tabbable, wrap = defaultOptions.wrap, accept = defaultOptions.accept} = opts;\n let node = from || document.activeElement;\n let walker = getFocusableTreeWalker(root, {tabbable, accept});\n if (root.contains(node)) {\n walker.currentNode = node;\n }\n let nextNode = walker.nextNode() as FocusableElement;\n if (!nextNode && wrap) {\n walker.currentNode = root;\n nextNode = walker.nextNode() as FocusableElement;\n }\n if (nextNode) {\n focusElement(nextNode, true);\n }\n return nextNode;\n },\n focusPrevious(opts: FocusManagerOptions = defaultOptions) {\n let root = ref.current;\n if (!root) {\n return;\n }\n let {from, tabbable = defaultOptions.tabbable, wrap = defaultOptions.wrap, accept = defaultOptions.accept} = opts;\n let node = from || document.activeElement;\n let walker = getFocusableTreeWalker(root, {tabbable, accept});\n if (root.contains(node)) {\n walker.currentNode = node;\n } else {\n let next = last(walker);\n if (next) {\n focusElement(next, true);\n }\n return next;\n }\n let previousNode = walker.previousNode() as FocusableElement;\n if (!previousNode && wrap) {\n walker.currentNode = root;\n previousNode = last(walker);\n }\n if (previousNode) {\n focusElement(previousNode, true);\n }\n return previousNode;\n },\n focusFirst(opts = defaultOptions) {\n let root = ref.current;\n if (!root) {\n return;\n }\n let {tabbable = defaultOptions.tabbable, accept = defaultOptions.accept} = opts;\n let walker = getFocusableTreeWalker(root, {tabbable, accept});\n let nextNode = walker.nextNode() as FocusableElement;\n if (nextNode) {\n focusElement(nextNode, true);\n }\n return nextNode;\n },\n focusLast(opts = defaultOptions) {\n let root = ref.current;\n if (!root) {\n return;\n }\n let {tabbable = defaultOptions.tabbable, accept = defaultOptions.accept} = opts;\n let walker = getFocusableTreeWalker(root, {tabbable, accept});\n let next = last(walker);\n if (next) {\n focusElement(next, true);\n }\n return next;\n }\n };\n}\n\nfunction last(walker: TreeWalker) {\n let next: FocusableElement;\n let last: FocusableElement;\n do {\n last = walker.lastChild() as FocusableElement;\n if (last) {\n next = last;\n }\n } while (last);\n return next;\n}\n\n\nclass Tree {\n private root: TreeNode;\n private fastMap = new Map();\n\n constructor() {\n this.root = new TreeNode({scopeRef: null});\n this.fastMap.set(null, this.root);\n }\n\n get size() {\n return this.fastMap.size;\n }\n\n getTreeNode(data: ScopeRef) {\n return this.fastMap.get(data);\n }\n\n addTreeNode(scopeRef: ScopeRef, parent: ScopeRef, nodeToRestore?: FocusableElement) {\n let parentNode = this.fastMap.get(parent ?? null);\n let node = new TreeNode({scopeRef});\n parentNode.addChild(node);\n node.parent = parentNode;\n this.fastMap.set(scopeRef, node);\n if (nodeToRestore) {\n node.nodeToRestore = nodeToRestore;\n }\n }\n\n removeTreeNode(scopeRef: ScopeRef) {\n // never remove the root\n if (scopeRef === null) {\n return;\n }\n let node = this.fastMap.get(scopeRef);\n let parentNode = node.parent;\n // when we remove a scope, check if any sibling scopes are trying to restore focus to something inside the scope we're removing\n // if we are, then replace the siblings restore with the restore from the scope we're removing\n for (let current of this.traverse()) {\n if (\n current !== node &&\n node.nodeToRestore &&\n current.nodeToRestore &&\n node.scopeRef.current &&\n isElementInScope(current.nodeToRestore, node.scopeRef.current)\n ) {\n current.nodeToRestore = node.nodeToRestore;\n }\n }\n let children = node.children;\n parentNode.removeChild(node);\n if (children.length > 0) {\n children.forEach(child => parentNode.addChild(child));\n }\n this.fastMap.delete(node.scopeRef);\n }\n\n // Pre Order Depth First\n *traverse(node: TreeNode = this.root): Generator {\n if (node.scopeRef != null) {\n yield node;\n }\n if (node.children.length > 0) {\n for (let child of node.children) {\n yield* this.traverse(child);\n }\n }\n }\n\n clone(): Tree {\n let newTree = new Tree();\n for (let node of this.traverse()) {\n newTree.addTreeNode(node.scopeRef, node.parent.scopeRef, node.nodeToRestore);\n }\n return newTree;\n }\n}\n\nclass TreeNode {\n public scopeRef: ScopeRef;\n public nodeToRestore: FocusableElement;\n public parent: TreeNode;\n public children: TreeNode[] = [];\n public contain = false;\n\n constructor(props: {scopeRef: ScopeRef}) {\n this.scopeRef = props.scopeRef;\n }\n addChild(node: TreeNode) {\n this.children.push(node);\n node.parent = this;\n }\n removeChild(node: TreeNode) {\n this.children.splice(this.children.indexOf(node), 1);\n node.parent = undefined;\n }\n}\n\nexport let focusScopeTree = new Tree();\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes, FocusableDOMProps, FocusableElement, FocusableProps} from '@react-types/shared';\nimport {focusSafely} from './';\nimport {mergeProps, useSyncRef} from '@react-aria/utils';\nimport React, {MutableRefObject, ReactNode, RefObject, useContext, useEffect, useRef} from 'react';\nimport {useFocus, useKeyboard} from '@react-aria/interactions';\n\nexport interface FocusableOptions extends FocusableProps, FocusableDOMProps {\n /** Whether focus should be disabled. */\n isDisabled?: boolean\n}\n\nexport interface FocusableProviderProps extends DOMAttributes {\n /** The child element to provide DOM props to. */\n children?: ReactNode\n}\n\ninterface FocusableContextValue extends FocusableProviderProps {\n ref?: MutableRefObject\n}\n\nlet FocusableContext = React.createContext(null);\n\nfunction useFocusableContext(ref: RefObject): FocusableContextValue {\n let context = useContext(FocusableContext) || {};\n useSyncRef(context, ref);\n\n // eslint-disable-next-line\n let {ref: _, ...otherProps} = context;\n return otherProps;\n}\n\n/**\n * Provides DOM props to the nearest focusable child.\n */\nfunction FocusableProvider(props: FocusableProviderProps, ref: RefObject) {\n let {children, ...otherProps} = props;\n let context = {\n ...otherProps,\n ref\n };\n\n return (\n \n {children}\n \n );\n}\n\nlet _FocusableProvider = React.forwardRef(FocusableProvider);\nexport {_FocusableProvider as FocusableProvider};\n\nexport interface FocusableAria {\n /** Props for the focusable element. */\n focusableProps: DOMAttributes\n}\n\n/**\n * Used to make an element focusable and capable of auto focus.\n */\nexport function useFocusable(props: FocusableOptions, domRef: RefObject): FocusableAria {\n let {focusProps} = useFocus(props);\n let {keyboardProps} = useKeyboard(props);\n let interactions = mergeProps(focusProps, keyboardProps);\n let domProps = useFocusableContext(domRef);\n let interactionProps = props.isDisabled ? {} : domProps;\n let autoFocusRef = useRef(props.autoFocus);\n\n useEffect(() => {\n if (autoFocusRef.current && domRef.current) {\n focusSafely(domRef.current);\n }\n autoFocusRef.current = false;\n }, [domRef]);\n\n return {\n focusableProps: mergeProps(\n {\n ...interactions,\n tabIndex: props.excludeFromTabOrder && !props.isDisabled ? -1 : undefined\n },\n interactionProps\n )\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Axis, Placement, PlacementAxis, SizeAxis} from '@react-types/overlays';\n\ninterface Position {\n top?: number,\n left?: number,\n bottom?: number,\n right?: number\n}\n\ninterface Dimensions {\n width: number,\n height: number,\n top: number,\n left: number,\n scroll: Position\n}\n\ninterface ParsedPlacement {\n placement: PlacementAxis,\n crossPlacement: PlacementAxis,\n axis: Axis,\n crossAxis: Axis,\n size: SizeAxis,\n crossSize: SizeAxis\n}\n\ninterface Offset {\n top: number,\n left: number,\n width: number,\n height: number\n}\n\ninterface PositionOpts {\n placement: Placement,\n targetNode: Element,\n overlayNode: Element,\n scrollNode: Element,\n padding: number,\n shouldFlip: boolean,\n boundaryElement: Element,\n offset: number,\n crossOffset: number,\n maxHeight?: number\n}\n\nexport interface PositionResult {\n position?: Position,\n arrowOffsetLeft?: number,\n arrowOffsetTop?: number,\n maxHeight?: number,\n placement: PlacementAxis\n}\n\nconst AXIS = {\n top: 'top',\n bottom: 'top',\n left: 'left',\n right: 'left'\n};\n\nconst FLIPPED_DIRECTION = {\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left'\n};\n\nconst CROSS_AXIS = {\n top: 'left',\n left: 'top'\n};\n\nconst AXIS_SIZE = {\n top: 'height',\n left: 'width'\n};\n\nconst PARSED_PLACEMENT_CACHE = {};\n\n// @ts-ignore\nlet visualViewport = typeof window !== 'undefined' && window.visualViewport;\n\nfunction getContainerDimensions(containerNode: Element): Dimensions {\n let width = 0, height = 0, top = 0, left = 0;\n let scroll: Position = {};\n\n if (containerNode.tagName === 'BODY') {\n let documentElement = document.documentElement;\n width = visualViewport?.width ?? documentElement.clientWidth;\n height = visualViewport?.height ?? documentElement.clientHeight;\n\n scroll.top = documentElement.scrollTop || containerNode.scrollTop;\n scroll.left = documentElement.scrollLeft || containerNode.scrollLeft;\n } else {\n ({width, height, top, left} = getOffset(containerNode));\n scroll.top = containerNode.scrollTop;\n scroll.left = containerNode.scrollLeft;\n }\n\n return {width, height, scroll, top, left};\n}\n\nfunction getScroll(node: Element): Offset {\n return {\n top: node.scrollTop,\n left: node.scrollLeft,\n width: node.scrollWidth,\n height: node.scrollHeight\n };\n}\n\nfunction getDelta(\n axis: Axis,\n offset: number,\n size: number,\n containerDimensions: Dimensions,\n padding: number\n) {\n let containerScroll = containerDimensions.scroll[axis];\n let containerHeight = containerDimensions[AXIS_SIZE[axis]];\n\n let startEdgeOffset = offset - padding - containerScroll;\n let endEdgeOffset = offset + padding - containerScroll + size;\n\n if (startEdgeOffset < 0) {\n return -startEdgeOffset;\n } else if (endEdgeOffset > containerHeight) {\n return Math.max(containerHeight - endEdgeOffset, -startEdgeOffset);\n } else {\n return 0;\n }\n}\n\nfunction getMargins(node: Element): Position {\n let style = window.getComputedStyle(node);\n return {\n top: parseInt(style.marginTop, 10) || 0,\n bottom: parseInt(style.marginBottom, 10) || 0,\n left: parseInt(style.marginLeft, 10) || 0,\n right: parseInt(style.marginRight, 10) || 0\n };\n}\n\nfunction parsePlacement(input: Placement): ParsedPlacement {\n if (PARSED_PLACEMENT_CACHE[input]) {\n return PARSED_PLACEMENT_CACHE[input];\n }\n\n let [placement, crossPlacement] = input.split(' ');\n let axis: Axis = AXIS[placement] || 'right';\n let crossAxis: Axis = CROSS_AXIS[axis];\n\n if (!AXIS[crossPlacement]) {\n crossPlacement = 'center';\n }\n\n let size = AXIS_SIZE[axis];\n let crossSize = AXIS_SIZE[crossAxis];\n PARSED_PLACEMENT_CACHE[input] = {placement, crossPlacement, axis, crossAxis, size, crossSize};\n return PARSED_PLACEMENT_CACHE[input];\n}\n\nfunction computePosition(\n childOffset: Offset,\n boundaryDimensions: Dimensions,\n overlaySize: Offset,\n placementInfo: ParsedPlacement,\n offset: number,\n crossOffset: number,\n containerOffsetWithBoundary: Offset,\n isContainerPositioned: boolean\n) {\n let {placement, crossPlacement, axis, crossAxis, size, crossSize} = placementInfo;\n let position: Position = {};\n\n // button position\n position[crossAxis] = childOffset[crossAxis];\n if (crossPlacement === 'center') {\n // + (button size / 2) - (overlay size / 2)\n // at this point the overlay center should match the button center\n position[crossAxis] += (childOffset[crossSize] - overlaySize[crossSize]) / 2;\n } else if (crossPlacement !== crossAxis) {\n // + (button size) - (overlay size)\n // at this point the overlay bottom should match the button bottom\n position[crossAxis] += (childOffset[crossSize] - overlaySize[crossSize]);\n }/* else {\n the overlay top should match the button top\n } */\n // add the crossOffset from props\n position[crossAxis] += crossOffset;\n\n // this is button center position - the overlay size + half of the button to align bottom of overlay with button center\n let minViablePosition = childOffset[crossAxis] + (childOffset[crossSize] / 2) - overlaySize[crossSize];\n // this is button position of center, aligns top of overlay with button center\n let maxViablePosition = childOffset[crossAxis] + (childOffset[crossSize] / 2);\n\n // clamp it into the range of the min/max positions\n position[crossAxis] = Math.min(Math.max(minViablePosition, position[crossAxis]), maxViablePosition);\n\n // Floor these so the position isn't placed on a partial pixel, only whole pixels. Shouldn't matter if it was floored or ceiled, so chose one.\n if (placement === axis) {\n // If the container is positioned (non-static), then we use the container's actual\n // height, as `bottom` will be relative to this height. But if the container is static,\n // then it can only be the `document.body`, and `bottom` will be relative to _its_\n // container, which should be as large as boundaryDimensions.\n const containerHeight = (isContainerPositioned ? containerOffsetWithBoundary[size] : boundaryDimensions[size]);\n position[FLIPPED_DIRECTION[axis]] = Math.floor(containerHeight - childOffset[axis] + offset);\n } else {\n position[axis] = Math.floor(childOffset[axis] + childOffset[size] + offset);\n }\n\n return position;\n}\n\nfunction getMaxHeight(\n position: Position,\n boundaryDimensions: Dimensions,\n containerOffsetWithBoundary: Offset,\n childOffset: Offset,\n margins: Position,\n padding: number\n) {\n return position.top != null\n // We want the distance between the top of the overlay to the bottom of the boundary\n ? Math.max(0,\n (boundaryDimensions.height + boundaryDimensions.top + boundaryDimensions.scroll.top) // this is the bottom of the boundary\n - (containerOffsetWithBoundary.top + position.top) // this is the top of the overlay\n - (margins.top + margins.bottom + padding) // save additional space for margin and padding\n )\n // We want the distance between the top of the trigger to the top of the boundary\n : Math.max(0,\n (childOffset.top + containerOffsetWithBoundary.top) // this is the top of the trigger\n - (boundaryDimensions.top + boundaryDimensions.scroll.top) // this is the top of the boundary\n - (margins.top + margins.bottom + padding) // save additional space for margin and padding\n );\n}\n\nfunction getAvailableSpace(\n boundaryDimensions: Dimensions,\n containerOffsetWithBoundary: Offset,\n childOffset: Offset,\n margins: Position,\n padding: number,\n placementInfo: ParsedPlacement\n) {\n let {placement, axis, size} = placementInfo;\n if (placement === axis) {\n return Math.max(0, childOffset[axis] - boundaryDimensions[axis] - boundaryDimensions.scroll[axis] + containerOffsetWithBoundary[axis] - margins[axis] - margins[FLIPPED_DIRECTION[axis]] - padding);\n }\n\n return Math.max(0, boundaryDimensions[size] + boundaryDimensions[axis] + boundaryDimensions.scroll[axis] - containerOffsetWithBoundary[axis] - childOffset[axis] - childOffset[size] - margins[axis] - margins[FLIPPED_DIRECTION[axis]] - padding);\n}\n\nexport function calculatePositionInternal(\n placementInput: Placement,\n childOffset: Offset,\n overlaySize: Offset,\n scrollSize: Offset,\n margins: Position,\n padding: number,\n flip: boolean,\n boundaryDimensions: Dimensions,\n containerOffsetWithBoundary: Offset,\n offset: number,\n crossOffset: number,\n isContainerPositioned: boolean,\n userSetMaxHeight?: number\n): PositionResult {\n let placementInfo = parsePlacement(placementInput);\n let {size, crossAxis, crossSize, placement, crossPlacement} = placementInfo;\n let position = computePosition(childOffset, boundaryDimensions, overlaySize, placementInfo, offset, crossOffset, containerOffsetWithBoundary, isContainerPositioned);\n let normalizedOffset = offset;\n let space = getAvailableSpace(\n boundaryDimensions,\n containerOffsetWithBoundary,\n childOffset,\n margins,\n padding + offset,\n placementInfo\n );\n\n // Check if the scroll size of the overlay is greater than the available space to determine if we need to flip\n if (flip && scrollSize[size] > space) {\n let flippedPlacementInfo = parsePlacement(`${FLIPPED_DIRECTION[placement]} ${crossPlacement}` as Placement);\n let flippedPosition = computePosition(childOffset, boundaryDimensions, overlaySize, flippedPlacementInfo, offset, crossOffset, containerOffsetWithBoundary, isContainerPositioned);\n let flippedSpace = getAvailableSpace(\n boundaryDimensions,\n containerOffsetWithBoundary,\n childOffset,\n margins,\n padding + offset,\n flippedPlacementInfo\n );\n\n // If the available space for the flipped position is greater than the original available space, flip.\n if (flippedSpace > space) {\n placementInfo = flippedPlacementInfo;\n position = flippedPosition;\n normalizedOffset = offset;\n }\n }\n\n let delta = getDelta(crossAxis, position[crossAxis], overlaySize[crossSize], boundaryDimensions, padding);\n position[crossAxis] += delta;\n\n let maxHeight = getMaxHeight(\n position,\n boundaryDimensions,\n containerOffsetWithBoundary,\n childOffset,\n margins,\n padding\n );\n\n if (userSetMaxHeight && userSetMaxHeight < maxHeight) {\n maxHeight = userSetMaxHeight;\n }\n\n overlaySize.height = Math.min(overlaySize.height, maxHeight);\n\n position = computePosition(childOffset, boundaryDimensions, overlaySize, placementInfo, normalizedOffset, crossOffset, containerOffsetWithBoundary, isContainerPositioned);\n delta = getDelta(crossAxis, position[crossAxis], overlaySize[crossSize], boundaryDimensions, padding);\n position[crossAxis] += delta;\n\n let arrowPosition: Position = {};\n arrowPosition[crossAxis] = (childOffset[crossAxis] - position[crossAxis] + childOffset[crossSize] / 2);\n\n return {\n position,\n maxHeight: maxHeight,\n arrowOffsetLeft: arrowPosition.left,\n arrowOffsetTop: arrowPosition.top,\n placement: placementInfo.placement\n };\n}\n\n/**\n * Determines where to place the overlay with regards to the target and the position of an optional indicator.\n */\nexport function calculatePosition(opts: PositionOpts): PositionResult {\n let {\n placement,\n targetNode,\n overlayNode,\n scrollNode,\n padding,\n shouldFlip,\n boundaryElement,\n offset,\n crossOffset,\n maxHeight\n } = opts;\n\n let container = ((overlayNode instanceof HTMLElement && overlayNode.offsetParent) || document.body) as Element;\n let isBodyContainer = container.tagName === 'BODY';\n const containerPositionStyle = window.getComputedStyle(container).position;\n let isContainerPositioned = !!containerPositionStyle && containerPositionStyle !== 'static';\n let childOffset: Offset = isBodyContainer ? getOffset(targetNode) : getPosition(targetNode, container);\n\n if (!isBodyContainer) {\n let {marginTop, marginLeft} = window.getComputedStyle(targetNode);\n childOffset.top += parseInt(marginTop, 10) || 0;\n childOffset.left += parseInt(marginLeft, 10) || 0;\n }\n\n let overlaySize: Offset = getOffset(overlayNode);\n let margins = getMargins(overlayNode);\n overlaySize.width += margins.left + margins.right;\n overlaySize.height += margins.top + margins.bottom;\n\n let scrollSize = getScroll(scrollNode);\n let boundaryDimensions = getContainerDimensions(boundaryElement);\n let containerOffsetWithBoundary: Offset = boundaryElement.tagName === 'BODY' ? getOffset(container) : getPosition(container, boundaryElement);\n\n return calculatePositionInternal(\n placement,\n childOffset,\n overlaySize,\n scrollSize,\n margins,\n padding,\n shouldFlip,\n boundaryDimensions,\n containerOffsetWithBoundary,\n offset,\n crossOffset,\n isContainerPositioned,\n maxHeight\n );\n}\n\nfunction getOffset(node: Element): Offset {\n let {top, left, width, height} = node.getBoundingClientRect();\n let {scrollTop, scrollLeft, clientTop, clientLeft} = document.documentElement;\n return {\n top: top + scrollTop - clientTop,\n left: left + scrollLeft - clientLeft,\n width,\n height\n };\n}\n\nfunction getPosition(node: Element, parent: Element): Offset {\n let style = window.getComputedStyle(node);\n let offset: Offset;\n if (style.position === 'fixed') {\n let {top, left, width, height} = node.getBoundingClientRect();\n offset = {top, left, width, height};\n } else {\n offset = getOffset(node);\n let parentOffset = getOffset(parent);\n let parentStyle = window.getComputedStyle(parent);\n parentOffset.top += (parseInt(parentStyle.borderTopWidth, 10) || 0) - parent.scrollTop;\n parentOffset.left += (parseInt(parentStyle.borderLeftWidth, 10) || 0) - parent.scrollLeft;\n offset.top -= parentOffset.top;\n offset.left -= parentOffset.left;\n }\n\n offset.top -= parseInt(style.marginTop, 10) || 0;\n offset.left -= parseInt(style.marginLeft, 10) || 0;\n return offset;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {RefObject, useEffect} from 'react';\n\n// This behavior moved from useOverlayTrigger to useOverlayPosition.\n// For backward compatibility, where useOverlayTrigger handled hiding the popover on close,\n// it sets a close function here mapped from the trigger element. This way we can avoid\n// forcing users to pass an onClose function to useOverlayPosition which could be considered\n// a breaking change.\nexport const onCloseMap: WeakMap void> = new WeakMap();\n\ninterface CloseOnScrollOptions {\n triggerRef: RefObject,\n isOpen?: boolean,\n onClose?: () => void\n}\n\n/** @private */\nexport function useCloseOnScroll(opts: CloseOnScrollOptions) {\n let {triggerRef, isOpen, onClose} = opts;\n\n useEffect(() => {\n if (!isOpen || onClose === null) {\n return;\n }\n\n let onScroll = (e: MouseEvent) => {\n // Ignore if scrolling an scrollable region outside the trigger's tree.\n let target = e.target;\n // window is not a Node and doesn't have contain, but window contains everything\n if (!triggerRef.current || ((target instanceof Node) && !target.contains(triggerRef.current))) {\n return;\n }\n\n let onCloseHandler = onClose || onCloseMap.get(triggerRef.current);\n if (onCloseHandler) {\n onCloseHandler();\n }\n };\n\n window.addEventListener('scroll', onScroll, true);\n return () => {\n window.removeEventListener('scroll', onScroll, true);\n };\n }, [isOpen, onClose, triggerRef]);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {calculatePosition, PositionResult} from './calculatePosition';\nimport {DOMAttributes} from '@react-types/shared';\nimport {Placement, PlacementAxis, PositionProps} from '@react-types/overlays';\nimport {RefObject, useCallback, useRef, useState} from 'react';\nimport {useCloseOnScroll} from './useCloseOnScroll';\nimport {useLayoutEffect, useResizeObserver} from '@react-aria/utils';\nimport {useLocale} from '@react-aria/i18n';\n\nexport interface AriaPositionProps extends PositionProps {\n /**\n * Element that that serves as the positioning boundary.\n * @default document.body\n */\n boundaryElement?: Element,\n /**\n * The ref for the element which the overlay positions itself with respect to.\n */\n targetRef: RefObject,\n /**\n * The ref for the overlay element.\n */\n overlayRef: RefObject,\n /**\n * A ref for the scrollable region within the overlay.\n * @default overlayRef\n */\n scrollRef?: RefObject,\n /**\n * Whether the overlay should update its position automatically.\n * @default true\n */\n shouldUpdatePosition?: boolean,\n /** Handler that is called when the overlay should close. */\n onClose?: () => void,\n /**\n * The maxHeight specified for the overlay element.\n * By default, it will take all space up to the current viewport height.\n */\n maxHeight?: number\n}\n\nexport interface PositionAria {\n /** Props for the overlay container element. */\n overlayProps: DOMAttributes,\n /** Props for the overlay tip arrow if any. */\n arrowProps: DOMAttributes,\n /** Placement of the overlay with respect to the overlay trigger. */\n placement: PlacementAxis,\n /** Updates the position of the overlay. */\n updatePosition(): void\n}\n\n// @ts-ignore\nlet visualViewport = typeof window !== 'undefined' && window.visualViewport;\n\n/**\n * Handles positioning overlays like popovers and menus relative to a trigger\n * element, and updating the position when the window resizes.\n */\nexport function useOverlayPosition(props: AriaPositionProps): PositionAria {\n let {direction} = useLocale();\n let {\n targetRef,\n overlayRef,\n scrollRef = overlayRef,\n placement = 'bottom' as Placement,\n containerPadding = 12,\n shouldFlip = true,\n boundaryElement = typeof document !== 'undefined' ? document.body : null,\n offset = 0,\n crossOffset = 0,\n shouldUpdatePosition = true,\n isOpen = true,\n onClose,\n maxHeight\n } = props;\n let [position, setPosition] = useState({\n position: {},\n arrowOffsetLeft: undefined,\n arrowOffsetTop: undefined,\n maxHeight: undefined,\n placement: undefined\n });\n\n let deps = [\n shouldUpdatePosition,\n placement,\n overlayRef.current,\n targetRef.current,\n scrollRef.current,\n containerPadding,\n shouldFlip,\n boundaryElement,\n offset,\n crossOffset,\n isOpen,\n direction,\n maxHeight\n ];\n\n let updatePosition = useCallback(() => {\n if (shouldUpdatePosition === false || !isOpen || !overlayRef.current || !targetRef.current || !scrollRef.current || !boundaryElement) {\n return;\n }\n\n setPosition(\n calculatePosition({\n placement: translateRTL(placement, direction),\n overlayNode: overlayRef.current,\n targetNode: targetRef.current,\n scrollNode: scrollRef.current,\n padding: containerPadding,\n shouldFlip,\n boundaryElement,\n offset,\n crossOffset,\n maxHeight\n })\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n\n // Update position when anything changes\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useLayoutEffect(updatePosition, deps);\n\n // Update position on window resize\n useResize(updatePosition);\n\n // Update position when the overlay changes size (might need to flip).\n useResizeObserver({\n ref: overlayRef,\n onResize: updatePosition\n });\n\n // Reposition the overlay and do not close on scroll while the visual viewport is resizing.\n // This will ensure that overlays adjust their positioning when the iOS virtual keyboard appears.\n let isResizing = useRef(false);\n useLayoutEffect(() => {\n let timeout: ReturnType;\n let onResize = () => {\n isResizing.current = true;\n clearTimeout(timeout);\n\n timeout = setTimeout(() => {\n isResizing.current = false;\n }, 500);\n\n updatePosition();\n };\n\n visualViewport?.addEventListener('resize', onResize);\n\n return () => {\n visualViewport?.removeEventListener('resize', onResize);\n };\n }, [updatePosition]);\n\n let close = useCallback(() => {\n if (!isResizing.current) {\n onClose();\n }\n }, [onClose, isResizing]);\n\n // When scrolling a parent scrollable region of the trigger (other than the body),\n // we hide the popover. Otherwise, its position would be incorrect.\n useCloseOnScroll({\n triggerRef: targetRef,\n isOpen,\n onClose: onClose && close\n });\n\n return {\n overlayProps: {\n style: {\n position: 'absolute',\n zIndex: 100000, // should match the z-index in ModalTrigger\n ...position.position,\n maxHeight: position.maxHeight\n }\n },\n placement: position.placement,\n arrowProps: {\n style: {\n left: position.arrowOffsetLeft,\n top: position.arrowOffsetTop\n }\n },\n updatePosition\n };\n}\n\nfunction useResize(onResize) {\n useLayoutEffect(() => {\n window.addEventListener('resize', onResize, false);\n return () => {\n window.removeEventListener('resize', onResize, false);\n };\n }, [onResize]);\n}\n\nfunction translateRTL(position, direction) {\n if (direction === 'rtl') {\n return position.replace('start', 'right').replace('end', 'left');\n }\n return position.replace('start', 'left').replace('end', 'right');\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes} from '@react-types/shared';\nimport {isElementInChildOfActiveScope} from '@react-aria/focus';\nimport {RefObject, SyntheticEvent, useEffect} from 'react';\nimport {useFocusWithin, useInteractOutside} from '@react-aria/interactions';\n\nexport interface AriaOverlayProps {\n /** Whether the overlay is currently open. */\n isOpen?: boolean,\n\n /** Handler that is called when the overlay should close. */\n onClose?: () => void,\n\n /**\n * Whether to close the overlay when the user interacts outside it.\n * @default false\n */\n isDismissable?: boolean,\n\n /** Whether the overlay should close when focus is lost or moves outside it. */\n shouldCloseOnBlur?: boolean,\n\n /**\n * Whether pressing the escape key to close the overlay should be disabled.\n * @default false\n */\n isKeyboardDismissDisabled?: boolean,\n\n /**\n * When user interacts with the argument element outside of the overlay ref,\n * return true if onClose should be called. This gives you a chance to filter\n * out interaction with elements that should not dismiss the overlay.\n * By default, onClose will always be called on interaction outside the overlay ref.\n */\n shouldCloseOnInteractOutside?: (element: Element) => boolean\n}\n\nexport interface OverlayAria {\n /** Props to apply to the overlay container element. */\n overlayProps: DOMAttributes,\n /** Props to apply to the underlay element, if any. */\n underlayProps: DOMAttributes\n}\n\nconst visibleOverlays: RefObject[] = [];\n\n/**\n * Provides the behavior for overlays such as dialogs, popovers, and menus.\n * Hides the overlay when the user interacts outside it, when the Escape key is pressed,\n * or optionally, on blur. Only the top-most overlay will close at once.\n */\nexport function useOverlay(props: AriaOverlayProps, ref: RefObject): OverlayAria {\n let {\n onClose,\n shouldCloseOnBlur,\n isOpen,\n isDismissable = false,\n isKeyboardDismissDisabled = false,\n shouldCloseOnInteractOutside\n } = props;\n\n // Add the overlay ref to the stack of visible overlays on mount, and remove on unmount.\n useEffect(() => {\n if (isOpen) {\n visibleOverlays.push(ref);\n }\n\n return () => {\n let index = visibleOverlays.indexOf(ref);\n if (index >= 0) {\n visibleOverlays.splice(index, 1);\n }\n };\n }, [isOpen, ref]);\n\n // Only hide the overlay when it is the topmost visible overlay in the stack.\n let onHide = () => {\n if (visibleOverlays[visibleOverlays.length - 1] === ref && onClose) {\n onClose();\n }\n };\n\n let onInteractOutsideStart = (e: SyntheticEvent) => {\n if (!shouldCloseOnInteractOutside || shouldCloseOnInteractOutside(e.target as Element)) {\n if (visibleOverlays[visibleOverlays.length - 1] === ref) {\n e.stopPropagation();\n e.preventDefault();\n }\n }\n };\n\n let onInteractOutside = (e: SyntheticEvent) => {\n if (!shouldCloseOnInteractOutside || shouldCloseOnInteractOutside(e.target as Element)) {\n if (visibleOverlays[visibleOverlays.length - 1] === ref) {\n e.stopPropagation();\n e.preventDefault();\n }\n onHide();\n }\n };\n\n // Handle the escape key\n let onKeyDown = (e) => {\n if (e.key === 'Escape' && !isKeyboardDismissDisabled) {\n e.stopPropagation();\n e.preventDefault();\n onHide();\n }\n };\n\n // Handle clicking outside the overlay to close it\n useInteractOutside({ref, onInteractOutside: isDismissable ? onInteractOutside : null, onInteractOutsideStart});\n\n let {focusWithinProps} = useFocusWithin({\n isDisabled: !shouldCloseOnBlur,\n onBlurWithin: (e) => {\n // If focus is moving into a child focus scope (e.g. menu inside a dialog),\n // do not close the outer overlay. At this point, the active scope should\n // still be the outer overlay, since blur events run before focus.\n if (e.relatedTarget && isElementInChildOfActiveScope(e.relatedTarget)) {\n return;\n }\n\n if (!shouldCloseOnInteractOutside || shouldCloseOnInteractOutside(e.relatedTarget as Element)) {\n onClose();\n }\n }\n });\n\n let onPointerDownUnderlay = e => {\n // fixes a firefox issue that starts text selection https://bugzilla.mozilla.org/show_bug.cgi?id=1675846\n if (e.target === e.currentTarget) {\n e.preventDefault();\n }\n };\n\n return {\n overlayProps: {\n onKeyDown,\n ...focusWithinProps\n },\n underlayProps: {\n onPointerDown: onPointerDownUnderlay\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaButtonProps} from '@react-types/button';\nimport {DOMAttributes} from '@react-types/shared';\nimport {onCloseMap} from './useCloseOnScroll';\nimport {OverlayTriggerState} from '@react-stately/overlays';\nimport {RefObject, useEffect} from 'react';\nimport {useId} from '@react-aria/utils';\n\nexport interface OverlayTriggerProps {\n /** Type of overlay that is opened by the trigger. */\n type: 'dialog' | 'menu' | 'listbox' | 'tree' | 'grid'\n}\n\nexport interface OverlayTriggerAria {\n /** Props for the trigger element. */\n triggerProps: AriaButtonProps,\n\n /** Props for the overlay container element. */\n overlayProps: DOMAttributes\n}\n\n/**\n * Handles the behavior and accessibility for an overlay trigger, e.g. a button\n * that opens a popover, menu, or other overlay that is positioned relative to the trigger.\n */\nexport function useOverlayTrigger(props: OverlayTriggerProps, state: OverlayTriggerState, ref: RefObject): OverlayTriggerAria {\n let {type} = props;\n let {isOpen} = state;\n\n // Backward compatibility. Share state close function with useOverlayPosition so it can close on scroll\n // without forcing users to pass onClose.\n useEffect(() => {\n if (ref && ref.current) {\n onCloseMap.set(ref.current, state.close);\n }\n });\n\n // Aria 1.1 supports multiple values for aria-haspopup other than just menus.\n // https://www.w3.org/TR/wai-aria-1.1/#aria-haspopup\n // However, we only add it for menus for now because screen readers often\n // announce it as a menu even for other values.\n let ariaHasPopup = undefined;\n if (type === 'menu') {\n ariaHasPopup = true;\n } else if (type === 'listbox') {\n ariaHasPopup = 'listbox';\n }\n\n let overlayId = useId();\n return {\n triggerProps: {\n 'aria-haspopup': ariaHasPopup,\n 'aria-expanded': isOpen,\n 'aria-controls': isOpen ? overlayId : null,\n onPress: state.toggle\n },\n overlayProps: {\n id: overlayId\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {chain, getScrollParent, isIOS, useLayoutEffect} from '@react-aria/utils';\n\ninterface PreventScrollOptions {\n /** Whether the scroll lock is disabled. */\n isDisabled?: boolean\n}\n\n// @ts-ignore\nconst visualViewport = typeof window !== 'undefined' && window.visualViewport;\n\n// HTML input types that do not cause the software keyboard to appear.\nconst nonTextInputTypes = new Set([\n 'checkbox',\n 'radio',\n 'range',\n 'color',\n 'file',\n 'image',\n 'button',\n 'submit',\n 'reset'\n]);\n\n/**\n * Prevents scrolling on the document body on mount, and\n * restores it on unmount. Also ensures that content does not\n * shift due to the scrollbars disappearing.\n */\nexport function usePreventScroll(options: PreventScrollOptions = {}) {\n let {isDisabled} = options;\n\n useLayoutEffect(() => {\n if (isDisabled) {\n return;\n }\n\n if (isIOS()) {\n return preventScrollMobileSafari();\n } else {\n return preventScrollStandard();\n }\n }, [isDisabled]);\n}\n\n// For most browsers, all we need to do is set `overflow: hidden` on the root element, and\n// add some padding to prevent the page from shifting when the scrollbar is hidden.\nfunction preventScrollStandard() {\n return chain(\n setStyle(document.documentElement, 'paddingRight', `${window.innerWidth - document.documentElement.clientWidth}px`),\n setStyle(document.documentElement, 'overflow', 'hidden')\n );\n}\n\n// Mobile Safari is a whole different beast. Even with overflow: hidden,\n// it still scrolls the page in many situations:\n//\n// 1. When the bottom toolbar and address bar are collapsed, page scrolling is always allowed.\n// 2. When the keyboard is visible, the viewport does not resize. Instead, the keyboard covers part of\n// it, so it becomes scrollable.\n// 3. When tapping on an input, the page always scrolls so that the input is centered in the visual viewport.\n// This may cause even fixed position elements to scroll off the screen.\n// 4. When using the next/previous buttons in the keyboard to navigate between inputs, the whole page always\n// scrolls, even if the input is inside a nested scrollable element that could be scrolled instead.\n//\n// In order to work around these cases, and prevent scrolling without jankiness, we do a few things:\n//\n// 1. Prevent default on `touchmove` events that are not in a scrollable element. This prevents touch scrolling\n// on the window.\n// 2. Prevent default on `touchmove` events inside a scrollable element when the scroll position is at the\n// top or bottom. This avoids the whole page scrolling instead, but does prevent overscrolling.\n// 3. Prevent default on `touchend` events on input elements and handle focusing the element ourselves.\n// 4. When focusing an input, apply a transform to trick Safari into thinking the input is at the top\n// of the page, which prevents it from scrolling the page. After the input is focused, scroll the element\n// into view ourselves, without scrolling the whole page.\n// 5. Offset the body by the scroll position using a negative margin and scroll to the top. This should appear the\n// same visually, but makes the actual scroll position always zero. This is required to make all of the\n// above work or Safari will still try to scroll the page when focusing an input.\n// 6. As a last resort, handle window scroll events, and scroll back to the top. This can happen when attempting\n// to navigate to an input with the next/previous buttons that's outside a modal.\nfunction preventScrollMobileSafari() {\n let scrollable: Element;\n let lastY = 0;\n let onTouchStart = (e: TouchEvent) => {\n // Store the nearest scrollable parent element from the element that the user touched.\n scrollable = getScrollParent(e.target as Element);\n if (scrollable === document.documentElement && scrollable === document.body) {\n return;\n }\n\n lastY = e.changedTouches[0].pageY;\n };\n\n let onTouchMove = (e: TouchEvent) => {\n // Prevent scrolling the window.\n if (scrollable === document.documentElement || scrollable === document.body) {\n e.preventDefault();\n return;\n }\n\n // Prevent scrolling up when at the top and scrolling down when at the bottom\n // of a nested scrollable area, otherwise mobile Safari will start scrolling\n // the window instead. Unfortunately, this disables bounce scrolling when at\n // the top but it's the best we can do.\n let y = e.changedTouches[0].pageY;\n let scrollTop = scrollable.scrollTop;\n let bottom = scrollable.scrollHeight - scrollable.clientHeight;\n\n if ((scrollTop <= 0 && y > lastY) || (scrollTop >= bottom && y < lastY)) {\n e.preventDefault();\n }\n\n lastY = y;\n };\n\n let onTouchEnd = (e: TouchEvent) => {\n let target = e.target as HTMLElement;\n\n // Apply this change if we're not already focused on the target element\n if (willOpenKeyboard(target) && target !== document.activeElement) {\n e.preventDefault();\n\n // Apply a transform to trick Safari into thinking the input is at the top of the page\n // so it doesn't try to scroll it into view. When tapping on an input, this needs to\n // be done before the \"focus\" event, so we have to focus the element ourselves.\n target.style.transform = 'translateY(-2000px)';\n target.focus();\n requestAnimationFrame(() => {\n target.style.transform = '';\n });\n }\n };\n\n let onFocus = (e: FocusEvent) => {\n let target = e.target as HTMLElement;\n if (willOpenKeyboard(target)) {\n // Transform also needs to be applied in the focus event in cases where focus moves\n // other than tapping on an input directly, e.g. the next/previous buttons in the\n // software keyboard. In these cases, it seems applying the transform in the focus event\n // is good enough, whereas when tapping an input, it must be done before the focus event. 🤷‍♂️\n target.style.transform = 'translateY(-2000px)';\n requestAnimationFrame(() => {\n target.style.transform = '';\n\n // This will have prevented the browser from scrolling the focused element into view,\n // so we need to do this ourselves in a way that doesn't cause the whole page to scroll.\n if (visualViewport) {\n if (visualViewport.height < window.innerHeight) {\n // If the keyboard is already visible, do this after one additional frame\n // to wait for the transform to be removed.\n requestAnimationFrame(() => {\n scrollIntoView(target);\n });\n } else {\n // Otherwise, wait for the visual viewport to resize before scrolling so we can\n // measure the correct position to scroll to.\n visualViewport.addEventListener('resize', () => scrollIntoView(target), {once: true});\n }\n }\n });\n }\n };\n\n let onWindowScroll = () => {\n // Last resort. If the window scrolled, scroll it back to the top.\n // It should always be at the top because the body will have a negative margin (see below).\n window.scrollTo(0, 0);\n };\n\n // Record the original scroll position so we can restore it.\n // Then apply a negative margin to the body to offset it by the scroll position. This will\n // enable us to scroll the window to the top, which is required for the rest of this to work.\n let scrollX = window.pageXOffset;\n let scrollY = window.pageYOffset;\n let restoreStyles = chain(\n setStyle(document.documentElement, 'paddingRight', `${window.innerWidth - document.documentElement.clientWidth}px`),\n setStyle(document.documentElement, 'overflow', 'hidden'),\n setStyle(document.body, 'marginTop', `-${scrollY}px`)\n );\n\n // Scroll to the top. The negative margin on the body will make this appear the same.\n window.scrollTo(0, 0);\n\n let removeEvents = chain(\n addEvent(document, 'touchstart', onTouchStart, {passive: false, capture: true}),\n addEvent(document, 'touchmove', onTouchMove, {passive: false, capture: true}),\n addEvent(document, 'touchend', onTouchEnd, {passive: false, capture: true}),\n addEvent(document, 'focus', onFocus, true),\n addEvent(window, 'scroll', onWindowScroll)\n );\n\n return () => {\n // Restore styles and scroll the page back to where it was.\n restoreStyles();\n removeEvents();\n window.scrollTo(scrollX, scrollY);\n };\n}\n\n// Sets a CSS property on an element, and returns a function to revert it to the previous value.\nfunction setStyle(element: HTMLElement, style: string, value: string) {\n let cur = element.style[style];\n element.style[style] = value;\n return () => {\n element.style[style] = cur;\n };\n}\n\n// Adds an event listener to an element, and returns a function to remove it.\nfunction addEvent(\n target: EventTarget,\n event: K,\n handler: (this: Document, ev: GlobalEventHandlersEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions\n) {\n target.addEventListener(event, handler, options);\n return () => {\n target.removeEventListener(event, handler, options);\n };\n}\n\nfunction scrollIntoView(target: Element) {\n let root = document.scrollingElement || document.documentElement;\n while (target && target !== root) {\n // Find the parent scrollable element and adjust the scroll position if the target is not already in view.\n let scrollable = getScrollParent(target);\n if (scrollable !== document.documentElement && scrollable !== document.body && scrollable !== target) {\n let scrollableTop = scrollable.getBoundingClientRect().top;\n let targetTop = target.getBoundingClientRect().top;\n if (targetTop > scrollableTop + target.clientHeight) {\n scrollable.scrollTop += targetTop - scrollableTop;\n }\n }\n\n target = scrollable.parentElement;\n }\n}\n\nfunction willOpenKeyboard(target: Element) {\n return (\n (target instanceof HTMLInputElement && !nonTextInputTypes.has(target.type)) ||\n target instanceof HTMLTextAreaElement ||\n (target instanceof HTMLElement && target.isContentEditable)\n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes} from '@react-types/shared';\nimport React, {AriaAttributes, ReactNode, useContext, useEffect, useMemo, useState} from 'react';\nimport ReactDOM from 'react-dom';\nimport {useIsSSR} from '@react-aria/ssr';\n\nexport interface ModalProviderProps extends DOMAttributes {\n children: ReactNode\n}\n\ninterface ModalContext {\n parent: ModalContext | null,\n modalCount: number,\n addModal: () => void,\n removeModal: () => void\n}\n\nconst Context = React.createContext(null);\n\n/**\n * Each ModalProvider tracks how many modals are open in its subtree. On mount, the modals\n * trigger `addModal` to increment the count, and trigger `removeModal` on unmount to decrement it.\n * This is done recursively so that all parent providers are incremented and decremented.\n * If the modal count is greater than zero, we add `aria-hidden` to this provider to hide its\n * subtree from screen readers. This is done using React context in order to account for things\n * like portals, which can cause the React tree and the DOM tree to differ significantly in structure.\n */\nexport function ModalProvider(props: ModalProviderProps) {\n let {children} = props;\n let parent = useContext(Context);\n let [modalCount, setModalCount] = useState(0);\n let context = useMemo(() => ({\n parent,\n modalCount,\n addModal() {\n setModalCount(count => count + 1);\n if (parent) {\n parent.addModal();\n }\n },\n removeModal() {\n setModalCount(count => count - 1);\n if (parent) {\n parent.removeModal();\n }\n }\n }), [parent, modalCount]);\n\n return (\n \n {children}\n \n );\n}\n\nexport interface ModalProviderAria {\n /**\n * Props to be spread on the container element.\n */\n modalProviderProps: AriaAttributes\n}\n\n/**\n * Used to determine if the tree should be aria-hidden based on how many\n * modals are open.\n */\nexport function useModalProvider(): ModalProviderAria {\n let context = useContext(Context);\n return {\n modalProviderProps: {\n 'aria-hidden': context && context.modalCount > 0 ? true : null\n }\n };\n}\n\n/**\n * Creates a root node that will be aria-hidden if there are other modals open.\n */\nfunction OverlayContainerDOM(props: ModalProviderProps) {\n let {modalProviderProps} = useModalProvider();\n return
;\n}\n\n/**\n * An OverlayProvider acts as a container for the top-level application.\n * Any application that uses modal dialogs or other overlays should\n * be wrapped in a ``. This is used to ensure that\n * the main content of the application is hidden from screen readers\n * if a modal or other overlay is opened. Only the top-most modal or\n * overlay should be accessible at once.\n */\nexport function OverlayProvider(props: ModalProviderProps) {\n return (\n \n \n \n );\n}\n\nexport interface OverlayContainerProps extends ModalProviderProps {\n /**\n * The container element in which the overlay portal will be placed.\n * @default document.body\n */\n portalContainer?: Element\n}\n\n/**\n * A container for overlays like modals and popovers. Renders the overlay\n * into a Portal which is placed at the end of the document body.\n * Also ensures that the overlay is hidden from screen readers if a\n * nested modal is opened. Only the top-most modal or overlay should\n * be accessible at once.\n */\nexport function OverlayContainer(props: OverlayContainerProps): React.ReactPortal {\n let isSSR = useIsSSR();\n let {portalContainer = isSSR ? null : document.body, ...rest} = props;\n\n React.useEffect(() => {\n if (portalContainer?.closest('[data-overlay-container]')) {\n throw new Error('An OverlayContainer must not be inside another container. Please change the portalContainer prop.');\n }\n }, [portalContainer]);\n\n if (!portalContainer) {\n return null;\n }\n\n let contents = ;\n return ReactDOM.createPortal(contents, portalContainer);\n}\n\ninterface ModalAriaProps extends DOMAttributes {\n /** Data attribute marks the dom node as a modal for the aria-modal-polyfill. */\n 'data-ismodal': boolean\n}\n\nexport interface AriaModalOptions {\n isDisabled?: boolean\n}\n\nexport interface ModalAria {\n /** Props for the modal content element. */\n modalProps: ModalAriaProps\n}\n\n/**\n * Hides content outside the current `` from screen readers\n * on mount and restores it on unmount. Typically used by modal dialogs and\n * other types of overlays to ensure that only the top-most modal is\n * accessible at once.\n */\nexport function useModal(options?: AriaModalOptions): ModalAria {\n // Add aria-hidden to all parent providers on mount, and restore on unmount.\n let context = useContext(Context);\n if (!context) {\n throw new Error('Modal is not contained within a provider');\n }\n\n useEffect(() => {\n if (options?.isDisabled || !context || !context.parent) {\n return;\n }\n\n // The immediate context is from the provider containing this modal, so we only\n // want to trigger aria-hidden on its parents not on the modal provider itself.\n context.parent.addModal();\n return () => {\n if (context && context.parent) {\n context.parent.removeModal();\n }\n };\n }, [context, context.parent, options?.isDisabled]);\n\n return {\n modalProps: {\n 'data-ismodal': !options?.isDisabled\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Keeps a ref count of all hidden elements. Added to when hiding an element, and\n// subtracted from when showing it again. When it reaches zero, aria-hidden is removed.\nlet refCountMap = new WeakMap();\nlet observerStack = [];\n\n/**\n * Hides all elements in the DOM outside the given targets from screen readers using aria-hidden,\n * and returns a function to revert these changes. In addition, changes to the DOM are watched\n * and new elements outside the targets are automatically hidden.\n * @param targets - The elements that should remain visible.\n * @param root - Nothing will be hidden above this element.\n * @returns - A function to restore all hidden elements.\n */\nexport function ariaHideOutside(targets: Element[], root = document.body) {\n let visibleNodes = new Set(targets);\n let hiddenNodes = new Set();\n let walker = document.createTreeWalker(\n root,\n NodeFilter.SHOW_ELEMENT,\n {\n acceptNode(node) {\n // If this node is a live announcer, add it to the set of nodes to keep visible.\n if (((node instanceof HTMLElement || node instanceof SVGElement) && node.dataset.liveAnnouncer === 'true')) {\n visibleNodes.add(node);\n }\n\n // Skip this node and its children if it is one of the target nodes, or a live announcer.\n // Also skip children of already hidden nodes, as aria-hidden is recursive. An exception is\n // made for elements with role=\"row\" since VoiceOver on iOS has issues hiding elements with role=\"row\".\n // For that case we want to hide the cells inside as well (https://bugs.webkit.org/show_bug.cgi?id=222623).\n if (\n visibleNodes.has(node as Element) ||\n (hiddenNodes.has(node.parentElement) && node.parentElement.getAttribute('role') !== 'row')\n ) {\n return NodeFilter.FILTER_REJECT;\n }\n\n // Skip this node but continue to children if one of the targets is inside the node.\n if (targets.some(target => node.contains(target))) {\n return NodeFilter.FILTER_SKIP;\n }\n\n return NodeFilter.FILTER_ACCEPT;\n }\n }\n );\n\n let hide = (node: Element) => {\n let refCount = refCountMap.get(node) ?? 0;\n\n // If already aria-hidden, and the ref count is zero, then this element\n // was already hidden and there's nothing for us to do.\n if (node.getAttribute('aria-hidden') === 'true' && refCount === 0) {\n return;\n }\n\n if (refCount === 0) {\n node.setAttribute('aria-hidden', 'true');\n }\n\n hiddenNodes.add(node);\n refCountMap.set(node, refCount + 1);\n };\n\n // If there is already a MutationObserver listening from a previous call,\n // disconnect it so the new on takes over.\n if (observerStack.length) {\n observerStack[observerStack.length - 1].disconnect();\n }\n\n let node = walker.nextNode() as Element;\n while (node != null) {\n hide(node);\n node = walker.nextNode() as Element;\n }\n\n let observer = new MutationObserver(changes => {\n for (let change of changes) {\n if (change.type !== 'childList' || change.addedNodes.length === 0) {\n continue;\n }\n\n // If the parent element of the added nodes is not within one of the targets,\n // and not already inside a hidden node, hide all of the new children.\n if (![...visibleNodes, ...hiddenNodes].some(node => node.contains(change.target))) {\n for (let node of change.addedNodes) {\n if (((node instanceof HTMLElement || node instanceof SVGElement) && node.dataset.liveAnnouncer === 'true')) {\n visibleNodes.add(node);\n } else if (node instanceof Element) {\n hide(node);\n }\n }\n }\n }\n });\n\n observer.observe(root, {childList: true, subtree: true});\n\n let observerWrapper = {\n observe() {\n observer.observe(root, {childList: true, subtree: true});\n },\n disconnect() {\n observer.disconnect();\n }\n };\n\n observerStack.push(observerWrapper);\n\n return () => {\n observer.disconnect();\n\n for (let node of hiddenNodes) {\n let count = refCountMap.get(node);\n if (count === 1) {\n node.removeAttribute('aria-hidden');\n refCountMap.delete(node);\n } else {\n refCountMap.set(node, count - 1);\n }\n }\n\n // Remove this observer from the stack, and start the previous one.\n if (observerWrapper === observerStack[observerStack.length - 1]) {\n observerStack.pop();\n if (observerStack.length) {\n observerStack[observerStack.length - 1].observe();\n }\n } else {\n observerStack.splice(observerStack.indexOf(observerWrapper), 1);\n }\n };\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusScope} from '@react-aria/focus';\nimport React, {ReactNode, useContext, useMemo, useState} from 'react';\nimport ReactDOM from 'react-dom';\nimport {useIsSSR} from '@react-aria/ssr';\nimport {useLayoutEffect} from '@react-aria/utils';\n\nexport interface OverlayProps {\n /**\n * The container element in which the overlay portal will be placed.\n * @default document.body\n */\n portalContainer?: Element,\n /** The overlay to render in the portal. */\n children: ReactNode\n}\n\nexport const OverlayContext = React.createContext(null);\n\n/**\n * A container which renders an overlay such as a popover or modal in a portal,\n * and provides a focus scope for the child elements.\n */\nexport function Overlay(props: OverlayProps) {\n let isSSR = useIsSSR();\n let {portalContainer = isSSR ? null : document.body} = props;\n let [contain, setContain] = useState(false);\n let contextValue = useMemo(() => ({contain, setContain}), [contain, setContain]);\n\n if (!portalContainer) {\n return null;\n }\n\n let contents = (\n \n \n {props.children}\n \n \n );\n\n return ReactDOM.createPortal(contents, portalContainer);\n}\n\n/** @private */\nexport function useOverlayFocusContain() {\n let ctx = useContext(OverlayContext);\n let setContain = ctx?.setContain;\n useLayoutEffect(() => {\n setContain?.(true);\n }, [setContain]);\n}\n","import React, { useEffect } from 'react';\nimport type { ReactNode } from 'react';\nimport { StyleSheet, View, ViewProps } from 'react-native';\n\ntype OverlayItem = {\n id: number;\n node: ReactNode;\n};\n\ninterface PortalContext {\n items: Array;\n setOverlayItem: (node: ReactNode) => number;\n removeOverlayItem: (id: number) => void;\n updateOverlayItem: (id: number, node: ReactNode) => void;\n}\n\ninterface ModalProviderProps extends ViewProps {\n children: ReactNode;\n provider?: boolean;\n}\n\nconst PortalContext = React.createContext(null);\n\nlet globalOverlayCounter = 0;\n\nexport function PortalProvider(props: { children: ReactNode }) {\n const [items, setItems] = React.useState>([]);\n\n const setOverlayItem = (item: ReactNode) => {\n const overlayId = ++globalOverlayCounter;\n setItems((prev) => prev.concat([{ id: overlayId, node: item }]));\n return overlayId;\n };\n\n const updateOverlayItem = (id: number, node: ReactNode) => {\n setItems((prev) =>\n prev.map((item) => {\n if (item.id === id) {\n return { id, node };\n }\n return item;\n })\n );\n };\n\n const removeOverlayItem = (id: number) => {\n setItems((prev) => {\n const newItems = prev.filter((item) => item.id !== id);\n return newItems;\n });\n };\n\n return (\n \n {props.children}\n\n {/* Render Overlays */}\n {items.map((item) => {\n return {item.node};\n })}\n \n );\n}\n\nfunction OverlayView({style, ...props}: ModalProviderProps) {\n return (\n \n );\n}\n\nexport const OverlayProvider = PortalProvider;\n\nexport function OverlayContainer(props: ModalProviderProps) {\n const context = usePortalProvider();\n const overlayId = React.useRef(undefined);\n let contents = ;\n\n useEffect(\n () => {\n // Mount\n if (overlayId.current === undefined) {\n overlayId.current = context?.setOverlayItem(contents);\n }\n // Update\n else {\n if (overlayId.current) {\n context?.updateOverlayItem(overlayId.current, contents);\n }\n }\n },\n // To re-render the child\n [props]\n );\n\n // Unmount\n useEffect(() => {\n return () => {\n if (overlayId.current) {\n context?.removeOverlayItem(overlayId.current);\n }\n };\n }, []);\n\n return null;\n}\n\nfunction usePortalProvider() {\n const context = React.useContext(PortalContext);\n return context;\n}\n","import { HTMLAttributes, RefObject, useEffect } from 'react';\nimport { useFocusWithin } from '@react-aria/interactions';\n\ninterface OverlayProps {\n /** Whether the overlay is currently open. */\n isOpen?: boolean;\n\n /** Handler that is called when the overlay should close. */\n onClose?: () => void;\n\n /**\n * Whether to close the overlay when the user interacts outside it.\n * @default false\n */\n isDismissable?: boolean;\n\n /** Whether the overlay should close when focus is lost or moves outside it. */\n shouldCloseOnBlur?: boolean;\n\n /**\n * Whether pressing the escape key to close the overlay should be disabled.\n * @default false\n */\n isKeyboardDismissDisabled?: boolean;\n\n /**\n * When user interacts with the argument element outside of the overlay ref,\n * return true if onClose should be called. This gives you a chance to filter\n * out interaction with elements that should not dismiss the overlay.\n * By default, onClose will always be called on interaction outside the overlay ref.\n */\n shouldCloseOnInteractOutside?: (element: HTMLElement) => boolean;\n}\n\ninterface OverlayAria {\n /** Props to apply to the overlay container element. */\n overlayProps: HTMLAttributes;\n}\n\nconst visibleOverlays: RefObject[] = [];\n\n/**\n * Provides the behavior for overlays such as dialogs, popovers, and menus.\n * Hides the overlay when the user interacts outside it, when the Escape key is pressed,\n * or optionally, on blur. Only the top-most overlay will close at once.\n */\nexport function useOverlay(\n props: OverlayProps,\n ref: RefObject\n): OverlayAria {\n let {\n onClose,\n shouldCloseOnBlur,\n isOpen,\n isKeyboardDismissDisabled = false,\n } = props;\n\n // Add the overlay ref to the stack of visible overlays on mount, and remove on unmount.\n useEffect(() => {\n if (isOpen) {\n visibleOverlays.push(ref);\n }\n\n return () => {\n let index = visibleOverlays.indexOf(ref);\n if (index >= 0) {\n visibleOverlays.splice(index, 1);\n }\n };\n }, [isOpen, ref]);\n\n // Only hide the overlay when it is the topmost visible overlay in the stack.\n let onHide = () => {\n if (visibleOverlays[visibleOverlays.length - 1] === ref && onClose) {\n onClose();\n }\n };\n\n // Handle the escape key\n let onKeyDown = (e: any) => {\n if (e.key === 'Escape' && !isKeyboardDismissDisabled) {\n e.preventDefault();\n onHide();\n }\n };\n\n // Handle clicking outside the overlay to close it\n\n let { focusWithinProps } = useFocusWithin({\n isDisabled: !shouldCloseOnBlur,\n onBlurWithin: () => {\n onClose && onClose();\n },\n });\n\n return {\n overlayProps: {\n onKeyDown,\n ...focusWithinProps,\n },\n };\n}\n","import React, { RefObject } from 'react';\n\nconst ariaToAccessibilityMap: any = {\n 'aria-activedescendant': 'accessibilityActiveDescendant',\n 'aria-atomic': 'accessibilityAtomic',\n 'aria-autocomplete': 'accessibilityAutoComplete',\n 'aria-busy': 'accessibilityBusy',\n 'aria-checked': 'accessibilityChecked',\n 'aria-colcount': 'accessibilityColumnCount',\n 'aria-colindex': 'accessibilityColumnIndex',\n 'aria-colspan': 'accessibilityColumnSpan',\n 'aria-controls': 'accessibilityControls',\n 'aria-describedby': 'accessibilityDescribedBy',\n 'aria-details': 'accessibilityDetails',\n 'aria-disabled': 'accessibilityDisabled',\n 'aria-errormessage': 'accessibilityErrorMessage',\n 'aria-expanded': 'accessibilityExpanded',\n 'aria-flowto': 'accessibilityFlowTo',\n 'aria-haspopup': 'accessibilityHasPopup',\n 'aria-hidden': 'accessibilityHidden',\n 'aria-invalid': 'accessibilityInvalid',\n 'aria-keyshortcuts': 'accessibilityKeyShortcuts',\n 'aria-label': 'accessibilityLabel',\n 'aria-labelledby': 'accessibilityLabelledBy',\n 'aria-live': 'accessibilityLiveRegion',\n 'aria-modal': 'accessibilityModal',\n 'aria-multiline': 'accessibilityMultiline',\n 'aria-multiselectable': 'accessibilityMultiSelectable',\n 'aria-orientation': 'accessibilityOrientation',\n 'aria-owns': 'accessibilityOwns',\n 'aria-placeholder': 'accessibilityPlaceholder',\n 'aria-posinset': 'accessibilityPosInSet',\n 'aria-pressed': 'accessibilityPressed',\n 'aria-readonly': 'accessibilityReadOnly',\n 'aria-required': 'accessibilityRequired',\n 'aria-roledescription': 'accessibilityRoleDescription',\n 'aria-rowcount': 'accessibilityRowCount',\n 'aria-rowindex': 'accessibilityRowIndex',\n 'aria-rowspan': 'accessibilityRowSpan',\n 'aria-selected': 'accessibilitySelected',\n 'aria-setsize': 'accessibilitySetSize',\n 'aria-sort': 'accessibilitySort',\n 'aria-valuemax': 'accessibilityValueMax',\n 'aria-valuemin': 'accessibilityValueMin',\n 'aria-valuenow': 'accessibilityValueNow',\n 'aria-valuetext': 'accessibilityValueText',\n};\n\n// Refer - https://necolas.github.io/react-native-web/docs/accessibility/\nexport const mapDomPropsToRN = (props: any) => {\n let newProps: any = { ...props };\n\n if (props.tabIndex === '0' || props.tabIndex === 0) {\n newProps.focusable = true;\n }\n // use the below hook for tabIndex\n // useMapDomPropsToRN\n // if (props.tabIndex === '-1' || props.tabIndex === -1) {\n // newProps.focusable = false;\n // }\n\n if (props.role) {\n newProps.accessibilityRole = props.role;\n }\n\n if (props.id) {\n newProps.nativeID = props.id;\n }\n\n for (let key in props) {\n // Map aria to RN web accessibility equivalents\n if (key.indexOf('aria') > -1) {\n if (ariaToAccessibilityMap[key]) {\n newProps[ariaToAccessibilityMap[key]] = props[key];\n } else {\n console.warn(\n '@react-native-aria/utils:: ',\n 'No equivalent mapping of ' +\n key +\n ' found in ariaToAccessibilityMap. Please raise a PR to support this attribute.'\n );\n }\n } else if (key.indexOf('data-') > -1) {\n if (!newProps.dataSet) {\n newProps.dataSet = {};\n }\n\n newProps.dataSet[key.split('data-')[1]] = props[key];\n }\n }\n\n return newProps;\n};\n\n// RN web currently doesn't allow setting tabIndex via props, so need to be set using setNativeProps or ref\n// https://github.com/necolas/react-native-web/issues/1916\n// https://github.com/necolas/react-native-web/issues/1099\nexport const useMapDomPropsToRN = (props: any, ref: RefObject) => {\n React.useEffect(() => {\n if (ref.current) {\n ref.current.tabIndex = props.tabIndex;\n }\n }, [props.tabIndex]);\n\n return mapDomPropsToRN(props);\n};\n","import { I18nManager } from 'react-native';\n\nexport const attachEventHandlersOnRef = (props: any, ref: any) => {\n if (ref && ref.current) {\n for (let key in props) {\n if (key.startsWith('on')) {\n ref.current[key.toLowerCase()] = props[key];\n }\n }\n }\n};\n\nexport const getLabel = (props: any) => {\n let label = props.accessibilityLabel ?? props['aria-label'];\n\n if (!label) {\n label = typeof props.label === 'string' ? props.label : undefined;\n }\n\n return label;\n};\n\nexport * from './ariaToAccessibilityMap';\nexport {\n useId,\n useLayoutEffect,\n mergeIds,\n mergeProps,\n} from '@react-aria/utils';\nexport { SSRProvider, useIsSSR } from '@react-aria/ssr';\n\nexport const isRTL = () => {\n // To support previous RN versions. Newer versions use below getConstants()\n if (I18nManager.isRTL !== undefined) {\n return I18nManager.isRTL;\n }\n\n // @ts-ignore - RN web only\n if (I18nManager.getConstants) {\n // @ts-ignore - RN web only\n return I18nManager.getConstants().isRTL;\n }\n};\n","import type { NavigationState, PartialState, Route } from './types';\n\ntype ResetState =\n | PartialState\n | NavigationState\n | (Omit & {\n routes: Omit, 'key'>[];\n });\n\nexport type Action =\n | {\n type: 'GO_BACK';\n source?: string;\n target?: string;\n }\n | {\n type: 'NAVIGATE';\n payload:\n | {\n key: string;\n name?: undefined;\n params?: object;\n path?: string;\n merge?: boolean;\n }\n | {\n name: string;\n key?: string;\n params?: object;\n path?: string;\n merge?: boolean;\n };\n source?: string;\n target?: string;\n }\n | {\n type: 'RESET';\n payload: ResetState | undefined;\n source?: string;\n target?: string;\n }\n | {\n type: 'SET_PARAMS';\n payload: { params?: object };\n source?: string;\n target?: string;\n };\n\nexport function goBack(): Action {\n return { type: 'GO_BACK' };\n}\n\nexport function navigate(\n options:\n | { key: string; params?: object; path?: string; merge?: boolean }\n | {\n name: string;\n key?: string;\n params?: object;\n path?: string;\n merge?: boolean;\n }\n): Action;\n// eslint-disable-next-line no-redeclare\nexport function navigate(name: string, params?: object): Action;\n// eslint-disable-next-line no-redeclare\nexport function navigate(...args: any): Action {\n if (typeof args[0] === 'string') {\n return { type: 'NAVIGATE', payload: { name: args[0], params: args[1] } };\n } else {\n const payload = args[0] || {};\n\n if (!payload.hasOwnProperty('key') && !payload.hasOwnProperty('name')) {\n throw new Error(\n 'You need to specify name or key when calling navigate with an object as the argument. See https://reactnavigation.org/docs/navigation-actions#navigate for usage.'\n );\n }\n\n return { type: 'NAVIGATE', payload };\n }\n}\n\nexport function reset(state: ResetState | undefined): Action {\n return { type: 'RESET', payload: state };\n}\n\nexport function setParams(params: object): Action {\n return { type: 'SET_PARAMS', payload: { params } };\n}\n","import { CommonActions } from '@react-navigation/routers';\n\nimport type {\n NavigationContainerEventMap,\n NavigationContainerRef,\n NavigationContainerRefWithCurrent,\n} from './types';\n\nexport const NOT_INITIALIZED_ERROR =\n \"The 'navigation' object hasn't been initialized yet. This might happen if you don't have a navigator mounted, or if the navigator hasn't finished mounting. See https://reactnavigation.org/docs/navigating-without-navigation-prop#handling-initialization for more details.\";\n\nexport default function createNavigationContainerRef<\n ParamList extends {} = ReactNavigation.RootParamList\n>(): NavigationContainerRefWithCurrent {\n const methods = [\n ...Object.keys(CommonActions),\n 'addListener',\n 'removeListener',\n 'resetRoot',\n 'dispatch',\n 'isFocused',\n 'canGoBack',\n 'getRootState',\n 'getState',\n 'getParent',\n 'getCurrentRoute',\n 'getCurrentOptions',\n ] as const;\n\n const listeners: Record void)[]> = {};\n\n const removeListener = (\n event: string,\n callback: (...args: any[]) => void\n ) => {\n if (listeners[event]) {\n listeners[event] = listeners[event].filter((cb) => cb !== callback);\n }\n };\n\n let current: NavigationContainerRef | null = null;\n\n const ref: NavigationContainerRefWithCurrent = {\n get current() {\n return current;\n },\n set current(value: NavigationContainerRef | null) {\n current = value;\n\n if (value != null) {\n Object.entries(listeners).forEach(([event, callbacks]) => {\n callbacks.forEach((callback) => {\n value.addListener(\n event as keyof NavigationContainerEventMap,\n callback\n );\n });\n });\n }\n },\n isReady: () => {\n if (current == null) {\n return false;\n }\n\n return current.isReady();\n },\n ...methods.reduce((acc, name) => {\n acc[name] = (...args: any[]) => {\n if (current == null) {\n switch (name) {\n case 'addListener': {\n const [event, callback] = args;\n\n listeners[event] = listeners[event] || [];\n listeners[event].push(callback);\n\n return () => removeListener(event, callback);\n }\n case 'removeListener': {\n const [event, callback] = args;\n\n removeListener(event, callback);\n break;\n }\n default:\n console.error(NOT_INITIALIZED_ERROR);\n }\n } else {\n // @ts-expect-error: this is ok\n return current[name](...args);\n }\n };\n return acc;\n }, {}),\n };\n\n return ref;\n}\n","import * as React from 'react';\n\ntype Props = {\n children: React.ReactNode;\n};\n\nconst MULTIPLE_NAVIGATOR_ERROR = `Another navigator is already registered for this container. You likely have multiple navigators under a single \"NavigationContainer\" or \"Screen\". Make sure each navigator is under a separate \"Screen\" container. See https://reactnavigation.org/docs/nesting-navigators for a guide on nesting.`;\n\nexport const SingleNavigatorContext = React.createContext<\n | {\n register(key: string): void;\n unregister(key: string): void;\n }\n | undefined\n>(undefined);\n\n/**\n * Component which ensures that there's only one navigator nested under it.\n */\nexport default function EnsureSingleNavigator({ children }: Props) {\n const navigatorKeyRef = React.useRef();\n\n const value = React.useMemo(\n () => ({\n register(key: string) {\n const currentKey = navigatorKeyRef.current;\n\n if (currentKey !== undefined && key !== currentKey) {\n throw new Error(MULTIPLE_NAVIGATOR_ERROR);\n }\n\n navigatorKeyRef.current = key;\n },\n unregister(key: string) {\n const currentKey = navigatorKeyRef.current;\n\n if (key !== currentKey) {\n return;\n }\n\n navigatorKeyRef.current = undefined;\n },\n }),\n []\n );\n\n return (\n \n {children}\n \n );\n}\n","import type { InitialState } from '@react-navigation/routers';\n\nexport default function findFocusedRoute(state: InitialState) {\n let current: InitialState | undefined = state;\n\n while (current?.routes[current.index ?? 0].state != null) {\n current = current.routes[current.index ?? 0].state;\n }\n\n const route = current?.routes[current?.index ?? 0];\n\n return route;\n}\n","import type {\n NavigationAction,\n NavigationState,\n ParamListBase,\n} from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport type { NavigationHelpers } from './types';\n\nexport type ListenerMap = {\n action: ChildActionListener;\n focus: FocusedNavigationListener;\n};\n\nexport type KeyedListenerMap = {\n getState: GetStateListener;\n beforeRemove: ChildBeforeRemoveListener;\n};\n\nexport type AddListener = (\n type: T,\n listener: ListenerMap[T]\n) => void;\n\nexport type AddKeyedListener = (\n type: T,\n key: string,\n listener: KeyedListenerMap[T]\n) => void;\n\nexport type ChildActionListener = (\n action: NavigationAction,\n visitedNavigators?: Set\n) => boolean;\n\nexport type FocusedNavigationCallback = (\n navigation: NavigationHelpers\n) => T;\n\nexport type FocusedNavigationListener = (\n callback: FocusedNavigationCallback\n) => {\n handled: boolean;\n result: T;\n};\n\nexport type GetStateListener = () => NavigationState;\n\nexport type ChildBeforeRemoveListener = (action: NavigationAction) => boolean;\n\n/**\n * Context which holds the required helpers needed to build nested navigators.\n */\nconst NavigationBuilderContext = React.createContext<{\n onAction?: (\n action: NavigationAction,\n visitedNavigators?: Set\n ) => boolean;\n addListener?: AddListener;\n addKeyedListener?: AddKeyedListener;\n onRouteFocus?: (key: string) => void;\n onDispatchAction: (action: NavigationAction, noop: boolean) => void;\n onOptionsChange: (options: object) => void;\n stackRef?: React.MutableRefObject;\n}>({\n onDispatchAction: () => undefined,\n onOptionsChange: () => undefined,\n});\n\nexport default NavigationBuilderContext;\n","import type { ParamListBase } from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport type { NavigationContainerRef } from './types';\n\n/**\n * Context which holds the route prop for a screen.\n */\nconst NavigationContainerRefContext = React.createContext<\n NavigationContainerRef | undefined\n>(undefined);\n\nexport default NavigationContainerRefContext;\n","import type { ParamListBase } from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport type { NavigationProp } from './types';\n\n/**\n * Context which holds the navigation prop for a screen.\n */\nconst NavigationContext = React.createContext<\n NavigationProp | undefined\n>(undefined);\n\nexport default NavigationContext;\n","import type { Route } from '@react-navigation/routers';\nimport * as React from 'react';\n\n/**\n * Context which holds the route prop for a screen.\n */\nconst NavigationRouteContext = React.createContext | undefined>(\n undefined\n);\n\nexport default NavigationRouteContext;\n","import type { NavigationState, PartialState } from '@react-navigation/routers';\nimport * as React from 'react';\n\nconst MISSING_CONTEXT_ERROR =\n \"Couldn't find a navigation context. Have you wrapped your app with 'NavigationContainer'? See https://reactnavigation.org/docs/getting-started for setup instructions.\";\n\nexport default React.createContext<{\n isDefault?: true;\n state?: NavigationState | PartialState;\n getKey: () => string | undefined;\n setKey: (key: string) => void;\n getState: () => NavigationState | PartialState | undefined;\n setState: (\n state: NavigationState | PartialState | undefined\n ) => void;\n getIsInitial: () => boolean;\n addOptionsGetter?: (\n key: string,\n getter: () => object | undefined | null\n ) => void;\n}>({\n isDefault: true,\n\n get getKey(): any {\n throw new Error(MISSING_CONTEXT_ERROR);\n },\n get setKey(): any {\n throw new Error(MISSING_CONTEXT_ERROR);\n },\n get getState(): any {\n throw new Error(MISSING_CONTEXT_ERROR);\n },\n get setState(): any {\n throw new Error(MISSING_CONTEXT_ERROR);\n },\n get getIsInitial(): any {\n throw new Error(MISSING_CONTEXT_ERROR);\n },\n});\n","import type { NavigationAction } from '@react-navigation/routers';\nimport * as React from 'react';\n\nconst UnhandledActionContext = React.createContext<\n ((action: NavigationAction) => void) | undefined\n>(undefined);\n\nexport default UnhandledActionContext;\n","import * as React from 'react';\n\nimport type { ListenerMap } from './NavigationBuilderContext';\n\n/**\n * Hook which lets child navigators add action listeners.\n */\nexport default function useChildListeners() {\n const { current: listeners } = React.useRef<{\n [K in keyof ListenerMap]: ListenerMap[K][];\n }>({\n action: [],\n focus: [],\n });\n\n const addListener = React.useCallback(\n (type: T, listener: ListenerMap[T]) => {\n // @ts-expect-error: listener should be correct type according to `type`\n listeners[type].push(listener);\n\n return () => {\n // @ts-expect-error: listener should be correct type according to `type`\n const index = listeners[type].indexOf(listener);\n\n listeners[type].splice(index, 1);\n };\n },\n [listeners]\n );\n\n return {\n listeners,\n addListener,\n };\n}\n","import * as React from 'react';\n\nimport type { EventArg, EventConsumer, EventEmitter } from './types';\n\nexport type NavigationEventEmitter> =\n EventEmitter & {\n create: (target: string) => EventConsumer;\n };\n\ntype Listeners = ((e: any) => void)[];\n\n/**\n * Hook to manage the event system used by the navigator to notify screens of various events.\n */\nexport default function useEventEmitter>(\n listen?: (e: any) => void\n): NavigationEventEmitter {\n const listenRef = React.useRef(listen);\n\n React.useEffect(() => {\n listenRef.current = listen;\n });\n\n const listeners = React.useRef>>({});\n\n const create = React.useCallback((target: string) => {\n const removeListener = (type: string, callback: (data: any) => void) => {\n const callbacks = listeners.current[type]\n ? listeners.current[type][target]\n : undefined;\n\n if (!callbacks) {\n return;\n }\n\n const index = callbacks.indexOf(callback);\n\n callbacks.splice(index, 1);\n };\n\n const addListener = (type: string, callback: (data: any) => void) => {\n listeners.current[type] = listeners.current[type] || {};\n listeners.current[type][target] = listeners.current[type][target] || [];\n listeners.current[type][target].push(callback);\n\n return () => removeListener(type, callback);\n };\n\n return {\n addListener,\n removeListener,\n };\n }, []);\n\n const emit = React.useCallback(\n ({\n type,\n data,\n target,\n canPreventDefault,\n }: {\n type: string;\n data?: any;\n target?: string;\n canPreventDefault?: boolean;\n }) => {\n const items = listeners.current[type] || {};\n\n // Copy the current list of callbacks in case they are mutated during execution\n const callbacks =\n target !== undefined\n ? items[target]?.slice()\n : ([] as Listeners)\n .concat(...Object.keys(items).map((t) => items[t]))\n .filter((cb, i, self) => self.lastIndexOf(cb) === i);\n\n const event: EventArg = {\n get type() {\n return type;\n },\n };\n\n if (target !== undefined) {\n Object.defineProperty(event, 'target', {\n enumerable: true,\n get() {\n return target;\n },\n });\n }\n\n if (data !== undefined) {\n Object.defineProperty(event, 'data', {\n enumerable: true,\n get() {\n return data;\n },\n });\n }\n\n if (canPreventDefault) {\n let defaultPrevented = false;\n\n Object.defineProperties(event, {\n defaultPrevented: {\n enumerable: true,\n get() {\n return defaultPrevented;\n },\n },\n preventDefault: {\n enumerable: true,\n value() {\n defaultPrevented = true;\n },\n },\n });\n }\n\n listenRef.current?.(event);\n\n callbacks?.forEach((cb) => cb(event));\n\n return event as any;\n },\n []\n );\n\n return React.useMemo(() => ({ create, emit }), [create, emit]);\n}\n","import * as React from 'react';\n\nimport type { KeyedListenerMap } from './NavigationBuilderContext';\n\n/**\n * Hook which lets child navigators add getters to be called for obtaining rehydrated state.\n */\nexport default function useKeyedChildListeners() {\n const { current: keyedListeners } = React.useRef<{\n [K in keyof KeyedListenerMap]: Record<\n string,\n KeyedListenerMap[K] | undefined\n >;\n }>({\n getState: {},\n beforeRemove: {},\n });\n\n const addKeyedListener = React.useCallback(\n (\n type: T,\n key: string,\n listener: KeyedListenerMap[T]\n ) => {\n keyedListeners[type][key] = listener;\n\n return () => {\n keyedListeners[type][key] = undefined;\n };\n },\n [keyedListeners]\n );\n\n return {\n keyedListeners,\n addKeyedListener,\n };\n}\n","import type { ParamListBase } from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport NavigationBuilderContext from './NavigationBuilderContext';\nimport NavigationStateContext from './NavigationStateContext';\nimport type { NavigationProp } from './types';\n\ntype Options = {\n key?: string;\n navigation?: NavigationProp;\n options?: object | undefined;\n};\n\nexport default function useOptionsGetters({\n key,\n options,\n navigation,\n}: Options) {\n const optionsRef = React.useRef(options);\n const optionsGettersFromChildRef = React.useRef<\n Record object | undefined | null>\n >({});\n\n const { onOptionsChange } = React.useContext(NavigationBuilderContext);\n const { addOptionsGetter: parentAddOptionsGetter } = React.useContext(\n NavigationStateContext\n );\n\n const optionsChangeListener = React.useCallback(() => {\n const isFocused = navigation?.isFocused() ?? true;\n const hasChildren = Object.keys(optionsGettersFromChildRef.current).length;\n\n if (isFocused && !hasChildren) {\n onOptionsChange(optionsRef.current ?? {});\n }\n }, [navigation, onOptionsChange]);\n\n React.useEffect(() => {\n optionsRef.current = options;\n optionsChangeListener();\n\n return navigation?.addListener('focus', optionsChangeListener);\n }, [navigation, options, optionsChangeListener]);\n\n const getOptionsFromListener = React.useCallback(() => {\n for (let key in optionsGettersFromChildRef.current) {\n if (optionsGettersFromChildRef.current.hasOwnProperty(key)) {\n const result = optionsGettersFromChildRef.current[key]?.();\n\n // null means unfocused route\n if (result !== null) {\n return result;\n }\n }\n }\n\n return null;\n }, []);\n\n const getCurrentOptions = React.useCallback(() => {\n const isFocused = navigation?.isFocused() ?? true;\n\n if (!isFocused) {\n return null;\n }\n\n const optionsFromListener = getOptionsFromListener();\n\n if (optionsFromListener !== null) {\n return optionsFromListener;\n }\n\n return optionsRef.current;\n }, [navigation, getOptionsFromListener]);\n\n React.useEffect(() => {\n return parentAddOptionsGetter?.(key!, getCurrentOptions);\n }, [getCurrentOptions, parentAddOptionsGetter, key]);\n\n const addOptionsGetter = React.useCallback(\n (key: string, getter: () => object | undefined | null) => {\n optionsGettersFromChildRef.current[key] = getter;\n optionsChangeListener();\n\n return () => {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete optionsGettersFromChildRef.current[key];\n optionsChangeListener();\n };\n },\n [optionsChangeListener]\n );\n\n return {\n addOptionsGetter,\n getCurrentOptions,\n };\n}\n","import * as React from 'react';\n\nconst MISSING_CONTEXT_ERROR = \"Couldn't find a schedule context.\";\n\nexport const ScheduleUpdateContext = React.createContext<{\n scheduleUpdate: (callback: () => void) => void;\n flushUpdates: () => void;\n}>({\n scheduleUpdate() {\n throw new Error(MISSING_CONTEXT_ERROR);\n },\n flushUpdates() {\n throw new Error(MISSING_CONTEXT_ERROR);\n },\n});\n\n/**\n * When screen config changes, we want to update the navigator in the same update phase.\n * However, navigation state is in the root component and React won't let us update it from a child.\n * This is a workaround for that, the scheduled update is stored in the ref without actually calling setState.\n * It lets all subsequent updates access the latest state so it stays correct.\n * Then we call setState during after the component updates.\n */\nexport default function useScheduleUpdate(callback: () => void) {\n const { scheduleUpdate, flushUpdates } = React.useContext(\n ScheduleUpdateContext\n );\n\n scheduleUpdate(callback);\n\n React.useEffect(flushUpdates);\n}\n","import * as React from 'react';\n\nconst UNINTIALIZED_STATE = {};\n\n/**\n * This is definitely not compatible with concurrent mode, but we don't have a solution for sync state yet.\n */\nexport default function useSyncState(initialState?: (() => T) | T) {\n const stateRef = React.useRef(UNINTIALIZED_STATE as any);\n const isSchedulingRef = React.useRef(false);\n const isMountedRef = React.useRef(true);\n\n React.useEffect(() => {\n isMountedRef.current = true;\n\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n\n if (stateRef.current === UNINTIALIZED_STATE) {\n stateRef.current =\n // @ts-expect-error: initialState is a function, but TypeScript doesn't think so\n typeof initialState === 'function' ? initialState() : initialState;\n }\n\n const [trackingState, setTrackingState] = React.useState(stateRef.current);\n\n const getState = React.useCallback(() => stateRef.current, []);\n\n const setState = React.useCallback((state: T) => {\n if (state === stateRef.current || !isMountedRef.current) {\n return;\n }\n\n stateRef.current = state;\n\n if (!isSchedulingRef.current) {\n setTrackingState(state);\n }\n }, []);\n\n const scheduleUpdate = React.useCallback((callback: () => void) => {\n isSchedulingRef.current = true;\n\n try {\n callback();\n } finally {\n isSchedulingRef.current = false;\n }\n }, []);\n\n const flushUpdates = React.useCallback(() => {\n if (!isMountedRef.current) {\n return;\n }\n\n // Make sure that the tracking state is up-to-date.\n // We call it unconditionally, but React should skip the update if state is unchanged.\n setTrackingState(stateRef.current);\n }, []);\n\n // If we're rendering and the tracking state is out of date, update it immediately\n // This will make sure that our updates are applied as early as possible.\n if (trackingState !== stateRef.current) {\n setTrackingState(stateRef.current);\n }\n\n const state = stateRef.current;\n\n React.useDebugValue(state);\n\n return [state, getState, setState, scheduleUpdate, flushUpdates] as const;\n}\n","import {\n CommonActions,\n InitialState,\n NavigationAction,\n NavigationState,\n ParamListBase,\n PartialState,\n Route,\n} from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport checkDuplicateRouteNames from './checkDuplicateRouteNames';\nimport checkSerializable from './checkSerializable';\nimport { NOT_INITIALIZED_ERROR } from './createNavigationContainerRef';\nimport EnsureSingleNavigator from './EnsureSingleNavigator';\nimport findFocusedRoute from './findFocusedRoute';\nimport NavigationBuilderContext from './NavigationBuilderContext';\nimport NavigationContainerRefContext from './NavigationContainerRefContext';\nimport NavigationContext from './NavigationContext';\nimport NavigationRouteContext from './NavigationRouteContext';\nimport NavigationStateContext from './NavigationStateContext';\nimport type {\n NavigationContainerEventMap,\n NavigationContainerProps,\n NavigationContainerRef,\n} from './types';\nimport UnhandledActionContext from './UnhandledActionContext';\nimport useChildListeners from './useChildListeners';\nimport useEventEmitter from './useEventEmitter';\nimport useKeyedChildListeners from './useKeyedChildListeners';\nimport useOptionsGetters from './useOptionsGetters';\nimport { ScheduleUpdateContext } from './useScheduleUpdate';\nimport useSyncState from './useSyncState';\n\ntype State = NavigationState | PartialState | undefined;\n\nconst serializableWarnings: string[] = [];\nconst duplicateNameWarnings: string[] = [];\n\n/**\n * Remove `key` and `routeNames` from the state objects recursively to get partial state.\n *\n * @param state Initial state object.\n */\nconst getPartialState = (\n state: InitialState | undefined\n): PartialState | undefined => {\n if (state === undefined) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { key, routeNames, ...partialState } = state;\n\n return {\n ...partialState,\n stale: true,\n routes: state.routes.map((route) => {\n if (route.state === undefined) {\n return route as Route & {\n state?: PartialState;\n };\n }\n\n return { ...route, state: getPartialState(route.state) };\n }),\n };\n};\n\n/**\n * Container component which holds the navigation state.\n * This should be rendered at the root wrapping the whole app.\n *\n * @param props.initialState Initial state object for the navigation tree.\n * @param props.onStateChange Callback which is called with the latest navigation state when it changes.\n * @param props.children Child elements to render the content.\n * @param props.ref Ref object which refers to the navigation object containing helper methods.\n */\nconst BaseNavigationContainer = React.forwardRef(\n function BaseNavigationContainer(\n {\n initialState,\n onStateChange,\n onUnhandledAction,\n independent,\n children,\n }: NavigationContainerProps,\n ref?: React.Ref>\n ) {\n const parent = React.useContext(NavigationStateContext);\n\n if (!parent.isDefault && !independent) {\n throw new Error(\n \"Looks like you have nested a 'NavigationContainer' inside another. Normally you need only one container at the root of the app, so this was probably an error. If this was intentional, pass 'independent={true}' explicitly. Note that this will make the child navigators disconnected from the parent and you won't be able to navigate between them.\"\n );\n }\n\n const [state, getState, setState, scheduleUpdate, flushUpdates] =\n useSyncState(() =>\n getPartialState(initialState == null ? undefined : initialState)\n );\n\n const isFirstMountRef = React.useRef(true);\n\n const navigatorKeyRef = React.useRef();\n\n const getKey = React.useCallback(() => navigatorKeyRef.current, []);\n\n const setKey = React.useCallback((key: string) => {\n navigatorKeyRef.current = key;\n }, []);\n\n const { listeners, addListener } = useChildListeners();\n\n const { keyedListeners, addKeyedListener } = useKeyedChildListeners();\n\n const dispatch = React.useCallback(\n (\n action:\n | NavigationAction\n | ((state: NavigationState) => NavigationAction)\n ) => {\n if (listeners.focus[0] == null) {\n console.error(NOT_INITIALIZED_ERROR);\n } else {\n listeners.focus[0]((navigation) => navigation.dispatch(action));\n }\n },\n [listeners.focus]\n );\n\n const canGoBack = React.useCallback(() => {\n if (listeners.focus[0] == null) {\n return false;\n }\n\n const { result, handled } = listeners.focus[0]((navigation) =>\n navigation.canGoBack()\n );\n\n if (handled) {\n return result;\n } else {\n return false;\n }\n }, [listeners.focus]);\n\n const resetRoot = React.useCallback(\n (state?: PartialState | NavigationState) => {\n const target = state?.key ?? keyedListeners.getState.root?.().key;\n\n if (target == null) {\n console.error(NOT_INITIALIZED_ERROR);\n } else {\n listeners.focus[0]((navigation) =>\n navigation.dispatch({\n ...CommonActions.reset(state),\n target,\n })\n );\n }\n },\n [keyedListeners.getState, listeners.focus]\n );\n\n const getRootState = React.useCallback(() => {\n return keyedListeners.getState.root?.();\n }, [keyedListeners.getState]);\n\n const getCurrentRoute = React.useCallback(() => {\n const state = getRootState();\n\n if (state == null) {\n return undefined;\n }\n\n const route = findFocusedRoute(state);\n\n return route as Route | undefined;\n }, [getRootState]);\n\n const emitter = useEventEmitter();\n\n const { addOptionsGetter, getCurrentOptions } = useOptionsGetters({});\n\n const navigation: NavigationContainerRef = React.useMemo(\n () => ({\n ...Object.keys(CommonActions).reduce((acc, name) => {\n acc[name] = (...args: any[]) =>\n // @ts-expect-error: this is ok\n dispatch(CommonActions[name](...args));\n return acc;\n }, {}),\n ...emitter.create('root'),\n dispatch,\n resetRoot,\n isFocused: () => true,\n canGoBack,\n getParent: () => undefined,\n getState: () => stateRef.current,\n getRootState,\n getCurrentRoute,\n getCurrentOptions,\n isReady: () => listeners.focus[0] != null,\n }),\n [\n canGoBack,\n dispatch,\n emitter,\n getCurrentOptions,\n getCurrentRoute,\n getRootState,\n listeners.focus,\n resetRoot,\n ]\n );\n\n React.useImperativeHandle(ref, () => navigation, [navigation]);\n\n const onDispatchAction = React.useCallback(\n (action: NavigationAction, noop: boolean) => {\n emitter.emit({\n type: '__unsafe_action__',\n data: { action, noop, stack: stackRef.current },\n });\n },\n [emitter]\n );\n\n const lastEmittedOptionsRef = React.useRef();\n\n const onOptionsChange = React.useCallback(\n (options) => {\n if (lastEmittedOptionsRef.current === options) {\n return;\n }\n\n lastEmittedOptionsRef.current = options;\n\n emitter.emit({\n type: 'options',\n data: { options },\n });\n },\n [emitter]\n );\n\n const stackRef = React.useRef();\n\n const builderContext = React.useMemo(\n () => ({\n addListener,\n addKeyedListener,\n onDispatchAction,\n onOptionsChange,\n stackRef,\n }),\n [addListener, addKeyedListener, onDispatchAction, onOptionsChange]\n );\n\n const scheduleContext = React.useMemo(\n () => ({ scheduleUpdate, flushUpdates }),\n [scheduleUpdate, flushUpdates]\n );\n\n const isInitialRef = React.useRef(true);\n\n const getIsInitial = React.useCallback(() => isInitialRef.current, []);\n\n const context = React.useMemo(\n () => ({\n state,\n getState,\n setState,\n getKey,\n setKey,\n getIsInitial,\n addOptionsGetter,\n }),\n [\n state,\n getState,\n setState,\n getKey,\n setKey,\n getIsInitial,\n addOptionsGetter,\n ]\n );\n\n const onStateChangeRef = React.useRef(onStateChange);\n const stateRef = React.useRef(state);\n\n React.useEffect(() => {\n isInitialRef.current = false;\n onStateChangeRef.current = onStateChange;\n stateRef.current = state;\n });\n\n React.useEffect(() => {\n const hydratedState = getRootState();\n\n if (process.env.NODE_ENV !== 'production') {\n if (hydratedState !== undefined) {\n const serializableResult = checkSerializable(hydratedState);\n\n if (!serializableResult.serializable) {\n const { location, reason } = serializableResult;\n\n let path = '';\n let pointer: Record = hydratedState;\n let params = false;\n\n for (let i = 0; i < location.length; i++) {\n const curr = location[i];\n const prev = location[i - 1];\n\n pointer = pointer[curr];\n\n if (!params && curr === 'state') {\n continue;\n } else if (!params && curr === 'routes') {\n if (path) {\n path += ' > ';\n }\n } else if (\n !params &&\n typeof curr === 'number' &&\n prev === 'routes'\n ) {\n path += pointer?.name;\n } else if (!params) {\n path += ` > ${curr}`;\n params = true;\n } else {\n if (typeof curr === 'number' || /^[0-9]+$/.test(curr)) {\n path += `[${curr}]`;\n } else if (/^[a-z$_]+$/i.test(curr)) {\n path += `.${curr}`;\n } else {\n path += `[${JSON.stringify(curr)}]`;\n }\n }\n }\n\n const message = `Non-serializable values were found in the navigation state. Check:\\n\\n${path} (${reason})\\n\\nThis can break usage such as persisting and restoring state. This might happen if you passed non-serializable values such as function, class instances etc. in params. If you need to use components with callbacks in your options, you can use 'navigation.setOptions' instead. See https://reactnavigation.org/docs/troubleshooting#i-get-the-warning-non-serializable-values-were-found-in-the-navigation-state for more details.`;\n\n if (!serializableWarnings.includes(message)) {\n serializableWarnings.push(message);\n console.warn(message);\n }\n }\n\n const duplicateRouteNamesResult =\n checkDuplicateRouteNames(hydratedState);\n\n if (duplicateRouteNamesResult.length) {\n const message = `Found screens with the same name nested inside one another. Check:\\n${duplicateRouteNamesResult.map(\n (locations) => `\\n${locations.join(', ')}`\n )}\\n\\nThis can cause confusing behavior during navigation. Consider using unique names for each screen instead.`;\n\n if (!duplicateNameWarnings.includes(message)) {\n duplicateNameWarnings.push(message);\n console.warn(message);\n }\n }\n }\n }\n\n emitter.emit({ type: 'state', data: { state } });\n\n if (!isFirstMountRef.current && onStateChangeRef.current) {\n onStateChangeRef.current(hydratedState);\n }\n\n isFirstMountRef.current = false;\n }, [getRootState, emitter, state]);\n\n const defaultOnUnhandledAction = React.useCallback(\n (action: NavigationAction) => {\n if (process.env.NODE_ENV === 'production') {\n return;\n }\n\n const payload: Record | undefined = action.payload;\n\n let message = `The action '${action.type}'${\n payload ? ` with payload ${JSON.stringify(action.payload)}` : ''\n } was not handled by any navigator.`;\n\n switch (action.type) {\n case 'NAVIGATE':\n case 'PUSH':\n case 'REPLACE':\n case 'JUMP_TO':\n if (payload?.name) {\n message += `\\n\\nDo you have a screen named '${payload.name}'?\\n\\nIf you're trying to navigate to a screen in a nested navigator, see https://reactnavigation.org/docs/nesting-navigators#navigating-to-a-screen-in-a-nested-navigator.`;\n } else {\n message += `\\n\\nYou need to pass the name of the screen to navigate to.\\n\\nSee https://reactnavigation.org/docs/navigation-actions for usage.`;\n }\n\n break;\n case 'GO_BACK':\n case 'POP':\n case 'POP_TO_TOP':\n message += `\\n\\nIs there any screen to go back to?`;\n break;\n case 'OPEN_DRAWER':\n case 'CLOSE_DRAWER':\n case 'TOGGLE_DRAWER':\n message += `\\n\\nIs your screen inside a Drawer navigator?`;\n break;\n }\n\n message += `\\n\\nThis is a development-only warning and won't be shown in production.`;\n\n console.error(message);\n },\n []\n );\n\n let element = (\n \n \n \n \n \n {children}\n \n \n \n \n \n );\n\n if (independent) {\n // We need to clear any existing contexts for nested independent container to work correctly\n element = (\n \n \n {element}\n \n \n );\n }\n\n return element;\n }\n);\n\nexport default BaseNavigationContainer;\n","import type { ParamListBase } from '@react-navigation/routers';\n\nimport type { RouteGroupConfig } from './types';\n\n/**\n * Empty component used for grouping screen configs.\n */\nexport default function Group<\n ParamList extends ParamListBase,\n ScreenOptions extends {}\n>(_: RouteGroupConfig) {\n /* istanbul ignore next */\n return null;\n}\n","import type { NavigationState, ParamListBase } from '@react-navigation/routers';\n\nimport type { EventMapBase, RouteConfig } from './types';\n\n/**\n * Empty component used for specifying route configuration.\n */\nexport default function Screen<\n ParamList extends ParamListBase,\n RouteName extends keyof ParamList,\n State extends NavigationState,\n ScreenOptions extends {},\n EventMap extends EventMapBase\n>(_: RouteConfig) {\n /* istanbul ignore next */\n return null;\n}\n","import type { NavigationState, ParamListBase } from '@react-navigation/routers';\nimport type * as React from 'react';\n\nimport Group from './Group';\nimport Screen from './Screen';\nimport type { EventMapBase, TypedNavigator } from './types';\n\n/**\n * Higher order component to create a `Navigator` and `Screen` pair.\n * Custom navigators should wrap the navigator component in `createNavigator` before exporting.\n *\n * @param Navigator The navigtor component to wrap.\n * @returns Factory method to create a `Navigator` and `Screen` pair.\n */\nexport default function createNavigatorFactory<\n State extends NavigationState,\n ScreenOptions extends {},\n EventMap extends EventMapBase,\n NavigatorComponent extends React.ComponentType\n>(Navigator: NavigatorComponent) {\n return function (): TypedNavigator<\n ParamList,\n State,\n ScreenOptions,\n EventMap,\n typeof Navigator\n > {\n if (arguments[0] !== undefined) {\n throw new Error(\n \"Creating a navigator doesn't take an argument. Maybe you are trying to use React Navigation 4 API? See https://reactnavigation.org/docs/hello-react-navigation for the latest API and guides.\"\n );\n }\n\n return {\n Navigator,\n Group,\n Screen,\n };\n };\n}\n","import * as React from 'react';\n\n/**\n * Context which holds the values for the current navigation tree.\n * Intended for use in SSR. This is not safe to use on the client.\n */\nconst CurrentRenderContext = React.createContext<\n { options?: object } | undefined\n>(undefined);\n\nexport default CurrentRenderContext;\n","import type {\n CommonActions,\n NavigationState,\n ParamListBase,\n PartialRoute,\n PartialState,\n Route,\n} from '@react-navigation/routers';\n\nimport type { NavigatorScreenParams, PathConfig, PathConfigMap } from './types';\n\ntype ConfigItem = {\n initialRouteName?: string;\n screens?: Record;\n};\n\ntype Options = {\n initialRouteName?: string;\n screens: PathConfigMap;\n};\n\ntype NavigateAction = {\n type: 'NAVIGATE';\n payload: {\n name: string;\n params?: NavigatorScreenParams;\n path?: string;\n };\n};\n\nexport default function getActionFromState(\n state: PartialState,\n options?: Options\n): NavigateAction | CommonActions.Action | undefined {\n // Create a normalized configs object which will be easier to use\n const normalizedConfig = options\n ? createNormalizedConfigItem(options as PathConfig | string)\n : {};\n\n const routes =\n state.index != null ? state.routes.slice(0, state.index + 1) : state.routes;\n\n if (routes.length === 0) {\n return undefined;\n }\n\n if (\n !(\n (routes.length === 1 && routes[0].key === undefined) ||\n (routes.length === 2 &&\n routes[0].key === undefined &&\n routes[0].name === normalizedConfig?.initialRouteName &&\n routes[1].key === undefined)\n )\n ) {\n return {\n type: 'RESET',\n payload: state,\n };\n }\n\n const route = state.routes[state.index ?? state.routes.length - 1];\n\n let current: PartialState | undefined = route?.state;\n let config: ConfigItem | undefined = normalizedConfig?.screens?.[route?.name];\n let params = { ...route.params } as NavigatorScreenParams<\n ParamListBase,\n NavigationState\n >;\n\n let payload = route\n ? { name: route.name, path: route.path, params }\n : undefined;\n\n while (current) {\n if (current.routes.length === 0) {\n return undefined;\n }\n\n const routes =\n current.index != null\n ? current.routes.slice(0, current.index + 1)\n : current.routes;\n\n const route: Route | PartialRoute> =\n routes[routes.length - 1];\n\n // Explicitly set to override existing value when merging params\n Object.assign(params, {\n initial: undefined,\n screen: undefined,\n params: undefined,\n state: undefined,\n });\n\n if (routes.length === 1 && routes[0].key === undefined) {\n params.initial = true;\n params.screen = route.name;\n } else if (\n routes.length === 2 &&\n routes[0].key === undefined &&\n routes[0].name === config?.initialRouteName &&\n routes[1].key === undefined\n ) {\n params.initial = false;\n params.screen = route.name;\n } else {\n params.state = current;\n break;\n }\n\n if (route.state) {\n params.params = { ...route.params };\n params = params.params as NavigatorScreenParams<\n ParamListBase,\n NavigationState\n >;\n } else {\n params.path = route.path;\n params.params = route.params;\n }\n\n current = route.state;\n config = config?.screens?.[route.name];\n }\n\n if (!payload) {\n return;\n }\n\n // Try to construct payload for a `NAVIGATE` action from the state\n // This lets us preserve the navigation state and not lose it\n return {\n type: 'NAVIGATE',\n payload,\n };\n}\n\nconst createNormalizedConfigItem = (config: PathConfig | string) =>\n typeof config === 'object' && config != null\n ? {\n initialRouteName: config.initialRouteName,\n screens:\n config.screens != null\n ? createNormalizedConfigs(config.screens)\n : undefined,\n }\n : {};\n\nconst createNormalizedConfigs = (options: PathConfigMap) =>\n Object.entries(options).reduce>((acc, [k, v]) => {\n acc[k] = createNormalizedConfigItem(v);\n return acc;\n }, {});\n","import type {\n NavigationState,\n ParamListBase,\n Route,\n} from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport type { RouteProp } from './types';\n\ntype RouteCache = Map, RouteProp>;\n\n/**\n * Utilites such as `getFocusedRouteNameFromRoute` need to access state.\n * So we need a way to suppress the warning for those use cases.\n * This is fine since they are internal utilities and this is not public API.\n */\nexport const CHILD_STATE = Symbol('CHILD_STATE');\n\n/**\n * Hook to cache route props for each screen in the navigator.\n * This lets add warnings and modifications to the route object but keep references between renders.\n */\nexport default function useRouteCache(\n routes: State['routes']\n) {\n // Cache object which holds route objects for each screen\n const cache = React.useMemo(() => ({ current: new Map() as RouteCache }), []);\n\n if (process.env.NODE_ENV === 'production') {\n // We don't want the overhead of creating extra maps every render in prod\n return routes;\n }\n\n cache.current = routes.reduce((acc, route) => {\n const previous = cache.current.get(route);\n\n if (previous) {\n // If a cached route object already exists, reuse it\n acc.set(route, previous);\n } else {\n const { state, ...proxy } = route;\n\n Object.defineProperty(proxy, CHILD_STATE, {\n enumerable: false,\n value: state,\n });\n\n acc.set(route, proxy);\n }\n\n return acc;\n }, new Map() as RouteCache);\n\n return Array.from(cache.current.values());\n}\n","import type { Route } from '@react-navigation/routers';\n\nimport { CHILD_STATE } from './useRouteCache';\n\nexport default function getFocusedRouteNameFromRoute(\n route: Partial>\n): string | undefined {\n // @ts-expect-error: this isn't in type definitions coz we want this private\n const state = route[CHILD_STATE] ?? route.state;\n const params = route.params as { screen?: unknown } | undefined;\n\n const routeName = state\n ? // Get the currently active route name in the nested navigator\n state.routes[\n // If we have a partial state without index, for tab/drawer, first screen will be focused one, and last for stack\n // The type property will only exist for rehydrated state and not for state from deep link\n state.index ??\n (typeof state.type === 'string' && state.type !== 'stack'\n ? 0\n : state.routes.length - 1)\n ].name\n : // If state doesn't exist, we need to default to `screen` param if available\n typeof params?.screen === 'string'\n ? params.screen\n : undefined;\n\n return routeName;\n}\n","// Object.fromEntries is not available in older iOS versions\nexport default function fromEntries(\n entries: (readonly [K, V])[]\n) {\n return entries.reduce((acc, [k, v]) => {\n if (acc.hasOwnProperty(k)) {\n throw new Error(`A value for key '${k}' already exists in the object.`);\n }\n\n acc[k] = v;\n return acc;\n }, {} as Record);\n}\n","const formatToList = (items: string[]) =>\n items.map((key) => `- ${key}`).join('\\n');\n\nexport default function validatePathConfig(config: any, root = true) {\n const validKeys = ['initialRouteName', 'screens'];\n\n if (!root) {\n validKeys.push('path', 'exact', 'stringify', 'parse');\n }\n\n const invalidKeys = Object.keys(config).filter(\n (key) => !validKeys.includes(key)\n );\n\n if (invalidKeys.length) {\n throw new Error(\n `Found invalid properties in the configuration:\\n${formatToList(\n invalidKeys\n )}\\n\\nDid you forget to specify them under a 'screens' property?\\n\\nYou can only specify the following properties:\\n${formatToList(\n validKeys\n )}\\n\\nSee https://reactnavigation.org/docs/configuring-links for more details on how to specify a linking configuration.`\n );\n }\n\n if (config.screens) {\n Object.entries(config.screens).forEach(([_, value]) => {\n if (typeof value !== 'string') {\n validatePathConfig(value, false);\n }\n });\n }\n}\n","import type {\n NavigationState,\n PartialState,\n Route,\n} from '@react-navigation/routers';\nimport * as queryString from 'query-string';\n\nimport fromEntries from './fromEntries';\nimport type { PathConfig, PathConfigMap } from './types';\nimport validatePathConfig from './validatePathConfig';\n\ntype Options = {\n initialRouteName?: string;\n screens: PathConfigMap;\n};\n\ntype State = NavigationState | Omit, 'stale'>;\n\ntype StringifyConfig = Record string>;\n\ntype ConfigItem = {\n pattern?: string;\n stringify?: StringifyConfig;\n screens?: Record;\n};\n\nconst getActiveRoute = (state: State): { name: string; params?: object } => {\n const route =\n typeof state.index === 'number'\n ? state.routes[state.index]\n : state.routes[state.routes.length - 1];\n\n if (route.state) {\n return getActiveRoute(route.state);\n }\n\n return route;\n};\n\n/**\n * Utility to serialize a navigation state object to a path string.\n *\n * @example\n * ```js\n * getPathFromState(\n * {\n * routes: [\n * {\n * name: 'Chat',\n * params: { author: 'Jane', id: 42 },\n * },\n * ],\n * },\n * {\n * screens: {\n * Chat: {\n * path: 'chat/:author/:id',\n * stringify: { author: author => author.toLowerCase() }\n * }\n * }\n * }\n * )\n * ```\n *\n * @param state Navigation state to serialize.\n * @param options Extra options to fine-tune how to serialize the path.\n * @returns Path representing the state, e.g. /foo/bar?count=42.\n */\nexport default function getPathFromState(\n state: State,\n options?: Options\n): string {\n if (state == null) {\n throw Error(\n \"Got 'undefined' for the navigation state. You must pass a valid state object.\"\n );\n }\n\n if (options) {\n validatePathConfig(options);\n }\n\n // Create a normalized configs object which will be easier to use\n const configs: Record = options?.screens\n ? createNormalizedConfigs(options?.screens)\n : {};\n\n let path = '/';\n let current: State | undefined = state;\n\n const allParams: Record = {};\n\n while (current) {\n let index = typeof current.index === 'number' ? current.index : 0;\n let route = current.routes[index] as Route & {\n state?: State;\n };\n\n let pattern: string | undefined;\n\n let focusedParams: Record | undefined;\n let focusedRoute = getActiveRoute(state);\n let currentOptions = configs;\n\n // Keep all the route names that appeared during going deeper in config in case the pattern is resolved to undefined\n let nestedRouteNames = [];\n\n let hasNext = true;\n\n while (route.name in currentOptions && hasNext) {\n pattern = currentOptions[route.name].pattern;\n\n nestedRouteNames.push(route.name);\n\n if (route.params) {\n const stringify = currentOptions[route.name]?.stringify;\n\n const currentParams = fromEntries(\n Object.entries(route.params).map(([key, value]) => [\n key,\n stringify?.[key] ? stringify[key](value) : String(value),\n ])\n );\n\n if (pattern) {\n Object.assign(allParams, currentParams);\n }\n\n if (focusedRoute === route) {\n // If this is the focused route, keep the params for later use\n // We save it here since it's been stringified already\n focusedParams = { ...currentParams };\n\n pattern\n ?.split('/')\n .filter((p) => p.startsWith(':'))\n // eslint-disable-next-line no-loop-func\n .forEach((p) => {\n const name = getParamName(p);\n\n // Remove the params present in the pattern since we'll only use the rest for query string\n if (focusedParams) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete focusedParams[name];\n }\n });\n }\n }\n\n // If there is no `screens` property or no nested state, we return pattern\n if (!currentOptions[route.name].screens || route.state === undefined) {\n hasNext = false;\n } else {\n index =\n typeof route.state.index === 'number'\n ? route.state.index\n : route.state.routes.length - 1;\n\n const nextRoute = route.state.routes[index];\n const nestedConfig = currentOptions[route.name].screens;\n\n // if there is config for next route name, we go deeper\n if (nestedConfig && nextRoute.name in nestedConfig) {\n route = nextRoute as Route & { state?: State };\n currentOptions = nestedConfig;\n } else {\n // If not, there is no sense in going deeper in config\n hasNext = false;\n }\n }\n }\n\n if (pattern === undefined) {\n pattern = nestedRouteNames.join('/');\n }\n\n if (currentOptions[route.name] !== undefined) {\n path += pattern\n .split('/')\n .map((p) => {\n const name = getParamName(p);\n\n // We don't know what to show for wildcard patterns\n // Showing the route name seems ok, though whatever we show here will be incorrect\n // Since the page doesn't actually exist\n if (p === '*') {\n return route.name;\n }\n\n // If the path has a pattern for a param, put the param in the path\n if (p.startsWith(':')) {\n const value = allParams[name];\n\n if (value === undefined && p.endsWith('?')) {\n // Optional params without value assigned in route.params should be ignored\n return '';\n }\n\n return encodeURIComponent(value);\n }\n\n return encodeURIComponent(p);\n })\n .join('/');\n } else {\n path += encodeURIComponent(route.name);\n }\n\n if (!focusedParams) {\n focusedParams = focusedRoute.params;\n }\n\n if (route.state) {\n path += '/';\n } else if (focusedParams) {\n for (let param in focusedParams) {\n if (focusedParams[param] === 'undefined') {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete focusedParams[param];\n }\n }\n\n const query = queryString.stringify(focusedParams, { sort: false });\n\n if (query) {\n path += `?${query}`;\n }\n }\n\n current = route.state;\n }\n\n // Remove multiple as well as trailing slashes\n path = path.replace(/\\/+/g, '/');\n path = path.length > 1 ? path.replace(/\\/$/, '') : path;\n\n return path;\n}\n\nconst getParamName = (pattern: string) =>\n pattern.replace(/^:/, '').replace(/\\?$/, '');\n\nconst joinPaths = (...paths: string[]): string =>\n ([] as string[])\n .concat(...paths.map((p) => p.split('/')))\n .filter(Boolean)\n .join('/');\n\nconst createConfigItem = (\n config: PathConfig | string,\n parentPattern?: string\n): ConfigItem => {\n if (typeof config === 'string') {\n // If a string is specified as the value of the key(e.g. Foo: '/path'), use it as the pattern\n const pattern = parentPattern ? joinPaths(parentPattern, config) : config;\n\n return { pattern };\n }\n\n // If an object is specified as the value (e.g. Foo: { ... }),\n // It can have `path` property and `screens` prop which has nested configs\n let pattern: string | undefined;\n\n if (config.exact && config.path === undefined) {\n throw new Error(\n \"A 'path' needs to be specified when specifying 'exact: true'. If you don't want this screen in the URL, specify it as empty string, e.g. `path: ''`.\"\n );\n }\n\n pattern =\n config.exact !== true\n ? joinPaths(parentPattern || '', config.path || '')\n : config.path || '';\n\n const screens = config.screens\n ? createNormalizedConfigs(config.screens, pattern)\n : undefined;\n\n return {\n // Normalize pattern to remove any leading, trailing slashes, duplicate slashes etc.\n pattern: pattern?.split('/').filter(Boolean).join('/'),\n stringify: config.stringify,\n screens,\n };\n};\n\nconst createNormalizedConfigs = (\n options: PathConfigMap,\n pattern?: string\n): Record =>\n fromEntries(\n Object.entries(options).map(([name, c]) => {\n const result = createConfigItem(c, pattern);\n\n return [name, result];\n })\n );\n","import type {\n InitialState,\n NavigationState,\n PartialState,\n} from '@react-navigation/routers';\nimport escape from 'escape-string-regexp';\nimport * as queryString from 'query-string';\n\nimport findFocusedRoute from './findFocusedRoute';\nimport type { PathConfigMap } from './types';\nimport validatePathConfig from './validatePathConfig';\n\ntype Options = {\n initialRouteName?: string;\n screens: PathConfigMap;\n};\n\ntype ParseConfig = Record any>;\n\ntype RouteConfig = {\n screen: string;\n regex?: RegExp;\n path: string;\n pattern: string;\n routeNames: string[];\n parse?: ParseConfig;\n};\n\ntype InitialRouteConfig = {\n initialRouteName: string;\n parentScreens: string[];\n};\n\ntype ResultState = PartialState & {\n state?: ResultState;\n};\n\ntype ParsedRoute = {\n name: string;\n path?: string;\n params?: Record | undefined;\n};\n\n/**\n * Utility to parse a path string to initial state object accepted by the container.\n * This is useful for deep linking when we need to handle the incoming URL.\n *\n * @example\n * ```js\n * getStateFromPath(\n * '/chat/jane/42',\n * {\n * screens: {\n * Chat: {\n * path: 'chat/:author/:id',\n * parse: { id: Number }\n * }\n * }\n * }\n * )\n * ```\n * @param path Path string to parse and convert, e.g. /foo/bar?count=42.\n * @param options Extra options to fine-tune how to parse the path.\n */\nexport default function getStateFromPath(\n path: string,\n options?: Options\n): ResultState | undefined {\n if (options) {\n validatePathConfig(options);\n }\n\n let initialRoutes: InitialRouteConfig[] = [];\n\n if (options?.initialRouteName) {\n initialRoutes.push({\n initialRouteName: options.initialRouteName,\n parentScreens: [],\n });\n }\n\n const screens = options?.screens;\n\n let remaining = path\n .replace(/\\/+/g, '/') // Replace multiple slash (//) with single ones\n .replace(/^\\//, '') // Remove extra leading slash\n .replace(/\\?.*$/, ''); // Remove query params which we will handle later\n\n // Make sure there is a trailing slash\n remaining = remaining.endsWith('/') ? remaining : `${remaining}/`;\n\n if (screens === undefined) {\n // When no config is specified, use the path segments as route names\n const routes = remaining\n .split('/')\n .filter(Boolean)\n .map((segment) => {\n const name = decodeURIComponent(segment);\n return { name };\n });\n\n if (routes.length) {\n return createNestedStateObject(path, routes, initialRoutes);\n }\n\n return undefined;\n }\n\n // Create a normalized configs array which will be easier to use\n const configs = ([] as RouteConfig[])\n .concat(\n ...Object.keys(screens).map((key) =>\n createNormalizedConfigs(\n key,\n screens as PathConfigMap,\n [],\n initialRoutes,\n []\n )\n )\n )\n .sort((a, b) => {\n // Sort config so that:\n // - the most exhaustive ones are always at the beginning\n // - patterns with wildcard are always at the end\n\n // If 2 patterns are same, move the one with less route names up\n // This is an error state, so it's only useful for consistent error messages\n if (a.pattern === b.pattern) {\n return b.routeNames.join('>').localeCompare(a.routeNames.join('>'));\n }\n\n // If one of the patterns starts with the other, it's more exhaustive\n // So move it up\n if (a.pattern.startsWith(b.pattern)) {\n return -1;\n }\n\n if (b.pattern.startsWith(a.pattern)) {\n return 1;\n }\n\n const aParts = a.pattern.split('/');\n const bParts = b.pattern.split('/');\n\n for (let i = 0; i < Math.max(aParts.length, bParts.length); i++) {\n // if b is longer, b get higher priority\n if (aParts[i] == null) {\n return 1;\n }\n // if a is longer, a get higher priority\n if (bParts[i] == null) {\n return -1;\n }\n const aWildCard = aParts[i] === '*' || aParts[i].startsWith(':');\n const bWildCard = bParts[i] === '*' || bParts[i].startsWith(':');\n // if both are wildcard we compare next component\n if (aWildCard && bWildCard) {\n continue;\n }\n // if only a is wild card, b get higher priority\n if (aWildCard) {\n return 1;\n }\n // if only b is wild card, a get higher priority\n if (bWildCard) {\n return -1;\n }\n }\n return bParts.length - aParts.length;\n });\n\n // Check for duplicate patterns in the config\n configs.reduce>((acc, config) => {\n if (acc[config.pattern]) {\n const a = acc[config.pattern].routeNames;\n const b = config.routeNames;\n\n // It's not a problem if the path string omitted from a inner most screen\n // For example, it's ok if a path resolves to `A > B > C` or `A > B`\n const intersects =\n a.length > b.length\n ? b.every((it, i) => a[i] === it)\n : a.every((it, i) => b[i] === it);\n\n if (!intersects) {\n throw new Error(\n `Found conflicting screens with the same pattern. The pattern '${\n config.pattern\n }' resolves to both '${a.join(' > ')}' and '${b.join(\n ' > '\n )}'. Patterns must be unique and cannot resolve to more than one screen.`\n );\n }\n }\n\n return Object.assign(acc, {\n [config.pattern]: config,\n });\n }, {});\n\n if (remaining === '/') {\n // We need to add special handling of empty path so navigation to empty path also works\n // When handling empty path, we should only look at the root level config\n const match = configs.find(\n (config) =>\n config.path === '' &&\n config.routeNames.every(\n // Make sure that none of the parent configs have a non-empty path defined\n (name) => !configs.find((c) => c.screen === name)?.path\n )\n );\n\n if (match) {\n return createNestedStateObject(\n path,\n match.routeNames.map((name) => ({ name })),\n initialRoutes,\n configs\n );\n }\n\n return undefined;\n }\n\n let result: PartialState | undefined;\n let current: PartialState | undefined;\n\n // We match the whole path against the regex instead of segments\n // This makes sure matches such as wildcard will catch any unmatched routes, even if nested\n const { routes, remainingPath } = matchAgainstConfigs(\n remaining,\n configs.map((c) => ({\n ...c,\n // Add `$` to the regex to make sure it matches till end of the path and not just beginning\n regex: c.regex ? new RegExp(c.regex.source + '$') : undefined,\n }))\n );\n\n if (routes !== undefined) {\n // This will always be empty if full path matched\n current = createNestedStateObject(path, routes, initialRoutes, configs);\n remaining = remainingPath;\n result = current;\n }\n\n if (current == null || result == null) {\n return undefined;\n }\n\n return result;\n}\n\nconst joinPaths = (...paths: string[]): string =>\n ([] as string[])\n .concat(...paths.map((p) => p.split('/')))\n .filter(Boolean)\n .join('/');\n\nconst matchAgainstConfigs = (remaining: string, configs: RouteConfig[]) => {\n let routes: ParsedRoute[] | undefined;\n let remainingPath = remaining;\n\n // Go through all configs, and see if the next path segment matches our regex\n for (const config of configs) {\n if (!config.regex) {\n continue;\n }\n\n const match = remainingPath.match(config.regex);\n\n // If our regex matches, we need to extract params from the path\n if (match) {\n const matchedParams = config.pattern\n ?.split('/')\n .filter((p) => p.startsWith(':'))\n .reduce>(\n (acc, p, i) =>\n Object.assign(acc, {\n // The param segments appear every second item starting from 2 in the regex match result\n [p]: match![(i + 1) * 2].replace(/\\//, ''),\n }),\n {}\n );\n\n routes = config.routeNames.map((name) => {\n const config = configs.find((c) => c.screen === name);\n const params = config?.path\n ?.split('/')\n .filter((p) => p.startsWith(':'))\n .reduce>((acc, p) => {\n const value = matchedParams[p];\n\n if (value) {\n const key = p.replace(/^:/, '').replace(/\\?$/, '');\n acc[key] = config.parse?.[key] ? config.parse[key](value) : value;\n }\n\n return acc;\n }, {});\n\n if (params && Object.keys(params).length) {\n return { name, params };\n }\n\n return { name };\n });\n\n remainingPath = remainingPath.replace(match[1], '');\n\n break;\n }\n }\n\n return { routes, remainingPath };\n};\n\nconst createNormalizedConfigs = (\n screen: string,\n routeConfig: PathConfigMap,\n routeNames: string[] = [],\n initials: InitialRouteConfig[],\n parentScreens: string[],\n parentPattern?: string\n): RouteConfig[] => {\n const configs: RouteConfig[] = [];\n\n routeNames.push(screen);\n\n parentScreens.push(screen);\n\n // @ts-expect-error: we can't strongly typecheck this for now\n const config = routeConfig[screen];\n\n if (typeof config === 'string') {\n // If a string is specified as the value of the key(e.g. Foo: '/path'), use it as the pattern\n const pattern = parentPattern ? joinPaths(parentPattern, config) : config;\n\n configs.push(createConfigItem(screen, routeNames, pattern, config));\n } else if (typeof config === 'object') {\n let pattern: string | undefined;\n\n // if an object is specified as the value (e.g. Foo: { ... }),\n // it can have `path` property and\n // it could have `screens` prop which has nested configs\n if (typeof config.path === 'string') {\n if (config.exact && config.path === undefined) {\n throw new Error(\n \"A 'path' needs to be specified when specifying 'exact: true'. If you don't want this screen in the URL, specify it as empty string, e.g. `path: ''`.\"\n );\n }\n\n pattern =\n config.exact !== true\n ? joinPaths(parentPattern || '', config.path || '')\n : config.path || '';\n\n configs.push(\n createConfigItem(\n screen,\n routeNames,\n pattern!,\n config.path,\n config.parse\n )\n );\n }\n\n if (config.screens) {\n // property `initialRouteName` without `screens` has no purpose\n if (config.initialRouteName) {\n initials.push({\n initialRouteName: config.initialRouteName,\n parentScreens,\n });\n }\n\n Object.keys(config.screens).forEach((nestedConfig) => {\n const result = createNormalizedConfigs(\n nestedConfig,\n config.screens as PathConfigMap,\n routeNames,\n initials,\n [...parentScreens],\n pattern ?? parentPattern\n );\n\n configs.push(...result);\n });\n }\n }\n\n routeNames.pop();\n\n return configs;\n};\n\nconst createConfigItem = (\n screen: string,\n routeNames: string[],\n pattern: string,\n path: string,\n parse?: ParseConfig\n): RouteConfig => {\n // Normalize pattern to remove any leading, trailing slashes, duplicate slashes etc.\n pattern = pattern.split('/').filter(Boolean).join('/');\n\n const regex = pattern\n ? new RegExp(\n `^(${pattern\n .split('/')\n .map((it) => {\n if (it.startsWith(':')) {\n return `(([^/]+\\\\/)${it.endsWith('?') ? '?' : ''})`;\n }\n\n return `${it === '*' ? '.*' : escape(it)}\\\\/`;\n })\n .join('')})`\n )\n : undefined;\n\n return {\n screen,\n regex,\n pattern,\n path,\n // The routeNames array is mutated, so copy it to keep the current state\n routeNames: [...routeNames],\n parse,\n };\n};\n\nconst findParseConfigForRoute = (\n routeName: string,\n flatConfig: RouteConfig[]\n): ParseConfig | undefined => {\n for (const config of flatConfig) {\n if (routeName === config.routeNames[config.routeNames.length - 1]) {\n return config.parse;\n }\n }\n\n return undefined;\n};\n\n// Try to find an initial route connected with the one passed\nconst findInitialRoute = (\n routeName: string,\n parentScreens: string[],\n initialRoutes: InitialRouteConfig[]\n): string | undefined => {\n for (const config of initialRoutes) {\n if (parentScreens.length === config.parentScreens.length) {\n let sameParents = true;\n for (let i = 0; i < parentScreens.length; i++) {\n if (parentScreens[i].localeCompare(config.parentScreens[i]) !== 0) {\n sameParents = false;\n break;\n }\n }\n if (sameParents) {\n return routeName !== config.initialRouteName\n ? config.initialRouteName\n : undefined;\n }\n }\n }\n return undefined;\n};\n\n// returns state object with values depending on whether\n// it is the end of state and if there is initialRoute for this level\nconst createStateObject = (\n initialRoute: string | undefined,\n route: ParsedRoute,\n isEmpty: boolean\n): InitialState => {\n if (isEmpty) {\n if (initialRoute) {\n return {\n index: 1,\n routes: [{ name: initialRoute }, route],\n };\n } else {\n return {\n routes: [route],\n };\n }\n } else {\n if (initialRoute) {\n return {\n index: 1,\n routes: [{ name: initialRoute }, { ...route, state: { routes: [] } }],\n };\n } else {\n return {\n routes: [{ ...route, state: { routes: [] } }],\n };\n }\n }\n};\n\nconst createNestedStateObject = (\n path: string,\n routes: ParsedRoute[],\n initialRoutes: InitialRouteConfig[],\n flatConfig?: RouteConfig[]\n) => {\n let state: InitialState;\n let route = routes.shift() as ParsedRoute;\n const parentScreens: string[] = [];\n\n let initialRoute = findInitialRoute(route.name, parentScreens, initialRoutes);\n\n parentScreens.push(route.name);\n\n state = createStateObject(initialRoute, route, routes.length === 0);\n\n if (routes.length > 0) {\n let nestedState = state;\n\n while ((route = routes.shift() as ParsedRoute)) {\n initialRoute = findInitialRoute(route.name, parentScreens, initialRoutes);\n\n const nestedStateIndex =\n nestedState.index || nestedState.routes.length - 1;\n\n nestedState.routes[nestedStateIndex].state = createStateObject(\n initialRoute,\n route,\n routes.length === 0\n );\n\n if (routes.length > 0) {\n nestedState = nestedState.routes[nestedStateIndex]\n .state as InitialState;\n }\n\n parentScreens.push(route.name);\n }\n }\n\n route = findFocusedRoute(state) as ParsedRoute;\n route.path = path;\n\n const params = parseQueryParams(\n path,\n flatConfig ? findParseConfigForRoute(route.name, flatConfig) : undefined\n );\n\n if (params) {\n route.params = { ...route.params, ...params };\n }\n\n return state;\n};\n\nconst parseQueryParams = (\n path: string,\n parseConfig?: Record any>\n) => {\n const query = path.split('?')[1];\n const params = queryString.parse(query);\n\n if (parseConfig) {\n Object.keys(params).forEach((name) => {\n if (parseConfig[name] && typeof params[name] === 'string') {\n params[name] = parseConfig[name](params[name] as string);\n }\n });\n }\n\n return Object.keys(params).length ? params : undefined;\n};\n","import type { ParamListBase } from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport type { NavigationHelpers } from './types';\n\n/**\n * Context which holds the navigation helpers of the parent navigator.\n * Navigators should use this context in their view component.\n */\nconst NavigationHelpersContext = React.createContext<\n NavigationHelpers | undefined\n>(undefined);\n\nexport default NavigationHelpersContext;\n","import type {\n DefaultRouterOptions,\n InitialState,\n NavigationAction,\n NavigationState,\n ParamListBase,\n PartialState,\n Route,\n} from '@react-navigation/routers';\nimport type * as React from 'react';\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace ReactNavigation {\n // eslint-disable-next-line @typescript-eslint/no-empty-interface\n interface RootParamList {}\n }\n}\n\ntype Keyof = Extract;\n\nexport type DefaultNavigatorOptions<\n ParamList extends ParamListBase,\n State extends NavigationState,\n ScreenOptions extends {},\n EventMap extends EventMapBase\n> = DefaultRouterOptions> & {\n /**\n * Optional ID for the navigator. Can be used with `navigation.getParent(id)` to refer to a parent.\n */\n id?: string;\n /**\n * Children React Elements to extract the route configuration from.\n * Only `Screen`, `Group` and `React.Fragment` are supported as children.\n */\n children: React.ReactNode;\n /**\n * Event listeners for all the screens in the navigator.\n */\n screenListeners?:\n | ScreenListeners\n | ((props: {\n route: RouteProp;\n navigation: any;\n }) => ScreenListeners);\n /**\n * Default options for all screens under this navigator.\n */\n screenOptions?:\n | ScreenOptions\n | ((props: {\n route: RouteProp;\n navigation: any;\n }) => ScreenOptions);\n /**\n * Default options specified by the navigator.\n * It receives the custom options in the arguments if a function is specified.\n */\n defaultScreenOptions?:\n | ScreenOptions\n | ((props: {\n route: RouteProp;\n navigation: any;\n options: ScreenOptions;\n }) => ScreenOptions);\n};\n\nexport type EventMapBase = Record<\n string,\n { data?: any; canPreventDefault?: boolean }\n>;\n\nexport type EventMapCore = {\n focus: { data: undefined };\n blur: { data: undefined };\n state: { data: { state: State } };\n beforeRemove: { data: { action: NavigationAction }; canPreventDefault: true };\n};\n\nexport type EventArg<\n EventName extends string,\n CanPreventDefault extends boolean | undefined = false,\n Data = undefined\n> = {\n /**\n * Type of the event (e.g. `focus`, `blur`)\n */\n readonly type: EventName;\n readonly target?: string;\n} & (CanPreventDefault extends true\n ? {\n /**\n * Whether `event.preventDefault()` was called on this event object.\n */\n readonly defaultPrevented: boolean;\n /**\n * Prevent the default action which happens on this event.\n */\n preventDefault(): void;\n }\n : {}) &\n (undefined extends Data\n ? { readonly data?: Readonly }\n : { readonly data: Readonly });\n\nexport type EventListenerCallback<\n EventMap extends EventMapBase,\n EventName extends keyof EventMap\n> = (\n e: EventArg<\n Extract,\n EventMap[EventName]['canPreventDefault'],\n EventMap[EventName]['data']\n >\n) => void;\n\nexport type EventConsumer = {\n /**\n * Subscribe to events from the parent navigator.\n *\n * @param type Type of the event (e.g. `focus`, `blur`)\n * @param callback Callback listener which is executed upon receiving the event.\n */\n addListener>(\n type: EventName,\n callback: EventListenerCallback\n ): () => void;\n removeListener>(\n type: EventName,\n callback: EventListenerCallback\n ): void;\n};\n\nexport type EventEmitter = {\n /**\n * Emit an event to child screens.\n *\n * @param options.type Type of the event (e.g. `focus`, `blur`)\n * @param [options.data] Optional information regarding the event.\n * @param [options.target] Key of the target route which should receive the event.\n * If not specified, all routes receive the event.\n */\n emit>(\n options: {\n type: EventName;\n target?: string;\n } & (EventMap[EventName]['canPreventDefault'] extends true\n ? { canPreventDefault: true }\n : {}) &\n (undefined extends EventMap[EventName]['data']\n ? { data?: EventMap[EventName]['data'] }\n : { data: EventMap[EventName]['data'] })\n ): EventArg<\n EventName,\n EventMap[EventName]['canPreventDefault'],\n EventMap[EventName]['data']\n >;\n};\n\nexport class PrivateValueStore {\n /**\n * UGLY HACK! DO NOT USE THE TYPE!!!\n *\n * TypeScript requires a type to be used to be able to infer it.\n * The type should exist as its own without any operations such as union.\n * So we need to figure out a way to store this type in a property.\n * The problem with a normal property is that it shows up in intelliSense.\n * Adding private keyword works, but the annotation is stripped away in declaration.\n * Turns out if we use an empty string, it doesn't show up in intelliSense.\n */\n protected ''?: T;\n}\n\ntype NavigationHelpersCommon<\n ParamList extends ParamListBase,\n State extends NavigationState = NavigationState\n> = {\n /**\n * Dispatch an action or an update function to the router.\n * The update function will receive the current state,\n *\n * @param action Action object or update function.\n */\n dispatch(\n action: NavigationAction | ((state: State) => NavigationAction)\n ): void;\n\n /**\n * Navigate to a route in current navigation tree.\n *\n * @param name Name of the route to navigate to.\n * @param [params] Params object for the route.\n */\n navigate(\n ...args: undefined extends ParamList[RouteName]\n ? [screen: RouteName] | [screen: RouteName, params: ParamList[RouteName]]\n : [screen: RouteName, params: ParamList[RouteName]]\n ): void;\n\n /**\n * Navigate to a route in current navigation tree.\n *\n * @param route Object with `key` or `name` for the route to navigate to, and a `params` object.\n */\n navigate(\n options:\n | { key: string; params?: ParamList[RouteName]; merge?: boolean }\n | {\n name: RouteName;\n key?: string;\n params: ParamList[RouteName];\n merge?: boolean;\n }\n ): void;\n\n /**\n * Reset the navigation state to the provided state.\n *\n * @param state Navigation state object.\n */\n reset(state: PartialState | State): void;\n\n /**\n * Go back to the previous route in history.\n */\n goBack(): void;\n\n /**\n * Check if the screen is focused. The method returns `true` if focused, `false` otherwise.\n * Note that this method doesn't re-render screen when the focus changes. So don't use it in `render`.\n * To get notified of focus changes, use `addListener('focus', cb)` and `addListener('blur', cb)`.\n * To conditionally render content based on focus state, use the `useIsFocused` hook.\n */\n isFocused(): boolean;\n\n /**\n * Check if dispatching back action will be handled by navigation.\n * Note that this method doesn't re-render screen when the result changes. So don't use it in `render`.\n */\n canGoBack(): boolean;\n\n /**\n * Returns the name of the navigator specified in the `name` prop.\n * If no name is specified, returns `undefined`.\n */\n getId(): string | undefined;\n\n /**\n * Returns the navigation helpers from a parent navigator based on the ID.\n * If an ID is provided, the navigation helper from the parent navigator with matching ID (including current) will be returned.\n * If no ID is provided, the navigation helper from the immediate parent navigator will be returned.\n *\n * @param id Optional ID of a parent navigator.\n */\n getParent | undefined>(id?: string): T;\n\n /**\n * Returns the navigator's state.\n * Note that this method doesn't re-render screen when the result changes. So don't use it in `render`.\n */\n getState(): State;\n} & PrivateValueStore<[ParamList, unknown, unknown]>;\n\nexport type NavigationHelpers<\n ParamList extends ParamListBase,\n EventMap extends EventMapBase = {}\n> = NavigationHelpersCommon &\n EventEmitter & {\n /**\n * Update the param object for the route.\n * The new params will be shallow merged with the old one.\n *\n * @param params Params object for the current route.\n */\n setParams(\n params: Partial\n ): void;\n };\n\nexport type NavigationContainerProps = {\n /**\n * Initial navigation state for the child navigators.\n */\n initialState?: InitialState;\n /**\n * Callback which is called with the latest navigation state when it changes.\n */\n onStateChange?: (state: NavigationState | undefined) => void;\n /**\n * Callback which is called when an action is not handled.\n */\n onUnhandledAction?: (action: NavigationAction) => void;\n /**\n * Whether this navigation container should be independent of parent containers.\n * If this is not set to `true`, this container cannot be nested inside another container.\n * Setting it to `true` disconnects any children navigators from parent container.\n */\n independent?: boolean;\n /**\n * Children elements to render.\n */\n children: React.ReactNode;\n};\n\nexport type NavigationProp<\n ParamList extends {},\n RouteName extends keyof ParamList = Keyof,\n NavigatorID extends string | undefined = undefined,\n State extends NavigationState = NavigationState,\n ScreenOptions extends {} = {},\n EventMap extends EventMapBase = {}\n> = Omit, 'getParent'> & {\n /**\n * Returns the navigation prop from a parent navigator based on the ID.\n * If an ID is provided, the navigation prop from the parent navigator with matching ID (including current) will be returned.\n * If no ID is provided, the navigation prop from the immediate parent navigator will be returned.\n *\n * @param id Optional ID of a parent navigator.\n */\n getParent | undefined>(id?: NavigatorID): T;\n\n /**\n * Update the param object for the route.\n * The new params will be shallow merged with the old one.\n *\n * @param params Params object for the current route.\n */\n setParams(params: Partial): void;\n\n /**\n * Update the options for the route.\n * The options object will be shallow merged with default options object.\n *\n * @param options Options object for the route.\n */\n setOptions(options: Partial): void;\n} & EventConsumer> &\n PrivateValueStore<[ParamList, RouteName, EventMap]>;\n\nexport type RouteProp<\n ParamList extends ParamListBase,\n RouteName extends keyof ParamList = Keyof\n> = Route, ParamList[RouteName]>;\n\nexport type CompositeNavigationProp<\n A extends NavigationProp,\n B extends NavigationHelpersCommon\n> = Omit> &\n NavigationProp<\n /**\n * Param list from both navigation objects needs to be combined\n * For example, we should be able to navigate to screens in both A and B\n */\n (A extends NavigationHelpersCommon ? T : never) &\n (B extends NavigationHelpersCommon ? U : never),\n /**\n * The route name should refer to the route name specified in the first type\n * Ideally it should work for any of them, but it's not possible to infer that way\n */\n A extends NavigationProp ? R : string,\n /**\n * ID from both navigation objects needs to be combined for `getParent`\n */\n | (A extends NavigationProp ? I : never)\n | (B extends NavigationProp ? J : never),\n /**\n * The type of state should refer to the state specified in the first type\n */\n A extends NavigationProp ? S : NavigationState,\n /**\n * Screen options from both navigation objects needs to be combined\n * This allows typechecking `setOptions`\n */\n (A extends NavigationProp ? O : {}) &\n (B extends NavigationProp ? P : {}),\n /**\n * Event consumer config should refer to the config specified in the first type\n * This allows typechecking `addListener`/`removeListener`\n */\n A extends NavigationProp ? E : {}\n >;\n\nexport type CompositeScreenProps<\n A extends {\n navigation: NavigationProp<\n ParamListBase,\n string,\n string | undefined,\n any,\n any,\n any\n >;\n route: RouteProp;\n },\n B extends {\n navigation: NavigationHelpersCommon;\n }\n> = {\n navigation: CompositeNavigationProp;\n route: A['route'];\n};\n\nexport type Descriptor<\n ScreenOptions extends {},\n Navigation extends NavigationProp,\n Route extends RouteProp\n> = {\n /**\n * Render the component associated with this route.\n */\n render(): JSX.Element;\n\n /**\n * Options for the route.\n */\n options: ScreenOptions;\n\n /**\n * Route object for the screen\n */\n route: Route;\n\n /**\n * Navigation object for the screen\n */\n navigation: Navigation;\n};\n\nexport type ScreenListeners<\n State extends NavigationState,\n EventMap extends EventMapBase\n> = Partial<{\n [EventName in keyof (EventMap & EventMapCore)]: EventListenerCallback<\n EventMap,\n EventName\n >;\n}>;\n\nexport type RouteConfigComponent<\n ParamList extends ParamListBase,\n RouteName extends keyof ParamList\n> =\n | {\n /**\n * React component to render for this screen.\n */\n component: React.ComponentType;\n getComponent?: never;\n children?: never;\n }\n | {\n /**\n * Lazily get a React component to render for this screen.\n */\n getComponent: () => React.ComponentType;\n component?: never;\n children?: never;\n }\n | {\n /**\n * Render callback to render content of this screen.\n */\n children: (props: {\n route: RouteProp;\n navigation: any;\n }) => React.ReactNode;\n component?: never;\n getComponent?: never;\n };\n\nexport type RouteConfig<\n ParamList extends ParamListBase,\n RouteName extends keyof ParamList,\n State extends NavigationState,\n ScreenOptions extends {},\n EventMap extends EventMapBase\n> = {\n /**\n * Optional key for this screen. This doesn't need to be unique.\n * If the key changes, existing screens with this name will be removed or reset.\n * Useful when we have some common screens and have conditional rendering.\n */\n navigationKey?: string;\n\n /**\n * Route name of this screen.\n */\n name: RouteName;\n\n /**\n * Navigator options for this screen.\n */\n options?:\n | ScreenOptions\n | ((props: {\n route: RouteProp;\n navigation: any;\n }) => ScreenOptions);\n\n /**\n * Event listeners for this screen.\n */\n listeners?:\n | ScreenListeners\n | ((props: {\n route: RouteProp;\n navigation: any;\n }) => ScreenListeners);\n\n /**\n * Function to return an unique ID for this screen.\n * Receives an object with the route params.\n * For a given screen name, there will always be only one screen corresponding to an ID.\n * If `undefined` is returned, it acts same as no `getId` being specified.\n */\n getId?: ({ params }: { params: ParamList[RouteName] }) => string | undefined;\n\n /**\n * Initial params object for the route.\n */\n initialParams?: Partial;\n} & RouteConfigComponent;\n\nexport type RouteGroupConfig<\n ParamList extends ParamListBase,\n ScreenOptions extends {}\n> = {\n /**\n * Optional key for the screens in this group.\n * If the key changes, all existing screens in this group will be removed or reset.\n */\n navigationKey?: string;\n\n /**\n * Navigator options for this screen.\n */\n screenOptions?:\n | ScreenOptions\n | ((props: {\n route: RouteProp;\n navigation: any;\n }) => ScreenOptions);\n /**\n * Children React Elements to extract the route configuration from.\n * Only `Screen`, `Group` and `React.Fragment` are supported as children.\n */\n children: React.ReactNode;\n};\n\nexport type NavigationContainerEventMap = {\n /**\n * Event which fires when the navigation state changes.\n */\n state: {\n data: {\n /**\n * The updated state object after the state change.\n */\n state: NavigationState | PartialState | undefined;\n };\n };\n /**\n * Event which fires when current options changes.\n */\n options: { data: { options: object } };\n /**\n * Event which fires when an action is dispatched.\n * Only intended for debugging purposes, don't use it for app logic.\n * This event will be emitted before state changes have been applied.\n */\n __unsafe_action__: {\n data: {\n /**\n * The action object which was dispatched.\n */\n action: NavigationAction;\n /**\n * Whether the action was a no-op, i.e. resulted any state changes.\n */\n noop: boolean;\n /**\n * Stack trace of the action, this will only be available during development.\n */\n stack: string | undefined;\n };\n };\n};\n\nexport type NavigationContainerRef =\n NavigationHelpers &\n EventConsumer & {\n /**\n * Reset the navigation state of the root navigator to the provided state.\n *\n * @param state Navigation state object.\n */\n resetRoot(state?: PartialState | NavigationState): void;\n /**\n * Get the rehydrated navigation state of the navigation tree.\n */\n getRootState(): NavigationState;\n /**\n * Get the currently focused navigation route.\n */\n getCurrentRoute(): Route | undefined;\n /**\n * Get the currently focused route's options.\n */\n getCurrentOptions(): object | undefined;\n /**\n * Whether the navigation container is ready to handle actions.\n */\n isReady(): boolean;\n };\n\nexport type NavigationContainerRefWithCurrent =\n NavigationContainerRef & {\n current: NavigationContainerRef | null;\n };\n\nexport type TypedNavigator<\n ParamList extends ParamListBase,\n State extends NavigationState,\n ScreenOptions extends {},\n EventMap extends EventMapBase,\n Navigator extends React.ComponentType\n> = {\n /**\n * Navigator component which manages the child screens.\n */\n Navigator: React.ComponentType<\n Omit<\n React.ComponentProps,\n keyof DefaultNavigatorOptions\n > &\n DefaultNavigatorOptions\n >;\n /**\n * Component used for grouping multiple route configuration.\n */\n Group: React.ComponentType>;\n /**\n * Component used for specifying route configuration.\n */\n Screen: (\n _: RouteConfig\n ) => null;\n};\n\nexport type NavigatorScreenParams<\n ParamList,\n State extends NavigationState = NavigationState\n> =\n | {\n screen?: never;\n params?: never;\n initial?: never;\n path?: string;\n state: PartialState | State | undefined;\n }\n | {\n [RouteName in keyof ParamList]: undefined extends ParamList[RouteName]\n ? {\n screen: RouteName;\n params?: ParamList[RouteName];\n initial?: boolean;\n path?: string;\n state?: never;\n }\n : {\n screen: RouteName;\n params: ParamList[RouteName];\n initial?: boolean;\n path?: string;\n state?: never;\n };\n }[keyof ParamList];\n\nexport type PathConfig = {\n path?: string;\n exact?: boolean;\n parse?: Record any>;\n stringify?: Record string>;\n screens?: PathConfigMap;\n initialRouteName?: keyof ParamList;\n};\n\nexport type PathConfigMap = {\n [RouteName in keyof ParamList]?: NonNullable<\n ParamList[RouteName]\n > extends NavigatorScreenParams\n ? string | PathConfig\n : string | Omit, 'screens' | 'initialRouteName'>;\n};\n","import * as React from 'react';\n\nimport NavigationContainerRefContext from './NavigationContainerRefContext';\nimport NavigationContext from './NavigationContext';\nimport type { NavigationProp } from './types';\n\n/**\n * Hook to access the navigation prop of the parent screen anywhere.\n *\n * @returns Navigation prop of the parent screen.\n */\nexport default function useNavigation<\n T = NavigationProp\n>(): T {\n const root = React.useContext(NavigationContainerRefContext);\n const navigation = React.useContext(NavigationContext);\n\n if (navigation === undefined && root === undefined) {\n throw new Error(\n \"Couldn't find a navigation object. Is your component inside NavigationContainer?\"\n );\n }\n\n // FIXME: Figure out a better way to do this\n return (navigation ?? root) as unknown as T;\n}\n","import * as React from 'react';\n\nimport useNavigation from './useNavigation';\n\ntype EffectCallback = () => undefined | void | (() => void);\n\n/**\n * Hook to run an effect in a focused screen, similar to `React.useEffect`.\n * This can be used to perform side-effects such as fetching data or subscribing to events.\n * The passed callback should be wrapped in `React.useCallback` to avoid running the effect too often.\n *\n * @param callback Memoized callback containing the effect, should optionally return a cleanup function.\n */\nexport default function useFocusEffect(effect: EffectCallback) {\n const navigation = useNavigation();\n\n if (arguments[1] !== undefined) {\n const message =\n \"You passed a second argument to 'useFocusEffect', but it only accepts one argument. \" +\n \"If you want to pass a dependency array, you can use 'React.useCallback':\\n\\n\" +\n 'useFocusEffect(\\n' +\n ' React.useCallback(() => {\\n' +\n ' // Your code here\\n' +\n ' }, [depA, depB])\\n' +\n ');\\n\\n' +\n 'See usage guide: https://reactnavigation.org/docs/use-focus-effect';\n\n console.error(message);\n }\n\n React.useEffect(() => {\n let isFocused = false;\n let cleanup: undefined | void | (() => void);\n\n const callback = () => {\n const destroy = effect();\n\n if (destroy === undefined || typeof destroy === 'function') {\n return destroy;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n let message =\n 'An effect function must not return anything besides a function, which is used for clean-up.';\n\n if (destroy === null) {\n message +=\n \" You returned 'null'. If your effect does not require clean-up, return 'undefined' (or nothing).\";\n } else if (typeof (destroy as any).then === 'function') {\n message +=\n \"\\n\\nIt looks like you wrote 'useFocusEffect(async () => ...)' or returned a Promise. \" +\n 'Instead, write the async function inside your effect ' +\n 'and call it immediately:\\n\\n' +\n 'useFocusEffect(\\n' +\n ' React.useCallback() => {\\n' +\n ' async function fetchData() {\\n' +\n ' // You can await here\\n' +\n ' const response = await MyAPI.getData(someId);\\n' +\n ' // ...\\n' +\n ' }\\n\\n' +\n ' fetchData();\\n' +\n ' }, [someId])\\n' +\n ');\\n\\n' +\n 'See usage guide: https://reactnavigation.org/docs/use-focus-effect';\n } else {\n message += ` You returned '${JSON.stringify(destroy)}'.`;\n }\n\n console.error(message);\n }\n };\n\n // We need to run the effect on intial render/dep changes if the screen is focused\n if (navigation.isFocused()) {\n cleanup = callback();\n isFocused = true;\n }\n\n const unsubscribeFocus = navigation.addListener('focus', () => {\n // If callback was already called for focus, avoid calling it again\n // The focus event may also fire on intial render, so we guard against runing the effect twice\n if (isFocused) {\n return;\n }\n\n if (cleanup !== undefined) {\n cleanup();\n }\n\n cleanup = callback();\n isFocused = true;\n });\n\n const unsubscribeBlur = navigation.addListener('blur', () => {\n if (cleanup !== undefined) {\n cleanup();\n }\n\n cleanup = undefined;\n isFocused = false;\n });\n\n return () => {\n if (cleanup !== undefined) {\n cleanup();\n }\n\n unsubscribeFocus();\n unsubscribeBlur();\n };\n }, [effect, navigation]);\n}\n","import * as React from 'react';\nimport { useState } from 'react';\n\nimport useNavigation from './useNavigation';\n\n/**\n * Hook to get the current focus state of the screen. Returns a `true` if screen is focused, otherwise `false`.\n * This can be used if a component needs to render something based on the focus state.\n */\nexport default function useIsFocused(): boolean {\n const navigation = useNavigation();\n const [isFocused, setIsFocused] = useState(navigation.isFocused);\n\n const valueToReturn = navigation.isFocused();\n\n if (isFocused !== valueToReturn) {\n // If the value has changed since the last render, we need to update it.\n // This could happen if we missed an update from the event listeners during re-render.\n // React will process this update immediately, so the old subscription value won't be committed.\n // It is still nice to avoid returning a mismatched value though, so let's override the return value.\n // This is the same logic as in https://github.com/facebook/react/tree/master/packages/use-subscription\n setIsFocused(valueToReturn);\n }\n\n React.useEffect(() => {\n const unsubscribeFocus = navigation.addListener('focus', () =>\n setIsFocused(true)\n );\n\n const unsubscribeBlur = navigation.addListener('blur', () =>\n setIsFocused(false)\n );\n\n return () => {\n unsubscribeFocus();\n unsubscribeBlur();\n };\n }, [navigation]);\n\n React.useDebugValue(valueToReturn);\n\n return valueToReturn;\n}\n","/**\n * Compare two arrays with primitive values as the content.\n * We need to make sure that both values and order match.\n */\nexport default function isArrayEqual(a: any[], b: any[]) {\n if (a === b) {\n return true;\n }\n\n if (a.length !== b.length) {\n return false;\n }\n\n return a.every((it, index) => it === b[index]);\n}\n","import * as React from 'react';\n\n/**\n * Component which prevents updates for children if no props changed\n */\nfunction StaticContainer(props: any) {\n return props.children;\n}\n\nexport default React.memo(StaticContainer, (prevProps: any, nextProps: any) => {\n const prevPropKeys = Object.keys(prevProps);\n const nextPropKeys = Object.keys(nextProps);\n\n if (prevPropKeys.length !== nextPropKeys.length) {\n return false;\n }\n\n for (const key of prevPropKeys) {\n if (key === 'children') {\n continue;\n }\n\n if (prevProps[key] !== nextProps[key]) {\n return false;\n }\n }\n\n return true;\n});\n","import type {\n NavigationState,\n ParamListBase,\n PartialState,\n Route,\n} from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport EnsureSingleNavigator from './EnsureSingleNavigator';\nimport NavigationStateContext from './NavigationStateContext';\nimport StaticContainer from './StaticContainer';\nimport type { NavigationProp, RouteConfigComponent } from './types';\nimport useOptionsGetters from './useOptionsGetters';\n\ntype Props = {\n screen: RouteConfigComponent & { name: string };\n navigation: NavigationProp<\n ParamListBase,\n string,\n string | undefined,\n State,\n ScreenOptions\n >;\n route: Route;\n routeState: NavigationState | PartialState | undefined;\n getState: () => State;\n setState: (state: State) => void;\n options: object;\n clearOptions: () => void;\n};\n\n/**\n * Component which takes care of rendering the screen for a route.\n * It provides all required contexts and applies optimizations when applicable.\n */\nexport default function SceneView<\n State extends NavigationState,\n ScreenOptions extends {}\n>({\n screen,\n route,\n navigation,\n routeState,\n getState,\n setState,\n options,\n clearOptions,\n}: Props) {\n const navigatorKeyRef = React.useRef();\n const getKey = React.useCallback(() => navigatorKeyRef.current, []);\n\n const { addOptionsGetter } = useOptionsGetters({\n key: route.key,\n options,\n navigation,\n });\n\n const setKey = React.useCallback((key: string) => {\n navigatorKeyRef.current = key;\n }, []);\n\n const getCurrentState = React.useCallback(() => {\n const state = getState();\n const currentRoute = state.routes.find((r) => r.key === route.key);\n\n return currentRoute ? currentRoute.state : undefined;\n }, [getState, route.key]);\n\n const setCurrentState = React.useCallback(\n (child: NavigationState | PartialState | undefined) => {\n const state = getState();\n\n setState({\n ...state,\n routes: state.routes.map((r) =>\n r.key === route.key ? { ...r, state: child } : r\n ),\n });\n },\n [getState, route.key, setState]\n );\n\n const isInitialRef = React.useRef(true);\n\n React.useEffect(() => {\n isInitialRef.current = false;\n });\n\n // Clear options set by this screen when it is unmounted\n React.useEffect(() => {\n return clearOptions;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const getIsInitial = React.useCallback(() => isInitialRef.current, []);\n\n const context = React.useMemo(\n () => ({\n state: routeState,\n getState: getCurrentState,\n setState: setCurrentState,\n getKey,\n setKey,\n getIsInitial,\n addOptionsGetter,\n }),\n [\n routeState,\n getCurrentState,\n setCurrentState,\n getKey,\n setKey,\n getIsInitial,\n addOptionsGetter,\n ]\n );\n\n const ScreenComponent = screen.getComponent\n ? screen.getComponent()\n : screen.component;\n\n return (\n \n \n \n {ScreenComponent !== undefined ? (\n \n ) : screen.children !== undefined ? (\n screen.children({ navigation, route })\n ) : null}\n \n \n \n );\n}\n","import type {\n NavigationAction,\n NavigationState,\n ParamListBase,\n Router,\n} from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport NavigationBuilderContext, {\n AddKeyedListener,\n AddListener,\n} from './NavigationBuilderContext';\nimport NavigationContext from './NavigationContext';\nimport NavigationRouteContext from './NavigationRouteContext';\nimport SceneView from './SceneView';\nimport type {\n Descriptor,\n EventMapBase,\n NavigationHelpers,\n NavigationProp,\n RouteConfig,\n RouteProp,\n} from './types';\nimport type { NavigationEventEmitter } from './useEventEmitter';\nimport useNavigationCache from './useNavigationCache';\nimport useRouteCache from './useRouteCache';\n\nexport type ScreenConfigWithParent<\n State extends NavigationState,\n ScreenOptions extends {},\n EventMap extends EventMapBase\n> = {\n keys: (string | undefined)[];\n options: (ScreenOptionsOrCallback | undefined)[] | undefined;\n props: RouteConfig;\n};\n\ntype ScreenOptionsOrCallback =\n | ScreenOptions\n | ((props: {\n route: RouteProp;\n navigation: any;\n }) => ScreenOptions);\n\ntype Options<\n State extends NavigationState,\n ScreenOptions extends {},\n EventMap extends EventMapBase\n> = {\n state: State;\n screens: Record<\n string,\n ScreenConfigWithParent\n >;\n navigation: NavigationHelpers;\n screenOptions?: ScreenOptionsOrCallback;\n defaultScreenOptions?:\n | ScreenOptions\n | ((props: {\n route: RouteProp;\n navigation: any;\n options: ScreenOptions;\n }) => ScreenOptions);\n onAction: (action: NavigationAction) => boolean;\n getState: () => State;\n setState: (state: State) => void;\n addListener: AddListener;\n addKeyedListener: AddKeyedListener;\n onRouteFocus: (key: string) => void;\n router: Router;\n emitter: NavigationEventEmitter;\n};\n\n/**\n * Hook to create descriptor objects for the child routes.\n *\n * A descriptor object provides 3 things:\n * - Helper method to render a screen\n * - Options specified by the screen for the navigator\n * - Navigation object intended for the route\n */\nexport default function useDescriptors<\n State extends NavigationState,\n ActionHelpers extends Record void>,\n ScreenOptions extends {},\n EventMap extends EventMapBase\n>({\n state,\n screens,\n navigation,\n screenOptions,\n defaultScreenOptions,\n onAction,\n getState,\n setState,\n addListener,\n addKeyedListener,\n onRouteFocus,\n router,\n emitter,\n}: Options) {\n const [options, setOptions] = React.useState>({});\n const { onDispatchAction, onOptionsChange, stackRef } = React.useContext(\n NavigationBuilderContext\n );\n\n const context = React.useMemo(\n () => ({\n navigation,\n onAction,\n addListener,\n addKeyedListener,\n onRouteFocus,\n onDispatchAction,\n onOptionsChange,\n stackRef,\n }),\n [\n navigation,\n onAction,\n addListener,\n addKeyedListener,\n onRouteFocus,\n onDispatchAction,\n onOptionsChange,\n stackRef,\n ]\n );\n\n const navigations = useNavigationCache({\n state,\n getState,\n navigation,\n setOptions,\n router,\n emitter,\n });\n\n const routes = useRouteCache(state.routes);\n\n return routes.reduce<\n Record<\n string,\n Descriptor<\n ScreenOptions,\n NavigationProp<\n ParamListBase,\n string,\n string | undefined,\n State,\n ScreenOptions,\n EventMap\n > &\n ActionHelpers,\n RouteProp\n >\n >\n >((acc, route, i) => {\n const config = screens[route.name];\n const screen = config.props;\n const navigation = navigations[route.key];\n\n const optionsList = [\n // The default `screenOptions` passed to the navigator\n screenOptions,\n // The `screenOptions` props passed to `Group` elements\n ...((config.options\n ? config.options.filter(Boolean)\n : []) as ScreenOptionsOrCallback[]),\n // The `options` prop passed to `Screen` elements,\n screen.options,\n // The options set via `navigation.setOptions`\n options[route.key],\n ];\n\n const customOptions = optionsList.reduce(\n (acc, curr) =>\n Object.assign(\n acc,\n typeof curr !== 'function' ? curr : curr({ route, navigation })\n ),\n {} as ScreenOptions\n );\n\n const mergedOptions = {\n ...(typeof defaultScreenOptions === 'function'\n ? // @ts-expect-error: ts gives incorrect error here\n defaultScreenOptions({\n route,\n navigation,\n options: customOptions,\n })\n : defaultScreenOptions),\n ...customOptions,\n };\n\n const clearOptions = () =>\n setOptions((o) => {\n if (route.key in o) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [route.key]: _, ...rest } = o;\n return rest;\n }\n\n return o;\n });\n\n acc[route.key] = {\n route,\n // @ts-expect-error: it's missing action helpers, fix later\n navigation,\n render() {\n return (\n \n \n \n \n \n \n \n );\n },\n options: mergedOptions as ScreenOptions,\n };\n\n return acc;\n }, {});\n}\n","import {\n CommonActions,\n NavigationAction,\n NavigationState,\n ParamListBase,\n Router,\n} from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport NavigationBuilderContext from './NavigationBuilderContext';\nimport type { NavigationHelpers, NavigationProp } from './types';\nimport type { NavigationEventEmitter } from './useEventEmitter';\n\ntype Options<\n State extends NavigationState,\n EventMap extends Record\n> = {\n state: State;\n getState: () => State;\n navigation: NavigationHelpers &\n Partial>;\n setOptions: (\n cb: (options: Record) => Record\n ) => void;\n router: Router;\n emitter: NavigationEventEmitter;\n};\n\ntype NavigationCache<\n State extends NavigationState,\n ScreenOptions extends {},\n EventMap extends Record\n> = Record<\n string,\n NavigationProp<\n ParamListBase,\n string,\n string | undefined,\n State,\n ScreenOptions,\n EventMap\n >\n>;\n\n/**\n * Hook to cache navigation objects for each screen in the navigator.\n * It's important to cache them to make sure navigation objects don't change between renders.\n * This lets us apply optimizations like `React.memo` to minimize re-rendering screens.\n */\nexport default function useNavigationCache<\n State extends NavigationState,\n ScreenOptions extends {},\n EventMap extends Record\n>({\n state,\n getState,\n navigation,\n setOptions,\n router,\n emitter,\n}: Options) {\n const { stackRef } = React.useContext(NavigationBuilderContext);\n\n // Cache object which holds navigation objects for each screen\n // We use `React.useMemo` instead of `React.useRef` coz we want to invalidate it when deps change\n // In reality, these deps will rarely change, if ever\n const cache = React.useMemo(\n () => ({ current: {} as NavigationCache }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [getState, navigation, setOptions, router, emitter]\n );\n\n const actions = {\n ...router.actionCreators,\n ...CommonActions,\n };\n\n cache.current = state.routes.reduce<\n NavigationCache\n >((acc, route) => {\n const previous = cache.current[route.key];\n\n type Thunk =\n | NavigationAction\n | ((state: State) => NavigationAction | null | undefined);\n\n if (previous) {\n // If a cached navigation object already exists, reuse it\n acc[route.key] = previous;\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { emit, ...rest } = navigation;\n\n const dispatch = (thunk: Thunk) => {\n const action = typeof thunk === 'function' ? thunk(getState()) : thunk;\n\n if (action != null) {\n navigation.dispatch({ source: route.key, ...action });\n }\n };\n\n const withStack = (callback: () => void) => {\n let isStackSet = false;\n\n try {\n if (\n process.env.NODE_ENV !== 'production' &&\n stackRef &&\n !stackRef.current\n ) {\n // Capture the stack trace for devtools\n stackRef.current = new Error().stack;\n isStackSet = true;\n }\n\n callback();\n } finally {\n if (isStackSet && stackRef) {\n stackRef.current = undefined;\n }\n }\n };\n\n const helpers = Object.keys(actions).reduce void>>(\n (acc, name) => {\n acc[name] = (...args: any) =>\n withStack(() =>\n // @ts-expect-error: name is a valid key, but TypeScript is dumb\n dispatch(actions[name](...args))\n );\n\n return acc;\n },\n {}\n );\n\n acc[route.key] = {\n ...rest,\n ...helpers,\n // FIXME: too much work to fix the types for now\n ...(emitter.create(route.key) as any),\n dispatch: (thunk: Thunk) => withStack(() => dispatch(thunk)),\n getParent: (id?: string) => {\n if (id !== undefined && id === rest.getId()) {\n // If the passed id is the same as the current navigation id,\n // we return the cached navigation object for the relevant route\n return acc[route.key];\n }\n\n return rest.getParent(id);\n },\n setOptions: (options: object) =>\n setOptions((o) => ({\n ...o,\n [route.key]: { ...o[route.key], ...options },\n })),\n isFocused: () => {\n const state = getState();\n\n if (state.routes[state.index].key !== route.key) {\n return false;\n }\n\n // If the current screen is focused, we also need to check if parent navigator is focused\n // This makes sure that we return the focus state in the whole tree, not just this navigator\n return navigation ? navigation.isFocused() : true;\n },\n };\n }\n\n return acc;\n }, {});\n\n return cache.current;\n}\n","import type {\n NavigationAction,\n NavigationState,\n} from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport NavigationBuilderContext, {\n ChildBeforeRemoveListener,\n} from './NavigationBuilderContext';\nimport NavigationRouteContext from './NavigationRouteContext';\nimport type { EventMapCore } from './types';\nimport type { NavigationEventEmitter } from './useEventEmitter';\n\ntype Options = {\n getState: () => NavigationState;\n emitter: NavigationEventEmitter>;\n beforeRemoveListeners: Record;\n};\n\nconst VISITED_ROUTE_KEYS = Symbol('VISITED_ROUTE_KEYS');\n\nexport const shouldPreventRemove = (\n emitter: NavigationEventEmitter>,\n beforeRemoveListeners: Record,\n currentRoutes: { key: string }[],\n nextRoutes: { key?: string | undefined }[],\n action: NavigationAction\n) => {\n const nextRouteKeys = nextRoutes.map((route) => route.key);\n\n // Call these in reverse order so last screens handle the event first\n const removedRoutes = currentRoutes\n .filter((route) => !nextRouteKeys.includes(route.key))\n .reverse();\n\n const visitedRouteKeys: Set =\n // @ts-expect-error: add this property to mark that we've already emitted this action\n action[VISITED_ROUTE_KEYS] ?? new Set();\n\n const beforeRemoveAction = {\n ...action,\n [VISITED_ROUTE_KEYS]: visitedRouteKeys,\n };\n\n for (const route of removedRoutes) {\n if (visitedRouteKeys.has(route.key)) {\n // Skip if we've already emitted this action for this screen\n continue;\n }\n\n // First, we need to check if any child screens want to prevent it\n const isPrevented = beforeRemoveListeners[route.key]?.(beforeRemoveAction);\n\n if (isPrevented) {\n return true;\n }\n\n visitedRouteKeys.add(route.key);\n\n const event = emitter.emit({\n type: 'beforeRemove',\n target: route.key,\n data: { action: beforeRemoveAction },\n canPreventDefault: true,\n });\n\n if (event.defaultPrevented) {\n return true;\n }\n }\n\n return false;\n};\n\nexport default function useOnPreventRemove({\n getState,\n emitter,\n beforeRemoveListeners,\n}: Options) {\n const { addKeyedListener } = React.useContext(NavigationBuilderContext);\n const route = React.useContext(NavigationRouteContext);\n const routeKey = route?.key;\n\n React.useEffect(() => {\n if (routeKey) {\n return addKeyedListener?.('beforeRemove', routeKey, (action) => {\n const state = getState();\n\n return shouldPreventRemove(\n emitter,\n beforeRemoveListeners,\n state.routes,\n [],\n action\n );\n });\n }\n }, [addKeyedListener, beforeRemoveListeners, emitter, getState, routeKey]);\n}\n","import type {\n NavigationAction,\n NavigationState,\n PartialState,\n Router,\n RouterConfigOptions,\n} from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport NavigationBuilderContext, {\n ChildActionListener,\n ChildBeforeRemoveListener,\n} from './NavigationBuilderContext';\nimport type { EventMapCore } from './types';\nimport type { NavigationEventEmitter } from './useEventEmitter';\nimport useOnPreventRemove, { shouldPreventRemove } from './useOnPreventRemove';\n\ntype Options = {\n router: Router;\n key?: string;\n getState: () => NavigationState;\n setState: (state: NavigationState | PartialState) => void;\n actionListeners: ChildActionListener[];\n beforeRemoveListeners: Record;\n routerConfigOptions: RouterConfigOptions;\n emitter: NavigationEventEmitter>;\n};\n\n/**\n * Hook to handle actions for a navigator, including state updates and bubbling.\n *\n * Bubbling an action is achieved in 2 ways:\n * 1. To bubble action to parent, we expose the action handler in context and then access the parent context\n * 2. To bubble action to child, child adds event listeners subscribing to actions from parent\n *\n * When the action handler handles as action, it returns `true`, otherwise `false`.\n */\nexport default function useOnAction({\n router,\n getState,\n setState,\n key,\n actionListeners,\n beforeRemoveListeners,\n routerConfigOptions,\n emitter,\n}: Options) {\n const {\n onAction: onActionParent,\n onRouteFocus: onRouteFocusParent,\n addListener: addListenerParent,\n onDispatchAction,\n } = React.useContext(NavigationBuilderContext);\n\n const routerConfigOptionsRef =\n React.useRef(routerConfigOptions);\n\n React.useEffect(() => {\n routerConfigOptionsRef.current = routerConfigOptions;\n });\n\n const onAction = React.useCallback(\n (\n action: NavigationAction,\n visitedNavigators: Set = new Set()\n ) => {\n const state = getState();\n\n // Since actions can bubble both up and down, they could come to the same navigator again\n // We keep track of navigators which have already tried to handle the action and return if it's already visited\n if (visitedNavigators.has(state.key)) {\n return false;\n }\n\n visitedNavigators.add(state.key);\n\n if (typeof action.target !== 'string' || action.target === state.key) {\n let result = router.getStateForAction(\n state,\n action,\n routerConfigOptionsRef.current\n );\n\n // If a target is specified and set to current navigator, the action shouldn't bubble\n // So instead of `null`, we use the state object for such cases to signal that action was handled\n result =\n result === null && action.target === state.key ? state : result;\n\n if (result !== null) {\n onDispatchAction(action, state === result);\n\n if (state !== result) {\n const isPrevented = shouldPreventRemove(\n emitter,\n beforeRemoveListeners,\n state.routes,\n result.routes,\n action\n );\n\n if (isPrevented) {\n return true;\n }\n\n setState(result);\n }\n\n if (onRouteFocusParent !== undefined) {\n // Some actions such as `NAVIGATE` also want to bring the navigated route to focus in the whole tree\n // This means we need to focus all of the parent navigators of this navigator as well\n const shouldFocus = router.shouldActionChangeFocus(action);\n\n if (shouldFocus && key !== undefined) {\n onRouteFocusParent(key);\n }\n }\n\n return true;\n }\n }\n\n if (onActionParent !== undefined) {\n // Bubble action to the parent if the current navigator didn't handle it\n if (onActionParent(action, visitedNavigators)) {\n return true;\n }\n }\n\n // If the action wasn't handled by current navigator or a parent navigator, let children handle it\n for (let i = actionListeners.length - 1; i >= 0; i--) {\n const listener = actionListeners[i];\n\n if (listener(action, visitedNavigators)) {\n return true;\n }\n }\n\n return false;\n },\n [\n actionListeners,\n beforeRemoveListeners,\n emitter,\n getState,\n key,\n onActionParent,\n onDispatchAction,\n onRouteFocusParent,\n router,\n setState,\n ]\n );\n\n useOnPreventRemove({\n getState,\n emitter,\n beforeRemoveListeners,\n });\n\n React.useEffect(\n () => addListenerParent?.('action', onAction),\n [addListenerParent, onAction]\n );\n\n return onAction;\n}\n","import {\n CommonActions,\n DefaultRouterOptions,\n NavigationAction,\n NavigationState,\n ParamListBase,\n PartialState,\n Route,\n Router,\n RouterConfigOptions,\n RouterFactory,\n} from '@react-navigation/routers';\nimport * as React from 'react';\nimport { isValidElementType } from 'react-is';\n\nimport Group from './Group';\nimport isArrayEqual from './isArrayEqual';\nimport isRecordEqual from './isRecordEqual';\nimport NavigationHelpersContext from './NavigationHelpersContext';\nimport NavigationRouteContext from './NavigationRouteContext';\nimport NavigationStateContext from './NavigationStateContext';\nimport Screen from './Screen';\nimport {\n DefaultNavigatorOptions,\n EventMapBase,\n EventMapCore,\n NavigatorScreenParams,\n PrivateValueStore,\n RouteConfig,\n} from './types';\nimport useChildListeners from './useChildListeners';\nimport useComponent from './useComponent';\nimport useCurrentRender from './useCurrentRender';\nimport useDescriptors, { ScreenConfigWithParent } from './useDescriptors';\nimport useEventEmitter from './useEventEmitter';\nimport useFocusedListenersChildrenAdapter from './useFocusedListenersChildrenAdapter';\nimport useFocusEvents from './useFocusEvents';\nimport useKeyedChildListeners from './useKeyedChildListeners';\nimport useNavigationHelpers from './useNavigationHelpers';\nimport useOnAction from './useOnAction';\nimport useOnGetState from './useOnGetState';\nimport useOnRouteFocus from './useOnRouteFocus';\nimport useRegisterNavigator from './useRegisterNavigator';\nimport useScheduleUpdate from './useScheduleUpdate';\n\n// This is to make TypeScript compiler happy\n// eslint-disable-next-line babel/no-unused-expressions\nPrivateValueStore;\n\ntype NavigatorRoute = {\n key: string;\n params?: NavigatorScreenParams;\n};\n\nconst isValidKey = (key: unknown) =>\n key === undefined || (typeof key === 'string' && key !== '');\n\n/**\n * Extract route config object from React children elements.\n *\n * @param children React Elements to extract the config from.\n */\nconst getRouteConfigsFromChildren = <\n State extends NavigationState,\n ScreenOptions extends {},\n EventMap extends EventMapBase\n>(\n children: React.ReactNode,\n groupKey?: string,\n groupOptions?: ScreenConfigWithParent<\n State,\n ScreenOptions,\n EventMap\n >['options']\n) => {\n const configs = React.Children.toArray(children).reduce<\n ScreenConfigWithParent[]\n >((acc, child) => {\n if (React.isValidElement(child)) {\n if (child.type === Screen) {\n // We can only extract the config from `Screen` elements\n // If something else was rendered, it's probably a bug\n\n if (!isValidKey(child.props.navigationKey)) {\n throw new Error(\n `Got an invalid 'navigationKey' prop (${JSON.stringify(\n child.props.navigationKey\n )}) for the screen '${\n child.props.name\n }'. It must be a non-empty string or 'undefined'.`\n );\n }\n\n acc.push({\n keys: [groupKey, child.props.navigationKey],\n options: groupOptions,\n props: child.props as RouteConfig<\n ParamListBase,\n string,\n State,\n ScreenOptions,\n EventMap\n >,\n });\n return acc;\n }\n\n if (child.type === React.Fragment || child.type === Group) {\n if (!isValidKey(child.props.navigationKey)) {\n throw new Error(\n `Got an invalid 'navigationKey' prop (${JSON.stringify(\n child.props.navigationKey\n )}) for the group. It must be a non-empty string or 'undefined'.`\n );\n }\n\n // When we encounter a fragment or group, we need to dive into its children to extract the configs\n // This is handy to conditionally define a group of screens\n acc.push(\n ...getRouteConfigsFromChildren(\n child.props.children,\n child.props.navigationKey,\n child.type !== Group\n ? groupOptions\n : groupOptions != null\n ? [...groupOptions, child.props.screenOptions]\n : [child.props.screenOptions]\n )\n );\n return acc;\n }\n }\n\n throw new Error(\n `A navigator can only contain 'Screen', 'Group' or 'React.Fragment' as its direct children (found ${\n React.isValidElement(child)\n ? `'${\n typeof child.type === 'string' ? child.type : child.type?.name\n }'${\n child.props?.name ? ` for the screen '${child.props.name}'` : ''\n }`\n : typeof child === 'object'\n ? JSON.stringify(child)\n : `'${String(child)}'`\n }). To render this component in the navigator, pass it in the 'component' prop to 'Screen'.`\n );\n }, []);\n\n if (process.env.NODE_ENV !== 'production') {\n configs.forEach((config) => {\n const { name, children, component, getComponent } = config.props;\n\n if (typeof name !== 'string' || !name) {\n throw new Error(\n `Got an invalid name (${JSON.stringify(\n name\n )}) for the screen. It must be a non-empty string.`\n );\n }\n\n if (\n children != null ||\n component !== undefined ||\n getComponent !== undefined\n ) {\n if (children != null && component !== undefined) {\n throw new Error(\n `Got both 'component' and 'children' props for the screen '${name}'. You must pass only one of them.`\n );\n }\n\n if (children != null && getComponent !== undefined) {\n throw new Error(\n `Got both 'getComponent' and 'children' props for the screen '${name}'. You must pass only one of them.`\n );\n }\n\n if (component !== undefined && getComponent !== undefined) {\n throw new Error(\n `Got both 'component' and 'getComponent' props for the screen '${name}'. You must pass only one of them.`\n );\n }\n\n if (children != null && typeof children !== 'function') {\n throw new Error(\n `Got an invalid value for 'children' prop for the screen '${name}'. It must be a function returning a React Element.`\n );\n }\n\n if (component !== undefined && !isValidElementType(component)) {\n throw new Error(\n `Got an invalid value for 'component' prop for the screen '${name}'. It must be a valid React Component.`\n );\n }\n\n if (getComponent !== undefined && typeof getComponent !== 'function') {\n throw new Error(\n `Got an invalid value for 'getComponent' prop for the screen '${name}'. It must be a function returning a React Component.`\n );\n }\n\n if (typeof component === 'function') {\n if (component.name === 'component') {\n // Inline anonymous functions passed in the `component` prop will have the name of the prop\n // It's relatively safe to assume that it's not a component since it should also have PascalCase name\n // We won't catch all scenarios here, but this should catch a good chunk of incorrect use.\n console.warn(\n `Looks like you're passing an inline function for 'component' prop for the screen '${name}' (e.g. component={() => }). Passing an inline function will cause the component state to be lost on re-render and cause perf issues since it's re-created every render. You can pass the function as children to 'Screen' instead to achieve the desired behaviour.`\n );\n } else if (/^[a-z]/.test(component.name)) {\n console.warn(\n `Got a component with the name '${component.name}' for the screen '${name}'. React Components must start with an uppercase letter. If you're passing a regular function and not a component, pass it as children to 'Screen' instead. Otherwise capitalize your component's name.`\n );\n }\n }\n } else {\n throw new Error(\n `Couldn't find a 'component', 'getComponent' or 'children' prop for the screen '${name}'. This can happen if you passed 'undefined'. You likely forgot to export your component from the file it's defined in, or mixed up default import and named import when importing.`\n );\n }\n });\n }\n\n return configs;\n};\n\n/**\n * Hook for building navigators.\n *\n * @param createRouter Factory method which returns router object.\n * @param options Options object containing `children` and additional options for the router.\n * @returns An object containing `state`, `navigation`, `descriptors` objects.\n */\nexport default function useNavigationBuilder<\n State extends NavigationState,\n RouterOptions extends DefaultRouterOptions,\n ActionHelpers extends Record void>,\n ScreenOptions extends {},\n EventMap extends Record\n>(\n createRouter: RouterFactory,\n options: DefaultNavigatorOptions<\n ParamListBase,\n State,\n ScreenOptions,\n EventMap\n > &\n RouterOptions\n) {\n const navigatorKey = useRegisterNavigator();\n\n const route = React.useContext(NavigationRouteContext) as\n | NavigatorRoute\n | undefined;\n\n const { children, screenListeners, ...rest } = options;\n const { current: router } = React.useRef>(\n createRouter({\n ...(rest as unknown as RouterOptions),\n ...(route?.params &&\n route.params.state == null &&\n route.params.initial !== false &&\n typeof route.params.screen === 'string'\n ? { initialRouteName: route.params.screen }\n : null),\n })\n );\n\n const routeConfigs = getRouteConfigsFromChildren<\n State,\n ScreenOptions,\n EventMap\n >(children);\n\n const screens = routeConfigs.reduce<\n Record>\n >((acc, config) => {\n if (config.props.name in acc) {\n throw new Error(\n `A navigator cannot contain multiple 'Screen' components with the same name (found duplicate screen named '${config.props.name}')`\n );\n }\n\n acc[config.props.name] = config;\n return acc;\n }, {});\n\n const routeNames = routeConfigs.map((config) => config.props.name);\n const routeKeyList = routeNames.reduce>(\n (acc, curr) => {\n acc[curr] = screens[curr].keys.map((key) => key ?? '').join(':');\n return acc;\n },\n {}\n );\n const routeParamList = routeNames.reduce>(\n (acc, curr) => {\n const { initialParams } = screens[curr].props;\n acc[curr] = initialParams;\n return acc;\n },\n {}\n );\n const routeGetIdList = routeNames.reduce<\n RouterConfigOptions['routeGetIdList']\n >(\n (acc, curr) =>\n Object.assign(acc, {\n [curr]: screens[curr].props.getId,\n }),\n {}\n );\n\n if (!routeNames.length) {\n throw new Error(\n \"Couldn't find any screens for the navigator. Have you defined any screens as its children?\"\n );\n }\n\n const isStateValid = React.useCallback(\n (state) => state.type === undefined || state.type === router.type,\n [router.type]\n );\n\n const isStateInitialized = React.useCallback(\n (state) =>\n state !== undefined && state.stale === false && isStateValid(state),\n [isStateValid]\n );\n\n const {\n state: currentState,\n getState: getCurrentState,\n setState: setCurrentState,\n setKey,\n getKey,\n getIsInitial,\n } = React.useContext(NavigationStateContext);\n\n const stateCleanedUp = React.useRef(false);\n\n const cleanUpState = React.useCallback(() => {\n setCurrentState(undefined);\n stateCleanedUp.current = true;\n }, [setCurrentState]);\n\n const setState = React.useCallback(\n (state: NavigationState | PartialState | undefined) => {\n if (stateCleanedUp.current) {\n // State might have been already cleaned up due to unmount\n // We do not want to expose API allowing to override this\n // This would lead to old data preservation on main navigator unmount\n return;\n }\n setCurrentState(state);\n },\n [setCurrentState]\n );\n\n const [initializedState, isFirstStateInitialization] = React.useMemo(() => {\n const initialRouteParamList = routeNames.reduce<\n Record\n >((acc, curr) => {\n const { initialParams } = screens[curr].props;\n const initialParamsFromParams =\n route?.params?.state == null &&\n route?.params?.initial !== false &&\n route?.params?.screen === curr\n ? route.params.params\n : undefined;\n\n acc[curr] =\n initialParams !== undefined || initialParamsFromParams !== undefined\n ? {\n ...initialParams,\n ...initialParamsFromParams,\n }\n : undefined;\n\n return acc;\n }, {});\n\n // If the current state isn't initialized on first render, we initialize it\n // We also need to re-initialize it if the state passed from parent was changed (maybe due to reset)\n // Otherwise assume that the state was provided as initial state\n // So we need to rehydrate it to make it usable\n if (\n (currentState === undefined || !isStateValid(currentState)) &&\n route?.params?.state == null\n ) {\n return [\n router.getInitialState({\n routeNames,\n routeParamList: initialRouteParamList,\n routeGetIdList,\n }),\n true,\n ];\n } else {\n return [\n router.getRehydratedState(\n route?.params?.state ?? (currentState as PartialState),\n {\n routeNames,\n routeParamList: initialRouteParamList,\n routeGetIdList,\n }\n ),\n false,\n ];\n }\n // We explicitly don't include routeNames, route.params etc. in the dep list\n // below. We want to avoid forcing a new state to be calculated in those cases\n // Instead, we handle changes to these in the nextState code below. Note\n // that some changes to routeConfigs are explicitly ignored, such as changes\n // to initialParams\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentState, router, isStateValid]);\n\n const previousRouteKeyListRef = React.useRef(routeKeyList);\n\n React.useEffect(() => {\n previousRouteKeyListRef.current = routeKeyList;\n });\n\n const previousRouteKeyList = previousRouteKeyListRef.current;\n\n let state =\n // If the state isn't initialized, or stale, use the state we initialized instead\n // The state won't update until there's a change needed in the state we have initalized locally\n // So it'll be `undefined` or stale until the first navigation event happens\n isStateInitialized(currentState)\n ? (currentState as State)\n : (initializedState as State);\n\n let nextState: State = state;\n\n if (\n !isArrayEqual(state.routeNames, routeNames) ||\n !isRecordEqual(routeKeyList, previousRouteKeyList)\n ) {\n // When the list of route names change, the router should handle it to remove invalid routes\n nextState = router.getStateForRouteNamesChange(state, {\n routeNames,\n routeParamList,\n routeGetIdList,\n routeKeyChanges: Object.keys(routeKeyList).filter(\n (name) =>\n previousRouteKeyList.hasOwnProperty(name) &&\n routeKeyList[name] !== previousRouteKeyList[name]\n ),\n });\n }\n\n const previousNestedParamsRef = React.useRef(route?.params);\n\n React.useEffect(() => {\n previousNestedParamsRef.current = route?.params;\n }, [route?.params]);\n\n if (route?.params) {\n const previousParams = previousNestedParamsRef.current;\n\n let action: CommonActions.Action | undefined;\n\n if (\n typeof route.params.state === 'object' &&\n route.params.state != null &&\n route.params !== previousParams\n ) {\n // If the route was updated with new state, we should reset to it\n action = CommonActions.reset(route.params.state);\n } else if (\n typeof route.params.screen === 'string' &&\n ((route.params.initial === false && isFirstStateInitialization) ||\n route.params !== previousParams)\n ) {\n // If the route was updated with new screen name and/or params, we should navigate there\n action = CommonActions.navigate({\n name: route.params.screen,\n params: route.params.params,\n path: route.params.path,\n });\n }\n\n // The update should be limited to current navigator only, so we call the router manually\n const updatedState = action\n ? router.getStateForAction(nextState, action, {\n routeNames,\n routeParamList,\n routeGetIdList,\n })\n : null;\n\n nextState =\n updatedState !== null\n ? router.getRehydratedState(updatedState, {\n routeNames,\n routeParamList,\n routeGetIdList,\n })\n : nextState;\n }\n\n const shouldUpdate = state !== nextState;\n\n useScheduleUpdate(() => {\n if (shouldUpdate) {\n // If the state needs to be updated, we'll schedule an update\n setState(nextState);\n }\n });\n\n // The up-to-date state will come in next render, but we don't need to wait for it\n // We can't use the outdated state since the screens have changed, which will cause error due to mismatched config\n // So we override the state object we return to use the latest state as soon as possible\n state = nextState;\n\n React.useEffect(() => {\n setKey(navigatorKey);\n\n if (!getIsInitial()) {\n // If it's not initial render, we need to update the state\n // This will make sure that our container gets notifier of state changes due to new mounts\n // This is necessary for proper screen tracking, URL updates etc.\n setState(nextState);\n }\n\n return () => {\n // We need to clean up state for this navigator on unmount\n // We do it in a timeout because we need to detect if another navigator mounted in the meantime\n // For example, if another navigator has started rendering, we should skip cleanup\n // Otherwise, our cleanup step will cleanup state for the other navigator and re-initialize it\n setTimeout(() => {\n if (getCurrentState() !== undefined && getKey() === navigatorKey) {\n cleanUpState();\n }\n }, 0);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // We initialize this ref here to avoid a new getState getting initialized\n // whenever initializedState changes. We want getState to have access to the\n // latest initializedState, but don't need it to change when that happens\n const initializedStateRef = React.useRef();\n initializedStateRef.current = initializedState;\n\n const getState = React.useCallback((): State => {\n const currentState = getCurrentState();\n\n return isStateInitialized(currentState)\n ? (currentState as State)\n : (initializedStateRef.current as State);\n }, [getCurrentState, isStateInitialized]);\n\n const emitter = useEventEmitter>((e) => {\n let routeNames = [];\n\n let route: Route | undefined;\n\n if (e.target) {\n route = state.routes.find((route) => route.key === e.target);\n\n if (route?.name) {\n routeNames.push(route.name);\n }\n } else {\n route = state.routes[state.index];\n routeNames.push(\n ...Object.keys(screens).filter((name) => route?.name === name)\n );\n }\n\n if (route == null) {\n return;\n }\n\n const navigation = descriptors[route.key].navigation;\n\n const listeners = ([] as (((e: any) => void) | undefined)[])\n .concat(\n // Get an array of listeners for all screens + common listeners on navigator\n ...[\n screenListeners,\n ...routeNames.map((name) => {\n const { listeners } = screens[name].props;\n return listeners;\n }),\n ].map((listeners) => {\n const map =\n typeof listeners === 'function'\n ? listeners({ route: route as any, navigation })\n : listeners;\n\n return map\n ? Object.keys(map)\n .filter((type) => type === e.type)\n .map((type) => map?.[type])\n : undefined;\n })\n )\n // We don't want same listener to be called multiple times for same event\n // So we remove any duplicate functions from the array\n .filter((cb, i, self) => cb && self.lastIndexOf(cb) === i);\n\n listeners.forEach((listener) => listener?.(e));\n });\n\n useFocusEvents({ state, emitter });\n\n React.useEffect(() => {\n emitter.emit({ type: 'state', data: { state } });\n }, [emitter, state]);\n\n const { listeners: childListeners, addListener } = useChildListeners();\n\n const { keyedListeners, addKeyedListener } = useKeyedChildListeners();\n\n const onAction = useOnAction({\n router,\n getState,\n setState,\n key: route?.key,\n actionListeners: childListeners.action,\n beforeRemoveListeners: keyedListeners.beforeRemove,\n routerConfigOptions: {\n routeNames,\n routeParamList,\n routeGetIdList,\n },\n emitter,\n });\n\n const onRouteFocus = useOnRouteFocus({\n router,\n key: route?.key,\n getState,\n setState,\n });\n\n const navigation = useNavigationHelpers<\n State,\n ActionHelpers,\n NavigationAction,\n EventMap\n >({\n id: options.id,\n onAction,\n getState,\n emitter,\n router,\n });\n\n useFocusedListenersChildrenAdapter({\n navigation,\n focusedListeners: childListeners.focus,\n });\n\n useOnGetState({\n getState,\n getStateListeners: keyedListeners.getState,\n });\n\n const descriptors = useDescriptors<\n State,\n ActionHelpers,\n ScreenOptions,\n EventMap\n >({\n state,\n screens,\n navigation,\n screenOptions: options.screenOptions,\n defaultScreenOptions: options.defaultScreenOptions,\n onAction,\n getState,\n setState,\n onRouteFocus,\n addListener,\n addKeyedListener,\n router,\n // @ts-expect-error: this should have both core and custom events, but too much work right now\n emitter,\n });\n\n useCurrentRender({\n state,\n navigation,\n descriptors,\n });\n\n const NavigationContent = useComponent(NavigationHelpersContext.Provider, {\n value: navigation,\n });\n\n return {\n state,\n navigation,\n descriptors,\n NavigationContent,\n };\n}\n","import { nanoid } from 'nanoid/non-secure';\nimport * as React from 'react';\n\nimport { SingleNavigatorContext } from './EnsureSingleNavigator';\n\n/**\n * Register a navigator in the parent context (either a navigation container or a screen).\n * This is used to prevent multiple navigators under a single container or screen.\n */\nexport default function useRegisterNavigator() {\n const [key] = React.useState(() => nanoid());\n const container = React.useContext(SingleNavigatorContext);\n\n if (container === undefined) {\n throw new Error(\n \"Couldn't register the navigator. Have you wrapped your app with 'NavigationContainer'?\\n\\nThis can also happen if there are multiple copies of '@react-navigation' packages installed.\"\n );\n }\n\n React.useEffect(() => {\n const { register, unregister } = container;\n\n register(key);\n\n return () => unregister(key);\n }, [container, key]);\n\n return key;\n}\n","/**\n * Compare two records with primitive values as the content.\n */\nexport default function isRecordEqual(\n a: Record,\n b: Record\n) {\n if (a === b) {\n return true;\n }\n\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n\n return aKeys.every((key) => a[key] === b[key]);\n}\n","import type { NavigationState } from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport NavigationContext from './NavigationContext';\nimport type { EventMapCore } from './types';\nimport type { NavigationEventEmitter } from './useEventEmitter';\n\ntype Options = {\n state: State;\n emitter: NavigationEventEmitter>;\n};\n\n/**\n * Hook to take care of emitting `focus` and `blur` events.\n */\nexport default function useFocusEvents({\n state,\n emitter,\n}: Options) {\n const navigation = React.useContext(NavigationContext);\n const lastFocusedKeyRef = React.useRef();\n\n const currentFocusedKey = state.routes[state.index].key;\n\n // When the parent screen changes its focus state, we also need to change child's focus\n // Coz the child screen can't be focused if the parent screen is out of focus\n React.useEffect(\n () =>\n navigation?.addListener('focus', () => {\n lastFocusedKeyRef.current = currentFocusedKey;\n emitter.emit({ type: 'focus', target: currentFocusedKey });\n }),\n [currentFocusedKey, emitter, navigation]\n );\n\n React.useEffect(\n () =>\n navigation?.addListener('blur', () => {\n lastFocusedKeyRef.current = undefined;\n emitter.emit({ type: 'blur', target: currentFocusedKey });\n }),\n [currentFocusedKey, emitter, navigation]\n );\n\n React.useEffect(() => {\n const lastFocusedKey = lastFocusedKeyRef.current;\n\n lastFocusedKeyRef.current = currentFocusedKey;\n\n // We wouldn't have `lastFocusedKey` on initial mount\n // Fire focus event for the current route on mount if there's no parent navigator\n if (lastFocusedKey === undefined && !navigation) {\n emitter.emit({ type: 'focus', target: currentFocusedKey });\n }\n\n // We should only emit events when the focused key changed and navigator is focused\n // When navigator is not focused, screens inside shouldn't receive focused status either\n if (\n lastFocusedKey === currentFocusedKey ||\n !(navigation ? navigation.isFocused() : true)\n ) {\n return;\n }\n\n if (lastFocusedKey === undefined) {\n // Only fire events after initial mount\n return;\n }\n\n emitter.emit({ type: 'blur', target: lastFocusedKey });\n emitter.emit({ type: 'focus', target: currentFocusedKey });\n }, [currentFocusedKey, emitter, navigation]);\n}\n","import type {\n NavigationAction,\n NavigationState,\n Router,\n} from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport NavigationBuilderContext from './NavigationBuilderContext';\n\ntype Options = {\n router: Router;\n getState: () => NavigationState;\n setState: (state: NavigationState) => void;\n key?: string;\n};\n\n/**\n * Hook to handle focus actions for a route.\n * Focus action needs to be treated specially, coz when a nested route is focused,\n * the parent navigators also needs to be focused.\n */\nexport default function useOnRouteFocus({\n router,\n getState,\n key: sourceRouteKey,\n setState,\n}: Options) {\n const { onRouteFocus: onRouteFocusParent } = React.useContext(\n NavigationBuilderContext\n );\n\n return React.useCallback(\n (key: string) => {\n const state = getState();\n const result = router.getStateForRouteFocus(state, key);\n\n if (result !== state) {\n setState(result);\n }\n\n if (onRouteFocusParent !== undefined && sourceRouteKey !== undefined) {\n onRouteFocusParent(sourceRouteKey);\n }\n },\n [getState, onRouteFocusParent, router, setState, sourceRouteKey]\n );\n}\n","import {\n CommonActions,\n NavigationAction,\n NavigationState,\n ParamListBase,\n Router,\n} from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport NavigationContext from './NavigationContext';\nimport { NavigationHelpers, PrivateValueStore } from './types';\nimport UnhandledActionContext from './UnhandledActionContext';\nimport type { NavigationEventEmitter } from './useEventEmitter';\n\n// This is to make TypeScript compiler happy\n// eslint-disable-next-line babel/no-unused-expressions\nPrivateValueStore;\n\ntype Options = {\n id: string | undefined;\n onAction: (action: NavigationAction) => boolean;\n getState: () => State;\n emitter: NavigationEventEmitter;\n router: Router;\n};\n\n/**\n * Navigation object with helper methods to be used by a navigator.\n * This object includes methods for common actions as well as methods the parent screen's navigation object.\n */\nexport default function useNavigationHelpers<\n State extends NavigationState,\n ActionHelpers extends Record void>,\n Action extends NavigationAction,\n EventMap extends Record\n>({\n id: navigatorId,\n onAction,\n getState,\n emitter,\n router,\n}: Options) {\n const onUnhandledAction = React.useContext(UnhandledActionContext);\n const parentNavigationHelpers = React.useContext(NavigationContext);\n\n return React.useMemo(() => {\n const dispatch = (op: Action | ((state: State) => Action)) => {\n const action = typeof op === 'function' ? op(getState()) : op;\n\n const handled = onAction(action);\n\n if (!handled) {\n onUnhandledAction?.(action);\n }\n };\n\n const actions = {\n ...router.actionCreators,\n ...CommonActions,\n };\n\n const helpers = Object.keys(actions).reduce((acc, name) => {\n // @ts-expect-error: name is a valid key, but TypeScript is dumb\n acc[name] = (...args: any) => dispatch(actions[name](...args));\n return acc;\n }, {} as ActionHelpers);\n\n const navigationHelpers = {\n ...parentNavigationHelpers,\n ...helpers,\n dispatch,\n emit: emitter.emit,\n isFocused: parentNavigationHelpers\n ? parentNavigationHelpers.isFocused\n : () => true,\n canGoBack: () => {\n const state = getState();\n\n return (\n router.getStateForAction(state, CommonActions.goBack() as Action, {\n routeNames: state.routeNames,\n routeParamList: {},\n routeGetIdList: {},\n }) !== null ||\n parentNavigationHelpers?.canGoBack() ||\n false\n );\n },\n getId: () => navigatorId,\n getParent: (id?: string) => {\n if (id !== undefined) {\n let current = navigationHelpers;\n\n while (current && id !== current.getId()) {\n current = current.getParent();\n }\n\n return current;\n }\n\n return parentNavigationHelpers;\n },\n getState,\n } as NavigationHelpers & ActionHelpers;\n\n return navigationHelpers;\n }, [\n navigatorId,\n emitter.emit,\n getState,\n onAction,\n onUnhandledAction,\n parentNavigationHelpers,\n router,\n ]);\n}\n","import type { ParamListBase } from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport NavigationBuilderContext, {\n FocusedNavigationCallback,\n FocusedNavigationListener,\n} from './NavigationBuilderContext';\nimport type { NavigationHelpers } from './types';\n\ntype Options = {\n navigation: NavigationHelpers;\n focusedListeners: FocusedNavigationListener[];\n};\n\n/**\n * Hook for passing focus callback to children\n */\nexport default function useFocusedListenersChildrenAdapter({\n navigation,\n focusedListeners,\n}: Options) {\n const { addListener } = React.useContext(NavigationBuilderContext);\n\n const listener = React.useCallback(\n (callback: FocusedNavigationCallback) => {\n if (navigation.isFocused()) {\n for (const listener of focusedListeners) {\n const { handled, result } = listener(callback);\n\n if (handled) {\n return { handled, result };\n }\n }\n\n return { handled: true, result: callback(navigation) };\n } else {\n return { handled: false, result: null };\n }\n },\n [focusedListeners, navigation]\n );\n\n React.useEffect(\n () => addListener?.('focus', listener),\n [addListener, listener]\n );\n}\n","import type { NavigationState } from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport isArrayEqual from './isArrayEqual';\nimport NavigationBuilderContext, {\n GetStateListener,\n} from './NavigationBuilderContext';\nimport NavigationRouteContext from './NavigationRouteContext';\n\ntype Options = {\n getState: () => NavigationState;\n getStateListeners: Record;\n};\n\nexport default function useOnGetState({\n getState,\n getStateListeners,\n}: Options) {\n const { addKeyedListener } = React.useContext(NavigationBuilderContext);\n const route = React.useContext(NavigationRouteContext);\n const key = route ? route.key : 'root';\n\n const getRehydratedState = React.useCallback(() => {\n const state = getState();\n\n // Avoid returning new route objects if we don't need to\n const routes = state.routes.map((route) => {\n const childState = getStateListeners[route.key]?.();\n\n if (route.state === childState) {\n return route;\n }\n\n return { ...route, state: childState };\n });\n\n if (isArrayEqual(state.routes, routes)) {\n return state;\n }\n\n return { ...state, routes };\n }, [getState, getStateListeners]);\n\n React.useEffect(() => {\n return addKeyedListener?.('getState', key, getRehydratedState);\n }, [addKeyedListener, getRehydratedState, key]);\n}\n","import type { NavigationState, ParamListBase } from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport CurrentRenderContext from './CurrentRenderContext';\nimport type {\n Descriptor,\n NavigationHelpers,\n NavigationProp,\n RouteProp,\n} from './types';\n\ntype Options = {\n state: NavigationState;\n navigation: NavigationHelpers;\n descriptors: Record<\n string,\n Descriptor, RouteProp>\n >;\n};\n\n/**\n * Write the current options, so that server renderer can get current values\n * Mutating values like this is not safe in async mode, but it doesn't apply to SSR\n */\nexport default function useCurrentRender({\n state,\n navigation,\n descriptors,\n}: Options) {\n const current = React.useContext(CurrentRenderContext);\n\n if (current && navigation.isFocused()) {\n current.options = descriptors[state.routes[state.index].key].options;\n }\n}\n","import * as React from 'react';\n\nexport default function useComponent<\n T extends React.ComponentType,\n P extends {}\n>(Component: T, props: P) {\n const propsRef = React.useRef

(props);\n\n // Normally refs shouldn't be mutated in render\n // But we return a component which will be rendered\n // So it's just for immediate consumption\n propsRef.current = props;\n\n React.useEffect(() => {\n propsRef.current = null;\n });\n\n return React.useRef((rest: Omit, keyof P>) => {\n const props = propsRef.current;\n\n if (props === null) {\n throw new Error(\n 'The returned component must be rendered in the same render phase as the hook.'\n );\n }\n\n // @ts-expect-error: the props should be fine here\n return ;\n }).current;\n}\n","import * as React from 'react';\n\nimport createNavigationContainerRef from './createNavigationContainerRef';\nimport type { NavigationContainerRefWithCurrent } from './types';\n\nexport default function useNavigationContainerRef<\n ParamList extends {} = ReactNavigation.RootParamList\n>(): NavigationContainerRefWithCurrent {\n const navigation =\n React.useRef | null>(null);\n\n if (navigation.current == null) {\n navigation.current = createNavigationContainerRef();\n }\n\n return navigation.current;\n}\n","import type { NavigationState, ParamListBase } from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport type { NavigationProp } from './types';\nimport useNavigation from './useNavigation';\n\ntype Selector = (\n state: NavigationState\n) => T;\n\n/**\n * Hook to get a value from the current navigation state using a selector.\n *\n * @param selector Selector function to get a value from the state.\n */\nexport default function useNavigationState(\n selector: Selector\n): T {\n const navigation = useNavigation>();\n\n // We don't care about the state value, we run the selector again at the end\n // The state is only to make sure that there's a re-render when we have a new value\n const [, setResult] = React.useState(() => selector(navigation.getState()));\n\n // We store the selector in a ref to avoid re-subscribing listeners every render\n const selectorRef = React.useRef(selector);\n\n React.useEffect(() => {\n selectorRef.current = selector;\n });\n\n React.useEffect(() => {\n const unsubscribe = navigation.addListener('state', (e) => {\n setResult(selectorRef.current(e.data.state));\n });\n\n return unsubscribe;\n }, [navigation]);\n\n return selector(navigation.getState());\n}\n","import type { ParamListBase } from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport NavigationRouteContext from './NavigationRouteContext';\nimport type { RouteProp } from './types';\n\n/**\n * Hook to access the route prop of the parent screen anywhere.\n *\n * @returns Route prop of the parent screen.\n */\nexport default function useRoute>(): T {\n const route = React.useContext(NavigationRouteContext);\n\n if (route === undefined) {\n throw new Error(\n \"Couldn't find a route object. Is your component inside a screen in a navigator?\"\n );\n }\n\n return route as T;\n}\n","import { nanoid } from 'nanoid/non-secure';\n\nimport type {\n CommonNavigationAction,\n NavigationState,\n PartialState,\n} from './types';\n\n/**\n * Base router object that can be used when writing custom routers.\n * This provides few helper methods to handle common actions such as `RESET`.\n */\nconst BaseRouter = {\n getStateForAction(\n state: State,\n action: CommonNavigationAction\n ): State | PartialState | null {\n switch (action.type) {\n case 'SET_PARAMS': {\n const index = action.source\n ? state.routes.findIndex((r) => r.key === action.source)\n : state.index;\n\n if (index === -1) {\n return null;\n }\n\n return {\n ...state,\n routes: state.routes.map((r, i) =>\n i === index\n ? { ...r, params: { ...r.params, ...action.payload.params } }\n : r\n ),\n };\n }\n\n case 'RESET': {\n const nextState = action.payload as State | PartialState;\n\n if (\n nextState.routes.length === 0 ||\n nextState.routes.some(\n (route: { name: string }) => !state.routeNames.includes(route.name)\n )\n ) {\n return null;\n }\n\n if (nextState.stale === false) {\n if (\n state.routeNames.length !== nextState.routeNames.length ||\n nextState.routeNames.some(\n (name) => !state.routeNames.includes(name)\n )\n ) {\n return null;\n }\n\n return {\n ...nextState,\n routes: nextState.routes.map((route) =>\n route.key ? route : { ...route, key: `${route.name}-${nanoid()}` }\n ),\n };\n }\n\n return nextState;\n }\n\n default:\n return null;\n }\n },\n\n shouldActionChangeFocus(action: CommonNavigationAction) {\n return action.type === 'NAVIGATE';\n },\n};\n\nexport default BaseRouter;\n","import { nanoid } from 'nanoid/non-secure';\n\nimport BaseRouter from './BaseRouter';\nimport type {\n CommonNavigationAction,\n DefaultRouterOptions,\n NavigationState,\n ParamListBase,\n PartialState,\n Route,\n Router,\n} from './types';\n\nexport type TabActionType = {\n type: 'JUMP_TO';\n payload: { name: string; params?: object };\n source?: string;\n target?: string;\n};\n\nexport type BackBehavior =\n | 'initialRoute'\n | 'firstRoute'\n | 'history'\n | 'order'\n | 'none';\n\nexport type TabRouterOptions = DefaultRouterOptions & {\n backBehavior?: BackBehavior;\n};\n\nexport type TabNavigationState = Omit<\n NavigationState,\n 'history'\n> & {\n /**\n * Type of the router, in this case, it's tab.\n */\n type: 'tab';\n /**\n * List of previously visited route keys.\n */\n history: { type: 'route'; key: string }[];\n};\n\nexport type TabActionHelpers = {\n /**\n * Jump to an existing tab.\n *\n * @param name Name of the route for the tab.\n * @param [params] Params object for the route.\n */\n jumpTo>(\n ...args: undefined extends ParamList[RouteName]\n ? [screen: RouteName] | [screen: RouteName, params: ParamList[RouteName]]\n : [screen: RouteName, params: ParamList[RouteName]]\n ): void;\n};\n\nconst TYPE_ROUTE = 'route' as const;\n\nexport const TabActions = {\n jumpTo(name: string, params?: object): TabActionType {\n return { type: 'JUMP_TO', payload: { name, params } };\n },\n};\n\nconst getRouteHistory = (\n routes: Route[],\n index: number,\n backBehavior: BackBehavior,\n initialRouteName: string | undefined\n) => {\n const history = [{ type: TYPE_ROUTE, key: routes[index].key }];\n let initialRouteIndex;\n\n switch (backBehavior) {\n case 'order':\n for (let i = index; i > 0; i--) {\n history.unshift({ type: TYPE_ROUTE, key: routes[i - 1].key });\n }\n break;\n case 'firstRoute':\n if (index !== 0) {\n history.unshift({\n type: TYPE_ROUTE,\n key: routes[0].key,\n });\n }\n break;\n case 'initialRoute':\n initialRouteIndex = routes.findIndex(\n (route) => route.name === initialRouteName\n );\n initialRouteIndex = initialRouteIndex === -1 ? 0 : initialRouteIndex;\n\n if (index !== initialRouteIndex) {\n history.unshift({\n type: TYPE_ROUTE,\n key: routes[initialRouteIndex].key,\n });\n }\n break;\n case 'history':\n // The history will fill up on navigation\n break;\n }\n\n return history;\n};\n\nconst changeIndex = (\n state: TabNavigationState,\n index: number,\n backBehavior: BackBehavior,\n initialRouteName: string | undefined\n) => {\n let history;\n\n if (backBehavior === 'history') {\n const currentKey = state.routes[index].key;\n\n history = state.history\n .filter((it) => (it.type === 'route' ? it.key !== currentKey : false))\n .concat({ type: TYPE_ROUTE, key: currentKey });\n } else {\n history = getRouteHistory(\n state.routes,\n index,\n backBehavior,\n initialRouteName\n );\n }\n\n return {\n ...state,\n index,\n history,\n };\n};\n\nexport default function TabRouter({\n initialRouteName,\n backBehavior = 'firstRoute',\n}: TabRouterOptions) {\n const router: Router<\n TabNavigationState,\n TabActionType | CommonNavigationAction\n > = {\n ...BaseRouter,\n\n type: 'tab',\n\n getInitialState({ routeNames, routeParamList }) {\n const index =\n initialRouteName !== undefined && routeNames.includes(initialRouteName)\n ? routeNames.indexOf(initialRouteName)\n : 0;\n\n const routes = routeNames.map((name) => ({\n name,\n key: `${name}-${nanoid()}`,\n params: routeParamList[name],\n }));\n\n const history = getRouteHistory(\n routes,\n index,\n backBehavior,\n initialRouteName\n );\n\n return {\n stale: false,\n type: 'tab',\n key: `tab-${nanoid()}`,\n index,\n routeNames,\n history,\n routes,\n };\n },\n\n getRehydratedState(partialState, { routeNames, routeParamList }) {\n let state = partialState;\n\n if (state.stale === false) {\n return state;\n }\n\n const routes = routeNames.map((name) => {\n const route = (\n state as PartialState>\n ).routes.find((r) => r.name === name);\n\n return {\n ...route,\n name,\n key:\n route && route.name === name && route.key\n ? route.key\n : `${name}-${nanoid()}`,\n params:\n routeParamList[name] !== undefined\n ? {\n ...routeParamList[name],\n ...(route ? route.params : undefined),\n }\n : route\n ? route.params\n : undefined,\n } as Route;\n });\n\n const index = Math.min(\n Math.max(routeNames.indexOf(state.routes[state?.index ?? 0]?.name), 0),\n routes.length - 1\n );\n\n const history =\n state.history?.filter((it) => routes.find((r) => r.key === it.key)) ??\n [];\n\n return changeIndex(\n {\n stale: false,\n type: 'tab',\n key: `tab-${nanoid()}`,\n index,\n routeNames,\n history,\n routes,\n },\n index,\n backBehavior,\n initialRouteName\n );\n },\n\n getStateForRouteNamesChange(\n state,\n { routeNames, routeParamList, routeKeyChanges }\n ) {\n const routes = routeNames.map(\n (name) =>\n state.routes.find(\n (r) => r.name === name && !routeKeyChanges.includes(r.name)\n ) || {\n name,\n key: `${name}-${nanoid()}`,\n params: routeParamList[name],\n }\n );\n\n const index = Math.max(\n 0,\n routeNames.indexOf(state.routes[state.index].name)\n );\n\n let history = state.history.filter(\n // Type will always be 'route' for tabs, but could be different in a router extending this (e.g. drawer)\n (it) => it.type !== 'route' || routes.find((r) => r.key === it.key)\n );\n\n if (!history.length) {\n history = getRouteHistory(\n routes,\n index,\n backBehavior,\n initialRouteName\n );\n }\n\n return {\n ...state,\n history,\n routeNames,\n routes,\n index,\n };\n },\n\n getStateForRouteFocus(state, key) {\n const index = state.routes.findIndex((r) => r.key === key);\n\n if (index === -1 || index === state.index) {\n return state;\n }\n\n return changeIndex(state, index, backBehavior, initialRouteName);\n },\n\n getStateForAction(state, action, { routeParamList }) {\n switch (action.type) {\n case 'JUMP_TO':\n case 'NAVIGATE': {\n let index = -1;\n\n if (action.type === 'NAVIGATE' && action.payload.key) {\n index = state.routes.findIndex(\n (route) => route.key === action.payload.key\n );\n } else {\n index = state.routes.findIndex(\n (route) => route.name === action.payload.name\n );\n }\n\n if (index === -1) {\n return null;\n }\n\n return changeIndex(\n {\n ...state,\n routes: state.routes.map((route, i) => {\n if (i !== index) {\n return route;\n }\n\n let params;\n\n if (action.type === 'NAVIGATE' && action.payload.merge) {\n params =\n action.payload.params !== undefined ||\n routeParamList[route.name] !== undefined\n ? {\n ...routeParamList[route.name],\n ...route.params,\n ...action.payload.params,\n }\n : route.params;\n } else {\n params =\n routeParamList[route.name] !== undefined\n ? {\n ...routeParamList[route.name],\n ...action.payload.params,\n }\n : action.payload.params;\n }\n\n const path =\n action.type === 'NAVIGATE' && action.payload.path != null\n ? action.payload.path\n : route.path;\n\n return params !== route.params || path !== route.path\n ? { ...route, path, params }\n : route;\n }),\n },\n index,\n backBehavior,\n initialRouteName\n );\n }\n\n case 'GO_BACK': {\n if (state.history.length === 1) {\n return null;\n }\n\n const previousKey = state.history[state.history.length - 2].key;\n const index = state.routes.findIndex(\n (route) => route.key === previousKey\n );\n\n if (index === -1) {\n return null;\n }\n\n return {\n ...state,\n history: state.history.slice(0, -1),\n index,\n };\n }\n\n default:\n return BaseRouter.getStateForAction(state, action);\n }\n },\n\n shouldActionChangeFocus(action) {\n return action.type === 'NAVIGATE';\n },\n\n actionCreators: TabActions,\n };\n\n return router;\n}\n","import { nanoid } from 'nanoid/non-secure';\n\nimport TabRouter, {\n TabActionHelpers,\n TabActions,\n TabActionType,\n TabNavigationState,\n TabRouterOptions,\n} from './TabRouter';\nimport type {\n CommonNavigationAction,\n ParamListBase,\n PartialState,\n Router,\n} from './types';\nexport type DrawerStatus = 'open' | 'closed';\n\nexport type DrawerActionType =\n | TabActionType\n | {\n type: 'OPEN_DRAWER' | 'CLOSE_DRAWER' | 'TOGGLE_DRAWER';\n source?: string;\n target?: string;\n };\n\nexport type DrawerRouterOptions = TabRouterOptions & {\n defaultStatus?: DrawerStatus;\n};\n\nexport type DrawerNavigationState = Omit<\n TabNavigationState,\n 'type' | 'history'\n> & {\n /**\n * Type of the router, in this case, it's drawer.\n */\n type: 'drawer';\n /**\n * Default status of the drawer.\n */\n default: DrawerStatus;\n /**\n * List of previously visited route keys and drawer open status.\n */\n history: (\n | { type: 'route'; key: string }\n | { type: 'drawer'; status: DrawerStatus }\n )[];\n};\n\nexport type DrawerActionHelpers =\n TabActionHelpers & {\n /**\n * Open the drawer sidebar.\n */\n openDrawer(): void;\n\n /**\n * Close the drawer sidebar.\n */\n closeDrawer(): void;\n\n /**\n * Open the drawer sidebar if closed, or close if opened.\n */\n toggleDrawer(): void;\n };\n\nexport const DrawerActions = {\n ...TabActions,\n openDrawer(): DrawerActionType {\n return { type: 'OPEN_DRAWER' };\n },\n closeDrawer(): DrawerActionType {\n return { type: 'CLOSE_DRAWER' };\n },\n toggleDrawer(): DrawerActionType {\n return { type: 'TOGGLE_DRAWER' };\n },\n};\n\nexport default function DrawerRouter({\n defaultStatus = 'closed',\n ...rest\n}: DrawerRouterOptions): Router<\n DrawerNavigationState,\n DrawerActionType | CommonNavigationAction\n> {\n const router = TabRouter(rest) as unknown as Router<\n DrawerNavigationState,\n TabActionType | CommonNavigationAction\n >;\n\n const isDrawerInHistory = (\n state:\n | DrawerNavigationState\n | PartialState>\n ) => Boolean(state.history?.some((it) => it.type === 'drawer'));\n\n const addDrawerToHistory = (\n state: DrawerNavigationState\n ): DrawerNavigationState => {\n if (isDrawerInHistory(state)) {\n return state;\n }\n\n return {\n ...state,\n history: [\n ...state.history,\n {\n type: 'drawer',\n status: defaultStatus === 'open' ? 'closed' : 'open',\n },\n ],\n };\n };\n\n const removeDrawerFromHistory = (\n state: DrawerNavigationState\n ): DrawerNavigationState => {\n if (!isDrawerInHistory(state)) {\n return state;\n }\n\n return {\n ...state,\n history: state.history.filter((it) => it.type !== 'drawer'),\n };\n };\n\n const openDrawer = (\n state: DrawerNavigationState\n ): DrawerNavigationState => {\n if (defaultStatus === 'open') {\n return removeDrawerFromHistory(state);\n }\n\n return addDrawerToHistory(state);\n };\n\n const closeDrawer = (\n state: DrawerNavigationState\n ): DrawerNavigationState => {\n if (defaultStatus === 'open') {\n return addDrawerToHistory(state);\n }\n\n return removeDrawerFromHistory(state);\n };\n\n return {\n ...router,\n\n type: 'drawer',\n\n getInitialState({ routeNames, routeParamList, routeGetIdList }) {\n const state = router.getInitialState({\n routeNames,\n routeParamList,\n routeGetIdList,\n });\n\n return {\n ...state,\n default: defaultStatus,\n stale: false,\n type: 'drawer',\n key: `drawer-${nanoid()}`,\n };\n },\n\n getRehydratedState(\n partialState,\n { routeNames, routeParamList, routeGetIdList }\n ) {\n if (partialState.stale === false) {\n return partialState;\n }\n\n let state = router.getRehydratedState(partialState, {\n routeNames,\n routeParamList,\n routeGetIdList,\n });\n\n if (isDrawerInHistory(partialState)) {\n // Re-sync the drawer entry in history to correct it if it was wrong\n state = removeDrawerFromHistory(state);\n state = addDrawerToHistory(state);\n }\n\n return {\n ...state,\n default: defaultStatus,\n type: 'drawer',\n key: `drawer-${nanoid()}`,\n };\n },\n\n getStateForRouteFocus(state, key) {\n const result = router.getStateForRouteFocus(state, key);\n\n return closeDrawer(result);\n },\n\n getStateForAction(state, action, options) {\n switch (action.type) {\n case 'OPEN_DRAWER':\n return openDrawer(state);\n\n case 'CLOSE_DRAWER':\n return closeDrawer(state);\n\n case 'TOGGLE_DRAWER':\n if (isDrawerInHistory(state)) {\n return removeDrawerFromHistory(state);\n }\n\n return addDrawerToHistory(state);\n\n case 'JUMP_TO':\n case 'NAVIGATE': {\n const result = router.getStateForAction(state, action, options);\n\n if (result != null && result.index !== state.index) {\n return closeDrawer(result as DrawerNavigationState);\n }\n\n return result;\n }\n\n case 'GO_BACK':\n if (isDrawerInHistory(state)) {\n return removeDrawerFromHistory(state);\n }\n\n return router.getStateForAction(state, action, options);\n\n default:\n return router.getStateForAction(state, action, options);\n }\n },\n\n actionCreators: DrawerActions,\n };\n}\n","import { nanoid } from 'nanoid/non-secure';\n\nimport BaseRouter from './BaseRouter';\nimport type {\n CommonNavigationAction,\n DefaultRouterOptions,\n NavigationState,\n ParamListBase,\n Route,\n Router,\n} from './types';\n\nexport type StackActionType =\n | {\n type: 'REPLACE';\n payload: { name: string; key?: string | undefined; params?: object };\n source?: string;\n target?: string;\n }\n | {\n type: 'PUSH';\n payload: { name: string; params?: object };\n source?: string;\n target?: string;\n }\n | {\n type: 'POP';\n payload: { count: number };\n source?: string;\n target?: string;\n }\n | {\n type: 'POP_TO_TOP';\n source?: string;\n target?: string;\n };\n\nexport type StackRouterOptions = DefaultRouterOptions;\n\nexport type StackNavigationState =\n NavigationState & {\n /**\n * Type of the router, in this case, it's stack.\n */\n type: 'stack';\n };\n\nexport type StackActionHelpers = {\n /**\n * Replace the current route with a new one.\n *\n * @param name Route name of the new route.\n * @param [params] Params object for the new route.\n */\n replace(\n ...args: undefined extends ParamList[RouteName]\n ? [screen: RouteName] | [screen: RouteName, params: ParamList[RouteName]]\n : [screen: RouteName, params: ParamList[RouteName]]\n ): void;\n\n /**\n * Push a new screen onto the stack.\n *\n * @param name Name of the route for the tab.\n * @param [params] Params object for the route.\n */\n push(\n ...args: undefined extends ParamList[RouteName]\n ? [screen: RouteName] | [screen: RouteName, params: ParamList[RouteName]]\n : [screen: RouteName, params: ParamList[RouteName]]\n ): void;\n\n /**\n * Pop a screen from the stack.\n */\n pop(count?: number): void;\n\n /**\n * Pop to the first route in the stack, dismissing all other screens.\n */\n popToTop(): void;\n};\n\nexport const StackActions = {\n replace(name: string, params?: object): StackActionType {\n return { type: 'REPLACE', payload: { name, params } };\n },\n push(name: string, params?: object): StackActionType {\n return { type: 'PUSH', payload: { name, params } };\n },\n pop(count: number = 1): StackActionType {\n return { type: 'POP', payload: { count } };\n },\n popToTop(): StackActionType {\n return { type: 'POP_TO_TOP' };\n },\n};\n\nexport default function StackRouter(options: StackRouterOptions) {\n const router: Router<\n StackNavigationState,\n CommonNavigationAction | StackActionType\n > = {\n ...BaseRouter,\n\n type: 'stack',\n\n getInitialState({ routeNames, routeParamList }) {\n const initialRouteName =\n options.initialRouteName !== undefined &&\n routeNames.includes(options.initialRouteName)\n ? options.initialRouteName\n : routeNames[0];\n\n return {\n stale: false,\n type: 'stack',\n key: `stack-${nanoid()}`,\n index: 0,\n routeNames,\n routes: [\n {\n key: `${initialRouteName}-${nanoid()}`,\n name: initialRouteName,\n params: routeParamList[initialRouteName],\n },\n ],\n };\n },\n\n getRehydratedState(partialState, { routeNames, routeParamList }) {\n let state = partialState;\n\n if (state.stale === false) {\n return state;\n }\n\n const routes = state.routes\n .filter((route) => routeNames.includes(route.name))\n .map(\n (route) =>\n ({\n ...route,\n key: route.key || `${route.name}-${nanoid()}`,\n params:\n routeParamList[route.name] !== undefined\n ? {\n ...routeParamList[route.name],\n ...route.params,\n }\n : route.params,\n } as Route)\n );\n\n if (routes.length === 0) {\n const initialRouteName =\n options.initialRouteName !== undefined\n ? options.initialRouteName\n : routeNames[0];\n\n routes.push({\n key: `${initialRouteName}-${nanoid()}`,\n name: initialRouteName,\n params: routeParamList[initialRouteName],\n });\n }\n\n return {\n stale: false,\n type: 'stack',\n key: `stack-${nanoid()}`,\n index: routes.length - 1,\n routeNames,\n routes,\n };\n },\n\n getStateForRouteNamesChange(\n state,\n { routeNames, routeParamList, routeKeyChanges }\n ) {\n const routes = state.routes.filter(\n (route) =>\n routeNames.includes(route.name) &&\n !routeKeyChanges.includes(route.name)\n );\n\n if (routes.length === 0) {\n const initialRouteName =\n options.initialRouteName !== undefined &&\n routeNames.includes(options.initialRouteName)\n ? options.initialRouteName\n : routeNames[0];\n\n routes.push({\n key: `${initialRouteName}-${nanoid()}`,\n name: initialRouteName,\n params: routeParamList[initialRouteName],\n });\n }\n\n return {\n ...state,\n routeNames,\n routes,\n index: Math.min(state.index, routes.length - 1),\n };\n },\n\n getStateForRouteFocus(state, key) {\n const index = state.routes.findIndex((r) => r.key === key);\n\n if (index === -1 || index === state.index) {\n return state;\n }\n\n return {\n ...state,\n index,\n routes: state.routes.slice(0, index + 1),\n };\n },\n\n getStateForAction(state, action, options) {\n const { routeParamList } = options;\n\n switch (action.type) {\n case 'REPLACE': {\n const index =\n action.target === state.key && action.source\n ? state.routes.findIndex((r) => r.key === action.source)\n : state.index;\n\n if (index === -1) {\n return null;\n }\n\n const { name, key, params } = action.payload;\n\n if (!state.routeNames.includes(name)) {\n return null;\n }\n\n return {\n ...state,\n routes: state.routes.map((route, i) =>\n i === index\n ? {\n key: key !== undefined ? key : `${name}-${nanoid()}`,\n name,\n params:\n routeParamList[name] !== undefined\n ? {\n ...routeParamList[name],\n ...params,\n }\n : params,\n }\n : route\n ),\n };\n }\n\n case 'PUSH':\n if (state.routeNames.includes(action.payload.name)) {\n const getId = options.routeGetIdList[action.payload.name];\n const id = getId?.({ params: action.payload.params });\n\n const route = id\n ? state.routes.find(\n (route) =>\n route.name === action.payload.name &&\n id === getId?.({ params: route.params })\n )\n : undefined;\n\n let routes: Route[];\n\n if (route) {\n routes = state.routes.filter((r) => r.key !== route.key);\n routes.push({\n ...route,\n params:\n routeParamList[action.payload.name] !== undefined\n ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params,\n }\n : action.payload.params,\n });\n } else {\n routes = [\n ...state.routes,\n {\n key: `${action.payload.name}-${nanoid()}`,\n name: action.payload.name,\n params:\n routeParamList[action.payload.name] !== undefined\n ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params,\n }\n : action.payload.params,\n },\n ];\n }\n\n return {\n ...state,\n index: routes.length - 1,\n routes,\n };\n }\n\n return null;\n\n case 'POP': {\n const index =\n action.target === state.key && action.source\n ? state.routes.findIndex((r) => r.key === action.source)\n : state.index;\n\n if (index > 0) {\n const count = Math.max(index - action.payload.count + 1, 1);\n const routes = state.routes\n .slice(0, count)\n .concat(state.routes.slice(index + 1));\n\n return {\n ...state,\n index: routes.length - 1,\n routes,\n };\n }\n\n return null;\n }\n\n case 'POP_TO_TOP':\n return router.getStateForAction(\n state,\n {\n type: 'POP',\n payload: { count: state.routes.length - 1 },\n },\n options\n );\n\n case 'NAVIGATE':\n if (\n action.payload.name !== undefined &&\n !state.routeNames.includes(action.payload.name)\n ) {\n return null;\n }\n\n if (action.payload.key || action.payload.name) {\n // If the route already exists, navigate to that\n let index = -1;\n\n const getId =\n // `getId` and `key` can't be used together\n action.payload.key === undefined &&\n action.payload.name !== undefined\n ? options.routeGetIdList[action.payload.name]\n : undefined;\n const id = getId?.({ params: action.payload.params });\n\n if (id) {\n index = state.routes.findIndex(\n (route) =>\n route.name === action.payload.name &&\n id === getId?.({ params: route.params })\n );\n } else if (\n (state.routes[state.index].name === action.payload.name &&\n action.payload.key === undefined) ||\n state.routes[state.index].key === action.payload.key\n ) {\n index = state.index;\n } else {\n for (let i = state.routes.length - 1; i >= 0; i--) {\n if (\n (state.routes[i].name === action.payload.name &&\n action.payload.key === undefined) ||\n state.routes[i].key === action.payload.key\n ) {\n index = i;\n break;\n }\n }\n }\n\n if (\n index === -1 &&\n action.payload.key &&\n action.payload.name === undefined\n ) {\n return null;\n }\n\n if (index === -1 && action.payload.name !== undefined) {\n const routes = [\n ...state.routes,\n {\n key:\n action.payload.key ?? `${action.payload.name}-${nanoid()}`,\n name: action.payload.name,\n path: action.payload.path,\n params:\n routeParamList[action.payload.name] !== undefined\n ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params,\n }\n : action.payload.params,\n },\n ];\n\n return {\n ...state,\n routes,\n index: routes.length - 1,\n };\n }\n\n const route = state.routes[index];\n\n let params;\n\n if (action.payload.merge) {\n params =\n action.payload.params !== undefined ||\n routeParamList[route.name] !== undefined\n ? {\n ...routeParamList[route.name],\n ...route.params,\n ...action.payload.params,\n }\n : route.params;\n } else {\n params =\n routeParamList[route.name] !== undefined\n ? {\n ...routeParamList[route.name],\n ...action.payload.params,\n }\n : action.payload.params;\n }\n\n return {\n ...state,\n index,\n routes: [\n ...state.routes.slice(0, index),\n params !== route.params ||\n (action.payload.path && action.payload.path !== route.path)\n ? {\n ...route,\n path: action.payload.path ?? route.path,\n params,\n }\n : state.routes[index],\n ],\n };\n }\n\n return null;\n\n case 'GO_BACK':\n if (state.index > 0) {\n return router.getStateForAction(\n state,\n {\n type: 'POP',\n payload: { count: 1 },\n target: action.target,\n source: action.source,\n },\n options\n );\n }\n\n return null;\n\n default:\n return BaseRouter.getStateForAction(state, action);\n }\n },\n\n actionCreators: StackActions,\n };\n\n return router;\n}\n","import * as React from 'react';\nimport {\n Dimensions,\n Platform,\n StyleProp,\n StyleSheet,\n View,\n ViewStyle,\n} from 'react-native';\nimport {\n initialWindowMetrics,\n SafeAreaInsetsContext,\n SafeAreaProvider,\n} from 'react-native-safe-area-context';\n\ntype Props = {\n children: React.ReactNode;\n style?: StyleProp;\n};\n\nconst { width = 0, height = 0 } = Dimensions.get('window');\n\n// To support SSR on web, we need to have empty insets for initial values\n// Otherwise there can be mismatch between SSR and client output\n// We also need to specify empty values to support tests environments\nconst initialMetrics =\n Platform.OS === 'web' || initialWindowMetrics == null\n ? {\n frame: { x: 0, y: 0, width, height },\n insets: { top: 0, left: 0, right: 0, bottom: 0 },\n }\n : initialWindowMetrics;\n\nexport default function SafeAreaProviderCompat({ children, style }: Props) {\n return (\n \n {(insets) => {\n if (insets) {\n // If we already have insets, don't wrap the stack in another safe area provider\n // This avoids an issue with updates at the cost of potentially incorrect values\n // https://github.com/react-navigation/react-navigation/issues/174\n return {children};\n }\n\n return (\n \n {children}\n \n );\n }}\n \n );\n}\n\nSafeAreaProviderCompat.initialMetrics = initialMetrics;\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n },\n});\n","import * as React from 'react';\n\nimport ThemeContext from './ThemeContext';\n\nexport default function useTheme() {\n const theme = React.useContext(ThemeContext);\n\n return theme;\n}\n","import { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport { View, ViewProps } from 'react-native';\n\ntype Props = ViewProps & {\n children: React.ReactNode;\n};\n\nexport default function Background({ style, ...rest }: Props) {\n const { colors } = useTheme();\n\n return (\n \n );\n}\n","import { Platform } from 'react-native';\n\nimport type { Layout } from '../types';\n\nexport default function getDefaultHeaderHeight(\n layout: Layout,\n modalPresentation: boolean,\n statusBarHeight: number\n): number {\n let headerHeight;\n\n const isLandscape = layout.width > layout.height;\n\n if (Platform.OS === 'ios') {\n if (Platform.isPad || Platform.isTVOS) {\n if (modalPresentation) {\n headerHeight = 56;\n } else {\n headerHeight = 50;\n }\n } else {\n if (isLandscape) {\n headerHeight = 32;\n } else {\n if (modalPresentation) {\n headerHeight = 56;\n } else {\n headerHeight = 44;\n }\n }\n }\n } else if (Platform.OS === 'android') {\n headerHeight = 56;\n } else {\n headerHeight = 64;\n }\n\n return headerHeight + statusBarHeight;\n}\n","import * as React from 'react';\n\nconst contexts = '__react_navigation__elements_contexts';\n\ndeclare global {\n var __react_navigation__elements_contexts: Map>;\n}\n\n// We use a global variable to keep our contexts so that we can reuse same contexts across packages\nglobal[contexts] = global[contexts] ?? new Map>();\n\nexport default function getNamedContext(\n name: string,\n initialValue: T\n): React.Context {\n let context = global[contexts].get(name);\n\n if (context) {\n return context;\n }\n\n context = React.createContext(initialValue);\n context.displayName = name;\n\n global[contexts].set(name, context);\n\n return context;\n}\n","import getNamedContext from '../getNamedContext';\n\nconst HeaderHeightContext = getNamedContext(\n 'HeaderHeightContext',\n undefined\n);\n\nexport default HeaderHeightContext;\n","import getNamedContext from '../getNamedContext';\n\nconst HeaderShownContext = getNamedContext('HeaderShownContext', false);\n\nexport default HeaderShownContext;\n","import {\n NavigationContext,\n NavigationProp,\n NavigationRouteContext,\n ParamListBase,\n RouteProp,\n} from '@react-navigation/native';\nimport * as React from 'react';\nimport { StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\nimport {\n useSafeAreaFrame,\n useSafeAreaInsets,\n} from 'react-native-safe-area-context';\n\nimport Background from './Background';\nimport getDefaultHeaderHeight from './Header/getDefaultHeaderHeight';\nimport HeaderHeightContext from './Header/HeaderHeightContext';\nimport HeaderShownContext from './Header/HeaderShownContext';\n\ntype Props = {\n focused: boolean;\n modal?: boolean;\n navigation: NavigationProp;\n route: RouteProp;\n header: React.ReactNode;\n headerShown?: boolean;\n headerStatusBarHeight?: number;\n headerTransparent?: boolean;\n style?: StyleProp;\n children: React.ReactNode;\n};\n\nexport default function Screen(props: Props) {\n const dimensions = useSafeAreaFrame();\n const insets = useSafeAreaInsets();\n\n const isParentHeaderShown = React.useContext(HeaderShownContext);\n const parentHeaderHeight = React.useContext(HeaderHeightContext);\n\n const {\n focused,\n modal = false,\n header,\n headerShown = true,\n headerTransparent,\n headerStatusBarHeight = isParentHeaderShown ? 0 : insets.top,\n navigation,\n route,\n children,\n style,\n } = props;\n\n const [headerHeight, setHeaderHeight] = React.useState(() =>\n getDefaultHeaderHeight(dimensions, modal, headerStatusBarHeight)\n );\n\n return (\n \n \n \n \n {children}\n \n \n \n {headerShown ? (\n \n \n {\n const { height } = e.nativeEvent.layout;\n\n setHeaderHeight(height);\n }}\n style={headerTransparent ? styles.absolute : null}\n >\n {header}\n \n \n \n ) : null}\n \n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n flexDirection: 'column-reverse',\n },\n // This is necessary to avoid applying 'column-reverse' to screen content\n content: {\n flex: 1,\n },\n absolute: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n },\n});\n","import type { HeaderOptions } from '../types';\n\nexport default function getHeaderTitle(\n options: { title?: string; headerTitle?: HeaderOptions['headerTitle'] },\n fallback: string\n): string {\n return typeof options.headerTitle === 'string'\n ? options.headerTitle\n : options.title !== undefined\n ? options.title\n : fallback;\n}\n","import { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport {\n Animated,\n Platform,\n StyleProp,\n StyleSheet,\n ViewProps,\n ViewStyle,\n} from 'react-native';\n\ntype Props = Omit & {\n style?: Animated.WithAnimatedValue>;\n children?: React.ReactNode;\n};\n\nexport default function HeaderBackground({ style, ...rest }: Props) {\n const { colors } = useTheme();\n\n return (\n \n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n ...Platform.select({\n android: {\n elevation: 4,\n },\n ios: {\n shadowOpacity: 0.85,\n shadowRadius: 0,\n shadowOffset: {\n width: 0,\n height: StyleSheet.hairlineWidth,\n },\n },\n default: {\n borderBottomWidth: StyleSheet.hairlineWidth,\n },\n }),\n },\n});\n","import { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport {\n Animated,\n Platform,\n StyleProp,\n StyleSheet,\n TextProps,\n TextStyle,\n} from 'react-native';\n\ntype Props = Omit & {\n tintColor?: string;\n children?: string;\n style?: Animated.WithAnimatedValue>;\n};\n\nexport default function HeaderTitle({ tintColor, style, ...rest }: Props) {\n const { colors } = useTheme();\n\n return (\n \n );\n}\n\nconst styles = StyleSheet.create({\n title: Platform.select({\n ios: {\n fontSize: 17,\n fontWeight: '600',\n },\n android: {\n fontSize: 20,\n fontFamily: 'sans-serif-medium',\n fontWeight: 'normal',\n },\n default: {\n fontSize: 18,\n fontWeight: '500',\n },\n }),\n});\n","import * as React from 'react';\nimport { Animated, Platform, StyleSheet, View, ViewStyle } from 'react-native';\nimport {\n useSafeAreaFrame,\n useSafeAreaInsets,\n} from 'react-native-safe-area-context';\n\nimport type { HeaderOptions, Layout } from '../types';\nimport getDefaultHeaderHeight from './getDefaultHeaderHeight';\nimport HeaderBackground from './HeaderBackground';\nimport HeaderShownContext from './HeaderShownContext';\nimport HeaderTitle from './HeaderTitle';\n\ntype Props = HeaderOptions & {\n /**\n * Whether the header is in a modal\n */\n modal?: boolean;\n /**\n * Layout of the screen.\n */\n layout?: Layout;\n /**\n * Title text for the header.\n */\n title: string;\n};\n\nconst warnIfHeaderStylesDefined = (styles: Record) => {\n Object.keys(styles).forEach((styleProp) => {\n const value = styles[styleProp];\n\n if (styleProp === 'position' && value === 'absolute') {\n console.warn(\n \"position: 'absolute' is not supported on headerStyle. If you would like to render content under the header, use the 'headerTransparent' option.\"\n );\n } else if (value !== undefined) {\n console.warn(\n `${styleProp} was given a value of ${value}, this has no effect on headerStyle.`\n );\n }\n });\n};\n\nexport default function Header(props: Props) {\n const insets = useSafeAreaInsets();\n const frame = useSafeAreaFrame();\n\n const isParentHeaderShown = React.useContext(HeaderShownContext);\n\n const {\n layout = frame,\n modal = false,\n title,\n headerTitle: customTitle,\n headerTitleAlign = Platform.select({\n ios: 'center',\n default: 'left',\n }),\n headerLeft,\n headerLeftLabelVisible,\n headerTransparent,\n headerTintColor,\n headerBackground,\n headerRight,\n headerTitleAllowFontScaling: titleAllowFontScaling,\n headerTitleStyle: titleStyle,\n headerLeftContainerStyle: leftContainerStyle,\n headerRightContainerStyle: rightContainerStyle,\n headerTitleContainerStyle: titleContainerStyle,\n headerBackgroundContainerStyle: backgroundContainerStyle,\n headerStyle: customHeaderStyle,\n headerShadowVisible,\n headerPressColor,\n headerPressOpacity,\n headerStatusBarHeight = isParentHeaderShown ? 0 : insets.top,\n } = props;\n\n const defaultHeight = getDefaultHeaderHeight(\n layout,\n modal,\n headerStatusBarHeight\n );\n\n const {\n height = defaultHeight,\n minHeight,\n maxHeight,\n backgroundColor,\n borderBottomColor,\n borderBottomEndRadius,\n borderBottomLeftRadius,\n borderBottomRightRadius,\n borderBottomStartRadius,\n borderBottomWidth,\n borderColor,\n borderEndColor,\n borderEndWidth,\n borderLeftColor,\n borderLeftWidth,\n borderRadius,\n borderRightColor,\n borderRightWidth,\n borderStartColor,\n borderStartWidth,\n borderStyle,\n borderTopColor,\n borderTopEndRadius,\n borderTopLeftRadius,\n borderTopRightRadius,\n borderTopStartRadius,\n borderTopWidth,\n borderWidth,\n // @ts-expect-error: web support for shadow\n boxShadow,\n elevation,\n shadowColor,\n shadowOffset,\n shadowOpacity,\n shadowRadius,\n opacity,\n transform,\n ...unsafeStyles\n } = StyleSheet.flatten(customHeaderStyle || {}) as ViewStyle;\n\n if (process.env.NODE_ENV !== 'production') {\n warnIfHeaderStylesDefined(unsafeStyles);\n }\n\n const safeStyles: ViewStyle = {\n backgroundColor,\n borderBottomColor,\n borderBottomEndRadius,\n borderBottomLeftRadius,\n borderBottomRightRadius,\n borderBottomStartRadius,\n borderBottomWidth,\n borderColor,\n borderEndColor,\n borderEndWidth,\n borderLeftColor,\n borderLeftWidth,\n borderRadius,\n borderRightColor,\n borderRightWidth,\n borderStartColor,\n borderStartWidth,\n borderStyle,\n borderTopColor,\n borderTopEndRadius,\n borderTopLeftRadius,\n borderTopRightRadius,\n borderTopStartRadius,\n borderTopWidth,\n borderWidth,\n // @ts-expect-error: boxShadow is only for Web\n boxShadow,\n elevation,\n shadowColor,\n shadowOffset,\n shadowOpacity,\n shadowRadius,\n opacity,\n transform,\n };\n\n // Setting a property to undefined triggers default style\n // So we need to filter them out\n // Users can use `null` instead\n for (const styleProp in safeStyles) {\n // @ts-expect-error: typescript wrongly complains that styleProp cannot be used to index safeStyles\n if (safeStyles[styleProp] === undefined) {\n // @ts-expect-error\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete safeStyles[styleProp];\n }\n }\n\n const backgroundStyle = [\n safeStyles,\n headerShadowVisible === false && {\n elevation: 0,\n shadowOpacity: 0,\n borderBottomWidth: 0,\n },\n ];\n\n const leftButton = headerLeft\n ? headerLeft({\n tintColor: headerTintColor,\n pressColor: headerPressColor,\n pressOpacity: headerPressOpacity,\n labelVisible: headerLeftLabelVisible,\n })\n : null;\n\n const rightButton = headerRight\n ? headerRight({\n tintColor: headerTintColor,\n pressColor: headerPressColor,\n pressOpacity: headerPressOpacity,\n })\n : null;\n\n const headerTitle =\n typeof customTitle !== 'function'\n ? (props: React.ComponentProps) => (\n \n )\n : customTitle;\n\n return (\n \n \n {headerBackground ? (\n headerBackground({ style: backgroundStyle })\n ) : headerTransparent ? null : (\n \n )}\n \n \n \n \n \n {leftButton}\n \n \n {headerTitle({\n children: title,\n allowFontScaling: titleAllowFontScaling,\n tintColor: headerTintColor,\n style: titleStyle,\n })}\n \n \n {rightButton}\n \n \n \n \n );\n}\n\nconst styles = StyleSheet.create({\n content: {\n flex: 1,\n flexDirection: 'row',\n alignItems: 'stretch',\n },\n title: {\n marginHorizontal: 16,\n justifyContent: 'center',\n },\n left: {\n justifyContent: 'center',\n alignItems: 'flex-start',\n },\n right: {\n justifyContent: 'center',\n alignItems: 'flex-end',\n },\n expand: {\n flexGrow: 1,\n flexBasis: 0,\n },\n});\n","/**\n * Use a stub for MaskedView on all Platforms that don't support it.\n */\nimport type * as React from 'react';\n\ntype Props = {\n maskElement: React.ReactElement;\n children: React.ReactElement;\n};\n\nexport default function MaskedView({ children }: Props) {\n return children;\n}\n","import { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport {\n Animated,\n Easing,\n GestureResponderEvent,\n Platform,\n Pressable,\n PressableProps,\n StyleProp,\n ViewStyle,\n} from 'react-native';\n\nexport type Props = Omit & {\n pressColor?: string;\n pressOpacity?: number;\n style?: Animated.WithAnimatedValue>;\n children: React.ReactNode;\n};\n\nconst AnimatedPressable = Animated.createAnimatedComponent(Pressable);\n\nconst ANDROID_VERSION_LOLLIPOP = 21;\nconst ANDROID_SUPPORTS_RIPPLE =\n Platform.OS === 'android' && Platform.Version >= ANDROID_VERSION_LOLLIPOP;\n\n/**\n * PlatformPressable provides an abstraction on top of Pressable to handle platform differences.\n */\nexport default function PlatformPressable({\n onPressIn,\n onPressOut,\n android_ripple,\n pressColor,\n pressOpacity = 0.3,\n style,\n ...rest\n}: Props) {\n const { dark } = useTheme();\n const [opacity] = React.useState(() => new Animated.Value(1));\n\n const animateTo = (toValue: number, duration: number) => {\n if (ANDROID_SUPPORTS_RIPPLE) {\n return;\n }\n\n Animated.timing(opacity, {\n toValue,\n duration,\n easing: Easing.inOut(Easing.quad),\n useNativeDriver: true,\n }).start();\n };\n\n const handlePressIn = (e: GestureResponderEvent) => {\n animateTo(pressOpacity, 0);\n onPressIn?.(e);\n };\n\n const handlePressOut = (e: GestureResponderEvent) => {\n animateTo(1, 200);\n onPressOut?.(e);\n };\n\n return (\n \n );\n}\n","import { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport {\n Animated,\n I18nManager,\n Image,\n LayoutChangeEvent,\n Platform,\n StyleSheet,\n View,\n} from 'react-native';\n\nimport MaskedView from '../MaskedView';\nimport PlatformPressable from '../PlatformPressable';\nimport type { HeaderBackButtonProps } from '../types';\n\nexport default function HeaderBackButton({\n disabled,\n allowFontScaling,\n backImage,\n label,\n labelStyle,\n labelVisible,\n onLabelLayout,\n onPress,\n pressColor,\n pressOpacity,\n screenLayout,\n tintColor: customTintColor,\n titleLayout,\n truncatedLabel = 'Back',\n accessibilityLabel = label && label !== 'Back' ? `${label}, back` : 'Go back',\n testID,\n style,\n}: HeaderBackButtonProps) {\n const { colors } = useTheme();\n\n const [initialLabelWidth, setInitialLabelWidth] = React.useState<\n undefined | number\n >(undefined);\n\n const tintColor =\n customTintColor !== undefined\n ? customTintColor\n : Platform.select({\n ios: colors.primary,\n default: colors.text,\n });\n\n const handleLabelLayout = (e: LayoutChangeEvent) => {\n onLabelLayout?.(e);\n\n setInitialLabelWidth(e.nativeEvent.layout.x + e.nativeEvent.layout.width);\n };\n\n const shouldTruncateLabel = () => {\n return (\n !label ||\n (initialLabelWidth &&\n titleLayout &&\n screenLayout &&\n (screenLayout.width - titleLayout.width) / 2 < initialLabelWidth + 26)\n );\n };\n\n const renderBackImage = () => {\n if (backImage) {\n return backImage({ tintColor });\n } else {\n return (\n \n );\n }\n };\n\n const renderLabel = () => {\n const leftLabelText = shouldTruncateLabel() ? truncatedLabel : label;\n\n if (!labelVisible || leftLabelText === undefined) {\n return null;\n }\n\n const labelElement = (\n \n \n {leftLabelText}\n \n \n );\n\n if (backImage || Platform.OS !== 'ios') {\n // When a custom backimage is specified, we can't mask the label\n // Otherwise there might be weird effect due to our mask not being the same as the image\n return labelElement;\n }\n\n return (\n \n \n \n \n }\n >\n {labelElement}\n \n );\n };\n\n const handlePress = () => onPress && requestAnimationFrame(onPress);\n\n return (\n \n \n {renderBackImage()}\n {renderLabel()}\n \n \n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n flexDirection: 'row',\n minWidth: StyleSheet.hairlineWidth, // Avoid collapsing when title is long\n ...Platform.select({\n ios: null,\n default: {\n marginVertical: 3,\n marginHorizontal: 11,\n },\n }),\n },\n disabled: {\n opacity: 0.5,\n },\n label: {\n fontSize: 17,\n // Title and back label are a bit different width due to title being bold\n // Adjusting the letterSpacing makes them coincide better\n letterSpacing: 0.35,\n },\n labelWrapper: {\n // These styles will make sure that the label doesn't fill the available space\n // Otherwise it messes with the measurement of the label\n flexDirection: 'row',\n alignItems: 'flex-start',\n },\n icon: Platform.select({\n ios: {\n height: 21,\n width: 13,\n marginLeft: 8,\n marginRight: 22,\n marginVertical: 12,\n resizeMode: 'contain',\n transform: [{ scaleX: I18nManager.isRTL ? -1 : 1 }],\n },\n default: {\n height: 24,\n width: 24,\n margin: 3,\n resizeMode: 'contain',\n transform: [{ scaleX: I18nManager.isRTL ? -1 : 1 }],\n },\n }),\n iconWithLabel:\n Platform.OS === 'ios'\n ? {\n marginRight: 6,\n }\n : {},\n iconMaskContainer: {\n flex: 1,\n flexDirection: 'row',\n justifyContent: 'center',\n },\n iconMaskFillerRect: {\n flex: 1,\n backgroundColor: '#000',\n },\n iconMask: {\n height: 21,\n width: 13,\n marginLeft: -14.5,\n marginVertical: 12,\n alignSelf: 'center',\n resizeMode: 'contain',\n transform: [{ scaleX: I18nManager.isRTL ? -1 : 1 }],\n },\n});\n","import {\n getHeaderTitle,\n Header,\n HeaderBackButton,\n SafeAreaProviderCompat,\n Screen,\n} from '@react-navigation/elements';\nimport type {\n ParamListBase,\n StackNavigationState,\n} from '@react-navigation/native';\nimport * as React from 'react';\nimport { Image, StyleSheet, View } from 'react-native';\n\nimport type {\n NativeStackDescriptorMap,\n NativeStackNavigationHelpers,\n} from '../types';\n\ntype Props = {\n state: StackNavigationState;\n // This is used for the native implementation of the stack.\n // eslint-disable-next-line react/no-unused-prop-types\n navigation: NativeStackNavigationHelpers;\n descriptors: NativeStackDescriptorMap;\n};\n\nconst TRANSPARENT_PRESENTATIONS = [\n 'transparentModal',\n 'containedTransparentModal',\n];\n\nexport default function NativeStackView({ state, descriptors }: Props) {\n return (\n \n \n {state.routes.map((route, i) => {\n const isFocused = state.index === i;\n const canGoBack = i !== 0;\n const previousKey = state.routes[i - 1]?.key;\n const nextKey = state.routes[i + 1]?.key;\n const previousDescriptor = previousKey\n ? descriptors[previousKey]\n : undefined;\n const nexDescriptor = nextKey ? descriptors[nextKey] : undefined;\n const { options, navigation, render } = descriptors[route.key];\n\n const {\n header,\n headerShown,\n headerTintColor,\n headerBackImageSource,\n headerLeft,\n headerRight,\n headerTitle,\n headerTitleAlign,\n headerTitleStyle,\n headerStyle,\n headerShadowVisible,\n headerTransparent,\n headerBackTitle,\n presentation,\n contentStyle,\n } = options;\n\n const nextPresentation = nexDescriptor?.options.presentation;\n\n return (\n \n headerLeft({\n tintColor,\n canGoBack,\n label: headerBackTitle,\n })\n : headerLeft === undefined && canGoBack\n ? ({ tintColor }) => (\n (\n \n )\n : undefined\n }\n onPress={navigation.goBack}\n canGoBack={canGoBack}\n />\n )\n : headerLeft\n }\n headerRight={\n typeof headerRight === 'function'\n ? ({ tintColor }) =>\n headerRight({ tintColor, canGoBack })\n : headerRight\n }\n headerTitle={\n typeof headerTitle === 'function'\n ? ({ children, tintColor }) =>\n headerTitle({ children, tintColor })\n : headerTitle\n }\n headerTitleAlign={headerTitleAlign}\n headerTitleStyle={headerTitleStyle}\n headerStyle={[\n headerTransparent\n ? {\n position: 'absolute',\n backgroundColor: 'transparent',\n }\n : null,\n headerStyle,\n headerShadowVisible === false\n ? { shadowOpacity: 0, borderBottomWidth: 0 }\n : null,\n ]}\n />\n )\n }\n style={[\n StyleSheet.absoluteFill,\n {\n display:\n isFocused ||\n (nextPresentation != null &&\n TRANSPARENT_PRESENTATIONS.includes(nextPresentation))\n ? 'flex'\n : 'none',\n },\n presentation != null &&\n TRANSPARENT_PRESENTATIONS.includes(presentation)\n ? { backgroundColor: 'transparent' }\n : null,\n ]}\n >\n \n {render()}\n \n \n );\n })}\n \n \n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n },\n contentContainer: {\n flex: 1,\n },\n backImage: {\n height: 24,\n width: 24,\n margin: 3,\n resizeMode: 'contain',\n },\n});\n","import {\n createNavigatorFactory,\n EventArg,\n ParamListBase,\n StackActionHelpers,\n StackActions,\n StackNavigationState,\n StackRouter,\n StackRouterOptions,\n useNavigationBuilder,\n} from '@react-navigation/native';\nimport * as React from 'react';\n\nimport type {\n NativeStackNavigationEventMap,\n NativeStackNavigationOptions,\n NativeStackNavigatorProps,\n} from '../types';\nimport NativeStackView from '../views/NativeStackView';\n\nfunction NativeStackNavigator({\n id,\n initialRouteName,\n children,\n screenListeners,\n screenOptions,\n ...rest\n}: NativeStackNavigatorProps) {\n const { state, descriptors, navigation, NavigationContent } =\n useNavigationBuilder<\n StackNavigationState,\n StackRouterOptions,\n StackActionHelpers,\n NativeStackNavigationOptions,\n NativeStackNavigationEventMap\n >(StackRouter, {\n id,\n initialRouteName,\n children,\n screenListeners,\n screenOptions,\n });\n\n React.useEffect(\n () =>\n // @ts-expect-error: there may not be a tab navigator in parent\n navigation?.addListener?.('tabPress', (e: any) => {\n const isFocused = navigation.isFocused();\n\n // Run the operation in the next frame so we're sure all listeners have been run\n // This is necessary to know if preventDefault() has been called\n requestAnimationFrame(() => {\n if (\n state.index > 0 &&\n isFocused &&\n !(e as EventArg<'tabPress', true>).defaultPrevented\n ) {\n // When user taps on already focused tab and we're inside the tab,\n // reset the stack to replicate native behaviour\n navigation.dispatch({\n ...StackActions.popToTop(),\n target: state.key,\n });\n }\n });\n }),\n [navigation, state.index, state.key]\n );\n\n return (\n \n \n \n );\n}\n\nexport default createNavigatorFactory<\n StackNavigationState,\n NativeStackNavigationOptions,\n NativeStackNavigationEventMap,\n typeof NativeStackNavigator\n>(NativeStackNavigator);\n","import type { ParamListBase } from '@react-navigation/core';\nimport * as React from 'react';\n\nimport type { LinkingOptions } from './types';\n\nconst LinkingContext = React.createContext<{\n options: LinkingOptions | undefined;\n}>({ options: undefined });\n\nLinkingContext.displayName = 'LinkingContext';\n\nexport default LinkingContext;\n","import * as React from 'react';\n\nimport type { Theme } from '../types';\nimport ThemeContext from './ThemeContext';\n\ntype Props = {\n value: Theme;\n children: React.ReactNode;\n};\n\nexport default function ThemeProvider({ value, children }: Props) {\n return (\n {children}\n );\n}\n","import * as React from 'react';\n\nexport type ServerContextType = {\n location?: {\n pathname: string;\n search: string;\n };\n};\n\nconst ServerContext = React.createContext(\n undefined\n);\n\nexport default ServerContext;\n","import {\n findFocusedRoute,\n getActionFromState as getActionFromStateDefault,\n getPathFromState as getPathFromStateDefault,\n getStateFromPath as getStateFromPathDefault,\n NavigationContainerRef,\n NavigationState,\n ParamListBase,\n} from '@react-navigation/core';\nimport isEqual from 'fast-deep-equal';\nimport { nanoid } from 'nanoid/non-secure';\nimport * as React from 'react';\n\nimport ServerContext from './ServerContext';\nimport type { LinkingOptions } from './types';\n\ntype ResultState = ReturnType;\n\ntype HistoryRecord = {\n // Unique identifier for this record to match it with window.history.state\n id: string;\n // Navigation state object for the history entry\n state: NavigationState;\n // Path of the history entry\n path: string;\n};\n\nconst createMemoryHistory = () => {\n let index = 0;\n let items: HistoryRecord[] = [];\n\n // Pending callbacks for `history.go(n)`\n // We might modify the callback stored if it was interrupted, so we have a ref to identify it\n const pending: { ref: unknown; cb: (interrupted?: boolean) => void }[] = [];\n\n const interrupt = () => {\n // If another history operation was performed we need to interrupt existing ones\n // This makes sure that calls such as `history.replace` after `history.go` don't happen\n // Since otherwise it won't be correct if something else has changed\n pending.forEach((it) => {\n const cb = it.cb;\n it.cb = () => cb(true);\n });\n };\n\n const history = {\n get index(): number {\n // We store an id in the state instead of an index\n // Index could get out of sync with in-memory values if page reloads\n const id = window.history.state?.id;\n\n if (id) {\n const index = items.findIndex((item) => item.id === id);\n\n return index > -1 ? index : 0;\n }\n\n return 0;\n },\n\n get(index: number) {\n return items[index];\n },\n\n backIndex({ path }: { path: string }) {\n // We need to find the index from the element before current to get closest path to go back to\n for (let i = index - 1; i >= 0; i--) {\n const item = items[i];\n\n if (item.path === path) {\n return i;\n }\n }\n\n return -1;\n },\n\n push({ path, state }: { path: string; state: NavigationState }) {\n interrupt();\n\n const id = nanoid();\n\n // When a new entry is pushed, all the existing entries after index will be inaccessible\n // So we remove any existing entries after the current index to clean them up\n items = items.slice(0, index + 1);\n\n items.push({ path, state, id });\n index = items.length - 1;\n\n // We pass empty string for title because it's ignored in all browsers except safari\n // We don't store state object in history.state because:\n // - browsers have limits on how big it can be, and we don't control the size\n // - while not recommended, there could be non-serializable data in state\n window.history.pushState({ id }, '', path);\n },\n\n replace({ path, state }: { path: string; state: NavigationState }) {\n interrupt();\n\n const id = window.history.state?.id ?? nanoid();\n\n if (!items.length || items.findIndex((item) => item.id === id) < 0) {\n // There are two scenarios for creating an array with only one history record:\n // - When loaded id not found in the items array, this function by default will replace\n // the first item. We need to keep only the new updated object, otherwise it will break\n // the page when navigating forward in history.\n // - This is the first time any state modifications are done\n // So we need to push the entry as there's nothing to replace\n items = [{ path, state, id }];\n index = 0;\n } else {\n items[index] = { path, state, id };\n }\n\n window.history.replaceState({ id }, '', path);\n },\n\n // `history.go(n)` is asynchronous, there are couple of things to keep in mind:\n // - it won't do anything if we can't go `n` steps, the `popstate` event won't fire.\n // - each `history.go(n)` call will trigger a separate `popstate` event with correct location.\n // - the `popstate` event fires before the next frame after calling `history.go(n)`.\n // This method differs from `history.go(n)` in the sense that it'll go back as many steps it can.\n go(n: number) {\n interrupt();\n\n if (n === 0) {\n return;\n }\n\n // We shouldn't go back more than the 0 index (otherwise we'll exit the page)\n // Or forward more than the available index (or the app will crash)\n index =\n n < 0 ? Math.max(index - n, 0) : Math.min(index + n, items.length - 1);\n\n // When we call `history.go`, `popstate` will fire when there's history to go back to\n // So we need to somehow handle following cases:\n // - There's history to go back, `history.go` is called, and `popstate` fires\n // - `history.go` is called multiple times, we need to resolve on respective `popstate`\n // - No history to go back, but `history.go` was called, browser has no API to detect it\n return new Promise((resolve, reject) => {\n const done = (interrupted?: boolean) => {\n clearTimeout(timer);\n\n if (interrupted) {\n reject(new Error('History was changed during navigation.'));\n return;\n }\n\n // There seems to be a bug in Chrome regarding updating the title\n // If we set a title just before calling `history.go`, the title gets lost\n // However the value of `document.title` is still what we set it to\n // It's just not displayed in the tab bar\n // To update the tab bar, we need to reset the title to something else first (e.g. '')\n // And set the title to what it was before so it gets applied\n // It won't work without setting it to empty string coz otherwise title isn't changing\n // Which means that the browser won't do anything after setting the title\n const { title } = window.document;\n\n window.document.title = '';\n window.document.title = title;\n\n resolve();\n };\n\n pending.push({ ref: done, cb: done });\n\n // If navigation didn't happen within 100ms, assume that it won't happen\n // This may not be accurate, but hopefully it won't take so much time\n // In Chrome, navigation seems to happen instantly in next microtask\n // But on Firefox, it seems to take much longer, around 50ms from our testing\n // We're using a hacky timeout since there doesn't seem to be way to know for sure\n const timer = setTimeout(() => {\n const index = pending.findIndex((it) => it.ref === done);\n\n if (index > -1) {\n pending[index].cb();\n pending.splice(index, 1);\n }\n }, 100);\n\n const onPopState = () => {\n const id = window.history.state?.id;\n const currentIndex = items.findIndex((item) => item.id === id);\n\n // Fix createMemoryHistory.index variable's value\n // as it may go out of sync when navigating in the browser.\n index = Math.max(currentIndex, 0);\n\n const last = pending.pop();\n\n window.removeEventListener('popstate', onPopState);\n last?.cb();\n };\n\n window.addEventListener('popstate', onPopState);\n window.history.go(n);\n });\n },\n\n // The `popstate` event is triggered when history changes, except `pushState` and `replaceState`\n // If we call `history.go(n)` ourselves, we don't want it to trigger the listener\n // Here we normalize it so that only external changes (e.g. user pressing back/forward) trigger the listener\n listen(listener: () => void) {\n const onPopState = () => {\n if (pending.length) {\n // This was triggered by `history.go(n)`, we shouldn't call the listener\n return;\n }\n\n listener();\n };\n\n window.addEventListener('popstate', onPopState);\n\n return () => window.removeEventListener('popstate', onPopState);\n },\n };\n\n return history;\n};\n\n/**\n * Find the matching navigation state that changed between 2 navigation states\n * e.g.: a -> b -> c -> d and a -> b -> c -> e -> f, if history in b changed, b is the matching state\n */\nconst findMatchingState = (\n a: T | undefined,\n b: T | undefined\n): [T | undefined, T | undefined] => {\n if (a === undefined || b === undefined || a.key !== b.key) {\n return [undefined, undefined];\n }\n\n // Tab and drawer will have `history` property, but stack will have history in `routes`\n const aHistoryLength = a.history ? a.history.length : a.routes.length;\n const bHistoryLength = b.history ? b.history.length : b.routes.length;\n\n const aRoute = a.routes[a.index];\n const bRoute = b.routes[b.index];\n\n const aChildState = aRoute.state as T | undefined;\n const bChildState = bRoute.state as T | undefined;\n\n // Stop here if this is the state object that changed:\n // - history length is different\n // - focused routes are different\n // - one of them doesn't have child state\n // - child state keys are different\n if (\n aHistoryLength !== bHistoryLength ||\n aRoute.key !== bRoute.key ||\n aChildState === undefined ||\n bChildState === undefined ||\n aChildState.key !== bChildState.key\n ) {\n return [a, b];\n }\n\n return findMatchingState(aChildState, bChildState);\n};\n\n/**\n * Run async function in series as it's called.\n */\nconst series = (cb: () => Promise) => {\n // Whether we're currently handling a callback\n let handling = false;\n let queue: (() => Promise)[] = [];\n\n const callback = async () => {\n try {\n if (handling) {\n // If we're currently handling a previous event, wait before handling this one\n // Add the callback to the beginning of the queue\n queue.unshift(callback);\n return;\n }\n\n handling = true;\n\n await cb();\n } finally {\n handling = false;\n\n if (queue.length) {\n // If we have queued items, handle the last one\n const last = queue.pop();\n\n last?.();\n }\n }\n };\n\n return callback;\n};\n\nlet linkingHandlers: Symbol[] = [];\n\ntype Options = LinkingOptions & {\n independent?: boolean;\n};\n\nexport default function useLinking(\n ref: React.RefObject>,\n {\n independent,\n enabled = true,\n config,\n getStateFromPath = getStateFromPathDefault,\n getPathFromState = getPathFromStateDefault,\n getActionFromState = getActionFromStateDefault,\n }: Options\n) {\n React.useEffect(() => {\n if (process.env.NODE_ENV === 'production') {\n return undefined;\n }\n\n if (independent) {\n return undefined;\n }\n\n if (enabled !== false && linkingHandlers.length) {\n console.error(\n [\n 'Looks like you have configured linking in multiple places. This is likely an error since deep links should only be handled in one place to avoid conflicts. Make sure that:',\n \"- You don't have multiple NavigationContainers in the app each with 'linking' enabled\",\n '- Only a single instance of the root component is rendered',\n ]\n .join('\\n')\n .trim()\n );\n }\n\n const handler = Symbol();\n\n if (enabled !== false) {\n linkingHandlers.push(handler);\n }\n\n return () => {\n const index = linkingHandlers.indexOf(handler);\n\n if (index > -1) {\n linkingHandlers.splice(index, 1);\n }\n };\n }, [enabled, independent]);\n\n const [history] = React.useState(createMemoryHistory);\n\n // We store these options in ref to avoid re-creating getInitialState and re-subscribing listeners\n // This lets user avoid wrapping the items in `React.useCallback` or `React.useMemo`\n // Not re-creating `getInitialState` is important coz it makes it easier for the user to use in an effect\n const enabledRef = React.useRef(enabled);\n const configRef = React.useRef(config);\n const getStateFromPathRef = React.useRef(getStateFromPath);\n const getPathFromStateRef = React.useRef(getPathFromState);\n const getActionFromStateRef = React.useRef(getActionFromState);\n\n React.useEffect(() => {\n enabledRef.current = enabled;\n configRef.current = config;\n getStateFromPathRef.current = getStateFromPath;\n getPathFromStateRef.current = getPathFromState;\n getActionFromStateRef.current = getActionFromState;\n });\n\n const server = React.useContext(ServerContext);\n\n const getInitialState = React.useCallback(() => {\n let value: ResultState | undefined;\n\n if (enabledRef.current) {\n const location =\n server?.location ??\n (typeof window !== 'undefined' ? window.location : undefined);\n\n const path = location ? location.pathname + location.search : undefined;\n\n if (path) {\n value = getStateFromPathRef.current(path, configRef.current);\n }\n }\n\n const thenable = {\n then(onfulfilled?: (state: ResultState | undefined) => void) {\n return Promise.resolve(onfulfilled ? onfulfilled(value) : value);\n },\n catch() {\n return thenable;\n },\n };\n\n return thenable as PromiseLike;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const previousIndexRef = React.useRef(undefined);\n const previousStateRef = React.useRef(undefined);\n const pendingPopStatePathRef = React.useRef(undefined);\n\n React.useEffect(() => {\n previousIndexRef.current = history.index;\n\n return history.listen(() => {\n const navigation = ref.current;\n\n if (!navigation || !enabled) {\n return;\n }\n\n const path = location.pathname + location.search;\n const index = history.index;\n\n const previousIndex = previousIndexRef.current ?? 0;\n\n previousIndexRef.current = index;\n pendingPopStatePathRef.current = path;\n\n // When browser back/forward is clicked, we first need to check if state object for this index exists\n // If it does we'll reset to that state object\n // Otherwise, we'll handle it like a regular deep link\n const record = history.get(index);\n\n if (record?.path === path && record?.state) {\n navigation.resetRoot(record.state);\n return;\n }\n\n const state = getStateFromPathRef.current(path, configRef.current);\n\n // We should only dispatch an action when going forward\n // Otherwise the action will likely add items to history, which would mess things up\n if (state) {\n // Make sure that the routes in the state exist in the root navigator\n // Otherwise there's an error in the linking configuration\n const rootState = navigation.getRootState();\n\n if (state.routes.some((r) => !rootState?.routeNames.includes(r.name))) {\n console.warn(\n \"The navigation state parsed from the URL contains routes not present in the root navigator. This usually means that the linking configuration doesn't match the navigation structure. See https://reactnavigation.org/docs/configuring-links for more details on how to specify a linking configuration.\"\n );\n return;\n }\n\n if (index > previousIndex) {\n const action = getActionFromStateRef.current(\n state,\n configRef.current\n );\n\n if (action !== undefined) {\n try {\n navigation.dispatch(action);\n } catch (e) {\n // Ignore any errors from deep linking.\n // This could happen in case of malformed links, navigation object not being initialized etc.\n console.warn(\n `An error occurred when trying to handle the link '${path}': ${\n typeof e === 'object' && e != null && 'message' in e\n ? // @ts-expect-error: we're already checking for this\n e.message\n : e\n }`\n );\n }\n } else {\n navigation.resetRoot(state);\n }\n } else {\n navigation.resetRoot(state);\n }\n } else {\n // if current path didn't return any state, we should revert to initial state\n navigation.resetRoot(state);\n }\n });\n }, [enabled, history, ref]);\n\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n\n const getPathForRoute = (\n route: ReturnType,\n state: NavigationState\n ): string => {\n // If the `route` object contains a `path`, use that path as long as `route.name` and `params` still match\n // This makes sure that we preserve the original URL for wildcard routes\n if (route?.path) {\n const stateForPath = getStateFromPathRef.current(\n route.path,\n configRef.current\n );\n\n if (stateForPath) {\n const focusedRoute = findFocusedRoute(stateForPath);\n\n if (\n focusedRoute &&\n focusedRoute.name === route.name &&\n isEqual(focusedRoute.params, route.params)\n ) {\n return route.path;\n }\n }\n }\n\n return getPathFromStateRef.current(state, configRef.current);\n };\n\n if (ref.current) {\n // We need to record the current metadata on the first render if they aren't set\n // This will allow the initial state to be in the history entry\n const state = ref.current.getRootState();\n\n if (state) {\n const route = findFocusedRoute(state);\n const path = getPathForRoute(route, state);\n\n if (previousStateRef.current === undefined) {\n previousStateRef.current = state;\n }\n\n history.replace({ path, state });\n }\n }\n\n const onStateChange = async () => {\n const navigation = ref.current;\n\n if (!navigation || !enabled) {\n return;\n }\n\n const previousState = previousStateRef.current;\n const state = navigation.getRootState();\n\n // root state may not available, for example when root navigators switch inside the container\n if (!state) {\n return;\n }\n\n const pendingPath = pendingPopStatePathRef.current;\n const route = findFocusedRoute(state);\n const path = getPathForRoute(route, state);\n\n previousStateRef.current = state;\n pendingPopStatePathRef.current = undefined;\n\n // To detect the kind of state change, we need to:\n // - Find the common focused navigation state in previous and current state\n // - If only the route keys changed, compare history/routes.length to check if we go back/forward/replace\n // - If no common focused navigation state found, it's a replace\n const [previousFocusedState, focusedState] = findMatchingState(\n previousState,\n state\n );\n\n if (\n previousFocusedState &&\n focusedState &&\n // We should only handle push/pop if path changed from what was in last `popstate`\n // Otherwise it's likely a change triggered by `popstate`\n path !== pendingPath\n ) {\n const historyDelta =\n (focusedState.history\n ? focusedState.history.length\n : focusedState.routes.length) -\n (previousFocusedState.history\n ? previousFocusedState.history.length\n : previousFocusedState.routes.length);\n\n if (historyDelta > 0) {\n // If history length is increased, we should pushState\n // Note that path might not actually change here, for example, drawer open should pushState\n history.push({ path, state });\n } else if (historyDelta < 0) {\n // If history length is decreased, i.e. entries were removed, we want to go back\n\n const nextIndex = history.backIndex({ path });\n const currentIndex = history.index;\n\n try {\n if (nextIndex !== -1 && nextIndex < currentIndex) {\n // An existing entry for this path exists and it's less than current index, go back to that\n await history.go(nextIndex - currentIndex);\n } else {\n // We couldn't find an existing entry to go back to, so we'll go back by the delta\n // This won't be correct if multiple routes were pushed in one go before\n // Usually this shouldn't happen and this is a fallback for that\n await history.go(historyDelta);\n }\n\n // Store the updated state as well as fix the path if incorrect\n history.replace({ path, state });\n } catch (e) {\n // The navigation was interrupted\n }\n } else {\n // If history length is unchanged, we want to replaceState\n history.replace({ path, state });\n }\n } else {\n // If no common navigation state was found, assume it's a replace\n // This would happen if the user did a reset/conditionally changed navigators\n history.replace({ path, state });\n }\n };\n\n // We debounce onStateChange coz we don't want multiple state changes to be handled at one time\n // This could happen since `history.go(n)` is asynchronous\n // If `pushState` or `replaceState` were called before `history.go(n)` completes, it'll mess stuff up\n return ref.current?.addListener('state', series(onStateChange));\n });\n\n return {\n getInitialState,\n };\n}\n","import {\n BaseNavigationContainer,\n getActionFromState,\n getPathFromState,\n getStateFromPath,\n NavigationContainerProps,\n NavigationContainerRef,\n ParamListBase,\n validatePathConfig,\n} from '@react-navigation/core';\nimport * as React from 'react';\n\nimport LinkingContext from './LinkingContext';\nimport DefaultTheme from './theming/DefaultTheme';\nimport ThemeProvider from './theming/ThemeProvider';\nimport type { DocumentTitleOptions, LinkingOptions, Theme } from './types';\nimport useBackButton from './useBackButton';\nimport useDocumentTitle from './useDocumentTitle';\nimport useLinking from './useLinking';\nimport useThenable from './useThenable';\n\ndeclare global {\n var REACT_NAVIGATION_DEVTOOLS: WeakMap<\n NavigationContainerRef,\n { readonly linking: LinkingOptions }\n >;\n}\n\nglobal.REACT_NAVIGATION_DEVTOOLS = new WeakMap();\n\ntype Props = NavigationContainerProps & {\n theme?: Theme;\n linking?: LinkingOptions;\n fallback?: React.ReactNode;\n documentTitle?: DocumentTitleOptions;\n onReady?: () => void;\n};\n\n/**\n * Container component which holds the navigation state designed for React Native apps.\n * This should be rendered at the root wrapping the whole app.\n *\n * @param props.initialState Initial state object for the navigation tree. When deep link handling is enabled, this will override deep links when specified. Make sure that you don't specify an `initialState` when there's a deep link (`Linking.getInitialURL()`).\n * @param props.onReady Callback which is called after the navigation tree mounts.\n * @param props.onStateChange Callback which is called with the latest navigation state when it changes.\n * @param props.theme Theme object for the navigators.\n * @param props.linking Options for deep linking. Deep link handling is enabled when this prop is provided, unless `linking.enabled` is `false`.\n * @param props.fallback Fallback component to render until we have finished getting initial state when linking is enabled. Defaults to `null`.\n * @param props.documentTitle Options to configure the document title on Web. Updating document title is handled by default unless `documentTitle.enabled` is `false`.\n * @param props.children Child elements to render the content.\n * @param props.ref Ref object which refers to the navigation object containing helper methods.\n */\nfunction NavigationContainerInner(\n {\n theme = DefaultTheme,\n linking,\n fallback = null,\n documentTitle,\n onReady,\n ...rest\n }: Props,\n ref?: React.Ref | null>\n) {\n const isLinkingEnabled = linking ? linking.enabled !== false : false;\n\n if (linking?.config) {\n validatePathConfig(linking.config);\n }\n\n const refContainer =\n React.useRef>(null);\n\n useBackButton(refContainer);\n useDocumentTitle(refContainer, documentTitle);\n\n const { getInitialState } = useLinking(refContainer, {\n independent: rest.independent,\n enabled: isLinkingEnabled,\n prefixes: [],\n ...linking,\n });\n\n // Add additional linking related info to the ref\n // This will be used by the devtools\n React.useEffect(() => {\n if (refContainer.current) {\n REACT_NAVIGATION_DEVTOOLS.set(refContainer.current, {\n get linking() {\n return {\n ...linking,\n enabled: isLinkingEnabled,\n prefixes: linking?.prefixes ?? [],\n getStateFromPath: linking?.getStateFromPath ?? getStateFromPath,\n getPathFromState: linking?.getPathFromState ?? getPathFromState,\n getActionFromState:\n linking?.getActionFromState ?? getActionFromState,\n };\n },\n });\n }\n });\n\n const [isResolved, initialState] = useThenable(getInitialState);\n\n React.useImperativeHandle(ref, () => refContainer.current);\n\n const linkingContext = React.useMemo(() => ({ options: linking }), [linking]);\n\n const isReady = rest.initialState != null || !isLinkingEnabled || isResolved;\n\n const onReadyRef = React.useRef(onReady);\n\n React.useEffect(() => {\n onReadyRef.current = onReady;\n });\n\n React.useEffect(() => {\n if (isReady) {\n onReadyRef.current?.();\n }\n }, [isReady]);\n\n if (!isReady) {\n // This is temporary until we have Suspense for data-fetching\n // Then the fallback will be handled by a parent `Suspense` component\n return fallback as React.ReactElement;\n }\n\n return (\n \n \n \n \n \n );\n}\n\nconst NavigationContainer = React.forwardRef(NavigationContainerInner) as <\n RootParamList extends {} = ReactNavigation.RootParamList\n>(\n props: Props & {\n ref?: React.Ref>;\n }\n) => React.ReactElement;\n\nexport default NavigationContainer;\n","import type {\n NavigationContainerRef,\n ParamListBase,\n} from '@react-navigation/core';\nimport * as React from 'react';\nimport { BackHandler } from 'react-native';\n\nexport default function useBackButton(\n ref: React.RefObject>\n) {\n React.useEffect(() => {\n const subscription = BackHandler.addEventListener(\n 'hardwareBackPress',\n () => {\n const navigation = ref.current;\n\n if (navigation == null) {\n return false;\n }\n\n if (navigation.canGoBack()) {\n navigation.goBack();\n\n return true;\n }\n\n return false;\n }\n );\n\n return () => subscription.remove();\n }, [ref]);\n}\n","import type {\n NavigationContainerRef,\n ParamListBase,\n} from '@react-navigation/core';\nimport * as React from 'react';\n\nimport type { DocumentTitleOptions } from './types';\n\n/**\n * Set the document title for the active screen\n */\nexport default function useDocumentTitle(\n ref: React.RefObject>,\n {\n enabled = true,\n formatter = (options, route) => options?.title ?? route?.name,\n }: DocumentTitleOptions = {}\n) {\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n\n const navigation = ref.current;\n\n if (navigation) {\n const title = formatter(\n navigation.getCurrentOptions(),\n navigation.getCurrentRoute()\n );\n\n document.title = title;\n }\n\n return navigation?.addListener('options', (e) => {\n const title = formatter(e.data.options, navigation?.getCurrentRoute());\n\n document.title = title;\n });\n });\n}\n","import * as React from 'react';\n\nexport default function useThenable(create: () => PromiseLike) {\n const [promise] = React.useState(create);\n\n let initialState: [boolean, T | undefined] = [false, undefined];\n\n // Check if our thenable is synchronous\n promise.then((result) => {\n initialState = [true, result];\n });\n\n const [state, setState] = React.useState(initialState);\n const [resolved] = state;\n\n React.useEffect(() => {\n let cancelled = false;\n\n const resolve = async () => {\n let result;\n\n try {\n result = await promise;\n } finally {\n if (!cancelled) {\n setState([true, result]);\n }\n }\n };\n\n if (!resolved) {\n resolve();\n }\n\n return () => {\n cancelled = true;\n };\n }, [promise, resolved]);\n\n return state;\n}\n","import type { Theme } from '../types';\n\nconst DarkTheme: Theme = {\n dark: true,\n colors: {\n primary: 'rgb(10, 132, 255)',\n background: 'rgb(1, 1, 1)',\n card: 'rgb(18, 18, 18)',\n text: 'rgb(229, 229, 231)',\n border: 'rgb(39, 39, 41)',\n notification: 'rgb(255, 69, 58)',\n },\n};\n\nexport default DarkTheme;\n","import type { Theme } from '../types';\n\nconst DefaultTheme: Theme = {\n dark: false,\n colors: {\n primary: 'rgb(0, 122, 255)',\n background: 'rgb(242, 242, 242)',\n card: 'rgb(255, 255, 255)',\n text: 'rgb(28, 28, 30)',\n border: 'rgb(216, 216, 216)',\n notification: 'rgb(255, 59, 48)',\n },\n};\n\nexport default DefaultTheme;\n","import * as React from 'react';\n\nimport type { Theme } from '../types';\nimport DefaultTheme from './DefaultTheme';\n\nconst ThemeContext = React.createContext(DefaultTheme);\n\nThemeContext.displayName = 'ThemeContext';\n\nexport default ThemeContext;\n","import * as SplashScreen from 'expo-splash-screen';\nimport React from 'react';\n\ntype Props = {\n autoHideSplash?: boolean;\n};\n\nexport default class AppLoading extends React.Component {\n static defaultProps = {\n autoHideSplash: true,\n };\n\n constructor(props: Props) {\n super(props);\n SplashScreen.preventAutoHideAsync();\n }\n\n componentWillUnmount() {\n if (this.props.autoHideSplash === false) {\n return;\n }\n // @ts-ignore\n if (global.__E2E__) {\n // Hide immediately in E2E tests\n SplashScreen.hideAsync();\n } else {\n setTimeout(SplashScreen.hideAsync, 200);\n }\n }\n\n render() {\n return null;\n }\n}\n","import React from 'react';\n\nimport { AppLoadingProps } from './AppLoading.types';\nimport NativeAppLoading from './AppLoadingNativeWrapper';\n\nclass AppLoading extends React.Component {\n _isMounted: boolean = false;\n\n componentDidMount() {\n this._isMounted = true;\n\n this.startLoadingAppResourcesAsync().catch((error) => {\n console.error(`AppLoading threw an unexpected error when loading:\\n${error}`);\n });\n }\n\n componentWillUnmount() {\n this._isMounted = false;\n }\n\n private async startLoadingAppResourcesAsync() {\n if (!('startAsync' in this.props)) {\n return;\n }\n\n if (!('onFinish' in this.props)) {\n throw new Error('AppLoading onFinish prop is required if startAsync is provided');\n }\n\n if (!('onError' in this.props)) {\n throw new Error('AppLoading onError prop is required if startAsync is provided');\n }\n\n try {\n await this.props.startAsync();\n } catch (e) {\n if (!this._isMounted) {\n return;\n }\n this.props.onError(e);\n } finally {\n if (!this._isMounted) {\n return;\n }\n // If we get to this point then we know that either there was no error, or the error was handled.\n this.props.onFinish();\n }\n }\n\n render() {\n return ;\n }\n}\n\nexport default AppLoading;\n","import AppLoading from './AppLoading';\n\nexport { AppLoadingProps } from './AppLoading.types';\n\nexport default AppLoading;\n","import {\n PermissionResponse,\n PermissionStatus,\n PermissionExpiration,\n PermissionHookOptions,\n} from 'expo-modules-core';\nimport { ViewProps } from 'react-native';\n\nexport enum CameraType {\n /**\n * @platforms ios, android, web\n */\n front = 'front',\n /**\n * @platforms ios, android, web\n */\n back = 'back',\n}\n\nexport enum FlashMode {\n /**\n * @platforms ios, android, web\n */\n on = 'on',\n /**\n * @platforms ios, android, web\n */\n off = 'off',\n /**\n * @platforms ios, android, web\n */\n auto = 'auto',\n /**\n * @platforms ios, android, web\n */\n torch = 'torch',\n}\n\nexport enum AutoFocus {\n /**\n * @platforms ios, android, web\n */\n on = 'on',\n /**\n * @platforms ios, android, web\n */\n off = 'off',\n /**\n * @platforms web\n */\n auto = 'auto',\n /**\n * @platforms web\n */\n singleShot = 'singleShot',\n}\n\nexport enum WhiteBalance {\n /**\n * @platforms ios, android, web\n */\n auto = 'auto',\n /**\n * @platforms ios, android\n */\n sunny = 'sunny',\n /**\n * @platforms ios, android\n */\n cloudy = 'cloudy',\n /**\n * @platforms ios, android\n */\n shadow = 'shadow',\n /**\n * @platforms ios, android\n */\n incandescent = 'incandescent',\n /**\n * @platforms ios, android\n */\n fluorescent = 'fluorescent',\n /**\n * @platforms web\n */\n continuous = 'continuous',\n /**\n * @platforms web\n */\n manual = 'manual',\n}\n\nexport enum ImageType {\n png = 'png',\n jpg = 'jpg',\n}\n\n/**\n * This option specifies what codec to use when recording a video.\n */\nexport enum VideoCodec {\n /**\n * @platforms ios\n */\n H264 = 'avc1',\n /**\n * @platforms ios\n */\n HEVC = 'hvc1',\n /**\n * @platforms ios\n */\n JPEG = 'jpeg',\n /**\n * @platforms ios\n */\n AppleProRes422 = 'apcn',\n /**\n * @platforms ios\n */\n AppleProRes4444 = 'ap4h',\n}\n\nexport type ImageParameters = {\n imageType: ImageType;\n quality: number | null;\n};\n\nexport type ImageSize = {\n width: number;\n height: number;\n};\n\nexport type WebCameraSettings = Partial<{\n autoFocus: string;\n flashMode: string;\n whiteBalance: string;\n exposureCompensation: number;\n colorTemperature: number;\n iso: number;\n brightness: number;\n contrast: number;\n saturation: number;\n sharpness: number;\n focusDistance: number;\n zoom: number;\n}>;\n\nexport type CapturedPicture = {\n width: number;\n height: number;\n uri: string;\n base64?: string;\n // note(bacon): The types are currently only defined for web.\n exif?: Partial;\n};\n\nexport type CameraPictureOptions = {\n quality?: number;\n base64?: boolean;\n exif?: boolean;\n onPictureSaved?: (picture: CameraCapturedPicture) => void;\n // TODO(Bacon): Is it possible to implement this in the browser?\n skipProcessing?: boolean;\n // Web-only\n scale?: number;\n imageType?: ImageType;\n isImageMirror?: boolean;\n // internal\n id?: number;\n fastMode?: boolean;\n};\n\nexport type CameraRecordingOptions = {\n maxDuration?: number;\n maxFileSize?: number;\n quality?: number | string;\n mute?: boolean;\n mirror?: boolean;\n // Android\n videoBitrate?: number;\n // iOS\n codec?: VideoCodec;\n};\n\nexport type CameraCapturedPicture = {\n width: number;\n height: number;\n uri: string;\n base64?: string;\n exif?: any;\n};\n\nexport type PictureSavedListener = (event: {\n nativeEvent: { data: CapturedPicture; id: number };\n}) => void;\n\nexport type CameraReadyListener = () => void;\n\nexport type MountErrorListener = (event: { nativeEvent: CameraMountError }) => void;\n\nexport type CameraMountError = { message: string };\n\ntype Point = {\n x: number;\n y: number;\n};\n\nexport type BarCodePoint = Point;\n\nexport type BarCodeScanningResult = {\n type: string;\n data: string;\n /** @platform web */\n cornerPoints?: BarCodePoint[];\n};\n\nexport type Face = {\n faceID: number;\n bounds: {\n origin: Point;\n size: {\n height: number;\n width: number;\n };\n };\n rollAngle: number;\n yawAngle: number;\n smilingProbability: number;\n leftEarPosition: Point;\n rightEarPosition: Point;\n leftEyePosition: Point;\n leftEyeOpenProbability: number;\n rightEyePosition: Point;\n rightEyeOpenProbability: number;\n leftCheekPosition: Point;\n rightCheekPosition: Point;\n mouthPosition: Point;\n leftMouthPosition: Point;\n rightMouthPosition: Point;\n noseBasePosition: Point;\n};\n\nexport type FaceDetectionResult = { faces: Face[] };\n\nexport type ConstantsType = {\n Type: typeof CameraType;\n FlashMode: typeof FlashMode;\n AutoFocus: typeof AutoFocus;\n WhiteBalance: typeof WhiteBalance;\n VideoQuality: any;\n VideoStabilization: any;\n VideoCodec: typeof VideoCodec;\n};\n\nexport type CameraProps = ViewProps & {\n type?: number | keyof typeof CameraType;\n flashMode?: number | keyof typeof FlashMode;\n whiteBalance?: number | keyof typeof WhiteBalance;\n autoFocus?: boolean | number | keyof typeof AutoFocus;\n zoom?: number;\n ratio?: string;\n focusDepth?: number;\n onCameraReady?: Function;\n useCamera2Api?: boolean;\n pictureSize?: string;\n videoStabilizationMode?: number;\n onMountError?: (event: CameraMountError) => void;\n barCodeScannerSettings?: object;\n onBarCodeScanned?: (scanningResult: BarCodeScanningResult) => void;\n faceDetectorSettings?: object;\n onFacesDetected?: (faces: FaceDetectionResult) => void;\n poster?: string;\n};\n\nexport type CameraNativeProps = {\n pointerEvents?: any;\n style?: any;\n ref?: Function;\n onCameraReady?: CameraReadyListener;\n onMountError?: MountErrorListener;\n onBarCodeScanned?: (event: { nativeEvent: BarCodeScanningResult }) => void;\n onFacesDetected?: (event: { nativeEvent: FaceDetectionResult }) => void;\n onFaceDetectionError?: (event: { nativeEvent: Error }) => void;\n onPictureSaved?: PictureSavedListener;\n type?: number | string;\n flashMode?: number | string;\n autoFocus?: string | boolean | number;\n focusDepth?: number;\n zoom?: number;\n whiteBalance?: number | string;\n pictureSize?: string;\n barCodeScannerSettings?: BarCodeSettings;\n faceDetectorSettings?: object;\n barCodeScannerEnabled?: boolean;\n faceDetectorEnabled?: boolean;\n // Android\n ratio?: string;\n useCamera2Api?: boolean;\n // Web\n poster?: string;\n};\n\nexport type BarCodeSettings = {\n barCodeTypes: string[];\n interval?: number;\n};\n\nexport { PermissionResponse, PermissionStatus, PermissionExpiration, PermissionHookOptions };\n","/* eslint-env browser */\n/**\n * A web-only module for ponyfilling the UserMedia API.\n */\nimport { Platform } from 'expo-modules-core';\n\nexport const userMediaRequested: boolean = false;\n\nexport const mountedInstances: any[] = [];\n\nasync function requestLegacyUserMediaAsync(props): Promise {\n const optionalSource = (id) => ({ optional: [{ sourceId: id }] });\n\n const constraintToSourceId = (constraint) => {\n const { deviceId } = constraint;\n\n if (typeof deviceId === 'string') {\n return deviceId;\n }\n\n if (Array.isArray(deviceId) && deviceId.length > 0) {\n return deviceId[0];\n }\n\n if (typeof deviceId === 'object' && deviceId.ideal) {\n return deviceId.ideal;\n }\n\n return null;\n };\n\n const sources: any[] = await new Promise((resolve) =>\n // @ts-ignore: https://caniuse.com/#search=getSources Chrome for Android (78) & Samsung Internet (10.1) use this\n MediaStreamTrack.getSources((sources) => resolve(sources))\n );\n\n let audioSource = null;\n let videoSource = null;\n\n sources.forEach((source) => {\n if (source.kind === 'audio') {\n audioSource = source.id;\n } else if (source.kind === 'video') {\n videoSource = source.id;\n }\n });\n\n const audioSourceId = constraintToSourceId(props.audioConstraints);\n if (audioSourceId) {\n audioSource = audioSourceId;\n }\n\n const videoSourceId = constraintToSourceId(props.videoConstraints);\n if (videoSourceId) {\n videoSource = videoSourceId;\n }\n\n return [optionalSource(audioSource), optionalSource(videoSource)];\n}\n\nasync function sourceSelectedAsync(\n isMuted: boolean,\n audioConstraints?: MediaTrackConstraints | boolean,\n videoConstraints?: MediaTrackConstraints | boolean\n): Promise {\n const constraints: MediaStreamConstraints = {\n video: typeof videoConstraints !== 'undefined' ? videoConstraints : true,\n };\n\n if (!isMuted) {\n constraints.audio = typeof audioConstraints !== 'undefined' ? audioConstraints : true;\n }\n\n return await getAnyUserMediaAsync(constraints);\n}\n\nexport async function requestUserMediaAsync(\n props: { audio?: any; video?: any },\n isMuted: boolean = true\n): Promise {\n if (canGetUserMedia()) {\n return await sourceSelectedAsync(isMuted, props.audio, props.video);\n }\n const [audio, video] = await requestLegacyUserMediaAsync(props);\n return await sourceSelectedAsync(isMuted, audio, video);\n}\n\nexport async function getAnyUserMediaAsync(\n constraints: MediaStreamConstraints,\n ignoreConstraints: boolean = false\n): Promise {\n try {\n return await getUserMediaAsync({\n ...constraints,\n video: ignoreConstraints || constraints.video,\n });\n } catch (error) {\n if (!ignoreConstraints && error.name === 'ConstraintNotSatisfiedError') {\n return await getAnyUserMediaAsync(constraints, true);\n }\n throw error;\n }\n}\n\nexport async function getUserMediaAsync(constraints: MediaStreamConstraints): Promise {\n if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {\n return navigator.mediaDevices.getUserMedia(constraints);\n }\n\n const _getUserMedia =\n navigator['mozGetUserMedia'] || navigator['webkitGetUserMedia'] || navigator['msGetUserMedia'];\n return new Promise((resolve, reject) =>\n _getUserMedia.call(navigator, constraints, resolve, reject)\n );\n}\n\nexport function canGetUserMedia(): boolean {\n return (\n // SSR\n Platform.isDOMAvailable &&\n // Has any form of media API\n !!(\n (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) ||\n navigator['mozGetUserMedia'] ||\n navigator['webkitGetUserMedia'] ||\n navigator['msGetUserMedia']\n )\n );\n}\n\nexport async function isFrontCameraAvailableAsync(\n devices?: MediaDeviceInfo[]\n): Promise {\n return await supportsCameraType(['front', 'user', 'facetime'], 'user', devices);\n}\n\nexport async function isBackCameraAvailableAsync(\n devices?: MediaDeviceInfo[]\n): Promise {\n return await supportsCameraType(['back', 'rear'], 'environment', devices);\n}\n\nasync function supportsCameraType(\n labels: string[],\n type: string,\n devices?: MediaDeviceInfo[]\n): Promise {\n if (!devices) {\n if (!navigator.mediaDevices.enumerateDevices) {\n return null;\n }\n devices = await navigator.mediaDevices.enumerateDevices();\n }\n const cameras = devices.filter((t) => t.kind === 'videoinput');\n const [hasCamera] = cameras.filter((camera) =>\n labels.some((label) => camera.label.toLowerCase().includes(label))\n );\n const [isCapable] = cameras.filter((camera) => {\n if (!('getCapabilities' in camera)) {\n return null;\n }\n\n const capabilities = (camera as any).getCapabilities();\n if (!capabilities.facingMode) {\n return null;\n }\n\n return capabilities.facingMode.find((_: string) => type);\n });\n\n return isCapable?.deviceId || hasCamera?.deviceId || null;\n}\n","import { UnavailabilityError } from 'expo-modules-core';\n\nimport {\n CameraCapturedPicture,\n CameraPictureOptions,\n CameraType,\n PermissionResponse,\n PermissionStatus,\n} from './Camera.types';\nimport { ExponentCameraRef } from './ExponentCamera.web';\nimport {\n canGetUserMedia,\n isBackCameraAvailableAsync,\n isFrontCameraAvailableAsync,\n} from './WebUserMediaManager';\n\nfunction getUserMedia(constraints: MediaStreamConstraints): Promise {\n if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {\n return navigator.mediaDevices.getUserMedia(constraints);\n }\n\n // Some browsers partially implement mediaDevices. We can't just assign an object\n // with getUserMedia as it would overwrite existing properties.\n // Here, we will just add the getUserMedia property if it's missing.\n\n // First get ahold of the legacy getUserMedia, if present\n const getUserMedia =\n // TODO: this method is deprecated, migrate to https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia\n navigator.getUserMedia ||\n navigator.webkitGetUserMedia ||\n navigator.mozGetUserMedia ||\n function () {\n const error: any = new Error('Permission unimplemented');\n error.code = 0;\n error.name = 'NotAllowedError';\n throw error;\n };\n\n return new Promise((resolve, reject) => {\n getUserMedia.call(navigator, constraints, resolve, reject);\n });\n}\n\nfunction handleGetUserMediaError({ message }: { message: string }): PermissionResponse {\n // name: NotAllowedError\n // code: 0\n if (message === 'Permission dismissed') {\n return {\n status: PermissionStatus.UNDETERMINED,\n expires: 'never',\n canAskAgain: true,\n granted: false,\n };\n } else {\n // TODO: Bacon: [OSX] The system could deny access to chrome.\n // TODO: Bacon: add: { status: 'unimplemented' }\n return {\n status: PermissionStatus.DENIED,\n expires: 'never',\n canAskAgain: true,\n granted: false,\n };\n }\n}\n\nasync function handleRequestPermissionsAsync(): Promise {\n try {\n await getUserMedia({\n video: true,\n });\n return {\n status: PermissionStatus.GRANTED,\n expires: 'never',\n canAskAgain: true,\n granted: true,\n };\n } catch ({ message }) {\n return handleGetUserMediaError({ message });\n }\n}\n\nasync function handlePermissionsQueryAsync(\n query: 'camera' | 'microphone'\n): Promise {\n if (!navigator?.permissions?.query) {\n throw new UnavailabilityError('expo-camera', 'navigator.permissions API is not available');\n }\n\n const { state } = await navigator.permissions.query({ name: query });\n switch (state) {\n case 'prompt':\n return {\n status: PermissionStatus.UNDETERMINED,\n expires: 'never',\n canAskAgain: true,\n granted: false,\n };\n case 'granted':\n return {\n status: PermissionStatus.GRANTED,\n expires: 'never',\n canAskAgain: true,\n granted: true,\n };\n case 'denied':\n return {\n status: PermissionStatus.DENIED,\n expires: 'never',\n canAskAgain: true,\n granted: false,\n };\n }\n}\n\nexport default {\n get name(): string {\n return 'ExponentCameraManager';\n },\n get Type() {\n return {\n back: 'back',\n front: 'front',\n };\n },\n get FlashMode() {\n return {\n on: 'on',\n off: 'off',\n auto: 'auto',\n torch: 'torch',\n };\n },\n get AutoFocus() {\n return {\n on: 'on',\n off: 'off',\n auto: 'auto',\n singleShot: 'singleShot',\n };\n },\n get WhiteBalance() {\n return {\n auto: 'auto',\n continuous: 'continuous',\n manual: 'manual',\n };\n },\n get VideoQuality() {\n return {};\n },\n get VideoStabilization() {\n return {};\n },\n async isAvailableAsync(): Promise {\n return canGetUserMedia();\n },\n async takePicture(\n options: CameraPictureOptions,\n camera: ExponentCameraRef\n ): Promise {\n return await camera.takePicture(options);\n },\n async pausePreview(camera: ExponentCameraRef): Promise {\n await camera.pausePreview();\n },\n async resumePreview(camera: ExponentCameraRef): Promise {\n return await camera.resumePreview();\n },\n async getAvailableCameraTypesAsync(): Promise {\n if (!canGetUserMedia() || !navigator.mediaDevices.enumerateDevices) return [];\n\n const devices = await navigator.mediaDevices.enumerateDevices();\n\n const types: (string | null)[] = await Promise.all([\n (await isFrontCameraAvailableAsync(devices)) && CameraType.front,\n (await isBackCameraAvailableAsync()) && CameraType.back,\n ]);\n\n return types.filter(Boolean) as string[];\n },\n async getAvailablePictureSizes(ratio: string, camera: ExponentCameraRef): Promise {\n return await camera.getAvailablePictureSizes(ratio);\n },\n /* async getSupportedRatios(camera: ExponentCameraRef): Promise {\n // TODO: Support on web\n },\n async record(\n options?: CameraRecordingOptions,\n camera: ExponentCameraRef\n ): Promise<{ uri: string }> {\n // TODO: Support on web\n },\n async stopRecording(camera: ExponentCameraRef): Promise {\n // TODO: Support on web\n }, */\n async getPermissionsAsync(): Promise {\n return handlePermissionsQueryAsync('camera');\n },\n async requestPermissionsAsync(): Promise {\n return handleRequestPermissionsAsync();\n },\n async getCameraPermissionsAsync(): Promise {\n return handlePermissionsQueryAsync('camera');\n },\n async requestCameraPermissionsAsync(): Promise {\n return handleRequestPermissionsAsync();\n },\n async getMicrophonePermissionsAsync(): Promise {\n return handlePermissionsQueryAsync('microphone');\n },\n async requestMicrophonePermissionsAsync(): Promise {\n try {\n await getUserMedia({\n audio: true,\n });\n return {\n status: PermissionStatus.GRANTED,\n expires: 'never',\n canAskAgain: true,\n granted: true,\n };\n } catch ({ message }) {\n return handleGetUserMediaError({ message });\n }\n },\n};\n","/*\n * Native web camera (Android) has a torch: boolean\n */\nexport function convertFlashModeJSONToNative(input: string): boolean {\n switch (input) {\n case 'torch':\n return true;\n case 'on':\n case 'off':\n case 'auto':\n default:\n return false;\n }\n}\n\nexport function convertWhiteBalanceJSONToNative(input: string): MeteringMode | undefined {\n switch (input) {\n case 'on':\n case 'auto':\n return 'continuous';\n case 'off':\n return 'none';\n case 'singleShot':\n return 'single-shot';\n default:\n return undefined;\n }\n}\n\nexport function convertAutoFocusJSONToNative(input: string): MeteringMode | undefined {\n switch (input) {\n case 'on':\n case 'auto':\n return 'continuous';\n case 'off':\n return 'manual';\n case 'singleShot':\n return 'single-shot';\n default:\n return undefined;\n }\n}\n","import { CameraType, ImageType } from './Camera.types';\n\n// https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints/aspectRatio\nexport const VIDEO_ASPECT_RATIOS = {\n '3840x2160': 3840 / 2160,\n '1920x1080': 1920 / 1080,\n '1280x720': 1280 / 720,\n '640x480': 640 / 480,\n '352x288': 352 / 288,\n};\n\nexport const PictureSizes = Object.keys(VIDEO_ASPECT_RATIOS);\n\nexport const ImageTypeFormat = {\n [ImageType.jpg]: 'image/jpeg',\n [ImageType.png]: 'image/png',\n};\n\nexport const MinimumConstraints: MediaStreamConstraints = {\n audio: false,\n video: true,\n};\n\nexport const CameraTypeToFacingMode = {\n [CameraType.front]: 'user',\n [CameraType.back]: 'environment',\n};\n\nexport const FacingModeToCameraType = {\n user: CameraType.front,\n environment: CameraType.back,\n};\n","/* eslint-env browser */\nimport invariant from 'invariant';\n\nimport {\n CameraType,\n CapturedPicture,\n ImageSize,\n ImageType,\n WebCameraSettings,\n CameraPictureOptions,\n} from './Camera.types';\nimport * as CapabilityUtils from './WebCapabilityUtils';\nimport { CameraTypeToFacingMode, ImageTypeFormat, MinimumConstraints } from './WebConstants';\nimport { requestUserMediaAsync } from './WebUserMediaManager';\n\ninterface ConstrainLongRange {\n max?: number;\n min?: number;\n exact?: number;\n ideal?: number;\n}\n\nexport function getImageSize(videoWidth: number, videoHeight: number, scale: number): ImageSize {\n const width = videoWidth * scale;\n const ratio = videoWidth / width;\n const height = videoHeight / ratio;\n\n return {\n width,\n height,\n };\n}\n\nexport function toDataURL(\n canvas: HTMLCanvasElement,\n imageType: ImageType,\n quality: number\n): string {\n invariant(\n Object.values(ImageType).includes(imageType),\n `expo-camera: ${imageType} is not a valid ImageType. Expected a string from: ${Object.values(\n ImageType\n ).join(', ')}`\n );\n\n const format = ImageTypeFormat[imageType];\n if (imageType === ImageType.jpg) {\n invariant(\n quality <= 1 && quality >= 0,\n `expo-camera: ${quality} is not a valid image quality. Expected a number from 0...1`\n );\n return canvas.toDataURL(format, quality);\n } else {\n return canvas.toDataURL(format);\n }\n}\n\nexport function hasValidConstraints(\n preferredCameraType?: CameraType,\n width?: number | ConstrainLongRange,\n height?: number | ConstrainLongRange\n): boolean {\n return preferredCameraType !== undefined && width !== undefined && height !== undefined;\n}\n\nfunction ensureCameraPictureOptions(config: CameraPictureOptions): CameraPictureOptions {\n const captureOptions = {\n scale: 1,\n imageType: ImageType.png,\n isImageMirror: false,\n };\n\n for (const key in config) {\n if (key in config && config[key] !== undefined && key in captureOptions) {\n captureOptions[key] = config[key];\n }\n }\n return captureOptions;\n}\n\nconst DEFAULT_QUALITY = 0.92;\n\nexport function captureImageData(\n video: HTMLVideoElement | null,\n pictureOptions: Pick = {}\n): ImageData | null {\n if (!video || video.readyState !== video.HAVE_ENOUGH_DATA) {\n return null;\n }\n const canvas = captureImageContext(video, pictureOptions);\n\n const context = canvas.getContext('2d', { alpha: false });\n if (!context || !canvas.width || !canvas.height) {\n return null;\n }\n\n const imageData = context.getImageData(0, 0, canvas.width, canvas.height);\n return imageData;\n}\n\nexport function captureImageContext(\n video: HTMLVideoElement,\n { scale = 1, isImageMirror = false }: Pick\n): HTMLCanvasElement {\n const { videoWidth, videoHeight } = video;\n const { width, height } = getImageSize(videoWidth, videoHeight, scale!);\n\n // Build the canvas size and draw the camera image to the context from video\n const canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n const context = canvas.getContext('2d', { alpha: false });\n\n if (!context) {\n // Should never be called\n throw new Error('Context is not defined');\n }\n // sharp image details\n // context.imageSmoothingEnabled = false;\n\n // Flip horizontally (as css transform: rotateY(180deg))\n if (isImageMirror) {\n context.setTransform(-1, 0, 0, 1, canvas.width, 0);\n }\n\n context.drawImage(video, 0, 0, width, height);\n\n return canvas;\n}\n\nexport function captureImage(\n video: HTMLVideoElement,\n pictureOptions: CameraPictureOptions\n): string {\n const config = ensureCameraPictureOptions(pictureOptions);\n const canvas = captureImageContext(video, config);\n const { imageType, quality = DEFAULT_QUALITY } = config;\n return toDataURL(canvas, imageType!, quality);\n}\n\nfunction getSupportedConstraints(): MediaTrackSupportedConstraints | null {\n if (navigator.mediaDevices && navigator.mediaDevices.getSupportedConstraints) {\n return navigator.mediaDevices.getSupportedConstraints();\n }\n return null;\n}\n\nexport function getIdealConstraints(\n preferredCameraType: CameraType,\n width?: number | ConstrainLongRange,\n height?: number | ConstrainLongRange\n): MediaStreamConstraints {\n const preferredConstraints: MediaStreamConstraints = {\n audio: false,\n video: {},\n };\n\n if (hasValidConstraints(preferredCameraType, width, height)) {\n return MinimumConstraints;\n }\n\n const supports = getSupportedConstraints();\n // TODO(Bacon): Test this\n if (!supports || !supports.facingMode || !supports.width || !supports.height) {\n return MinimumConstraints;\n }\n\n if (preferredCameraType && Object.values(CameraType).includes(preferredCameraType)) {\n const facingMode = CameraTypeToFacingMode[preferredCameraType];\n if (isWebKit()) {\n const key = facingMode === 'user' ? 'exact' : 'ideal';\n (preferredConstraints.video as MediaTrackConstraints).facingMode = {\n [key]: facingMode,\n };\n } else {\n (preferredConstraints.video as MediaTrackConstraints).facingMode = {\n ideal: CameraTypeToFacingMode[preferredCameraType],\n };\n }\n }\n\n if (isMediaTrackConstraints(preferredConstraints.video)) {\n preferredConstraints.video.width = width;\n preferredConstraints.video.height = height;\n }\n\n return preferredConstraints;\n}\n\nfunction isMediaTrackConstraints(input: any): input is MediaTrackConstraints {\n return input && typeof input.video !== 'boolean';\n}\n\n/**\n * Invoke getStreamDevice a second time with the opposing camera type if the preferred type cannot be retrieved.\n *\n * @param preferredCameraType\n * @param preferredWidth\n * @param preferredHeight\n */\nexport async function getPreferredStreamDevice(\n preferredCameraType: CameraType,\n preferredWidth?: number | ConstrainLongRange,\n preferredHeight?: number | ConstrainLongRange\n): Promise {\n try {\n return await getStreamDevice(preferredCameraType, preferredWidth, preferredHeight);\n } catch (error) {\n // A hack on desktop browsers to ensure any camera is used.\n // eslint-disable-next-line no-undef\n if (error instanceof OverconstrainedError && error.constraint === 'facingMode') {\n const nextCameraType =\n preferredCameraType === CameraType.back ? CameraType.front : CameraType.back;\n return await getStreamDevice(nextCameraType, preferredWidth, preferredHeight);\n }\n throw error;\n }\n}\n\nexport async function getStreamDevice(\n preferredCameraType: CameraType,\n preferredWidth?: number | ConstrainLongRange,\n preferredHeight?: number | ConstrainLongRange\n): Promise {\n const constraints: MediaStreamConstraints = getIdealConstraints(\n preferredCameraType,\n preferredWidth,\n preferredHeight\n );\n const stream: MediaStream = await requestUserMediaAsync(constraints);\n return stream;\n}\n\nexport function isWebKit(): boolean {\n return /WebKit/.test(navigator.userAgent) && !/Edg/.test(navigator.userAgent);\n}\n\nexport function compareStreams(a: MediaStream | null, b: MediaStream | null): boolean {\n if (!a || !b) {\n return false;\n }\n const settingsA = a.getTracks()[0].getSettings();\n const settingsB = b.getTracks()[0].getSettings();\n return settingsA.deviceId === settingsB.deviceId;\n}\n\nexport function capture(\n video: HTMLVideoElement,\n settings: MediaTrackSettings,\n config: CameraPictureOptions\n): CapturedPicture {\n const base64 = captureImage(video, config);\n\n const capturedPicture: CapturedPicture = {\n uri: base64,\n base64,\n width: 0,\n height: 0,\n };\n\n if (settings) {\n const { width = 0, height = 0 } = settings;\n capturedPicture.width = width;\n capturedPicture.height = height;\n capturedPicture.exif = settings;\n }\n\n if (config.onPictureSaved) {\n config.onPictureSaved(capturedPicture);\n }\n return capturedPicture;\n}\n\nexport async function syncTrackCapabilities(\n cameraType: CameraType,\n stream: MediaStream | null,\n settings: WebCameraSettings = {}\n): Promise {\n if (stream?.getVideoTracks) {\n await Promise.all(\n stream.getVideoTracks().map((track) => onCapabilitiesReady(cameraType, track, settings))\n );\n }\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints\nasync function onCapabilitiesReady(\n cameraType: CameraType,\n track: MediaStreamTrack,\n settings: WebCameraSettings = {}\n): Promise {\n const capabilities = track.getCapabilities();\n\n // Create an empty object because if you set a constraint that isn't available an error will be thrown.\n const constraints: MediaTrackConstraintSet = {};\n\n // TODO(Bacon): Add `pointsOfInterest` support\n const clampedValues = [\n 'exposureCompensation',\n 'colorTemperature',\n 'iso',\n 'brightness',\n 'contrast',\n 'saturation',\n 'sharpness',\n 'focusDistance',\n 'zoom',\n ];\n\n for (const property of clampedValues) {\n if (capabilities[property]) {\n constraints[property] = convertNormalizedSetting(capabilities[property], settings[property]);\n }\n }\n\n function validatedInternalConstrainedValue(\n constraintKey: string,\n settingsKey: string,\n converter: (settingValue: any) => IConvertedType\n ) {\n const convertedSetting = converter(settings[settingsKey]);\n return validatedConstrainedValue({\n constraintKey,\n settingsKey,\n convertedSetting,\n capabilities,\n settings,\n cameraType,\n });\n }\n\n if (capabilities.focusMode && settings.autoFocus !== undefined) {\n constraints.focusMode = validatedInternalConstrainedValue(\n 'focusMode',\n 'autoFocus',\n CapabilityUtils.convertAutoFocusJSONToNative\n );\n }\n\n if (capabilities.torch && settings.flashMode !== undefined) {\n constraints.torch = validatedInternalConstrainedValue(\n 'torch',\n 'flashMode',\n CapabilityUtils.convertFlashModeJSONToNative\n );\n }\n\n if (capabilities.whiteBalanceMode && settings.whiteBalance !== undefined) {\n constraints.whiteBalanceMode = validatedInternalConstrainedValue<\n MediaTrackConstraintSet['whiteBalanceMode']\n >('whiteBalanceMode', 'whiteBalance', CapabilityUtils.convertWhiteBalanceJSONToNative);\n }\n\n try {\n await track.applyConstraints({ advanced: [constraints] });\n } catch (error) {\n if (__DEV__) console.warn('Failed to apply constraints', error);\n }\n}\n\nexport function stopMediaStream(stream: MediaStream | null) {\n if (!stream) {\n return;\n }\n if (stream.getAudioTracks) {\n stream.getAudioTracks().forEach((track) => track.stop());\n }\n if (stream.getVideoTracks) {\n stream.getVideoTracks().forEach((track) => track.stop());\n }\n if (isMediaStreamTrack(stream)) {\n stream.stop();\n }\n}\n\nexport function setVideoSource(\n video: HTMLVideoElement,\n stream: MediaStream | MediaSource | Blob | null\n): void {\n const createObjectURL = window.URL.createObjectURL ?? window.webkitURL.createObjectURL;\n\n if (typeof video.srcObject !== 'undefined') {\n video.srcObject = stream;\n } else if (typeof (video as any).mozSrcObject !== 'undefined') {\n (video as any).mozSrcObject = stream;\n } else if (stream && createObjectURL) {\n video.src = createObjectURL(stream);\n }\n\n if (!stream) {\n const revokeObjectURL = window.URL.revokeObjectURL ?? window.webkitURL.revokeObjectURL;\n const source = video.src ?? video.srcObject ?? (video as any).mozSrcObject;\n if (revokeObjectURL && typeof source === 'string') {\n revokeObjectURL(source);\n }\n }\n}\n\nexport function isCapabilityAvailable(video: HTMLVideoElement, keyName: string): boolean {\n const stream = video.srcObject;\n\n if (stream instanceof MediaStream) {\n const videoTrack = stream.getVideoTracks()[0];\n return videoTrack.getCapabilities?.()?.[keyName];\n }\n\n return false;\n}\n\nfunction isMediaStreamTrack(input: any): input is MediaStreamTrack {\n return typeof input.stop === 'function';\n}\n\nfunction convertNormalizedSetting(range: MediaSettingsRange, value?: number): number | undefined {\n if (!value) {\n return;\n }\n // convert the normalized incoming setting to the native camera zoom range\n const converted = convertRange(value, [range.min, range.max]);\n // clamp value so we don't get an error\n return Math.min(range.max, Math.max(range.min, converted));\n}\n\nfunction convertRange(value: number, r2: number[], r1: number[] = [0, 1]): number {\n return ((value - r1[0]) * (r2[1] - r2[0])) / (r1[1] - r1[0]) + r2[0];\n}\n\nfunction validatedConstrainedValue(props: {\n constraintKey: string;\n settingsKey: string;\n convertedSetting: T;\n capabilities: MediaTrackCapabilities;\n settings: WebCameraSettings;\n cameraType: string;\n}): T | undefined {\n const { constraintKey, settingsKey, convertedSetting, capabilities, settings, cameraType } =\n props;\n const setting = settings[settingsKey];\n if (\n Array.isArray(capabilities[constraintKey]) &&\n convertedSetting &&\n !capabilities[constraintKey].includes(convertedSetting)\n ) {\n if (__DEV__) {\n // Only warn in dev mode.\n console.warn(\n ` { ${settingsKey}: \"${setting}\" } (converted to \"${convertedSetting}\" in the browser) is not supported for camera type \"${cameraType}\" in your browser. Using the default value instead.`\n );\n }\n return undefined;\n }\n return convertedSetting;\n}\n","/* eslint-env browser */\nimport * as React from 'react';\n\nimport {\n CameraReadyListener,\n CameraType,\n MountErrorListener,\n WebCameraSettings,\n} from './Camera.types';\nimport * as Utils from './WebCameraUtils';\nimport { FacingModeToCameraType } from './WebConstants';\n\nconst VALID_SETTINGS_KEYS = [\n 'autoFocus',\n 'flashMode',\n 'exposureCompensation',\n 'colorTemperature',\n 'iso',\n 'brightness',\n 'contrast',\n 'saturation',\n 'sharpness',\n 'focusDistance',\n 'whiteBalance',\n 'zoom',\n];\n\nfunction useLoadedVideo(video: HTMLVideoElement | null, onLoaded: () => void) {\n React.useEffect(() => {\n if (video) {\n video.addEventListener('loadedmetadata', () => {\n // without this async block the constraints aren't properly applied to the camera,\n // this means that if you were to turn on the torch and swap to the front camera,\n // then swap back to the rear camera the torch setting wouldn't be applied.\n requestAnimationFrame(() => {\n onLoaded();\n });\n });\n }\n }, [video]);\n}\n\nexport function useWebCameraStream(\n video: React.MutableRefObject,\n preferredType: CameraType,\n settings: Record,\n {\n onCameraReady,\n onMountError,\n }: { onCameraReady?: CameraReadyListener; onMountError?: MountErrorListener }\n): {\n type: CameraType | null;\n mediaTrackSettings: MediaTrackSettings | null;\n} {\n const isStartingCamera = React.useRef(false);\n const activeStreams = React.useRef([]);\n const capabilities = React.useRef({\n autoFocus: 'continuous',\n flashMode: 'off',\n whiteBalance: 'continuous',\n zoom: 1,\n });\n const [stream, setStream] = React.useState(null);\n\n const mediaTrackSettings = React.useMemo(() => {\n return stream ? stream.getTracks()[0].getSettings() : null;\n }, [stream]);\n\n // The actual camera type - this can be different from the incoming camera type.\n const type = React.useMemo(() => {\n if (!mediaTrackSettings) {\n return null;\n }\n // On desktop no value will be returned, in this case we should assume the cameraType is 'front'\n const { facingMode = 'user' } = mediaTrackSettings;\n return FacingModeToCameraType[facingMode];\n }, [mediaTrackSettings]);\n\n const getStreamDeviceAsync = React.useCallback(async (): Promise => {\n try {\n return await Utils.getPreferredStreamDevice(preferredType);\n } catch (nativeEvent) {\n if (__DEV__) {\n console.warn(`Error requesting UserMedia for type \"${preferredType}\":`, nativeEvent);\n }\n if (onMountError) {\n onMountError({ nativeEvent });\n }\n return null;\n }\n }, [preferredType, onMountError]);\n\n const resumeAsync = React.useCallback(async (): Promise => {\n const nextStream = await getStreamDeviceAsync();\n if (Utils.compareStreams(nextStream, stream)) {\n // Do nothing if the streams are the same.\n // This happens when the device only supports one camera (i.e. desktop) and the mode was toggled between front/back while already active.\n // Without this check there is a screen flash while the video switches.\n return false;\n }\n\n // Save a history of all active streams (usually 2+) so we can close them later.\n // Keeping them open makes swapping camera types much faster.\n if (!activeStreams.current.some((value) => value.id === nextStream?.id)) {\n activeStreams.current.push(nextStream!);\n }\n\n // Set the new stream -> update the video, settings, and actual camera type.\n setStream(nextStream);\n if (onCameraReady) {\n onCameraReady();\n }\n return false;\n }, [getStreamDeviceAsync, setStream, onCameraReady, stream, activeStreams.current]);\n\n React.useEffect(() => {\n // Restart the camera and guard concurrent actions.\n if (isStartingCamera.current) {\n return;\n }\n isStartingCamera.current = true;\n\n resumeAsync()\n .then((isStarting) => {\n isStartingCamera.current = isStarting;\n })\n .catch(() => {\n // ensure the camera can be started again.\n isStartingCamera.current = false;\n });\n }, [preferredType]);\n\n // Update the native camera with any custom capabilities.\n React.useEffect(() => {\n const changes: WebCameraSettings = {};\n\n for (const key of Object.keys(settings)) {\n if (!VALID_SETTINGS_KEYS.includes(key)) {\n continue;\n }\n const nextValue = settings[key];\n if (nextValue !== capabilities.current[key]) {\n changes[key] = nextValue;\n }\n }\n\n // Only update the native camera if changes were found\n const hasChanges = !!Object.keys(changes).length;\n\n const nextWebCameraSettings = { ...capabilities.current, ...changes };\n if (hasChanges) {\n Utils.syncTrackCapabilities(preferredType, stream, changes);\n }\n\n capabilities.current = nextWebCameraSettings;\n }, [\n settings.autoFocus,\n settings.flashMode,\n settings.exposureCompensation,\n settings.colorTemperature,\n settings.iso,\n settings.brightness,\n settings.contrast,\n settings.saturation,\n settings.sharpness,\n settings.focusDistance,\n settings.whiteBalance,\n settings.zoom,\n ]);\n\n React.useEffect(() => {\n // set or unset the video source.\n if (!video.current) {\n return;\n }\n Utils.setVideoSource(video.current, stream);\n }, [video.current, stream]);\n\n React.useEffect(() => {\n return () => {\n // Clean up on dismount, this is important for making sure the camera light goes off when the component is removed.\n for (const stream of activeStreams.current) {\n // Close all open streams.\n Utils.stopMediaStream(stream);\n }\n if (video.current) {\n // Invalidate the video source.\n Utils.setVideoSource(video.current, stream);\n }\n };\n }, []);\n\n // Update props when the video loads.\n useLoadedVideo(video.current, () => {\n Utils.syncTrackCapabilities(preferredType, stream, capabilities.current);\n });\n\n return {\n type,\n mediaTrackSettings,\n };\n}\n","var has = Object.prototype.hasOwnProperty;\n\nexport default function dequal(foo, bar) {\n\tvar ctor, len;\n\tif (foo === bar) return true;\n\n\tif (foo && bar && (ctor=foo.constructor) === bar.constructor) {\n\t\tif (ctor === Date) return foo.getTime() === bar.getTime();\n\t\tif (ctor === RegExp) return foo.toString() === bar.toString();\n\n\t\tif (ctor === Array) {\n\t\t\tif ((len=foo.length) === bar.length) {\n\t\t\t\twhile (len-- && dequal(foo[len], bar[len]));\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (!ctor || typeof foo === 'object') {\n\t\t\tlen = 0;\n\t\t\tfor (ctor in foo) {\n\t\t\t\tif (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;\n\t\t\t\tif (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;\n\t\t\t}\n\t\t\treturn Object.keys(bar).length === len;\n\t\t}\n\t}\n\n\treturn foo !== foo && bar !== bar;\n}\n","import e from\"react\";import n from\"dequal\";var r,t=function(e){return function(n){return Promise.resolve(e.fn.apply(e,n.data[0])).then(function(n){var r,t=\"auto\"===e.transferable&&(r=n,\"ArrayBuffer\"in self&&r instanceof ArrayBuffer||\"MessagePort\"in self&&r instanceof MessagePort||\"ImageBitmap\"in self&&r instanceof ImageBitmap||\"OffscreenCanvas\"in self&&r instanceof OffscreenCanvas)?[n]:[];postMessage([\"SUCCESS\",n],t)}).catch(function(e){postMessage([\"ERROR\",e])})}},a=function(e,n,r){var a=\"\\n \"+function(e){return 0===e.length?\"\":\"importScripts(\"+e.map(function(e){return\"'\"+e+\"'\"}).toString()+\")\"}(n)+\";\\n onmessage=(\"+t+\")({\\n fn: (\"+e+\"),\\n transferable: '\"+r+\"'\\n })\\n \",o=new Blob([a],{type:\"text/javascript\"});return URL.createObjectURL(o)};!function(e){e.PENDING=\"PENDING\",e.SUCCESS=\"SUCCESS\",e.RUNNING=\"RUNNING\",e.ERROR=\"ERROR\",e.TIMEOUT_EXPIRED=\"TIMEOUT_EXPIRED\"}(r||(r={}));var o,u=r;!function(e){e.AUTO=\"auto\",e.NONE=\"none\"}(o||(o={}));var i={timeout:void 0,remoteDependencies:[],autoTerminate:!0,transferable:o.AUTO},c=function(r,t){void 0===t&&(t=i);var c,s,f,l=e.useState(u.PENDING),m=l[0],v=l[1],R=e.useRef(),d=e.useRef(!1),p=e.useRef({}),E=e.useRef(),w=e.useCallback(function(e){d.current=e===u.RUNNING,v(e)},[]),C=e.useCallback(function(){var e;null!==(e=R.current)&&void 0!==e&&e._url&&(R.current.terminate(),URL.revokeObjectURL(R.current._url),p.current={},R.current=void 0,window.clearTimeout(E.current))},[]),N=e.useCallback(function(e){(null!=t.autoTerminate?t.autoTerminate:i.autoTerminate)&&C(),w(e)},[t.autoTerminate,C,w]),T=(c=function(){var e=t.remoteDependencies,n=t.timeout,o=void 0===n?i.timeout:n,c=t.transferable,s=a(r,void 0===e?i.remoteDependencies:e,void 0===c?i.transferable:c),f=new Worker(s);return f._url=s,f.onmessage=function(e){var n,r,t,a,o=e.data,i=o[1];switch(o[0]){case u.SUCCESS:null===(n=(r=p.current).resolve)||void 0===n||n.call(r,i),N(u.SUCCESS);break;default:null===(t=(a=p.current).reject)||void 0===t||t.call(a,i),N(u.ERROR)}},f.onerror=function(e){var n,r;null===(n=(r=p.current).reject)||void 0===n||n.call(r,e),N(u.ERROR)},o&&(E.current=window.setTimeout(function(){C(),w(u.TIMEOUT_EXPIRED)},o)),f},f=e.useRef(s=[r,t,C]),n(f.current,s)||(f.current=s),e.useCallback(c,f.current)),U=e.useCallback(function(){var e=[].slice.call(arguments),n=t,r=n.transferable,a=void 0===r?i.transferable:r;return new Promise(function(n,r){var t,i;p.current=((t={}).resolve=n,t.reject=r,t);var c=a===o.AUTO?e.filter(function(e){return\"ArrayBuffer\"in window&&e instanceof ArrayBuffer||\"MessagePort\"in window&&e instanceof MessagePort||\"ImageBitmap\"in window&&e instanceof ImageBitmap||\"OffscreenCanvas\"in window&&e instanceof OffscreenCanvas}):[];null===(i=R.current)||void 0===i||i.postMessage([[].concat(e)],c),w(u.RUNNING)})},[w]),b=e.useCallback(function(){var e=null!=t.autoTerminate?t.autoTerminate:i.autoTerminate;return d.current?(console.error(\"[useWorker] You can only run one instance of the worker at a time, if you want to run more than one in parallel, create another instance with the hook useWorker(). Read more: https://github.com/alewin/useWorker\"),Promise.reject()):(!e&&R.current||(R.current=T()),U.apply(void 0,[].slice.call(arguments)))},[t.autoTerminate,T,U]),O={status:m,kill:C};return e.useEffect(function(){return function(){C()}},[C]),[b,O]};export{r as WORKER_STATUS,c as useWorker};\n//# sourceMappingURL=index.mjs.map\n","import { useWorker } from '@koale/useworker';\nimport * as React from 'react';\n\nimport { CameraPictureOptions } from './Camera';\nimport { BarCodeScanningResult, MountErrorListener } from './Camera.types';\nimport { captureImageData } from './WebCameraUtils';\n\nconst qrWorkerMethod = ({ data, width, height }: ImageData): any => {\n // eslint-disable-next-line no-undef\n const decoded = (self as any).jsQR(data, width, height, {\n inversionAttempts: 'dontInvert',\n });\n\n let parsed;\n try {\n parsed = JSON.parse(decoded);\n } catch (err) {\n parsed = decoded;\n }\n\n if (parsed?.data) {\n const nativeEvent: BarCodeScanningResult = {\n type: 'qr',\n data: parsed.data,\n };\n if (parsed.location) {\n nativeEvent.cornerPoints = [\n parsed.location.topLeftCorner,\n parsed.location.bottomLeftCorner,\n parsed.location.topRightCorner,\n parsed.location.bottomRightCorner,\n ];\n }\n return nativeEvent;\n }\n return parsed;\n};\n\nfunction useRemoteJsQR() {\n return useWorker(qrWorkerMethod, {\n remoteDependencies: ['https://cdn.jsdelivr.net/npm/jsqr@1.2.0/dist/jsQR.min.js'],\n timeout: 5000,\n });\n}\n\nexport function useWebQRScanner(\n video: React.MutableRefObject,\n {\n isEnabled,\n captureOptions,\n interval,\n onScanned,\n onError,\n }: {\n isEnabled: boolean;\n captureOptions: Pick;\n interval?: number;\n onScanned?: (scanningResult: { nativeEvent: BarCodeScanningResult }) => void;\n onError?: MountErrorListener;\n }\n) {\n const isRunning = React.useRef(false);\n const timeout = React.useRef(undefined);\n\n const [decode, clearWorker] = useRemoteJsQR();\n\n async function scanAsync() {\n // If interval is 0 then only scan once.\n if (!isRunning.current || !onScanned) {\n stop();\n return;\n }\n try {\n const data = captureImageData(video.current, captureOptions);\n\n if (data) {\n const nativeEvent: BarCodeScanningResult | any = await decode(data);\n if (nativeEvent?.data) {\n onScanned({\n nativeEvent,\n });\n }\n }\n } catch (error) {\n if (onError) {\n onError({ nativeEvent: error });\n }\n } finally {\n // If interval is 0 then only scan once.\n if (interval === 0) {\n stop();\n return;\n }\n const intervalToUse = !interval || interval < 0 ? 16 : interval;\n // @ts-ignore: Type 'Timeout' is not assignable to type 'number'\n timeout.current = setTimeout(() => {\n scanAsync();\n }, intervalToUse);\n }\n }\n\n function stop() {\n isRunning.current = false;\n clearTimeout(timeout.current);\n }\n\n React.useEffect(() => {\n if (isEnabled) {\n isRunning.current = true;\n scanAsync();\n } else {\n stop();\n }\n }, [isEnabled]);\n\n React.useEffect(() => {\n return () => {\n stop();\n clearWorker.kill();\n };\n }, []);\n}\n","import { CodedError } from 'expo-modules-core';\nimport * as React from 'react';\nimport { StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\nimport createElement from 'react-native-web/dist/exports/createElement';\n\nimport {\n CameraCapturedPicture,\n CameraNativeProps,\n CameraPictureOptions,\n CameraType,\n} from './Camera.types';\nimport CameraManager from './ExponentCameraManager.web';\nimport { capture } from './WebCameraUtils';\nimport { PictureSizes } from './WebConstants';\nimport { useWebCameraStream } from './useWebCameraStream';\nimport { useWebQRScanner } from './useWebQRScanner';\n\nexport interface ExponentCameraRef {\n getAvailablePictureSizes: (ratio: string) => Promise;\n takePicture: (options: CameraPictureOptions) => Promise;\n resumePreview: () => Promise;\n pausePreview: () => Promise;\n}\n\nconst ExponentCamera = React.forwardRef(\n (\n { type, pictureSize, poster, ...props }: CameraNativeProps & { children?: React.ReactNode },\n ref: React.Ref\n ) => {\n const video = React.useRef(null);\n\n const native = useWebCameraStream(video, type as CameraType, props, {\n onCameraReady() {\n if (props.onCameraReady) {\n props.onCameraReady();\n }\n },\n onMountError: props.onMountError,\n });\n\n const isQRScannerEnabled = React.useMemo(() => {\n return !!(\n props.barCodeScannerSettings?.barCodeTypes?.includes('qr') && !!props.onBarCodeScanned\n );\n }, [props.barCodeScannerSettings?.barCodeTypes, props.onBarCodeScanned]);\n\n useWebQRScanner(video, {\n interval: props.barCodeScannerSettings?.interval,\n isEnabled: isQRScannerEnabled,\n captureOptions: { scale: 1, isImageMirror: native.type === CameraType.front },\n onScanned(event) {\n if (props.onBarCodeScanned) {\n props.onBarCodeScanned(event);\n }\n },\n // onError: props.onMountError,\n });\n\n // const [pause, setPaused]\n\n React.useImperativeHandle(\n ref,\n () => ({\n async getAvailablePictureSizes(ratio: string): Promise {\n return PictureSizes;\n },\n async takePicture(options: CameraPictureOptions): Promise {\n if (!video.current || video.current?.readyState !== video.current?.HAVE_ENOUGH_DATA) {\n throw new CodedError(\n 'ERR_CAMERA_NOT_READY',\n 'HTMLVideoElement does not have enough camera data to construct an image yet.'\n );\n }\n const settings = native.mediaTrackSettings;\n if (!settings) {\n throw new CodedError('ERR_CAMERA_NOT_READY', 'MediaStream is not ready yet.');\n }\n\n return capture(video.current, settings, {\n ...options,\n // This will always be defined, the option gets added to a queue in the upper-level. We should replace the original so it isn't called twice.\n onPictureSaved(picture) {\n if (options.onPictureSaved) {\n options.onPictureSaved(picture);\n }\n if (props.onPictureSaved) {\n props.onPictureSaved({ nativeEvent: { data: picture, id: -1 } });\n }\n },\n });\n },\n async resumePreview(): Promise {\n if (video.current) {\n video.current.play();\n }\n },\n async pausePreview(): Promise {\n if (video.current) {\n video.current.pause();\n }\n },\n }),\n [native.mediaTrackSettings, props.onPictureSaved]\n );\n\n // TODO(Bacon): Create a universal prop, on native the microphone is only used when recording videos.\n // Because we don't support recording video in the browser we don't need the user to give microphone permissions.\n const isMuted = true;\n\n const style = React.useMemo>(() => {\n const isFrontFacingCamera = native.type === CameraManager.Type.front;\n return [\n StyleSheet.absoluteFill,\n styles.video,\n {\n // Flip the camera\n transform: isFrontFacingCamera ? [{ scaleX: -1 }] : undefined,\n },\n ];\n }, [native.type]);\n\n return (\n \n \n {props.children}\n \n );\n }\n);\n\nexport default ExponentCamera;\n\nconst Video = React.forwardRef(\n (\n props: React.ComponentProps & {\n autoPlay?: boolean;\n playsInline?: boolean;\n muted?: boolean;\n poster?: string;\n },\n ref: React.Ref\n ) => createElement('video', { ...props, ref })\n);\n\nconst styles = StyleSheet.create({\n videoWrapper: {\n flex: 1,\n alignItems: 'stretch',\n },\n video: {\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n },\n});\n","import { Platform } from 'expo-modules-core';\n\nimport {\n CameraNativeProps,\n CameraType,\n FlashMode,\n AutoFocus,\n WhiteBalance,\n CameraProps,\n} from '../Camera.types';\nimport CameraManager from '../ExponentCameraManager';\n\n// Values under keys from this object will be transformed to native options\nexport const ConversionTables: {\n type: Record;\n flashMode: Record;\n autoFocus: Record;\n whiteBalance: Record;\n} = {\n type: CameraManager.Type,\n flashMode: CameraManager.FlashMode,\n autoFocus: CameraManager.AutoFocus,\n whiteBalance: CameraManager.WhiteBalance,\n};\n\nexport function convertNativeProps(props?: CameraProps): CameraNativeProps {\n if (!props || typeof props !== 'object') {\n return {};\n }\n\n const nativeProps: CameraNativeProps = {};\n\n for (const [key, value] of Object.entries(props)) {\n if (typeof value === 'string' && ConversionTables[key]) {\n nativeProps[key] = ConversionTables[key][value];\n } else {\n nativeProps[key] = value;\n }\n }\n\n return nativeProps;\n}\n\nexport function ensureNativeProps(props?: CameraProps): CameraNativeProps {\n const newProps = convertNativeProps(props);\n\n if (newProps.onBarCodeScanned) {\n newProps.barCodeScannerEnabled = true;\n }\n\n if (newProps.onFacesDetected) {\n newProps.faceDetectorEnabled = true;\n }\n\n if (Platform.OS !== 'android') {\n delete newProps.ratio;\n delete newProps.useCamera2Api;\n }\n\n if (Platform.OS !== 'web') {\n delete newProps.poster;\n }\n\n return newProps;\n}\n","import { createPermissionHook, Platform, UnavailabilityError } from 'expo-modules-core';\nimport * as React from 'react';\nimport { findNodeHandle } from 'react-native';\n\nimport {\n BarCodeScanningResult,\n CameraCapturedPicture,\n CameraMountError,\n CameraNativeProps,\n CameraPictureOptions,\n CameraProps,\n CameraRecordingOptions,\n ConstantsType,\n FaceDetectionResult,\n PermissionExpiration,\n PermissionResponse,\n PermissionStatus,\n VideoCodec,\n} from './Camera.types';\nimport ExponentCamera from './ExponentCamera';\nimport CameraManager from './ExponentCameraManager';\nimport { ConversionTables, ensureNativeProps } from './utils/props';\n\nconst EventThrottleMs = 500;\n\nconst _PICTURE_SAVED_CALLBACKS = {};\n\nlet _GLOBAL_PICTURE_ID = 1;\n\nfunction ensurePictureOptions(options?: CameraPictureOptions): CameraPictureOptions {\n const pictureOptions: CameraPictureOptions =\n !options || typeof options !== 'object' ? {} : options;\n\n if (!pictureOptions.quality) {\n pictureOptions.quality = 1;\n }\n if (pictureOptions.onPictureSaved) {\n const id = _GLOBAL_PICTURE_ID++;\n _PICTURE_SAVED_CALLBACKS[id] = pictureOptions.onPictureSaved;\n pictureOptions.id = id;\n pictureOptions.fastMode = true;\n }\n return pictureOptions;\n}\n\nfunction ensureRecordingOptions(options?: CameraRecordingOptions): CameraRecordingOptions {\n let recordingOptions = options || {};\n\n if (!recordingOptions || typeof recordingOptions !== 'object') {\n recordingOptions = {};\n } else if (typeof recordingOptions.quality === 'string') {\n recordingOptions.quality = Camera.Constants.VideoQuality[recordingOptions.quality];\n }\n\n return recordingOptions;\n}\n\nfunction _onPictureSaved({\n nativeEvent,\n}: {\n nativeEvent: { data: CameraCapturedPicture; id: number };\n}) {\n const { id, data } = nativeEvent;\n const callback = _PICTURE_SAVED_CALLBACKS[id];\n if (callback) {\n callback(data);\n delete _PICTURE_SAVED_CALLBACKS[id];\n }\n}\n\nexport default class Camera extends React.Component {\n static async isAvailableAsync(): Promise {\n if (!CameraManager.isAvailableAsync) {\n throw new UnavailabilityError('expo-camera', 'isAvailableAsync');\n }\n\n return await CameraManager.isAvailableAsync();\n }\n\n static async getAvailableCameraTypesAsync(): Promise<('front' | 'back')[]> {\n if (!CameraManager.getAvailableCameraTypesAsync) {\n throw new UnavailabilityError('expo-camera', 'getAvailableCameraTypesAsync');\n }\n\n return await CameraManager.getAvailableCameraTypesAsync();\n }\n\n static async getAvailableVideoCodecsAsync(): Promise {\n if (!CameraManager.getAvailableVideoCodecsAsync) {\n throw new UnavailabilityError('Camera', 'getAvailableVideoCodecsAsync');\n }\n\n return await CameraManager.getAvailableVideoCodecsAsync();\n }\n\n static Constants: ConstantsType = {\n Type: CameraManager.Type,\n FlashMode: CameraManager.FlashMode,\n AutoFocus: CameraManager.AutoFocus,\n WhiteBalance: CameraManager.WhiteBalance,\n VideoQuality: CameraManager.VideoQuality,\n VideoStabilization: CameraManager.VideoStabilization || {},\n VideoCodec: CameraManager.VideoCodec,\n };\n\n // Values under keys from this object will be transformed to native options\n static ConversionTables = ConversionTables;\n\n static defaultProps: CameraProps = {\n zoom: 0,\n ratio: '4:3',\n focusDepth: 0,\n faceDetectorSettings: {},\n type: CameraManager.Type.back,\n autoFocus: CameraManager.AutoFocus.on,\n flashMode: CameraManager.FlashMode.off,\n whiteBalance: CameraManager.WhiteBalance.auto,\n };\n\n /**\n * @deprecated Use `getCameraPermissionsAync` or `getMicrophonePermissionsAsync` instead.\n */\n static async getPermissionsAsync(): Promise {\n console.warn(\n `\"getPermissionsAsync()\" is now deprecated. Please use \"getCameraPermissionsAsync()\" or \"getMicrophonePermissionsAsync()\" instead.`\n );\n return CameraManager.getPermissionsAsync();\n }\n\n /**\n * @deprecated Use `requestCameraPermissionsAsync` or `requestMicrophonePermissionsAsync` instead.\n */\n static async requestPermissionsAsync(): Promise {\n console.warn(\n `\"requestPermissionsAsync()\" is now deprecated. Please use \"requestCameraPermissionsAsync()\" or \"requestMicrophonePermissionsAsync()\" instead.`\n );\n return CameraManager.requestPermissionsAsync();\n }\n\n static async getCameraPermissionsAsync(): Promise {\n return CameraManager.getCameraPermissionsAsync();\n }\n\n static async requestCameraPermissionsAsync(): Promise {\n return CameraManager.requestCameraPermissionsAsync();\n }\n\n // @needsAudit\n /**\n * Check or request permissions to access the camera.\n * This uses both `requestCameraPermissionsAsync` and `getCameraPermissionsAsync` to interact with the permissions.\n *\n * @example\n * ```ts\n * const [status, requestPermission] = Camera.useCameraPermissions();\n * ```\n */\n static useCameraPermissions = createPermissionHook({\n getMethod: Camera.getCameraPermissionsAsync,\n requestMethod: Camera.requestCameraPermissionsAsync,\n });\n\n static async getMicrophonePermissionsAsync(): Promise {\n return CameraManager.getMicrophonePermissionsAsync();\n }\n\n static async requestMicrophonePermissionsAsync(): Promise {\n return CameraManager.requestMicrophonePermissionsAsync();\n }\n\n // @needsAudit\n /**\n * Check or request permissions to access the microphone.\n * This uses both `requestMicrophonePermissionsAsync` and `getMicrophonePermissionsAsync` to interact with the permissions.\n *\n * @example\n * ```ts\n * const [status, requestPermission] = Camera.useMicrophonePermissions();\n * ```\n */\n static useMicrophonePermissions = createPermissionHook({\n getMethod: Camera.getMicrophonePermissionsAsync,\n requestMethod: Camera.requestMicrophonePermissionsAsync,\n });\n\n _cameraHandle?: number | null;\n _cameraRef?: React.Component | null;\n _lastEvents: { [eventName: string]: string } = {};\n _lastEventsTimes: { [eventName: string]: Date } = {};\n\n async takePictureAsync(options?: CameraPictureOptions): Promise {\n const pictureOptions = ensurePictureOptions(options);\n\n return await CameraManager.takePicture(pictureOptions, this._cameraHandle);\n }\n\n async getSupportedRatiosAsync(): Promise {\n if (!CameraManager.getSupportedRatios) {\n throw new UnavailabilityError('Camera', 'getSupportedRatiosAsync');\n }\n\n return await CameraManager.getSupportedRatios(this._cameraHandle);\n }\n\n async getAvailablePictureSizesAsync(ratio?: string): Promise {\n if (!CameraManager.getAvailablePictureSizes) {\n throw new UnavailabilityError('Camera', 'getAvailablePictureSizesAsync');\n }\n return await CameraManager.getAvailablePictureSizes(ratio, this._cameraHandle);\n }\n\n async recordAsync(\n options?: CameraRecordingOptions\n ): Promise<{ uri: string; codec?: VideoCodec }> {\n if (!CameraManager.record) {\n throw new UnavailabilityError('Camera', 'recordAsync');\n }\n\n const recordingOptions = ensureRecordingOptions(options);\n return await CameraManager.record(recordingOptions, this._cameraHandle);\n }\n\n stopRecording() {\n if (!CameraManager.stopRecording) {\n throw new UnavailabilityError('Camera', 'stopRecording');\n }\n\n CameraManager.stopRecording(this._cameraHandle);\n }\n\n pausePreview() {\n if (!CameraManager.pausePreview) {\n throw new UnavailabilityError('Camera', 'pausePreview');\n }\n\n CameraManager.pausePreview(this._cameraHandle);\n }\n\n resumePreview() {\n if (!CameraManager.resumePreview) {\n throw new UnavailabilityError('Camera', 'resumePreview');\n }\n\n CameraManager.resumePreview(this._cameraHandle);\n }\n\n _onCameraReady = () => {\n if (this.props.onCameraReady) {\n this.props.onCameraReady();\n }\n };\n\n _onMountError = ({ nativeEvent }: { nativeEvent: { message: string } }) => {\n if (this.props.onMountError) {\n this.props.onMountError(nativeEvent);\n }\n };\n\n _onObjectDetected =\n (callback?: Function) =>\n ({ nativeEvent }: { nativeEvent: any }) => {\n const { type } = nativeEvent;\n if (\n this._lastEvents[type] &&\n this._lastEventsTimes[type] &&\n JSON.stringify(nativeEvent) === this._lastEvents[type] &&\n new Date().getTime() - this._lastEventsTimes[type].getTime() < EventThrottleMs\n ) {\n return;\n }\n\n if (callback) {\n callback(nativeEvent);\n this._lastEventsTimes[type] = new Date();\n this._lastEvents[type] = JSON.stringify(nativeEvent);\n }\n };\n\n _setReference = (ref?: React.Component) => {\n if (ref) {\n this._cameraRef = ref;\n // TODO(Bacon): Unify these - perhaps with hooks?\n if (Platform.OS === 'web') {\n this._cameraHandle = ref as any;\n } else {\n this._cameraHandle = findNodeHandle(ref);\n }\n } else {\n this._cameraRef = null;\n this._cameraHandle = null;\n }\n };\n\n render() {\n const nativeProps = ensureNativeProps(this.props);\n\n const onBarCodeScanned = this.props.onBarCodeScanned\n ? this._onObjectDetected(this.props.onBarCodeScanned)\n : undefined;\n const onFacesDetected = this._onObjectDetected(this.props.onFacesDetected);\n\n return (\n \n );\n }\n}\n\nexport const {\n Constants,\n getPermissionsAsync,\n requestPermissionsAsync,\n getCameraPermissionsAsync,\n requestCameraPermissionsAsync,\n getMicrophonePermissionsAsync,\n requestMicrophonePermissionsAsync,\n} = Camera;\n\nexport {\n CameraCapturedPicture,\n CameraNativeProps,\n CameraPictureOptions,\n CameraProps,\n CameraRecordingOptions,\n PermissionResponse,\n PermissionStatus,\n PermissionExpiration,\n BarCodeScanningResult,\n FaceDetectionResult,\n CameraMountError,\n};\n","import { Platform } from 'expo-modules-core';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport {\n ExecutionEnvironment,\n NativeConstants,\n PlatformManifest,\n WebManifest,\n} from './Constants.types';\n\nconst ID_KEY = 'EXPO_CONSTANTS_INSTALLATION_ID';\n\ndeclare let __DEV__: boolean;\ndeclare let process: { env: any };\ndeclare let navigator: Navigator;\ndeclare let location: Location;\ndeclare let localStorage: Storage;\n\nconst _sessionId = uuidv4();\n\nfunction getBrowserName(): string | undefined {\n if (Platform.isDOMAvailable) {\n const agent = navigator.userAgent.toLowerCase();\n if (agent.includes('edge')) {\n return 'Edge';\n } else if (agent.includes('edg')) {\n return 'Chromium Edge';\n } else if (agent.includes('opr') && !!window['opr']) {\n return 'Opera';\n } else if (agent.includes('chrome') && !!window['chrome']) {\n return 'Chrome';\n } else if (agent.includes('trident')) {\n return 'IE';\n } else if (agent.includes('firefox')) {\n return 'Firefox';\n } else if (agent.includes('safari')) {\n return 'Safari';\n }\n }\n\n return undefined;\n}\n\nexport default {\n get name(): string {\n return 'ExponentConstants';\n },\n get appOwnership() {\n return null;\n },\n get executionEnvironment() {\n return ExecutionEnvironment.Bare;\n },\n get installationId(): string {\n let installationId;\n try {\n installationId = localStorage.getItem(ID_KEY);\n if (installationId == null || typeof installationId !== 'string') {\n installationId = uuidv4();\n localStorage.setItem(ID_KEY, installationId as string);\n }\n } catch (error) {\n installationId = _sessionId;\n } finally {\n return installationId;\n }\n },\n get sessionId(): string {\n return _sessionId;\n },\n get platform(): PlatformManifest {\n return { web: Platform.isDOMAvailable ? { ua: navigator.userAgent } : undefined };\n },\n get isHeadless(): boolean {\n if (!Platform.isDOMAvailable) return true;\n\n return /\\bHeadlessChrome\\//.test(navigator.userAgent);\n },\n get isDevice(): true {\n // TODO: Bacon: Possibly want to add information regarding simulators\n return true;\n },\n get expoVersion(): string | null {\n return this.manifest!.sdkVersion || null;\n },\n get linkingUri(): string {\n if (Platform.isDOMAvailable) {\n // On native this is `exp://`\n // On web we should use the protocol and hostname (location.origin)\n return location.origin;\n } else {\n return '';\n }\n },\n get expoRuntimeVersion(): string | null {\n return this.expoVersion;\n },\n get deviceName(): string | undefined {\n return getBrowserName();\n },\n get nativeAppVersion(): null {\n return null;\n },\n get nativeBuildVersion(): null {\n return null;\n },\n get systemFonts(): string[] {\n // TODO: Bacon: Maybe possible.\n return [];\n },\n get statusBarHeight(): number {\n return 0;\n },\n get deviceYearClass(): number | null {\n // TODO: Bacon: The android version isn't very accurate either, maybe we could try and guess this value.\n return null;\n },\n get manifest(): WebManifest {\n // This is defined by @expo/webpack-config.\n // If your site is bundled with a different config then you may not have access to the app.json automatically.\n return process.env.APP_MANIFEST || {};\n },\n get manifest2(): null {\n return null;\n },\n get experienceUrl(): string {\n if (Platform.isDOMAvailable) {\n return location.origin;\n } else {\n return '';\n }\n },\n get debugMode(): boolean {\n return __DEV__;\n },\n async getWebViewUserAgentAsync(): Promise {\n if (Platform.isDOMAvailable) {\n return navigator.userAgent;\n } else {\n return null;\n }\n },\n} as NativeConstants;\n","import { CodedError, NativeModulesProxy } from 'expo-modules-core';\nimport { Platform, NativeModules } from 'react-native';\n\nimport {\n AndroidManifest,\n AppManifest,\n AppOwnership,\n Constants,\n ExecutionEnvironment,\n IOSManifest,\n Manifest,\n NativeConstants,\n PlatformManifest,\n UserInterfaceIdiom,\n WebManifest,\n} from './Constants.types';\nimport ExponentConstants from './ExponentConstants';\n\nexport {\n AndroidManifest,\n AppOwnership,\n Constants,\n ExecutionEnvironment,\n IOSManifest,\n NativeConstants,\n PlatformManifest,\n UserInterfaceIdiom,\n WebManifest,\n};\n\nif (!ExponentConstants) {\n console.warn(\n \"No native ExponentConstants module found, are you sure the expo-constants's module is linked properly?\"\n );\n}\n\nlet rawManifest: AppManifest | Manifest | null = null;\n// If expo-updates defines a non-empty manifest, prefer that one\nif (NativeModulesProxy.ExpoUpdates) {\n let updatesManifest;\n if (NativeModulesProxy.ExpoUpdates.manifest) {\n updatesManifest = NativeModulesProxy.ExpoUpdates.manifest;\n } else if (NativeModulesProxy.ExpoUpdates.manifestString) {\n updatesManifest = JSON.parse(NativeModulesProxy.ExpoUpdates.manifestString);\n }\n if (updatesManifest && Object.keys(updatesManifest).length > 0) {\n rawManifest = updatesManifest;\n }\n}\n\n// If dev-launcher defines a non-empty manifest, prefer that one\nif (NativeModules.EXDevLauncher) {\n let devLauncherManifest;\n if (NativeModules.EXDevLauncher.manifestString) {\n devLauncherManifest = JSON.parse(NativeModules.EXDevLauncher.manifestString);\n }\n\n if (devLauncherManifest && Object.keys(devLauncherManifest).length > 0) {\n rawManifest = devLauncherManifest;\n }\n}\n\n// Fall back to ExponentConstants.manifest if we don't have one from Updates\nif (!rawManifest && ExponentConstants && ExponentConstants.manifest) {\n rawManifest = ExponentConstants.manifest;\n // On Android we pass the manifest in JSON form so this step is necessary\n if (typeof rawManifest === 'string') {\n rawManifest = JSON.parse(rawManifest);\n }\n}\n\nconst { name, appOwnership, ...nativeConstants } = (ExponentConstants || {}) as any;\n\nlet warnedAboutDeviceYearClass = false;\nlet warnedAboutIosModel = false;\n\nconst constants: Constants = {\n ...nativeConstants,\n // Ensure this is null in bare workflow\n appOwnership: appOwnership ?? null,\n};\n\nObject.defineProperties(constants, {\n // Deprecated field\n deviceYearClass: {\n get() {\n if (!warnedAboutDeviceYearClass) {\n console.warn(\n `Constants.deviceYearClass has been deprecated in favor of expo-device's Device.deviceYearClass property. This API will be removed in SDK 45.`\n );\n warnedAboutDeviceYearClass = true;\n }\n return nativeConstants.deviceYearClass;\n },\n enumerable: false,\n },\n installationId: {\n get() {\n return nativeConstants.installationId;\n },\n enumerable: false,\n },\n /**\n * Use `manifest` property by default.\n * This property is only used for internal purposes.\n * It behaves similarly to the original one, but suppresses warning upon no manifest available.\n * `expo-asset` uses it to prevent users from seeing mentioned warning.\n */\n __unsafeNoWarnManifest: {\n get(): AppManifest | Manifest | null {\n const maybeManifest = getManifest(true);\n if (!maybeManifest || !isAppManifest(maybeManifest)) {\n return null;\n }\n return maybeManifest;\n },\n enumerable: false,\n },\n __unsafeNoWarnManifest2: {\n get(): Manifest | null {\n const maybeManifest = getManifest(true);\n if (!maybeManifest || !isManifest(maybeManifest)) {\n return null;\n }\n return maybeManifest;\n },\n enumerable: false,\n },\n manifest: {\n get(): AppManifest | null {\n const maybeManifest = getManifest();\n if (!maybeManifest || !isAppManifest(maybeManifest)) {\n return null;\n }\n return maybeManifest;\n },\n enumerable: true,\n },\n manifest2: {\n get(): Manifest | null {\n const maybeManifest = getManifest();\n if (!maybeManifest || !isManifest(maybeManifest)) {\n return null;\n }\n return maybeManifest;\n },\n enumerable: true,\n },\n __rawManifest_TEST: {\n get(): AppManifest | Manifest | null {\n return rawManifest;\n },\n set(value: AppManifest | Manifest | null) {\n rawManifest = value;\n },\n enumerable: false,\n },\n});\n\n// Add deprecation warning for `platform.ios.model`\nif (constants?.platform?.ios) {\n const originalModel = nativeConstants.platform.ios.model;\n Object.defineProperty(constants.platform.ios, 'model', {\n get() {\n if (!warnedAboutIosModel) {\n console.warn(\n `Constants.platform.ios.model has been deprecated in favor of expo-device's Device.modelName property. This API will be removed in SDK 45.`\n );\n warnedAboutIosModel = true;\n }\n return originalModel;\n },\n enumerable: false,\n });\n}\n\nfunction isAppManifest(manifest: AppManifest | Manifest): manifest is AppManifest {\n return !isManifest(manifest);\n}\n\nfunction isManifest(manifest: AppManifest | Manifest): manifest is Manifest {\n return 'metadata' in manifest;\n}\n\nfunction getManifest(suppressWarning = false): AppManifest | Manifest | null {\n if (!rawManifest) {\n const invalidManifestType = rawManifest === null ? 'null' : 'undefined';\n if (\n nativeConstants.executionEnvironment === ExecutionEnvironment.Bare &&\n Platform.OS !== 'web'\n ) {\n if (!suppressWarning) {\n console.warn(\n `Constants.manifest is ${invalidManifestType} because the embedded app.config could not be read. Ensure that you have installed the expo-constants build scripts if you need to read from Constants.manifest.`\n );\n }\n } else if (\n nativeConstants.executionEnvironment === ExecutionEnvironment.StoreClient ||\n nativeConstants.executionEnvironment === ExecutionEnvironment.Standalone\n ) {\n // If we somehow get here, this is a truly exceptional state to be in.\n // Constants.manifest should *always* be defined in those contexts.\n throw new CodedError(\n 'ERR_CONSTANTS_MANIFEST_UNAVAILABLE',\n `Constants.manifest is ${invalidManifestType}, must be an object.`\n );\n }\n }\n return rawManifest;\n}\n\nexport default constants as Constants;\n","import { ExpoConfig } from '@expo/config-types';\n\n// @needsAudit\nexport enum AppOwnership {\n /**\n * It is a [standalone app](../../../distribution/building-standalone-apps#building-standalone-apps).\n */\n Standalone = 'standalone',\n /**\n * The experience is running inside of the Expo Go app.\n */\n Expo = 'expo',\n /**\n * It has been opened through a link from a standalone app.\n */\n Guest = 'guest',\n}\n\n// @docsMissing\nexport enum ExecutionEnvironment {\n Bare = 'bare',\n Standalone = 'standalone',\n StoreClient = 'storeClient',\n}\n\n// @needsAudit\n/**\n * Current supported values are `handset` and `tablet`. Apple TV and CarPlay will show up\n * as `unsupported`.\n */\nexport enum UserInterfaceIdiom {\n Handset = 'handset',\n Tablet = 'tablet',\n Unsupported = 'unsupported',\n}\n\n// @needsAudit\nexport interface IOSManifest {\n /**\n * The build number specified in the embedded **Info.plist** value for `CFBundleVersion` in this app.\n * In a standalone app, you can set this with the `ios.buildNumber` value in **app.json**. This\n * may differ from the value in `Constants.manifest.ios.buildNumber` because the manifest\n * can be updated, whereas this value will never change for a given native binary.\n * The value is set to `null` in case you run your app in Expo Go.\n */\n buildNumber: string | null;\n /**\n * The Apple internal model identifier for this device, e.g. `iPhone1,1`.\n * @deprecated Deprecated. Use `expo-device`'s [`Device.modelId`](../device/#devicemodelid).\n */\n platform: string;\n /**\n * The human-readable model name of this device, e.g. `\"iPhone 7 Plus\"` if it can be determined,\n * otherwise will be `null`.\n * @deprecated Deprecated. Moved to `expo-device` as [`Device.modelName`](../device/#devicemodelname).\n */\n model: string | null;\n /**\n * The user interface idiom of this device, i.e. whether the app is running on an iPhone or an iPad.\n * @deprecated Deprecated. Use `expo-device`'s [`Device.getDeviceTypeAsync()`](../device/#devicegetdevicetypeasync).\n */\n userInterfaceIdiom: UserInterfaceIdiom;\n /**\n * The version of iOS running on this device, e.g. `10.3`.\n * @deprecated Deprecated. Use `expo-device`'s [`Device.osVersion`](../device/#deviceosversion).\n */\n systemVersion: string;\n [key: string]: any;\n}\n\n// @needsAudit\nexport interface AndroidManifest {\n /**\n * The version code set by `android.versionCode` in app.json.\n * The value is set to `null` in case you run your app in Expo Go.\n * @deprecated Deprecated. Use `expo-application`'s [`Application.nativeBuildVersion`](../application/#applicationnativebuildversion).\n */\n versionCode: number;\n [key: string]: any;\n}\n\nexport interface WebManifest {\n [key: string]: any;\n}\n\n// @docsMissing\nexport interface ManifestAsset {\n url: string;\n}\n\n// @needsAudit @docsMissing\n/**\n * A modern manifest.\n */\nexport type Manifest = {\n id: string;\n createdAt: string;\n runtimeVersion: string;\n launchAsset: ManifestAsset;\n assets: ManifestAsset[];\n metadata: object;\n extra?: ManifestExtra;\n};\n\n// @docsMissing\nexport type ManifestExtra = ClientScopingConfig & {\n expoClient?: ExpoClientConfig;\n expoGo?: ExpoGoConfig;\n eas?: EASConfig;\n};\n\n// @needsAudit\nexport type EASConfig = {\n /**\n * The ID for this project if it's using EAS. UUID. This value will not change when a project is\n * transferred between accounts or renamed.\n */\n projectId?: string;\n};\n\n// @needsAudit\nexport type ClientScopingConfig = {\n /**\n * An opaque unique string for scoping client-side data to this project. This value\n * will not change when a project is transferred between accounts or renamed.\n */\n scopeKey?: string;\n};\n\n// @docsMissing\nexport type ExpoGoConfig = {\n mainModuleName?: string;\n debuggerHost?: string;\n logUrl?: string;\n developer?: {\n tool?: string;\n [key: string]: any;\n };\n packagerOpts?: ExpoGoPackagerOpts;\n};\n\n// @docsMissing\nexport type ExpoGoPackagerOpts = {\n hostType?: string;\n dev?: boolean;\n strict?: boolean;\n minify?: boolean;\n urlType?: string;\n urlRandomness?: string;\n lanType?: string;\n [key: string]: any;\n};\n\nexport type ExpoClientConfig = ExpoConfig & {\n /**\n * Published apps only.\n */\n releaseId?: string;\n revisionId?: string;\n releaseChannel?: string;\n bundleUrl: string;\n hostUri?: string;\n publishedTime?: string;\n /**\n * The Expo account name and slug for this project.\n * @deprecated Prefer `projectId` or `originalFullName` instead for identification and\n * `scopeKey` for scoping due to immutability.\n */\n id?: string;\n /**\n * The original Expo account name and slug for this project. Formatted like `@username/slug`.\n * When unauthenticated, the username is `@anonymous`. For published projects, this value\n * will not change when a project is transferred between accounts or renamed.\n */\n originalFullName?: string;\n /**\n * The Expo account name and slug used for display purposes. Formatted like `@username/slug`.\n * When unauthenticated, the username is `@anonymous`. For published projects, this value\n * may change when a project is transferred between accounts or renamed.\n */\n currentFullName?: string;\n};\n\n/**\n * @hidden\n * A classic manifest https://docs.expo.io/guides/how-expo-works/#expo-manifest\n */\nexport type AppManifest = ExpoClientConfig &\n ExpoGoConfig &\n EASConfig &\n ClientScopingConfig & {\n [key: string]: any;\n };\n\n// @needsAudit @docsMissing\nexport interface PlatformManifest {\n ios?: IOSManifest;\n android?: AndroidManifest;\n web?: WebManifest;\n detach?: {\n scheme?: string;\n [key: string]: any;\n };\n logUrl?: string;\n scheme?: string;\n hostUri?: string;\n developer?: string;\n [key: string]: any;\n}\n\n// @needsAudit @docsMissing\n/**\n * @hidden\n */\nexport interface NativeConstants {\n name: 'ExponentConstants';\n /**\n * Returns `expo`, `standalone`, or `guest`. This property only applies to the managed workflow\n * and classic builds; for apps built with EAS Build and in bare workflow, the result is\n * always `null`.\n */\n appOwnership: AppOwnership | null;\n debugMode: boolean;\n /**\n * A human-readable name for the device type.\n */\n deviceName?: string;\n /**\n * The [device year class](https://github.com/facebook/device-year-class) of this device.\n * @deprecated Deprecated. Moved to `expo-device` as [`Device.deviceYearClass`](../device/#deviceyearclass).\n */\n deviceYearClass: number | null;\n executionEnvironment: ExecutionEnvironment;\n experienceUrl: string;\n // only nullable on web\n expoRuntimeVersion: string | null;\n /**\n * The version string of the Expo Go app currently running.\n * Returns `null` in bare workflow and web.\n */\n expoVersion: string | null;\n isDetached?: boolean;\n intentUri?: string;\n /**\n * An identifier that is unique to this particular device and whose lifetime is at least as long\n * as the installation of the app.\n * @deprecated `Constants.installationId` is deprecated in favor of generating your own ID and\n * storing it. This API will be removed in SDK 44.\n */\n installationId: string;\n /**\n * `true` if the app is running on a device, `false` if running in a simulator or emulator.\n * @deprecated Deprecated. Use `expo-device`'s [`Device.isDevice`](../device/#deviceisdevice).\n */\n isDevice: boolean;\n isHeadless: boolean;\n linkingUri: string;\n /**\n * The **Info.plist** value for `CFBundleShortVersionString` on iOS and the version name set\n * by `version` in app.json on Android at the time the native app was built.\n * @deprecated Deprecated. Use `expo-application`'s [`Application.nativeApplicationVersion`](../application/#applicationnativeapplicationversion).\n */\n nativeAppVersion: string | null;\n /**\n * The **Info.plist** value for `CFBundleVersion` on iOS (set with `ios.buildNumber` value in\n * **app.json** in a standalone app) and the version code set by `android.versionCode` in\n * **app.json** on Android at the time the native app was built.\n * @deprecated Deprecated. Use `expo-application`'s [`Application.nativeBuildVersion`](../application/#applicationnativebuildversion).\n */\n nativeBuildVersion: string | null;\n /**\n * Classic manifest for Expo apps using classic updates.\n * Returns `null` in bare workflow and when `manifest2` is non-null.\n */\n manifest: AppManifest | null;\n /**\n * New manifest for Expo apps using modern Expo Updates.\n * Returns `null` in bare workflow and when `manifest` is non-null.\n */\n manifest2: Manifest | null;\n /**\n * A string that is unique to the current session of your app. It is different across apps and\n * across multiple launches of the same app.\n */\n sessionId: string;\n /**\n * The default status bar height for the device. Does not factor in changes when location tracking\n * is in use or a phone call is active.\n */\n statusBarHeight: number;\n /**\n * A list of the system font names available on the current device.\n */\n systemFonts: string[];\n systemVersion?: number;\n /**\n * @hidden\n */\n supportedExpoSdks?: string[];\n platform?: PlatformManifest;\n /**\n * Gets the user agent string which would be included in requests sent by a web view running on\n * this device. This is probably not the same user agent you might be providing in your JS `fetch`\n * requests.\n */\n getWebViewUserAgentAsync: () => Promise;\n [key: string]: any;\n}\n\nexport interface Constants extends NativeConstants {\n /**\n * @hidden\n * @warning do not use this property. Use `manifest` by default.\n *\n * In certain cases accessing manifest via this property\n * suppresses important warning about missing manifest.\n */\n __unsafeNoWarnManifest?: AppManifest;\n /**\n * @hidden\n * @warning do not use this property. Use `manifest2` by default.\n *\n * In certain cases accessing manifest via this property\n * suppresses important warning about missing manifest.\n */\n __unsafeNoWarnManifest2?: Manifest;\n}\n","import { Platform } from 'expo-modules-core';\nconst LOCAL_STORAGE_KEY = 'EXPO_ERROR_RECOVERY_STORAGE';\n\nfunction _consumeRecoveryProps(): string | null {\n if (!Platform.isDOMAvailable) return null;\n try {\n const props = localStorage.getItem(LOCAL_STORAGE_KEY);\n localStorage.removeItem(LOCAL_STORAGE_KEY);\n return props;\n } catch (e) {\n // Catches localStorage SecurityError https://github.com/expo/expo/issues/8355\n }\n return null;\n}\n\nexport default {\n get name(): string {\n return 'ExpoErrorRecovery';\n },\n\n saveRecoveryProps(props: string): void {\n if (!Platform.isDOMAvailable) return;\n try {\n localStorage.setItem(LOCAL_STORAGE_KEY, props);\n } catch (e) {\n // Catches localStorage SecurityError https://github.com/expo/expo/issues/8355\n }\n },\n\n recoveredProps: _consumeRecoveryProps(),\n};\n","import { setRecoveryPropsToSave } from './ErroRecoveryStore';\nimport ExpoErrorRecovery from './ExpoErrorRecovery';\nimport './ErrorRecovery.fx';\n\n// @docsMissing\nexport const recoveredProps = _getRecoveredProps();\n\n// @docsMissing\nexport type ErrorRecoveryProps = Record;\n\n// @needsAudit\n/**\n * Set arbitrary error recovery props. If your project crashes in production as a result of a fatal\n * JS error, Expo will reload your project. If you've set these props, they'll be passed to your\n * reloaded project's initial props under `exp.errorRecovery`. Access to `localStorage` is required\n * on web, or else this will simply be a no-op.\n *\n * [Read more about error handling with Expo](/guides/errors).\n * @param props An object which will be passed to your reloaded project's initial props if the\n * project was reloaded as a result of a fatal JS error.\n */\nexport function setRecoveryProps(props: ErrorRecoveryProps): void {\n setRecoveryPropsToSave(props);\n}\n\nfunction _getRecoveredProps(): ErrorRecoveryProps | null {\n if (ExpoErrorRecovery.recoveredProps) {\n return JSON.parse(ExpoErrorRecovery.recoveredProps);\n }\n return null;\n}\n","let recoveredPropsToSave: string | null = null;\n\nexport function getRecoveryPropsToSave(): string | null {\n return recoveredPropsToSave;\n}\n\nexport function setRecoveryPropsToSave(props: { [key: string]: any }): void {\n recoveredPropsToSave = JSON.stringify(props);\n}\n","import { Asset } from 'expo-asset';\n\n// @needsAudit\n/**\n * The different types of assets you can provide to the [`loadAsync()`](#loadAsync) function.\n * A font source can be a URI, a module ID, or an Expo Asset.\n */\nexport type FontSource = string | number | Asset | FontResource;\n\n// @needsAudit\n/**\n * An object used to dictate the resource that is loaded into the provided font namespace when used\n * with [`loadAsync`](#loadasync).\n */\nexport type FontResource = {\n uri: string | number;\n /**\n * _Web Only._ Sets the [`font-display`](#fontdisplay) property for a given typeface in the\n * browser.\n */\n display?: FontDisplay;\n};\n\n// @needsAudit\n/**\n * __Web Only__. Sets the [font-display](https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display)\n * for a given typeface. The default font value on web is `FontDisplay.AUTO`.\n * Even though setting the `fontDisplay` does nothing on native platforms, the default behavior\n * emulates `FontDisplay.SWAP` on flagship devices like iOS, Samsung, Pixel, etc. Default\n * functionality varies on One Plus devices. In the browser this value is set in the generated\n * `@font-face` CSS block and not as a style property meaning you cannot dynamically change this\n * value based on the element it's used in.\n */\nexport enum FontDisplay {\n /**\n * __(Default)__ The font display strategy is defined by the user agent or platform.\n * This generally defaults to the text being invisible until the font is loaded.\n * Good for buttons or banners that require a specific treatment.\n */\n AUTO = 'auto',\n /**\n * Fallback text is rendered immediately with a default font while the desired font is loaded.\n * This is good for making the content appear to load instantly and is usually preferred.\n */\n SWAP = 'swap',\n /**\n * The text will be invisible until the font has loaded. If the font fails to load then nothing\n * will appear - it's best to turn this off when debugging missing text.\n */\n BLOCK = 'block',\n /**\n * Splits the behavior between `SWAP` and `BLOCK`.\n * There will be a [100ms timeout](https://developers.google.com/web/updates/2016/02/font-display?hl=en)\n * where the text with a custom font is invisible, after that the text will either swap to the\n * styled text or it'll show the unstyled text and continue to load the custom font. This is good\n * for buttons that need a custom font but should also be quickly available to screen-readers.\n */\n FALLBACK = 'fallback',\n /**\n * This works almost identically to `FALLBACK`, the only difference is that the browser will\n * decide to load the font based on slow connection speed or critical resource demand.\n */\n OPTIONAL = 'optional',\n}\n\n// @needsAudit\n/**\n * Object used to query fonts for unloading.\n */\nexport type UnloadFontOptions = Pick;\n","import { CodedError, Platform } from 'expo-modules-core';\nimport FontObserver from 'fontfaceobserver';\n\nimport { UnloadFontOptions } from './Font';\nimport { FontDisplay, FontResource } from './Font.types';\n\nfunction getFontFaceStyleSheet(): CSSStyleSheet | null {\n if (!Platform.isDOMAvailable) {\n return null;\n }\n const styleSheet = getStyleElement();\n return styleSheet.sheet ? (styleSheet.sheet as CSSStyleSheet) : null;\n}\n\ntype RuleItem = { rule: CSSFontFaceRule; index: number };\n\nfunction getFontFaceRules(): RuleItem[] {\n const sheet = getFontFaceStyleSheet();\n if (sheet) {\n // @ts-ignore: rule iterator\n const rules = [...sheet.cssRules];\n\n const items: RuleItem[] = [];\n\n for (let i = 0; i < rules.length; i++) {\n const rule = rules[i];\n if (rule instanceof CSSFontFaceRule) {\n items.push({ rule, index: i });\n }\n }\n return items;\n }\n return [];\n}\n\nfunction getFontFaceRulesMatchingResource(\n fontFamilyName: string,\n options?: UnloadFontOptions\n): RuleItem[] {\n const rules = getFontFaceRules();\n return rules.filter(({ rule }) => {\n return (\n rule.style.fontFamily === fontFamilyName &&\n (options && options.display ? options.display === (rule.style as any).fontDisplay : true)\n );\n });\n}\n\nexport default {\n get name(): string {\n return 'ExpoFontLoader';\n },\n\n async unloadAllAsync(): Promise {\n if (!Platform.isDOMAvailable) return;\n\n const element = document.getElementById(ID);\n if (element && element instanceof HTMLStyleElement) {\n document.removeChild(element);\n }\n },\n\n async unloadAsync(fontFamilyName: string, options?: UnloadFontOptions): Promise {\n const sheet = getFontFaceStyleSheet();\n if (!sheet) return;\n const items = getFontFaceRulesMatchingResource(fontFamilyName, options);\n for (const item of items) {\n sheet.deleteRule(item.index);\n }\n },\n\n async loadAsync(fontFamilyName: string, resource: FontResource): Promise {\n if (!Platform.isDOMAvailable) {\n return;\n }\n\n const canInjectStyle = document.head && typeof document.head.appendChild === 'function';\n if (!canInjectStyle) {\n throw new CodedError(\n 'ERR_WEB_ENVIRONMENT',\n `The browser's \\`document.head\\` element doesn't support injecting fonts.`\n );\n }\n\n const style = _createWebStyle(fontFamilyName, resource);\n document.head!.appendChild(style);\n\n if (!isFontLoadingListenerSupported()) {\n return;\n }\n\n return new FontObserver(fontFamilyName, { display: resource.display }).load();\n },\n};\n\nconst ID = 'expo-generated-fonts';\n\nfunction getStyleElement(): HTMLStyleElement {\n const element = document.getElementById(ID);\n if (element && element instanceof HTMLStyleElement) {\n return element;\n }\n const styleElement = document.createElement('style');\n styleElement.id = ID;\n styleElement.type = 'text/css';\n return styleElement;\n}\n\nfunction _createWebStyle(fontFamily: string, resource: FontResource): HTMLStyleElement {\n const fontStyle = `@font-face {\n font-family: ${fontFamily};\n src: url(${resource.uri});\n font-display: ${resource.display || FontDisplay.AUTO};\n }`;\n\n const styleElement = getStyleElement();\n // @ts-ignore: TypeScript does not define HTMLStyleElement::styleSheet. This is just for IE and\n // possibly can be removed if it's unnecessary on IE 11.\n if (styleElement.styleSheet) {\n const styleElementIE = styleElement as any;\n styleElementIE.styleSheet.cssText = styleElementIE.styleSheet.cssText\n ? styleElementIE.styleSheet.cssText + fontStyle\n : fontStyle;\n } else {\n const textNode = document.createTextNode(fontStyle);\n styleElement.appendChild(textNode);\n }\n return styleElement;\n}\n\nfunction isFontLoadingListenerSupported(): boolean {\n const { userAgent } = window.navigator;\n // WebKit is broken https://github.com/bramstein/fontfaceobserver/issues/95\n const isIOS = !!userAgent.match(/iPad|iPhone/i);\n const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n // Edge is broken https://github.com/bramstein/fontfaceobserver/issues/109#issuecomment-333356795\n const isEdge = userAgent.includes('Edge');\n // Internet Explorer\n const isIE = userAgent.includes('Trident');\n // Firefox\n const isFirefox = userAgent.includes('Firefox');\n return !isSafari && !isIOS && !isEdge && !isIE && !isFirefox;\n}\n","import { Asset } from 'expo-asset';\nimport { CodedError } from 'expo-modules-core';\n\nimport ExpoFontLoader from './ExpoFontLoader';\nimport { FontDisplay } from './Font';\nimport { FontResource, FontSource } from './Font.types';\n\nfunction uriFromFontSource(asset: any): string | null {\n if (typeof asset === 'string') {\n return asset || null;\n } else if (typeof asset === 'object') {\n return asset.uri || asset.localUri || null;\n }\n return null;\n}\n\nfunction displayFromFontSource(asset: any): FontDisplay | undefined {\n return asset.display || FontDisplay.AUTO;\n}\n\nexport function fontFamilyNeedsScoping(name: string): boolean {\n return false;\n}\n\nexport function getAssetForSource(source: FontSource): Asset | FontResource {\n const uri = uriFromFontSource(source);\n const display = displayFromFontSource(source);\n\n if (!uri || typeof uri !== 'string') {\n throwInvalidSourceError(uri);\n }\n\n return {\n uri: uri!,\n display,\n };\n}\n\nfunction throwInvalidSourceError(source: any): never {\n let type: string = typeof source;\n if (type === 'object') type = JSON.stringify(source, null, 2);\n throw new CodedError(\n `ERR_FONT_SOURCE`,\n `Expected font asset of type \\`string | FontResource | Asset\\` (number is not supported on web) instead got: ${type}`\n );\n}\n\nexport async function loadSingleFontAsync(\n name: string,\n input: Asset | FontResource\n): Promise {\n if (typeof input !== 'object' || typeof input.uri !== 'string' || (input as any).downloadAsync) {\n throwInvalidSourceError(input);\n }\n\n await ExpoFontLoader.loadAsync(name, input);\n}\n\nexport function getNativeFontName(name: string): string {\n return name;\n}\n","import { CodedError, UnavailabilityError } from 'expo-modules-core';\n\nimport ExpoFontLoader from './ExpoFontLoader';\nimport { FontDisplay, FontSource, FontResource, UnloadFontOptions } from './Font.types';\nimport {\n getAssetForSource,\n loadSingleFontAsync,\n fontFamilyNeedsScoping,\n getNativeFontName,\n} from './FontLoader';\n\nconst loaded: { [name: string]: boolean } = {};\nconst loadPromises: { [name: string]: Promise } = {};\n\n// @needsAudit\n// note(brentvatne): at some point we may want to warn if this is called outside of a managed app.\n/**\n * Used to transform font family names to the scoped name. This does not need to\n * be called in standalone or bare apps but it will return unscoped font family\n * names if it is called in those contexts.\n *\n * @param fontFamily Name of font to process.\n * @returns Returns a name processed for use with the [current workflow](https://docs.expo.io/introduction/managed-vs-bare/).\n */\nexport function processFontFamily(fontFamily: string | null): string | null {\n if (!fontFamily || !fontFamilyNeedsScoping(fontFamily)) {\n return fontFamily;\n }\n\n if (!isLoaded(fontFamily)) {\n if (__DEV__) {\n if (isLoading(fontFamily)) {\n console.error(\n `You started loading the font \"${fontFamily}\", but used it before it finished loading. You need to wait for Font.loadAsync to complete before using the font.`\n );\n } else {\n console.error(\n `fontFamily \"${fontFamily}\" is not a system font and has not been loaded through Font.loadAsync.\\n\n- If you intended to use a system font, make sure you typed the name correctly and that it is supported by your device operating system.\\n\n- If this is a custom font, be sure to load it with Font.loadAsync.`\n );\n }\n }\n\n return 'System';\n }\n\n return `ExpoFont-${getNativeFontName(fontFamily)}`;\n}\n\n// @needsAudit\n/**\n * Synchronously detect if the font for `fontFamily` has finished loading.\n *\n * @param fontFamily The name used to load the `FontResource`.\n * @return Returns `true` if the font has fully loaded.\n */\nexport function isLoaded(fontFamily: string): boolean {\n return fontFamily in loaded;\n}\n\n// @needsAudit\n/**\n * Synchronously detect if the font for `fontFamily` is still being loaded.\n *\n * @param fontFamily The name used to load the `FontResource`.\n * @returns Returns `true` if the font is still loading.\n */\nexport function isLoading(fontFamily: string): boolean {\n return fontFamily in loadPromises;\n}\n\n// @needsAudit\n/**\n * Highly efficient method for loading fonts from static or remote resources which can then be used\n * with the platform's native text elements. In the browser this generates a `@font-face` block in\n * a shared style sheet for fonts. No CSS is needed to use this method.\n *\n * @param fontFamilyOrFontMap string or map of values that can be used as the [`fontFamily`](https://reactnative.dev/docs/text#style)\n * style prop with React Native Text elements.\n * @param source the font asset that should be loaded into the `fontFamily` namespace.\n *\n * @return Returns a promise that fulfils when the font has loaded. Often you may want to wrap the\n * method in a `try/catch/finally` to ensure the app continues if the font fails to load.\n */\nexport async function loadAsync(\n fontFamilyOrFontMap: string | Record,\n source?: FontSource\n): Promise {\n if (typeof fontFamilyOrFontMap === 'object') {\n if (source) {\n throw new CodedError(\n `ERR_FONT_API`,\n `No fontFamily can be used for the provided source: ${source}. The second argument of \\`loadAsync()\\` can only be used with a \\`string\\` value as the first argument.`\n );\n }\n const fontMap = fontFamilyOrFontMap;\n const names = Object.keys(fontMap);\n await Promise.all(names.map((name) => loadFontInNamespaceAsync(name, fontMap[name])));\n return;\n }\n\n return await loadFontInNamespaceAsync(fontFamilyOrFontMap, source);\n}\n\nasync function loadFontInNamespaceAsync(\n fontFamily: string,\n source?: FontSource | null\n): Promise {\n if (!source) {\n throw new CodedError(\n `ERR_FONT_SOURCE`,\n `Cannot load null or undefined font source: { \"${fontFamily}\": ${source} }. Expected asset of type \\`FontSource\\` for fontFamily of name: \"${fontFamily}\"`\n );\n }\n\n if (loaded[fontFamily]) {\n return;\n }\n\n if (loadPromises.hasOwnProperty(fontFamily)) {\n return loadPromises[fontFamily];\n }\n\n // Important: we want all callers that concurrently try to load the same font to await the same\n // promise. If we're here, we haven't created the promise yet. To ensure we create only one\n // promise in the program, we need to create the promise synchronously without yielding the event\n // loop from this point.\n\n const asset = getAssetForSource(source);\n loadPromises[fontFamily] = (async () => {\n try {\n await loadSingleFontAsync(fontFamily, asset);\n loaded[fontFamily] = true;\n } finally {\n delete loadPromises[fontFamily];\n }\n })();\n\n await loadPromises[fontFamily];\n}\n\n// @needsAudit\n/**\n * Unloads all the custom fonts. This is used for testing.\n */\nexport async function unloadAllAsync(): Promise {\n if (!ExpoFontLoader.unloadAllAsync) {\n throw new UnavailabilityError('expo-font', 'unloadAllAsync');\n }\n\n if (Object.keys(loadPromises).length) {\n throw new CodedError(\n `ERR_UNLOAD`,\n `Cannot unload fonts while they're still loading: ${Object.keys(loadPromises).join(', ')}`\n );\n }\n\n for (const fontFamily of Object.keys(loaded)) {\n delete loaded[fontFamily];\n }\n\n await ExpoFontLoader.unloadAllAsync();\n}\n\n// @needsAudit\n/**\n * Unload custom fonts matching the `fontFamily`s and display values provided.\n * Because fonts are automatically unloaded on every platform this is mostly used for testing.\n *\n * @param fontFamilyOrFontMap The name or names of the custom fonts that will be unloaded.\n * @param options When `fontFamilyOrFontMap` is a string, this should be the font source used to load\n * the custom font originally.\n */\nexport async function unloadAsync(\n fontFamilyOrFontMap: string | Record,\n options?: UnloadFontOptions\n): Promise {\n if (!ExpoFontLoader.unloadAsync) {\n throw new UnavailabilityError('expo-font', 'unloadAsync');\n }\n if (typeof fontFamilyOrFontMap === 'object') {\n if (options) {\n throw new CodedError(\n `ERR_FONT_API`,\n `No fontFamily can be used for the provided options: ${options}. The second argument of \\`unloadAsync()\\` can only be used with a \\`string\\` value as the first argument.`\n );\n }\n const fontMap = fontFamilyOrFontMap;\n const names = Object.keys(fontMap);\n await Promise.all(names.map((name) => unloadFontInNamespaceAsync(name, fontMap[name])));\n return;\n }\n\n return await unloadFontInNamespaceAsync(fontFamilyOrFontMap, options);\n}\n\nasync function unloadFontInNamespaceAsync(\n fontFamily: string,\n options?: UnloadFontOptions | null\n): Promise {\n if (!loaded[fontFamily]) {\n return;\n } else {\n delete loaded[fontFamily];\n }\n\n // Important: we want all callers that concurrently try to load the same font to await the same\n // promise. If we're here, we haven't created the promise yet. To ensure we create only one\n // promise in the program, we need to create the promise synchronously without yielding the event\n // loop from this point.\n\n const nativeFontName = getNativeFontName(fontFamily);\n\n if (!nativeFontName) {\n throw new CodedError(`ERR_FONT_FAMILY`, `Cannot unload an empty name`);\n }\n\n await ExpoFontLoader.unloadAsync(nativeFontName, options);\n}\n\nexport { FontDisplay, FontSource, FontResource, UnloadFontOptions };\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n// find the complete implementation of crypto (msCrypto) on IE11.\nvar getRandomValues = typeof crypto != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto != 'undefined' && typeof msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto);\nvar rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\nexport default function rng() {\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n\n return getRandomValues(rnds8);\n}","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex; // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n\n return [bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]]].join('');\n}\n\nexport default bytesToUuid;","import rng from './rng.js';\nimport bytesToUuid from './bytesToUuid.js';\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof options == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nexport default v4;","import { PermissionResponse } from 'expo-modules-core';\n\n// @needsAudit\n/**\n * Alias for `PermissionResponse` type exported by `unimodules-permission-interface`.\n */\nexport type CameraPermissionResponse = PermissionResponse;\n\n// @needsAudit\n/**\n * Extends [PermissionResponse](permissions.md#permissionresponse) type exported by\n * `unimodules-permission-interface` and contains additional iOS-specific field.\n */\nexport type MediaLibraryPermissionResponse = CameraPermissionResponse & {\n /**\n * @platform ios\n */\n accessPrivileges?: 'all' | 'limited' | 'none';\n};\n\n// @needsAudit\n/**\n * An alias for the `MediaLibraryPermissionResponse` object.\n * @deprecated Use `ImagePicker.MediaLibraryPermissionResponse`\n */\nexport type CameraRollPermissionResponse = MediaLibraryPermissionResponse;\n\n// @needsAudit\nexport enum MediaTypeOptions {\n /**\n * Images and videos.\n */\n All = 'All',\n /**\n * Only videos.\n */\n Videos = 'Videos',\n /**\n * Only images.\n */\n Images = 'Images',\n}\n\n// @needsAudit\nexport enum VideoExportPreset {\n /**\n * Resolution: __Unchanged__ •\n * Video compression: __None__ •\n * Audio compression: __None__\n */\n Passthrough = 0,\n /**\n * Resolution: __Depends on the device__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n LowQuality = 1,\n /**\n * Resolution: __Depends on the device__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n MediumQuality = 2,\n /**\n * Resolution: __Depends on the device__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n HighestQuality = 3,\n /**\n * Resolution: __640 × 480__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n H264_640x480 = 4,\n /**\n * Resolution: __960 × 540__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n H264_960x540 = 5,\n /**\n * Resolution: __1280 × 720__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n H264_1280x720 = 6,\n /**\n * Resolution: __1920 × 1080__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n H264_1920x1080 = 7,\n /**\n * Resolution: __3840 × 2160__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n H264_3840x2160 = 8,\n /**\n * Resolution: __1920 × 1080__ •\n * Video compression: __HEVC__ •\n * Audio compression: __AAC__\n */\n HEVC_1920x1080 = 9,\n /**\n * Resolution: __3840 × 2160__ •\n * Video compression: __HEVC__ •\n * Audio compression: __AAC__\n */\n HEVC_3840x2160 = 10,\n}\n\n// @needsAudit\nexport enum UIImagePickerControllerQualityType {\n /**\n * Highest available resolution.\n */\n High = 0,\n /**\n * Depends on the device.\n */\n Medium = 1,\n /**\n * Depends on the device.\n */\n Low = 2,\n /**\n * 640 × 480\n */\n VGA640x480 = 3,\n /**\n * 1280 × 720\n */\n IFrame1280x720 = 4,\n /**\n * 960 × 540\n */\n IFrame960x540 = 5,\n}\n\n// @docsMissing\nexport enum UIImagePickerPresentationStyle {\n FullScreen = 0,\n PageSheet = 1,\n FormSheet = 2,\n CurrentContext = 3,\n OverFullScreen = 5,\n OverCurrentContext = 6,\n Popover = 7,\n BlurOverFullScreen = 8,\n Automatic = -2,\n}\n\n// @needsAudit\nexport type ImageInfo = {\n /**\n * URI to the local image or video file (usable as the source of an `Image` element, in the case of\n * an image) and `width` and `height` specify the dimensions of the media.\n */\n uri: string;\n /**\n * Width of the image or video.\n */\n width: number;\n /**\n * Height of the image or video.\n */\n height: number;\n /**\n * The type of the asset.\n */\n type?: 'image' | 'video';\n /**\n * The `exif` field is included if the `exif` option is truthy, and is an object containing the\n * image's EXIF data. The names of this object's properties are EXIF tags and the values are the\n * respective EXIF values for those tags.\n */\n exif?: Record;\n /**\n * Included if the `base64` option is truthy, and is a Base64-encoded string of the selected\n * image's JPEG data. If you prepend this with `'data:image/jpeg;base64,'` to create a data URI,\n * you can use it as the source of an `Image` element; for example:\n * ```ts\n * \n * ```\n */\n base64?: string;\n /**\n * Length of the video in milliseconds.\n */\n duration?: number;\n /**\n * Boolean flag which shows if request was cancelled. If asset data have been returned this should\n * always be `false`.\n */\n cancelled: boolean;\n};\n\n// @needsAudit\nexport type ImagePickerErrorResult = {\n /**\n * The error code.\n */\n code: string;\n /**\n * The error message.\n */\n message: string;\n /**\n * The exception which caused the error.\n */\n exception?: string;\n};\n\n// @needsAudit\n/**\n * An object returned when the pick action has been cancelled by the user.\n */\nexport type ImagePickerCancelledResult = { cancelled: true };\n\n// @needsAudit\nexport type ImagePickerResult = ImagePickerCancelledResult | ImageInfo;\n\n// @needsAudit @docsMissing\nexport type ImagePickerMultipleResult =\n | ImagePickerCancelledResult\n | { cancelled: false; selected: ImageInfo[] };\n\n// @needsAudit\nexport type ImagePickerOptions = {\n /**\n * Whether to show a UI to edit the image after it is picked. On Android the user can crop and\n * rotate the image and on iOS simply crop it.\n * @default false\n */\n allowsEditing?: boolean;\n /**\n * An array with two entries `[x, y]` specifying the aspect ratio to maintain if the user is\n * allowed to edit the image (by passing `allowsEditing: true`). This is only applicable on\n * Android, since on iOS the crop rectangle is always a square.\n */\n aspect?: [number, number];\n /**\n * Specify the quality of compression, from `0` to `1`. `0` means compress for small size,\n * `1` means compress for maximum quality.\n * > Note: If the selected image has been compressed before, the size of the output file may be\n * > bigger than the size of the original image.\n */\n quality?: number;\n /**\n * Choose what type of media to pick.\n * @default ImagePicker.MediaTypeOptions.Images\n */\n mediaTypes?: MediaTypeOptions;\n /**\n * Whether to also include the EXIF data for the image. On iOS the EXIF data does not include GPS\n * tags in the camera case.\n */\n exif?: boolean;\n /**\n * Whether to also include the image data in Base64 format.\n */\n base64?: boolean;\n /**\n * Specify preset which will be used to compress selected video.\n * @default ImagePicker.VideoExportPreset.Passthrough\n * @platform ios 11+\n * @deprecated Deprecate: see [iOS videoExportPreset](https://developer.apple.com/documentation/uikit/uiimagepickercontroller/2890964-videoexportpreset?language=objc)\n */\n videoExportPreset?: VideoExportPreset;\n /**\n * Specify the quality of recorded videos. Defaults to `ImagePicker.UIImagePickerControllerQualityType.High`,\n * which is the highest available for the device.\n * @platform ios\n */\n videoQuality?: UIImagePickerControllerQualityType;\n /**\n * Whether or not to allow selecting multiple media files at once.\n * @platform web\n */\n allowsMultipleSelection?: boolean;\n /**\n * Maximum duration, in seconds, for video recording. Setting this to `0` disables the limit.\n * Defaults to `0` (no limit).\n * - **On iOS**, when `allowsEditing` is set to `true`, maximum duration is limited to 10 minutes.\n * This limit is applied automatically, if `0` or no value is specified.\n * - **On Android**, effect of this option depends on support of installed camera app.\n * - **On Web** this option has no effect - the limit is browser-dependant.\n */\n videoMaxDuration?: number;\n /**\n * Choose [presentation style](https://developer.apple.com/documentation/uikit/uiviewcontroller/1621355-modalpresentationstyle?language=objc)\n * to customize view during taking photo/video.\n * @default ImagePicker.UIImagePickerPresentationStyle.Automatic\n * @platform ios\n */\n presentationStyle?: UIImagePickerPresentationStyle;\n};\n\n// @needsAudit\nexport type OpenFileBrowserOptions = {\n /**\n * Choose what type of media to pick.\n * @default ImagePicker.MediaTypeOptions.Images\n */\n mediaTypes: MediaTypeOptions;\n // @docsMissing\n capture?: boolean;\n /**\n * Whether or not to allow selecting multiple media files at once.\n * @platform web\n */\n allowsMultipleSelection: boolean;\n /**\n * Whether to also include the image data in Base64 format.\n */\n base64: boolean;\n};\n\n// @needsAudit @docsMissing\nexport type ExpandImagePickerResult =\n T extends {\n allowsMultipleSelection: true;\n }\n ? ImagePickerMultipleResult\n : ImagePickerResult;\n","import { PermissionResponse, PermissionStatus, Platform } from 'expo-modules-core';\nimport { v4 } from 'uuid';\n\nimport {\n ExpandImagePickerResult,\n ImageInfo,\n ImagePickerMultipleResult,\n ImagePickerResult,\n MediaTypeOptions,\n OpenFileBrowserOptions,\n} from './ImagePicker.types';\n\nconst MediaTypeInput = {\n [MediaTypeOptions.All]: 'video/mp4,video/quicktime,video/x-m4v,video/*,image/*',\n [MediaTypeOptions.Images]: 'image/*',\n [MediaTypeOptions.Videos]: 'video/mp4,video/quicktime,video/x-m4v,video/*',\n};\n\nexport default {\n get name(): string {\n return 'ExponentImagePicker';\n },\n\n async launchImageLibraryAsync({\n mediaTypes = MediaTypeOptions.Images,\n allowsMultipleSelection = false,\n base64 = false,\n }): Promise {\n // SSR guard\n if (!Platform.isDOMAvailable) {\n return { cancelled: true };\n }\n return await openFileBrowserAsync({\n mediaTypes,\n allowsMultipleSelection,\n base64,\n });\n },\n\n async launchCameraAsync({\n mediaTypes = MediaTypeOptions.Images,\n allowsMultipleSelection = false,\n base64 = false,\n }): Promise {\n // SSR guard\n if (!Platform.isDOMAvailable) {\n return { cancelled: true };\n }\n return await openFileBrowserAsync({\n mediaTypes,\n allowsMultipleSelection,\n capture: true,\n base64,\n });\n },\n\n /*\n * Delegate to expo-permissions to request camera permissions\n */\n async getCameraPermissionsAsync() {\n return permissionGrantedResponse();\n },\n async requestCameraPermissionsAsync() {\n return permissionGrantedResponse();\n },\n\n /*\n * Camera roll permissions don't need to be requested on web, so we always\n * respond with granted.\n */\n async getMediaLibraryPermissionsAsync(_writeOnly: boolean) {\n return permissionGrantedResponse();\n },\n async requestMediaLibraryPermissionsAsync(_writeOnly: boolean): Promise {\n return permissionGrantedResponse();\n },\n};\n\nfunction permissionGrantedResponse(): PermissionResponse {\n return {\n status: PermissionStatus.GRANTED,\n expires: 'never',\n granted: true,\n canAskAgain: true,\n };\n}\n\nfunction openFileBrowserAsync({\n mediaTypes,\n capture = false,\n allowsMultipleSelection = false,\n base64,\n}: T): Promise> {\n const mediaTypeFormat = MediaTypeInput[mediaTypes];\n\n const input = document.createElement('input');\n input.style.display = 'none';\n input.setAttribute('type', 'file');\n input.setAttribute('accept', mediaTypeFormat);\n input.setAttribute('id', v4());\n if (allowsMultipleSelection) {\n input.setAttribute('multiple', 'multiple');\n }\n if (capture) {\n input.setAttribute('capture', 'camera');\n }\n document.body.appendChild(input);\n\n return new Promise((resolve, reject) => {\n input.addEventListener('change', async () => {\n if (input.files) {\n if (!allowsMultipleSelection) {\n const img: ImageInfo = await readFile(input.files[0], { base64 });\n resolve({\n ...img,\n } as ExpandImagePickerResult);\n } else {\n const imgs: ImageInfo[] = await Promise.all(\n Array.from(input.files).map((file) => readFile(file, { base64 }))\n );\n resolve({\n cancelled: false,\n selected: imgs,\n } as ExpandImagePickerResult);\n }\n }\n document.body.removeChild(input);\n });\n\n const event = new MouseEvent('click');\n input.dispatchEvent(event);\n });\n}\n\nfunction readFile(targetFile: Blob, options: { base64: boolean }): Promise {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onerror = () => {\n reject(new Error(`Failed to read the selected media because the operation failed.`));\n };\n reader.onload = ({ target }) => {\n const uri = (target as any).result;\n const returnRaw = () =>\n resolve({\n uri,\n width: 0,\n height: 0,\n cancelled: false,\n });\n\n if (typeof uri === 'string') {\n const image = new Image();\n image.src = uri;\n image.onload = () =>\n resolve({\n uri,\n width: image.naturalWidth ?? image.width,\n height: image.naturalHeight ?? image.height,\n cancelled: false,\n // The blob's result cannot be directly decoded as Base64 without\n // first removing the Data-URL declaration preceding the\n // Base64-encoded data. To retrieve only the Base64 encoded string,\n // first remove data:*/*;base64, from the result.\n // https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsDataURL\n ...(options.base64 && { base64: uri.substr(uri.indexOf(',') + 1) }),\n });\n image.onerror = () => returnRaw();\n } else {\n returnRaw();\n }\n };\n\n reader.readAsDataURL(targetFile);\n });\n}\n","import {\n PermissionStatus,\n PermissionExpiration,\n PermissionHookOptions,\n createPermissionHook,\n UnavailabilityError,\n CodedError,\n} from 'expo-modules-core';\n\nimport ExponentImagePicker from './ExponentImagePicker';\nimport {\n CameraPermissionResponse,\n CameraRollPermissionResponse,\n MediaLibraryPermissionResponse,\n ImagePickerResult,\n ImagePickerErrorResult,\n MediaTypeOptions,\n ImagePickerOptions,\n VideoExportPreset,\n ExpandImagePickerResult,\n ImageInfo,\n ImagePickerMultipleResult,\n ImagePickerCancelledResult,\n OpenFileBrowserOptions,\n UIImagePickerControllerQualityType,\n UIImagePickerPresentationStyle,\n} from './ImagePicker.types';\n\nfunction validateOptions(options: ImagePickerOptions) {\n const { aspect, quality, videoMaxDuration } = options;\n\n if (aspect != null) {\n const [x, y] = aspect;\n\n if (x <= 0 || y <= 0) {\n throw new CodedError(\n 'ERR_INVALID_ARGUMENT',\n `Invalid aspect ratio values ${x}:${y}. Provide positive numbers.`\n );\n }\n }\n\n if (quality && (quality < 0 || quality > 1)) {\n throw new CodedError(\n 'ERR_INVALID_ARGUMENT',\n `Invalid 'quality' value ${quality}. Provide a value between 0 and 1.`\n );\n }\n\n if (videoMaxDuration && videoMaxDuration < 0) {\n throw new CodedError(\n 'ERR_INVALID_ARGUMENT',\n `Invalid 'videoMaxDuration' value ${videoMaxDuration}. Provide a non-negative number.`\n );\n }\n\n return options;\n}\n\n// @needsAudit\n/**\n * Checks user's permissions for accessing camera.\n * @return A promise that fulfills with an object of type [CameraPermissionResponse](#imagepickercamerapermissionresponse).\n */\nexport async function getCameraPermissionsAsync(): Promise {\n return ExponentImagePicker.getCameraPermissionsAsync();\n}\n\n/**\n * @deprecated Use `getMediaLibraryPermissionsAsync()` instead.\n */\nexport async function getCameraRollPermissionsAsync(): Promise {\n console.warn(\n 'ImagePicker.getCameraRollPermissionsAsync() is deprecated in favour of ImagePicker.getMediaLibraryPermissionsAsync()'\n );\n return getMediaLibraryPermissionsAsync();\n}\n\n// @needsAudit\n/**\n * Checks user's permissions for accessing photos.\n * @param writeOnly Whether to request write or read and write permissions. Defaults to `false`\n * @return A promise that fulfills with an object of type [MediaLibraryPermissionResponse](#imagepickercamerarollpermissionresponse).\n */\nexport async function getMediaLibraryPermissionsAsync(\n writeOnly: boolean = false\n): Promise {\n const imagePickerMethod = ExponentImagePicker.getMediaLibraryPermissionsAsync;\n return imagePickerMethod(writeOnly);\n}\n\n// @needsAudit\n/**\n * Asks the user to grant permissions for accessing camera. This does nothing on web because the\n * browser camera is not used.\n * @return A promise that fulfills with an object of type [CameraPermissionResponse](#imagepickercamerapermissionresponse).\n */\nexport async function requestCameraPermissionsAsync(): Promise {\n return ExponentImagePicker.requestCameraPermissionsAsync();\n}\n\n/**\n * @deprecated Use `requestMediaLibraryPermissionsAsync()` instead.\n */\nexport async function requestCameraRollPermissionsAsync(): Promise {\n console.warn(\n 'ImagePicker.requestCameraRollPermissionsAsync() is deprecated in favour of ImagePicker.requestMediaLibraryPermissionsAsync()'\n );\n return requestMediaLibraryPermissionsAsync();\n}\n\n// @needsAudit\n/**\n * Asks the user to grant permissions for accessing user's photo. This method does nothing on web.\n * @param writeOnly Whether to request write or read and write permissions. Defaults to `false`\n * @return A promise that fulfills with an object of type [MediaLibraryPermissionResponse](#imagepickercamerarollpermissionresponse).\n */\nexport async function requestMediaLibraryPermissionsAsync(\n writeOnly: boolean = false\n): Promise {\n const imagePickerMethod = ExponentImagePicker.requestMediaLibraryPermissionsAsync;\n return imagePickerMethod(writeOnly);\n}\n\n// @needsAudit\n/**\n * Check or request permissions to access the media library.\n * This uses both `requestMediaLibraryPermissionsAsync` and `getMediaLibraryPermissionsAsync` to interact with the permissions.\n *\n * @example\n * ```ts\n * const [status, requestPermission] = ImagePicker.useMediaLibraryPermissions();\n * ```\n */\nexport const useMediaLibraryPermissions = createPermissionHook<\n MediaLibraryPermissionResponse,\n { writeOnly?: boolean }\n>({\n // TODO(cedric): permission requesters should have an options param or a different requester\n getMethod: (options) => getMediaLibraryPermissionsAsync(options?.writeOnly),\n requestMethod: (options) => requestMediaLibraryPermissionsAsync(options?.writeOnly),\n});\n\n// @needsAudit\n/**\n * Check or request permissions to access the camera.\n * This uses both `requestCameraPermissionsAsync` and `getCameraPermissionsAsync` to interact with the permissions.\n *\n * @example\n * ```ts\n * const [status, requestPermission] = ImagePicker.useCameraPermissions();\n * ```\n */\nexport const useCameraPermissions = createPermissionHook({\n getMethod: getCameraPermissionsAsync,\n requestMethod: requestCameraPermissionsAsync,\n});\n\n// @needsAudit\n/**\n * Android system sometimes kills the `MainActivity` after the `ImagePicker` finishes. When this\n * happens, we lost the data selected from the `ImagePicker`. However, you can retrieve the lost\n * data by calling `getPendingResultAsync`. You can test this functionality by turning on\n * `Don't keep activities` in the developer options.\n * @return\n * - **On Android:** a promise that resolves to an array of objects of exactly same type as in\n * `ImagePicker.launchImageLibraryAsync` or `ImagePicker.launchCameraAsync` if the `ImagePicker`\n * finished successfully. Otherwise, to the array of [`ImagePickerErrorResult`](#imagepickerimagepickererrorresult).\n * - **On other platforms:** an empty array.\n */\nexport async function getPendingResultAsync(): Promise<\n (ImagePickerResult | ImagePickerErrorResult)[]\n> {\n if (ExponentImagePicker.getPendingResultAsync) {\n return ExponentImagePicker.getPendingResultAsync();\n }\n return [];\n}\n\n// @needsAudit\n/**\n * Display the system UI for taking a photo with the camera. Requires `Permissions.CAMERA`.\n * On Android and iOS 10 `Permissions.CAMERA_ROLL` is also required. On mobile web, this must be\n * called immediately in a user interaction like a button press, otherwise the browser will bloc\n * the request without a warning.\n * > **Note:** Make sure that you handle `MainActivity` destruction on **Android**. See [ImagePicker.getPendingResultAsync](#imagepickergetpendingresultasync).\n * > **Notes for Web:** The system UI can only be shown after user activation (e.g. a `Button` press).\n * Therefore, calling `launchCameraAsync` in `componentDidMount`, for example, will **not** work as\n * intended. The `cancelled` event will not be returned in the browser due to platform restrictions\n * and inconsistencies across browsers.\n * @param options An `ImagePickerOptions` object.\n * @return If the user cancelled the action, the method returns `{ cancelled: true }`. Otherwise,\n * this method returns information about the selected media item. When the chosen item is an image,\n * this method returns `{ cancelled: false, type: 'image', uri, width, height, exif, base64 }`;\n * when the item is a video, this method returns `{ cancelled: false, type: 'video', uri, width, height, duration }`.\n */\nexport async function launchCameraAsync(\n options: ImagePickerOptions = {}\n): Promise {\n if (!ExponentImagePicker.launchCameraAsync) {\n throw new UnavailabilityError('ImagePicker', 'launchCameraAsync');\n }\n return await ExponentImagePicker.launchCameraAsync(validateOptions(options));\n}\n\n// @needsAudit\n/**\n * Display the system UI for choosing an image or a video from the phone's library.\n * Requires `Permissions.MEDIA_LIBRARY` on iOS 10 only. On mobile web, this must be called\n * immediately in a user interaction like a button press, otherwise the browser will block the\n * request without a warning.\n * **Animated GIFs support** If the selected image is an animated GIF, the result image will be an\n * animated GIF too if and only if `quality` is set to `undefined` and `allowsEditing` is set to `false`.\n * Otherwise compression and/or cropper will pick the first frame of the GIF and return it as the\n * result (on Android the result will be a PNG, on iOS — GIF).\n * > **Notes for Web:** The system UI can only be shown after user activation (e.g. a `Button` press).\n * Therefore, calling `launchImageLibraryAsync` in `componentDidMount`, for example, will **not**\n * work as intended. The `cancelled` event will not be returned in the browser due to platform\n * restrictions and inconsistencies across browsers.\n * @param options An object extended by [`ImagePickerOptions`](#imagepickeroptions).\n * @return If the user cancelled the action, the method returns `{ cancelled: true }`. Otherwise,\n * this method returns information about the selected media item. When the chosen item is an image,\n * this method returns `{ cancelled: false, type: 'image', uri, width, height, exif, base64 }`;\n * when the item is a video, this method returns `{ cancelled: false, type: 'video', uri, width, height, duration }`.\n */\nexport async function launchImageLibraryAsync(\n options?: T\n): Promise> {\n if (!ExponentImagePicker.launchImageLibraryAsync) {\n throw new UnavailabilityError('ImagePicker', 'launchImageLibraryAsync');\n }\n return await ExponentImagePicker.launchImageLibraryAsync(options ?? {});\n}\n\nexport {\n MediaTypeOptions,\n ImagePickerOptions,\n ImagePickerResult,\n ImagePickerErrorResult,\n VideoExportPreset,\n CameraPermissionResponse,\n CameraRollPermissionResponse,\n MediaLibraryPermissionResponse,\n PermissionStatus,\n PermissionExpiration,\n PermissionHookOptions,\n ImageInfo,\n ImagePickerMultipleResult,\n ImagePickerCancelledResult,\n OpenFileBrowserOptions,\n ExpandImagePickerResult,\n UIImagePickerControllerQualityType,\n UIImagePickerPresentationStyle,\n};\n","import { Platform } from 'expo-modules-core';\nimport invariant from 'invariant';\n\nimport { NativeURLListener, URLListener } from './Linking.types';\n\nconst EventTypes = ['url'];\n\nconst listeners: { listener: URLListener; nativeListener: NativeURLListener }[] = [];\n\nexport default {\n addEventListener(type: 'url', listener: URLListener): void {\n invariant(\n EventTypes.indexOf(type) !== -1,\n `Linking.addEventListener(): ${type} is not a valid event`\n );\n const nativeListener: NativeURLListener = (nativeEvent) =>\n listener({ url: window.location.href, nativeEvent });\n listeners.push({ listener, nativeListener });\n window.addEventListener('message', nativeListener, false);\n },\n\n removeEventListener(type: 'url', listener: URLListener): void {\n invariant(\n EventTypes.indexOf(type) !== -1,\n `Linking.removeEventListener(): ${type} is not a valid event.`\n );\n const listenerIndex = listeners.findIndex((pair) => pair.listener === listener);\n invariant(\n listenerIndex !== -1,\n 'Linking.removeEventListener(): cannot remove an unregistered event listener.'\n );\n const nativeListener = listeners[listenerIndex].nativeListener;\n window.removeEventListener('message', nativeListener, false);\n listeners.splice(listenerIndex, 1);\n },\n\n async canOpenURL(url: string): Promise {\n // In reality this should be able to return false for links like `chrome://` on chrome.\n return true;\n },\n\n async getInitialURL(): Promise {\n if (!Platform.isDOMAvailable) return '';\n return window.location.href;\n },\n\n async openURL(url: string): Promise {\n if (Platform.isDOMAvailable) {\n // @ts-ignore\n window.location = new URL(url, window.location).toString();\n }\n },\n};\n","import Constants, { ExecutionEnvironment } from 'expo-constants';\nimport { Platform } from 'expo-modules-core';\n\nconst LINKING_GUIDE_URL = `https://docs.expo.io/guides/linking/`;\n\nexport function hasCustomScheme(): boolean {\n if (Constants.executionEnvironment === ExecutionEnvironment.Bare) {\n // Bare always uses a custom scheme.\n return true;\n } else if (Constants.executionEnvironment === ExecutionEnvironment.Standalone) {\n // Standalone uses a custom scheme when one is defined.\n const manifestSchemes = collectManifestSchemes();\n return !!manifestSchemes.length;\n }\n // Store client uses the default scheme.\n return false;\n}\n\ntype SchemeConfig = {\n scheme?: string | string[];\n};\n\nfunction getSchemes(config: SchemeConfig | null | undefined): string[] {\n if (config) {\n if (Array.isArray(config.scheme)) {\n const validate = (value: any): value is string => {\n return typeof value === 'string';\n };\n return config.scheme.filter(validate);\n } else if (typeof config.scheme === 'string') {\n return [config.scheme];\n }\n }\n return [];\n}\n\n// Valid schemes for the Expo client.\nconst EXPO_CLIENT_SCHEMES = Platform.select({\n // Results from `npx uri-scheme list --info-path ios/Exponent/Supporting/Info.plist`\n ios: [\n 'exp',\n 'exps',\n 'fb1696089354000816',\n 'host.exp.exponent',\n 'com.googleusercontent.apps.603386649315-vp4revvrcgrcjme51ebuhbkbspl048l9',\n ],\n // Collected manually\n android: ['exp', 'exps'],\n});\n\n/**\n * Collect a list of platform schemes from the manifest.\n *\n * This method is based on the `Scheme` modules from `@expo/config-plugins`\n * which are used for collecting the schemes before prebuilding a native app.\n *\n * - iOS: scheme -> ios.scheme -> ios.bundleIdentifier\n * - Android: scheme -> android.scheme -> android.package\n */\nexport function collectManifestSchemes(): string[] {\n // ios.scheme, android.scheme, and scheme as an array are not yet added to the\n // Expo config spec, but there's no harm in adding them early.\n // They'll be added when we drop support for `expo build` or decide\n // to have them only work with `eas build`.\n const platformManifest =\n (Platform.select({\n ios: Constants.manifest?.ios ?? Constants.manifest2?.extra?.expoClient?.ios,\n android: Constants.manifest?.android ?? Constants.manifest2?.extra?.expoClient?.android,\n web: {},\n }) as SchemeConfig) ?? {};\n\n const schemes = getSchemes(Constants.manifest ?? Constants.manifest2?.extra?.expoClient);\n\n // Add the detached scheme after the manifest scheme for legacy ExpoKit support.\n if (Constants.manifest?.detach?.scheme) {\n schemes.push(Constants.manifest.detach.scheme);\n }\n if (Constants.manifest2?.extra?.expoClient?.detach?.scheme) {\n schemes.push(Constants.manifest2.extra.expoClient.detach.scheme);\n }\n\n // Add the unimplemented platform schemes last.\n schemes.push(...getSchemes(platformManifest));\n\n return schemes;\n}\n\nfunction getNativeAppIdScheme(): string | null {\n // Add the native application identifier to the list of schemes for parity with `expo build`.\n // The native app id has been added to builds for a long time to support Google Sign-In.\n return (\n Platform.select({\n ios:\n Constants.manifest?.ios?.bundleIdentifier ??\n Constants.manifest2?.extra?.expoClient?.ios?.bundleIdentifier,\n // TODO: This may change to android.applicationId in the future.\n android:\n Constants.manifest?.android?.package ??\n Constants.manifest2?.extra?.expoClient?.android?.package,\n }) ?? null\n );\n}\n\nexport function hasConstantsManifest(): boolean {\n // Ensure the user has linked the expo-constants manifest in bare workflow.\n return (\n !!Object.keys(Constants.manifest ?? {}).length ||\n !!Object.keys(Constants.manifest2 ?? {}).length\n );\n}\n\nexport function resolveScheme(props: { scheme?: string; isSilent?: boolean }): string {\n if (\n Constants.executionEnvironment !== ExecutionEnvironment.StoreClient &&\n !hasConstantsManifest()\n ) {\n throw new Error(\n `expo-linking needs access to the expo-constants manifest (app.json or app.config.js) to determine what URI scheme to use. Setup the manifest and rebuild: https://github.com/expo/expo/blob/master/packages/expo-constants/README.md`\n );\n }\n\n const manifestSchemes = collectManifestSchemes();\n const nativeAppId = getNativeAppIdScheme();\n\n if (!manifestSchemes.length) {\n if (__DEV__ && !props.isSilent) {\n // Assert a config warning if no scheme is setup yet. `isSilent` is used for warnings, but we'll ignore it for exceptions.\n console.warn(\n `Linking requires a build-time setting \\`scheme\\` in the project's Expo config (app.config.js or app.json) for production apps, if it's left blank, your app may crash. The scheme does not apply to development in the Expo client but you should add it as soon as you start working with Linking to avoid creating a broken build. Learn more: ${LINKING_GUIDE_URL}`\n );\n } else if (!__DEV__ || Constants.executionEnvironment !== ExecutionEnvironment.StoreClient) {\n // Throw in production or when not in store client. Use the __DEV__ flag so users can test this functionality with `expo start --no-dev`,\n throw new Error(\n 'Cannot make a deep link into a standalone app with no custom scheme defined'\n );\n }\n }\n\n // In the Expo client...\n if (Constants.executionEnvironment === ExecutionEnvironment.StoreClient) {\n if (props.scheme) {\n // This enables users to use the fb or google redirects on iOS in the Expo client.\n if (EXPO_CLIENT_SCHEMES.includes(props.scheme)) {\n return props.scheme;\n }\n // Silently ignore to make bare workflow development easier.\n }\n // Fallback to the default client scheme.\n return 'exp';\n }\n\n const schemes = [...manifestSchemes, nativeAppId].filter(Boolean);\n\n if (props.scheme) {\n if (__DEV__) {\n // Bare workflow development assertion about the provided scheme matching the Expo config.\n if (!schemes.includes(props.scheme) && !props.isSilent) {\n // TODO: Will this cause issues for things like Facebook or Google that use `reversed-client-id://` or `fb:/`?\n // Traditionally these APIs don't use the Linking API directly.\n console.warn(\n `The provided Linking scheme '${\n props.scheme\n }' does not appear in the list of possible URI schemes in your Expo config. Expected one of: ${schemes\n .map((scheme) => `'${scheme}'`)\n .join(', ')}`\n );\n }\n }\n // Return the user provided value.\n return props.scheme;\n }\n // If no scheme is provided, we'll guess what the scheme is based on the manifest.\n // This is to attempt to keep managed apps working across expo build and EAS build.\n // EAS build ejects the app before building it so we can assume that the user will\n // be using one of defined schemes.\n\n // If the native app id is the only scheme,\n if (!!nativeAppId && !manifestSchemes.length && !props.isSilent) {\n // Assert a config warning if no scheme is setup yet.\n // This warning only applies to managed workflow EAS apps, as bare workflow\n console.warn(\n `Linking requires a build-time setting \\`scheme\\` in the project's Expo config (app.config.js or app.json) for bare or production apps. Manually providing a \\`scheme\\` property can circumvent this warning. Using native app identifier as the scheme '${nativeAppId}'. Learn more: ${LINKING_GUIDE_URL}`\n );\n return nativeAppId;\n }\n // When the native app id is defined, it'll be added to the list of schemes, for most\n // users this will be unexpected behavior and cause all apps to warn when the Linking API\n // is used without a predefined scheme. For now, if the native app id is defined, require\n // at least one more scheme to be added before throwing a warning.\n // i.e. `scheme: ['foo', 'bar']` (unimplemented functionality).\n const [scheme, ...extraSchemes] = manifestSchemes;\n\n if (!scheme) {\n const errorMessage = `Linking requires a build-time setting \\`scheme\\` in the project's Expo config (app.config.js or app.json) for bare or production apps. Manually providing a \\`scheme\\` property can circumvent this error. Learn more: ${LINKING_GUIDE_URL}`;\n // Throw in production, use the __DEV__ flag so users can test this functionality with `expo start --no-dev`\n throw new Error(errorMessage);\n }\n if (extraSchemes.length && !props.isSilent) {\n console.warn(\n `Linking found multiple possible URI schemes in your Expo config.\\nUsing '${scheme}'. Ignoring: ${[\n ...extraSchemes,\n nativeAppId,\n ]\n .filter(Boolean)\n .join(', ')}.\\nPlease supply the preferred URI scheme to the Linking API.`\n );\n }\n return scheme;\n}\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","import Constants from 'expo-constants';\nimport { Platform, UnavailabilityError } from 'expo-modules-core';\nimport invariant from 'invariant';\nimport qs from 'qs';\nimport { useEffect, useState } from 'react';\nimport URL from 'url-parse';\n\nimport NativeLinking from './ExpoLinking';\nimport {\n CreateURLOptions,\n ParsedURL,\n QueryParams,\n SendIntentExtras,\n URLListener,\n} from './Linking.types';\nimport { hasCustomScheme, resolveScheme } from './Schemes';\n\nfunction validateURL(url: string): void {\n invariant(typeof url === 'string', 'Invalid URL: should be a string. Was: ' + url);\n invariant(url, 'Invalid URL: cannot be empty');\n}\n\nfunction getHostUri(): string | null {\n if (Constants.manifest?.hostUri) {\n return Constants.manifest.hostUri;\n } else if (Constants.manifest2?.extra?.expoClient?.hostUri) {\n return Constants.manifest2.extra.expoClient.hostUri;\n } else if (!hasCustomScheme()) {\n // we're probably not using up-to-date xdl, so just fake it for now\n // we have to remove the /--/ on the end since this will be inserted again later\n return removeScheme(Constants.linkingUri).replace(/\\/--($|\\/.*$)/, '');\n } else {\n return null;\n }\n}\n\nfunction isExpoHosted(): boolean {\n const hostUri = getHostUri();\n return !!(\n hostUri &&\n (/^(.*\\.)?(expo\\.io|exp\\.host|exp\\.direct|expo\\.test)(:.*)?(\\/.*)?$/.test(hostUri) ||\n Constants.manifest?.developer)\n );\n}\n\nfunction removeScheme(url: string): string {\n return url.replace(/^[a-zA-Z0-9+.-]+:\\/\\//, '');\n}\n\nfunction removePort(url: string): string {\n return url.replace(/(?=([a-zA-Z0-9+.-]+:\\/\\/)?[^/]):\\d+/, '');\n}\n\nfunction removeLeadingSlash(url: string): string {\n return url.replace(/^\\//, '');\n}\n\nfunction removeTrailingSlashAndQueryString(url: string): string {\n return url.replace(/\\/?\\?.*$/, '');\n}\n\nfunction ensureTrailingSlash(input: string, shouldAppend: boolean): string {\n const hasSlash = input.endsWith('/');\n if (hasSlash && !shouldAppend) {\n return input.substring(0, input.length - 1);\n } else if (!hasSlash && shouldAppend) {\n return `${input}/`;\n }\n return input;\n}\n\nfunction ensureLeadingSlash(input: string, shouldAppend: boolean): string {\n const hasSlash = input.startsWith('/');\n if (hasSlash && !shouldAppend) {\n return input.substring(1);\n } else if (!hasSlash && shouldAppend) {\n return `/${input}`;\n }\n return input;\n}\n\n// @needsAudit\n/**\n * Create a URL that works for the environment the app is currently running in.\n * The scheme in bare and standalone must be defined in the app.json under `expo.scheme`.\n *\n * # Examples\n * - Bare: empty string\n * - Standalone, Custom: `yourscheme:///path`\n * - Web (dev): `https://localhost:19006/path`\n * - Web (prod): `https://myapp.com/path`\n * - Expo Client (dev): `exp://128.0.0.1:19000/--/path`\n * - Expo Client (prod): `exp://exp.host/@yourname/your-app/--/path`\n *\n * @param path addition path components to append to the base URL.\n * @param queryParams An object with a set of query parameters. These will be merged with any\n * Expo-specific parameters that are needed (e.g. release channel) and then appended to the URL\n * as a query string.\n * @param scheme Optional URI protocol to use in the URL `:///`, when `undefined` the scheme\n * will be chosen from the Expo config (`app.config.js` or `app.json`).\n * @return A URL string which points to your app with the given deep link information.\n * @deprecated An alias for [`createURL()`](#linkingcreateurlpath-namedparameters). This method is\n * deprecated and will be removed in a future SDK version.\n */\nexport function makeUrl(path: string = '', queryParams?: QueryParams, scheme?: string): string {\n return createURL(path, { queryParams, scheme, isTripleSlashed: true });\n}\n\n// @needsAudit\n/**\n * Helper method for constructing a deep link into your app, given an optional path and set of query\n * parameters. Creates a URI scheme with two slashes by default.\n *\n * The scheme in bare and standalone must be defined in the Expo config (`app.config.js` or `app.json`)\n * under `expo.scheme`.\n *\n * # Examples\n * - Bare: `://path` - uses provided scheme or scheme from Expo config `scheme`.\n * - Standalone, Custom: `yourscheme://path`\n * - Web (dev): `https://localhost:19006/path`\n * - Web (prod): `https://myapp.com/path`\n * - Expo Client (dev): `exp://128.0.0.1:19000/--/path`\n * - Expo Client (prod): `exp://exp.host/@yourname/your-app/--/path`\n *\n * @param path Addition path components to append to the base URL.\n * @param namedParameters Additional options object.\n * @return A URL string which points to your app with the given deep link information.\n */\nexport function createURL(\n path: string,\n { scheme, queryParams = {}, isTripleSlashed = false }: CreateURLOptions = {}\n): string {\n if (Platform.OS === 'web') {\n if (!Platform.isDOMAvailable) return '';\n\n const origin = ensureTrailingSlash(window.location.origin, false);\n let queryString = qs.stringify(queryParams);\n if (queryString) {\n queryString = `?${queryString}`;\n }\n\n let outputPath = path;\n if (outputPath) outputPath = ensureLeadingSlash(path, true);\n\n return encodeURI(`${origin}${outputPath}${queryString}`);\n }\n\n const resolvedScheme = resolveScheme({ scheme });\n\n let hostUri = getHostUri() || '';\n\n if (hasCustomScheme() && isExpoHosted()) {\n hostUri = '';\n }\n\n if (path) {\n if (isExpoHosted() && hostUri) {\n path = `/--/${removeLeadingSlash(path)}`;\n }\n if (isTripleSlashed && !path.startsWith('/')) {\n path = `/${path}`;\n }\n } else {\n path = '';\n }\n\n // merge user-provided query params with any that were already in the hostUri\n // e.g. release-channel\n let queryString = '';\n const queryStringMatchResult = hostUri.match(/(.*)\\?(.+)/);\n if (queryStringMatchResult) {\n hostUri = queryStringMatchResult[1];\n queryString = queryStringMatchResult[2];\n let paramsFromHostUri = {};\n try {\n const parsedParams = qs.parse(queryString);\n if (typeof parsedParams === 'object') {\n paramsFromHostUri = parsedParams;\n }\n } catch (e) {}\n queryParams = {\n ...queryParams,\n ...paramsFromHostUri,\n };\n }\n queryString = qs.stringify(queryParams);\n if (queryString) {\n queryString = `?${queryString}`;\n }\n\n hostUri = ensureLeadingSlash(hostUri, !isTripleSlashed);\n\n return encodeURI(\n `${resolvedScheme}:${isTripleSlashed ? '/' : ''}/${hostUri}${path}${queryString}`\n );\n}\n\n// @needsAudit\n/**\n * Helper method for parsing out deep link information from a URL.\n * @param url A URL that points to the currently running experience (e.g. an output of `Linking.createURL()`).\n * @return A `ParsedURL` object.\n */\nexport function parse(url: string): ParsedURL {\n validateURL(url);\n\n const parsed = URL(url, /* parseQueryString */ true);\n\n for (const param in parsed.query) {\n parsed.query[param] = decodeURIComponent(parsed.query[param]!);\n }\n const queryParams = parsed.query;\n\n const hostUri = getHostUri() || '';\n const hostUriStripped = removePort(removeTrailingSlashAndQueryString(hostUri));\n\n let path = parsed.pathname || null;\n let hostname = parsed.hostname || null;\n let scheme = parsed.protocol || null;\n\n if (scheme) {\n // Remove colon at end\n scheme = scheme.substring(0, scheme.length - 1);\n }\n\n if (path) {\n path = removeLeadingSlash(path);\n\n let expoPrefix: string | null = null;\n if (hostUriStripped) {\n const parts = hostUriStripped.split('/');\n expoPrefix = parts.slice(1).concat(['--/']).join('/');\n }\n\n if (isExpoHosted() && !hasCustomScheme() && expoPrefix && path.startsWith(expoPrefix)) {\n path = path.substring(expoPrefix.length);\n hostname = null;\n } else if (path.indexOf('+') > -1) {\n path = path.substring(path.indexOf('+') + 1);\n }\n }\n\n return {\n hostname,\n path,\n queryParams,\n scheme,\n };\n}\n\n// @needsAudit\n/**\n * Add a handler to `Linking` changes by listening to the `url` event type and providing the handler.\n * It is recommended to use the [`useURL()`](#useurl) hook instead.\n * @param type The only valid type is `'url'`.\n * @param handler An [`URLListener`](#urllistener) function that takes an `event` object of the type\n * [`EventType`](#eventype).\n * @see [React Native Docs Linking page](https://reactnative.dev/docs/linking#addeventlistener).\n */\nexport function addEventListener(type: string, handler: URLListener): void {\n NativeLinking.addEventListener(type, handler);\n}\n\n/**\n * Remove a handler by passing the `url` event type and the handler.\n * @param type The only valid type is `'url'`.\n * @param handler An [`URLListener`](#urllistener) function that takes an `event` object of the type\n * [`EventType`](#eventype).\n * @see [React Native Docs Linking page](https://reactnative.dev/docs/linking#removeeventlistener).\n */\nexport function removeEventListener(type: string, handler: URLListener): void {\n NativeLinking.removeEventListener(type, handler);\n}\n\n// @needsAudit\n/**\n * Helper method which wraps React Native's `Linking.getInitialURL()` in `Linking.parse()`.\n * Parses the deep link information out of the URL used to open the experience initially.\n * If no link opened the app, all the fields will be `null`.\n * > On the web it parses the current window URL.\n * @return A promise that resolves with `ParsedURL` object.\n */\nexport async function parseInitialURLAsync(): Promise {\n const initialUrl = await NativeLinking.getInitialURL();\n if (!initialUrl) {\n return {\n scheme: null,\n hostname: null,\n path: null,\n queryParams: null,\n };\n }\n\n return parse(initialUrl);\n}\n\n// @needsAudit\n/**\n * Launch an Android intent with extras.\n * > Use [IntentLauncher](../intent-launcher) instead, `sendIntent` is only included in\n * > `Linking` for API compatibility with React Native's Linking API.\n * @platform android\n */\nexport async function sendIntent(action: string, extras?: SendIntentExtras[]): Promise {\n if (Platform.OS === 'android') {\n return await NativeLinking.sendIntent(action, extras);\n }\n throw new UnavailabilityError('Linking', 'sendIntent');\n}\n\n// @needsAudit\n/**\n * Open the operating system settings app and displays the app’s custom settings, if it has any.\n * @platform ios\n */\nexport async function openSettings(): Promise {\n if (Platform.OS === 'web') {\n throw new UnavailabilityError('Linking', 'openSettings');\n }\n if (NativeLinking.openSettings) {\n return await NativeLinking.openSettings();\n }\n await openURL('app-settings:');\n}\n\n// @needsAudit\n/**\n * Get the URL that was used to launch the app if it was launched by a link.\n * @return The URL string that launched your app, or `null`.\n */\nexport async function getInitialURL(): Promise {\n return (await NativeLinking.getInitialURL()) ?? null;\n}\n\n// @needsAudit\n/**\n * Attempt to open the given URL with an installed app. See the [Linking guide](/guides/linking)\n * for more information.\n * @param url A URL for the operating system to open, eg: `tel:5555555`, `exp://`.\n * @return A `Promise` that is fulfilled with `true` if the link is opened operating system\n * automatically or the user confirms the prompt to open the link. The `Promise` rejects if there\n * are no applications registered for the URL or the user cancels the dialog.\n */\nexport async function openURL(url: string): Promise {\n validateURL(url);\n return await NativeLinking.openURL(url);\n}\n\n// @needsAudit\n/**\n * Determine whether or not an installed app can handle a given URL.\n * On web this always returns `true` because there is no API for detecting what URLs can be opened.\n * @param url The URL that you want to test can be opened.\n * @return A `Promise` object that is fulfilled with `true` if the URL can be handled, otherwise it\n * `false` if not.\n *\n * The `Promise` will reject on Android if it was impossible to check if the URL can be opened, and\n * on iOS if you didn't [add the specific scheme in the `LSApplicationQueriesSchemes` key inside **Info.plist**](/guides/linking#opening-links-to-other-apps).\n */\nexport async function canOpenURL(url: string): Promise {\n validateURL(url);\n return await NativeLinking.canOpenURL(url);\n}\n\n// @needsAudit\n/**\n * Returns the initial URL followed by any subsequent changes to the URL.\n * @return Returns the initial URL or `null`.\n */\nexport function useURL(): string | null {\n const [url, setLink] = useState(null);\n\n function onChange(event: { url: string }) {\n setLink(event.url);\n }\n\n useEffect(() => {\n getInitialURL().then((url) => setLink(url));\n addEventListener('url', onChange);\n return () => removeEventListener('url', onChange);\n }, []);\n\n return url;\n}\n\nexport * from './Linking.types';\n","import RCTDeviceEventEmitter from '../../vendor/react-native/NativeEventEmitter/RCTDeviceEventEmitter';\nexport default RCTDeviceEventEmitter;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport NativeEventEmitter from '../../vendor/react-native/NativeEventEmitter';\nexport default NativeEventEmitter;","import invariant from 'invariant';\nimport { NativeEventEmitter, Platform } from 'react-native';\n\nconst nativeEmitterSubscriptionKey = '@@nativeEmitterSubscription@@';\n\ntype NativeModule = {\n startObserving?: () => void;\n stopObserving?: () => void;\n addListener: (eventName: string) => void;\n removeListeners: (count: number) => void;\n};\n\n// @needsAudit\nexport type Subscription = {\n /**\n * A method to unsubscribe the listener.\n */\n remove: () => void;\n};\n\nexport class EventEmitter {\n _listenerCount = 0;\n _nativeModule: NativeModule;\n _eventEmitter: NativeEventEmitter;\n\n constructor(nativeModule: NativeModule) {\n this._nativeModule = nativeModule;\n this._eventEmitter = new NativeEventEmitter(nativeModule as any);\n }\n\n addListener(eventName: string, listener: (event: T) => void): Subscription {\n if (!this._listenerCount && Platform.OS !== 'ios' && this._nativeModule.startObserving) {\n this._nativeModule.startObserving();\n }\n\n this._listenerCount++;\n const nativeEmitterSubscription = this._eventEmitter.addListener(eventName, listener);\n const subscription = {\n [nativeEmitterSubscriptionKey]: nativeEmitterSubscription,\n remove: () => {\n this.removeSubscription(subscription);\n },\n };\n return subscription;\n }\n\n removeAllListeners(eventName: string): void {\n // @ts-ignore: the EventEmitter interface has been changed in react-native@0.64.0\n const removedListenerCount = this._eventEmitter.listenerCount\n ? // @ts-ignore: this is available since 0.64\n this._eventEmitter.listenerCount(eventName)\n : // @ts-ignore: this is available in older versions\n this._eventEmitter.listeners(eventName).length;\n this._eventEmitter.removeAllListeners(eventName);\n this._listenerCount -= removedListenerCount;\n invariant(\n this._listenerCount >= 0,\n `EventEmitter must have a non-negative number of listeners`\n );\n\n if (!this._listenerCount && Platform.OS !== 'ios' && this._nativeModule.stopObserving) {\n this._nativeModule.stopObserving();\n }\n }\n\n removeSubscription(subscription: Subscription): void {\n const nativeEmitterSubscription = subscription[nativeEmitterSubscriptionKey];\n if (!nativeEmitterSubscription) {\n return;\n }\n\n if ('remove' in nativeEmitterSubscription) {\n // `react-native-web@0.17.1` doesn't support `removeSubscription`\n nativeEmitterSubscription.remove();\n } else if ('removeSubscription' in this._eventEmitter) {\n this._eventEmitter.removeSubscription(nativeEmitterSubscription!);\n }\n this._listenerCount--;\n\n // Ensure that the emitter's internal state remains correct even if `removeSubscription` is\n // called again with the same subscription\n delete subscription[nativeEmitterSubscriptionKey];\n\n // Release closed-over references to the emitter\n subscription.remove = () => {};\n\n if (!this._listenerCount && Platform.OS !== 'ios' && this._nativeModule.stopObserving) {\n this._nativeModule.stopObserving();\n }\n }\n\n emit(eventName: string, ...params: any[]): void {\n this._eventEmitter.emit(eventName, ...params);\n }\n}\n","import { ProxyNativeModule } from './NativeModulesProxy.types';\n\n// We default to an empty object shim wherever we don't have an environment-specific implementation\nexport default {} as { [moduleName: string]: ProxyNativeModule };\n","declare global {\n // Add IE-specific interface to Window\n interface Window {\n attachEvent(event: string, listener: EventListener): boolean;\n }\n}\n\n// Used for delegating node actions when browser APIs aren't available\n// like in SSR websites.\nexport const isDOMAvailable = typeof window !== 'undefined' && !!window.document?.createElement;\nexport const canUseEventListeners =\n isDOMAvailable && !!(window.addEventListener || window.attachEvent);\nexport const canUseViewport = isDOMAvailable && !!window.screen;\nexport const isAsyncDebugging = false;\n","import { Platform as ReactNativePlatform, PlatformOSType } from 'react-native';\n\nimport {\n isDOMAvailable,\n canUseEventListeners,\n canUseViewport,\n isAsyncDebugging,\n} from './environment/browser';\n\nexport type PlatformSelectOSType = PlatformOSType | 'native' | 'electron' | 'default';\n\nexport type PlatformSelect = (specifics: { [platform in PlatformSelectOSType]?: T }) => T;\n\nconst Platform = {\n /**\n * Denotes the currently running platform.\n * Can be one of ios, android, web.\n */\n OS: ReactNativePlatform.OS,\n /**\n * Returns the value with the matching platform.\n * Object keys can be any of ios, android, native, web, default.\n *\n * @ios ios, native, default\n * @android android, native, default\n * @web web, default\n */\n select: ReactNativePlatform.select as PlatformSelect,\n /**\n * Denotes if the DOM API is available in the current environment.\n * The DOM is not available in native React runtimes and Node.js.\n */\n isDOMAvailable,\n /**\n * Denotes if the current environment can attach event listeners\n * to the window. This will return false in native React\n * runtimes and Node.js.\n */\n canUseEventListeners,\n /**\n * Denotes if the current environment can inspect properties of the\n * screen on which the current window is being rendered. This will\n * return false in native React runtimes and Node.js.\n */\n canUseViewport,\n /**\n * If the JavaScript is being executed in a remote JavaScript environment.\n * When `true`, synchronous native invocations cannot be executed.\n */\n isAsyncDebugging,\n};\n\nexport default Platform;\n","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","/**\n * A general error class that should be used for all errors in Expo modules.\n * Guarantees a `code` field that can be used to differentiate between different\n * types of errors without further subclassing Error.\n */\nexport class CodedError extends Error {\n code: string;\n info?: any;\n\n constructor(code: string, message: string) {\n super(message);\n this.code = code;\n }\n}\n","import Platform from '../Platform';\nimport { CodedError } from './CodedError';\n\n/**\n * A class for errors to be thrown when a property is accessed which is\n * unavailable, unsupported, or not currently implemented on the running\n * platform.\n */\nexport class UnavailabilityError extends CodedError {\n constructor(moduleName: string, propertyName: string) {\n super(\n 'ERR_UNAVAILABLE',\n `The method or property ${moduleName}.${propertyName} is not available on ${Platform.OS}, are you sure you've linked all the native dependencies properly?`\n );\n }\n}\n","import React from 'react';\n\nimport { UnavailabilityError } from './errors/UnavailabilityError';\n\nexport function requireNativeViewManager

(viewName: string): React.ComponentType

{\n throw new UnavailabilityError('expo-modules-core', 'requireNativeViewManager');\n}\n","export enum PermissionStatus {\n GRANTED = 'granted',\n UNDETERMINED = 'undetermined',\n DENIED = 'denied',\n}\n\nexport type PermissionExpiration = 'never' | number;\n\nexport interface PermissionResponse {\n status: PermissionStatus;\n expires: PermissionExpiration;\n granted: boolean;\n canAskAgain: boolean;\n}\n","import compareVersions from 'compare-versions';\n\nimport { CodedError } from './errors/CodedError';\n\nconst postedWarnings: { [key: string]: boolean } = {};\n\n/**\n * Used for deprecating values and throwing an error if a given version of Expo has passed.\n */\nexport default function deprecate(\n library: string,\n deprecatedAPI: string,\n options: {\n replacement?: string;\n currentVersion?: string;\n versionToRemove?: string;\n } = {}\n): void {\n const { currentVersion, versionToRemove, replacement } = options;\n const code = codeFromLibrary(library);\n const key = `${code}:${deprecatedAPI}:${replacement}`;\n if (!postedWarnings[key]) {\n postedWarnings[key] = true;\n }\n\n if (\n !currentVersion ||\n !versionToRemove ||\n compareVersions(currentVersion, versionToRemove) >= 0\n ) {\n let message = `\\`${deprecatedAPI}\\` has been removed`;\n if (versionToRemove) {\n message = `${message} as of version \"${versionToRemove}\"`;\n }\n if (replacement && replacement.length) {\n message = `${message} please migrate to: \\`${replacement}\\``;\n }\n\n throw new CodedError(`ERR_DEPRECATED_API`, prependLibrary(library, message));\n }\n\n let message = `\\`${deprecatedAPI}\\` has been deprecated`;\n if (replacement && replacement.length) {\n message = `${message} in favor of \\`${replacement}\\``;\n }\n if (versionToRemove && versionToRemove.length) {\n message = `${message} and will be removed in version \"${versionToRemove}\"`;\n }\n console.warn(prependLibrary(library, message));\n}\n\nfunction prependLibrary(library: string, message: string): string {\n return `${library}: ${message}`;\n}\n\n/**\n * Transform format:\n * Expo.AR -> EXPO_AR\n * expo-ar -> EXPO_AR\n */\nfunction codeFromLibrary(library: string): string {\n const code = library.replace(/[-.]/g, '_').toUpperCase();\n return code;\n}\n","import { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { PermissionResponse } from './PermissionsInterface';\n\n// These types are identical, but improves the readability for suggestions in editors\ntype RequestPermissionMethod = () => Promise;\ntype GetPermissionMethod = () => Promise;\n\ninterface PermissionHookMethods {\n /** The permission method that requests the user to grant permission. */\n requestMethod: (options?: Options) => Promise;\n /** The permission method that only fetches the current permission status. */\n getMethod: (options?: Options) => Promise;\n}\n\ninterface PermissionHookBehavior {\n /** If the hook should automatically fetch the current permission status, without asking the user. */\n get?: boolean;\n /** If the hook should automatically request the user to grant permission. */\n request?: boolean;\n}\n\nexport type PermissionHookOptions = PermissionHookBehavior & Options;\n\n/**\n * Get or request permission for protected functionality within the app.\n * It uses separate permission requesters to interact with a single permission.\n * By default, the hook will only retrieve the permission status.\n */\nfunction usePermission(\n methods: PermissionHookMethods,\n options?: PermissionHookOptions\n): [Permission | null, RequestPermissionMethod, GetPermissionMethod] {\n const isMounted = useRef(true);\n const [status, setStatus] = useState(null);\n const { get = true, request = false, ...permissionOptions } = options || {};\n\n const getPermission = useCallback(async () => {\n const response = await methods.getMethod(\n Object.keys(permissionOptions).length > 0 ? (permissionOptions as Options) : undefined\n );\n if (isMounted.current) setStatus(response);\n return response;\n }, [methods.getMethod]);\n\n const requestPermission = useCallback(async () => {\n const response = await methods.requestMethod(\n Object.keys(permissionOptions).length > 0 ? (permissionOptions as Options) : undefined\n );\n if (isMounted.current) setStatus(response);\n return response;\n }, [methods.requestMethod]);\n\n useEffect(\n function runMethods() {\n if (request) requestPermission();\n if (!request && get) getPermission();\n },\n [get, request, requestPermission, getPermission]\n );\n\n // Workaround for unmounting components receiving state updates\n useEffect(function didMount() {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n\n return [status, requestPermission, getPermission];\n}\n\n/**\n * Create a new permission hook with the permission methods built-in.\n * This can be used to quickly create specific permission hooks in every module.\n */\nexport function createPermissionHook(\n methods: PermissionHookMethods\n) {\n return (options?: PermissionHookOptions) =>\n usePermission(methods, options);\n}\n","import { DeviceEventEmitter } from 'react-native';\n\nimport { EventEmitter, Subscription } from './EventEmitter';\nimport NativeModulesProxy from './NativeModulesProxy';\nimport { ProxyNativeModule } from './NativeModulesProxy.types';\nimport { requireNativeViewManager } from './NativeViewManagerAdapter';\nimport Platform from './Platform';\nimport SyntheticPlatformEmitter from './SyntheticPlatformEmitter';\nimport { CodedError } from './errors/CodedError';\nimport { UnavailabilityError } from './errors/UnavailabilityError';\n\nexport { default as deprecate } from './deprecate';\n\nexport {\n DeviceEventEmitter,\n EventEmitter,\n NativeModulesProxy,\n ProxyNativeModule,\n Platform,\n Subscription,\n SyntheticPlatformEmitter,\n requireNativeViewManager,\n // Errors\n CodedError,\n UnavailabilityError,\n};\n\n/**\n * @deprecated renamed to `DeviceEventEmitter`\n */\nexport const RCTDeviceEventEmitter = DeviceEventEmitter;\n\nexport * from './PermissionsInterface';\nexport * from './PermissionsHook';\n","export default {\n get name(): string {\n return 'ExpoSplashScreen';\n },\n preventAutoHideAsync() {\n return false;\n },\n hideAsync() {\n return false;\n },\n};\n","import { UnavailabilityError } from 'expo-modules-core';\n\nimport ExpoSplashScreen from './ExpoSplashScreen';\n\n// @needsAudit\n/**\n * Makes the native splash screen (configured in `app.json`) remain visible until `hideAsync` is called.\n */\nexport async function preventAutoHideAsync(): Promise {\n if (!ExpoSplashScreen.preventAutoHideAsync) {\n throw new UnavailabilityError('expo-splash-screen', 'preventAutoHideAsync');\n }\n return await ExpoSplashScreen.preventAutoHideAsync();\n}\n\n// @needsAudit\n/**\n * Hides the native splash screen immediately. Be careful to ensure that your app has content ready\n * to display when you hide the splash screen, or you may see a blank screen briefly. See the\n * [\"Usage\"](#usage) section for an example.\n */\nexport async function hideAsync(): Promise {\n if (!ExpoSplashScreen.hideAsync) {\n throw new UnavailabilityError('expo-splash-screen', 'hideAsync');\n }\n return await ExpoSplashScreen.hideAsync();\n}\n\n/**\n * @deprecated Use `SplashScreen.hideAsync()` instead\n * @ignore\n */\nexport function hide(): void {\n console.warn('SplashScreen.hide() is deprecated in favour of SplashScreen.hideAsync()');\n hideAsync();\n}\n\n/**\n * @deprecated Use `SplashScreen.preventAutoHideAsync()` instead\n * @ignore\n */\nexport function preventAutoHide(): void {\n console.warn(\n 'SplashScreen.preventAutoHide() is deprecated in favour of SplashScreen.preventAutoHideAsync()'\n );\n preventAutoHideAsync();\n}\n","import { StatusBarProps } from './StatusBar.types';\n\n// @needsAudit\n/**\n * A component that allows you to configure your status bar without directly calling imperative\n * methods like `setBarStyle`.\n *\n * You will likely have multiple `StatusBar` components mounted in the same app at the same time.\n * For example, if you have multiple screens in your app, you may end up using one per screen.\n * The props of each `StatusBar` component will be merged in the order that they were mounted.\n * This component is built on top of the [StatusBar](https://reactnative.dev/docs/statusbar)\n * component exported from React Native, and it provides defaults that work better for Expo users.\n */\nexport default function ExpoStatusBar(props: StatusBarProps) {\n // StatusBar does nothing on web currently\n return null;\n}\n","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { unmountComponentAtNode } from 'react-dom';\nexport default unmountComponentAtNode;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar RootTagContext = /*#__PURE__*/React.createContext(null);\nexport default function AppContainer(props) {\n var children = props.children,\n WrapperComponent = props.WrapperComponent;\n var innerView = /*#__PURE__*/React.createElement(View, {\n children: children,\n key: 1,\n pointerEvents: \"box-none\",\n style: styles.appContainer\n });\n\n if (WrapperComponent) {\n innerView = /*#__PURE__*/React.createElement(WrapperComponent, null, innerView);\n }\n\n return /*#__PURE__*/React.createElement(RootTagContext.Provider, {\n value: props.rootTag\n }, /*#__PURE__*/React.createElement(View, {\n pointerEvents: \"box-none\",\n style: styles.appContainer\n }, innerView));\n}\nvar styles = StyleSheet.create({\n appContainer: {\n flex: 1\n }\n});","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { hydrate, render } from 'react-dom';\nexport { hydrate };\nexport default render;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport AppContainer from './AppContainer';\nimport invariant from 'fbjs/lib/invariant';\nimport render, { hydrate } from '../render';\nimport styleResolver from '../StyleSheet/styleResolver';\nimport React from 'react';\nexport default function renderApplication(RootComponent, WrapperComponent, callback, options) {\n var shouldHydrate = options.hydrate,\n initialProps = options.initialProps,\n rootTag = options.rootTag;\n var renderFn = shouldHydrate ? hydrate : render;\n invariant(rootTag, 'Expect to have a valid rootTag, instead got ', rootTag);\n renderFn( /*#__PURE__*/React.createElement(AppContainer, {\n WrapperComponent: WrapperComponent,\n rootTag: rootTag\n }, /*#__PURE__*/React.createElement(RootComponent, initialProps)), rootTag, callback);\n}\nexport function getApplication(RootComponent, initialProps, WrapperComponent) {\n var element = /*#__PURE__*/React.createElement(AppContainer, {\n WrapperComponent: WrapperComponent,\n rootTag: {}\n }, /*#__PURE__*/React.createElement(RootComponent, initialProps)); // Don't escape CSS text\n\n var getStyleElement = function getStyleElement(props) {\n var sheet = styleResolver.getStyleSheet();\n return /*#__PURE__*/React.createElement(\"style\", _extends({}, props, {\n dangerouslySetInnerHTML: {\n __html: sheet.textContent\n },\n id: sheet.id\n }));\n };\n\n return {\n element: element,\n getStyleElement: getStyleElement\n };\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport invariant from 'fbjs/lib/invariant';\nimport unmountComponentAtNode from '../unmountComponentAtNode';\nimport renderApplication, { getApplication as _getApplication } from './renderApplication';\nvar emptyObject = {};\nvar runnables = {};\n\nvar componentProviderInstrumentationHook = function componentProviderInstrumentationHook(component) {\n return component();\n};\n\nvar wrapperComponentProvider;\n/**\n * `AppRegistry` is the JS entry point to running all React Native apps.\n */\n\nvar AppRegistry = /*#__PURE__*/function () {\n function AppRegistry() {}\n\n AppRegistry.getAppKeys = function getAppKeys() {\n return Object.keys(runnables);\n };\n\n AppRegistry.getApplication = function getApplication(appKey, appParameters) {\n invariant(runnables[appKey] && runnables[appKey].getApplication, \"Application \" + appKey + \" has not been registered. \" + 'This is either due to an import error during initialization or failure to call AppRegistry.registerComponent.');\n return runnables[appKey].getApplication(appParameters);\n };\n\n AppRegistry.registerComponent = function registerComponent(appKey, componentProvider) {\n runnables[appKey] = {\n getApplication: function getApplication(appParameters) {\n return _getApplication(componentProviderInstrumentationHook(componentProvider), appParameters ? appParameters.initialProps : emptyObject, wrapperComponentProvider && wrapperComponentProvider(appParameters));\n },\n run: function run(appParameters) {\n return renderApplication(componentProviderInstrumentationHook(componentProvider), wrapperComponentProvider && wrapperComponentProvider(appParameters), appParameters.callback, {\n hydrate: appParameters.hydrate || false,\n initialProps: appParameters.initialProps || emptyObject,\n rootTag: appParameters.rootTag\n });\n }\n };\n return appKey;\n };\n\n AppRegistry.registerConfig = function registerConfig(config) {\n config.forEach(function (_ref) {\n var appKey = _ref.appKey,\n component = _ref.component,\n run = _ref.run;\n\n if (run) {\n AppRegistry.registerRunnable(appKey, run);\n } else {\n invariant(component, 'No component provider passed in');\n AppRegistry.registerComponent(appKey, component);\n }\n });\n } // TODO: fix style sheet creation when using this method\n ;\n\n AppRegistry.registerRunnable = function registerRunnable(appKey, run) {\n runnables[appKey] = {\n run: run\n };\n return appKey;\n };\n\n AppRegistry.runApplication = function runApplication(appKey, appParameters) {\n var isDevelopment = process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test';\n\n if (isDevelopment) {\n var params = _objectSpread({}, appParameters);\n\n params.rootTag = \"#\" + params.rootTag.id;\n console.log(\"Running application \\\"\" + appKey + \"\\\" with appParams:\\n\", params, \"\\nDevelopment-level warnings: \" + (isDevelopment ? 'ON' : 'OFF') + \".\" + (\"\\nPerformance optimizations: \" + (isDevelopment ? 'OFF' : 'ON') + \".\"));\n }\n\n invariant(runnables[appKey] && runnables[appKey].run, \"Application \\\"\" + appKey + \"\\\" has not been registered. \" + 'This is either due to an import error during initialization or failure to call AppRegistry.registerComponent.');\n runnables[appKey].run(appParameters);\n };\n\n AppRegistry.setComponentProviderInstrumentationHook = function setComponentProviderInstrumentationHook(hook) {\n componentProviderInstrumentationHook = hook;\n };\n\n AppRegistry.setWrapperComponentProvider = function setWrapperComponentProvider(provider) {\n wrapperComponentProvider = provider;\n };\n\n AppRegistry.unmountApplicationComponentAtRootTag = function unmountApplicationComponentAtRootTag(rootTag) {\n unmountComponentAtNode(rootTag);\n };\n\n return AppRegistry;\n}();\n\nexport { AppRegistry as default };","// AppRegistry transitively installs YellowBox as a side effect, which overrides various console\n// methods that we need to set up before we override them\nimport { AppRegistry } from 'react-native';\n\nAppRegistry; // eslint-disable-line @babel/no-unused-expressions\n\n// NOTE(2018-10-29): temporarily filter out cyclic dependency warnings here since they are noisy and\n// each warning symbolicates a stack trace, which is slow when there are many warnings\n// NOTE(2019-05-27): temporarily filter out LottieAnimationView warnings triggered by\n// unmaintained react-native-safe-module dependency.\nconst originalWarn = console.warn;\nconsole.warn = function warn(...args) {\n if (\n args.length > 0 &&\n typeof args[0] === 'string' &&\n (/^Require cycle: .*node_modules/.test(args[0]) ||\n /Use UIManager\\.getViewManagerConfig\\('LottieAnimationView'\\) instead\\./.test(args[0]) ||\n /ReactNative\\.NativeModules\\.LottieAnimationView\\.getConstants/.test(args[0]))\n ) {\n return;\n }\n originalWarn.apply(console, args);\n};\n\nconst originalError = console.error;\nconsole.error = function error(...args) {\n if (\n args.length > 0 &&\n typeof args[0] === 'string' &&\n /^Warning: .* has been extracted/.test(args[0])\n ) {\n return;\n }\n originalError.apply(console, args);\n};\n","import { InitialProps } from './withExpoRoot.types';\n\nexport const attachRecoveredProps =

(props: P): P => {\n try {\n // Optionally import expo-error-recovery\n const { recoveredProps } = require('expo-error-recovery');\n return {\n ...props,\n exp: { ...props.exp, errorRecovery: recoveredProps },\n };\n } catch {}\n\n return props;\n};\n","import * as React from 'react';\n\nimport { attachRecoveredProps } from './RecoveryProps';\nimport { InitialProps } from './withExpoRoot.types';\n\nexport default function withExpoRoot

(\n AppRootComponent: React.ComponentType

\n): React.ComponentClass

{\n return class ExpoRootComponent extends React.Component

{\n render() {\n const combinedProps = attachRecoveredProps(this.props);\n return ;\n }\n };\n}\n","import 'expo/build/Expo.fx';\nimport * as React from 'react';\nimport { AppRegistry, Platform } from 'react-native';\n\nimport withExpoRoot from './withExpoRoot';\nimport { InitialProps } from './withExpoRoot.types';\n\nexport default function registerRootComponent

(\n component: React.ComponentType

\n): void {\n AppRegistry.registerComponent('main', () => withExpoRoot(component));\n if (Platform.OS === 'web') {\n const rootTag = document.getElementById('root') ?? document.getElementById('main');\n AppRegistry.runApplication('main', { rootTag });\n }\n}\n","import registerRootComponent from 'expo/build/launch/registerRootComponent';\n\nimport App from '../../App';\n\nregisterRootComponent(App);\n","import React from 'react';\n\nexport const ExitAnimationContext = React.createContext({\n exited: true,\n setExited: (_exited: boolean) => {},\n});\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { OverlayContainer } from '@react-native-aria/overlays';\nimport React from 'react';\nimport type { ViewStyle } from 'react-native';\nimport { Modal, Platform } from 'react-native';\nimport { useKeyboardDismissable } from '../../../hooks';\nimport { ExitAnimationContext } from './ExitAnimationContext';\n\nexport interface IOverlayProps {\n isOpen?: boolean;\n children?: any;\n // We use RN modal on android if needed as it supports shifting accessiblity focus to the opened view. IOS automatically shifts focus if an absolutely placed view appears in front.\n useRNModalOnAndroid?: boolean;\n useRNModal?: boolean;\n onRequestClose?: any;\n isKeyboardDismissable?: boolean;\n animationPreset?: 'fade' | 'slide' | 'none';\n style?: ViewStyle;\n unmountOnExit?: boolean;\n}\n\nexport function Overlay({\n children,\n isOpen,\n useRNModal = false,\n useRNModalOnAndroid = false,\n isKeyboardDismissable = true,\n //@ts-ignore\n animationPreset = 'fade',\n onRequestClose,\n style,\n unmountOnExit,\n}: IOverlayProps) {\n const [exited, setExited] = React.useState(!isOpen);\n\n useKeyboardDismissable({\n enabled: isOpen && isKeyboardDismissable,\n callback: onRequestClose ? onRequestClose : () => {},\n });\n const styleObj = { ...style };\n if (animationPreset === 'slide') {\n styleObj.overflow = 'hidden';\n styleObj.display = 'flex';\n } else {\n styleObj.display = exited && !isOpen ? 'none' : 'flex';\n }\n\n if (unmountOnExit && !isOpen && exited) {\n return null;\n }\n\n if (useRNModal || (useRNModalOnAndroid && Platform.OS === 'android')) {\n return (\n \n \n {children}\n \n \n );\n }\n\n if (unmountOnExit && !isOpen && exited) {\n return null;\n }\n\n return (\n //@ts-ignore\n \n \n {children}\n \n \n );\n}\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { forwardRef } from 'react';\nimport { Animated } from 'react-native';\nimport type {\n ISupportedTransitions,\n ITransitionConfig,\n ITransitionProps,\n} from './types';\n\nconst transformStylesMap = {\n translateY: true,\n translateX: true,\n scale: true,\n scaleX: true,\n scaleY: true,\n rotate: true,\n};\n\nconst defaultStyles = {\n opacity: 1,\n translateY: 0,\n translateX: 0,\n scale: 1,\n scaleX: 1,\n scaleY: 1,\n rotate: '0deg',\n};\n\nconst getAnimatedStyles = (animateValue: any) => (\n initial: ISupportedTransitions,\n to: ISupportedTransitions\n) => {\n const styles: any = {\n transform: [],\n };\n for (let key in initial) {\n if (key === 'transition') {\n continue;\n }\n\n if (key in transformStylesMap) {\n styles.transform?.push({\n [key]: animateValue.interpolate({\n inputRange: [0, 1],\n outputRange: [(initial as any)[key], (to as any)[key]],\n }),\n } as any);\n } else {\n styles[key] = animateValue.interpolate({\n inputRange: [0, 1],\n outputRange: [(initial as any)[key], (to as any)[key]],\n });\n }\n }\n\n return styles;\n};\n\nconst defaultTransitionConfig: ITransitionConfig = {\n type: 'timing',\n useNativeDriver: true,\n duration: 250,\n delay: 0,\n};\n\nexport const Transition = forwardRef(\n (\n {\n children,\n onTransitionComplete,\n visible = false,\n initial,\n animate,\n exit,\n style,\n as,\n ...rest\n }: ITransitionProps,\n ref: any\n ) => {\n const animateValue = React.useRef(new Animated.Value(0)).current;\n\n const Component = React.useMemo(() => {\n if (as) {\n return Animated.createAnimatedComponent(as);\n }\n return Animated.View;\n }, [as]);\n\n const [animationState, setAnimationState] = React.useState('');\n\n const prevVisible = React.useRef(visible);\n\n React.useEffect(() => {\n if (animationState === 'entering' || animationState === 'exiting') {\n const entryTransition = {\n ...defaultTransitionConfig,\n ...animate?.transition,\n };\n const exitTransition = {\n ...defaultTransitionConfig,\n ...exit?.transition,\n };\n\n const startAnimation = animationState === 'entering' ? 1 : 0;\n\n const transition = startAnimation ? entryTransition : exitTransition;\n\n Animated.sequence([\n // @ts-ignore - delay is present in defaultTransitionConfig\n Animated.delay(transition.delay),\n Animated[transition.type ?? 'timing'](animateValue, {\n toValue: startAnimation,\n useNativeDriver: true,\n ...transition,\n }),\n ]).start(() => {\n if (animationState === 'entering') {\n setAnimationState('entered');\n } else if (animationState === 'exiting') {\n setAnimationState('exited');\n }\n });\n // });\n }\n\n if (animationState === 'exited') {\n onTransitionComplete && onTransitionComplete('exited');\n } else if (animationState === 'entered') {\n onTransitionComplete && onTransitionComplete('entered');\n }\n // if (animationState === 'entering') {\n // //\n // }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [animationState, onTransitionComplete]);\n\n React.useEffect(() => {\n // if (!visible) {\n if (prevVisible.current !== visible && !visible) {\n setAnimationState('exiting');\n }\n\n if (visible) {\n setAnimationState('entering');\n }\n prevVisible.current = visible;\n // }\n }, [visible]);\n\n // If exit animation is present and state is exiting, we replace 'initial' with 'exit' animation\n\n // const initialState = { ...defaultStyles, ...initial };\n const initialState =\n animationState === 'exited' && exit\n ? { ...defaultStyles, ...exit }\n : { ...defaultStyles, ...initial };\n // const initialState = { ...defaultStyles, ...initial };\n\n // initial =\n // animationState === 'exited'\n // ? { ...defaultStyles, ...exit }\n // : { ...defaultStyles, ...initial };\n\n const animateState = { ...defaultStyles, ...animate };\n\n // const [initialState, setInitialState] = React.useState({\n // ...defaultStyles,\n // ...initial,\n // });\n // console.log('Initial state ', initial);\n\n // const [animateState] = React.useState({ ...defaultStyles, ...animate });\n const styles = React.useMemo(() => {\n // console.log('display state here', initial);\n return [\n getAnimatedStyles(animateValue)(\n initialState as ISupportedTransitions,\n animateState as ISupportedTransitions\n ),\n style,\n ];\n }, [animateValue, initial, animate, style]);\n\n return (\n \n {children}\n \n );\n }\n);\n","import React, { memo, forwardRef } from 'react';\nimport { ExitAnimationContext } from '../../primitives/Overlay/ExitAnimationContext';\nimport { Transition } from './Transition';\nimport type { IPresenceTransitionProps } from './types';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst PresenceTransition = (\n { visible = false, onTransitionComplete, ...rest }: IPresenceTransitionProps,\n ref: any\n) => {\n // const [animationExited, setAnimationExited] = React.useState(!visible);\n\n const { setExited } = React.useContext(ExitAnimationContext);\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(rest)) {\n return null;\n }\n\n return (\n {\n if (state === 'exited') {\n setExited(true);\n } else {\n setExited(false);\n }\n onTransitionComplete && onTransitionComplete(state);\n }}\n {...rest}\n ref={ref}\n />\n );\n};\n\nexport default memo(forwardRef(PresenceTransition));\n","import { useColorMode } from './../core/color-mode';\nimport { useTheme } from './useTheme';\n\n/**\n *\n * @returns object containing `colorMode` information and `theme` object\n */\nexport function useNativeBase() {\n const colorModeResult = useColorMode();\n const theme = useTheme();\n return { ...colorModeResult, theme };\n}\n","import merge from 'lodash.merge';\n\nconst SPECIFICITY_1000 = 1000;\nconst SPECIFICITY_110 = 110;\nconst SPECIFICITY_100 = 100;\nconst SPECIFICITY_70 = 70;\nconst SPECIFICITY_60 = 60;\nconst SPECIFICITY_55 = 55;\nconst SPECIFICITY_50 = 50;\nconst SPECIFICITY_40 = 40;\nconst SPECIFICITY_30 = 30;\n// SPECIFICITY_20 is being user for defferentiating between User Props and Theme Props. So any specificity less than SPECIFICITY_20 will be ovridable by user props.\nconst SPECIFICITY_20 = 20;\nconst SPECIFICITY_10 = 10;\nconst specificityPrecedence = [\n SPECIFICITY_1000,\n SPECIFICITY_110,\n SPECIFICITY_100,\n SPECIFICITY_70,\n SPECIFICITY_60,\n SPECIFICITY_55,\n SPECIFICITY_50,\n SPECIFICITY_40,\n SPECIFICITY_30,\n SPECIFICITY_20,\n SPECIFICITY_10,\n];\nconst INITIAL_PROP_SPECIFICITY = {\n [SPECIFICITY_1000]: 0,\n [SPECIFICITY_110]: 0,\n [SPECIFICITY_100]: 0,\n [SPECIFICITY_70]: 0,\n [SPECIFICITY_60]: 0,\n [SPECIFICITY_50]: 0,\n [SPECIFICITY_55]: 0,\n [SPECIFICITY_40]: 0,\n [SPECIFICITY_30]: 0,\n [SPECIFICITY_20]: 0,\n [SPECIFICITY_10]: 0,\n};\n\nconst pseudoPropsMap = {\n _web: { dependentOn: 'platform', priority: SPECIFICITY_10 },\n _ios: { dependentOn: 'platform', priority: SPECIFICITY_10 },\n _android: { dependentOn: 'platform', priority: SPECIFICITY_10 },\n\n _light: { dependentOn: 'colormode', priority: SPECIFICITY_10 },\n _dark: { dependentOn: 'colormode', priority: SPECIFICITY_10 },\n\n // TODO: have to add more interactionProps and stateProps\n _indeterminate: {\n dependentOn: 'state',\n respondTo: 'isIndeterminate',\n priority: SPECIFICITY_30,\n },\n _checked: {\n dependentOn: 'state',\n respondTo: 'isChecked',\n priority: SPECIFICITY_30,\n },\n // Add new pseudeo props in between -------\n _readOnly: {\n dependentOn: 'state',\n respondTo: 'isReadOnly',\n priority: SPECIFICITY_30,\n },\n // Add new pseudeo props in between -------\n _invalid: {\n dependentOn: 'state',\n respondTo: 'isInvalid',\n priority: SPECIFICITY_40,\n },\n _focus: {\n dependentOn: 'state',\n respondTo: 'isFocused',\n priority: SPECIFICITY_50,\n },\n _focusVisible: {\n dependentOn: 'state',\n respondTo: 'isFocusVisible',\n priority: SPECIFICITY_55,\n },\n _hover: {\n dependentOn: 'state',\n respondTo: 'isHovered',\n priority: SPECIFICITY_60,\n },\n _pressed: {\n dependentOn: 'state',\n respondTo: 'isPressed',\n priority: SPECIFICITY_70,\n },\n _disabled: {\n dependentOn: 'state',\n respondTo: 'isDisabled',\n priority: SPECIFICITY_100,\n },\n _loading: {\n dependentOn: 'state',\n respondTo: 'isLoading',\n priority: SPECIFICITY_110,\n },\n _important: {\n dependentOn: null,\n priority: SPECIFICITY_1000,\n },\n} as const;\n\ntype IPseudoPropsMap = typeof pseudoPropsMap;\ntype ExtractState = {\n // @ts-ignore\n [P in keyof T as T[P]['respondTo']]?: boolean;\n};\nexport type IStateProps = ExtractState;\n\nexport const compareSpecificity = (\n exisiting: any,\n upcoming: any,\n ignorebaseTheme?: boolean\n // property?: any\n) => {\n if (!exisiting) return true;\n if (!upcoming) return false;\n const condition = ignorebaseTheme\n ? specificityPrecedence.length - 1\n : specificityPrecedence.length;\n for (let index = 0; index < condition; index++) {\n if (\n exisiting[specificityPrecedence[index]] >\n upcoming[specificityPrecedence[index]]\n ) {\n return false;\n } else if (\n exisiting[specificityPrecedence[index]] <\n upcoming[specificityPrecedence[index]]\n ) {\n return true;\n }\n }\n return true;\n};\n\nconst shouldResolvePseudoProp = ({\n property,\n state,\n platform,\n colormode,\n}: {\n property: keyof IPseudoPropsMap;\n state: IStateProps;\n platform: any;\n colormode: any;\n}) => {\n if (pseudoPropsMap[property].dependentOn === 'platform') {\n return property === `_${platform}`;\n } else if (pseudoPropsMap[property].dependentOn === 'colormode') {\n return property === `_${colormode}`;\n } else if (pseudoPropsMap[property].dependentOn === 'state') {\n // @ts-ignore\n return state[pseudoPropsMap[property].respondTo];\n } else if (pseudoPropsMap[property].dependentOn === null) {\n return true;\n } else {\n return false;\n }\n};\n\nconst simplifyProps = (\n {\n props,\n colormode,\n platform,\n state,\n currentSpecificity,\n previouslyFlattenProps,\n cascadePseudoProps,\n }: any,\n flattenProps: any = {},\n specificityMap: any = {},\n priority: number\n) => {\n const mergePsuedoProps = (property: string, propertySpecity: object) => {\n if (compareSpecificity(specificityMap[property], propertySpecity, false)) {\n if (process.env.NODE_ENV === 'development' && props.debug) {\n /* eslint-disable-next-line */\n console.log(\n `%c ${property}`,\n 'color: #818cf8;',\n 'updated as internal prop with higher specificity'\n );\n }\n specificityMap[property] = propertySpecity;\n // merging internal props (like, _text, _stack ...)\n flattenProps[property] = merge(\n {},\n flattenProps[property],\n props[property]\n );\n } else {\n if (process.env.NODE_ENV === 'development' && props.debug) {\n /* eslint-disable-next-line */\n console.log(\n `%c ${property}`,\n 'color: #818cf8;',\n 'updated as internal prop with lower specificity'\n );\n }\n flattenProps[property] = merge(\n {},\n props[property],\n flattenProps[property]\n );\n }\n };\n for (const property in props) {\n // NOTE: the order is important here. Keep in mind while specificity breakpoints.\n const propertySpecity = currentSpecificity\n ? { ...currentSpecificity }\n : {\n ...INITIAL_PROP_SPECIFICITY,\n [SPECIFICITY_20]: priority,\n };\n\n if (\n // @ts-ignore\n state[pseudoPropsMap[property]?.respondTo] ||\n ['_dark', '_light', '_web', '_ios', '_android', '_important'].includes(\n property\n )\n ) {\n // @ts-ignore\n if (shouldResolvePseudoProp({ property, state, platform, colormode })) {\n // NOTE: Handling (state driven) props like _important, _web, _ios, _android, _dark, _light, _disabled, _focus, _focusVisible, _hover, _pressed, _readOnly, _invalid, .... Only when they are true.\n if (process.env.NODE_ENV === 'development' && props.debug) {\n /* eslint-disable-next-line */\n console.log(\n `%c ${property}`,\n 'color: #818cf8;',\n 'recursively resolving'\n );\n }\n // @ts-ignore\n propertySpecity[pseudoPropsMap[property].priority]++;\n simplifyProps(\n {\n props: props[property],\n colormode,\n platform,\n state,\n currentSpecificity: propertySpecity,\n previouslyFlattenProps: previouslyFlattenProps,\n cascadePseudoProps,\n },\n flattenProps,\n specificityMap,\n priority\n );\n }\n // @ts-ignore\n } else if (pseudoPropsMap[property] === undefined) {\n if (property.startsWith('_')) {\n // NOTE: Handling (internal) props like _text, _stack, ....\n mergePsuedoProps(property, propertySpecity);\n } else {\n if (\n compareSpecificity(specificityMap[property], propertySpecity, false)\n ) {\n if (process.env.NODE_ENV === 'development' && props.debug) {\n /* eslint-disable-next-line */\n console.log(\n `%c ${property}`,\n 'color: #818cf8;',\n 'updated as simple prop'\n );\n }\n specificityMap[property] = propertySpecity;\n // replacing simple props (like, p, m, bg, color, ...)\n flattenProps[property] = props[property];\n } else {\n if (process.env.NODE_ENV === 'development' && props.debug) {\n /* eslint-disable-next-line */\n console.log(`%c ${property}`, 'color: #818cf8;', 'ignored');\n }\n }\n }\n } else {\n // Can delete unused props\n if (!cascadePseudoProps) {\n delete flattenProps[property];\n if (process.env.NODE_ENV === 'development' && props.debug) {\n /* eslint-disable-next-line */\n console.log(`%c ${property}`, 'color: #818cf8;', 'deleted');\n }\n } else {\n if (process.env.NODE_ENV === 'development' && props.debug) {\n /* eslint-disable-next-line */\n console.log(`%c ${property}`, 'color: #818cf8;', 'cascaded');\n }\n mergePsuedoProps(property, propertySpecity);\n }\n }\n }\n};\n\nexport const propsFlattener = (\n {\n props,\n colormode,\n platform,\n state,\n currentSpecificityMap,\n previouslyFlattenProps,\n cascadePseudoProps,\n }: any,\n priority: number\n) => {\n const flattenProps: any = {};\n\n for (const property in props) {\n if (\n // @ts-ignore\n state[pseudoPropsMap[property]?.respondTo] === undefined &&\n property.startsWith('_')\n ) {\n flattenProps[property] = previouslyFlattenProps[property];\n }\n }\n\n const specificityMap = currentSpecificityMap || {};\n\n simplifyProps(\n {\n props,\n colormode,\n platform,\n state,\n currentSpecificityMap,\n previouslyFlattenProps,\n cascadePseudoProps,\n },\n flattenProps,\n specificityMap,\n priority\n );\n\n return [flattenProps, specificityMap];\n};\n","import get from 'lodash.get';\nimport merge from 'lodash.merge';\nimport isEmpty from 'lodash.isempty';\nimport { Platform } from 'react-native';\nimport { useNativeBase } from '../useNativeBase';\nimport { useColorMode } from '../../core/color-mode';\nimport { omitUndefined, extractInObject } from '../../theme/tools';\nimport { useBreakpointResolvedProps } from '../useBreakpointResolvedProps';\nimport {\n propsFlattener,\n compareSpecificity,\n IStateProps,\n} from './propsFlattener';\nimport { useResponsiveSSRProps } from '../useResponsiveSSRProps';\nimport React from 'react';\nimport { ResponsiveQueryContext } from '../../utils/useResponsiveQuery/ResponsiveQueryProvider';\nimport type { ComponentTheme } from '../../theme';\n\nconst SPREAD_PROP_SPECIFICITY_ORDER = [\n 'p',\n 'padding',\n 'px',\n 'py',\n 'pt',\n 'pb',\n 'pl',\n 'pr',\n 'paddingTop',\n 'paddingBottom',\n 'paddingLeft',\n 'paddingRight',\n 'm',\n 'margin',\n 'mx',\n 'my',\n 'mt',\n 'mb',\n 'ml',\n 'mr',\n 'marginTop',\n 'marginBottom',\n 'marginLeft',\n 'marginRight',\n];\n\nconst FINAL_SPREAD_PROPS = [\n 'paddingTop',\n 'paddingBottom',\n 'paddingLeft',\n 'paddingRight',\n 'marginTop',\n 'marginBottom',\n 'marginLeft',\n 'marginRight',\n];\n\nconst MARGIN_MAP: any = {\n mx: ['marginRight', 'marginLeft'],\n my: ['marginTop', 'marginBottom'],\n mt: ['marginTop'],\n mb: ['marginBottom'],\n mr: ['marginRight'],\n ml: ['marginLeft'],\n};\n\nMARGIN_MAP.margin = [...MARGIN_MAP.mx, ...MARGIN_MAP.my];\nMARGIN_MAP.m = MARGIN_MAP.margin;\nMARGIN_MAP.marginTop = MARGIN_MAP.mt;\nMARGIN_MAP.marginBottom = MARGIN_MAP.mb;\nMARGIN_MAP.marginLeft = MARGIN_MAP.ml;\nMARGIN_MAP.marginRight = MARGIN_MAP.mr;\n\nconst PADDING_MAP: any = {\n px: ['paddingRight', 'paddingLeft'],\n py: ['paddingTop', 'paddingBottom'],\n pt: ['paddingTop'],\n pb: ['paddingBottom'],\n pr: ['paddingRight'],\n pl: ['paddingLeft'],\n};\n\nPADDING_MAP.padding = [...PADDING_MAP.px, ...PADDING_MAP.py];\nPADDING_MAP.p = PADDING_MAP.padding;\nPADDING_MAP.paddingTop = PADDING_MAP.pt;\nPADDING_MAP.paddingBottom = PADDING_MAP.pb;\nPADDING_MAP.paddingLeft = PADDING_MAP.pl;\nPADDING_MAP.paddingRight = PADDING_MAP.pr;\n\nconst SPREAD_PROP_SPECIFICITY_MAP: any = {\n ...PADDING_MAP,\n ...MARGIN_MAP,\n};\n\nfunction propsSpreader(incomingProps: any, incomingSpecifity: any) {\n const flattenedDefaultProps: any = { ...incomingProps };\n const specificity: any = {};\n\n SPREAD_PROP_SPECIFICITY_ORDER.forEach((prop) => {\n if (prop in flattenedDefaultProps) {\n const val = incomingProps[prop] || flattenedDefaultProps[prop];\n if (!FINAL_SPREAD_PROPS.includes(prop)) {\n delete flattenedDefaultProps[prop];\n specificity[prop] = incomingSpecifity[prop];\n }\n\n SPREAD_PROP_SPECIFICITY_MAP[prop].forEach((newProp: string) => {\n if (compareSpecificity(specificity[newProp], specificity[prop])) {\n specificity[newProp] = incomingSpecifity[prop];\n flattenedDefaultProps[newProp] = val;\n }\n });\n }\n });\n\n return merge({}, flattenedDefaultProps);\n}\n\n/**\n * @summary Combines provided porps with component's theme props and resloves them.\n * @arg {string} component - Name of the component.\n * @arg {object} incomingProps - Props passed by the user.\n * @arg {object} state - dependent states.\n * @arg {object} config - configuration for resolution. Accepts key like ignoreProps, resolveResponsively.\n * @returns {object} Resolved and flattened props.\n */\nexport function usePropsResolution(\n component: string,\n incomingProps: any,\n state?: IStateProps,\n config?: {\n componentTheme?: any;\n resolveResponsively?: string[];\n ignoreProps?: string[];\n cascadePseudoProps?: boolean;\n extendTheme?: string[];\n }\n) {\n const { theme } = useNativeBase();\n const componentTheme =\n config?.componentTheme ?? get(theme, `components.${component}`, {});\n\n if (process.env.NODE_ENV === 'development' && incomingProps.debug) {\n /* eslint-disable-next-line */\n console.log(\n `%c${component}`,\n 'background: #d97706; color: #111; font-weight: 700; padding: 2px 8px;'\n );\n /* eslint-disable-next-line */\n console.log(\n `%cusePropsResolution`,\n 'background: #4b5563; color: #d97706; font-weight: 700; padding: 2px 8px;'\n );\n /* eslint-disable-next-line */\n console.log(\n '%c incomingProps: ',\n 'color: #4ade80; font-weight: 700;',\n incomingProps\n );\n /* eslint-disable-next-line */\n console.log('%c state: ', 'color: #4ade80; font-weight: 700;', state);\n /* eslint-disable-next-line */\n console.log(\n '%c componentTheme: ',\n 'color: #4ade80; font-weight: 700;',\n componentTheme\n );\n }\n\n const resolvedProps = usePropsResolutionWithComponentTheme(\n componentTheme,\n incomingProps,\n state,\n config\n );\n\n // Not Resolve theme props and pseudo props\n if (incomingProps?.INTERNAL_notResolveThemeAndPseudoProps) {\n delete incomingProps.INTERNAL_notResolveThemeAndPseudoProps;\n return incomingProps;\n }\n\n if (process.env.NODE_ENV === 'development' && incomingProps.debug) {\n /* eslint-disable-next-line */\n console.log(\n '%c resolvedProps: ',\n 'color: #22d3ee; font-weight: 700;',\n resolvedProps\n );\n }\n return resolvedProps;\n}\n\nexport const usePropsResolutionWithComponentTheme = (\n componentTheme: ComponentTheme,\n incomingProps: any,\n state?: IStateProps,\n config?: {\n componentTheme?: any;\n resolveResponsively?: string[];\n ignoreProps?: string[];\n cascadePseudoProps?: boolean;\n extendTheme?: string[];\n }\n) => {\n const modifiedPropsForSSR = useResponsiveSSRProps(incomingProps);\n\n const [ignoredProps, cleanIncomingProps] = extractInObject(\n modifiedPropsForSSR,\n ['children', 'onPress', 'icon', 'onOpen', 'onClose'].concat(\n config?.ignoreProps || []\n )\n );\n const responsiveQueryContext = React.useContext(ResponsiveQueryContext);\n const disableCSSMediaQueries = responsiveQueryContext.disableCSSMediaQueries;\n const resolveResponsively = [\n 'colorScheme',\n 'size',\n 'variant',\n ...(config?.resolveResponsively || []),\n ];\n\n const { theme } = useNativeBase();\n const colorModeProps = useColorMode();\n\n const extendedTheme: Array = [];\n if (config?.extendTheme) {\n config?.extendTheme.map((componentName: string) => {\n extendedTheme.push(get(theme, `components.${componentName}`, {}));\n });\n }\n if (!isEmpty(componentTheme)) extendedTheme.push(componentTheme);\n\n const resolveComponentTheme = (\n themeType: Array,\n providedTheme: any\n ): any => {\n try {\n if (themeType[1]) {\n return typeof providedTheme[themeType[0]][themeType[1]] !== 'function'\n ? providedTheme[themeType[0]][themeType[1]]\n : providedTheme[themeType[0]][themeType[1]]({\n theme,\n ...incomingWithDefaultProps,\n ...colorModeProps,\n });\n } else {\n return typeof providedTheme[themeType[0]] !== 'function'\n ? providedTheme[themeType[0]]\n : providedTheme[themeType[0]]({\n theme,\n ...incomingWithDefaultProps,\n ...colorModeProps,\n });\n }\n } catch {\n return {};\n }\n };\n const callPropsFlattener = (\n targetProps = {},\n latestSpecifictyMap = {},\n specificity = 1\n ): any => {\n return propsFlattener(\n {\n props:\n process.env.NODE_ENV === 'development' && cleanIncomingProps.debug\n ? { ...targetProps, debug: true }\n : targetProps,\n platform: Platform.OS,\n colormode: colorModeProps.colorMode,\n state: state || {},\n currentSpecificityMap: latestSpecifictyMap,\n previouslyFlattenProps: flattenProps || {},\n cascadePseudoProps: config?.cascadePseudoProps,\n },\n specificity\n );\n };\n\n // STEP 1: combine default props and incoming props\n\n const incomingWithDefaultProps = merge(\n {},\n componentTheme.defaultProps || {},\n cleanIncomingProps\n );\n\n // STEP 1.5: resolving component theme\n let combinedBaseStyle = {};\n let combinedVariantStyle = {};\n let combinedSizeStyle = {};\n extendedTheme.map((extededComponentTheme: any) => {\n if (extededComponentTheme.baseStyle) {\n combinedBaseStyle = {\n ...combinedBaseStyle,\n ...resolveComponentTheme(['baseStyle'], extededComponentTheme),\n };\n }\n if (incomingWithDefaultProps.variant) {\n if (extededComponentTheme.variants) {\n combinedVariantStyle = {\n ...combinedVariantStyle,\n ...resolveComponentTheme(\n ['variants', incomingWithDefaultProps.variant],\n extededComponentTheme\n ),\n };\n }\n }\n if (\n incomingWithDefaultProps.size &&\n extededComponentTheme?.sizes &&\n extededComponentTheme?.sizes[incomingWithDefaultProps.size]\n ) {\n if (\n typeof extededComponentTheme.sizes[incomingWithDefaultProps.size] ===\n 'string' ||\n typeof extededComponentTheme.sizes[incomingWithDefaultProps.size] ===\n 'number'\n ) {\n incomingWithDefaultProps.size =\n extededComponentTheme.sizes[incomingWithDefaultProps.size];\n } else {\n combinedSizeStyle = {\n ...combinedSizeStyle,\n ...resolveComponentTheme(\n ['sizes', incomingWithDefaultProps.size],\n extededComponentTheme\n ),\n };\n incomingWithDefaultProps.size = undefined;\n }\n }\n });\n\n // STEP 2: flatten them\n if (process.env.NODE_ENV === 'development' && cleanIncomingProps.debug) {\n /* eslint-disable-next-line */\n console.log(\n `%cFlattening incoming and Default`,\n 'background: #4b5563; color: #FFF; font-weight: 700; padding: 2px 8px;'\n );\n }\n //TODO: hack\n let flattenProps: any, specificityMap;\n [flattenProps, specificityMap] = callPropsFlattener(\n incomingWithDefaultProps,\n {},\n 2\n );\n const responsiveProps = {};\n if (disableCSSMediaQueries) {\n // STEP 2.5: resolving responsive props\n resolveResponsively.map((propsName) => {\n if (flattenProps[propsName]) {\n // @ts-ignore\n responsiveProps[propsName] = flattenProps[propsName];\n }\n });\n }\n if (resolveResponsively.includes('direction')) {\n const propName = 'direction';\n if (flattenProps[propName]) {\n // @ts-ignore\n responsiveProps[propName] = flattenProps[propName];\n }\n }\n const responsivelyResolvedProps = useBreakpointResolvedProps(responsiveProps);\n\n flattenProps = {\n ...flattenProps,\n ...responsivelyResolvedProps,\n };\n // STEP 3: Pass it to baseStyle, then variant and then size and resolve them.\n\n // NOTE: Resoloving baseStyle\n let flattenBaseStyle, baseSpecificityMap;\n if (combinedBaseStyle) {\n if (process.env.NODE_ENV === 'development' && cleanIncomingProps.debug) {\n /* eslint-disable-next-line */\n console.log(\n `%cFlattening baseStyle`,\n 'background: #4b5563; color: #eee; font-weight: 700; padding: 2px 8px;'\n );\n }\n [flattenBaseStyle, baseSpecificityMap] = callPropsFlattener(\n combinedBaseStyle,\n specificityMap\n );\n }\n\n // NOTE: Resolving variants\n let flattenVariantStyle, variantSpecificityMap;\n // Extracting props from variant\n if (combinedVariantStyle) {\n if (process.env.NODE_ENV === 'development' && cleanIncomingProps.debug) {\n /* eslint-disable-next-line */\n console.log(\n `%cFlattening variantStyle`,\n 'background: #4b5563; color: #FFF; font-weight: 700; padding: 2px 8px;'\n );\n }\n [flattenVariantStyle, variantSpecificityMap] = callPropsFlattener(\n combinedVariantStyle,\n baseSpecificityMap || specificityMap\n );\n\n // We remove variant from original props if we found it in the componentTheme\n //@ts-ignore\n flattenProps.variant = undefined;\n }\n\n // NOTE: Resolving size\n\n let flattenSizeStyle, sizeSpecificityMap;\n // Extracting props from size\n if (combinedSizeStyle) {\n if (process.env.NODE_ENV === 'development' && cleanIncomingProps.debug) {\n /* eslint-disable-next-line */\n console.log(\n `%cFlattening sizeStyle`,\n 'background: #4b5563; color: #FFF; font-weight: 700; padding: 2px 8px;'\n );\n }\n [flattenSizeStyle, sizeSpecificityMap] = callPropsFlattener(\n combinedSizeStyle,\n variantSpecificityMap || baseSpecificityMap || specificityMap\n );\n }\n\n // STEP 4: merge\n const defaultStyles = merge(\n {},\n flattenBaseStyle,\n flattenVariantStyle,\n flattenSizeStyle\n );\n\n /*Resolve all the internal used Pseudo Props*/\n const resolvePseudoProps = (\n flatPseudoProp: any /** Props coming from Pseudo inside flattenProps */,\n baseStylePseudoProp: any /** Props coming from Pseudo inside defaultStyles(baseStyle) */\n ) => {\n for (const prop in flatPseudoProp) {\n baseStylePseudoProp[prop] =\n flatPseudoProp[\n prop\n ]; /* Replace all the similar prop from from internal props */\n }\n return baseStylePseudoProp;\n };\n\n for (const prop in defaultStyles) {\n if (prop.startsWith('_') && flattenProps.hasOwnProperty(prop)) {\n /*Resolve all the internal used Pseudo Props*/\n defaultStyles[prop] = resolvePseudoProps(\n flattenProps[prop],\n defaultStyles[prop]\n );\n }\n delete flattenProps[prop];\n }\n\n const defaultSpecificity = merge(\n {},\n specificityMap,\n baseSpecificityMap,\n variantSpecificityMap,\n sizeSpecificityMap\n );\n\n flattenProps = propsSpreader(\n { ...defaultStyles, ...flattenProps },\n defaultSpecificity\n );\n\n const resolvedProps = omitUndefined({\n ...flattenProps,\n ...ignoredProps,\n });\n\n // STEP 5: Return\n return resolvedProps;\n};\n","import { useEffect, useState } from 'react';\nimport { useTheme } from '../hooks/useTheme';\nimport { useNativeBaseConfig } from '../core/NativeBaseContext';\nimport { isResponsiveAnyProp } from '../theme/tools';\n\nexport function useResponsiveSSRProps(incomingProps: any) {\n const [modified, setModified] = useState(false);\n const theme = useTheme();\n\n const responsivePropsExists = isResponsiveAnyProp(incomingProps, theme);\n const isSSR = useNativeBaseConfig('useBreakpointResolvedProps').isSSR;\n\n let modifiedProps = incomingProps;\n if (responsivePropsExists && isSSR && !modified) {\n modifiedProps = { ...modifiedProps, key: Math.random() };\n }\n useEffect((): any => {\n if (responsivePropsExists && isSSR) {\n setModified(true);\n }\n }, [responsivePropsExists, isSSR]);\n\n return modifiedProps;\n}\n","import React from 'react';\nimport type { ResponsiveValue } from '../components/types';\nimport { useNativeBaseConfig } from '../core/NativeBaseContext';\nimport { resolveValueWithBreakpoint } from './useThemeProps/utils';\nimport { useTheme } from './../hooks/useTheme';\n\ntype IProps = {\n [key: string]: ResponsiveValue;\n};\n\ntype INewProps = {\n [key: string]: number | string;\n};\n\nexport const useBreakpointResolvedProps = (props: IProps) => {\n const currentBreakpoint = useNativeBaseConfig('useBreakpointResolvedProps')\n .currentBreakpoint;\n const theme = useTheme();\n const newProps: INewProps = React.useMemo(() => {\n let newProps: INewProps = {};\n for (let key in props) {\n const rawValue = props[key];\n const value = resolveValueWithBreakpoint(\n rawValue,\n theme.breakpoints,\n currentBreakpoint,\n key\n );\n newProps[key] = value;\n }\n return newProps;\n }, [props, currentBreakpoint, theme.breakpoints]);\n\n return newProps;\n};\n","/* eslint-disable */\n//@ts-nocheck\n// This hash function is taken from react native web\n/**\n * JS Implementation of MurmurHash2\n *\n * @author Gary Court\n * @see http://github.com/garycourt/murmurhash-js\n * @author Austin Appleby\n * @see http://sites.google.com/site/murmurhash/\n *\n * @param {string} str ASCII only\n * @param {number} seed Positive integer only\n * @return {number} 32-bit positive integer hash\n */\nfunction murmurhash2_32_gc(str: string, seed: number) {\n var l = str.length,\n h = seed ^ l,\n i = 0,\n k;\n\n while (l >= 4) {\n k =\n (str.charCodeAt(i) & 0xff) |\n ((str.charCodeAt(++i) & 0xff) << 8) |\n ((str.charCodeAt(++i) & 0xff) << 16) |\n ((str.charCodeAt(++i) & 0xff) << 24);\n k =\n (k & 0xffff) * 0x5bd1e995 + ((((k >>> 16) * 0x5bd1e995) & 0xffff) << 16);\n k ^= k >>> 24;\n k =\n (k & 0xffff) * 0x5bd1e995 + ((((k >>> 16) * 0x5bd1e995) & 0xffff) << 16);\n h =\n ((h & 0xffff) * 0x5bd1e995 +\n ((((h >>> 16) * 0x5bd1e995) & 0xffff) << 16)) ^\n k;\n l -= 4;\n ++i;\n }\n\n switch (l) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n (h & 0xffff) * 0x5bd1e995 +\n ((((h >>> 16) * 0x5bd1e995) & 0xffff) << 16);\n }\n\n h ^= h >>> 13;\n h = (h & 0xffff) * 0x5bd1e995 + ((((h >>> 16) * 0x5bd1e995) & 0xffff) << 16);\n h ^= h >>> 15;\n return h >>> 0;\n}\n\nconst hash = function hash(str: string) {\n return murmurhash2_32_gc(str, 1).toString(36);\n};\n\nexport default hash;\n","/* eslint-disable */\n//@ts-nocheck\n// This functions is taken from react native web\nimport backgroundClip from 'inline-style-prefixer/lib/plugins/backgroundClip';\nimport crossFade from 'inline-style-prefixer/lib/plugins/crossFade';\nimport cursor from 'inline-style-prefixer/lib/plugins/cursor';\nimport filter from 'inline-style-prefixer/lib/plugins/filter';\nimport imageSet from 'inline-style-prefixer/lib/plugins/imageSet';\nimport logical from 'inline-style-prefixer/lib/plugins/logical';\nimport position from 'inline-style-prefixer/lib/plugins/position';\nimport sizing from 'inline-style-prefixer/lib/plugins/sizing';\nimport transition from 'inline-style-prefixer/lib/plugins/transition';\nconst w = ['Webkit'];\nconst m = ['Moz'];\nconst wm = ['Webkit', 'Moz'];\nconst wms = ['Webkit', 'ms'];\nconst wmms = ['Webkit', 'Moz', 'ms'];\n\nexport default {\n plugins: [\n backgroundClip,\n crossFade,\n cursor,\n filter,\n imageSet,\n logical,\n position,\n sizing,\n transition,\n ],\n prefixMap: {\n appearance: wmms,\n userSelect: wm,\n textEmphasisPosition: wms,\n textEmphasis: wms,\n textEmphasisStyle: wms,\n textEmphasisColor: wms,\n boxDecorationBreak: wms,\n clipPath: w,\n maskImage: wms,\n maskMode: wms,\n maskRepeat: wms,\n maskPosition: wms,\n maskClip: wms,\n maskOrigin: wms,\n maskSize: wms,\n maskComposite: wms,\n mask: wms,\n maskBorderSource: wms,\n maskBorderMode: wms,\n maskBorderSlice: wms,\n maskBorderWidth: wms,\n maskBorderOutset: wms,\n maskBorderRepeat: wms,\n maskBorder: wms,\n maskType: wms,\n textDecorationStyle: w,\n textDecorationSkip: w,\n textDecorationLine: w,\n textDecorationColor: w,\n filter: w,\n breakAfter: w,\n breakBefore: w,\n breakInside: w,\n columnCount: w,\n columnFill: w,\n columnGap: w,\n columnRule: w,\n columnRuleColor: w,\n columnRuleStyle: w,\n columnRuleWidth: w,\n columns: w,\n columnSpan: w,\n columnWidth: w,\n backdropFilter: w,\n hyphens: w,\n flowInto: w,\n flowFrom: w,\n regionFragment: w,\n textOrientation: w,\n tabSize: m,\n fontKerning: w,\n textSizeAdjust: w,\n },\n};\n","/* eslint-disable */\n//@ts-nocheck\n// This functions is taken from react native web\n\nimport createPrefixer from 'inline-style-prefixer/lib/createPrefixer';\nimport staticData from './staticData';\n\ntype StyleModifier = (style: Object) => Object;\n\nconst prefixAll: StyleModifier = createPrefixer(staticData);\n\nexport default prefixAll;\n","/* eslint-disable */\n//@ts-nocheck\n// This functions is taken from react native web\n\nconst unitlessNumbers: any = {\n animationIterationCount: true,\n aspectRatio: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexOrder: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n fontWeight: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowGap: true,\n gridRowStart: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnGap: true,\n gridColumnStart: true,\n lineClamp: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n // SVG-related\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true,\n // transform types\n scale: true,\n scaleX: true,\n scaleY: true,\n scaleZ: true,\n // RN properties\n shadowOpacity: true,\n};\n\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\nconst prefixes = ['ms', 'Moz', 'O', 'Webkit'];\nconst prefixKey = (prefix: string, key: string) => {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n};\nObject.keys(unitlessNumbers).forEach((prop) => {\n prefixes.forEach((prefix) => {\n unitlessNumbers[prefixKey(prefix, prop)] = unitlessNumbers[prop];\n });\n});\n\nexport default unitlessNumbers;\n","/* eslint-disable */\n//@ts-nocheck\n// This functions is taken from react native web\n\nimport ConvertNumberIntoHex from 'normalize-css-color';\n\nconst processColor = (color?: any): any => {\n if (color === undefined || color === null) {\n return color;\n }\n\n // convert number and hex\n let int32Color = ConvertNumberIntoHex(color);\n if (int32Color === undefined || int32Color === null) {\n return undefined;\n }\n //@ts-ignore\n int32Color = ((int32Color << 24) | (int32Color >>> 8)) >>> 0;\n\n return int32Color;\n};\n\nconst isWebColor = (color: string): boolean =>\n color === 'currentcolor' ||\n color === 'currentColor' ||\n color === 'inherit' ||\n color.indexOf('var(') === 0;\n\nconst normalizeColor = (\n color?: number | string,\n opacity: number = 1\n): void | string => {\n if (color == null) return;\n\n if (typeof color === 'string' && isWebColor(color)) {\n return color;\n }\n\n const colorInt = processColor(color);\n if (colorInt != null) {\n const r = (colorInt >> 16) & 255;\n const g = (colorInt >> 8) & 255;\n const b = colorInt & 255;\n const a = ((colorInt >> 24) & 255) / 255;\n const alpha = (a * opacity).toFixed(2);\n return `rgba(${r},${g},${b},${alpha})`;\n }\n};\n\nexport default normalizeColor;\n","/* eslint-disable */\n//@ts-nocheck\n// This functions is taken from react native web\n\nimport unitlessNumbers from './unitlessNumbers';\nimport normalizeColor from './normalizeColor';\n\nconst colorProps: any = {\n backgroundColor: true,\n borderColor: true,\n borderTopColor: true,\n borderRightColor: true,\n borderBottomColor: true,\n borderLeftColor: true,\n color: true,\n shadowColor: true,\n textDecorationColor: true,\n textShadowColor: true,\n};\n\nexport default function normalizeValueWithProperty(\n value: any,\n property?: string\n): any {\n let returnValue = value;\n if (\n (property == null || !unitlessNumbers[property]) &&\n typeof value === 'number'\n ) {\n returnValue = `${value}px`;\n } else if (property != null && colorProps[property]) {\n returnValue = normalizeColor(value);\n }\n return returnValue;\n}\n","/* eslint-disable */\n//@ts-nocheck\n// This functions is taken from react native web\n\nimport normalizeValueWithProperty from './normalizeValueWithProperty';\n\ntype Style = { [key: string]: any };\nconst canUseDOM: boolean = !!(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n);\n\n/**\n * The browser implements the CSS cascade, where the order of properties is a\n * factor in determining which styles to paint. React Native is different. It\n * gives giving precedence to the more specific style property. For example,\n * the value of `paddingTop` takes precedence over that of `padding`.\n *\n * This module creates mutally exclusive style declarations by expanding all of\n * React Native's supported shortform properties (e.g. `padding`) to their\n * longfrom equivalents.\n */\n\nconst emptyObject = {};\n\nconst supportsCSS3TextDecoration =\n !canUseDOM ||\n (window.CSS != null &&\n window.CSS.supports != null &&\n (window.CSS.supports('text-decoration-line', 'none') ||\n window.CSS.supports('-webkit-text-decoration-line', 'none')));\n\nconst ignoredProps: {\n elevation: boolean;\n overlayColor: boolean;\n resizeMode: boolean;\n tintColor: boolean;\n} = {\n elevation: true,\n overlayColor: true,\n resizeMode: true,\n tintColor: true,\n};\n\nconst MONOSPACE_FONT_STACK = 'monospace,monospace';\n\nconst SYSTEM_FONT_STACK =\n '-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif';\n\nconst STYLE_SHORT_FORM_EXPANSIONS: any = {\n borderColor: [\n 'borderTopColor',\n 'borderRightColor',\n 'borderBottomColor',\n 'borderLeftColor',\n ],\n borderRadius: [\n 'borderTopLeftRadius',\n 'borderTopRightRadius',\n 'borderBottomRightRadius',\n 'borderBottomLeftRadius',\n ],\n borderStyle: [\n 'borderTopStyle',\n 'borderRightStyle',\n 'borderBottomStyle',\n 'borderLeftStyle',\n ],\n borderWidth: [\n 'borderTopWidth',\n 'borderRightWidth',\n 'borderBottomWidth',\n 'borderLeftWidth',\n ],\n marginHorizontal: ['marginRight', 'marginLeft'],\n marginVertical: ['marginTop', 'marginBottom'],\n overflow: ['overflowX', 'overflowY'],\n overscrollBehavior: ['overscrollBehaviorX', 'overscrollBehaviorY'],\n paddingHorizontal: ['paddingRight', 'paddingLeft'],\n paddingVertical: ['paddingTop', 'paddingBottom'],\n};\n\n/**\n * Transform\n */\n\n// { scale: 2 } => 'scale(2)'\n// { translateX: 20 } => 'translateX(20px)'\n// { matrix: [1,2,3,4,5,6] } => 'matrix(1,2,3,4,5,6)'\nconst mapTransform = (transform: Object): string => {\n const type = Object.keys(transform)[0];\n //@ts-ignore\n const value = transform[type];\n if (type === 'matrix' || type === 'matrix3d') {\n return `${type}(${value.join(',')})`;\n } else {\n const normalizedValue = normalizeValueWithProperty(value, type);\n return `${type}(${normalizedValue})`;\n }\n};\n\nexport const createTransformValue = (style: Style): string => {\n let transform = style.transform;\n if (Array.isArray(style.transform)) {\n transform = style.transform.map(mapTransform).join(' ');\n }\n return transform;\n};\n\n/**\n * Reducer\n */\n\nconst createReactDOMStyle = (style: Style, isInline?: boolean): Style => {\n if (!style) {\n return emptyObject;\n }\n\n const resolvedStyle: any = {};\n\n for (const prop in style) {\n const value = style[prop];\n\n if (\n // Ignore everything with a null value\n value == null ||\n // Ignore some React Native styles\n //@ts-ignore\n ignoredProps[prop]\n ) {\n continue;\n }\n\n if (prop === 'aspectRatio') {\n resolvedStyle[prop] = value.toString();\n } else if (prop === 'backgroundClip') {\n // TODO: remove once this issue is fixed\n // https://github.com/rofrischmann/inline-style-prefixer/issues/159\n if (value === 'text') {\n resolvedStyle.backgroundClip = value;\n resolvedStyle.WebkitBackgroundClip = value;\n }\n } else if (prop === 'flex') {\n if (value === -1) {\n resolvedStyle.flexGrow = 0;\n resolvedStyle.flexShrink = 1;\n resolvedStyle.flexBasis = 'auto';\n } else {\n resolvedStyle.flex = value;\n }\n } else if (prop === 'font') {\n resolvedStyle[prop] = value.replace('System', SYSTEM_FONT_STACK);\n } else if (prop === 'fontFamily') {\n if (value.indexOf('System') > -1) {\n const stack = value.split(/,\\s*/);\n stack[stack.indexOf('System')] = SYSTEM_FONT_STACK;\n resolvedStyle[prop] = stack.join(',');\n } else if (value === 'monospace') {\n resolvedStyle[prop] = MONOSPACE_FONT_STACK;\n } else {\n resolvedStyle[prop] = value;\n }\n } else if (prop === 'fontVariant') {\n if (Array.isArray(value) && value.length > 0) {\n resolvedStyle.fontVariant = value.join(' ');\n }\n } else if (prop === 'textAlignVertical') {\n resolvedStyle.verticalAlign = value === 'center' ? 'middle' : value;\n } else if (prop === 'textDecorationLine') {\n // use 'text-decoration' for browsers that only support CSS2\n // text-decoration (e.g., IE, Edge)\n if (!supportsCSS3TextDecoration) {\n resolvedStyle.textDecoration = value;\n } else {\n resolvedStyle.textDecorationLine = value;\n }\n } else if (prop === 'transform' || prop === 'transformMatrix') {\n resolvedStyle.transform = createTransformValue(style);\n } else if (prop === 'writingDirection') {\n resolvedStyle.direction = value;\n } else {\n const value = normalizeValueWithProperty(style[prop], prop);\n const longFormProperties = STYLE_SHORT_FORM_EXPANSIONS[prop];\n if (isInline && prop === 'margin') {\n if (style.marginHorizontal == null) {\n resolvedStyle.marginLeft = value;\n resolvedStyle.marginRight = value;\n }\n if (style.marginVertical == null) {\n resolvedStyle.marginTop = value;\n resolvedStyle.marginBottom = value;\n }\n } else if (isInline && prop === 'padding') {\n if (style.paddingHorizontal == null) {\n resolvedStyle.paddingLeft = value;\n resolvedStyle.paddingRight = value;\n }\n if (style.paddingVertical == null) {\n resolvedStyle.paddingTop = value;\n resolvedStyle.paddingBottom = value;\n }\n } else if (longFormProperties) {\n longFormProperties.forEach((longForm: any, _i: any) => {\n // The value of any longform property in the original styles takes\n // precedence over the shortform's value.\n if (style[longForm] == null) {\n resolvedStyle[longForm] = value;\n }\n });\n } else {\n resolvedStyle[prop] = Array.isArray(value) ? value.join(',') : value;\n }\n }\n }\n\n return resolvedStyle;\n};\n\nexport default createReactDOMStyle;\n","/* eslint-disable */\n//@ts-nocheck\n// This functions is taken from react native web\n\nconst uppercasePattern = /[A-Z]/g;\nconst msPattern = /^ms-/;\nconst cache: any = {};\n\nfunction toHyphenLower(match: any) {\n return '-' + match.toLowerCase();\n}\n\nfunction hyphenateStyleName(name: string): string {\n if (name in cache) {\n return cache[name];\n }\n\n const hName = name.replace(uppercasePattern, toHyphenLower);\n return (cache[name] = msPattern.test(hName) ? '-' + hName : hName);\n}\n\nexport default hyphenateStyleName;\n","/* eslint-disable */\n//@ts-nocheck\n// This functions is taken from react native web\n\nimport hash from '../useResponsiveQuery/hash';\nimport prefixStyles from '../react-native-web-fucntions/prefixStyles';\nimport normalizeValueWithProperty from './normalizeValueWithProperty';\nimport createReactDOMStyle from '../react-native-web-fucntions/createReactDOMStyle';\nimport hyphenateStyleName from '../react-native-web-fucntions/hyphenateStyleName';\ntype Value = Object | Array | string | number;\ntype Style = { [key: string]: Value };\ntype Rule = string;\ntype Rules = Array;\ntype RulesData = [Rules, number];\ntype CompiledStyle = {\n //@ts-ignore\n $$css: boolean;\n //@ts-ignore\n $$css$localize?: boolean;\n [key: string]: string | Array;\n};\nconst borderTopLeftRadius = 'borderTopLeftRadius';\nconst borderTopRightRadius = 'borderTopRightRadius';\nconst borderBottomLeftRadius = 'borderBottomLeftRadius';\nconst borderBottomRightRadius = 'borderBottomRightRadius';\nconst borderLeftColor = 'borderLeftColor';\nconst borderLeftStyle = 'borderLeftStyle';\nconst borderLeftWidth = 'borderLeftWidth';\nconst borderRightColor = 'borderRightColor';\nconst borderRightStyle = 'borderRightStyle';\nconst borderRightWidth = 'borderRightWidth';\nconst right = 'right';\nconst marginLeft = 'marginLeft';\nconst marginRight = 'marginRight';\nconst paddingLeft = 'paddingLeft';\nconst paddingRight = 'paddingRight';\nconst left = 'left';\nconst PROPERTIES_VALUE: any = ['clear', 'float', 'textAlign'];\n// Map of LTR property names to their BiDi equivalent.\nconst PROPERTIES_FLIP: { [key: string]: string } = {\n [borderTopLeftRadius]: borderTopRightRadius,\n [borderTopRightRadius]: borderTopLeftRadius,\n [borderBottomLeftRadius]: borderBottomRightRadius,\n [borderBottomRightRadius]: borderBottomLeftRadius,\n [borderLeftColor]: borderRightColor,\n [borderLeftStyle]: borderRightStyle,\n [borderLeftWidth]: borderRightWidth,\n [borderRightColor]: borderLeftColor,\n [borderRightStyle]: borderLeftStyle,\n [borderRightWidth]: borderLeftWidth,\n [left]: right,\n [marginLeft]: marginRight,\n [marginRight]: marginLeft,\n [paddingLeft]: paddingRight,\n [paddingRight]: paddingLeft,\n [right]: left,\n};\n// Map of I18N property names to their LTR equivalent.\nconst PROPERTIES_I18N: any = {\n borderTopStartRadius: borderTopLeftRadius,\n borderTopEndRadius: borderTopRightRadius,\n borderBottomStartRadius: borderBottomLeftRadius,\n borderBottomEndRadius: borderBottomRightRadius,\n borderStartColor: borderLeftColor,\n borderStartStyle: borderLeftStyle,\n borderStartWidth: borderLeftWidth,\n borderEndColor: borderRightColor,\n borderEndStyle: borderRightStyle,\n borderEndWidth: borderRightWidth,\n end: right,\n marginStart: marginLeft,\n marginEnd: marginRight,\n paddingStart: paddingLeft,\n paddingEnd: paddingRight,\n start: left,\n};\ntype CompilerOutput = [CompiledStyle, Array];\nconst customGroup: { [key: string]: number } = {\n borderColor: 2,\n borderRadius: 2,\n borderStyle: 2,\n borderWidth: 2,\n display: 2,\n flex: 2,\n margin: 2,\n overflow: 2,\n overscrollBehavior: 2,\n padding: 2,\n marginHorizontal: 2.1,\n marginVertical: 2.1,\n paddingHorizontal: 2.1,\n paddingVertical: 2.1,\n};\nconst atomicGroup = 2.2;\nconst cache = new Map();\nexport function atomic(style: Style): CompilerOutput {\n //@ts-ignore\n const compiledStyle: CompiledStyle = { $$css: true };\n const compiledRules: any = [];\n\n function atomicCompile(prop: any, value: any) {\n const valueString = stringifyValueWithProperty(value, prop);\n const cacheKey = prop + valueString;\n const cachedResult = cache.get(cacheKey);\n let identifier;\n if (cachedResult != null) {\n identifier = cachedResult[0];\n compiledRules.push(cachedResult[1]);\n } else {\n identifier = createIdentifier('r', prop, value);\n const order = customGroup[prop] || atomicGroup;\n const rules = createAtomicRules(identifier, prop, value);\n const orderedRules = [rules, order];\n compiledRules.push(orderedRules);\n cache.set(cacheKey, [identifier, orderedRules]);\n }\n return identifier;\n }\n\n Object.keys(style)\n .sort()\n .forEach((prop) => {\n const value = style[prop];\n if (value != null) {\n let localizeableValue;\n // BiDi flip values\n if (PROPERTIES_VALUE.indexOf(prop) > -1) {\n const left = atomicCompile(prop, 'left');\n const right = atomicCompile(prop, 'right');\n if (value === 'start') {\n localizeableValue = [left, right];\n } else if (value === 'end') {\n localizeableValue = [right, left];\n }\n }\n // BiDi flip properties\n const propPolyfill = PROPERTIES_I18N[prop];\n if (propPolyfill != null) {\n const ltr = atomicCompile(propPolyfill, value);\n const rtl = atomicCompile(PROPERTIES_FLIP[propPolyfill], value);\n localizeableValue = [ltr, rtl];\n }\n // BiDi flip transitionProperty value\n if (prop === 'transitionProperty') {\n const values = Array.isArray(value) ? value : [value];\n const polyfillIndices = [];\n\n for (let i = 0; i < values.length; i++) {\n const val = values[i];\n if (typeof val === 'string' && PROPERTIES_I18N[val] != null) {\n polyfillIndices.push(i);\n }\n }\n\n if (polyfillIndices.length > 0) {\n const ltrPolyfillValues = [...values];\n const rtlPolyfillValues = [...values];\n polyfillIndices.forEach((i) => {\n const ltrVal = ltrPolyfillValues[i];\n if (typeof ltrVal === 'string') {\n const ltrPolyfill = PROPERTIES_I18N[ltrVal];\n const rtlPolyfill = PROPERTIES_FLIP[ltrPolyfill];\n ltrPolyfillValues[i] = ltrPolyfill;\n rtlPolyfillValues[i] = rtlPolyfill;\n const ltr = atomicCompile(prop, ltrPolyfillValues);\n const rtl = atomicCompile(prop, rtlPolyfillValues);\n localizeableValue = [ltr, rtl];\n }\n });\n }\n }\n\n if (localizeableValue == null) {\n localizeableValue = atomicCompile(prop, value);\n } else {\n compiledStyle['$$css$localize'] = true;\n }\n\n compiledStyle[prop] = localizeableValue;\n }\n });\n\n return [compiledStyle, compiledRules];\n}\n\n/**\n * Create a value string that normalizes different input values with a common\n * output.\n */\nexport function stringifyValueWithProperty(\n value: Value,\n property?: string\n): string {\n // e.g., 0 => '0px', 'black' => 'rgba(0,0,0,1)'\n const normalizedValue = normalizeValueWithProperty(value, property);\n return typeof normalizedValue !== 'string'\n ? JSON.stringify(normalizedValue || '')\n : normalizedValue;\n}\n\n/**\n * An identifier is associated with a unique set of styles.\n */\nfunction createIdentifier(prefix: string, name: string, value: Value): string {\n const hashedString = hash(name + stringifyValueWithProperty(value, name));\n return process.env.NODE_ENV !== 'production'\n ? `${prefix}-${name}-${hashedString}`\n : `${prefix}-${hashedString}`;\n}\n\n/**\n * Create the Atomic CSS rules needed for a given StyleSheet rule.\n * Translates StyleSheet declarations to CSS.\n */\nfunction createAtomicRules(\n identifier: string,\n property: any,\n value: any\n): Rules {\n const rules = [];\n const selector = `.${identifier}`;\n\n // Handle non-standard properties and object values that require multiple\n // CSS rules to be created.\n switch (property) {\n case 'animationKeyframes': {\n const [animationNames, keyframesRules] = processKeyframesValue(value);\n const block = createDeclarationBlock({\n animationName: animationNames.join(','),\n });\n rules.push(`${selector}${block}`, ...keyframesRules);\n break;\n }\n\n // Equivalent to using '::placeholder'\n case 'placeholderTextColor': {\n const block = createDeclarationBlock({ color: value, opacity: 1 });\n rules.push(\n `${selector}::-webkit-input-placeholder${block}`,\n `${selector}::-moz-placeholder${block}`,\n `${selector}:-ms-input-placeholder${block}`,\n `${selector}::placeholder${block}`\n );\n break;\n }\n\n // Polyfill for additional 'pointer-events' values\n // See d13f78622b233a0afc0c7a200c0a0792c8ca9e58\n case 'pointerEvents': {\n let finalValue = value;\n if (value === 'auto' || value === 'box-only') {\n finalValue = 'auto!important';\n if (value === 'box-only') {\n const block = createDeclarationBlock({ pointerEvents: 'none' });\n rules.push(`${selector}>*${block}`);\n }\n } else if (value === 'none' || value === 'box-none') {\n finalValue = 'none!important';\n if (value === 'box-none') {\n const block = createDeclarationBlock({ pointerEvents: 'auto' });\n rules.push(`${selector}>*${block}`);\n }\n }\n const block = createDeclarationBlock({ pointerEvents: finalValue });\n rules.push(`${selector}${block}`);\n break;\n }\n\n // Polyfill for draft spec\n // https://drafts.csswg.org/css-scrollbars-1/\n case 'scrollbarWidth': {\n if (value === 'none') {\n rules.push(`${selector}::-webkit-scrollbar{display:none}`);\n }\n const block = createDeclarationBlock({ scrollbarWidth: value });\n rules.push(`${selector}${block}`);\n break;\n }\n\n default: {\n const block = createDeclarationBlock({ [property]: value });\n rules.push(`${selector}${block}`);\n break;\n }\n }\n\n return rules;\n}\n\n/**\n * Creates a CSS declaration block from a StyleSheet object.\n */\nfunction createDeclarationBlock(style: Style): string {\n const domStyle: any = prefixStyles(createReactDOMStyle(style));\n const declarationsString = Object.keys(domStyle)\n .map((property) => {\n const value = domStyle[property];\n const prop = hyphenateStyleName(property);\n // The prefixer may return an array of values:\n // { display: [ '-webkit-flex', 'flex' ] }\n // to represent \"fallback\" declarations\n // { display: -webkit-flex; display: flex; }\n if (Array.isArray(value)) {\n return value.map((v) => `${prop}:${v}`).join(';');\n } else {\n return `${prop}:${value}`;\n }\n })\n // Once properties are hyphenated, this will put the vendor\n // prefixed and short-form properties first in the list.\n .sort()\n .join(';');\n\n return `{${declarationsString};}`;\n}\n\n/**\n * Create CSS keyframes rules and names from a StyleSheet keyframes object.\n */\nfunction processKeyframesValue(keyframesValue: any) {\n if (typeof keyframesValue === 'number') {\n throw new Error(`Invalid CSS keyframes type: ${typeof keyframesValue}`);\n }\n\n const animationNames: any = [];\n const rules: any = [];\n const value = Array.isArray(keyframesValue)\n ? keyframesValue\n : [keyframesValue];\n\n value.forEach((keyframes) => {\n if (typeof keyframes === 'string') {\n // Support external animation libraries (identifiers only)\n animationNames.push(keyframes);\n } else {\n // Create rules for each of the keyframes\n const [identifier, keyframesRules] = createKeyframes(keyframes);\n animationNames.push(identifier);\n rules.push(...keyframesRules);\n }\n });\n\n return [animationNames, rules];\n}\n\n/**\n * Create individual CSS keyframes rules.\n */\nfunction createKeyframes(keyframes: any): [string, Rules] {\n const prefixes = ['-webkit-', ''];\n const identifier = createIdentifier('r', 'animation', keyframes);\n\n const steps =\n '{' +\n Object.keys(keyframes)\n .map((stepName) => {\n const rule = keyframes[stepName];\n const block = createDeclarationBlock(rule);\n return `${stepName}${block}`;\n })\n .join('') +\n '}';\n\n const rules = prefixes.map((prefix) => {\n return `@${prefix}keyframes ${identifier}${steps}`;\n });\n return [identifier, rules];\n}\n","/* eslint-disable */\n//@ts-nocheck\n// This functions is taken from react native web\n\nimport normalizeColor from './normalizeColor';\nimport normalizeValueWithProperty from './normalizeValueWithProperty';\n\nconst emptyObject = {};\n\n/**\n * Shadows\n */\n\nconst defaultOffset = { height: 0, width: 0 };\n\nexport const createBoxShadowValue = (style: any): void | string => {\n const { shadowColor, shadowOffset, shadowOpacity, shadowRadius } = style;\n const { height, width } = shadowOffset || defaultOffset;\n const offsetX = normalizeValueWithProperty(width);\n const offsetY = normalizeValueWithProperty(height);\n const blurRadius = normalizeValueWithProperty(shadowRadius || 0);\n const color = normalizeColor(shadowColor || 'black', shadowOpacity);\n if (\n color != null &&\n offsetX != null &&\n offsetY != null &&\n blurRadius != null\n ) {\n return `${offsetX} ${offsetY} ${blurRadius} ${color}`;\n }\n};\n\nexport const createTextShadowValue = (style: any): void | string => {\n const { textShadowColor, textShadowOffset, textShadowRadius } = style;\n const { height, width } = textShadowOffset || defaultOffset;\n const radius = textShadowRadius || 0;\n const offsetX = normalizeValueWithProperty(width);\n const offsetY = normalizeValueWithProperty(height);\n const blurRadius = normalizeValueWithProperty(radius);\n const color = normalizeValueWithProperty(textShadowColor, 'textShadowColor');\n\n if (\n color &&\n (height !== 0 || width !== 0 || radius !== 0) &&\n offsetX != null &&\n offsetY != null &&\n blurRadius != null\n ) {\n return `${offsetX} ${offsetY} ${blurRadius} ${color}`;\n }\n};\n\n/**\n * Preprocess styles\n */\nexport const preprocess = (originalStyle: any) => {\n const style = originalStyle || emptyObject;\n const nextStyle: any = {};\n for (const originalProp in style) {\n const originalValue = style[originalProp];\n\n let prop = originalProp;\n let value = originalValue;\n\n if (\n !Object.prototype.hasOwnProperty.call(style, originalProp) ||\n originalValue == null\n ) {\n continue;\n }\n\n if (prop === 'elevation') continue;\n // Convert shadow styles\n if (\n prop === 'shadowColor' ||\n prop === 'shadowOffset' ||\n prop === 'shadowOpacity' ||\n prop === 'shadowRadius'\n ) {\n const boxShadowValue = createBoxShadowValue(style);\n\n if (boxShadowValue != null && nextStyle.boxShadow == null) {\n const { boxShadow } = style;\n prop = 'boxShadow';\n value = boxShadow ? `${boxShadow}, ${boxShadowValue}` : boxShadowValue;\n } else {\n continue;\n }\n }\n\n // Convert text shadow styles\n if (\n prop === 'textShadowColor' ||\n prop === 'textShadowOffset' ||\n prop === 'textShadowRadius'\n ) {\n const textShadowValue = createTextShadowValue(style);\n if (textShadowValue != null && nextStyle.textShadow == null) {\n const { textShadow } = style;\n prop = 'textShadow';\n value = textShadow\n ? `${textShadow}, ${textShadowValue}`\n : textShadowValue;\n } else {\n continue;\n }\n }\n\n nextStyle[prop] = value;\n }\n\n // $FlowIgnore\n return nextStyle;\n};\n\nexport default preprocess;\n","const o=new WeakMap;let l=0;export default function i(t){const c=typeof t,s=t&&t.constructor,f=s==Date;let e,n;if(Object(t)===t&&!f&&s!=RegExp){if(e=o.get(t),e)return e;if(e=++l+\"~\",o.set(t,e),s==Array){for(e=\"@\",n=0;n {\n const responsiveQueryContext = React.useContext(ResponsiveQueryContext);\n const disableCSSMediaQueries =\n queries?.disableCSSMediaQueries ??\n responsiveQueryContext.disableCSSMediaQueries;\n\n // Only attaches listener if disableCSSMediaQueries is true\n const windowWidth = useDimensionsWithEnable({\n enable: disableCSSMediaQueries,\n }).width;\n\n const values = useStableMemo(() => {\n // Use the non-media query responsive styling\n if (disableCSSMediaQueries) {\n const getResponsiveStyles = getResponsiveStylesImpl(windowWidth);\n if (queries) {\n const { styles } = getResponsiveStyles(queries);\n return { styles, getResponsiveStyles };\n } else {\n return { getResponsiveStyles };\n }\n } else {\n if (queries) {\n const { styles, dataSet } = getResponsiveStyles(queries);\n return { dataSet, styles, getResponsiveStyles };\n } else {\n return { getResponsiveStyles };\n }\n }\n }, [queries, windowWidth, disableCSSMediaQueries]);\n\n return values;\n};\n\nconst getDataAttribute = (queryRule: Query) => {\n if (\n typeof queryRule.minWidth === 'number' &&\n typeof queryRule.maxWidth === 'number'\n ) {\n return `min-width-${queryRule.minWidth}-max-width-${queryRule.maxWidth}`;\n } else if (typeof queryRule.minWidth === 'number') {\n return `min-width-${queryRule.minWidth}`;\n } else if (typeof queryRule.maxWidth === 'number') {\n return `max-width-${queryRule.maxWidth}`;\n }\n\n return undefined;\n};\n\nconst getMediaQueryRule = (query: Query, newRule: string) => {\n if (\n typeof query.minWidth === 'number' &&\n typeof query.maxWidth === 'number'\n ) {\n return `@media only screen and (min-width: ${query.minWidth}px) and (max-width: ${query.maxWidth}px) { ${newRule} }`;\n } else if (typeof query.minWidth === 'number') {\n return `@media only screen and (min-width: ${query.minWidth}px) { ${newRule} }`;\n } else if (typeof query.maxWidth === 'number') {\n return `@media only screen and (max-width: ${query.maxWidth}px) { ${newRule} }`;\n }\n return undefined;\n};\n\nconst getResponsiveStyles = (\n queries: GetResponsiveStylesParams\n): GetResponsiveStylesReturnType => {\n const queryString = stableHash(queries.query);\n const queriesHash = hash(queryString);\n\n const styles = queries.initial\n ? [\n StyleSheet.create({ initial: StyleSheet.flatten(queries.initial) })\n .initial,\n ]\n : undefined;\n\n let dataSet: DataSet = {};\n let styleSheet: any;\n\n /**\n * This function is copied from intergalacticspacehighway/rnw-responsive-ssr\n */\n const insert = (rule: string) => {\n if (typeof window !== 'undefined') {\n if (!styleSheet) {\n const styleEl = document.createElement('style');\n styleEl.type = 'text/css';\n styleEl.appendChild(document.createTextNode(''));\n document.head.appendChild(styleEl);\n styleSheet = styleEl.sheet;\n }\n\n styleSheet.insertRule(rule, styleSheet.cssRules.length);\n }\n };\n\n if (queries.query) {\n queries.query.forEach((queryRule) => {\n const queryHash = queriesHash + hash(stableHash(queryRule));\n const dataAttribute = getDataAttribute(queryRule);\n\n if (dataAttribute) {\n const newIdentifier = `[data-${dataAttribute}$=\"${queryHash}\"]`;\n dataSet[dataAttribute] = queryHash;\n\n let mediaRules = '';\n\n const flattenQueryStyle = StyleSheet.flatten(queryRule.style);\n const newStyle = preprocess(flattenQueryStyle);\n const [compiledStyle, compiledOrderedRules] = atomic(newStyle);\n //@ts-ignore\n delete compiledStyle.$$css; //removing unnecessary $$css property\n Object.keys(compiledStyle).forEach((key) => {\n const oldIdentifier = compiledStyle[key];\n compiledOrderedRules.forEach(([rules, _order]: any) => {\n // Rule returned by atomic has css selectors, so we'll replace it with data-attr selector\n\n let newRule = '';\n if (rules[0].includes(oldIdentifier)) {\n newRule = rules[0].replace('.' + oldIdentifier, newIdentifier);\n }\n mediaRules += newRule;\n });\n });\n if (mediaRules) {\n const mediaQueryRule = getMediaQueryRule(queryRule, mediaRules);\n insert(`/*${queryHash}{}*/${mediaQueryRule}`);\n textContentMap[`/*${queryHash}{}*/${mediaQueryRule}`] = true;\n }\n }\n });\n }\n\n return { styles, dataSet };\n};\n\n/**\n * This function is copied from intergalacticspacehighway/rnw-responsive-ssr\n */\nexport const getStyleElement = () => {\n return (\n \n );\n};\n","import { useMemo } from 'react';\n//@ts-ignore\nimport hash from 'stable-hash';\n\nexport function useStableMemo(factory: () => T, deps: any[]) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return useMemo(factory, [hash(deps)]);\n}\n","import type {\n GetResponsiveStylesParams,\n GetResponsiveStylesReturnType,\n} from './types';\nimport { Dimensions, ScaledSize, StyleSheet } from 'react-native';\nimport React from 'react';\n\nexport const getResponsiveStylesImpl = (width: number) => (\n queries: GetResponsiveStylesParams\n): GetResponsiveStylesReturnType => {\n if (typeof width === 'number') {\n let styles = queries.initial\n ? [\n StyleSheet.create({ initial: StyleSheet.flatten(queries.initial) })\n .initial,\n ]\n : [];\n\n if (queries.query) {\n queries.query.forEach((queryRule) => {\n if (queryRule.style) {\n const flattenQueryStyle = StyleSheet.flatten(queryRule.style);\n\n if (\n typeof queryRule.maxWidth === 'number' &&\n typeof queryRule.minWidth === 'number'\n ) {\n if (width >= queryRule.minWidth && width <= queryRule.maxWidth) {\n styles.push(\n StyleSheet.create({ rangeStyle: flattenQueryStyle }).rangeStyle\n );\n }\n } else if (typeof queryRule.minWidth === 'number') {\n if (width >= queryRule.minWidth) {\n styles.push(\n StyleSheet.create({ minWidthStyle: flattenQueryStyle })\n .minWidthStyle\n );\n }\n } else if (typeof queryRule.maxWidth === 'number') {\n if (width <= queryRule.maxWidth) {\n styles.push(\n StyleSheet.create({ maxWidthStyle: flattenQueryStyle })\n .maxWidthStyle\n );\n }\n }\n }\n });\n return { styles };\n }\n }\n\n return {};\n};\n\n// The below implementation is taken from React Native's source and added a flag to conditionally attach/remove listeners\nexport const useDimensionsWithEnable = ({ enable }: { enable?: boolean }) => {\n const [dimensions, setDimensions] = React.useState(() =>\n Dimensions.get('window')\n );\n\n React.useEffect(() => {\n if (enable) {\n function handleChange({ window }: { window: ScaledSize }) {\n if (\n dimensions.width !== window.width ||\n dimensions.height !== window.height ||\n dimensions.scale !== window.scale ||\n dimensions.fontScale !== window.fontScale\n ) {\n setDimensions(window);\n }\n }\n Dimensions.addEventListener('change', handleChange);\n // We might have missed an update between calling `get` in render and\n // `addEventListener` in this handler, so we set it here. If there was\n // no change, React will filter out this update as a no-op.\n handleChange({ window: Dimensions.get('window') });\n\n return () => {\n Dimensions.removeEventListener('change', handleChange);\n };\n }\n return () => {};\n }, [dimensions, enable]);\n return dimensions;\n};\n","import { getStyleAndFilteredProps } from '../theme/styled-system';\nimport { useTheme } from './useTheme';\nimport React from 'react';\nimport { useNativeBaseConfig } from '../core/NativeBaseContext';\nimport { useResponsiveQuery } from '../utils/useResponsiveQuery';\nimport { getStyledSystemPropsAndRestProps } from '../utils/getStyledSystemPropsAndRestProps';\n//@ts-ignore\nimport stableHash from 'stable-hash';\n\nexport const useStyledSystemPropsResolver = ({\n style: propStyle,\n debug,\n ...props\n}: any) => {\n const theme = useTheme();\n const { currentBreakpoint, config } = useNativeBaseConfig(\n 'makeStyledComponent'\n );\n const strictMode = config.strictMode;\n\n const { getResponsiveStyles } = useResponsiveQuery();\n\n const { styledSystemProps, restProps } = getStyledSystemPropsAndRestProps(\n props\n );\n\n const { style, dataSet, styleFromProps } = React.useMemo(() => {\n const { styleSheet, dataSet, styleFromProps } = getStyleAndFilteredProps({\n styledSystemProps,\n theme,\n debug,\n currentBreakpoint,\n strictMode,\n getResponsiveStyles,\n });\n if (propStyle) {\n return { style: [styleSheet.box, propStyle], dataSet, styleFromProps };\n } else {\n return { style: styleSheet.box, dataSet, styleFromProps };\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n // eslint-disable-next-line react-hooks/exhaustive-deps\n stableHash(styledSystemProps),\n theme,\n debug,\n currentBreakpoint,\n strictMode,\n propStyle,\n getResponsiveStyles,\n props,\n ]);\n if (process.env.NODE_ENV === 'development' && debug) {\n /* eslint-disable-next-line */\n console.log('style,resprops', currentBreakpoint);\n }\n\n restProps.dataSet = { ...restProps.dataSet, ...dataSet };\n\n return [style, restProps, styleFromProps];\n};\n","import { propConfig } from '../theme/styled-system';\n/**\n * Common Logic Sharing between useSx and useStyledSystemPropResolver\n * @param props\n * @returns { styledSystemProps, restProps }\n */\nexport const getStyledSystemPropsAndRestProps = (props: any) => {\n const styledSystemProps: any = {};\n const restProps: any = {};\n\n for (let key in props) {\n if (key in propConfig) {\n styledSystemProps[key] = props[key];\n } else {\n restProps[key] = props[key];\n }\n }\n\n return { styledSystemProps, restProps };\n};\n","import React from 'react';\nimport { useStyledSystemPropsResolver } from '../hooks/';\n\nexport const makeStyledComponent = (Comp: any) => {\n return React.forwardRef(({ debug, ...props }: any, ref: any) => {\n const [style, restProps] = useStyledSystemPropsResolver(props);\n if (process.env.NODE_ENV === 'development' && debug) {\n /* eslint-disable-next-line */\n console.log(\n `%cstyleSystem`,\n 'background: #4b5563; color: #d97706; font-weight: 700; padding: 2px 8px;'\n );\n /* eslint-disable-next-line */\n console.log('%c props: ', 'color: #4ade80; font-weight: 700;', props);\n /* eslint-disable-next-line */\n console.log('%c style: ', 'color: #22d3ee; font-weight: 700;', style);\n /* eslint-disable-next-line */\n console.log(\n '%c restProps: ',\n 'color: #22d3ee; font-weight: 700;',\n restProps\n );\n }\n return (\n \n {props.children}\n \n );\n });\n};\n","import React, { memo, forwardRef, useRef } from 'react';\nimport { usePropsResolution } from '../../../hooks/useThemeProps';\nimport type { ITextProps } from './types';\nimport { useHover } from '@react-native-aria/interactions';\nimport { mergeRefs } from '../../../utils/mergeRefs';\nimport { makeStyledComponent } from '../../../utils/styled';\nimport { useResolvedFontFamily } from '../../../hooks/useResolvedFontFamily';\nimport { Platform, Text as NativeText } from 'react-native';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst StyledText = makeStyledComponent(NativeText);\n// To have a RN compatible behaviour, we'll inherit parent text styles as base style\nconst TextAncestorContext = React.createContext(false);\n\nconst Text = ({ children, ...props }: ITextProps, ref: any) => {\n const hasTextAncestor = React.useContext(TextAncestorContext);\n\n const {\n isTruncated,\n noOfLines,\n bold,\n italic,\n sub,\n highlight,\n underline,\n strikeThrough,\n fontFamily: propFontFamily,\n fontWeight: propFontWeight,\n fontStyle: propFontStyle,\n _hover,\n fontSize,\n numberOfLines,\n ...resolvedProps\n } = usePropsResolution(\n 'Text',\n props,\n {},\n {\n resolveResponsively: ['noOfLines', 'numberOfLines'],\n // We override the component base theme if text has an ancestor.\n componentTheme: hasTextAncestor ? {} : undefined,\n }\n );\n\n const _ref = useRef(null);\n // TODO: might have to add this condition\n const { isHovered } = useHover({}, _hover ? _ref : null);\n // const { isHovered } = useHover({}, _ref);\n let fontFamily = propFontFamily;\n const fontStyle = italic ? 'italic' : propFontStyle;\n const fontWeight = bold ? 'bold' : propFontWeight;\n let resolvedFontFamily;\n\n resolvedFontFamily = useResolvedFontFamily({\n fontFamily,\n fontWeight: fontWeight ?? (hasTextAncestor ? undefined : 400),\n fontStyle: fontStyle ?? (hasTextAncestor ? undefined : 'normal'),\n });\n\n if (resolvedFontFamily) {\n fontFamily = resolvedFontFamily;\n }\n // Need to apply fontWeight & fontStyle on web\n if (Platform.OS === 'web') {\n if (resolvedFontFamily) {\n fontFamily = resolvedFontFamily.fontFamily;\n }\n\n resolvedFontFamily = {\n fontFamily,\n fontWeight: fontWeight ?? (hasTextAncestor ? undefined : 400),\n fontStyle: fontStyle ?? (hasTextAncestor ? undefined : 'normal'),\n };\n }\n\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n\n const propsToSpread = {\n ...resolvedProps,\n numberOfLines:\n numberOfLines || noOfLines\n ? numberOfLines || noOfLines\n : isTruncated\n ? 1\n : undefined,\n ...resolvedFontFamily,\n bg: highlight ? 'warning.300' : resolvedProps.bg,\n textDecorationLine:\n underline && strikeThrough\n ? 'underline line-through'\n : underline\n ? 'underline'\n : strikeThrough\n ? 'line-through'\n : resolvedProps.textDecorationLine,\n fontSize: sub ? 10 : fontSize,\n ref: mergeRefs([ref, _ref]),\n ...(isHovered && _hover),\n };\n\n return hasTextAncestor ? (\n {children}\n ) : (\n \n {children}\n \n );\n};\n\nexport default memo(forwardRef(Text));\nexport type { ITextProps };\n","import { useHover as useHoverWeb, HoverProps } from '@react-aria/interactions';\nimport { useEffect } from 'react';\nimport { attachEventHandlersOnRef } from '@react-native-aria/utils';\n\nexport const useHover = (props: HoverProps, ref: any) => {\n let params = useHoverWeb(props);\n useEffect(() => {\n attachEventHandlersOnRef(params.hoverProps, ref);\n }, []);\n\n return params;\n};\n","import { useTheme } from './useTheme';\nimport type { ITheme } from '../theme';\n/**\n *\n * @param props\n * @returns resolved fontFamily\n * @description Combination of fontWeight, fontStyle and font family is fully supported on web but on Android we need to pass the exact font family.\n * for e.g. If we load Roboto-Light-Italic.ttf using css, we can use fontFamily: Roboto, fontWeight: 300, fontStyle: italic on web, but same may not work on all the platforms. Other platform needs to set fontFamily: Roboto-Light-Italic in order to work.\n * So this function's purpose is to intake styles like fontFamily: Roboto, fontWeight: 300, fontStyle: Italic and return fontFamily: Roboto-Light-Italic depending upon the fontConfig token in typography theme.\n * This function depends upon fontConfig token in typography for mapping.\n */\nexport function useResolvedFontFamily(props: {\n fontFamily?: keyof ITheme['fonts'];\n fontStyle?: string;\n fontWeight?: keyof ITheme['fontWeights'];\n}) {\n const { fontFamily, fontStyle, fontWeight } = props;\n let newFontFamily = fontFamily;\n let newFontStyle = fontStyle;\n let newFontWeight = fontWeight;\n\n const { fontConfig, fontWeights, fonts } = useTheme();\n if (fontWeight && fontStyle && fontFamily && fontFamily in fonts) {\n // TODO: Fix typing remove any.\n const fontToken: any = fonts[fontFamily];\n if (fontConfig && fontConfig[fontToken]) {\n // If a custom font family is resolved, set fontWeight and fontStyle to undefined.\n // https://github.com/GeekyAnts/NativeBase/issues/3811\n // On Android, If a fontFamily and fontWeight both are passed, it behaves in a weird way and applies system fonts with passed fontWeight. This happens only for some fontWeights e.g. '700' or 'bold'. So, if we find a custom fontFamily, we remove fontWeight and fontStyle\n //@ts-ignore\n newFontWeight = undefined;\n //@ts-ignore\n newFontStyle = undefined;\n\n let fontWeightNumber =\n fontWeight in fontWeights ? fontWeights[fontWeight] : fontWeight;\n let fontVariant = fontConfig[fontToken][fontWeightNumber];\n\n if (typeof fontVariant === 'object') {\n if (fontVariant[fontStyle]) newFontFamily = fontVariant[fontStyle];\n } else {\n newFontFamily = fontVariant;\n }\n } else {\n newFontFamily = fonts[fontFamily];\n }\n }\n\n return {\n fontFamily: newFontFamily,\n fontWeight: newFontWeight,\n fontStyle: newFontStyle,\n };\n}\n","export function mergeRefs(\n refs: Array | React.LegacyRef>\n): React.RefCallback {\n return (value) => {\n refs.forEach((ref) => {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref != null) {\n (ref as React.MutableRefObject).current = value;\n }\n });\n };\n}\n\nexport function composeEventHandlers(\n originalEventHandler?: null | ((event: E) => void),\n ourEventHandler?: (event: E) => void\n) {\n return function handleEvent(event: E) {\n originalEventHandler?.(event);\n ourEventHandler?.(event);\n };\n}\n","import React from 'react';\nimport Text from '../components/primitives/Text';\n\nexport const wrapStringChild = (children: any, textProps: any) => {\n return React.Children.map(children, (child) => {\n return typeof child === 'string' ||\n typeof child === 'number' ||\n (child?.type === React.Fragment &&\n (typeof child.props?.children === 'string' ||\n typeof child.props?.children === 'number')) ? (\n {child}\n ) : (\n child\n );\n });\n};\n","import { themeTools } from '../../theme';\nimport { baseFontSize } from '../../theme/tools/utils';\nimport type { SafeAreaProps } from './../../components/types/ExtraProps';\nimport isNil from 'lodash.isnil';\n\nexport function calculatePaddingProps(\n safeAreaProps: SafeAreaProps,\n paddingProps: any,\n insets: any,\n sizes: any\n) {\n return themeTools.omitUndefined({\n pt: calculatePaddingTop(safeAreaProps, paddingProps, insets, sizes),\n pb: calculatePaddingBottom(safeAreaProps, paddingProps, insets, sizes),\n pl: calculatePaddingLeft(safeAreaProps, paddingProps, insets, sizes),\n pr: calculatePaddingRight(safeAreaProps, paddingProps, insets, sizes),\n });\n}\nfunction getValueInPixels(\n paddingProps: any,\n paddingKeys: any,\n sizes: any,\n inset: any,\n manualInset: number | string\n) {\n let appliedInset: any = 0;\n let originalValue = paddingKeys.length\n ? sizes[paddingProps[paddingKeys[paddingKeys.length - 1]]]\n : 0;\n\n if (!isNil(manualInset) && typeof manualInset !== 'boolean') {\n // DOC: Handles case of manually passed inset\n appliedInset =\n typeof manualInset === 'string' && manualInset.includes('px')\n ? parseInt(manualInset, 10)\n : sizes[manualInset];\n } else {\n // DOC: Handles case of auto inset\n appliedInset = inset;\n }\n\n if (typeof originalValue === 'string') {\n if (originalValue.endsWith('px')) {\n return parseInt(originalValue, 10) + parseInt(appliedInset, 10) + 'px';\n } else if (originalValue.endsWith('rem')) {\n return (\n parseFloat(originalValue) * baseFontSize +\n parseInt(appliedInset, 10) +\n 'px'\n );\n }\n }\n\n return originalValue\n ? parseInt(originalValue, 10) + parseInt(appliedInset, 10) + 'px'\n : parseInt(appliedInset, 10) + 'px';\n}\n\nexport function calculatePaddingTop(\n safeAreaProps: SafeAreaProps,\n paddingProps: any,\n insets: any,\n sizes: any\n) {\n if (\n isNil(safeAreaProps.safeArea) &&\n isNil(safeAreaProps.safeAreaTop) &&\n isNil(safeAreaProps.safeAreaY)\n ) {\n return;\n }\n\n // DOC: Adding it for manual inset passed by the user\n let [topSafeAreaProps] = themeTools.orderedExtractInObject(safeAreaProps, [\n 'safeArea',\n 'safeAreaY',\n 'safeAreaTop',\n ]);\n let topSafeAreaArray = Object.keys(topSafeAreaProps);\n const manualInset = topSafeAreaArray.length\n ? topSafeAreaProps[topSafeAreaArray[topSafeAreaArray.length - 1]]\n : undefined;\n if (!insets.top && (typeof manualInset === 'boolean' || !manualInset)) {\n return;\n }\n const propKeys = getRelatedPaddingProps(paddingProps, [\n 'p',\n 'padding',\n 'pt',\n 'paddingTop',\n 'py',\n 'paddingY',\n ]);\n return getValueInPixels(\n paddingProps,\n propKeys,\n sizes,\n insets.top,\n manualInset\n );\n}\nexport function calculatePaddingBottom(\n safeAreaProps: SafeAreaProps,\n paddingProps: any,\n insets: any,\n sizes: any\n) {\n if (\n isNil(safeAreaProps.safeArea) &&\n isNil(safeAreaProps.safeAreaBottom) &&\n isNil(safeAreaProps.safeAreaY)\n ) {\n return;\n }\n let [bottomSafeAreaProps] = themeTools.orderedExtractInObject(safeAreaProps, [\n 'safeArea',\n 'safeAreaY',\n 'safeAreaBottom',\n ]);\n let bottomSafeAreaArray = Object.keys(bottomSafeAreaProps);\n const manualInset = bottomSafeAreaArray.length\n ? bottomSafeAreaProps[bottomSafeAreaArray[bottomSafeAreaArray.length - 1]]\n : undefined;\n if (!insets.bottom && (!manualInset || typeof manualInset === 'boolean')) {\n return;\n }\n\n const propKeys = getRelatedPaddingProps(paddingProps, [\n 'p',\n 'padding',\n 'pb',\n 'paddingBottom',\n 'py',\n 'paddingY',\n ]);\n\n return getValueInPixels(\n paddingProps,\n propKeys,\n sizes,\n insets.bottom,\n manualInset\n );\n}\nexport function calculatePaddingLeft(\n safeAreaProps: SafeAreaProps,\n paddingProps: any,\n insets: any,\n sizes: any\n) {\n if (\n isNil(safeAreaProps.safeArea) &&\n isNil(safeAreaProps.safeAreaLeft) &&\n isNil(safeAreaProps.safeAreaX)\n ) {\n return;\n }\n let [leftSafeAreaProps] = themeTools.orderedExtractInObject(safeAreaProps, [\n 'safeArea',\n 'safeAreaLeft',\n 'safeAreaX',\n ]);\n let leftSafeAreaArray = Object.keys(leftSafeAreaProps);\n // DOC: Since last value takes precedence so, directly takes last value\n const manualInset = leftSafeAreaArray.length\n ? leftSafeAreaProps[leftSafeAreaArray[leftSafeAreaArray.length - 1]]\n : undefined;\n if (!insets.left && (!manualInset || typeof manualInset === 'boolean')) {\n return;\n }\n const propKeys = getRelatedPaddingProps(paddingProps, [\n 'p',\n 'padding',\n 'pl',\n 'paddingLeft',\n 'px',\n 'paddingX',\n ]);\n\n return getValueInPixels(\n paddingProps,\n propKeys,\n sizes,\n insets.left,\n manualInset\n );\n}\nexport function calculatePaddingRight(\n safeAreaProps: SafeAreaProps,\n paddingProps: any,\n insets: any,\n sizes: any\n) {\n if (\n isNil(safeAreaProps.safeArea) &&\n isNil(safeAreaProps.safeAreaRight) &&\n isNil(safeAreaProps.safeAreaX)\n ) {\n return;\n }\n // DOC: Adding it for manual inset passed by the user\n let [rightSafeAreaProps] = themeTools.orderedExtractInObject(safeAreaProps, [\n 'safeArea',\n 'safeAreaX',\n 'safeAreaRight',\n ]);\n let rightSafeAreaArray = Object.keys(rightSafeAreaProps);\n const manualInset = rightSafeAreaArray.length\n ? rightSafeAreaProps[rightSafeAreaArray[rightSafeAreaArray.length - 1]]\n : undefined;\n\n if (!insets.right && (!manualInset || typeof manualInset === 'boolean')) {\n return;\n }\n const propKeys = getRelatedPaddingProps(paddingProps, [\n 'p',\n 'padding',\n 'pr',\n 'paddingRight',\n 'px',\n 'paddingX',\n ]);\n\n return getValueInPixels(\n paddingProps,\n propKeys,\n sizes,\n insets.right,\n manualInset\n );\n}\n\nfunction getRelatedPaddingProps(props: any, relatedKeys: Array) {\n return Object.keys(props).filter((key) => relatedKeys.includes(key));\n}\nexport function getSortedProps(props: any) {\n let [\n safeAreaProps,\n sansSafeAreaProps,\n ] = themeTools.orderedExtractInObject(props, [\n 'safeArea',\n 'safeAreaX',\n 'safeAreaY',\n 'safeAreaTop',\n 'safeAreaBottom',\n 'safeAreaLeft',\n 'safeAreaRight',\n ]);\n let [\n paddingProps,\n sansPaddingProps,\n ] = themeTools.orderedExtractInObject(sansSafeAreaProps, [\n 'p',\n 'padding',\n 'pt',\n 'paddingTop',\n 'pr',\n 'paddingRight',\n 'pb',\n 'paddingBottom',\n 'pl',\n 'paddingLeft',\n 'px',\n 'paddingX',\n 'py',\n 'paddingY',\n ]);\n return { safeAreaProps, paddingProps, sansPaddingProps };\n}\n","import { useSafeAreaInsets } from 'react-native-safe-area-context';\nimport { getSortedProps, calculatePaddingProps } from './utils';\nimport { useTheme } from './../useTheme';\n\nexport function useSafeArea(props: any) {\n const insets = useSafeAreaInsets();\n const sizes = useTheme().sizes;\n const { safeAreaProps, paddingProps, sansPaddingProps } = getSortedProps(\n props\n );\n if (!Object.keys(safeAreaProps).length) {\n return props;\n }\n let calcualtedPaddingProps = calculatePaddingProps(\n safeAreaProps,\n paddingProps,\n insets,\n sizes\n );\n return { ...sansPaddingProps, ...paddingProps, ...calcualtedPaddingProps };\n}\n","import React, { memo, forwardRef } from 'react';\nimport { View } from 'react-native';\nimport { usePropsResolution } from '../../../hooks/useThemeProps';\nimport { getColor } from '../../../theme';\nimport { useTheme } from '../../../hooks';\nimport { makeStyledComponent } from '../../../utils/styled';\nimport { wrapStringChild } from '../../../utils/wrapStringChild';\nimport type { IBoxProps, InterfaceBoxProps } from './types';\nimport { useSafeArea } from '../../../hooks/useSafeArea';\nimport { useNativeBaseConfig } from '../../../core/NativeBaseContext';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst StyledBox = makeStyledComponent(View);\n\nlet MemoizedGradient: any;\n\nconst Box = ({ children, ...props }: IBoxProps, ref: any) => {\n // const { _text, ...resolvedProps } = useThemeProps('Box', props);\n const theme = useTheme();\n const { _text, ...resolvedProps } = usePropsResolution('Box', props);\n let Gradient = useNativeBaseConfig('NativeBaseConfigProvider').config\n .dependencies?.['linear-gradient'];\n\n const safeAreaProps = useSafeArea(resolvedProps);\n\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n\n if (\n resolvedProps.bg?.linearGradient ||\n resolvedProps.background?.linearGradient ||\n resolvedProps.bgColor?.linearGradient ||\n resolvedProps.backgroundColor?.linearGradient\n ) {\n const lgrad =\n resolvedProps.bg?.linearGradient ||\n resolvedProps.background?.linearGradient ||\n resolvedProps.bgColor?.linearGradient ||\n resolvedProps.backgroundColor?.linearGradient;\n\n if (Gradient) {\n if (!MemoizedGradient) {\n MemoizedGradient = makeStyledComponent(Gradient);\n }\n\n Gradient = MemoizedGradient;\n\n lgrad.colors = lgrad.colors?.map((color: string) => {\n return getColor(color, theme.colors, theme);\n });\n let startObj = { x: 0, y: 0 };\n let endObj = { x: 0, y: 1 };\n if (lgrad.start && lgrad.start.length === 2) {\n startObj = {\n x: lgrad.start[0],\n y: lgrad.start[1],\n };\n }\n if (lgrad.end && lgrad.end.length === 2) {\n endObj = {\n x: lgrad.end[0],\n y: lgrad.end[1],\n };\n }\n const backgroundColorProps = [\n 'bg',\n 'bgColor',\n 'background',\n 'backgroundColor',\n ];\n backgroundColorProps.forEach((backgroundColorProp) => {\n if (backgroundColorProp in safeAreaProps)\n delete safeAreaProps[backgroundColorProp];\n });\n\n return (\n \n {/* {React.Children.map(children, (child) =>\n typeof child === 'string' || typeof child === 'number' ? (\n {child}\n ) : (\n child\n )\n )} */}\n {wrapStringChild(children, _text)}\n \n );\n }\n }\n return (\n \n {/* {React.Children.map(children, (child) => {\n return typeof child === 'string' ||\n typeof child === 'number' ||\n (child?.type === React.Fragment &&\n (typeof child.props?.children === 'string' ||\n typeof child.props?.children === 'number')) ? (\n {child}\n ) : (\n child\n );\n })} */}\n {wrapStringChild(children, _text)}\n \n );\n};\n\nexport type { IBoxProps, InterfaceBoxProps };\nexport default memo(forwardRef(Box));\n","import React from 'react';\nimport { default as Box } from '../components/primitives/Box';\nimport type { SpaceType as ThemeSpaceType } from '../components/types';\nimport { ResponsiveQueryContext } from './useResponsiveQuery/ResponsiveQueryProvider';\n\ntype SpaceType =\n | 'gutter'\n | '2xs'\n | 'xs'\n | 'sm'\n | 'md'\n | 'lg'\n | 'xl'\n | '2xl'\n | ThemeSpaceType;\n\n// Thanks @gregberge for code and @nandorojo for suggestion.\n// Original source: https://github.com/gregberge/react-flatten-children\ntype ReactChildArray = ReturnType;\nfunction flattenChildren(\n children: JSX.Element[] | JSX.Element,\n keys: (string | number)[] = []\n): ReactChildArray {\n const childrenArray = React.Children.toArray(children);\n return childrenArray.reduce(\n (flatChildren: ReactChildArray, child: any, index: number) => {\n if ((child as React.ReactElement).type === React.Fragment) {\n return flatChildren.concat(\n flattenChildren(\n (child as React.ReactElement).props.children,\n keys.concat(child.key || index)\n )\n );\n }\n if (React.isValidElement(child)) {\n flatChildren.push(\n React.cloneElement(child, {\n key: keys.concat(String(child.key || index)).join('.'),\n })\n );\n } else {\n flatChildren.push(child);\n }\n return flatChildren;\n },\n []\n );\n}\n\nconst getSpacedChildren = (\n children: JSX.Element[] | JSX.Element,\n space: undefined | SpaceType,\n axis: 'X' | 'Y',\n reverse: string,\n divider: JSX.Element | undefined\n): any => {\n let childrenArray = React.Children.toArray(flattenChildren(children));\n childrenArray =\n reverse === 'reverse' ? [...childrenArray].reverse() : childrenArray;\n\n const orientation = axis === 'X' ? 'vertical' : 'horizontal';\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const responsiveQueryContext = React.useContext(ResponsiveQueryContext);\n const disableCSSMediaQueries = responsiveQueryContext.disableCSSMediaQueries;\n\n // If there's a divider, we wrap it with a Box and apply vertical and horizontal margins else we add a spacer Box with height or width\n if (divider) {\n const spacingProp: object = {\n ...(axis === 'X' ? { mx: space } : { my: space }),\n };\n\n divider = React.cloneElement(divider, {\n orientation,\n ...spacingProp,\n });\n\n childrenArray = childrenArray.map((child: any, index: number) => {\n return (\n \n {child}\n {index < childrenArray.length - 1 && divider}\n \n );\n });\n } else {\n const spacingProp: object = {\n ...(axis === 'X' ? { width: space } : { height: space }),\n };\n childrenArray = childrenArray.map((child: any, index: number) => {\n return (\n \n {child}\n {disableCSSMediaQueries ? (\n index < childrenArray.length - 1 && \n ) : (\n <>\n )}\n \n );\n });\n }\n\n return childrenArray;\n};\n\nexport default getSpacedChildren;\n","import React, { memo, forwardRef } from 'react';\nimport { default as Box, InterfaceBoxProps } from '../Box';\nimport { getSpacedChildren } from '../../../utils';\nimport { usePropsResolution } from '../../../hooks/useThemeProps';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\nimport type { CustomProps, ResponsiveValue, SpaceType } from '../../types';\nimport { ResponsiveQueryContext } from '../../../utils/useResponsiveQuery/ResponsiveQueryProvider';\n\nexport interface InterfaceStackProps extends InterfaceBoxProps {\n /**\n * The divider element to use between elements.\n */\n divider?: JSX.Element;\n /**\n * The space between each stack item. Accepts Responsive values\n */\n space?: ResponsiveValue<\n 'gutter' | '2xs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | SpaceType\n >;\n /**\n * Determines whether to reverse the direction of Stack Items.\n */\n reversed?: boolean;\n /**\n * The direction of the Stack Items.\n * @default column\n */\n direction?: ResponsiveValue<\n 'column' | 'row' | 'column-reverse' | 'row-reverse'\n >;\n /**\n * If true, the Stack will be in hovered state.\n */\n isHovered?: boolean;\n /**\n * If true, the Stack will be focused.\n */\n isFocused?: boolean;\n /**\n * If true, the Stack will be disabled.\n */\n isDisabled?: boolean;\n /**\n * If true, the Stack will be invalid.\n */\n isInvalid?: boolean;\n /**\n * If true, prevents the value of the children from being edited. Used with FormControls.\n */\n isReadOnly?: boolean;\n}\n\nexport type IStackProps = InterfaceStackProps & CustomProps<'Stack'>;\n\nconst Stack = ({ space, ...props }: IStackProps, ref?: any) => {\n const dir = props.direction;\n const {\n children,\n direction,\n reversed,\n divider,\n size,\n ...resolvedProps\n }: any = usePropsResolution(\n 'Stack',\n { ...props, size: space },\n {\n isDisabled: props.isDisabled,\n isHovered: props.isHovered,\n isFocused: props.isFocused,\n isInvalid: props.isInvalid,\n isReadOnly: props.isReadOnly,\n },\n { resolveResponsively: ['space', 'direction'] }\n );\n\n const responsiveQueryContext = React.useContext(ResponsiveQueryContext);\n const disableCSSMediaQueries = responsiveQueryContext.disableCSSMediaQueries;\n\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n\n return (\n \n {getSpacedChildren(\n children,\n size,\n direction === 'row' ? 'X' : 'Y',\n reversed ? 'reverse' : 'normal',\n divider\n )}\n \n );\n};\n\nexport default memo(forwardRef(Stack));\n","import React, { memo, forwardRef } from 'react';\nimport StackMain, { InterfaceStackProps } from './Stack';\nimport { usePropsResolution } from '../../../hooks/useThemeProps';\nimport type { CustomProps, ResponsiveValue } from '../../types';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\nexport interface InterfaceVStackProps extends InterfaceStackProps {\n /**\n * The direction of the Stack Items.\n * @default column\n */\n direction?: ResponsiveValue<\n 'column' | 'row' | 'column-reverse' | 'row-reverse'\n >;\n}\n\nexport type IVStackProps = InterfaceVStackProps & CustomProps<'VStack'>;\n\nconst VStack = (props: IVStackProps, ref?: any) => {\n const resolvedProps = usePropsResolution('VStack', props);\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return ;\n};\n\nexport default memo(forwardRef(VStack));\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\n\nvar cssFunction = function () {\n if (canUseDOM && window.CSS && window.CSS.supports && window.CSS.supports('top: constant(safe-area-inset-top)')) {\n return 'constant';\n }\n\n return 'env';\n}();\n\nvar SafeAreaView = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var style = props.style,\n rest = _objectWithoutPropertiesLoose(props, [\"style\"]);\n\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n ref: ref,\n style: StyleSheet.compose(styles.root, style)\n }));\n});\nSafeAreaView.displayName = 'SafeAreaView';\nvar styles = StyleSheet.create({\n root: {\n paddingTop: cssFunction + \"(safe-area-inset-top)\",\n paddingRight: cssFunction + \"(safe-area-inset-right)\",\n paddingBottom: cssFunction + \"(safe-area-inset-bottom)\",\n paddingLeft: cssFunction + \"(safe-area-inset-left)\"\n }\n});\nexport default SafeAreaView;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport dismissKeyboard from '../../modules/dismissKeyboard';\nvar Keyboard = {\n addListener: function addListener() {\n return {\n remove: function remove() {}\n };\n },\n dismiss: function dismiss() {\n dismissKeyboard();\n },\n removeAllListeners: function removeAllListeners() {},\n removeListener: function removeListener() {}\n};\nexport default Keyboard;","import * as React from 'react';\nimport { Keyboard, Platform, KeyboardEvent } from 'react-native';\n\nexport const useKeyboardBottomInset = () => {\n const [bottom, setBottom] = React.useState(0);\n const subscriptions = React.useRef([]);\n\n React.useEffect(() => {\n function onKeyboardChange(e: KeyboardEvent) {\n if (\n e.startCoordinates &&\n e.endCoordinates.screenY <= e.startCoordinates.screenY\n )\n setBottom(e.endCoordinates.height / 2);\n else setBottom(0);\n }\n\n if (Platform.OS === 'ios') {\n subscriptions.current = [\n Keyboard.addListener('keyboardWillChangeFrame', onKeyboardChange),\n ];\n } else {\n subscriptions.current = [\n Keyboard.addListener('keyboardDidHide', onKeyboardChange),\n Keyboard.addListener('keyboardDidShow', onKeyboardChange),\n ];\n }\n return () => {\n subscriptions.current.forEach((subscription) => {\n subscription.remove();\n });\n };\n }, [setBottom, subscriptions]);\n\n return bottom;\n};\n","import { Overlay } from '../../primitives/Overlay';\nimport { PresenceTransition } from '../Transitions';\nimport VStack from '../../primitives/Stack/VStack';\nimport React, {\n createContext,\n MutableRefObject,\n useState,\n useMemo,\n} from 'react';\nimport { AccessibilityInfo, Platform, SafeAreaView } from 'react-native';\nimport Box from '../../primitives/Box';\nimport { usePropsResolution } from '../../../hooks';\nimport type { IToastContext, IToastInfo, IToast, IToastProps } from './types';\nimport { useKeyboardBottomInset } from '../../../utils';\n\nconst INSET = 50;\n\nconst POSITIONS = {\n 'top': {\n top: INSET,\n left: 0,\n right: 0,\n },\n 'top-right': {\n top: INSET,\n right: 0,\n },\n 'top-left': {\n top: INSET,\n left: 0,\n },\n 'bottom': {\n bottom: INSET,\n left: 0,\n right: 0,\n },\n 'bottom-left': {\n bottom: INSET,\n left: 0,\n },\n 'bottom-right': {\n bottom: INSET,\n right: 0,\n },\n};\n\nconst initialAnimationOffset = 24;\n\nconst transitionConfig: any = {\n 'bottom': initialAnimationOffset,\n 'top': -initialAnimationOffset,\n 'top-right': -initialAnimationOffset,\n 'top-left': -initialAnimationOffset,\n 'bottom-left': initialAnimationOffset,\n 'bottom-right': initialAnimationOffset,\n};\n\nconst ToastContext = createContext({\n toastInfo: {},\n setToastInfo: () => {},\n setToast: () => {},\n removeToast: () => {},\n hideAll: () => {},\n isActive: () => false,\n visibleToasts: {},\n setVisibleToasts: () => {},\n hideToast: () => {},\n});\n\nconst CustomToast = ({ _overlay, _stack, _presenceTransition }: any) => {\n const { toastInfo, visibleToasts, removeToast } = React.useContext(\n ToastContext\n );\n\n const bottomInset = useKeyboardBottomInset() * 2;\n const getPositions = () => {\n return Object.keys(toastInfo);\n };\n\n let hasToastOnOverlay = false;\n getPositions().map((position) => {\n if (toastInfo[position]?.length > 0) hasToastOnOverlay = true;\n });\n\n return getPositions().length > 0 ? (\n \n {getPositions().map((position: string) => {\n if (Object.keys(POSITIONS).includes(position))\n return (\n \n {\n // @ts-ignore\n toastInfo[position].map((toast: IToast) => (\n {\n if (status === 'exited') {\n removeToast(toast.id);\n toast.config?.onCloseComplete &&\n toast.config?.onCloseComplete();\n }\n }}\n initial={{\n opacity: 0,\n translateY: transitionConfig[position],\n }}\n >\n \n \n {toast.component}\n \n \n \n ))\n }\n \n );\n else return null;\n })}\n \n ) : null;\n};\n\nexport const ToastProvider = ({ children }: { children: any }) => {\n const [toastInfo, setToastInfo] = useState({});\n const [visibleToasts, setVisibleToasts] = useState<\n {\n [key in string]: boolean;\n }\n >({});\n\n const [themeProps] = useState(usePropsResolution('Toast', {}));\n const toastIndex = React.useRef(1);\n\n const hideAll = React.useCallback(() => {\n setVisibleToasts({});\n }, [setVisibleToasts]);\n\n const hideToast = React.useCallback(\n (id: any) => {\n setVisibleToasts((prevVisibleToasts) => ({\n ...prevVisibleToasts,\n [id]: false,\n }));\n },\n [setVisibleToasts]\n );\n\n const isActive = React.useCallback(\n (id: any) => {\n for (const toastPosition of Object.keys(toastInfo)) {\n const positionArray: Array = toastInfo[toastPosition];\n return positionArray.findIndex((toastData) => toastData.id === id) > -1;\n }\n\n return false;\n },\n [toastInfo]\n );\n\n const removeToast = React.useCallback(\n (id: any) => {\n setToastInfo((prev) => {\n for (const toastPosition of Object.keys(prev)) {\n const positionArray: Array = prev[toastPosition];\n const isToastPresent =\n positionArray.findIndex((toastData) => toastData.id === id) > -1;\n\n if (isToastPresent) {\n const newPositionArray = positionArray.filter(\n (item) => item.id !== id\n );\n const temp: any = {};\n temp[toastPosition] = newPositionArray;\n\n const newToastInfo = { ...prev, ...temp };\n return newToastInfo;\n }\n }\n\n return prev;\n });\n },\n [setToastInfo]\n );\n\n const setToast = React.useCallback(\n (props: IToastProps): number => {\n const {\n placement = 'bottom',\n title,\n render,\n id = toastIndex.current++,\n description,\n duration = 5000,\n _title,\n _description,\n accessibilityAnnouncement,\n // @ts-ignore\n avoidKeyboard = false, //eslint-disable-line\n ...rest\n } = props;\n\n let positionToastArray = toastInfo[placement];\n if (!positionToastArray) positionToastArray = [];\n\n let component = null;\n\n if (render) {\n component = render({ id });\n } else {\n component = (\n // Below VStack is the default component where all the direct props spread.\n \n {title}\n {description && (\n \n {description}\n \n )}\n \n );\n }\n\n toastInfo[placement] = [\n ...positionToastArray,\n { component, id, config: props },\n ];\n\n setToastInfo({ ...toastInfo });\n\n setVisibleToasts({ ...visibleToasts, [id]: true });\n if (duration !== null) {\n setTimeout(function () {\n hideToast(id);\n }, duration);\n }\n\n // iOS doesn't support accessibilityLiveRegion\n if (accessibilityAnnouncement && Platform.OS === 'ios') {\n AccessibilityInfo.announceForAccessibility(accessibilityAnnouncement);\n }\n\n return id;\n },\n [themeProps, toastInfo, visibleToasts, hideToast]\n );\n\n const contextValue = React.useMemo(() => {\n return {\n toastInfo,\n setToastInfo,\n setToast,\n removeToast,\n hideAll,\n isActive,\n visibleToasts,\n setVisibleToasts,\n hideToast,\n };\n }, [\n toastInfo,\n setToastInfo,\n setToast,\n removeToast,\n hideAll,\n isActive,\n visibleToasts,\n setVisibleToasts,\n hideToast,\n ]);\n\n return (\n \n {children}\n \n \n );\n};\n\nexport const useToast = () => {\n const { setToast, hideAll, isActive, hideToast } = React.useContext(\n ToastContext\n );\n\n const toast = useMemo(\n () => ({\n show: setToast,\n close: hideToast,\n closeAll: hideAll,\n isActive,\n }),\n [setToast, hideAll, isActive, hideToast]\n );\n\n return toast;\n};\n\nexport type IToastService = ReturnType;\n\nexport const ToastRef = React.createRef() as MutableRefObject;\n\nexport const Toast: IToastService = {\n show: (props: IToastProps) => ToastRef.current?.show(props),\n close: (id: any) => ToastRef.current?.close(id),\n closeAll: () => ToastRef.current?.closeAll(),\n isActive: (id: any) => ToastRef.current?.isActive(id),\n};\n","import { createContext } from '../utils/createContext';\nimport type { ITheme } from './../theme';\nimport type { IModeType } from './StrictMode';\n\nexport interface INativebaseConfig {\n theme?: ITheme;\n suppressColorAccessibilityWarning?: boolean;\n dependencies?: {\n 'linear-gradient': any;\n };\n enableRem?: boolean;\n strictMode?: IModeType;\n disableContrastText?: boolean;\n}\n\nexport const defaultConfig: INativebaseConfig = {\n strictMode: 'off',\n};\n\nexport const [NativeBaseConfigProvider, useNativeBaseConfig] = createContext<{\n config: INativebaseConfig;\n currentBreakpoint: number;\n isSSR?: boolean;\n theme?: ITheme;\n disableContrastText?: boolean;\n}>('NativeBaseConfigProvider');\n","import React from 'react';\n\nfunction createContext(\n rootComponentName: string\n) {\n const Context = React.createContext(null as any);\n\n function Provider(props: ContextValueType & { children: React.ReactNode }) {\n const { children, ...providerProps } = props;\n // Only re-memoize when prop values change\n const value = React.useMemo(\n () => providerProps,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n Object.values(providerProps)\n ) as ContextValueType;\n return {children};\n }\n\n function useContext(consumerName: string) {\n const context = React.useContext(Context);\n if (context === null) {\n throw new Error(\n `\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``\n );\n }\n return context;\n }\n\n Provider.displayName = rootComponentName + 'Provider';\n return [Provider, useContext] as const;\n}\n\nexport { createContext };\n","import { mode } from '../tools/colors';\n\n// Accordion\nconst accordionBaseStyle = (props: Record) => {\n return {\n borderWidth: 1,\n borderColor: mode('gray.300', 'gray.600')(props),\n borderRadius: 'lg',\n };\n};\nexport const Accordion = {\n baseStyle: accordionBaseStyle,\n};\n\n// AccordionItem\nexport const AccordionItem = {};\n\n// AccordionIcon\nexport const AccordionIcon = {};\n\n// AccordionSummary\nconst accordionSummaryBaseStyle = (props: Record) => {\n return {\n borderTopWidth: 1,\n borderTopColor: mode('gray.300', 'gray.600')(props),\n p: 3,\n _hover: {\n bg: mode('primary.200', 'primary.300')(props),\n },\n _expanded: {\n bg: 'primary.600',\n borderBottomColor: mode('gray.300', 'gray.600')(props),\n _text: { color: 'white' },\n },\n _disabled: {\n bg: mode('gray.200', 'gray.700')(props),\n },\n };\n};\nexport const AccordionSummary = {\n baseStyle: accordionSummaryBaseStyle,\n};\n\n// AccordionDetails\nconst accordionPanelBaseStyle = {\n p: 3,\n};\n\nexport const AccordionDetails = {\n baseStyle: accordionPanelBaseStyle,\n};\n","import { getColor, getColorScheme, transparentize } from '../tools';\nimport type { InterfaceAlertProps } from '../../components/composites/Alert/types';\nfunction getBg(\n props: InterfaceAlertProps & { theme: any } & { colorScheme: any }\n) {\n const { theme, colorScheme: c, status, variant } = props;\n\n const colorScheme = getColorScheme(props, !status ? c : status);\n\n const lightBg =\n variant === 'solid'\n ? getColor(theme, `${colorScheme}.700`, colorScheme)\n : getColor(theme, `${colorScheme}.200`, colorScheme);\n\n const darkBg =\n variant === 'solid'\n ? getColor(theme, `${colorScheme}.600`, colorScheme)\n : getColor(theme, `${colorScheme}.200`, colorScheme);\n\n return { lightBg, darkBg };\n}\n\nconst variantSubtle = (\n props: InterfaceAlertProps & { theme: any } & { colorScheme: any }\n) => {\n let { colorScheme, status } = props;\n const { lightBg, darkBg } = getBg(props);\n\n colorScheme = getColorScheme(props, !status ? colorScheme : status);\n\n return {\n bg: lightBg,\n _icon: { color: `${colorScheme}.700` },\n _dark: {\n bg: darkBg,\n _icon: { color: `${colorScheme}.600` },\n },\n };\n};\n\nconst variantOutline = (props: InterfaceAlertProps & { colorScheme: any }) => {\n let { colorScheme, status } = props;\n\n colorScheme = getColorScheme(props, !status ? colorScheme : status);\n\n return {\n borderWidth: 1,\n _icon: { color: `${colorScheme}.700` },\n borderColor: `${colorScheme}.700`,\n _dark: {\n _icon: { color: `${colorScheme}.600` },\n borderColor: `${colorScheme}.600`,\n },\n };\n};\n\nconst variantOutlineLight = (\n props: InterfaceAlertProps & { theme: any } & { colorScheme: any }\n) => {\n let { colorScheme, status, theme } = props;\n\n colorScheme = getColorScheme(props, !status ? colorScheme : status);\n\n return {\n borderWidth: 1,\n _icon: { color: `${colorScheme}.700` },\n borderColor: transparentize(`${colorScheme}.700`, 0.4)(theme),\n _dark: {\n _icon: { color: `${colorScheme}.600` },\n borderColor: transparentize(`${colorScheme}.600`, 0.4)(theme),\n },\n };\n};\n\nconst variantSolid = (\n props: InterfaceAlertProps & { theme: any } & { colorScheme: any }\n) => {\n const { lightBg, darkBg } = getBg(props);\n return {\n bg: lightBg,\n _dark: {\n bg: darkBg,\n },\n _icon: { color: `muted.50` },\n };\n};\n\nconst variantLeftAccent = (\n props: InterfaceAlertProps & { theme: any } & { colorScheme: any }\n) => {\n let { colorScheme, status } = props;\n const { lightBg, darkBg } = getBg(props);\n\n colorScheme = getColorScheme(props, !status ? colorScheme : status);\n\n return {\n borderLeftWidth: 4,\n bg: lightBg,\n _icon: { color: `${colorScheme}.700` },\n borderLeftColor: `${colorScheme}.700`,\n _dark: {\n bg: darkBg,\n _icon: { color: `${colorScheme}.600` },\n borderLeftColor: `${colorScheme}.600`,\n },\n };\n};\n\nconst variantTopAccent = (\n props: InterfaceAlertProps & { theme: any } & { colorScheme: any }\n) => {\n let { colorScheme, status } = props;\n const { lightBg, darkBg } = getBg(props);\n\n colorScheme = getColorScheme(props, !status ? colorScheme : status);\n\n return {\n borderTopWidth: 4,\n bg: lightBg,\n _icon: { color: `${colorScheme}.700` },\n borderTopColor: `${colorScheme}.700`,\n _dark: {\n bg: darkBg,\n _icon: { color: `${colorScheme}.600` },\n borderTopColor: `${colorScheme}.600`,\n },\n };\n};\n\nconst variants = {\n 'subtle': variantSubtle as any,\n 'solid': variantSolid as any,\n 'left-accent': variantLeftAccent as any,\n 'top-accent': variantTopAccent as any,\n 'outline': variantOutline as any,\n 'outline-light': variantOutlineLight as any,\n};\n\nexport const Alert = {\n baseStyle: {\n alignItems: 'center',\n justifyContent: 'flex-start',\n p: 3,\n space: 3,\n borderRadius: 'sm',\n },\n variants,\n defaultProps: {\n colorScheme: 'info',\n variant: 'subtle',\n },\n};\n\n// AlertIcon\n\nexport const AlertIcon = {\n baseStyle: {\n size: 4,\n },\n};\n","const baseStyle = {};\nconst defaultProps = {\n ratio: 4 / 3,\n};\nexport default {\n baseStyle,\n defaultProps,\n};\n","import { randomColor, getRandomString } from './../tools';\nimport type { InterfaceAvatarProps } from '../../components/composites/Avatar/types';\nconst baseStyle = (props: InterfaceAvatarProps & { name: string }) => {\n const { name } = props;\n const bg = name\n ? randomColor({ string: getRandomString(5) + name })\n : 'gray.400';\n return {\n bg,\n position: 'relative',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: 'full',\n _text: {\n fontWeight: 600,\n color: 'text.50',\n },\n _image: {\n borderRadius: 'full',\n alt: '--',\n _alt: {\n fontWeight: 600,\n },\n style: {\n height: '100%',\n width: '100%',\n },\n },\n borderColor: 'gray.800',\n _dark: {\n borderColor: 'white',\n },\n };\n};\n\nfunction getSize(size: any, fontSize: string, badgeSize: any) {\n return {\n width: size,\n height: size,\n _text: {\n fontSize: fontSize,\n },\n _badgeSize: badgeSize,\n };\n}\n\nconst sizes = {\n 'xs': getSize('6', '2xs', '2'),\n 'sm': getSize('8', 'xs', '3'),\n 'md': getSize('12', 'md', '4'),\n 'lg': getSize('16', 'xl', '5'),\n 'xl': getSize('24', '3xl', '6'),\n '2xl': getSize('32', '5xl', '7'),\n};\n\nconst defaultProps = {\n size: 'md',\n};\n\nexport default {\n baseStyle,\n sizes,\n defaultProps,\n};\n","function baseStyle() {\n return {\n borderRadius: 'full',\n borderWidth: 2,\n bg: 'success.600',\n size: 3,\n position: 'absolute',\n right: 0,\n bottom: 0,\n _light: {\n borderColor: 'muted.50',\n },\n _dark: {\n borderColor: 'muted.900',\n },\n };\n}\n\nexport default { baseStyle };\n","import type { IAvatarGroupProps } from '../../components/composites/Avatar/types';\nfunction baseStyle({ isVertical }: IAvatarGroupProps) {\n return {\n flexDirection: isVertical ? 'column-reverse' : 'row-reverse',\n space: -4,\n _avatar: {\n borderWidth: 2,\n },\n _hiddenAvatarPlaceholder: {\n _text: {\n color: 'text.50',\n },\n },\n _light: {\n _avatar: {\n borderColor: 'muted.50',\n },\n _hiddenAvatarPlaceholder: {\n bg: 'gray.600',\n },\n },\n _dark: {\n _avatar: {\n borderColor: 'muted.900',\n },\n _hiddenAvatarPlaceholder: {\n bg: 'gray.600',\n },\n },\n };\n}\n\nexport default {\n baseStyle,\n defaultProps: {\n isVertical: false,\n },\n};\n","import { getColorScheme } from '../tools';\nimport type { InterfaceBadgeProps } from '../../components/composites/Badge/types';\nconst baseStyle = {\n flexDirection: 'row',\n justifyContent: 'center',\n space: 1,\n px: '2',\n py: '0.5',\n alignItems: 'center',\n _text: { fontSize: 'xs', fontWeight: 'medium' },\n};\n\nfunction variantSolid(props: InterfaceBadgeProps & { colorScheme: any }) {\n const colorScheme = getColorScheme(props);\n return {\n _text: {\n color: 'text.50',\n },\n _icon: {\n color: 'text.50',\n },\n bg: `${colorScheme}.600`,\n borderWidth: '1',\n borderColor: 'transparent',\n borderRadius: '2',\n };\n}\n\nfunction variantSubtle(props: InterfaceBadgeProps & { colorScheme: any }) {\n const colorScheme = getColorScheme(props);\n return {\n _text: { color: `${colorScheme}.900` },\n _icon: { color: `${colorScheme}.900` },\n bg: `${colorScheme}.100`,\n _dark: { bg: `${colorScheme}.300` },\n borderWidth: '1',\n borderRadius: '2',\n borderColor: 'transparent',\n };\n}\n\nfunction variantOutline(props: InterfaceBadgeProps & { colorScheme: any }) {\n const colorScheme = getColorScheme(props);\n return {\n _text: { color: `${colorScheme}.600` },\n _icon: { color: `${colorScheme}.600` },\n borderColor: `${colorScheme}.600`,\n _dark: {\n _text: {\n color: `${colorScheme}.300`,\n },\n _icon: {\n color: `${colorScheme}.300`,\n },\n borderColor: `${colorScheme}.300`,\n },\n borderRadius: '2',\n borderWidth: '1',\n };\n}\n\nconst variants = {\n solid: variantSolid as any,\n subtle: variantSubtle as any,\n outline: variantOutline as any,\n};\n\nconst defaultProps = {\n variant: 'subtle',\n colorScheme: 'muted',\n size: 'md',\n};\n\nexport default {\n baseStyle,\n variants,\n defaultProps,\n};\n","const baseStyle = {\n width: 'auto',\n height: 'auto',\n display: 'flex',\n flexDirection: 'row',\n spacing: '2',\n};\nconst defaultProps = {\n direction: 'row',\n wrap: 'wrap',\n};\n\nexport const Breadcrumb = {\n baseStyle,\n defaultProps,\n};\n\nexport const BreadcrumbText = {\n baseStyle: { ...baseStyle, _current: { fontWeight: 'bold' } },\n defaultProps,\n};\n\nexport const BreadcrumbIcon = {\n baseStyle: { ...baseStyle },\n defaultProps,\n};\n","import type { InterfaceButtonProps } from '../../components/primitives/Button/types';\n\nconst baseStyle = (props: InterfaceButtonProps & { theme: any }) => {\n const { primary } = props.theme.colors;\n\n return {\n borderRadius: 'sm', // '4px'\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n _web: {\n _disabled: {\n cursor: 'not-allowed',\n },\n _loading: {\n cursor: 'not-allowed',\n },\n cursor: 'pointer',\n userSelect: 'none',\n },\n _focusVisible: {\n _web: {\n outlineWidth: '0',\n style: { boxShadow: `${primary[400]} 0px 0px 0px 2px` },\n },\n },\n _dark: {\n _focusVisible: {\n _web: {\n outlineWidth: '0',\n style: { boxShadow: `${primary[500]} 0px 0px 0px 2px` },\n },\n },\n },\n _stack: {\n space: '1.5',\n alignItems: 'center',\n },\n _loading: {\n opacity: '40',\n },\n _disabled: {\n opacity: '40',\n },\n _spinner: {\n size: 'sm',\n focusable: false,\n },\n };\n};\n\nfunction variantGhost({ colorScheme }: InterfaceButtonProps) {\n return {\n _text: {\n color: `${colorScheme}.600`,\n },\n _icon: {\n color: `${colorScheme}.600`,\n },\n _spinner: {\n color: `${colorScheme}.600`,\n },\n _hover: {\n bg: `${colorScheme}.600:alpha.10`,\n },\n _pressed: {\n bg: `${colorScheme}.600:alpha.20`,\n },\n\n _dark: {\n _text: {\n color: `${colorScheme}.500`,\n },\n _icon: {\n color: `${colorScheme}.500`,\n },\n _spinner: {\n color: `${colorScheme}.500`,\n },\n _hover: {\n bg: `${colorScheme}.500:alpha.10`,\n },\n _pressed: {\n bg: `${colorScheme}.500:alpha.20`,\n },\n },\n };\n}\n\nfunction variantOutline({ colorScheme }: InterfaceButtonProps) {\n return {\n borderWidth: '1px',\n borderColor: 'muted.300',\n _text: {\n color: `${colorScheme}.600`,\n },\n _icon: {\n color: `${colorScheme}.600`,\n },\n _spinner: {\n color: `${colorScheme}.600`,\n },\n _hover: {\n bg: `${colorScheme}.600:alpha.10`,\n },\n _pressed: {\n bg: `${colorScheme}.600:alpha.20`,\n },\n\n _dark: {\n borderColor: 'muted.700',\n _text: {\n color: `${colorScheme}.500`,\n },\n _icon: {\n color: `${colorScheme}.500`,\n },\n _spinner: {\n color: `${colorScheme}.500`,\n },\n _hover: {\n bg: `${colorScheme}.500:alpha.10`,\n },\n _pressed: {\n bg: `${colorScheme}.500:alpha.20`,\n },\n },\n };\n}\n\nfunction variantSolid({ colorScheme }: InterfaceButtonProps) {\n return {\n _text: {\n color: 'text.50',\n },\n _icon: {\n color: 'text.50',\n },\n _spinner: {\n color: 'text.50',\n },\n bg: `${colorScheme}.600`,\n _hover: {\n bg: `${colorScheme}.700`,\n },\n _pressed: {\n bg: `${colorScheme}.800`,\n },\n\n _dark: {\n bg: `${colorScheme}.600`,\n _hover: {\n bg: `${colorScheme}.700`,\n },\n _pressed: {\n bg: `${colorScheme}.800`,\n },\n },\n };\n}\n\nfunction variantSubtle({ colorScheme }: InterfaceButtonProps) {\n return {\n bg: `${colorScheme}.100`,\n _text: {\n color: `${colorScheme}.900`,\n },\n _icon: {\n color: `${colorScheme}.900`,\n },\n _spinner: {\n color: `${colorScheme}.900`,\n },\n _hover: {\n bg: `${colorScheme}.200`,\n },\n _pressed: {\n bg: `${colorScheme}.300`,\n },\n\n _dark: {\n bg: `${colorScheme}.300`,\n _hover: {\n bg: `${colorScheme}.200`,\n },\n _pressed: {\n bg: `${colorScheme}.100`,\n },\n },\n };\n}\n\nfunction variantLink({ colorScheme }: InterfaceButtonProps) {\n return {\n _icon: {\n color: `${colorScheme}.600`,\n },\n _spinner: {\n color: `${colorScheme}.600`,\n },\n\n _hover: {\n _text: {\n textDecorationLine: 'underline',\n },\n },\n _pressed: {\n _text: {\n color: `${colorScheme}.800`,\n textDecorationLine: 'underline',\n },\n },\n\n _text: {\n color: `${colorScheme}.600`,\n },\n _dark: {\n _text: {\n color: `${colorScheme}.500`,\n },\n _pressed: {\n _text: {\n color: `${colorScheme}.300`,\n },\n },\n },\n };\n}\n\nconst variants = {\n ghost: variantGhost as any,\n outline: variantOutline as any,\n solid: variantSolid as any,\n subtle: variantSubtle as any,\n link: variantLink as any,\n unstyled: {} as any,\n};\n\nconst sizes = {\n lg: {\n px: '3',\n py: '3',\n _text: {\n fontSize: 'md',\n },\n _icon: {\n size: 'md',\n },\n },\n md: {\n px: '3',\n py: '2.5',\n _text: {\n fontSize: 'sm',\n },\n _icon: {\n size: 'sm',\n },\n },\n sm: {\n px: '3',\n py: '2',\n _text: {\n fontSize: 'xs',\n },\n _icon: {\n size: 'sm',\n },\n },\n xs: {\n px: '3',\n py: '2',\n _text: {\n fontSize: '2xs',\n },\n _icon: {\n size: 'xs',\n },\n },\n};\n\nconst defaultProps = {\n variant: 'solid',\n size: 'md',\n colorScheme: 'primary',\n};\n\nexport const ButtonGroup = {\n baseStyle: { direction: 'row' },\n defaultProps: { space: 2 },\n};\n\nexport default {\n baseStyle,\n variants,\n sizes,\n defaultProps,\n};\n","const baseStyle = {\n shadow: 4,\n borderRadius: 'md',\n padding: 4,\n overflow: 'hidden',\n};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","// For Square and circle variation\nconst sizes = {\n 'xs': {\n height: 10,\n width: 10,\n },\n 'sm': {\n height: 12,\n width: 12,\n },\n 'md': {\n height: 16,\n width: 16,\n },\n 'lg': {\n height: 24,\n width: 24,\n },\n 'xl': {\n height: 32,\n width: 32,\n },\n '2xl': {\n height: 40,\n width: 40,\n },\n};\n\nexport default {\n baseStyle: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n sizes,\n};\n","const baseStyle = (props: Record) => {\n const { colorScheme: c, theme } = props;\n const { colors } = theme;\n return {\n justifyContent: 'flex-start',\n flexDirection: 'row',\n borderWidth: 2,\n borderRadius: 'sm',\n opacity: 1,\n p: 0.5,\n\n bg: 'muted.50',\n borderColor: 'muted.400',\n _text: {\n color: 'darkText',\n ml: 2,\n },\n _icon: {\n color: `muted.50`,\n },\n _checked: {\n borderColor: `${c}.600`,\n bg: `${c}.600`,\n _hover: {\n borderColor: `${c}.700`,\n bg: `${c}.700`,\n _disabled: {\n borderColor: `${c}.600`,\n bg: `${c}.600`,\n },\n },\n _pressed: {\n borderColor: `${c}.800`,\n bg: `${c}.800`,\n },\n },\n _hover: {\n borderColor: 'muted.500',\n _disabled: {\n borderColor: 'muted.400',\n },\n },\n _pressed: {\n borderColor: 'muted.600',\n },\n _invalid: {\n borderColor: 'error.600',\n },\n\n _dark: {\n bg: 'muted.900',\n borderColor: 'muted.500',\n _text: {\n color: 'lightText',\n },\n _icon: {\n color: `muted.900`,\n },\n _checked: {\n borderColor: `${c}.500`,\n bg: `${c}.500`,\n _hover: {\n borderColor: `${c}.400`,\n bg: `${c}.400`,\n _disabled: {\n borderColor: `${c}.500`,\n bg: `${c}.500`,\n },\n },\n _pressed: {\n borderColor: `${c}.300`,\n bg: `${c}.300`,\n },\n },\n _hover: {\n borderColor: 'muted.400',\n _disabled: {\n borderColor: 'muted.500',\n },\n },\n _pressed: {\n borderColor: 'muted.300',\n },\n _invalid: {\n borderColor: 'error.500',\n },\n },\n\n _stack: {\n direction: 'row',\n alignItems: 'center',\n space: 2,\n _web: {\n cursor: props.isDisabled ? 'not-allowed' : 'pointer',\n },\n },\n\n _focusVisible: {\n _web: {\n style: {\n outlineWidth: '2px',\n outlineColor: colors[c][400],\n outlineStyle: 'solid',\n },\n },\n },\n\n _disabled: {\n _web: {\n cursor: 'not-allowed',\n },\n opacity: 0.4,\n },\n };\n};\n\nconst sizes = {\n lg: { _icon: { size: 5 }, _text: { fontSize: 'xl' } },\n md: { _icon: { size: 4 }, _text: { fontSize: 'lg' } },\n sm: { _icon: { size: 3 }, _text: { fontSize: 'md' } },\n};\n\nconst defaultProps = {\n defaultIsChecked: false,\n size: 'sm',\n colorScheme: 'primary',\n};\n\nexport default {\n baseStyle,\n sizes,\n defaultProps,\n};\n","const baseStyle = () => {\n return {\n alignItems: 'flex-start',\n };\n};\n\nexport default {\n baseStyle,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","import { mode, getColorScheme } from '../tools';\n\nconst sizes = {\n 'xs': {\n height: 6,\n width: 6,\n },\n 'sm': {\n height: 8,\n width: 8,\n },\n 'md': {\n height: 16,\n width: 16,\n },\n 'lg': {\n height: 20,\n width: 20,\n },\n 'xl': {\n height: 24,\n width: 24,\n },\n '2xl': {\n height: 32,\n width: 32,\n },\n};\nconst defaultProps = {\n thickness: 8,\n colorScheme: 'primary',\n size: 'lg',\n};\n\nfunction baseStyle(props: Record) {\n const colorScheme = getColorScheme(props);\n return {\n color: mode(`${colorScheme}.600`, `${colorScheme}.500`)(props),\n trackColor: mode(`${colorScheme}.200`, `${colorScheme}.800`)(props),\n };\n}\n\nexport default { baseStyle, sizes, defaultProps };\n","import Badge from './badge';\nimport { Platform } from 'react-native';\n\nconst { variants, defaultProps } = Badge;\n\nconst baseStyle = {\n _text: {\n fontFamily: Platform.OS === 'ios' ? 'Courier' : 'monospace',\n fontSize: 'sm',\n },\n borderRadius: 'sm',\n px: 2,\n py: 1,\n};\n\nexport default {\n baseStyle,\n variants,\n defaultProps,\n};\n","import type { Dict } from './../tools';\n\nconst baseStyle = (props: Dict) => {\n const { centerContent } = props;\n\n return {\n maxWidth: '80%',\n alignItems: centerContent ? 'center' : 'flex-start',\n _text: { textAlign: centerContent ? 'center' : 'left' },\n };\n};\n\nexport default {\n baseStyle,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nconst sizes = {};\nexport default {\n baseStyle,\n defaultProps,\n sizes,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nconst sizes = {};\nexport default {\n baseStyle,\n defaultProps,\n sizes,\n};\n","function baseStyle(props: Record) {\n const { orientation, thickness } = props;\n const orientationProps =\n orientation === 'vertical'\n ? {\n width: `${thickness}px`, // handle for web : To be discussed\n height: '100%',\n }\n : {\n width: '100%',\n height: `${thickness}px`,\n };\n\n return {\n bg: 'muted.300',\n _dark: {\n bg: 'muted.600',\n },\n ...orientationProps,\n };\n}\n\nexport default {\n baseStyle,\n defaultProps: {\n orientation: 'horizontal',\n thickness: '1',\n },\n};\n","const sizes = {\n 'xs': {\n height: 10,\n width: 10,\n },\n 'sm': {\n height: 12,\n width: 12,\n },\n 'md': {\n height: 16,\n width: 16,\n },\n 'lg': {\n height: 24,\n width: 24,\n },\n 'xl': {\n height: 32,\n width: 32,\n },\n '2xl': {\n height: 40,\n width: 40,\n },\n};\n\nconst baseStyle = {\n rounded: 'full',\n alignItems: 'center',\n justifyContent: 'center',\n};\n\nexport default {\n baseStyle,\n sizes,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","const baseStyle = () => {\n return {\n color: 'text.900',\n _dark: {\n color: 'text.50',\n },\n fontWeight: 'bold',\n lineHeight: 'sm',\n };\n};\n\nconst sizes = {\n '4xl': {\n fontSize: { base: '6xl', md: '7xl' },\n letterSpacing: 'xl',\n },\n '3xl': {\n fontSize: { base: '5xl', md: '6xl' },\n letterSpacing: 'xl',\n },\n '2xl': {\n fontSize: { base: '4xl', md: '5xl' },\n },\n 'xl': {\n fontSize: { base: '3xl', md: '4xl' },\n },\n 'lg': {\n fontSize: { base: '2xl', md: '3xl' },\n },\n 'md': { fontSize: 'xl' },\n 'sm': { fontSize: 'md' },\n 'xs': { fontSize: 'sm' },\n};\n\nconst defaultProps = {\n size: 'lg',\n};\n\nexport default {\n baseStyle,\n sizes,\n defaultProps,\n};\n","const baseStyle = () => {\n return {\n color: 'muted.500',\n _dark: {\n color: 'muted.400',\n },\n };\n};\n\nconst sizes = {\n '2xs': 2,\n 'xs': 3,\n 'sm': 4,\n 'md': 5,\n 'lg': 6,\n 'xl': 7,\n '2xl': 8,\n '3xl': 9,\n '4xl': 10,\n '5xl': 12,\n '6xl': 16,\n};\n\nconst defaultProps = { size: 'sm' };\nexport default { baseStyle, sizes, defaultProps };\n","const baseStyle = (props: any) => {\n const { colorScheme } = props;\n const colors = props.theme.colors;\n\n return {\n borderRadius: 'sm', // '4px'\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n _web: {\n _disabled: {\n cursor: 'not-allowed',\n },\n _loading: {\n cursor: 'not-allowed',\n },\n cursor: 'pointer',\n userSelect: 'none',\n },\n _focus: {\n borderColor: `${colorScheme}.400`,\n },\n _focusVisible: {\n _web: {\n style: {\n outlineWidth: '2px',\n outlineColor: `${colors[colorScheme][600]}`,\n outlineStyle: 'solid',\n },\n },\n },\n _loading: {\n opacity: '40',\n },\n _disabled: {\n opacity: '40',\n },\n _dark: {\n _focusVisible: {\n _web: {\n style: {\n outlineWidth: '2px',\n outlineColor: `${colors[colorScheme][500]}`,\n outlineStyle: 'solid',\n },\n },\n },\n },\n };\n};\n\nfunction variantGhost({ colorScheme }: Record) {\n return {\n _icon: {\n color: `${colorScheme}.600`,\n },\n _hover: {\n bg: `${colorScheme}.600:alpha.10`,\n },\n _pressed: {\n bg: `${colorScheme}.600:alpha.20`,\n },\n _dark: {\n _icon: {\n color: `${colorScheme}.500`,\n },\n _hover: {\n bg: `${colorScheme}.500:alpha.10`,\n },\n _pressed: {\n bg: `${colorScheme}.500:alpha.20`,\n },\n },\n };\n}\n\nfunction variantOutline({ colorScheme }: Record) {\n return {\n borderWidth: '1px',\n borderColor: `${colorScheme}.600`,\n _icon: {\n color: `${colorScheme}.600`,\n },\n _hover: {\n bg: `${colorScheme}.700`,\n _icon: {\n color: 'muted.50',\n },\n },\n _pressed: {\n bg: `${colorScheme}.800`,\n _icon: {\n color: 'muted.50',\n },\n },\n _focus: {\n bg: `${colorScheme}.600`,\n _icon: {\n color: 'muted.50',\n },\n },\n _dark: {\n borderColor: `${colorScheme}.500`,\n _icon: {\n color: `${colorScheme}.500`,\n },\n _hover: {\n bg: `${colorScheme}.400`,\n _icon: {\n color: 'muted.900',\n },\n },\n _pressed: {\n bg: `${colorScheme}.300`,\n _icon: {\n color: 'muted.900',\n },\n },\n _focus: {\n bg: `${colorScheme}.500`,\n _icon: {\n color: 'muted.900',\n },\n },\n },\n };\n}\n\nfunction variantSolid({ colorScheme }: Record) {\n return {\n bg: `${colorScheme}.600`,\n _hover: {\n bg: `${colorScheme}.700`,\n },\n _pressed: {\n bg: `${colorScheme}.800`,\n },\n _icon: {\n color: 'muted.50',\n },\n _dark: {\n bg: `${colorScheme}.500`,\n _hover: {\n bg: `${colorScheme}.400`,\n },\n _pressed: {\n bg: `${colorScheme}.300`,\n _icon: {\n color: 'muted.900',\n },\n },\n _icon: {\n color: 'muted.900',\n },\n },\n };\n}\n\nfunction variantSubtle({ colorScheme }: Record) {\n return {\n _text: {\n color: `${colorScheme}.900`,\n },\n _icon: {\n color: `${colorScheme}.900`,\n },\n bg: `${colorScheme}.100`,\n _hover: {\n bg: `${colorScheme}.200`,\n },\n _pressed: {\n bg: `${colorScheme}.300`,\n },\n _dark: {\n bg: `${colorScheme}.300`,\n _hover: {\n bg: `${colorScheme}.200`,\n },\n _pressed: {\n bg: `${colorScheme}.100`,\n },\n },\n };\n}\n\nfunction variantLink({ colorScheme }: Record) {\n return {\n _spinner: {\n color: `${colorScheme}.600`,\n },\n\n _icon: {\n color: `${colorScheme}.600`,\n },\n _hover: {\n _icon: {\n color: `${colorScheme}.700`,\n },\n },\n _pressed: {\n _icon: {\n color: `${colorScheme}.800`,\n },\n },\n _dark: {\n _icon: {\n color: `${colorScheme}.500`,\n },\n _hover: {\n _icon: {\n color: `${colorScheme}.400`,\n },\n },\n _pressed: {\n _icon: {\n color: `${colorScheme}.300`,\n },\n },\n },\n };\n}\n\nfunction variantUnstyled() {\n return {\n _icon: {\n color: 'muted.900',\n },\n _dark: {\n _icon: {\n color: 'muted.50',\n },\n },\n };\n}\n\nconst variants = {\n ghost: variantGhost,\n outline: variantOutline,\n solid: variantSolid,\n subtle: variantSubtle,\n link: variantLink,\n unstyled: variantUnstyled,\n};\n\nconst sizes = {\n lg: {\n p: '3',\n _icon: {\n size: 'lg',\n },\n },\n md: {\n p: '2.5',\n _icon: {\n size: 'md',\n },\n },\n sm: {\n p: '2',\n _icon: {\n size: 'sm',\n },\n },\n xs: {\n p: '1.5',\n _icon: {\n size: 'xs',\n },\n },\n};\n\nconst defaultProps = {\n variant: 'ghost',\n size: 'md',\n colorScheme: 'primary',\n};\n\nexport default {\n baseStyle,\n variants,\n sizes,\n defaultProps,\n};\n","// Image\nconst sizes = {\n '2xs': '6',\n 'xs': '10',\n 'sm': '16',\n 'md': '20',\n 'lg': '24',\n 'xl': '32',\n '2xl': '64',\n 'full': '100%',\n};\n\nexport const Image = {\n baseStyle: {\n maxWidth: '100%',\n },\n sizes,\n defaultProps: {},\n};\n","import { transparentize } from '../tools';\nimport type { InterfaceInputProps } from '../../components/primitives/Input/types';\nconst baseStyle = (props: InterfaceInputProps & { theme: any }) => {\n const { primary, error } = props.theme.colors;\n\n return {\n fontFamily: 'body',\n py: '2',\n px: '3',\n borderRadius: 'sm',\n overflow: 'hidden',\n _disabled: {\n opacity: '0.4',\n _web: {\n disabled: true,\n cursor: 'not-allowed',\n },\n },\n _web: {\n outlineWidth: '0',\n overflow: 'auto',\n lineHeight: 'lg', // Todo: Move to _web inside size so that sm and xs don't have this much height\n style: { outline: 'none' },\n cursor: 'auto',\n },\n\n _input: {\n bg: 'transparent',\n flex: 1,\n w: '100%',\n h: '100%',\n },\n placeholderTextColor: 'text.400',\n color: 'text.900',\n borderColor: 'muted.300',\n _stack: {\n flexDirection: 'row',\n alignItems: 'center',\n // justifyContent: 'space-between',\n overflow: 'hidden',\n },\n _hover: {\n borderColor: 'primary.600',\n },\n _focus: {\n borderColor: 'primary.600',\n _hover: { borderColor: 'primary.600' },\n _invalid: {\n borderColor: 'error.600',\n _hover: { borderColor: 'error.600' },\n _stack: {\n style: {\n outlineWidth: '0',\n boxShadow: `0 0 0 1px ${error[600]}`,\n },\n },\n },\n _ios: {\n selectionColor: 'coolGray.800',\n },\n _android: {\n selectionColor: 'coolGray.800',\n },\n _disabled: {\n placeholderTextColor: 'muted.700',\n _hover: {\n borderColor: 'muted.300',\n },\n },\n _stack: {\n style: {\n outlineWidth: '0',\n boxShadow: `0 0 0 1px ${primary[600]}`,\n },\n },\n },\n _dark: {\n placeholderTextColor: 'text.600',\n color: 'text.50',\n borderColor: 'muted.700',\n _hover: {\n borderColor: 'primary.500',\n },\n _focus: {\n borderColor: 'primary.500',\n _hover: { borderColor: 'primary.500' },\n _stack: {\n style: {\n outlineWidth: '0',\n boxShadow: `0 0 0 1px ${primary[500]}`,\n },\n },\n },\n _invalid: {\n borderColor: 'error.500',\n _stack: {\n style: {\n outlineWidth: '0',\n boxShadow: `0 0 0 1px ${error[500]}`,\n },\n },\n _hover: { borderColor: 'error.500' },\n },\n _ios: {\n selectionColor: 'warmGray.50',\n },\n _android: {\n selectionColor: 'warmGray.50',\n },\n _disabled: {\n placeholderTextColor: 'text.50',\n _hover: {\n borderColor: 'muted.700',\n },\n },\n _stack: {\n flexDirection: 'row',\n alignItems: 'center',\n // justifyContent: 'space-between',\n overflow: 'hidden',\n },\n },\n };\n};\n\nfunction roundedStyle(props: InterfaceInputProps & { theme: any }) {\n const { theme } = props;\n return {\n borderRadius: 'full',\n borderWidth: '1',\n _focus: {\n bg: transparentize('primary.600', 0.1)(theme),\n },\n };\n}\nfunction outlineStyle(props: InterfaceInputProps & { theme: any }) {\n const { theme } = props;\n return {\n borderWidth: '1',\n _focus: {\n bg: transparentize('primary.600', 0.1)(theme),\n },\n };\n}\nfunction filledStyle(props: InterfaceInputProps & { theme: any }) {\n const { theme } = props;\n return {\n borderWidth: '1',\n _focus: {\n bg: transparentize('primary.600', 0.1)(theme),\n },\n _hover: {\n borderWidth: '1',\n _disabled: {\n borderWidth: 0,\n },\n },\n bg: 'muted.100',\n borderColor: 'muted.100',\n\n _dark: {\n bg: 'muted.800',\n borderColor: 'muted.800',\n },\n };\n}\nfunction unstyledStyle() {\n return {\n borderWidth: '0',\n _focus: {\n bg: 'transparent',\n },\n _invalid: {\n _stack: {\n style: {\n outlineWidth: 0,\n },\n },\n },\n _stack: {\n _focus: {\n style: {\n outlineWidth: '0',\n },\n },\n },\n };\n}\nfunction underlinedStyle(props: InterfaceInputProps & { theme: any }) {\n const { primary, error } = props.theme.colors;\n\n return {\n borderWidth: '0',\n pl: '0',\n borderBottomWidth: '1',\n _focus: {\n _stack: {\n style: {\n outlineWidth: '0',\n boxShadow: `0 1px 0 0 ${primary[600]}`,\n },\n },\n },\n _invalid: {\n _stack: {\n style: {\n outlineWidth: 0,\n boxShadow: `0 1px 0 0 ${error[600]}`,\n },\n },\n },\n\n _dark: {\n _focus: {\n _stack: {\n style: {\n outlineWidth: '0',\n boxShadow: `0 1px 0 0 ${primary[500]}`,\n },\n },\n },\n _invalid: {\n _stack: {\n style: {\n outlineWidth: 0,\n boxShadow: `0 1px 0 0 ${error[500]}`,\n },\n },\n },\n },\n borderRadius: 0,\n };\n}\n\nconst variants = {\n outline: outlineStyle as any,\n underlined: underlinedStyle as any,\n rounded: roundedStyle as any,\n filled: filledStyle as any,\n unstyled: unstyledStyle as any,\n};\n\nconst sizes = {\n '2xl': { fontSize: 'xl' },\n 'xl': { fontSize: 'lg' },\n 'lg': { fontSize: 'md' },\n 'md': { fontSize: 'sm' },\n 'sm': { fontSize: 'xs' },\n 'xs': { fontSize: '2xs' },\n};\n\nconst defaultProps = {\n size: 'sm',\n variant: 'outline',\n};\n\n// Input\nexport const Input = {\n baseStyle,\n defaultProps,\n variants,\n sizes,\n};\n\nexport default {};\n","const baseStyle = () => {\n return {\n py: 1,\n px: 2,\n shadow: 6,\n rounded: 'sm',\n _text: {\n fontSize: 'sm',\n color: `text.50`,\n },\n bg: `muted.800`,\n _dark: {\n bg: `muted.50`,\n _text: {\n color: `text.900`,\n },\n },\n };\n};\n\nexport const Tooltip = {\n baseStyle,\n};\n","import { mode } from '../tools';\nimport { Platform } from 'react-native';\n\nfunction baseStyle(props: Record) {\n return {\n bg: mode('muted.200', 'muted.700')(props),\n borderColor: mode('muted.300', 'muted.600')(props),\n borderWidth: 2,\n borderBottomWidth: 4,\n shadow: 1,\n borderRadius: 'md',\n px: 2,\n _text: {\n fontSize: 'sm',\n fontWeight: 'bold',\n fontFamily: Platform.OS === 'ios' ? 'Courier' : 'monospace',\n },\n };\n}\n\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","const baseStyle = () => {\n return {\n width: 'auto',\n height: 'auto',\n };\n};\n\nexport default {\n baseStyle,\n defaultProps: {\n isUnderlined: true,\n },\n};\n","import { StyleSheet } from 'react-native';\n\nconst baseStyle = {\n py: 2,\n borderRadius: 'sm',\n shadow: 6,\n bg: 'muted.50',\n _dark: {\n bg: 'muted.800',\n },\n _presenceTransition: {\n initial: { opacity: 0 },\n animate: {\n opacity: 1,\n translateY: 0,\n transition: { duration: 200 },\n },\n exit: { opacity: 0, transition: { duration: 150 } },\n style: StyleSheet.absoluteFill,\n },\n _overlay: {},\n _backdrop: {\n bg: 'transparent',\n },\n};\n\nexport default {\n baseStyle,\n};\n\nexport const MenuGroup = {\n baseStyle: {\n _title: {\n fontSize: 'xs',\n textTransform: 'uppercase',\n color: 'text.500',\n _dark: {\n color: 'text.400',\n },\n },\n p: 3,\n },\n};\nexport const MenuItem = {\n baseStyle: {\n px: 3,\n py: 2,\n _web: {\n outlineWidth: 0,\n },\n _stack: {\n alignItems: 'center',\n px: 3,\n space: 3,\n },\n _icon: {\n size: 4,\n opacity: 0,\n color: 'muted.500',\n },\n _text: {\n color: 'text.900',\n },\n _disabled: {\n _text: {\n color: 'text.400',\n },\n },\n _hover: {\n bg: 'muted.200',\n },\n _focus: {\n bg: 'muted.300',\n },\n _pressed: {\n bg: 'muted.400',\n },\n _focusVisible: {\n _web: {\n outlineWidth: '0',\n style: { boxShadow: `none` },\n bg: 'muted.300',\n },\n },\n _dark: {\n _text: {\n color: 'text.50',\n },\n _disabled: {\n _text: {\n color: 'text.600',\n },\n },\n _hover: {\n bg: 'muted.700',\n },\n _focus: {\n bg: 'muted.600',\n },\n _pressed: {\n bg: 'muted.500',\n },\n\n _icon: {\n color: 'muted.400',\n },\n _focusVisible: {\n _web: {\n outlineWidth: '0',\n style: { boxShadow: `none` },\n bg: 'muted.600',\n },\n },\n },\n _checked: {\n _icon: {\n opacity: 1,\n },\n },\n },\n defaultProps: {},\n};\n","import { Dimensions } from 'react-native';\n\nconst sizes = {\n xs: {\n contentSize: {\n width: '60%',\n maxWidth: '280',\n },\n },\n sm: {\n contentSize: {\n width: '65%',\n maxWidth: '320',\n },\n },\n md: {\n contentSize: {\n width: '75%',\n maxWidth: '380',\n },\n },\n lg: {\n contentSize: {\n width: '80%',\n maxWidth: '520',\n },\n },\n xl: {\n contentSize: {\n width: '90%',\n maxWidth: '580',\n },\n },\n full: {\n contentSize: {\n width: '100%',\n },\n },\n};\n\nexport const Modal = {\n baseStyle: {\n width: '100%',\n height: '100%',\n justifyContent: 'center',\n alignItems: 'center',\n _web: { pointerEvents: 'box-none' },\n _backdropFade: { exitDuration: 150, entryDuration: 200 },\n _slide: { overlay: false, duration: 200 },\n _fade: { exitDuration: 100, entryDuration: 200 },\n },\n sizes,\n defaultProps: {\n size: 'md',\n closeOnOverlayClick: true,\n },\n};\n\nexport const ModalContent = {\n baseStyle: () => {\n return {\n shadow: 1,\n rounded: 'lg',\n maxHeight: `${Dimensions.get('window').height - 150}px`,\n overflow: 'hidden',\n bg: 'muted.50',\n _text: {\n color: 'text.900',\n },\n\n _dark: {\n bg: 'muted.800',\n _text: {\n color: 'text.50',\n },\n },\n };\n },\n};\nexport const ModalCloseButton = {\n baseStyle: () => {\n return {\n position: 'absolute',\n right: '3',\n top: '3',\n zIndex: '1',\n colorScheme: 'coolGray',\n p: '2',\n bg: 'transparent',\n borderRadius: 'sm',\n _web: {\n outlineWidth: 0,\n cursor: 'pointer',\n },\n _icon: {\n color: 'muted.500',\n size: '4',\n },\n\n _hover: {\n bg: 'muted.200',\n },\n _pressed: {\n bg: 'muted.300',\n },\n\n _dark: {\n _icon: {\n color: 'muted.400',\n },\n _hover: {\n bg: 'muted.700',\n },\n _pressed: {\n bg: 'muted.600',\n },\n },\n };\n },\n};\nexport const ModalHeader = {\n baseStyle: () => {\n return {\n p: '4',\n borderBottomWidth: '1',\n _text: {\n color: 'text.900',\n fontSize: 'md',\n fontWeight: 'semibold',\n lineHeight: 'sm',\n },\n\n bg: 'muted.50',\n borderColor: 'muted.300',\n\n _dark: {\n bg: 'muted.800',\n borderColor: 'muted.700',\n _text: {\n color: 'text.50',\n },\n },\n };\n },\n};\nexport const ModalBody = {\n baseStyle: () => {\n return {\n p: '4',\n\n _text: {\n color: 'text.900',\n },\n\n _dark: {\n _text: {\n color: 'text.50',\n },\n },\n };\n },\n};\nexport const ModalFooter = {\n baseStyle: () => {\n return {\n p: '4',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n flexWrap: 'wrap',\n borderTopWidth: 1,\n\n bg: 'muted.50',\n borderColor: 'muted.300',\n\n _dark: {\n bg: 'muted.800',\n borderColor: 'muted.700',\n },\n };\n },\n};\nexport const ModalOverlay = {\n baseStyle: {\n position: 'absolute',\n left: '0',\n top: '0',\n opacity: '50',\n right: '0',\n bottom: '0',\n },\n};\n","import { Dimensions } from 'react-native';\n\nconst sizes = {\n xs: {\n contentSize: {\n width: '60%',\n maxWidth: '280',\n },\n },\n sm: {\n contentSize: {\n width: '65%',\n maxWidth: '320',\n },\n },\n md: {\n contentSize: {\n width: '75%',\n maxWidth: '380',\n },\n },\n lg: {\n contentSize: {\n width: '80%',\n maxWidth: '520',\n },\n },\n xl: {\n contentSize: {\n width: '90%',\n maxWidth: '580',\n },\n },\n full: {\n contentSize: {\n width: '100%',\n },\n },\n};\n\nexport const AlertDialog = {\n baseStyle: {\n width: '100%',\n height: '100%',\n justifyContent: 'center',\n alignItems: 'center',\n _web: { pointerEvents: 'box-none' },\n _backdropFade: { exitDuration: 150, entryDuration: 200 },\n _fade: { exitDuration: 100, entryDuration: 200 },\n _slide: { duration: 200, overlay: false },\n },\n sizes,\n defaultProps: {\n size: 'md',\n closeOnOverlayClick: true,\n },\n};\n\nexport const AlertDialogContent = {\n baseStyle: () => {\n return {\n shadow: 1,\n rounded: 'lg',\n maxHeight: `${Dimensions.get('window').height - 150}px`,\n overflow: 'hidden',\n bg: 'muted.50',\n _text: {\n color: 'text.900',\n },\n\n _dark: {\n bg: 'muted.800',\n color: 'text.50',\n },\n };\n },\n};\nexport const AlertDialogCloseButton = {\n baseStyle: () => {\n return {\n position: 'absolute',\n right: '3',\n top: '3',\n zIndex: '1',\n p: '2',\n bg: 'transparent',\n borderRadius: 'sm',\n _web: {\n outlineWidth: 0,\n cursor: 'pointer',\n },\n _icon: {\n size: '4',\n color: 'muted.500',\n },\n\n _hover: {\n bg: 'muted.200',\n },\n _pressed: {\n bg: 'muted.300',\n },\n\n _dark: {\n _icon: {\n color: 'muted.400',\n },\n _hover: {\n bg: 'muted.700',\n },\n _pressed: {\n bg: 'muted.600',\n },\n },\n };\n },\n};\nexport const AlertDialogHeader = {\n baseStyle: () => {\n return {\n p: '4',\n borderBottomWidth: '1',\n _text: {\n color: 'text.900',\n fontSize: 'md',\n fontWeight: 'semibold',\n lineHeight: 'sm',\n },\n bg: 'muted.50',\n borderColor: 'muted.300',\n\n _dark: {\n bg: 'muted.800',\n borderColor: 'muted.700',\n _text: {\n color: 'text.50',\n },\n },\n };\n },\n};\nexport const AlertDialogBody = {\n baseStyle: () => {\n return {\n p: '4',\n\n bg: 'muted.50',\n _text: {\n color: 'text.900',\n },\n\n _dark: {\n bg: 'muted.800',\n _text: {\n color: 'text.50',\n },\n },\n };\n },\n};\nexport const AlertDialogFooter = {\n baseStyle: () => {\n return {\n p: '4',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n flexWrap: 'wrap',\n borderTopWidth: '1',\n bg: 'muted.50',\n borderColor: 'muted.300',\n\n _dark: {\n bg: 'muted.800',\n borderColor: 'muted.700',\n },\n };\n },\n};\nexport const AlertDialogOverlay = {\n baseStyle: {\n position: 'absolute',\n left: '0',\n top: '0',\n opacity: '50',\n right: '0',\n bottom: '0',\n },\n};\n","export const PopoverCloseButton = {\n baseStyle: () => ({\n position: 'absolute',\n right: 3,\n top: 3,\n zIndex: 1,\n p: '2',\n bg: 'transparent',\n borderRadius: 'sm',\n _web: {\n outlineWidth: 0,\n cursor: 'pointer',\n },\n _icon: {\n size: '4',\n },\n _light: {\n _icon: {\n color: 'muted.500',\n },\n _hover: {\n bg: 'muted.200',\n },\n _pressed: {\n bg: 'muted.300',\n },\n },\n _dark: {\n _icon: {\n color: 'muted.400',\n },\n _hover: {\n bg: 'muted.700',\n },\n _pressed: {\n bg: 'muted.600',\n },\n },\n }),\n};\n\nexport const PopoverBody = {\n baseStyle: () => ({\n p: '3',\n shadow: '6',\n bg: 'muted.50',\n _text: {\n color: 'text.900',\n },\n _dark: {\n bg: 'muted.800',\n _text: {\n color: 'text.50',\n },\n },\n }),\n};\n\nexport const PopoverContent = {\n baseStyle: () => ({\n //TODO: Box inside PopperContent is not able to resolve shadow\n // shadow: '6',\n borderColor: 'muted.300',\n _text: {\n color: 'text.900',\n },\n _dark: {\n borderColor: 'muted.700',\n _text: {\n color: 'text.50',\n },\n },\n borderWidth: 1,\n rounded: 'md',\n overflow: 'hidden',\n }),\n};\n\nexport const PopoverHeader = {\n baseStyle: () => ({\n _web: {\n accessibilityRole: 'header',\n },\n p: '4',\n borderBottomWidth: '1',\n _text: {\n fontSize: 'md',\n fontWeight: '700',\n lineHeight: 'sm',\n color: 'text.900',\n },\n bg: 'muted.50',\n borderColor: 'muted.300',\n _dark: {\n bg: 'muted.800',\n borderColor: 'muted.700',\n _text: {\n color: 'text.50',\n },\n },\n }),\n};\n\nexport const PopoverArrow = {\n baseStyle: () => ({\n bg: 'muted.50',\n borderColor: 'muted.300',\n _dark: {\n bg: 'muted.800',\n borderColor: 'muted.700',\n },\n }),\n};\n\nexport const PopoverFooter = {\n baseStyle: () => {\n return {\n p: '4',\n shadow: '6',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n flexWrap: 'wrap',\n borderTopWidth: 1,\n bg: 'muted.50',\n borderColor: 'muted.300',\n _dark: {\n bg: 'muted.800',\n borderColor: 'muted.700',\n },\n };\n },\n};\n","import { mode } from '../tools';\n\nconst defaultProps = {\n size: 'sm',\n step: 1,\n min: -Infinity,\n max: Infinity,\n defaultValue: '0',\n keepWithinRange: true,\n clampValueOnBlur: true,\n focusInputOnChange: true,\n getAriaValueText: true,\n};\n\nexport default {\n defaultProps,\n};\n\n//Steppers\nconst stepperbaseStyle = (props: Record) => {\n return {\n bg: mode('primary.600', 'primary.200')(props),\n iconColor: mode('gray.50', 'gray.800')(props),\n _active: {},\n _disabled: {\n // iconColor: mode('gray.50', 'gray.300')(props),\n // bg: mode('blackAlpha.200', 'whiteAlpha.300')(props),\n opacity: 0.5,\n },\n };\n};\n\nexport const NumberInputStepper = {\n baseStyle: stepperbaseStyle,\n};\n","const defaultProps = {\n placeholder: '○',\n size: 'md',\n manageFocus: true,\n space: 1,\n};\n\nconst sizes = {\n '2xl': {\n fontSize: '2xl',\n p: 3,\n width: '56px',\n height: '56px',\n textAlign: 'center',\n borderRadius: 'lg',\n },\n 'xl': {\n fontSize: 'xl',\n p: 3,\n width: '52px',\n height: '52px',\n textAlign: 'center',\n borderRadius: 'lg',\n },\n 'lg': {\n fontSize: 'lg',\n p: 2,\n width: '48px',\n height: '48px',\n textAlign: 'center',\n borderRadius: 'md',\n },\n 'md': {\n fontSize: 'md',\n p: 2,\n width: '40px',\n height: '40px',\n textAlign: 'center',\n borderRadius: 'md',\n },\n 'sm': {\n fontSize: 'sm',\n p: 1,\n width: '30px',\n height: '30px',\n textAlign: 'center',\n borderRadius: 'md',\n },\n 'xs': {\n fontSize: 'xs',\n p: 1,\n width: '24px',\n height: '24px',\n textAlign: 'center',\n borderRadius: 'md',\n },\n};\n\nexport default {\n sizes,\n defaultProps,\n};\n","const baseStyle = (props: any) => {\n const { primary } = props.theme.colors;\n\n return {\n _focusVisible: {\n _web: {\n style: {\n outlineWidth: 0,\n boxShadow: `${primary[400]} 0px 0px 0px 2px`,\n },\n },\n },\n _dark: {\n _focusVisible: {\n _web: {\n style: {\n outlineWidth: 0,\n boxShadow: `${primary[500]} 0px 0px 0px 2px`,\n },\n },\n },\n },\n };\n};\n\nexport default {\n baseStyle,\n defaultProps: {},\n};\n","const defaultProps = {\n colorScheme: 'primary',\n size: 'sm',\n rounded: 'full',\n min: 0,\n max: 100,\n value: 0,\n isIndeterminate: false,\n};\n\nfunction baseStyle(props: Record) {\n const { colorScheme: c } = props;\n\n return {\n overflow: 'hidden',\n _filledTrack: {\n bg: `${c}.600`,\n shadow: 0,\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n rounded: 'full',\n _text: {\n color: 'white',\n fontWeight: 'bold',\n },\n },\n bg: 'muted.200',\n _dark: {\n bg: 'muted.700',\n _filledTrack: {\n bg: `${c}.400`,\n },\n },\n };\n}\n\nconst sizes = {\n 'xs': {\n height: 1,\n },\n 'sm': {\n height: 2,\n },\n 'md': {\n height: 3,\n },\n 'lg': {\n height: 4,\n },\n 'xl': {\n height: 5,\n },\n '2xl': {\n height: 6,\n },\n};\n\nexport default {\n baseStyle,\n defaultProps,\n sizes,\n};\n","const baseStyle = (props: Record) => {\n const { colorScheme: c, theme } = props;\n const { colors } = theme;\n return {\n borderWidth: 2,\n borderRadius: 'full',\n p: 1,\n\n bg: 'muted.50',\n borderColor: 'muted.400',\n\n _checked: {\n borderColor: `${c}.600`,\n _icon: {\n color: `${c}.600`,\n },\n _hover: {\n borderColor: `${c}.700`,\n _icon: { color: `${c}.700` },\n _disabled: {\n borderColor: `${c}.600`,\n _icon: {\n color: `${c}.600`,\n },\n },\n },\n _pressed: {\n borderColor: `${c}.800`,\n _icon: { color: `${c}.800` },\n },\n },\n\n _hover: {\n borderColor: 'muted.500',\n _disabled: {\n borderColor: 'muted.400',\n },\n _checked: { borderColor: `${c}.600` },\n },\n\n _pressed: {\n borderColor: 'muted.600',\n },\n\n _invalid: {\n borderColor: 'error.600',\n },\n\n _dark: {\n bg: 'muted.900',\n borderColor: 'muted.500',\n\n _checked: {\n borderColor: `${c}.500`,\n _icon: {\n color: `${c}.500`,\n },\n _hover: {\n borderColor: `${c}.400`,\n _icon: { color: `${c}.400` },\n _disabled: {\n borderColor: `${c}.500`,\n _icon: {\n color: `${c}.500`,\n },\n },\n },\n _pressed: {\n borderColor: `${c}.300`,\n _icon: { color: `${c}.300` },\n },\n },\n\n _hover: {\n borderColor: 'muted.400',\n _disabled: {\n borderColor: 'muted.500',\n },\n _checked: { borderColor: `${c}.600` },\n },\n\n _pressed: {\n borderColor: 'muted.300',\n },\n\n _invalid: {\n borderColor: 'error.500',\n },\n },\n\n _stack: {\n direction: 'row',\n alignItems: 'center',\n space: 2,\n _web: {\n cursor: props.isDisabled ? 'not-allowed' : 'pointer',\n },\n },\n\n _disabled: {\n opacity: '0.6',\n _icon: {\n bg: 'transparent',\n },\n _stack: {\n opacity: '0.6',\n },\n },\n\n _focusVisible: {\n _web: {\n style: {\n outlineWidth: '2px',\n outlineColor: colors[c][400],\n outlineStyle: 'solid',\n },\n },\n },\n };\n};\n\nconst sizes = {\n lg: {\n _icon: { size: 4 },\n _text: { fontSize: 'lg' },\n },\n md: {\n _icon: { size: 3 },\n _text: { fontSize: 'md' },\n },\n sm: {\n _icon: { size: 2 },\n _text: { fontSize: 'sm' },\n },\n};\n\nconst defaultProps = {\n defaultIsChecked: false,\n size: 'md',\n colorScheme: 'primary',\n};\n\nexport default {\n baseStyle,\n sizes,\n defaultProps,\n};\n","const baseStyle = () => {\n return {\n alignItems: 'flex-start',\n };\n};\n\nexport default {\n baseStyle,\n};\n","const defaultProps = {\n _statLabel: {\n fontSize: 'xl',\n },\n _statNumber: {\n fontSize: '4xl',\n fontWeight: 'bold',\n my: 2,\n },\n _statHelpText: {\n _text: {\n color: 'gray.500',\n fontSize: 'xl',\n },\n flexDirection: 'row',\n alignItems: 'center',\n },\n _statGroup: {\n flexWrap: 'wrap',\n space: 4,\n justifyContent: 'space-between',\n },\n};\n\nexport default {\n defaultProps,\n};\n","const baseStyle = (props: Record) => {\n const { colorScheme: c } = props;\n return {\n _disabled: {\n opacity: 0.4,\n },\n _invalid: {\n borderColor: 'error.600',\n borderWidth: 2,\n borderRadius: 12,\n },\n onThumbColor: 'muted.50',\n offThumbColor: 'muted.50',\n offTrackColor: 'muted.300',\n onTrackColor: `${c}.600`,\n _hover: {\n offTrackColor: 'muted.400',\n onTrackColor: `${c}.700`,\n },\n\n _dark: {\n offTrackColor: 'muted.700',\n onTrackColor: `${c}.500`,\n _hover: {\n offTrackColor: 'muted.600',\n onTrackColor: `${c}.400`,\n },\n _invalid: {\n borderColor: 'error.500',\n },\n },\n };\n};\n\nconst sizes = {\n sm: {\n style: {\n transform: [{ scale: 0.75 }],\n },\n },\n md: {},\n lg: {\n style: {\n transform: [{ scale: 1.25 }],\n },\n margin: 1,\n },\n};\n\nconst defaultProps = {\n size: 'md',\n colorScheme: 'primary',\n};\n\nexport default {\n baseStyle,\n sizes,\n defaultProps,\n};\n","import { getColorFormColorScheme, getColorScheme, mode } from '../tools';\n\nfunction baseStyle(props: Record) {\n const activeColor = getColorFormColorScheme(props);\n return {\n activeTabStyle: {\n justifyContent: 'center',\n alignItems: 'center',\n mb: '-2px',\n flexDirection: 'row',\n _text: { fontSize: 'sm', fontWeight: 'bold' },\n },\n inactiveTabStyle: {\n justifyContent: 'center',\n alignItems: 'center',\n mb: '-2px',\n flexDirection: 'row',\n _text: {\n color: mode('gray.500', 'gray.400')(props),\n fontSize: 'sm',\n fontWeight: 'bold',\n },\n },\n activeIconProps: {\n color: activeColor,\n name: 'home',\n mx: 2,\n },\n inactiveIconProps: {\n name: 'home',\n mx: 2,\n },\n };\n}\n\nconst sizes = {\n sm: {\n activeTabStyle: {\n _text: { fontSize: 'sm' },\n py: 2,\n px: 3,\n },\n inactiveTabStyle: {\n _text: { fontSize: 'sm' },\n py: 2,\n px: 3,\n },\n },\n md: {\n activeTabStyle: {\n _text: { fontSize: 'md' },\n py: 3,\n px: 4,\n },\n inactiveTabStyle: {\n _text: { fontSize: 'md' },\n py: 3,\n px: 4,\n },\n },\n lg: {\n activeTabStyle: {\n _text: { fontSize: 'lg' },\n py: 4,\n px: 5,\n },\n inactiveTabStyle: {\n _text: { fontSize: 'lg' },\n py: 4,\n px: 5,\n },\n },\n};\n\nfunction variantOutline(props: Record) {\n const activeColor = getColorFormColorScheme(props);\n let { colorScheme, status } = props;\n colorScheme = getColorScheme(\n props,\n colorScheme !== 'primary' ? colorScheme : status\n );\n return {\n activeTabStyle: {\n borderColor: activeColor,\n _text: {\n color: mode(`${colorScheme}.600`, `${colorScheme}.200`)(props),\n },\n _hover: {\n bg: mode(`${colorScheme}.50`, `${colorScheme}.800`)(props),\n },\n borderBottomWidth: 2,\n },\n inactiveTabStyle: {\n borderColor: 'transparent',\n borderBottomWidth: 2,\n _hover: {\n bg: mode(`${colorScheme}.50`, `${colorScheme}.800`)(props),\n },\n },\n tabBarStyle: {\n borderBottomWidth: 2,\n borderColor: mode('muted.200', 'muted.500')(props),\n },\n };\n}\n\nfunction variantFilled(props: Record) {\n const activeColor = getColorFormColorScheme(props);\n let { colorScheme, status } = props;\n colorScheme = getColorScheme(\n props,\n colorScheme !== 'primary' ? colorScheme : status\n );\n return {\n activeTabStyle: {\n borderColor: activeColor,\n _text: { color: mode(`${colorScheme}.600`, `${colorScheme}.200`)(props) },\n _hover: {\n bg: mode(`${colorScheme}.50`, `${colorScheme}.800`)(props),\n },\n borderBottomWidth: 2,\n bg: mode(`${colorScheme}.100`, `${colorScheme}.700`)(props),\n },\n inactiveTabStyle: {\n borderColor: 'transparent',\n borderBottomWidth: 2,\n _hover: {\n bg: mode(`${colorScheme}.50`, `${colorScheme}.800`)(props),\n },\n },\n tabBarStyle: {\n borderBottomWidth: 2,\n borderColor: mode('muted.200', 'muted.500')(props),\n },\n };\n}\n\n// function variantEnclosed(props: Record) {\n// const activeColor = getColorFormColorScheme(props);\n// return {\n// activeTabStyle: {\n// borderTopWidth: 2,\n// borderLeftWidth: 2,\n// borderRightWidth: 2,\n// borderColor: activeColor,\n// },\n// inactiveTabStyle: {\n// borderColor: 'muted.200',\n// borderBottomWidth: 2,\n// },\n// tabBarStyle: {},\n// };\n// }\n\nfunction variantFilledOutline(props: Record) {\n const activeColor = getColorFormColorScheme(props);\n let { colorScheme, status } = props;\n colorScheme = getColorScheme(\n props,\n colorScheme !== 'primary' ? colorScheme : status\n );\n return {\n activeTabStyle: {\n borderColor: activeColor,\n _text: { color: mode(`${colorScheme}.600`, `${colorScheme}.200`)(props) },\n _hover: {\n bg: mode(`${colorScheme}.50`, `${colorScheme}.800`)(props),\n },\n borderBottomWidth: 2,\n },\n inactiveTabStyle: {\n borderColor: 'transparent',\n borderBottomWidth: 2,\n _hover: {\n bg: mode(`${colorScheme}.50`, `${colorScheme}.800`)(props),\n },\n },\n tabBarStyle: {\n borderBottomWidth: 2,\n borderColor: mode('muted.200', 'muted.500')(props),\n bg: mode(`${colorScheme}.100`, `${colorScheme}.700`)(props),\n },\n };\n}\n\n// function varientSoftRounded(props: Record) {\n// const activeColor = getColorFormColorScheme(props);\n// return {\n// activeTabStyle: {\n// borderRadius: 'full',\n// bg: transparentize(activeColor, 0.7)(props.theme),\n// color: 'white',\n// },\n// inactiveTabStyle: {},\n// tabBarStyle: {},\n// };\n// }\n\n// function varientSolidRounded(props: Record) {\n// const activeColor = getColorFormColorScheme(props);\n// return {\n// activeTabStyle: {\n// borderRadius: 'full',\n// bg: activeColor,\n// color: 'white',\n// },\n// inactiveTabStyle: {},\n// tabBarStyle: {},\n// };\n// }\n\n// function varientSolidBox(props: Record) {\n// const activeColor = getColorFormColorScheme(props);\n// return {\n// activeTabStyle: {\n// bg: activeColor,\n// color: 'white',\n// },\n// inactiveTabStyle: {},\n// tabBarStyle: {},\n// };\n// }\n\nconst variants = {\n 'outline': variantOutline,\n 'filled': variantFilled,\n 'filled-outline': variantFilledOutline,\n // 'soft-rounded': varientSoftRounded,\n // 'solid-rounded': varientSolidRounded,\n // 'solid-box': varientSolidBox,\n};\n\nconst defaultProps = {\n size: 'md',\n variant: 'outline',\n colorScheme: 'primary',\n};\n\nexport default {\n baseStyle,\n variants,\n sizes,\n defaultProps,\n};\n","import Badge from './badge';\n\nconst { variants } = Badge;\nconst baseStyle = {\n _text: {\n fontWeight: 'medium',\n // lineHeight: 1.2,\n },\n alignItems: 'center',\n justifyContent: 'center',\n flexDirection: 'row',\n display: 'flex',\n};\nconst sizes = {\n sm: {\n minH: 5,\n minW: 5,\n _text: {\n fontSize: 'xs',\n },\n p: 1,\n borderRadius: 'sm',\n },\n md: {\n minH: 6,\n minW: 6,\n _text: {\n fontSize: 'sm',\n },\n borderRadius: 'md',\n p: 2,\n },\n lg: {\n minH: 8,\n minW: 8,\n _text: {\n fontSize: 'md',\n },\n borderRadius: 'md',\n p: 3,\n },\n};\n\nconst defaultProps = {\n size: 'md',\n variant: 'subtle',\n colorScheme: 'primary',\n};\n\nexport default {\n variants,\n baseStyle,\n sizes,\n defaultProps,\n};\n","const baseStyle = () => {\n return {\n color: 'text.900',\n _dark: {\n color: 'text.50',\n },\n fontWeight: '400',\n fontFamily: 'body',\n fontStyle: 'normal',\n fontSize: 'sm',\n letterSpacing: 'md',\n lineHeight: 'lg',\n };\n};\nconst defaultProps = {};\n\nexport default { baseStyle, defaultProps };\n","import { mode, getColorScheme } from './../tools';\n\nconst baseStyle = (props: Record) => {\n let colorScheme = getColorScheme(props);\n return {\n bg: mode(`${colorScheme}.500`, `${colorScheme}.300`)(props),\n px: 2,\n };\n};\nconst defaultProps = {\n colorScheme: 'primary',\n};\n\nexport default {\n baseStyle,\n defaultProps,\n};\n","const baseStyle = {\n multiline: true,\n p: '2',\n textAlignVertical: 'top',\n h: '20',\n};\n\nexport default {\n baseStyle,\n defaultProps: {\n size: 'sm',\n variant: 'outline',\n },\n};\n","import { mode } from '../tools';\n\n// TextField\nconst baseStyle = (props: Record) => {\n return {\n _errorMessageProps: {\n mt: 1,\n ml: 3,\n fontSize: 'xs',\n color: 'error.400',\n },\n _helperTextProps: {\n mt: 1,\n ml: 3,\n fontSize: 'xs',\n color: mode('muted.400', 'muted.500')(props),\n },\n };\n};\n\nexport const TextField = {\n baseStyle,\n defaultProps: {\n component: 'input',\n },\n};\n","import { mode } from './../tools';\nimport { Easing } from 'react-native';\n\nconst baseStyle = (props: Record) => {\n // NOTE: Internal pseudo props like _stack, _overlay nad _presenceTransition can only be update by the theme.\n return {\n bg: mode(`muted.700`, `muted.600`)(props),\n p: '2',\n rounded: 'sm',\n shadow: 6,\n // The stack in which toast are being rendered\n _stack: {\n margin: 'auto',\n position: 'absolute',\n space: 2,\n alignItems: 'center',\n justifyContent: 'center',\n pointerEvents: 'box-none',\n _web: { position: 'fixed' },\n },\n _overlay: {},\n _presenceTransition: {\n animate: {\n opacity: 1,\n transition: { easing: Easing.ease, duration: 250 },\n },\n exit: {\n opacity: 0,\n scale: 0.85,\n transition: { easing: Easing.ease, duration: 100 },\n },\n },\n _title: {\n color: 'text.50',\n fontWeight: 700,\n },\n _description: {\n color: 'text.50',\n fontWeight: 400,\n },\n };\n};\n\nexport const Toast = {\n baseStyle,\n defaultProps: {},\n};\n","//Fade\n// const fadeDefaultProps = {\n// entryDuration: 500,\n// exitDuration: 500,\n// };\n\nexport const fadeBaseStyle = {\n initial: { opacity: 0 },\n animate: { opacity: 1, transition: { duration: 500 } },\n exit: { opacity: 0, transition: { duration: 500 } },\n};\nexport const Fade = {\n baseStyle: fadeBaseStyle,\n};\n\n//ScaleFade\n//Can be commented if not used anywhere else\n// const scaleFadeDefaultProps = {\n// duration: 500,\n// initialScale: 0.9,\n// };\n\nconst scaleBaseStyle = {\n initial: { opacity: 0, scale: 0.9 },\n animate: { opacity: 1, scale: 1, transition: 500 },\n exit: { opacity: 0, scale: 0.9, transition: 500 },\n};\nexport const ScaleFade = {\n baseStyle: scaleBaseStyle,\n};\n\n//Slide\nconst slideDefaultProps = {\n duration: 500,\n placement: 'bottom',\n overlay: true,\n _overlay: { isOpen: true },\n};\n\nexport const Slide = {\n baseStyle: {\n h: '100%',\n pointerEvents: 'box-none',\n _overlay: { style: { overflow: 'hidden' } },\n },\n defaultProps: slideDefaultProps,\n};\n\n//SlideFade\nconst slideFadeDefaultProps = {\n duration: 500,\n offsetX: 10,\n offsetY: 10,\n};\n\nexport const SlideFade = {\n defaultProps: slideFadeDefaultProps,\n};\n","import { mode } from '../tools/colors';\n\nconst typeaheadSearchItemBaseStyle = (props: Record) => {\n return {\n backgroundColor: mode('gray.100', 'gray.600')(props),\n _focus: {\n backgroundColor: mode('primary.300', 'primary.700')(props),\n },\n _disabled: {\n backgroundColor: 'gray.200',\n },\n };\n};\n\nexport const TypeAheadSearchItem = {\n baseStyle: typeaheadSearchItemBaseStyle,\n};\n","const baseStyle = {};\nconst defaultProps = {};\n// sizes in stack means the height or width of the spacer elements that get's added between the children, in other\n// words it maps to space prop that user passes.\nconst sizes = {\n 'gutter': 0,\n '2xs': 1,\n 'xs': 2,\n 'sm': 3,\n 'md': 4,\n 'lg': 6,\n 'xl': 7,\n '2xl': 8,\n};\nexport default {\n baseStyle,\n defaultProps,\n sizes,\n};\n","const sizes = {\n 'xs': {\n height: 10,\n width: 10,\n },\n 'sm': {\n height: 12,\n width: 12,\n },\n 'md': {\n height: 16,\n width: 16,\n },\n 'lg': {\n height: 24,\n width: 24,\n },\n 'xl': {\n height: 32,\n width: 32,\n },\n '2xl': {\n height: 40,\n width: 40,\n },\n};\n\nconst baseStyle = {\n alignItems: 'center',\n justifyContent: 'center',\n};\n\nexport default {\n baseStyle,\n sizes,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","export const SliderTrack = {\n baseStyle: ({ isVertical, size }: any) => {\n return {\n bg: 'muted.200',\n borderRadius: 'lg',\n overflow: 'hidden',\n style: {\n height: isVertical ? '100%' : size,\n width: !isVertical ? '100%' : size,\n },\n _pressable: {\n alignItems: 'center',\n justifyContent: 'center',\n height: isVertical ? '100%' : size,\n width: !isVertical ? '100%' : size,\n py: !isVertical ? '3' : undefined,\n px: isVertical ? '3' : undefined,\n },\n _dark: {\n bg: 'muted.700',\n },\n };\n },\n};\n\nexport const SliderThumb = {\n baseStyle: (props: any) => {\n const { colorScheme } = props;\n const { primary } = props.theme.colors;\n return {\n borderRadius: 'full',\n zIndex: 999,\n alignItems: 'center',\n justifyContent: 'center',\n scaleOnPressed: 1,\n _interactionBox: {\n position: 'absolute',\n borderRadius: 'full',\n zIndex: -1,\n },\n _stack: {\n direction: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n space: 2,\n },\n bg: `${colorScheme}.600`,\n _hover: {\n _web: {\n outlineWidth: '4px',\n outlineColor: primary[300],\n outlineStyle: 'solid',\n },\n },\n _focus: {\n _web: {\n outlineWidth: '2px',\n outlineColor: primary[400],\n outlineStyle: 'solid',\n },\n },\n _pressed: {\n _interactionBox: {\n borderWidth: '8',\n borderColor: `${colorScheme}.300`,\n },\n },\n\n _dark: {\n bg: `${colorScheme}.500`,\n _hover: {\n _web: {\n outlineWidth: '4px',\n outlineColor: primary[800],\n outlineStyle: 'solid',\n },\n },\n _focus: {\n _web: {\n outlineWidth: '2px',\n outlineColor: primary[400],\n outlineStyle: 'solid',\n },\n },\n _pressed: {\n _interactionBox: {\n borderWidth: '8',\n borderColor: `${colorScheme}.800`,\n },\n },\n },\n // shadow: 6,\n _web: {\n cursor: 'pointer',\n },\n };\n },\n defaultProps: {\n colorScheme: 'primary',\n },\n sizes: {\n lg: {\n _interactionBox: '3',\n },\n md: {\n _interactionBox: '2',\n },\n sm: {\n _interactionBox: '2.5',\n },\n },\n};\n\nexport const SliderFilledTrack = {\n baseStyle: ({\n orientation,\n isReversed,\n sliderTrackPosition,\n size,\n colorScheme,\n }: any) => {\n return {\n left: orientation !== 'vertical' && !isReversed ? 0 : undefined,\n bottom: orientation === 'vertical' && !isReversed ? 0 : undefined,\n right: orientation !== 'vertical' && isReversed ? 0 : undefined,\n top: orientation === 'vertical' && isReversed ? 0 : undefined,\n style:\n orientation === 'vertical'\n ? { height: sliderTrackPosition, width: size }\n : { width: sliderTrackPosition, height: size },\n bg: `${colorScheme}.600`,\n _dark: {\n bg: `${colorScheme}.500`,\n },\n };\n },\n defaultProps: {\n colorScheme: 'primary',\n },\n};\n\nconst sizes = {\n lg: { thumbSize: 6, sliderTrackHeight: 6, _interactionBox: { p: '3' } },\n md: { thumbSize: 5, sliderTrackHeight: 5, _interactionBox: { p: '2.5' } },\n sm: { thumbSize: 4, sliderTrackHeight: 4, _interactionBox: { p: '2' } },\n};\n\nexport const Slider = {\n baseStyle: (props: any) => {\n return {\n alignItems: 'center',\n justifyContent: 'center',\n height: props.orientation === 'vertical' ? '100%' : undefined,\n width: props.orientation !== 'vertical' ? '100%' : undefined,\n _disabled: {\n opacity: 0.4,\n _web: {\n cursor: 'not-allowed',\n },\n },\n };\n },\n defaultProps: {\n size: 'sm',\n },\n sizes,\n};\n","import {\n Accordion,\n AccordionItem,\n AccordionIcon,\n AccordionSummary,\n AccordionDetails,\n} from './accordion';\nimport {\n Actionsheet,\n ActionsheetContent,\n // ActionsheetHeader,\n // ActionsheetFooter,\n ActionsheetItem,\n} from './actionsheet';\nimport { Select, SelectItem } from './select';\nimport { Alert, AlertIcon } from './alert';\nimport AspectRatio from './aspect-ratio';\nimport Avatar from './avatar';\nimport AvatarBadge from './avatar-badge';\nimport AvatarGroup from './avatar-group';\nimport Badge from './badge';\nimport { Breadcrumb, BreadcrumbText, BreadcrumbIcon } from './breadcrumb';\nimport Button, { ButtonGroup } from './button';\nimport Card from './card';\nimport Center from './center';\nimport Checkbox from './checkbox';\nimport CheckboxGroup from './checkbox-group';\nimport Box from './box';\nimport FlatList from './flatList';\nimport KeyboardAvoidingView from './keyboardAvoidingView';\nimport ScrollView from './scrollView';\nimport SectionList from './sectionList';\nimport StatusBar from './statusBar';\nimport CircularProgress from './circular-progress';\nimport Code from './code';\nimport Container from './container';\nimport HStack from './hstack';\nimport VStack from './vstack';\nimport Divider from './divider';\nimport Circle from './circle';\nimport SimpleGrid from './simple-grid';\nimport {\n FormControl,\n FormControlLabel,\n FormControlHelperText,\n FormControlErrorMessage,\n} from './form-control';\nimport Heading from './heading';\nimport Icon from './icon';\nimport IconButton from './icon-button';\nimport { Image } from './image';\nimport { Input } from './input';\nimport { Tooltip } from './tooltip';\nimport Kbd from './kbd';\nimport Link from './link';\nimport { default as Menu, MenuGroup, MenuItem } from './menu';\nimport {\n Modal,\n ModalContent,\n ModalHeader,\n ModalBody,\n ModalFooter,\n ModalOverlay,\n ModalCloseButton,\n} from './modal';\nimport {\n AlertDialog,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogBody,\n AlertDialogFooter,\n AlertDialogOverlay,\n AlertDialogCloseButton,\n} from './alert-dialog';\nimport * as PopoverComponentTheme from './popover';\nimport { default as NumberInput, NumberInputStepper } from './number-input';\nimport PinInput from './pin-input';\nimport Pressable from './pressable';\nimport Progress from './progress';\nimport Radio from './radio';\nimport RadioGroup from './radio-group';\nimport { Skeleton, SkeletonText } from './skeleton';\nimport Spinner from './spinner';\nimport Stat from './stat';\nimport Switch from './switch';\nimport Tabs from './tabs';\nimport Tag from './tag';\nimport Text from './text';\nimport AppBar from './app-bar';\nimport TextArea from './textarea';\nimport { TextField } from './textField';\nimport { Toast } from './toast';\nimport { Fade, ScaleFade, Slide, SlideFade } from './transitions';\nimport { List, ListItem, ListIcon } from './list';\nimport { TypeAheadSearchItem } from './typeahead';\nimport { Wrap } from './wrap';\nimport { Flex, Spacer } from './flex';\nimport Stack from './stack';\nimport Square from './square';\nimport View from './view';\nimport ZStack from './zstack';\nimport FAB from './fab';\nimport { SliderTrack, Slider, SliderThumb, SliderFilledTrack } from './slider';\nimport InputLeftAddon from './inputleftaddon';\nimport InputRightAddon from './inputrightaddon';\nexport default {\n FlatList,\n KeyboardAvoidingView,\n ScrollView,\n SectionList,\n StatusBar,\n Accordion,\n AccordionItem,\n AccordionIcon,\n AccordionSummary,\n AccordionDetails,\n Actionsheet,\n ActionsheetContent,\n // ActionsheetHeader,\n // ActionsheetFooter,\n ActionsheetItem,\n Alert,\n // AlertDescription,\n // AlertTitle,\n AlertIcon,\n AspectRatio,\n Avatar,\n AvatarBadge,\n AvatarGroup,\n Badge,\n Box,\n Breadcrumb,\n BreadcrumbText,\n BreadcrumbIcon,\n Button,\n ButtonGroup,\n Card,\n Center,\n Circle,\n Checkbox,\n CheckboxGroup,\n CircularProgress,\n Code,\n Container,\n Divider,\n Fade,\n FAB,\n Flex,\n Spacer,\n FormControl,\n FormControlLabel,\n FormControlHelperText,\n FormControlErrorMessage,\n Heading,\n HStack,\n VStack,\n Icon,\n IconButton,\n Image,\n Input,\n InputLeftAddon,\n InputRightAddon,\n Kbd,\n Link,\n List,\n ListItem,\n ListIcon,\n Menu,\n MenuGroup,\n MenuItem,\n Modal,\n ModalContent,\n ModalHeader,\n ModalBody,\n ModalFooter,\n ModalOverlay,\n ModalCloseButton,\n AlertDialog,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogBody,\n AlertDialogFooter,\n AlertDialogOverlay,\n AlertDialogCloseButton,\n NumberInput,\n NumberInputStepper,\n PinInput,\n Pressable,\n ...PopoverComponentTheme,\n Progress,\n Radio,\n RadioGroup,\n ScaleFade,\n Select,\n SelectItem,\n SimpleGrid,\n Skeleton,\n SkeletonText,\n SliderFilledTrack,\n SliderThumb,\n SliderTrack,\n Slider,\n Slide,\n SlideFade,\n Spinner,\n Square,\n Stack,\n Stat,\n Switch,\n Tabs,\n Tag,\n Text,\n AppBar,\n TextArea,\n TextField,\n Toast,\n TypeAheadSearchItem,\n View,\n Wrap,\n ZStack,\n Tooltip,\n};\n","// Actionsheet\nexport const Actionsheet = {\n defaultProps: {\n size: 'full',\n justifyContent: 'flex-end',\n animationPreset: 'slide',\n },\n};\n\n// ActionsheetContent\nexport const ActionsheetContent = {\n baseStyle: () => ({\n alignItems: 'center',\n px: 2,\n py: 2,\n borderRadius: 'none',\n roundedTop: 20,\n _web: {\n userSelect: 'none',\n },\n _dragIndicator: {\n height: 1,\n width: 10,\n borderRadius: 2,\n bg: 'muted.500',\n },\n\n _dark: {\n _dragIndicator: {\n bg: 'muted.400',\n },\n },\n\n _dragIndicatorWrapper: {\n pt: 3,\n pb: 3,\n mt: -2,\n width: '100%',\n alignItems: 'center',\n collapsable: false,\n },\n _dragIndicatorWrapperOffSet: {\n py: 2,\n collapsable: false,\n },\n }),\n};\n\n// ActionsheetItem\nexport const ActionsheetItem = {\n baseStyle: () => ({\n width: '100%',\n justifyContent: 'flex-start',\n _stack: {\n space: 4,\n },\n p: 4,\n _text: {\n color: 'text.900',\n fontSize: 'md',\n fontWeight: 'normal',\n },\n _disabled: {\n opacity: 40,\n },\n\n bg: 'muted.50',\n _icon: {\n color: 'muted.500',\n },\n\n _hover: {\n bg: 'muted.200',\n },\n _pressed: {\n bg: 'muted.400',\n },\n _focusVisible: {\n _web: {\n outlineWidth: '0',\n style: { boxShadow: `none` },\n bg: 'muted.300',\n },\n bg: 'muted.300',\n },\n\n _dark: {\n bg: 'muted.800',\n _icon: {\n color: 'muted.400',\n },\n _text: {\n color: 'muted.50',\n },\n _hover: {\n bg: 'muted.700',\n },\n _pressed: {\n bg: 'muted.500',\n },\n _focusVisible: {\n _web: {\n outlineWidth: '0',\n style: { boxShadow: `none` },\n bg: 'muted.600',\n },\n },\n },\n }),\n};\n","const placementProps: any = {\n 'top-right': { top: 4, right: 4, position: 'absolute' },\n 'top-left': { top: 4, left: 4, position: 'absolute' },\n 'bottom-right': { bottom: 4, right: 4, position: 'absolute' },\n 'bottom-left': { bottom: 4, left: 4, position: 'absolute' },\n};\nconst baseStyle = {\n shadow: 7,\n rounded: 'full',\n zIndex: 20,\n placementProps,\n px: 4,\n py: 4,\n};\nconst defaultProps = {\n renderInPortal: true,\n variant: 'solid',\n colorScheme: 'primary',\n placement: 'bottom-right',\n};\n\nexport default { baseStyle, defaultProps };\n","export const Flex = {\n baseStyle: {\n display: 'flex',\n flexDirection: 'column',\n },\n};\n\nexport const Spacer = {\n baseStyle: {\n flexGrow: 1,\n },\n};\n","// FormControl\nexport const FormControl = {\n baseStyle: {\n width: '100%',\n },\n};\n\n// FormControlErrorMessage\nexport const FormControlErrorMessage = {\n baseStyle: () => {\n return {\n mt: '2',\n _text: {\n fontSize: 'xs',\n color: 'error.600',\n },\n _stack: { space: 1, alignItems: 'center' },\n _dark: {\n _text: {\n color: 'error.500',\n },\n },\n };\n },\n};\n\n// FormControlLabel\nexport const FormControlLabel = {\n baseStyle: () => {\n return {\n flexDirection: 'row',\n justifyContent: 'flex-start',\n _text: {\n fontSize: 'sm',\n fontWeight: 'medium',\n color: 'text.500',\n },\n my: '1',\n _astrick: {\n color: 'error.600',\n },\n _dark: {\n _text: {\n color: 'text.400',\n },\n _astrick: {\n color: 'error.500',\n },\n },\n };\n },\n};\n\n// FormControlHelperText\nexport const FormControlHelperText = {\n baseStyle: () => {\n return {\n mt: '2',\n _text: {\n fontSize: 'xs',\n color: 'text.500',\n },\n _dark: {\n _text: {\n color: 'text.400',\n },\n },\n };\n },\n};\n","const baseStyle = () => {\n return {\n // roundedLeft: '4',\n p: '2',\n borderWidth: '1',\n borderRightWidth: '0',\n borderLeftRadius: 'sm',\n _text: {\n color: 'text.900',\n fontWeight: 400,\n },\n alignItems: 'center',\n justifyContent: 'center',\n bg: 'muted.50',\n borderColor: 'muted.300',\n\n _dark: {\n bg: 'muted.800',\n borderColor: 'muted.700',\n _text: {\n color: 'text.50',\n },\n },\n };\n};\n\nexport default { baseStyle };\n","const baseStyle = () => {\n return {\n // roundedRight: '4',\n p: '2',\n borderWidth: '1',\n borderLeftWidth: '0',\n borderRightRadius: 'sm',\n _text: {\n color: 'text.900',\n fontWeight: 400,\n },\n alignItems: 'center',\n justifyContent: 'center',\n bg: 'muted.50',\n borderColor: 'muted.300',\n\n _dark: {\n bg: 'muted.800',\n borderColor: 'muted.700',\n _text: {\n color: 'text.50',\n },\n },\n };\n};\n\nexport default { baseStyle };\n","import { mode } from '../tools';\n// List\nexport const List = {\n baseStyle: (props: Record) => {\n return {\n py: 2,\n borderWidth: 1,\n borderColor: 'gray.300',\n _hover: { bg: mode('primary.100', 'primary.700')(props) },\n };\n },\n};\n\n// ListItem\nexport const ListItem = {\n baseStyle: {\n // borderTopWidth: 1,\n py: 2,\n borderColor: 'gray.300',\n },\n defaultProps: {\n start: 1,\n },\n};\n\n// ListIcon\nexport const ListIcon = {\n baseStyle: {\n mr: 8,\n size: 'md',\n },\n};\n","export const Select = {\n baseStyle: () => {\n return {\n selection: {\n start: 0,\n },\n\n _customDropdownIconProps: {\n color: 'muted.500',\n mr: '3',\n size: '6',\n p: '1',\n },\n _hover: {\n borderColor: 'primary.600',\n },\n _focus: {\n borderColor: 'primary.600',\n },\n _disabled: {\n bg: 'muted.100',\n placeholderTextColor: 'muted.700',\n },\n _invalid: {\n borderColor: 'error.600',\n },\n\n _dark: {\n _customDropdownIconProps: { color: 'muted.400', mr: '3' },\n _hover: {\n borderColor: 'primary.500',\n },\n _focus: {\n borderColor: 'primary.500',\n },\n _disabled: {\n bg: 'muted.800',\n opacity: '80',\n placeholderTextColor: 'text.50',\n },\n _invalid: {\n borderColor: 'error.500',\n },\n },\n\n _webSelect: {\n style: {\n appearance: 'none',\n WebkitAppearance: 'none',\n MozAppearance: 'none',\n position: 'absolute',\n width: '100%',\n height: '100%',\n opacity: 0,\n zIndex: 1,\n },\n },\n _web: {\n pointerEvents: 'none',\n },\n\n _actionSheetBody: {\n w: '100%',\n },\n _actionSheetContent: {},\n };\n },\n defaultProps: {\n optimized: true,\n },\n};\n\n// SelectIcon - only for custom variant\nexport const SelectItem = {\n baseStyle: {\n p: '1',\n px: '2',\n borderRadius: '0',\n minH: '0',\n },\n};\n","// Skeleton\nexport const Skeleton = {\n baseStyle: () => {\n return {\n startColor: 'muted.200',\n _dark: {\n startColor: 'muted.600',\n },\n endColor: 'transparent',\n overflow: 'hidden',\n fadeDuration: 0.1,\n speed: 1.0,\n h: '10',\n w: '100%',\n };\n },\n};\n\n// SkeletonText\nexport const SkeletonText = {\n baseStyle: () => {\n return {\n startColor: 'muted.200',\n _dark: {\n startColor: 'muted.600',\n },\n endColor: 'transparent',\n fadeDuration: 0.1,\n w: '100%',\n speed: 1.0,\n flexDirection: 'column',\n _line: {\n h: 3,\n rounded: 'full',\n },\n };\n },\n defaultProps: {\n lines: 3,\n space: 3,\n },\n};\n","export default {\n baseStyle: {\n color: 'primary.600',\n },\n sizes: {\n sm: 'small',\n lg: 'large',\n },\n defaultProps: {\n size: 'small',\n },\n};\n","// Wrap\nexport const Wrap = {};\n","const borderWidths = {\n '0': 0,\n '1': '1px',\n '2': '2px',\n '4': '4px',\n '8': '8px',\n};\n\nexport type IBorderWidth = keyof typeof borderWidths;\n\nexport default borderWidths;\n","const breakpoints = {\n 'base': 0,\n 'sm': 480,\n 'md': 768,\n 'lg': 992,\n 'xl': 1280,\n '2xl': 1536,\n};\nexport type IBreakpoint = keyof typeof breakpoints;\n\nexport default breakpoints;\n","// import type { ITheme } from '..';\nimport type { Leaves } from './types';\n\nexport interface IColorHues {\n 50: string;\n 100: string;\n 200: string;\n 300: string;\n 400: string;\n 500: string;\n 600: string;\n 700: string;\n 800: string;\n 900: string;\n}\n\nconst colors = {\n contrastThreshold: 7,\n // Singleton colors\n white: '#FFFFFF',\n black: '#000000',\n lightText: '#FFFFFF',\n darkText: '#000000',\n // Primary colors\n rose: {\n 50: '#fff1f2',\n 100: '#ffe4e6',\n 200: '#fecdd3',\n 300: '#fda4af',\n 400: '#fb7185',\n 500: '#f43f5e',\n 600: '#e11d48',\n 700: '#be123c',\n 800: '#9f1239',\n 900: '#881337',\n },\n pink: {\n 50: '#fdf2f8',\n 100: '#fce7f3',\n 200: '#fbcfe8',\n 300: '#f9a8d4',\n 400: '#f472b6',\n 500: '#ec4899',\n 600: '#db2777',\n 700: '#be185d',\n 800: '#9d174d',\n 900: '#831843',\n },\n fuchsia: {\n 50: '#fdf4ff',\n 100: '#fae8ff',\n 200: '#f5d0fe',\n 300: '#f0abfc',\n 400: '#e879f9',\n 500: '#d946ef',\n 600: '#c026d3',\n 700: '#a21caf',\n 800: '#86198f',\n 900: '#701a75',\n },\n purple: {\n 50: '#faf5ff',\n 100: '#f3e8ff',\n 200: '#e9d5ff',\n 300: '#d8b4fe',\n 400: '#c084fc',\n 500: '#a855f7',\n 600: '#9333ea',\n 700: '#7e22ce',\n 800: '#6b21a8',\n 900: '#581c87',\n },\n violet: {\n 50: '#f5f3ff',\n 100: '#ede9fe',\n 200: '#ddd6fe',\n 300: '#c4b5fd',\n 400: '#a78bfa',\n 500: '#8b5cf6',\n 600: '#7c3aed',\n 700: '#6d28d9',\n 800: '#5b21b6',\n 900: '#4c1d95',\n },\n indigo: {\n 50: '#eef2ff',\n 100: '#e0e7ff',\n 200: '#c7d2fe',\n 300: '#a5b4fc',\n 400: '#818cf8',\n 500: '#6366f1',\n 600: '#4f46e5',\n 700: '#4338ca',\n 800: '#3730a3',\n 900: '#312e81',\n },\n blue: {\n 50: '#eff6ff',\n 100: '#dbeafe',\n 200: '#bfdbfe',\n 300: '#93c5fd',\n 400: '#60a5fa',\n 500: '#3b82f6',\n 600: '#2563eb',\n 700: '#1d4ed8',\n 800: '#1e40af',\n 900: '#1e3a8a',\n },\n lightBlue: {\n 50: '#f0f9ff',\n 100: '#e0f2fe',\n 200: '#bae6fd',\n 300: '#7dd3fc',\n 400: '#38bdf8',\n 500: '#0ea5e9',\n 600: '#0284c7',\n 700: '#0369a1',\n 800: '#075985',\n 900: '#0c4a6e',\n },\n darkBlue: {\n 50: '#dbf4ff',\n 100: '#addbff',\n 200: '#7cc2ff',\n 300: '#4aa9ff',\n 400: '#1a91ff',\n 500: '#0077e6',\n 600: '#005db4',\n 700: '#004282',\n 800: '#002851',\n 900: '#000e21',\n },\n cyan: {\n 50: '#ecfeff',\n 100: '#cffafe',\n 200: '#a5f3fc',\n 300: '#67e8f9',\n 400: '#22d3ee',\n 500: '#06b6d4',\n 600: '#0891b2',\n 700: '#0e7490',\n 800: '#155e75',\n 900: '#164e63',\n },\n teal: {\n 50: '#f0fdfa',\n 100: '#ccfbf1',\n 200: '#99f6e4',\n 300: '#5eead4',\n 400: '#2dd4bf',\n 500: '#14b8a6',\n 600: '#0d9488',\n 700: '#0f766e',\n 800: '#115e59',\n 900: '#134e4a',\n },\n emerald: {\n 50: '#ecfdf5',\n 100: '#d1fae5',\n 200: '#a7f3d0',\n 300: '#6ee7b7',\n 400: '#34d399',\n 500: '#10b981',\n 600: '#059669',\n 700: '#047857',\n 800: '#065f46',\n 900: '#064e3b',\n },\n green: {\n 50: '#f0fdf4',\n 100: '#dcfce7',\n 200: '#bbf7d0',\n 300: '#86efac',\n 400: '#4ade80',\n 500: '#22c55e',\n 600: '#16a34a',\n 700: '#15803d',\n 800: '#166534',\n 900: '#14532d',\n },\n lime: {\n 50: '#f7fee7',\n 100: '#ecfccb',\n 200: '#d9f99d',\n 300: '#bef264',\n 400: '#a3e635',\n 500: '#84cc16',\n 600: '#65a30d',\n 700: '#4d7c0f',\n 800: '#3f6212',\n 900: '#365314',\n },\n yellow: {\n 50: '#fefce8',\n 100: '#fef9c3',\n 200: '#fef08a',\n 300: '#fde047',\n 400: '#facc15',\n 500: '#eab308',\n 600: '#ca8a04',\n 700: '#a16207',\n 800: '#854d0e',\n 900: '#713f12',\n },\n amber: {\n 50: '#fffbeb',\n 100: '#fef3c7',\n 200: '#fde68a',\n 300: '#fcd34d',\n 400: '#fbbf24',\n 500: '#f59e0b',\n 600: '#d97706',\n 700: '#b45309',\n 800: '#92400e',\n 900: '#78350f',\n },\n orange: {\n 50: '#fff7ed',\n 100: '#ffedd5',\n 200: '#fed7aa',\n 300: '#fdba74',\n 400: '#fb923c',\n 500: '#f97316',\n 600: '#ea580c',\n 700: '#c2410c',\n 800: '#9a3412',\n 900: '#7c2d12',\n },\n red: {\n 50: '#fef2f2',\n 100: '#fee2e2',\n 200: '#fecaca',\n 300: '#fca5a5',\n 400: '#f87171',\n 500: '#ef4444',\n 600: '#dc2626',\n 700: '#b91c1c',\n 800: '#991b1b',\n 900: '#7f1d1d',\n },\n warmGray: {\n 50: '#fafaf9',\n 100: '#f5f5f4',\n 200: '#e7e5e4',\n 300: '#d6d3d1',\n 400: '#a8a29e',\n 500: '#78716c',\n 600: '#57534e',\n 700: '#44403c',\n 800: '#292524',\n 900: '#1c1917',\n },\n trueGray: {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#e5e5e5',\n 300: '#d4d4d4',\n 400: '#a3a3a3',\n 500: '#737373',\n 600: '#525252',\n 700: '#404040',\n 800: '#262626',\n 900: '#171717',\n },\n gray: {\n 50: '#fafafa',\n 100: '#f4f4f5',\n 200: '#e4e4e7',\n 300: '#d4d4d8',\n 400: '#a1a1aa',\n 500: '#71717a',\n 600: '#52525b',\n 700: '#3f3f46',\n 800: '#27272a',\n 900: '#18181b',\n },\n coolGray: {\n 50: '#f9fafb',\n 100: '#f3f4f6',\n 200: '#e5e7eb',\n 300: '#d1d5db',\n 400: '#9ca3af',\n 500: '#6b7280',\n 600: '#4b5563',\n 700: '#374151',\n 800: '#1f2937',\n 900: '#111827',\n },\n blueGray: {\n 50: '#f8fafc',\n 100: '#f1f5f9',\n 200: '#e2e8f0',\n 300: '#cbd5e1',\n 400: '#94a3b8',\n 500: '#64748b',\n 600: '#475569',\n 700: '#334155',\n 800: '#1e293b',\n 900: '#0f172a',\n },\n dark: {\n 50: '#18181b',\n 100: '#27272a',\n 200: '#3f3f46',\n 300: '#52525b',\n 400: '#71717a',\n 500: '#a1a1aa',\n 600: '#d4d4d8',\n 700: '#e4e4e7',\n 800: '#f4f4f5',\n 900: '#fafafa',\n },\n text: {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#e5e5e5',\n 300: '#d4d4d4',\n 400: '#a3a3a3',\n 500: '#737373',\n 600: '#525252',\n 700: '#404040',\n 800: '#262626',\n 900: '#171717',\n },\n // Derived colors\n danger: {} as IColorHues,\n error: {} as IColorHues,\n success: {} as IColorHues,\n warning: {} as IColorHues,\n muted: {} as IColorHues,\n primary: {} as IColorHues,\n info: {} as IColorHues,\n secondary: {} as IColorHues,\n light: {} as IColorHues,\n tertiary: {} as IColorHues,\n};\n\ncolors.danger = colors.red;\ncolors.error = colors.rose;\ncolors.success = colors.emerald;\ncolors.warning = colors.orange;\ncolors.muted = colors.trueGray;\ncolors.primary = colors.cyan;\ncolors.secondary = colors.pink;\ncolors.tertiary = colors.green;\ncolors.info = colors.lightBlue;\ncolors.light = colors.warmGray;\n\nexport default colors;\n// export type IColors = Leaves;\nexport type IColors = Leaves;\n","const radii = {\n 'none': 0,\n 'xs': 2,\n 'sm': 4,\n 'md': 6,\n 'lg': 8,\n 'xl': 12,\n '2xl': 16,\n '3xl': 24,\n 'full': 9999,\n};\n\nexport type IRadii = keyof typeof radii;\n\nexport default radii;\n","import colors from './colors';\nconst shadow = {\n 'none': {\n shadowColor: 'transparent',\n shadowOffset: {\n width: 0,\n height: 0,\n },\n shadowOpacity: 0,\n shadowRadius: 0,\n elevation: 0,\n },\n '0': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 1,\n },\n shadowOpacity: 0.18,\n shadowRadius: 1.0,\n elevation: 1,\n },\n '1': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 1,\n },\n shadowOpacity: 0.2,\n shadowRadius: 1.41,\n elevation: 2,\n },\n '2': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 1,\n },\n shadowOpacity: 0.22,\n shadowRadius: 2.22,\n elevation: 3,\n },\n '3': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 2,\n },\n shadowOpacity: 0.23,\n shadowRadius: 2.62,\n elevation: 4,\n },\n '4': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 2,\n },\n shadowOpacity: 0.25,\n shadowRadius: 3.84,\n elevation: 5,\n },\n '5': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 3,\n },\n shadowOpacity: 0.27,\n shadowRadius: 4.65,\n elevation: 6,\n },\n '6': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 3,\n },\n shadowOpacity: 0.29,\n shadowRadius: 4.65,\n elevation: 7,\n },\n '7': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 4,\n },\n shadowOpacity: 0.3,\n shadowRadius: 4.65,\n elevation: 8,\n },\n '8': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 4,\n },\n shadowOpacity: 0.32,\n shadowRadius: 5.46,\n elevation: 9,\n },\n '9': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 5,\n },\n shadowOpacity: 0.34,\n shadowRadius: 6.27,\n elevation: 10,\n },\n};\n\nexport type IShadow = keyof typeof shadow;\nexport default shadow;\n","export const spacing = {\n 'px': '1px',\n '0': 0,\n '0.5': 2,\n '1': 4,\n '1.5': 6,\n '2': 8,\n '2.5': 10,\n '3': 12,\n '3.5': 14,\n '4': 16,\n '5': 20,\n '6': 24,\n '7': 28,\n '8': 32,\n '9': 36,\n '10': 40,\n '12': 48,\n '16': 64,\n '20': 80,\n '24': 96,\n '32': 128,\n '40': 160,\n '48': 192,\n '56': 224,\n '64': 256,\n '72': 288,\n '80': 320,\n '96': 384,\n '1/2': '50%',\n '1/3': '33.333%',\n '2/3': '66.666%',\n '1/4': '25%',\n '2/4': '50%',\n '3/4': '75%',\n '1/5': '20%',\n '2/5': '40%',\n '3/5': '60%',\n '4/5': '80%',\n '1/6': '16.666%',\n '2/6': '33.333%',\n '3/6': '50%',\n '4/6': '66.666%',\n '5/6': '83.333%',\n 'full': '100%',\n};\n\nexport type ISpacing = keyof typeof spacing;\n","import { spacing } from './space';\n\nconst container = {\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n};\n\nconst sizes = {\n ...spacing,\n ...{\n '3xs': 224,\n '2xs': 256,\n 'xs': 320,\n 'sm': 384,\n 'md': 448,\n 'lg': 512,\n 'xl': 576,\n '2xl': 672,\n },\n container,\n};\n\nexport type ISizes = keyof typeof sizes;\nexport default sizes;\n","const opacity = {\n 0: 0,\n 5: 0.05,\n 10: 0.1,\n 20: 0.2,\n 25: 0.25,\n 30: 0.3,\n 40: 0.4,\n 50: 0.5,\n 60: 0.6,\n 70: 0.7,\n 75: 0.75,\n 80: 0.8,\n 90: 0.9,\n 95: 0.95,\n 100: 1,\n};\nexport type IOpacity = keyof typeof opacity;\n\nexport default opacity;\n","import borderWidths from './borders';\nimport breakpoints from './breakpoints';\nimport colors from './colors';\nimport radii from './radius';\nimport shadows from './shadows';\nimport sizes from './sizes';\nimport { spacing } from './space';\nimport typography from './typography';\nimport opacity from './opacity';\n\nconst theme = {\n borderWidths,\n breakpoints,\n colors,\n radii,\n ...typography,\n sizes,\n space: spacing,\n shadows,\n opacity,\n};\n\nexport const themePropertyMap: any = {\n borderRadius: 'radii',\n color: 'colors',\n letterSpacing: 'letterSpacings',\n lineHeight: 'lineHeights',\n fontFamily: 'fonts',\n fontSize: 'fontSizes',\n fontWeight: 'fontWeights',\n size: 'sizes',\n space: 'space',\n border: 'borders',\n shadow: 'shadows',\n};\n\nexport default theme;\n","const typography = {\n letterSpacings: {\n 'xs': '-0.05em',\n 'sm': '-0.025em',\n 'md': 0,\n 'lg': '0.025em',\n 'xl': '0.05em',\n '2xl': '0.1em',\n },\n lineHeights: {\n '2xs': '1em',\n 'xs': '1.125em',\n 'sm': '1.25em',\n 'md': '1.375em',\n 'lg': '1.5em',\n 'xl': '1.75em',\n '2xl': '2em',\n '3xl': '2.5em',\n '4xl': '3em',\n '5xl': '4em',\n },\n fontConfig: {\n // Roboto: {\n // 100: {\n // normal: 'Roboto-Light',\n // italic: 'Roboto-LightItalic',\n // },\n // 200: {\n // normal: 'Roboto-Light',\n // italic: 'Roboto-LightItalic',\n // },\n // 300: {\n // normal: 'Roboto-Light',\n // italic: 'Roboto-LightItalic',\n // },\n // 400: {\n // normal: 'Roboto-Regular',\n // italic: 'Roboto-Italic',\n // },\n // 500: {\n // normal: 'Roboto-Medium',\n // italic: 'Roboto-MediumItalic',\n // },\n // 600: {\n // normal: 'Roboto-Medium',\n // italic: 'Roboto-MediumItalic',\n // },\n // 700: {\n // normal: 'Roboto-Bold',\n // italic: 'Roboto-BoldItalic',\n // },\n // 800: {\n // normal: 'Roboto-Bold',\n // italic: 'Roboto-BoldItalic',\n // },\n // 900: {\n // normal: 'Roboto-Bold',\n // italic: 'Roboto-BoldItalic',\n // },\n // },\n // Montserrat: {\n // 100: {\n // normal: 'Montserrat-Light',\n // italic: 'Montserrat-LightItalic',\n // },\n // 200: {\n // normal: 'Montserrat-Light',\n // italic: 'Montserrat-LightItalic',\n // },\n // 300: {\n // normal: 'Montserrat-Light',\n // italic: 'Montserrat-LightItalic',\n // },\n // 400: {\n // normal: 'Montserrat-Regular',\n // italic: 'Montserrat-Italic',\n // },\n // 500: {\n // normal: 'Montserrat-Medium',\n // italic: 'Montserrat-MediumItalic',\n // },\n // 600: {\n // normal: 'Montserrat-SemiBold',\n // italic: 'Montserrat-SemiBoldItalic',\n // },\n // 700: {\n // normal: 'Montserrat-Bold',\n // italic: 'Montserrat-BoldItalic',\n // },\n // 800: {\n // normal: 'Montserrat-ExtraBold',\n // italic: 'Montserrat-ExtraBoldItalic',\n // },\n // 900: {\n // normal: 'Montserrat-Black',\n // italic: 'Montserrat-BlackItalic',\n // },\n // },\n },\n fontWeights: {\n hairline: 100,\n thin: 200,\n light: 300,\n normal: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n extrabold: 800,\n black: 900,\n extraBlack: 950,\n },\n fonts: {\n heading: undefined,\n body: undefined,\n mono: undefined,\n },\n fontSizes: {\n '2xs': 10,\n 'xs': 12,\n 'sm': 14,\n 'md': 16,\n 'lg': 18,\n 'xl': 20,\n '2xl': 24,\n '3xl': 30,\n '4xl': 36,\n '5xl': 48,\n '6xl': 60,\n '7xl': 72,\n '8xl': 96,\n '9xl': 128,\n },\n};\n\nexport type ITypography = typeof typography;\nexport type IFontSize = keyof typeof typography.fontSizes;\nexport type ILetterSpacing = keyof typeof typography.letterSpacings;\nexport type ILineHeight = keyof typeof typography.lineHeights;\nexport type IFontWeight = keyof typeof typography.fontWeights;\n// export type IFont = typeof typography.fonts;\nexport interface IFont {\n heading?: string;\n body?: string;\n mono?: string;\n}\n\nexport default typography;\n","import get from 'lodash.get';\nimport isEmpty from 'lodash.isempty';\nimport Color from 'tinycolor2';\nimport type { Dict } from './utils';\n\nexport function mode(light: any, dark: any) {\n return (props: any) => (props.colorMode === 'dark' ? dark : light);\n}\n\nexport const transparentize = (color: string, opacity: number) => (\n theme: Dict\n) => {\n const raw = getColor(theme, color);\n return Color(raw).setAlpha(opacity).toRgbString();\n};\n\nexport const getColor = (theme: Dict, color: string, fallback?: string) => {\n const hex = get(theme, `colors.${color}`, color);\n const isValid = Color(hex).isValid();\n return isValid ? hex : fallback;\n};\n\nexport const tone = (color: string) => (theme: Dict) => {\n const hex = getColor(theme, color);\n const isDark = Color(hex).isDark();\n return isDark ? 'dark' : 'light';\n};\n\nexport const isDark = (color: string) => (theme: Dict) =>\n tone(color)(theme) === 'dark';\n\nexport const isLight = (color: string) => (theme: Dict) =>\n tone(color)(theme) === 'light';\n\ninterface RandomColorOptions {\n /**\n * If passed, string will be used to generate\n * random color\n */\n string?: string;\n /**\n * List of colors to pick from at random\n */\n colors?: string[];\n}\nexport function randomColor(opts?: RandomColorOptions) {\n const fallback = Color.random().toHexString();\n\n if (!opts || isEmpty(opts)) {\n return fallback;\n }\n\n if (opts.string && opts.colors) {\n return randomColorFromList(opts.string, opts.colors);\n }\n\n if (opts.string && !opts.colors) {\n return randomColorFromString(opts.string);\n }\n\n if (opts.colors && !opts.string) {\n return randomFromList(opts.colors);\n }\n\n return fallback;\n}\n\nfunction randomFromList(list: string[]) {\n return list[Math.floor(Math.random() * list.length)];\n}\n\nfunction randomColorFromList(str: string, list: string[]) {\n let index = 0;\n if (str.length === 0) return list[0];\n for (let i = 0; i < str.length; i++) {\n index = str.charCodeAt(i) + ((index << 5) - index);\n index = index & index;\n }\n index = ((index % list.length) + list.length) % list.length;\n return list[index];\n}\n\nfunction randomColorFromString(str: string) {\n let hash = 0;\n if (str.length === 0) return hash.toString();\n for (let i = 0; i < str.length; i++) {\n hash = str.charCodeAt(i) + ((hash << 5) - hash);\n hash = hash & hash;\n }\n let color = '#';\n for (let j = 0; j < 3; j++) {\n const value = (hash >> (j * 8)) & 255;\n color += ('00' + value.toString(16)).substr(-2);\n }\n return color;\n}\n","import { mode } from '../tools/colors';\n\n// Accordion\nconst accordionBaseStyle = (props: Record) => {\n return {\n borderWidth: 1,\n borderColor: mode('gray.300', 'gray.600')(props),\n borderRadius: 'lg',\n };\n};\nexport const Accordion = {\n baseStyle: accordionBaseStyle,\n};\n\n// AccordionItem\nexport const AccordionItem = {};\n\n// AccordionIcon\nexport const AccordionIcon = {};\n\n// AccordionSummary\nconst accordionSummaryBaseStyle = (props: Record) => {\n return {\n borderTopWidth: 1,\n borderTopColor: mode('gray.300', 'gray.600')(props),\n p: 3,\n _hover: {\n bg: mode('primary.200', 'primary.300')(props),\n },\n _expanded: {\n bg: 'primary.600',\n borderBottomColor: mode('gray.300', 'gray.600')(props),\n _text: { color: 'white' },\n },\n _disabled: {\n bg: mode('gray.200', 'gray.700')(props),\n },\n };\n};\nexport const AccordionSummary = {\n baseStyle: accordionSummaryBaseStyle,\n};\n\n// AccordionDetails\nconst accordionPanelBaseStyle = {\n p: 3,\n};\n\nexport const AccordionDetails = {\n baseStyle: accordionPanelBaseStyle,\n};\n","import { mode } from '../tools';\n// Actionsheet\nexport const Actionsheet = {\n defaultProps: {\n size: 'full',\n justifyContent: 'flex-end',\n animationPreset: 'slide',\n },\n};\n\n// ActionsheetContent\nexport const ActionsheetContent = {\n baseStyle: (props: any) => ({\n alignItems: 'center',\n px: 2,\n py: 2,\n borderRadius: 'none',\n roundedTop: 20,\n _dragIndicator: {\n bg: mode('gray.400', 'gray.400')(props),\n height: 1,\n width: 10,\n borderRadius: 2,\n },\n _dragIndicatorWrapper: {\n pt: 3,\n pb: 3,\n mt: -2,\n width: '100%',\n alignItems: 'center',\n collapsable: false,\n },\n _dragIndicatorWrapperOffSet: {\n py: 2,\n collapsable: false,\n },\n }),\n};\n\n// ActionsheetItem\nexport const ActionsheetItem = {\n baseStyle: (props: any) => ({\n width: '100%',\n justifyContent: 'flex-start',\n p: 4,\n _text: {\n fontSize: 16,\n fontWeight: 'normal',\n color: mode('coolGray.800', 'warmGray.50')(props),\n },\n _pressed: {\n bg: mode('coolGray.300', 'gray.600')(props),\n },\n _hover: {\n bg: mode('coolGray.200', 'gray.500')(props),\n },\n }),\n defaultProps: {\n variant: 'unstyled',\n },\n};\n","import { mode } from '../tools';\nexport const Select = {\n baseStyle: (props: Record) => {\n return {\n _webSelect: {\n appearance: 'none',\n WebkitAppearance: 'none',\n MozAppearance: 'none',\n position: 'absolute',\n width: '100%',\n height: '100%',\n opacity: 0,\n zIndex: 1,\n },\n customDropdownIconProps: {\n size: '6',\n p: '1',\n pl: '0',\n color: 'trueGray.400',\n },\n _web: {\n pointerEvents: 'none',\n },\n _disabled: {\n opacity: '80',\n bg: mode('muted.100', 'muted.700')(props),\n },\n _invalid: {\n borderColor: mode('danger.600', 'danger.300')(props),\n },\n _focus: {\n borderColor: mode('primary.400', 'primary.500')(props),\n },\n _hover: {\n bg: mode('gray.100', 'gray.700')(props),\n },\n _actionSheetBody: {\n w: '100%',\n },\n _actionSheetContent: {},\n };\n },\n defaultProps: {\n optimized: true,\n },\n};\n\n// SelectIcon - only for custom variant\nexport const SelectItem = {\n baseStyle: {\n p: '1',\n px: '2',\n borderRadius: '0',\n minH: '0',\n },\n};\n","import omitBy from 'lodash.omitby';\nimport isNil from 'lodash.isnil';\nimport pick from 'lodash.pick';\nimport omit from 'lodash.omit';\nimport get from 'lodash.get';\nimport type { IV33xTheme } from '../index';\nimport { Platform } from 'react-native';\n\nexport const stylingProps = {\n margin: [\n 'margin',\n 'm',\n 'marginTop',\n 'mt',\n 'marginRight',\n 'mr',\n 'marginBottom',\n 'mb',\n 'marginLeft',\n 'ml',\n 'marginX',\n 'mx',\n 'marginY',\n 'my',\n ],\n padding: [\n 'padding',\n 'p',\n 'paddingTop',\n 'pt',\n 'paddingRight',\n 'pr',\n 'paddingBottom',\n 'pb',\n 'paddingLeft',\n 'pl',\n 'paddingX',\n 'px',\n 'paddingY',\n 'py',\n ],\n border: [\n 'border',\n 'borderWidth',\n 'borderStyle',\n 'borderColor',\n 'borderRadius',\n 'borderTop',\n 'borderTopWidth',\n 'borderTopStyle',\n 'borderTopColor',\n 'borderTopLeftRadius',\n 'borderTopRightRadius',\n 'borderRight',\n 'borderRightWidth',\n 'borderRightStyle',\n 'borderRightColor',\n 'borderBottom',\n 'borderBottomWidth',\n 'borderBottomStyle',\n 'borderBottomColor',\n 'borderBottomLeftRadius',\n 'borderBottomRightRadius',\n 'borderLeft',\n 'borderLeftWidth',\n 'borderLeftStyle',\n 'borderLeftColor',\n 'borderX',\n 'borderY',\n ],\n layout: [\n 'width',\n 'w',\n 'height',\n 'h',\n 'display',\n 'minWidth',\n 'minW',\n 'minH',\n 'minHeight',\n 'maxWidth',\n 'maxW',\n 'maxHeight',\n 'maxH',\n 'size',\n 'verticalAlign',\n 'overflow',\n 'overflowX',\n 'overflowY',\n ],\n flexbox: [\n 'alignItems',\n 'alignContent',\n 'justifyItems',\n 'justifyContent',\n 'flexWrap',\n 'flexDirection',\n 'flex',\n 'flexGrow',\n 'flexShrink',\n 'flexBasis',\n 'justifySelf',\n 'alignSelf',\n 'order',\n ],\n position: ['position', 'zIndex', 'top', 'right', 'bottom', 'left'],\n background: ['bg', 'backgroundColor', 'bgColor'],\n};\nexport type Dict = Record;\nexport function omitUndefined(obj: any) {\n return omitBy(obj, isNil);\n}\nexport function getRandomString(length: number) {\n var result = '';\n var characters =\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n var charactersLength = characters.length;\n for (var i = 0; i < length; i++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n return result;\n}\n// Inefficient way for pick, but retains order of props.\nfunction orderedPick(obj: any, values: any) {\n const ret: any = {};\n Object.keys(obj).forEach((key: string) => {\n if (values.includes(key)) {\n ret[key] = obj[key];\n }\n });\n return ret;\n}\nexport function orderedExtractInObject(parent: any, values: Array) {\n return [\n omitUndefined(orderedPick(parent, values)),\n omitUndefined(omit(parent, values)),\n ];\n}\n/**\n *\n * @param parent The object from which data needs to extracted\n * @param values Keys which needs to be extracted\n * @returns [extractedProps, remainingProps]\n */\nexport function extractInObject(parent: any, values: Array) {\n return [\n omitUndefined(pick(parent, values)),\n omitUndefined(omit(parent, values)),\n ];\n}\nexport function getColorFormColorScheme(props: Record) {\n const { theme, colorScheme, isDisabled } = props;\n const simpleColorScheme = colorScheme.split('.')[0];\n if (isDisabled) return 'gray.300';\n else if (simpleColorScheme in theme.colors) {\n return theme.colors[simpleColorScheme][0] === '#'\n ? simpleColorScheme\n : theme.colors[simpleColorScheme][400] ||\n theme.colors[simpleColorScheme][200];\n } else return 'primary.200';\n}\n\n// TODO: This function can be removed.\nexport function getColorScheme(\n props: Record,\n customColorScheme?: string\n) {\n let { theme, colorScheme } = props;\n colorScheme = customColorScheme || colorScheme;\n if (!(colorScheme in theme.colors)) return 'primary';\n else {\n if (typeof theme.colors[colorScheme] === 'object') return colorScheme;\n }\n}\nexport const inValidBreakpointProps = ['style', 'children', 'shadowOffset'];\nexport function hasValidBreakpointFormat(\n breaks: any,\n themeBreakpoints?: any,\n property?: string\n) {\n if (property && inValidBreakpointProps.indexOf(property) !== -1) {\n return false;\n } else if (Array.isArray(breaks)) {\n return breaks.length ? true : false;\n } else if (typeof breaks === 'object' && breaks !== null) {\n const keys = Object.keys(breaks);\n const themeBreakPointKeys = Object.keys(themeBreakpoints);\n for (let i = 0; i < keys.length; i++) {\n if (themeBreakPointKeys.indexOf(keys[i]) === -1) {\n return false;\n }\n }\n return true;\n } else {\n return false;\n }\n}\nexport function findLastValidBreakpoint(\n values: any,\n themeBreakpoints: any,\n currentBreakpoint: number\n) {\n const valArray = Array.isArray(values)\n ? values\n : Object.keys(themeBreakpoints).map((bPoint: string) => values[bPoint]);\n return (\n valArray[currentBreakpoint] ??\n valArray\n .slice(0, currentBreakpoint + 1)\n .filter((v: any) => !isNil(v))\n .pop()\n );\n}\nexport function getClosestBreakpoint(\n values: Record,\n point: number\n) {\n const dimValues = Object.values(values);\n let index = -1;\n let breakpointsObj: any = {};\n for (let i = 0; i < dimValues.length; i++) {\n breakpointsObj[dimValues[i]] = i;\n }\n const breakpoints = Object.keys(breakpointsObj);\n for (let i = 0; i < breakpoints.length; i++) {\n if (parseInt(breakpoints[i]) === point) {\n index = breakpointsObj[breakpoints[i]];\n break;\n } else if (parseInt(breakpoints[i]) > point && i !== 0) {\n index = breakpointsObj[breakpoints[i - 1]];\n break;\n }\n // If windowWidth is greater than last available breakpoint clamp it to last index\n else if (parseInt(breakpoints[i]) < point && i === dimValues.length - 1) {\n index = breakpointsObj[breakpoints[i]];\n break;\n }\n }\n return index;\n}\n\nexport const baseFontSize = 16;\n\nexport const convertAbsoluteToRem = (px: number) => {\n return `${px / baseFontSize}rem`;\n};\n\nexport const convertRemToAbsolute = (rem: number) => {\n return rem * baseFontSize;\n};\n\nexport const convertToDp = (value: number | string): number => {\n const numberRegex = /^\\d+$/;\n\n if (typeof value === 'number') {\n return value;\n } else {\n const isAbsolute = numberRegex.test(value);\n const isPx = !isAbsolute && value.endsWith('px');\n const isRem = !isAbsolute && value.endsWith('rem');\n const isEm = !isAbsolute && value.endsWith('em');\n\n let finalDpValue = 0;\n\n if (isAbsolute || isPx) {\n finalDpValue = parseFloat(value);\n } else if (isEm) {\n finalDpValue = convertRemToAbsolute(parseFloat(value));\n } else if (isRem) {\n finalDpValue = convertRemToAbsolute(parseFloat(value));\n }\n\n return finalDpValue;\n }\n};\n\n/**\n *\n * @param theme\n * @description\n - Converts space/sizes/lineHeights/letterSpacings/fontSizes to `rem` on web if the token value specified is an absolute number.\n - Converts space/sizes/lineHeights/letterSpacings/fontSizes to absolute number on native if the token value specified is in `px` or `rem`\n*/\nexport const platformSpecificSpaceUnits = (theme: IV33xTheme) => {\n const scales = ['space', 'sizes', 'fontSizes'];\n\n const newTheme = { ...theme };\n const isWeb = Platform.OS === 'web';\n scales.forEach((key) => {\n const scale = get(theme, key, {});\n const newScale = { ...scale };\n for (const scaleKey in scale) {\n const val = scale[scaleKey];\n if (typeof val !== 'object') {\n const isAbsolute = typeof val === 'number';\n const isPx = !isAbsolute && val.endsWith('px');\n const isRem = !isAbsolute && val.endsWith('rem');\n\n // If platform is web, we need to convert absolute unit to rem. e.g. 16 to 1rem\n if (isWeb) {\n if (isAbsolute) {\n newScale[scaleKey] = convertAbsoluteToRem(val);\n }\n }\n // If platform is not web, we need to convert px unit to absolute and rem unit to absolute. e.g. 16px to 16. 1rem to 16.\n else {\n if (isRem) {\n newScale[scaleKey] = convertRemToAbsolute(parseFloat(val));\n } else if (isPx) {\n newScale[scaleKey] = parseFloat(val);\n }\n }\n }\n }\n //@ts-ignore\n newTheme[key] = newScale;\n });\n\n return newTheme;\n};\nexport function isResponsiveAnyProp(props: Record, theme: any) {\n if (props) {\n const keys = Object.keys(props);\n for (let i = 0; i < keys.length; i++) {\n if (\n hasValidBreakpointFormat(props[keys[i]], theme.breakpoints, keys[i])\n ) {\n return true;\n }\n }\n }\n\n return false;\n}\n","import { mode, getColor, getColorScheme, transparentize } from '../tools';\n\nfunction getBg(props: Record) {\n let { theme, colorScheme, status, variant } = props;\n\n colorScheme = getColorScheme(\n props,\n colorScheme !== 'primary' ? colorScheme : status\n );\n const lightBg =\n variant === 'solid'\n ? getColor(theme, `${colorScheme}.600`, colorScheme)\n : getColor(theme, `${colorScheme}.100`, colorScheme);\n\n const darkBg =\n variant === 'solid'\n ? getColor(theme, `${colorScheme}.700`, colorScheme)\n : getColor(theme, `${colorScheme}.200`, colorScheme);\n return mode(lightBg, darkBg)(props);\n}\n\nconst variantSubtle = (props: Record) => {\n let { colorScheme, status } = props;\n colorScheme = getColorScheme(\n props,\n colorScheme !== 'primary' ? colorScheme : status\n );\n return {\n bg: getBg(props),\n _icon: { color: mode(`${colorScheme}.600`, `${colorScheme}.700`)(props) },\n };\n};\n\nconst variantOutline = (props: Record) => {\n let { colorScheme, status } = props;\n colorScheme = getColorScheme(\n props,\n colorScheme !== 'primary' ? colorScheme : status\n );\n return {\n borderWidth: 1,\n borderColor: mode(`${colorScheme}.600`, `${colorScheme}.700`)(props),\n _icon: { color: mode(`${colorScheme}.600`, `${colorScheme}.700`)(props) },\n };\n};\nconst variantOutlineLight = (props: Record) => {\n let { colorScheme, status, theme } = props;\n colorScheme = getColorScheme(\n props,\n colorScheme !== 'primary' ? colorScheme : status\n );\n return {\n borderWidth: 1,\n borderColor: transparentize(\n mode(`${colorScheme}.600`, `${colorScheme}.500`)(props),\n 0.2\n )(theme),\n _icon: { color: mode(`${colorScheme}.600`, `${colorScheme}.200`)(props) },\n };\n};\n\nconst variantSolid = (props: Record) => {\n return {\n borderWidth: 6,\n borderColor: 'transparent',\n bg: getBg(props),\n _icon: { color: mode(`coolGray.50`, `warmGray.50`)(props) },\n };\n};\nconst variantLeftAccent = (props: Record) => {\n let { colorScheme, status } = props;\n colorScheme = getColorScheme(\n props,\n colorScheme !== 'primary' ? colorScheme : status\n );\n return {\n borderWidth: 4,\n bg: getBg(props),\n _icon: { color: mode(`${colorScheme}.600`, `${colorScheme}.700`)(props) },\n borderColor: 'transparent',\n borderLeftColor: mode(`${colorScheme}.600`, `${colorScheme}.700`)(props),\n };\n};\nconst variantTopAccent = (props: Record) => {\n let { colorScheme, status } = props;\n colorScheme = getColorScheme(\n props,\n colorScheme !== 'primary' ? colorScheme : status\n );\n return {\n borderWidth: 4,\n borderColor: 'transparent',\n borderTopColor: mode(`${colorScheme}.600`, `${colorScheme}.700`)(props),\n bg: getBg(props),\n _icon: { color: mode(`${colorScheme}.600`, `${colorScheme}.700`)(props) },\n };\n};\n\nconst variants = {\n 'subtle': variantSubtle,\n 'solid': variantSolid,\n 'left-accent': variantLeftAccent,\n 'top-accent': variantTopAccent,\n 'outline': variantOutline,\n 'outline-light': variantOutlineLight,\n};\n\nexport const Alert = {\n baseStyle: {\n alignItems: 'center',\n justifyContent: 'flex-start',\n p: 3,\n space: 3,\n borderRadius: 'sm',\n },\n variants,\n defaultProps: {\n colorScheme: 'primary',\n variant: 'subtle',\n },\n};\n\n// AlertIcon\n\nexport const AlertIcon = {\n baseStyle: {\n size: 4,\n },\n};\n","const baseStyle = {};\nconst defaultProps = {\n ratio: 4 / 3,\n};\nexport default {\n baseStyle,\n defaultProps,\n};\n","import { randomColor, getRandomString, mode } from '../tools';\n\nconst baseStyle = (props: Record) => {\n const { name, ...colorModeProps } = props;\n const bg = name\n ? randomColor({ string: getRandomString(5) + name })\n : 'gray.400';\n const borderColor = mode('gray.800', 'white')(colorModeProps);\n return {\n bg,\n borderColor,\n position: 'relative',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: 'full',\n _text: {\n fontWeight: 600,\n },\n _image: {\n borderRadius: 'full',\n alt: '--',\n _alt: {\n fontWeight: 600,\n },\n style: {\n height: '100%',\n width: '100%',\n },\n },\n };\n};\n\nfunction getSize(size: any, fontSize: string) {\n return {\n width: size,\n height: size,\n _text: {\n fontSize: fontSize,\n },\n };\n}\n\nconst sizes = {\n 'xs': getSize('6', '2xs'),\n 'sm': getSize('8', 'xs'),\n 'md': getSize('12', 'md'),\n 'lg': getSize('16', 'xl'),\n 'xl': getSize('24', '3xl'),\n '2xl': getSize('32', '5xl'),\n};\n\nconst defaultProps = {\n size: 'md',\n};\n\nexport default {\n baseStyle,\n sizes,\n defaultProps,\n};\n","import { mode } from '../tools';\n\nfunction baseStyle(props: Record) {\n return {\n borderRadius: 'full',\n borderWidth: 2,\n borderColor: mode('light.50', 'gray.800')(props),\n bg: mode('gray.600', 'light.100')(props),\n size: 3,\n position: 'absolute',\n right: 0,\n bottom: 0,\n };\n}\n\nexport default { baseStyle };\n","import { mode } from '../tools';\n\nfunction baseStyle({ isVertical, ...props }: Record) {\n return {\n flexDirection: isVertical ? 'column-reverse' : 'row-reverse',\n space: -4,\n _avatar: {\n borderColor: mode('gray.50', 'gray.800')(props),\n borderWidth: 2,\n },\n _hiddenAvatarPlaceholder: {\n bg: mode('gray.600', 'gray.100')(props),\n },\n };\n}\n\nexport default {\n baseStyle,\n defaultProps: {\n isVertical: false,\n },\n};\n","import { mode, getColorScheme } from '../tools';\n\nconst baseStyle = {\n px: '2',\n py: '0.5',\n alignItems: 'center',\n _text: { fontSize: 'xs', fontWeight: 'medium' },\n};\n\nfunction variantSolid(props: Record) {\n const colorScheme = getColorScheme(props);\n return {\n bg: mode(`${colorScheme}.600`, `${colorScheme}.300`)(props),\n _text: { color: mode(`coolGray.100`, `coolGray.800`)(props) },\n borderWidth: '1',\n borderColor: 'transparent',\n borderRadius: '2',\n };\n}\n\nfunction variantSubtle(props: Record) {\n const colorScheme = getColorScheme(props);\n return {\n bg: mode(`${colorScheme}.200`, `${colorScheme}.700`)(props),\n _text: { color: mode(`${colorScheme}.600`, `${colorScheme}.200`)(props) },\n borderWidth: '1',\n borderRadius: '2',\n borderColor: 'transparent',\n };\n}\n\nfunction variantOutline(props: Record) {\n const colorScheme = getColorScheme(props);\n return {\n borderColor: mode(`${colorScheme}.500`, `${colorScheme}.400`)(props),\n _text: { color: mode(`${colorScheme}.500`, `${colorScheme}.400`)(props) },\n borderRadius: '2',\n borderWidth: '1',\n };\n}\n\nconst variants = {\n solid: variantSolid,\n subtle: variantSubtle,\n outline: variantOutline,\n};\n\nconst defaultProps = {\n variant: 'subtle',\n colorScheme: 'coolGray',\n};\n\nexport default {\n baseStyle,\n variants,\n defaultProps,\n};\n","const baseStyle = {\n width: 'auto',\n height: 'auto',\n display: 'flex',\n flexDirection: 'row',\n spacing: '2',\n};\nconst defaultProps = {\n direction: 'row',\n wrap: 'wrap',\n};\n\nexport const Breadcrumb = {\n baseStyle,\n defaultProps,\n};\n\nexport const BreadcrumbText = {\n baseStyle: { ...baseStyle, _current: { fontWeight: 'bold' } },\n defaultProps,\n};\n\nexport const BreadcrumbIcon = {\n baseStyle: { ...baseStyle },\n defaultProps,\n};\n","import { Dict, mode, transparentize } from '../tools';\nimport { Platform } from 'react-native';\nconst disabledTextColor = (props: any) => mode(`muted.500`, `muted.300`)(props);\n\nconst baseStyle = (props: any) => {\n const { primary } = props.theme.colors;\n const focusRing =\n Platform.OS === 'web'\n ? mode(\n { boxShadow: `${primary[400]} 0px 0px 0px 2px`, zIndex: 1 },\n { boxShadow: `${primary[500]} 0px 0px 0px 2px`, zIndex: 1 }\n )(props)\n : {};\n\n return {\n borderRadius: 'sm',\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n _web: {\n cursor: props.isDisabled\n ? 'not-allowed'\n : props.isLoading\n ? 'default'\n : 'pointer',\n },\n _text: {\n fontWeight: 'medium',\n },\n _focusVisible: {\n style: props.variant !== 'unstyled' ? { ...focusRing } : {},\n },\n _stack: {\n space: 2,\n alignItems: 'center',\n },\n _loading: {\n opacity: '80',\n },\n _disabled: {\n opacity: '50',\n },\n _spinner: {\n size: 'sm',\n focusable: false,\n },\n };\n};\n\nfunction variantGhost(props: Dict) {\n const { colorScheme: c } = props;\n if (c === 'muted') {\n return {\n _text: {\n color: disabledTextColor(props),\n },\n };\n }\n\n return {\n _text: {\n color: props.isDisabled\n ? disabledTextColor(props)\n : mode(`${c}.500`, `${c}.300`)(props),\n },\n bg: 'transparent',\n _web: {\n outlineWidth: '0',\n },\n _hover: {\n borderColor: mode(`${c}.500`, `${c}.200`)(props),\n bg: transparentize(mode(`${c}.200`, `${c}.400`)(props), 0.5)(props.theme),\n },\n _focusVisible: {\n borderColor: mode(`${c}.700`, `${c}.200`)(props),\n bg: transparentize(mode(`${c}.200`, `${c}.400`)(props), 0.5)(props.theme),\n },\n _pressed: {\n borderColor: mode(`${c}.600`, `${c}.200`)(props),\n bg: transparentize(mode(`${c}.300`, `${c}.500`)(props), 0.5)(props.theme),\n },\n _spinner: {\n size: 'sm',\n },\n };\n}\n\nfunction variantOutline(props: Dict) {\n const { colorScheme: c } = props;\n const borderColor = mode(`muted.200`, `muted.500`)(props);\n return {\n borderWidth: '1',\n borderColor:\n c === 'muted'\n ? borderColor\n : props.isDisabled\n ? disabledTextColor(props)\n : mode(`${c}.300`, `${c}.300`)(props),\n ...variantGhost(props),\n };\n}\n\nfunction variantSolid(props: Dict) {\n const { colorScheme: c } = props;\n let bg = `${c}.500`;\n if (props.isDisabled) {\n bg = mode(`muted.300`, `muted.500`)(props);\n }\n\n const styleObject = {\n _web: {\n outlineWidth: '0',\n },\n bg,\n _hover: {\n bg: `${c}.600`,\n },\n _pressed: {\n bg: `${c}.700`,\n },\n _focus: {\n bg: `${c}.600`,\n },\n _loading: {\n bg: mode(`warmGray.50`, `${c}.300`)(props),\n opacity: '50',\n },\n _disabled: { bg: mode(`trueGray.300`, `trueGray.600`)(props) },\n };\n\n return styleObject;\n}\n\n// function getBg(props: Record) {\n// const { theme, status, variant } = props;\n// let { colorScheme } = props;\n\n// colorScheme = getColorScheme(\n// props,\n// colorScheme !== 'primary' ? colorScheme : status\n// );\n// const lightBg =\n// variant === 'solid'\n// ? getColor(theme, `${colorScheme}.400`, colorScheme)\n// : getColor(theme, `${colorScheme}.100`, colorScheme);\n\n// const darkBg =\n// variant === 'solid'\n// ? getColor(theme, `${colorScheme}.700`, colorScheme)\n// : getColor(theme, `${colorScheme}.400`, colorScheme);\n// return mode(lightBg, darkBg)(props);\n// }\n\nfunction variantSubtle(props: Dict) {\n const { colorScheme: c } = props;\n let bg = `${c}.100`;\n bg = mode(bg, `${c}.200`)(props);\n let color;\n if (props.isDisabled) {\n bg = mode(`muted.300`, `muted.500`)(props);\n } else {\n color = mode(`${c}.500`, `${c}.600`)(props);\n }\n const styleObject = {\n _text: {\n color: color,\n },\n _web: {\n outlineWidth: '0',\n },\n bg,\n _hover: {\n _text: { color: mode(`${c}.600`, `${c}.700`)(props) },\n bg: mode(`${c}.200`, `${c}.300`)(props),\n },\n _pressed: {\n _text: { color: mode(`${c}.700`, `${c}.800`)(props) },\n bg: mode(`${c}.300`, `${c}.400`)(props),\n },\n };\n\n return styleObject;\n}\n\nfunction variantLink(props: Dict) {\n const { colorScheme: c } = props;\n\n return {\n ...variantGhost(props),\n _text: {\n textDecorationLine: Platform.select({\n ios: 'underline',\n web: 'underline',\n }),\n color:\n c === 'muted'\n ? mode(`muted.800`, `${c}.200`)(props)\n : props.isDisabled\n ? disabledTextColor(props)\n : mode(`${c}.500`, `${c}.300`)(props),\n },\n _hover: {\n _text: {\n color: mode(`${c}.600`, `${c}.400`)(props),\n textDecorationLine: 'underline',\n },\n },\n _focusVisible: {\n _text: {\n color: mode(`${c}.600`, `${c}.400`)(props),\n textDecorationLine: 'underline',\n },\n },\n _pressed: {\n _text: { color: mode(`${c}.700`, `${c}.500`)(props) },\n },\n };\n}\n\nfunction variantUnstyled() {\n return {};\n}\n\nconst variants = {\n ghost: variantGhost,\n outline: variantOutline,\n solid: variantSolid,\n subtle: variantSubtle,\n link: variantLink,\n unstyled: variantUnstyled,\n};\n\nconst sizes = {\n lg: {\n px: '4',\n py: '2',\n _text: {\n fontSize: 'md',\n },\n },\n md: {\n px: '3',\n py: '2',\n _text: {\n fontSize: 'sm',\n },\n },\n sm: {\n px: '2',\n py: '2',\n _text: {\n fontSize: 'xs',\n },\n },\n xs: {\n px: '2',\n py: '2',\n _text: {\n fontSize: '2xs',\n },\n },\n};\n\nconst defaultProps = {\n variant: 'solid',\n size: 'md',\n colorScheme: 'primary',\n};\n\nexport const ButtonGroup = {\n baseStyle: { direction: 'row' },\n defaultProps: { space: 2 },\n};\n\nexport default {\n baseStyle,\n variants,\n sizes,\n defaultProps,\n};\n","const baseStyle = {\n shadow: 4,\n borderRadius: 'md',\n padding: 4,\n overflow: 'hidden',\n};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","// For Square and circle variation\nconst sizes = {\n 'xs': {\n height: 10,\n width: 10,\n },\n 'sm': {\n height: 12,\n width: 12,\n },\n 'md': {\n height: 16,\n width: 16,\n },\n 'lg': {\n height: 24,\n width: 24,\n },\n 'xl': {\n height: 32,\n width: 32,\n },\n '2xl': {\n height: 40,\n width: 40,\n },\n};\n\nexport default {\n baseStyle: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n sizes,\n};\n","import { mode, transparentize } from '../tools';\n\nconst baseStyle = (props: Record) => {\n const { colorScheme, theme } = props;\n\n return {\n justifyContent: 'flex-start',\n flexDirection: 'row',\n borderWidth: 2,\n borderRadius: 'sm',\n borderColor: mode('muted.300', 'muted.600')(props),\n bg: mode('muted.50', 'muted.700')(props), // matching background color\n opacity: 1,\n _web: {\n cursor: 'pointer',\n },\n _stack: {\n direction: 'row',\n alignItems: 'center',\n space: 2,\n _web: {\n cursor: props.isDisabled ? 'not-allowed' : 'pointer',\n },\n },\n _text: {\n ml: 2,\n color: mode('darkText', 'lightText')(props),\n },\n _interactionBox: {\n position: 'absolute',\n borderRadius: 'full',\n p: 5,\n w: '100%',\n h: '100%',\n zIndex: -1,\n _web: {\n transition: 'height 200ms, width 200ms',\n pointerEvents: 'none',\n },\n },\n _hover: {\n _interactionBox: {\n bg: transparentize('muted.200', 0.3)(theme),\n },\n },\n _focus: {\n _interactionBox: {\n bg: transparentize(`${colorScheme}.200`, 0.5)(theme),\n },\n },\n _focusVisible: {\n _interactionBox: {\n bg: transparentize(`${colorScheme}.200`, 0.5)(theme),\n },\n },\n _disabled: {\n _interactionBox: {\n bg: 'transparent',\n },\n _web: {\n cursor: 'not-allowed',\n },\n opacity: 0.4,\n },\n _pressed: {\n _interactionBox: {\n bg: transparentize(`${colorScheme}.200`, 0.5)(theme),\n },\n },\n _checked: {\n borderColor: mode(`${colorScheme}.600`, `${colorScheme}.200`)(props),\n bg: mode(`${colorScheme}.600`, `${colorScheme}.300`)(props),\n },\n _invalid: {\n borderColor: mode('error.600', 'error.400')(props),\n },\n _icon: {\n color: mode(`muted.50`, `muted.800`)(props), // matching background color\n },\n };\n};\n\nconst sizes = {\n lg: { _icon: { size: 6 }, _text: { fontSize: 'xl' } },\n md: { _icon: { size: 5 }, _text: { fontSize: 'lg' } },\n sm: { _icon: { size: 4 }, _text: { fontSize: 'md' } },\n};\n\nconst defaultProps = {\n defaultIsChecked: false,\n size: 'sm',\n colorScheme: 'primary',\n};\n\nexport default {\n baseStyle,\n sizes,\n defaultProps,\n};\n","const baseStyle = () => {\n return {\n alignItems: 'flex-start',\n };\n};\n\nexport default {\n baseStyle,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","import { mode, getColorScheme } from '../tools';\n\nconst sizes = {\n 'xs': {\n height: 6,\n width: 6,\n },\n 'sm': {\n height: 8,\n width: 8,\n },\n 'md': {\n height: 16,\n width: 16,\n },\n 'lg': {\n height: 20,\n width: 20,\n },\n 'xl': {\n height: 24,\n width: 24,\n },\n '2xl': {\n height: 32,\n width: 32,\n },\n};\nconst defaultProps = {\n thickness: 8,\n colorScheme: 'primary',\n size: 'lg',\n};\n\nfunction baseStyle(props: Record) {\n const colorScheme = getColorScheme(props);\n return {\n color: mode(`${colorScheme}.600`, `${colorScheme}.500`)(props),\n trackColor: mode(`${colorScheme}.200`, `${colorScheme}.800`)(props),\n };\n}\n\nexport default { baseStyle, sizes, defaultProps };\n","import Badge from './badge';\nimport { Platform } from 'react-native';\n\nconst { variants, defaultProps } = Badge;\n\nconst baseStyle = {\n _text: {\n fontFamily: Platform.OS === 'ios' ? 'Courier' : 'monospace',\n fontSize: 'sm',\n },\n borderRadius: 'sm',\n px: 2,\n py: 1,\n};\n\nexport default {\n baseStyle,\n variants,\n defaultProps,\n};\n","import type { Dict } from '../tools';\n\nconst baseStyle = (props: Dict) => {\n const { centerContent } = props;\n\n return {\n maxWidth: '80%',\n alignItems: centerContent ? 'center' : 'flex-start',\n _text: { textAlign: centerContent ? 'center' : 'left' },\n };\n};\n\nexport default {\n baseStyle,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","import { mode } from '../tools';\n\nfunction baseStyle(props: Record) {\n const { orientation, thickness } = props;\n const orientationProps =\n orientation === 'vertical'\n ? {\n width: `${thickness}px`, // handle for web : To be discussed\n height: '100%',\n }\n : {\n width: '100%',\n height: `${thickness}px`,\n };\n\n return {\n bg: mode('coolGray.200', 'gray.600')(props),\n ...orientationProps,\n };\n}\n\nexport default {\n baseStyle,\n defaultProps: {\n orientation: 'horizontal',\n thickness: '1',\n },\n};\n","const sizes = {\n 'xs': {\n height: 10,\n width: 10,\n },\n 'sm': {\n height: 12,\n width: 12,\n },\n 'md': {\n height: 16,\n width: 16,\n },\n 'lg': {\n height: 24,\n width: 24,\n },\n 'xl': {\n height: 32,\n width: 32,\n },\n '2xl': {\n height: 40,\n width: 40,\n },\n};\n\nconst baseStyle = {\n rounded: 'full',\n alignItems: 'center',\n justifyContent: 'center',\n};\n\nexport default {\n baseStyle,\n sizes,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","import { mode } from '../tools';\n\n// FormControl\nexport const FormControl = {\n baseStyle: {\n width: '100%',\n },\n};\n\n// FormControlErrorMessage\nexport const FormControlErrorMessage = {\n baseStyle: (props: Record) => {\n return {\n mt: '2',\n _text: {\n fontSize: 'xs',\n color: mode('danger.600', 'danger.300')(props),\n },\n _stack: { space: 1, alignItems: 'center' },\n };\n },\n};\n\n// FormControlLabel\nexport const FormControlLabel = {\n baseStyle: (props: Record) => {\n return {\n flexDirection: 'row',\n justifyContent: 'flex-start',\n _text: {\n fontSize: 'sm',\n fontWeight: 'medium',\n },\n _astrick: {\n color: mode('danger.600', 'danger.300')(props),\n },\n mb: '2',\n mr: '3',\n };\n },\n};\n\n// FormControlHelperText\nexport const FormControlHelperText = {\n baseStyle: (props: Record) => {\n return {\n mt: '2',\n _text: {\n fontSize: 'xs',\n color: mode('muted.500', 'muted.400')(props),\n },\n };\n },\n};\n","import { mode } from '../tools';\n\nconst baseStyle = (props: Record) => {\n return {\n color: mode('muted.700', 'white')(props),\n fontWeight: 'bold',\n lineHeight: 'sm',\n };\n};\n\nconst sizes = {\n '4xl': {\n fontSize: ['6xl', null, '7xl'],\n },\n '3xl': {\n fontSize: ['5xl', null, '6xl'],\n },\n '2xl': {\n fontSize: ['4xl', null, '5xl'],\n },\n 'xl': {\n fontSize: ['3xl', null, '4xl'],\n },\n 'lg': {\n fontSize: ['2xl', null, '3xl'],\n },\n 'md': { fontSize: 'xl' },\n 'sm': { fontSize: 'md' },\n 'xs': { fontSize: 'sm' },\n};\n\nconst defaultProps = {\n size: 'lg',\n};\n\nexport default {\n baseStyle,\n sizes,\n defaultProps,\n};\n","import { mode } from '../tools';\n\nconst baseStyle = (props: Record) => {\n return {\n color: mode('muted.800', 'muted.100')(props),\n };\n};\n\nconst sizes = {\n 'xxs': 2,\n 'xs': 4,\n 'sm': 6,\n 'md': 8,\n 'lg': 10,\n 'xl': 12,\n '2xl': 16,\n '3xl': 20,\n '4xl': 24,\n '5xl': 32,\n '6xl': 64,\n};\n\nconst defaultProps = { size: 'md' };\nexport default { baseStyle, sizes, defaultProps };\n","import { Dict, mode, transparentize } from '../tools';\nimport { Platform } from 'react-native';\n\nconst baseStyle = (props: any) => {\n const { primary } = props.theme.colors;\n const focusRing =\n Platform.OS === 'web'\n ? { boxShadow: `${primary[400]} 0px 0px 0px 3px` }\n : {};\n\n return {\n borderRadius: 'sm',\n _web: {\n cursor: props.isDisabled\n ? 'not-allowed'\n : props.isLoading\n ? 'default'\n : 'pointer',\n },\n _focusVisible: {\n style: props.variant !== 'unstyled' ? { ...focusRing } : {},\n },\n _disabled: {\n opacity: 0.5,\n },\n };\n};\n\nfunction variantGhost(props: Dict) {\n const { colorScheme } = props;\n return {\n bg: 'transparent',\n _web: {\n outlineWidth: 0,\n },\n _hover: {\n bg: transparentize(\n mode(`${colorScheme}.200`, `${colorScheme}.400`)(props),\n 0.5\n )(props.theme),\n },\n _focusVisible: {\n bg: transparentize(\n mode(`${colorScheme}.200`, `${colorScheme}.400`)(props),\n 0.5\n )(props.theme),\n },\n _pressed: {\n bg: transparentize(\n mode(`${colorScheme}.200`, `${colorScheme}.500`)(props),\n 0.6\n )(props.theme),\n },\n };\n}\n\nfunction variantOutline(props: Dict) {\n const { colorScheme } = props;\n return {\n borderWidth: '1',\n borderColor: `${colorScheme}.300`,\n _icon: {\n color: mode(`${colorScheme}.500`, `${colorScheme}.300`)(props),\n },\n _web: {\n outlineWidth: 0,\n },\n _hover: {\n bg: transparentize(\n mode(`${colorScheme}.200`, `${colorScheme}.400`)(props),\n 0.5\n )(props.theme),\n },\n _focusVisible: {\n bg: transparentize(\n mode(`${colorScheme}.200`, `${colorScheme}.400`)(props),\n 0.5\n )(props.theme),\n },\n _pressed: {\n bg: transparentize(\n mode(`${colorScheme}.300`, `${colorScheme}.500`)(props),\n 0.6\n )(props.theme),\n },\n };\n}\n\nfunction variantSolid(props: Dict) {\n const { colorScheme } = props;\n return {\n bg: `${colorScheme}.500`,\n _web: {\n outlineWidth: 0,\n },\n _disabled: {\n bg: mode(`trueGray.300`, `trueGray.600`)(props),\n },\n _hover: {\n bg: `${colorScheme}.600`,\n },\n _pressed: {\n bg: `${colorScheme}.700`,\n },\n _focus: {\n bg: `${colorScheme}.600`,\n },\n _icon: {\n color: mode('gray.50', 'gray.800')(props),\n },\n };\n}\n\nfunction variantUnstyled() {\n return {};\n}\n\nconst variants = {\n ghost: variantGhost,\n outline: variantOutline,\n solid: variantSolid,\n unstyled: variantUnstyled,\n};\n\nconst defaultProps = {\n variant: 'ghost',\n size: 'md',\n colorScheme: 'primary',\n};\n\nconst sizes = {\n lg: {\n p: 3,\n },\n md: {\n p: 2,\n },\n sm: {\n p: 1,\n },\n};\n\nexport default {\n baseStyle,\n variants,\n sizes,\n defaultProps,\n};\n","// Image\nconst sizes = {\n '2xs': '6',\n 'xs': '10',\n 'sm': '16',\n 'md': '20',\n 'lg': '24',\n 'xl': '32',\n '2xl': '64',\n 'full': '100%',\n};\n\nexport const Image = {\n baseStyle: {\n maxWidth: '100%',\n },\n sizes,\n defaultProps: {},\n};\n","import { mode } from '../tools';\nimport { Platform } from 'react-native';\n\nfunction getSelectionColor(props: Record) {\n if (Platform.OS === 'ios') {\n return mode('coolGray.800', 'warmGray.50')(props);\n } else if (Platform.OS === 'android') {\n return mode('coolGray.800', 'warmGray.50')(props);\n }\n}\n\nconst baseStyle = (props: Record) => {\n // const { primary } = props.theme.colors;\n // Todo: Resolve boxShadow Color or Provide some alternatiove prop for user to change focusRing color\n // // Todo: Update to support similar focusRing on iOS , Android and Web\n // const focusRing =\n // Platform.OS === 'web'\n // ? {\n // boxShadow:\n // props.variant !== 'underlined'\n // ? `${primary[400]} 0px 0px 0px 1px`\n // : `${primary[400]} 0px 1px 0px 0px`,\n // zIndex: 1,\n // }\n // : {\n // // boxShadow: `${useToken('colors', ['primary.400'])} 0px 0px 0px 1px`,\n // };\n\n return {\n selectionColor: getSelectionColor(props),\n fontFamily: 'body',\n p: '2',\n borderRadius: 'sm',\n overflow: 'hidden',\n color: mode('coolGray.800', 'warmGray.50')(props),\n placeholderTextColor: 'muted.400',\n borderColor: mode('muted.200', 'gray.500')(props),\n _disabled: {\n opacity: '80',\n bg: mode('muted.100', 'muted.700')(props),\n _web: {\n disabled: true,\n cursor: 'not-allowed',\n },\n },\n _invalid: {\n borderColor: mode('danger.600', 'danger.300')(props),\n },\n _focus: {\n borderColor: mode('primary.400', 'primary.500')(props),\n },\n _web: {\n outlineWidth: '0',\n overflow: 'auto',\n lineHeight: 'lg', // Todo: Move to _web inside size so that sm and xs don't have this much height\n outline: 'none',\n cursor: 'auto',\n },\n _stack: {\n flexDirection: 'row',\n alignItems: 'center',\n // justifyContent: 'space-between',\n overflow: 'hidden',\n },\n _input: {\n bg: 'transparent',\n flex: 1,\n },\n };\n};\n\nfunction roundedStyle(props: Record) {\n return {\n borderRadius: '25',\n borderWidth: '1',\n _hover: {\n bg: mode('gray.100', 'gray.700')(props),\n },\n };\n}\nfunction outlineStyle(props: Record) {\n return {\n borderWidth: '1',\n _hover: {\n bg: mode('gray.100', 'gray.700')(props),\n },\n };\n}\nfunction filledStyle(props: Record) {\n return {\n bg: props.bg || mode('muted.200', 'muted.600')(props),\n borderWidth: '1',\n borderColor: 'transparent',\n _hover: {\n bg: mode('muted.300', 'muted.700')(props),\n },\n };\n}\nfunction unstyledStyle() {\n return {\n borderWidth: '0',\n };\n}\nfunction underlinedStyle() {\n return {\n borderRadius: '0',\n borderTopWidth: '0',\n borderLeftWidth: '0',\n borderRightWidth: '0',\n borderBottomWidth: '1',\n };\n}\n\nconst variants = {\n outline: outlineStyle,\n underlined: underlinedStyle,\n rounded: roundedStyle,\n filled: filledStyle,\n unstyled: unstyledStyle,\n};\n\nconst sizes = {\n '2xl': { fontSize: 'xl' },\n 'xl': { fontSize: 'lg' },\n 'lg': { fontSize: 'md' },\n 'md': { fontSize: 'sm' },\n 'sm': { fontSize: 'xs' },\n 'xs': { fontSize: '2xs' },\n};\n\nconst defaultProps = {\n size: 'sm',\n variant: 'outline',\n};\n\n// Input\nexport const Input = {\n baseStyle,\n defaultProps,\n variants,\n sizes,\n};\n\nexport default {};\n","import { mode } from '../tools';\n\nconst baseStyle = (props: any) => {\n return {\n bg: mode(`gray.700`, `gray.300`)(props),\n py: 1,\n px: 2,\n rounded: 'sm',\n shadow: 1,\n _text: {\n color: mode(`gray.300`, `gray.700`)(props),\n fontSize: 'sm',\n },\n };\n};\n\nexport const Tooltip = {\n baseStyle,\n};\n","import { mode } from '../tools';\nimport { Platform } from 'react-native';\n\nfunction baseStyle(props: Record) {\n return {\n bg: mode('muted.200', 'muted.700')(props),\n borderColor: mode('muted.300', 'muted.600')(props),\n borderWidth: 2,\n borderBottomWidth: 4,\n shadow: 1,\n borderRadius: 'md',\n px: 2,\n _text: {\n fontSize: 'sm',\n fontWeight: 'bold',\n fontFamily: Platform.OS === 'ios' ? 'Courier' : 'monospace',\n },\n };\n}\n\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","const baseStyle = (props: Record) => {\n const { isUnderlined } = props;\n return {\n _text: {\n textDecorationLine: isUnderlined ? 'underline' : 'none',\n },\n width: 'auto',\n height: 'auto',\n };\n};\n\nexport default {\n baseStyle,\n defaultProps: {\n isUnderlined: true,\n },\n};\n","import { Platform, StyleSheet } from 'react-native';\nimport { mode } from '../tools';\n\nfunction baseStyle(props: Record) {\n return {\n bg: mode(`#fff`, `gray.700`)(props),\n py: 2,\n borderWidth: 1,\n borderColor: mode(`coolGray.200`, `gray.600`)(props),\n borderRadius: 'sm',\n _presenceTransition: {\n initial: { opacity: 0, translateY: -10 },\n animate: {\n opacity: 1,\n translateY: 0,\n transition: { duration: 200 },\n },\n exit: { opacity: 0, translateY: -10, transition: { duration: 150 } },\n style: StyleSheet.absoluteFill,\n },\n _overlay: {},\n _backdrop: {\n bg: 'transparent',\n },\n };\n}\n\nexport default {\n baseStyle,\n};\n\nexport const MenuGroup = {\n baseStyle: (props: any) => ({\n _title: {\n fontSize: 'xs',\n fontWeight: 600,\n textTransform: 'uppercase',\n color: mode(`gray.500`, `gray.300`)(props),\n },\n p: 3,\n }),\n};\nexport const MenuItem = {\n baseStyle: (props: any) => ({\n px: 3,\n py: 2,\n outlineWidth: Platform.OS === 'web' ? 0 : undefined,\n _stack: {\n alignItems: 'center',\n px: 3,\n space: 3,\n },\n _disabled: {\n _text: {\n color: mode('gray.400', 'gray.400')(props),\n },\n },\n _focus: {\n bg: mode(`coolGray.200`, `gray.600`)(props),\n },\n _pressed: {\n bg: mode(`coolGray.300`, `gray.500`)(props),\n },\n _icon: {\n size: 4,\n color: mode('gray.500', 'gray.100')(props),\n opacity: 0,\n },\n _checked: {\n _icon: {\n opacity: 1,\n },\n },\n }),\n defaultProps: {},\n};\n","import { Dimensions } from 'react-native';\nimport { mode } from '../tools';\n\nconst sizes = {\n xs: {\n contentSize: {\n width: '60%',\n maxWidth: '280',\n },\n },\n sm: {\n contentSize: {\n width: '65%',\n maxWidth: '320',\n },\n },\n md: {\n contentSize: {\n width: '75%',\n maxWidth: '380',\n },\n },\n lg: {\n contentSize: {\n width: '80%',\n maxWidth: '520',\n },\n },\n xl: {\n contentSize: {\n width: '90%',\n maxWidth: '580',\n },\n },\n full: {\n contentSize: {\n width: '100%',\n },\n },\n};\n\nexport const Modal = {\n baseStyle: {\n width: '100%',\n height: '100%',\n justifyContent: 'center',\n alignItems: 'center',\n _web: { pointerEvents: 'box-none' },\n _backdropFade: { exitDuration: 150, entryDuration: 200 },\n _slide: { overlay: false, duration: 200 },\n _fade: { exitDuration: 100, entryDuration: 200 },\n },\n sizes,\n defaultProps: {\n size: 'md',\n closeOnOverlayClick: true,\n },\n};\n\nexport const ModalContent = {\n baseStyle: (props: Record) => {\n return {\n bg: mode('coolGray.50', 'gray.700')(props),\n _text: { color: mode('coolGray.800', 'warmGray.50')(props) },\n shadow: 1,\n rounded: 'lg',\n maxHeight: `${Dimensions.get('window').height - 150}px`,\n overflow: 'hidden',\n };\n },\n};\nexport const ModalCloseButton = {\n baseStyle: (props: Record) => {\n return {\n position: 'absolute',\n right: '3',\n top: '3',\n zIndex: '1',\n colorScheme: 'coolGray',\n p: '2',\n _icon: {\n size: '3',\n color: mode('coolGray.600', 'coolGray.100')(props),\n },\n };\n },\n};\nexport const ModalHeader = {\n baseStyle: (props: Record) => {\n return {\n py: '4',\n px: '3',\n borderBottomWidth: '1',\n borderColor: mode('coolGray.200', 'gray.600')(props),\n _text: {\n fontSize: 'md',\n fontWeight: 'semibold',\n color: mode('coolGray.800', 'warmGray.50')(props),\n lineHeight: 'sm',\n },\n };\n },\n};\nexport const ModalBody = {\n baseStyle: (props: Record) => {\n return {\n pt: '2',\n p: '3',\n _text: {\n color: mode('coolGray.600', 'coolGray.300')(props),\n },\n };\n },\n};\nexport const ModalFooter = {\n baseStyle: (props: Record) => {\n return {\n p: '3',\n bg: mode('coolGray.100', 'gray.600')(props),\n flexDirection: 'row',\n justifyContent: 'flex-end',\n flexWrap: 'wrap',\n };\n },\n};\nexport const ModalOverlay = {\n baseStyle: {\n position: 'absolute',\n left: '0',\n top: '0',\n opacity: '50',\n right: '0',\n bottom: '0',\n },\n};\n","import { Dimensions } from 'react-native';\nimport { mode } from '../tools';\n\nconst sizes = {\n xs: {\n contentSize: {\n width: '60%',\n maxWidth: '280',\n },\n },\n sm: {\n contentSize: {\n width: '65%',\n maxWidth: '320',\n },\n },\n md: {\n contentSize: {\n width: '75%',\n maxWidth: '380',\n },\n },\n lg: {\n contentSize: {\n width: '80%',\n maxWidth: '520',\n },\n },\n xl: {\n contentSize: {\n width: '90%',\n maxWidth: '580',\n },\n },\n full: {\n contentSize: {\n width: '100%',\n },\n },\n};\n\nexport const AlertDialog = {\n baseStyle: {\n width: '100%',\n height: '100%',\n justifyContent: 'center',\n alignItems: 'center',\n _web: { pointerEvents: 'box-none' },\n _backdropFade: { exitDuration: 150, entryDuration: 200 },\n _fade: { exitDuration: 100, entryDuration: 200 },\n _slide: { duration: 200, overlay: false },\n },\n sizes,\n defaultProps: {\n size: 'md',\n closeOnOverlayClick: true,\n },\n};\n\nexport const AlertDialogContent = {\n baseStyle: (props: Record) => {\n return {\n bg: mode('coolGray.50', 'gray.700')(props),\n _text: { color: mode('coolGray.800', 'warmGray.50')(props) },\n shadow: 1,\n rounded: 'lg',\n maxHeight: `${Dimensions.get('window').height - 150}px`,\n overflow: 'hidden',\n };\n },\n};\nexport const AlertDialogCloseButton = {\n baseStyle: (props: Record) => {\n return {\n position: 'absolute',\n right: '3',\n top: '3',\n zIndex: '1',\n colorScheme: 'coolGray',\n p: '2',\n _icon: {\n size: '3',\n color: mode('coolGray.600', 'coolGray.100')(props),\n },\n };\n },\n};\nexport const AlertDialogHeader = {\n baseStyle: (props: Record) => {\n return {\n py: '4',\n px: '3',\n borderBottomWidth: '1',\n borderColor: mode('coolGray.200', 'gray.600')(props),\n _text: {\n fontSize: 'md',\n fontWeight: 'semibold',\n color: mode('coolGray.800', 'warmGray.50')(props),\n lineHeight: 'sm',\n },\n };\n },\n};\nexport const AlertDialogBody = {\n baseStyle: (props: Record) => {\n return {\n pt: '2',\n p: '3',\n _text: {\n color: mode('coolGray.600', 'coolGray.300')(props),\n },\n };\n },\n};\nexport const AlertDialogFooter = {\n baseStyle: (props: Record) => {\n return {\n p: '3',\n bg: mode('coolGray.100', 'gray.600')(props),\n flexDirection: 'row',\n justifyContent: 'flex-end',\n flexWrap: 'wrap',\n };\n },\n};\nexport const AlertDialogOverlay = {\n baseStyle: {\n position: 'absolute',\n left: '0',\n top: '0',\n opacity: '50',\n right: '0',\n bottom: '0',\n },\n};\n","import { mode } from '../tools';\n\nexport const PopoverCloseButton = {\n baseStyle: (props: any) => ({\n position: 'absolute',\n right: 3,\n top: 3,\n zIndex: 1,\n colorScheme: 'coolGray',\n p: 2,\n _icon: {\n size: 3,\n color: mode('coolGray.600', 'coolGray.100')(props),\n },\n }),\n};\n\nexport const PopoverBody = {\n baseStyle: (props: any) => ({\n pt: '2',\n p: '3',\n _text: {\n color: mode('coolGray.600', 'coolGray.300')(props),\n },\n }),\n};\n\nexport const PopoverContent = {\n baseStyle: (props: any) => ({\n backgroundColor: mode('coolGray.50', 'gray.700')(props),\n borderColor: mode('coolGray.200', 'coolGray.600')(props),\n _text: { color: mode('coolGray.800', 'warmGray.50')(props) },\n borderWidth: 1,\n rounded: 'md',\n overflow: 'hidden',\n }),\n};\n\nexport const PopoverHeader = {\n baseStyle: (props: any) => ({\n _web: {\n accessibilityRole: 'header',\n },\n py: '4',\n px: '3',\n borderBottomWidth: '1',\n borderColor: mode('coolGray.200', 'gray.600')(props),\n _text: {\n fontSize: 'md',\n fontWeight: 'semibold',\n color: mode('coolGray.800', 'warmGray.50')(props),\n lineHeight: 'sm',\n },\n }),\n};\n\nexport const PopoverArrow = {\n baseStyle: (props: any) => ({\n borderColor: mode('coolGray.200', 'coolGray.600')(props),\n }),\n};\n\nexport const PopoverFooter = {\n baseStyle: (props: Record) => {\n return {\n p: '3',\n bg: mode('coolGray.100', 'gray.600')(props),\n flexDirection: 'row',\n justifyContent: 'flex-end',\n flexWrap: 'wrap',\n };\n },\n};\n","import { mode } from '../tools';\n\nconst defaultProps = {\n size: 'sm',\n step: 1,\n min: -Infinity,\n max: Infinity,\n defaultValue: '0',\n keepWithinRange: true,\n clampValueOnBlur: true,\n focusInputOnChange: true,\n getAriaValueText: true,\n};\n\nexport default {\n defaultProps,\n};\n\n//Steppers\nconst stepperbaseStyle = (props: Record) => {\n return {\n bg: mode('primary.600', 'primary.200')(props),\n iconColor: mode('gray.50', 'gray.800')(props),\n _active: {},\n _disabled: {\n // iconColor: mode('gray.50', 'gray.300')(props),\n // bg: mode('blackAlpha.200', 'whiteAlpha.300')(props),\n opacity: 0.5,\n },\n };\n};\n\nexport const NumberInputStepper = {\n baseStyle: stepperbaseStyle,\n};\n","const defaultProps = {\n placeholder: '○',\n size: 'md',\n manageFocus: true,\n space: 1,\n};\n\nconst sizes = {\n '2xl': {\n fontSize: '2xl',\n p: 3,\n width: '56px',\n height: '56px',\n textAlign: 'center',\n borderRadius: 'lg',\n },\n 'xl': {\n fontSize: 'xl',\n p: 3,\n width: '52px',\n height: '52px',\n textAlign: 'center',\n borderRadius: 'lg',\n },\n 'lg': {\n fontSize: 'lg',\n p: 2,\n width: '48px',\n height: '48px',\n textAlign: 'center',\n borderRadius: 'md',\n },\n 'md': {\n fontSize: 'md',\n p: 2,\n width: '40px',\n height: '40px',\n textAlign: 'center',\n borderRadius: 'md',\n },\n 'sm': {\n fontSize: 'sm',\n p: 1,\n width: '30px',\n height: '30px',\n textAlign: 'center',\n borderRadius: 'md',\n },\n 'xs': {\n fontSize: 'xs',\n p: 1,\n width: '24px',\n height: '24px',\n textAlign: 'center',\n borderRadius: 'md',\n },\n};\n\nexport default {\n sizes,\n defaultProps,\n};\n","import { mode, getColorScheme } from '../tools';\n\nconst defaultProps = {\n colorScheme: 'primary',\n size: 'sm',\n rounded: 'full',\n min: 0,\n max: 100,\n value: 0,\n isIndeterminate: false,\n};\n\nfunction baseStyle(props: Record) {\n const colorScheme = getColorScheme(props);\n\n return {\n bg: `${colorScheme}.200`,\n overflow: 'hidden',\n _filledTrack: {\n bg: mode(`${colorScheme}.600`, `${colorScheme}.500`)(props),\n shadow: 0,\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n _text: {\n color: 'white',\n fontWeight: 'bold',\n },\n },\n };\n}\n\nconst sizes = {\n 'xs': {\n height: 1,\n },\n 'sm': {\n height: 2,\n },\n 'md': {\n height: 3,\n },\n 'lg': {\n height: 4,\n },\n 'xl': {\n height: 5,\n },\n '2xl': {\n height: 6,\n },\n};\n\nexport default {\n baseStyle,\n defaultProps,\n sizes,\n};\n","import { mode } from '../tools';\n\nconst baseStyle = (props: Record) => {\n const { colorScheme } = props;\n return {\n borderWidth: 2,\n borderRadius: 'full',\n p: 0.5,\n borderColor: mode('muted.300', 'muted.600')(props),\n bg: mode('muted.50', 'muted.700')(props), // matching background color\n\n _stack: {\n direction: 'row',\n alignItems: 'center',\n space: 2,\n _web: {\n cursor: props.isDisabled ? 'not-allowed' : 'pointer',\n },\n },\n _interactionBox: {\n borderRadius: 'full',\n size: 3,\n position: 'absolute',\n zIndex: -1,\n _web: {\n transition: 'height 200ms, width 200ms',\n pointerEvents: 'none',\n },\n },\n _icon: {\n color: mode(`${colorScheme}.600`, `${colorScheme}.200`)(props), // matching background color\n },\n _hover: {\n _interactionBox: {\n bg: 'muted.200:alpha.30',\n size: 8,\n },\n },\n _focus: {\n _interactionBox: {\n bg: `${colorScheme}.200:alpha.50`,\n size: 8,\n },\n },\n _focusVisible: {\n _interactionBox: {\n bg: `${colorScheme}.200:alpha.50`,\n size: 8,\n },\n },\n _checked: {\n borderColor: mode(`${colorScheme}.600`, `${colorScheme}.200`)(props),\n },\n _disabled: {\n opacity: 0.4,\n _interactionBox: {\n bg: 'transparent',\n },\n _icon: {\n bg: 'transparent',\n },\n _stack: {\n opacity: '0.4',\n },\n },\n _invalid: {\n borderColor: mode('error.600', 'error.400')(props),\n },\n _pressed: {\n _interactionBox: {\n bg: `${colorScheme}.200:alpha.50`,\n size: 10,\n },\n },\n };\n};\n\nconst sizes = {\n lg: {\n _icon: { size: 4 },\n // _interactionBox: { size: 5 },\n _text: { fontSize: 'lg' },\n },\n md: {\n _icon: { size: 3 },\n // _interactionBox: { size: 16 },\n _text: { fontSize: 'md' },\n },\n sm: {\n _icon: { size: 2 },\n // _interactionBox: { size: 3 },\n _text: { fontSize: 'sm' },\n },\n};\n\nconst defaultProps = {\n defaultIsChecked: false,\n size: 'md',\n colorScheme: 'primary',\n};\n\nexport default {\n baseStyle,\n sizes,\n defaultProps,\n};\n","const baseStyle = () => {\n return {\n alignItems: 'flex-start',\n };\n};\n\nexport default {\n baseStyle,\n};\n","import { mode } from '../tools';\n\n// Skeleton\nexport const Skeleton = {\n baseStyle: (props: Record) => {\n return {\n startColor: mode('muted.200', 'muted.600')(props),\n endColor: 'transparent',\n overflow: 'hidden',\n fadeDuration: 0.1,\n speed: 1.0,\n h: '10',\n w: '100%',\n };\n },\n};\n\n// SkeletonText\nexport const SkeletonText = {\n baseStyle: (props: Record) => {\n return {\n startColor: mode('muted.200', 'muted.600')(props),\n endColor: 'transparent',\n fadeDuration: 0.1,\n w: '100%',\n speed: 1.0,\n flexDirection: 'column',\n _line: {\n h: 3,\n rounded: 'full',\n },\n };\n },\n defaultProps: {\n lines: 3,\n space: 3,\n },\n};\n","const defaultProps = {\n _statLabel: {\n fontSize: 'xl',\n },\n _statNumber: {\n fontSize: '4xl',\n fontWeight: 'bold',\n my: 2,\n },\n _statHelpText: {\n _text: {\n color: 'gray.500',\n fontSize: 'xl',\n },\n flexDirection: 'row',\n alignItems: 'center',\n },\n _statGroup: {\n flexWrap: 'wrap',\n space: 4,\n justifyContent: 'space-between',\n },\n};\n\nexport default {\n defaultProps,\n};\n","import { mode, getColorScheme } from '../tools';\nimport { Platform } from 'react-native';\n\nconst baseStyle = (props: Record) => {\n const colorScheme = getColorScheme(props);\n //TODO: Use of Platform can be removed\n return {\n _disabled: {\n opacity: 0.4,\n },\n _invalid: {\n borderWidth: 1,\n borderRadius: 16,\n borderColor: 'danger.600',\n },\n offTrackColor: mode(\n Platform.OS !== 'ios' ? 'gray.400' : 'gray.200',\n Platform.OS !== 'ios' ? 'gray.700' : 'gray.600'\n )(props),\n onTrackColor: mode(\n Platform.OS !== 'ios' ? `${colorScheme}.300` : `${colorScheme}.500`,\n Platform.OS !== 'ios' ? `${colorScheme}.700` : `${colorScheme}.500`\n )(props),\n onThumbColor: mode(\n Platform.OS !== 'ios' ? `${colorScheme}.600` : 'white',\n Platform.OS !== 'ios' ? `${colorScheme}.500` : 'white'\n )(props),\n offThumbColor: mode(\n Platform.OS !== 'ios' ? 'gray.100' : 'white',\n Platform.OS !== 'ios' ? 'gray.200' : 'white'\n )(props),\n };\n};\n\nconst sizes = {\n sm: {\n style: {\n transform: [{ scale: 0.75 }],\n },\n },\n md: {},\n lg: {\n style: {\n transform: [{ scale: 1.25 }],\n },\n margin: 1,\n },\n};\n\nconst defaultProps = {\n size: 'md',\n colorScheme: 'primary',\n};\n\nexport default {\n baseStyle,\n sizes,\n defaultProps,\n};\n","import { getColorFormColorScheme, getColorScheme, mode } from '../tools';\n\nfunction baseStyle(props: Record) {\n const activeColor = getColorFormColorScheme(props);\n return {\n activeTabStyle: {\n justifyContent: 'center',\n alignItems: 'center',\n mb: '-2px',\n flexDirection: 'row',\n _text: { fontSize: 'sm', fontWeight: 'bold' },\n },\n inactiveTabStyle: {\n justifyContent: 'center',\n alignItems: 'center',\n mb: '-2px',\n flexDirection: 'row',\n _text: {\n color: mode('gray.500', 'gray.400')(props),\n fontSize: 'sm',\n fontWeight: 'bold',\n },\n },\n activeIconProps: {\n color: activeColor,\n name: 'home',\n mx: 2,\n },\n inactiveIconProps: {\n name: 'home',\n mx: 2,\n },\n };\n}\n\nconst sizes = {\n sm: {\n activeTabStyle: {\n _text: { fontSize: 'sm' },\n py: 2,\n px: 3,\n },\n inactiveTabStyle: {\n _text: { fontSize: 'sm' },\n py: 2,\n px: 3,\n },\n },\n md: {\n activeTabStyle: {\n _text: { fontSize: 'md' },\n py: 3,\n px: 4,\n },\n inactiveTabStyle: {\n _text: { fontSize: 'md' },\n py: 3,\n px: 4,\n },\n },\n lg: {\n activeTabStyle: {\n _text: { fontSize: 'lg' },\n py: 4,\n px: 5,\n },\n inactiveTabStyle: {\n _text: { fontSize: 'lg' },\n py: 4,\n px: 5,\n },\n },\n};\n\nfunction variantOutline(props: Record) {\n const activeColor = getColorFormColorScheme(props);\n let { colorScheme, status } = props;\n colorScheme = getColorScheme(\n props,\n colorScheme !== 'primary' ? colorScheme : status\n );\n return {\n activeTabStyle: {\n borderColor: activeColor,\n _text: {\n color: mode(`${colorScheme}.600`, `${colorScheme}.200`)(props),\n },\n _hover: {\n bg: mode(`${colorScheme}.50`, `${colorScheme}.800`)(props),\n },\n borderBottomWidth: 2,\n },\n inactiveTabStyle: {\n borderColor: 'transparent',\n borderBottomWidth: 2,\n _hover: {\n bg: mode(`${colorScheme}.50`, `${colorScheme}.800`)(props),\n },\n },\n tabBarStyle: {\n borderBottomWidth: 2,\n borderColor: mode('muted.200', 'muted.500')(props),\n },\n };\n}\n\nfunction variantFilled(props: Record) {\n const activeColor = getColorFormColorScheme(props);\n let { colorScheme, status } = props;\n colorScheme = getColorScheme(\n props,\n colorScheme !== 'primary' ? colorScheme : status\n );\n return {\n activeTabStyle: {\n borderColor: activeColor,\n _text: { color: mode(`${colorScheme}.600`, `${colorScheme}.200`)(props) },\n _hover: {\n bg: mode(`${colorScheme}.50`, `${colorScheme}.800`)(props),\n },\n borderBottomWidth: 2,\n bg: mode(`${colorScheme}.100`, `${colorScheme}.700`)(props),\n },\n inactiveTabStyle: {\n borderColor: 'transparent',\n borderBottomWidth: 2,\n _hover: {\n bg: mode(`${colorScheme}.50`, `${colorScheme}.800`)(props),\n },\n },\n tabBarStyle: {\n borderBottomWidth: 2,\n borderColor: mode('muted.200', 'muted.500')(props),\n },\n };\n}\n\n// function variantEnclosed(props: Record) {\n// const activeColor = getColorFormColorScheme(props);\n// return {\n// activeTabStyle: {\n// borderTopWidth: 2,\n// borderLeftWidth: 2,\n// borderRightWidth: 2,\n// borderColor: activeColor,\n// },\n// inactiveTabStyle: {\n// borderColor: 'muted.200',\n// borderBottomWidth: 2,\n// },\n// tabBarStyle: {},\n// };\n// }\n\nfunction variantFilledOutline(props: Record) {\n const activeColor = getColorFormColorScheme(props);\n let { colorScheme, status } = props;\n colorScheme = getColorScheme(\n props,\n colorScheme !== 'primary' ? colorScheme : status\n );\n return {\n activeTabStyle: {\n borderColor: activeColor,\n _text: { color: mode(`${colorScheme}.600`, `${colorScheme}.200`)(props) },\n _hover: {\n bg: mode(`${colorScheme}.50`, `${colorScheme}.800`)(props),\n },\n borderBottomWidth: 2,\n },\n inactiveTabStyle: {\n borderColor: 'transparent',\n borderBottomWidth: 2,\n _hover: {\n bg: mode(`${colorScheme}.50`, `${colorScheme}.800`)(props),\n },\n },\n tabBarStyle: {\n borderBottomWidth: 2,\n borderColor: mode('muted.200', 'muted.500')(props),\n bg: mode(`${colorScheme}.100`, `${colorScheme}.700`)(props),\n },\n };\n}\n\n// function varientSoftRounded(props: Record) {\n// const activeColor = getColorFormColorScheme(props);\n// return {\n// activeTabStyle: {\n// borderRadius: 'full',\n// bg: transparentize(activeColor, 0.7)(props.theme),\n// color: 'white',\n// },\n// inactiveTabStyle: {},\n// tabBarStyle: {},\n// };\n// }\n\n// function varientSolidRounded(props: Record) {\n// const activeColor = getColorFormColorScheme(props);\n// return {\n// activeTabStyle: {\n// borderRadius: 'full',\n// bg: activeColor,\n// color: 'white',\n// },\n// inactiveTabStyle: {},\n// tabBarStyle: {},\n// };\n// }\n\n// function varientSolidBox(props: Record) {\n// const activeColor = getColorFormColorScheme(props);\n// return {\n// activeTabStyle: {\n// bg: activeColor,\n// color: 'white',\n// },\n// inactiveTabStyle: {},\n// tabBarStyle: {},\n// };\n// }\n\nconst variants = {\n 'outline': variantOutline,\n 'filled': variantFilled,\n 'filled-outline': variantFilledOutline,\n // 'soft-rounded': varientSoftRounded,\n // 'solid-rounded': varientSolidRounded,\n // 'solid-box': varientSolidBox,\n};\n\nconst defaultProps = {\n size: 'md',\n variant: 'outline',\n colorScheme: 'primary',\n};\n\nexport default {\n baseStyle,\n variants,\n sizes,\n defaultProps,\n};\n","import Badge from './badge';\n\nconst { variants } = Badge;\nconst baseStyle = {\n _text: {\n fontWeight: 'medium',\n // lineHeight: 1.2,\n },\n alignItems: 'center',\n justifyContent: 'center',\n flexDirection: 'row',\n display: 'flex',\n};\nconst sizes = {\n sm: {\n minH: 5,\n minW: 5,\n _text: {\n fontSize: 'xs',\n },\n p: 1,\n borderRadius: 'sm',\n },\n md: {\n minH: 6,\n minW: 6,\n _text: {\n fontSize: 'sm',\n },\n borderRadius: 'md',\n p: 2,\n },\n lg: {\n minH: 8,\n minW: 8,\n _text: {\n fontSize: 'md',\n },\n borderRadius: 'md',\n p: 3,\n },\n};\n\nconst defaultProps = {\n size: 'md',\n variant: 'subtle',\n colorScheme: 'primary',\n};\n\nexport default {\n variants,\n baseStyle,\n sizes,\n defaultProps,\n};\n","import { mode } from '../tools';\n\nconst baseStyle = (props: Record) => {\n return {\n color: mode('coolGray.800', 'warmGray.50')(props),\n fontWeight: '400',\n fontFamily: 'body',\n fontStyle: 'normal',\n fontSize: 'sm',\n letterSpacing: 'md',\n lineHeight: 'lg',\n };\n};\nconst defaultProps = {};\n\nexport default { baseStyle, defaultProps };\n","import { mode, getColorScheme } from '../tools';\n\nconst baseStyle = (props: Record) => {\n let colorScheme = getColorScheme(props);\n return {\n bg: mode(`${colorScheme}.500`, `${colorScheme}.300`)(props),\n px: 2,\n };\n};\nconst defaultProps = {\n colorScheme: 'primary',\n};\n\nexport default {\n baseStyle,\n defaultProps,\n};\n","import { Platform } from 'react-native';\n\nconst baseStyle = {\n multiline: true,\n p: '2',\n totalLines: 4,\n h: Platform.select({ ios: 20 }),\n textAlignVertical: 'top',\n};\n\nexport default { baseStyle };\n","import { mode } from '../tools';\n\n// TextField\nconst baseStyle = (props: Record) => {\n return {\n _errorMessageProps: {\n mt: 1,\n ml: 3,\n fontSize: 'xs',\n color: 'error.400',\n },\n _helperTextProps: {\n mt: 1,\n ml: 3,\n fontSize: 'xs',\n color: mode('muted.400', 'muted.500')(props),\n },\n };\n};\n\nexport const TextField = {\n baseStyle,\n defaultProps: {\n component: 'input',\n },\n};\n","import { mode } from '../tools';\n\nconst baseStyle = (props: Record) => {\n return {\n bg: mode(`coolGray.600`, `warmGray.200`)(props),\n p: '2',\n rounded: 'sm',\n shadow: 1,\n _title: {\n color: mode(`warmGray.200`, `coolGray.600`)(props),\n fontWeight: 700,\n },\n _description: {\n color: mode(`warmGray.200`, `coolGray.600`)(props),\n fontWeight: 400,\n },\n _closeIcon: {\n size: 4,\n },\n };\n};\n\nexport const Toast = {\n baseStyle,\n defaultProps: {},\n};\n","//Fade\n// const fadeDefaultProps = {\n// entryDuration: 500,\n// exitDuration: 500,\n// };\n\nexport const fadeBaseStyle = {\n initial: { opacity: 0 },\n animate: { opacity: 1, transition: { duration: 500 } },\n exit: { opacity: 0, transition: { duration: 500 } },\n};\nexport const Fade = {\n baseStyle: fadeBaseStyle,\n};\n\n//ScaleFade\n//Can be commented if not used anywhere else\n// const scaleFadeDefaultProps = {\n// duration: 500,\n// initialScale: 0.9,\n// };\n\nconst scaleBaseStyle = {\n initial: { opacity: 0, scale: 0.9 },\n animate: { opacity: 1, scale: 1, transition: 500 },\n exit: { opacity: 0, scale: 0.9, transition: 500 },\n};\nexport const ScaleFade = {\n baseStyle: scaleBaseStyle,\n};\n\n//Slide\nconst slideDefaultProps = {\n duration: 500,\n placement: 'bottom',\n overlay: true,\n _overlay: { isOpen: true },\n};\n\nexport const Slide = {\n baseStyle: {\n h: '100%',\n pointerEvents: 'box-none',\n _overlay: { style: { overflow: 'hidden' } },\n },\n defaultProps: slideDefaultProps,\n};\n\n//SlideFade\nconst slideFadeDefaultProps = {\n duration: 500,\n offsetX: 10,\n offsetY: 10,\n};\n\nexport const SlideFade = {\n defaultProps: slideFadeDefaultProps,\n};\n","import { mode } from '../tools/colors';\n\nconst typeaheadSearchItemBaseStyle = (props: Record) => {\n return {\n backgroundColor: mode('gray.100', 'gray.600')(props),\n _focus: {\n backgroundColor: mode('primary.300', 'primary.700')(props),\n },\n _disabled: {\n backgroundColor: 'gray.200',\n },\n };\n};\n\nexport const TypeAheadSearchItem = {\n baseStyle: typeaheadSearchItemBaseStyle,\n};\n","const baseStyle = {};\nconst defaultProps = {};\n// sizes in stack means the height or width of the spacer elements that get's added between the children, in other\n// words it maps to space prop that user passes.\nconst sizes = {\n 'gutter': 0,\n '2xs': 1,\n 'xs': 2,\n 'sm': 3,\n 'md': 4,\n 'lg': 6,\n 'xl': 7,\n '2xl': 8,\n};\nexport default {\n baseStyle,\n defaultProps,\n sizes,\n};\n","const sizes = {\n 'xs': {\n height: 10,\n width: 10,\n },\n 'sm': {\n height: 12,\n width: 12,\n },\n 'md': {\n height: 16,\n width: 16,\n },\n 'lg': {\n height: 24,\n width: 24,\n },\n 'xl': {\n height: 32,\n width: 32,\n },\n '2xl': {\n height: 40,\n width: 40,\n },\n};\n\nconst baseStyle = {\n alignItems: 'center',\n justifyContent: 'center',\n};\n\nexport default {\n baseStyle,\n sizes,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","import { getColorScheme, mode } from '../tools';\nexport const SliderTrack = {\n baseStyle: ({ isVertical, size, ...props }: any) => {\n const simplifiedColorScheme = getColorScheme(props);\n return {\n bg: `${simplifiedColorScheme}.100`,\n borderRadius: 'lg',\n overflow: 'hidden',\n style: {\n height: isVertical ? '100%' : size,\n width: !isVertical ? '100%' : size,\n },\n _pressable: {\n alignItems: 'center',\n justifyContent: 'center',\n height: isVertical ? '100%' : size,\n width: !isVertical ? '100%' : size,\n py: !isVertical ? '3' : undefined,\n px: isVertical ? '3' : undefined,\n },\n };\n },\n};\n\nexport const SliderThumb = {\n baseStyle: (props: any) => {\n const simplifiedColorScheme = getColorScheme(props);\n return {\n borderRadius: 99999,\n zIndex: 999,\n alignItems: 'center',\n justifyContent: 'center',\n bg: mode(\n `${simplifiedColorScheme}.600`,\n `${simplifiedColorScheme}.300`\n )(props),\n scaleOnPressed: 1.2,\n };\n },\n};\n\nexport const SliderFilledTrack = {\n baseStyle: ({\n orientation,\n isReversed,\n sliderTrackPosition,\n size,\n ...props\n }: any) => {\n const simplifiedColorScheme = getColorScheme(props);\n return {\n bg: mode(\n `${simplifiedColorScheme}.600`,\n `${simplifiedColorScheme}.300`\n )(props),\n left: orientation !== 'vertical' && !isReversed ? 0 : undefined,\n bottom: orientation === 'vertical' && !isReversed ? 0 : undefined,\n right: orientation !== 'vertical' && isReversed ? 0 : undefined,\n top: orientation === 'vertical' && isReversed ? 0 : undefined,\n style:\n orientation === 'vertical'\n ? { height: sliderTrackPosition, width: size }\n : { width: sliderTrackPosition, height: size },\n };\n },\n};\n\nconst sizes = {\n lg: { thumbSize: 6, sliderSize: 6 },\n md: { thumbSize: 5, sliderSize: 5 },\n sm: { thumbSize: 4, sliderSize: 4 },\n};\n\nexport const Slider = {\n baseStyle: (props: any) => {\n return {\n alignItems: 'center',\n justifyContent: 'center',\n height: props.orientation === 'vertical' ? '100%' : undefined,\n width: props.orientation !== 'vertical' ? '100%' : undefined,\n };\n },\n defaultProps: {\n size: 'sm',\n },\n sizes,\n};\n","import {\n Accordion,\n AccordionItem,\n AccordionIcon,\n AccordionSummary,\n AccordionDetails,\n} from './accordion';\nimport {\n Actionsheet,\n ActionsheetContent,\n // ActionsheetHeader,\n // ActionsheetFooter,\n ActionsheetItem,\n} from './actionsheet';\nimport { Select, SelectItem } from './select';\nimport { Alert, AlertIcon } from './alert';\nimport AspectRatio from './aspect-ratio';\nimport Avatar from './avatar';\nimport AvatarBadge from './avatar-badge';\nimport AvatarGroup from './avatar-group';\nimport Badge from './badge';\nimport { Breadcrumb, BreadcrumbText, BreadcrumbIcon } from './breadcrumb';\nimport Button, { ButtonGroup } from './button';\nimport Card from './card';\nimport Center from './center';\nimport Checkbox from './checkbox';\nimport CheckboxGroup from './checkbox-group';\nimport Box from './box';\nimport FlatList from './flatList';\nimport KeyboardAvoidingView from './keyboardAvoidingView';\nimport ScrollView from './scrollView';\nimport SectionList from './sectionList';\nimport StatusBar from './statusBar';\nimport CircularProgress from './circular-progress';\nimport Code from './code';\nimport Container from './container';\nimport HStack from './hstack';\nimport VStack from './vstack';\nimport Divider from './divider';\nimport Circle from './circle';\nimport SimpleGrid from './simple-grid';\nimport {\n FormControl,\n FormControlLabel,\n FormControlHelperText,\n FormControlErrorMessage,\n} from './form-control';\nimport Heading from './heading';\nimport Icon from './icon';\nimport IconButton from './icon-button';\nimport { Image } from './image';\nimport { Input } from './input';\nimport { Tooltip } from './tooltip';\nimport Kbd from './kbd';\nimport Link from './link';\nimport { default as Menu, MenuGroup, MenuItem } from './menu';\nimport {\n Modal,\n ModalContent,\n ModalHeader,\n ModalBody,\n ModalFooter,\n ModalOverlay,\n ModalCloseButton,\n} from './modal';\nimport {\n AlertDialog,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogBody,\n AlertDialogFooter,\n AlertDialogOverlay,\n AlertDialogCloseButton,\n} from './alert-dialog';\nimport * as PopoverComponentTheme from './popover';\nimport { default as NumberInput, NumberInputStepper } from './number-input';\nimport PinInput from './pin-input';\nimport Pressable from './pressable';\nimport Progress from './progress';\nimport Radio from './radio';\nimport RadioGroup from './radio-group';\nimport { Skeleton, SkeletonText } from './skeleton';\nimport Spinner from './spinner';\nimport Stat from './stat';\nimport Switch from './switch';\nimport Tabs from './tabs';\nimport Tag from './tag';\nimport Text from './text';\nimport AppBar from './app-bar';\nimport TextArea from './textarea';\nimport { TextField } from './textField';\nimport { Toast } from './toast';\nimport { Fade, ScaleFade, Slide, SlideFade } from './transitions';\nimport { List, ListItem, ListIcon } from './list';\nimport { TypeAheadSearchItem } from './typeahead';\nimport { Wrap } from './wrap';\nimport { Flex, Spacer } from './flex';\nimport Stack from './stack';\nimport Square from './square';\nimport View from './view';\nimport ZStack from './zstack';\nimport FAB from './fab';\nimport { SliderTrack, Slider, SliderThumb, SliderFilledTrack } from './slider';\nimport InputLeftAddon from './inputleftaddon';\nimport InputRightAddon from './inputrightaddon';\nexport default {\n FlatList,\n KeyboardAvoidingView,\n ScrollView,\n SectionList,\n StatusBar,\n Accordion,\n AccordionItem,\n AccordionIcon,\n AccordionSummary,\n AccordionDetails,\n Actionsheet,\n ActionsheetContent,\n // ActionsheetHeader,\n // ActionsheetFooter,\n ActionsheetItem,\n Alert,\n // AlertDescription,\n // AlertTitle,\n AlertIcon,\n AspectRatio,\n Avatar,\n AvatarBadge,\n AvatarGroup,\n Badge,\n Box,\n Breadcrumb,\n BreadcrumbText,\n BreadcrumbIcon,\n Button,\n ButtonGroup,\n Card,\n Center,\n Circle,\n Checkbox,\n CheckboxGroup,\n CircularProgress,\n Code,\n Container,\n Divider,\n Fade,\n FAB,\n Flex,\n Spacer,\n FormControl,\n FormControlLabel,\n FormControlHelperText,\n FormControlErrorMessage,\n Heading,\n HStack,\n VStack,\n Icon,\n IconButton,\n Image,\n Input,\n InputLeftAddon,\n InputRightAddon,\n Kbd,\n Link,\n List,\n ListItem,\n ListIcon,\n Menu,\n MenuGroup,\n MenuItem,\n Modal,\n ModalContent,\n ModalHeader,\n ModalBody,\n ModalFooter,\n ModalOverlay,\n ModalCloseButton,\n AlertDialog,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogBody,\n AlertDialogFooter,\n AlertDialogOverlay,\n AlertDialogCloseButton,\n NumberInput,\n NumberInputStepper,\n PinInput,\n Pressable,\n ...PopoverComponentTheme,\n Progress,\n Radio,\n RadioGroup,\n ScaleFade,\n Select,\n SelectItem,\n SimpleGrid,\n Skeleton,\n SkeletonText,\n SliderFilledTrack,\n SliderThumb,\n SliderTrack,\n Slider,\n Slide,\n SlideFade,\n Spinner,\n Square,\n Stack,\n Stat,\n Switch,\n Tabs,\n Tag,\n Text,\n AppBar,\n TextArea,\n TextField,\n Toast,\n TypeAheadSearchItem,\n View,\n Wrap,\n ZStack,\n Tooltip,\n};\n","const placementProps: any = {\n 'top-right': { top: 4, right: 4, position: 'absolute' },\n 'top-left': { top: 4, left: 4, position: 'absolute' },\n 'bottom-right': { bottom: 4, right: 4, position: 'absolute' },\n 'bottom-left': { bottom: 4, left: 4, position: 'absolute' },\n};\nconst baseStyle = {\n shadow: 7,\n rounded: 'full',\n zIndex: 20,\n placementProps,\n px: 4,\n py: 4,\n};\nconst defaultProps = {\n renderInPortal: true,\n variant: 'solid',\n colorScheme: 'primary',\n placement: 'bottom-right',\n};\n\nexport default { baseStyle, defaultProps };\n","export const Flex = {\n baseStyle: {\n display: 'flex',\n flexDirection: 'column',\n },\n};\n\nexport const Spacer = {\n baseStyle: {\n flexGrow: 1,\n },\n};\n","import { mode } from '../tools';\n\nconst baseStyle = (props: Record) => {\n return {\n borderRightWidth: '0',\n roundedLeft: '4',\n bg: mode('gray.50', 'gray.700')(props),\n p: '2',\n borderColor: mode('gray.300', 'gray.600')(props),\n borderWidth: '1',\n _text: {\n color: mode('muted.400', 'muted.500')(props),\n fontWeight: 600,\n },\n alignItems: 'center',\n justifyContent: 'center',\n };\n};\n\nexport default { baseStyle };\n","import { mode } from '../tools';\n\nconst baseStyle = (props: Record) => {\n return {\n borderLeftWidth: '0',\n roundedRight: '4',\n bg: mode('gray.50', 'gray.700')(props),\n p: '2',\n borderColor: mode('gray.300', 'gray.600')(props),\n borderWidth: '1',\n _text: {\n color: mode('muted.400', 'muted.500')(props),\n fontWeight: 600,\n },\n alignItems: 'center',\n justifyContent: 'center',\n };\n};\n\nexport default { baseStyle };\n","import { mode } from '../tools';\n// List\nexport const List = {\n baseStyle: (props: Record) => {\n return {\n py: 2,\n borderWidth: 1,\n borderColor: 'gray.300',\n _hover: { bg: mode('primary.100', 'primary.700')(props) },\n };\n },\n};\n\n// ListItem\nexport const ListItem = {\n baseStyle: {\n // borderTopWidth: 1,\n py: 2,\n borderColor: 'gray.300',\n },\n defaultProps: {\n start: 1,\n },\n};\n\n// ListIcon\nexport const ListIcon = {\n baseStyle: {\n mr: 8,\n size: 'md',\n },\n};\n","export default {\n baseStyle: {},\n defaultProps: {},\n};\n","export default {\n baseStyle: {\n color: 'primary.500',\n },\n sizes: {\n sm: 'small',\n lg: 'large',\n },\n defaultProps: {\n size: 'small',\n },\n};\n","// Wrap\nexport const Wrap = {};\n","import base from './base';\nimport components from './components';\nimport * as tools from './tools';\n//@ts-ignore\nimport type { ColorModeOptions } from './../core/color-mode/types';\n\nconst config: ColorModeOptions = {\n useSystemColorMode: false, // TODO: implement this\n initialColorMode: 'light',\n accessibleColors: false,\n};\n\nconst v33xTheme = {\n ...base,\n components,\n config,\n};\n\nexport type V33xTheme = typeof v33xTheme & { fontConfig: any };\n\nexport interface ICustomTheme {}\n\nexport interface IV33xTheme\n extends ICustomTheme,\n Omit {}\n\nexport { v33xTheme, tools as themeTools };\n","import base from './base';\nimport components from './components';\nimport * as tools from './tools';\nimport type { StyledProps } from '../theme/types';\n//@ts-ignore\nimport type { ColorModeOptions } from './../core/color-mode/types';\nexport interface ComponentTheme {\n baseStyle?: ((props: any) => StyledProps) | StyledProps;\n sizes?: Record StyledProps) | StyledProps>;\n variants?: Record StyledProps) | StyledProps>;\n defaultProps?: Record;\n}\nconst config: ColorModeOptions = {\n useSystemColorMode: false, // TODO: implement this\n initialColorMode: 'light',\n accessibleColors: false,\n};\n\nconst theme = {\n ...base,\n components,\n config,\n};\n\nexport type Theme = typeof theme & { fontConfig: any };\n\nexport interface ICustomTheme {}\n\nexport interface ITheme extends ICustomTheme, Omit {}\n\nexport { theme, tools as themeTools };\n\nexport { getColor } from './styled-system';\nexport * from './v33x-theme';\n","import React, { useMemo } from 'react';\nimport { Platform } from 'react-native';\nimport { HybridContext } from './Context';\nimport { useModeManager } from './../color-mode/hooks';\nimport type { IColorModeProviderProps } from './../color-mode';\nimport { keyboardDismissHandlerManager } from '../../hooks';\n\nconst HybridProvider = ({\n children,\n options: {\n initialColorMode = 'light',\n accessibleColors: isTextColorAccessible = false,\n useSystemColorMode,\n },\n colorModeManager,\n}: IColorModeProviderProps) => {\n // Color-mode content\n const { colorMode, setColorMode } = useModeManager(\n initialColorMode,\n useSystemColorMode,\n colorModeManager\n );\n\n const toggleColorMode = React.useCallback(() => {\n setColorMode(colorMode === 'light' ? 'dark' : 'light');\n }, [colorMode, setColorMode]);\n\n // Accessible color hook\n const [accessibleColors, setAccessibleColors] = React.useState(\n isTextColorAccessible\n );\n\n const contextValue = useMemo(() => {\n return {\n colorMode: {\n colorMode,\n toggleColorMode,\n setColorMode,\n accessibleColors,\n setAccessibleColors,\n },\n };\n }, [\n colorMode,\n toggleColorMode,\n setColorMode,\n accessibleColors,\n setAccessibleColors,\n ]);\n\n React.useEffect(() => {\n let escapeKeyListener: any = null;\n\n if (Platform.OS === 'web') {\n escapeKeyListener = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n if (keyboardDismissHandlerManager.length() > 0) {\n const lastHandler: any = keyboardDismissHandlerManager.pop();\n lastHandler();\n }\n }\n };\n document.addEventListener('keydown', escapeKeyListener);\n }\n\n return () => {\n if (Platform.OS === 'web') {\n document.removeEventListener('keydown', escapeKeyListener);\n }\n };\n }, []);\n\n return (\n \n {children}\n \n );\n};\n\nexport default HybridProvider;\n","import React from 'react';\nimport {\n SafeAreaProvider,\n Metrics,\n initialWindowMetrics as defaultInitialWindowMetrics,\n} from 'react-native-safe-area-context';\nimport { SSRProvider } from '@react-native-aria/utils';\nimport { theme as defaultTheme, ITheme } from './../theme';\nimport type { IColorModeProviderProps } from './color-mode';\nimport HybridProvider from './hybrid-overlay/HybridProvider';\nimport { OverlayProvider } from '@react-native-aria/overlays';\nimport { ToastProvider, ToastRef } from '../components/composites/Toast';\nimport {\n defaultConfig,\n INativebaseConfig,\n NativeBaseConfigProvider,\n} from './NativeBaseContext';\nimport { useToast } from '../components/composites/Toast';\nimport { Platform, useWindowDimensions } from 'react-native';\nimport {\n getClosestBreakpoint,\n platformSpecificSpaceUnits,\n} from '../theme/tools/utils';\nimport { ResponsiveQueryProvider } from '../utils/useResponsiveQuery';\n\n// For SSR to work, we need to pass initial insets as 0 values on web.\n\n// https://github.com/th3rdwave/react-native-safe-area-context/issues/132\nconst defaultInitialWindowMetricsBasedOnPlatform: Metrics | null = Platform.select(\n {\n web: {\n frame: { x: 0, y: 0, width: 0, height: 0 },\n insets: { top: 0, left: 0, right: 0, bottom: 0 },\n },\n default: defaultInitialWindowMetrics,\n }\n);\n\nexport interface NativeBaseProviderProps {\n theme?: ITheme;\n colorModeManager?: IColorModeProviderProps['colorModeManager'];\n children?: React.ReactNode;\n initialWindowMetrics?: any;\n config?: INativebaseConfig;\n isSSR?: boolean;\n disableContrastText?: boolean;\n // Refer https://github.com/th3rdwave/react-native-safe-area-context#testing\n}\n\nconst NativeBaseProvider = (props: NativeBaseProviderProps) => {\n const {\n colorModeManager,\n config = defaultConfig,\n children,\n theme: propsTheme = defaultTheme,\n initialWindowMetrics,\n isSSR,\n disableContrastText,\n } = props;\n const theme = config.theme ?? propsTheme;\n\n const newTheme = React.useMemo(() => {\n if (config.enableRem) {\n return platformSpecificSpaceUnits(theme);\n }\n return theme;\n }, [config.enableRem, theme]);\n\n const windowWidth = useWindowDimensions()?.width;\n\n const currentBreakpoint = React.useMemo(\n () => getClosestBreakpoint(newTheme.breakpoints, windowWidth),\n [windowWidth, newTheme.breakpoints]\n );\n\n return (\n \n \n \n \n \n \n \n {children}\n \n \n \n \n \n \n );\n};\n\nconst InitializeToastRef = () => {\n const toast = useToast();\n ToastRef.current = toast;\n return null;\n};\n\nexport { NativeBaseProvider };\n","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport findIndex from 'array-find-index';\nimport invariant from 'fbjs/lib/invariant'; // Android 4.4 browser\n\nvar isPrefixed = canUseDOM && !document.hasOwnProperty('hidden') && document.hasOwnProperty('webkitHidden');\nvar EVENT_TYPES = ['change', 'memoryWarning'];\nvar VISIBILITY_CHANGE_EVENT = isPrefixed ? 'webkitvisibilitychange' : 'visibilitychange';\nvar VISIBILITY_STATE_PROPERTY = isPrefixed ? 'webkitVisibilityState' : 'visibilityState';\nvar AppStates = {\n BACKGROUND: 'background',\n ACTIVE: 'active'\n};\nvar listeners = [];\n\nvar AppState = /*#__PURE__*/function () {\n function AppState() {}\n\n AppState.addEventListener = function addEventListener(type, handler) {\n if (AppState.isAvailable) {\n invariant(EVENT_TYPES.indexOf(type) !== -1, 'Trying to subscribe to unknown event: \"%s\"', type);\n\n if (type === 'change') {\n var callback = function callback() {\n return handler(AppState.currentState);\n };\n\n listeners.push([handler, callback]);\n document.addEventListener(VISIBILITY_CHANGE_EVENT, callback, false);\n }\n }\n };\n\n AppState.removeEventListener = function removeEventListener(type, handler) {\n if (AppState.isAvailable) {\n invariant(EVENT_TYPES.indexOf(type) !== -1, 'Trying to remove listener for unknown event: \"%s\"', type);\n\n if (type === 'change') {\n var listenerIndex = findIndex(listeners, function (pair) {\n return pair[0] === handler;\n });\n invariant(listenerIndex !== -1, 'Trying to remove AppState listener for unregistered handler');\n var callback = listeners[listenerIndex][1];\n document.removeEventListener(VISIBILITY_CHANGE_EVENT, callback, false);\n listeners.splice(listenerIndex, 1);\n }\n }\n };\n\n _createClass(AppState, null, [{\n key: \"currentState\",\n get: function get() {\n if (!AppState.isAvailable) {\n return AppStates.ACTIVE;\n }\n\n switch (document[VISIBILITY_STATE_PROPERTY]) {\n case 'hidden':\n case 'prerender':\n case 'unloaded':\n return AppStates.BACKGROUND;\n\n default:\n return AppStates.ACTIVE;\n }\n }\n }]);\n\n return AppState;\n}();\n\nAppState.isAvailable = canUseDOM && document[VISIBILITY_STATE_PROPERTY];\nexport { AppState as default };","import React, { useState, useEffect } from 'react';\nimport type {\n ColorMode,\n StorageManager,\n IColorModeContextProps,\n} from './types';\nimport { HybridContext } from './../hybrid-overlay/Context';\nimport type { IHybridContextProps } from './../hybrid-overlay/types';\nimport { AppState, useColorScheme as _useColorScheme } from 'react-native';\nimport { useSubscription } from 'use-subscription';\nimport { useNativeBaseConfig } from '../NativeBaseContext';\n\nexport const useColorMode = (): IColorModeContextProps => {\n const {\n colorMode: colorModeContext,\n }: {\n colorMode: IColorModeContextProps;\n } = React.useContext(HybridContext);\n if (colorModeContext === undefined) {\n throw new Error('useColorMode must be used within a NativeBaseProvider');\n }\n return colorModeContext;\n};\n\nexport function useColorModeValue(light: any, dark: any) {\n const { colorMode } = useColorMode();\n return colorMode === 'dark' ? dark : light;\n}\n\nexport const useAppState = () => {\n const subscription = React.useMemo(\n () => ({\n getCurrentValue: () => AppState.currentState,\n subscribe: (callback: () => void) => {\n const subsription = AppState.addEventListener('change', callback);\n return () => {\n if (AppState.removeEventListener) {\n // React Native < 0.65\n AppState.removeEventListener('change', callback);\n } else {\n // React Native >= 0.65\n // @ts-ignore:next-line ignoring ts error as devDependency contains \"@types/react-native\" < 0.65\n subsription.remove();\n }\n };\n },\n }),\n []\n );\n\n const isSSR = useNativeBaseConfig('useBreakpointResolvedProps').isSSR;\n\n if (isSSR) {\n return 'unknown';\n } else {\n // This if statement technically breaks the rules of hooks, but is safe\n // because the condition never changes after mounting.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useSubscription(subscription);\n }\n};\n\nexport const useColorScheme = () => {\n const colorScheme = _useColorScheme();\n const [currentScheme, setCurrentScheme] = useState(colorScheme);\n const appState = useAppState();\n\n useEffect(() => {\n if (appState === 'active') {\n setCurrentScheme(colorScheme);\n }\n }, [appState, colorScheme]);\n\n return currentScheme;\n};\n\nexport function useModeManager(\n initialColorMode: ColorMode,\n useSystemColorMode: boolean | undefined,\n colorModeManager?: StorageManager\n) {\n const systemColorMode = useColorScheme();\n\n if (useSystemColorMode) {\n initialColorMode = systemColorMode;\n }\n\n const [colorMode, setRawMode] = useState(initialColorMode);\n const setColorMode = React.useCallback(\n async (val: ColorMode) => {\n if (colorModeManager) {\n await colorModeManager.set(val);\n }\n setRawMode(val);\n },\n [colorModeManager]\n );\n\n // For initial setting initial color mode from storage\n useEffect(() => {\n if (colorModeManager) {\n (async function getMode() {\n let value = await colorModeManager.get(initialColorMode);\n if (value && value !== colorMode) {\n setRawMode(value);\n }\n })();\n }\n }, [colorMode, initialColorMode, colorModeManager]);\n\n // Set system color mode only when user has not passed a colorModeManager\n useEffect(() => {\n if (!colorModeManager && useSystemColorMode) {\n setRawMode(systemColorMode);\n }\n }, [systemColorMode, colorModeManager, useSystemColorMode, setRawMode]);\n\n return { colorMode, setColorMode };\n}\n\nexport function useAccessibleColors(): [\n boolean,\n (val: boolean) => void,\n () => void\n] {\n const {\n colorMode: colorModeContext,\n }: {\n colorMode: IColorModeContextProps;\n } = React.useContext(HybridContext);\n const toggleAccessibleColors = () =>\n colorModeContext.setAccessibleColors(!colorModeContext.accessibleColors);\n return [\n colorModeContext.accessibleColors,\n colorModeContext.setAccessibleColors,\n toggleAccessibleColors,\n ];\n}\n","import { createContext } from 'react';\nimport type { IHybridContextProps } from './types';\n\nexport const HybridContext = createContext({\n colorMode: {\n colorMode: 'light',\n toggleColorMode: () => {},\n setColorMode: () => {},\n accessibleColors: false,\n setAccessibleColors: () => {},\n },\n});\n","import React from 'react';\nimport { useEffect } from 'react';\nimport { BackHandler } from 'react-native';\n\ntype IParams = {\n enabled?: boolean;\n callback: () => any;\n};\n\nlet keyboardDismissHandlers: Array<() => any> = [];\nexport const keyboardDismissHandlerManager = {\n push: (handler: () => any) => {\n keyboardDismissHandlers.push(handler);\n return () => {\n keyboardDismissHandlers = keyboardDismissHandlers.filter(\n (h) => h !== handler\n );\n };\n },\n length: () => keyboardDismissHandlers.length,\n pop: () => {\n return keyboardDismissHandlers.pop();\n },\n};\n\n/**\n * Handles attaching callback for Escape key listener on web and Back button listener on Android\n */\nexport const useKeyboardDismissable = ({ enabled, callback }: IParams) => {\n React.useEffect(() => {\n let cleanupFn = () => {};\n if (enabled) {\n cleanupFn = keyboardDismissHandlerManager.push(callback);\n } else {\n cleanupFn();\n }\n return () => {\n cleanupFn();\n };\n }, [enabled, callback]);\n\n useBackHandler({ enabled, callback });\n};\n\nexport function useBackHandler({ enabled, callback }: IParams) {\n useEffect(() => {\n let backHandler = () => {\n callback();\n return true;\n };\n if (enabled) {\n BackHandler.addEventListener('hardwareBackPress', backHandler);\n } else {\n BackHandler.removeEventListener('hardwareBackPress', backHandler);\n }\n return () =>\n BackHandler.removeEventListener('hardwareBackPress', backHandler);\n }, [enabled, callback]);\n}\n","import { useNativeBaseConfig } from './../core/NativeBaseContext';\n\nexport function useTheme() {\n const theme = useNativeBaseConfig('useTheme').theme;\n if (!theme) {\n throw Error(\n 'useTheme: `theme` is undefined. Seems you forgot to wrap your app in ``'\n );\n }\n\n return theme;\n}\n","import Color from 'tinycolor2';\nimport { useToken } from './useToken';\nimport { useAccessibleColors } from '../core/color-mode/hooks';\nimport { useNativeBaseConfig } from '../core/NativeBaseContext';\n\nexport function useContrastText(bg: string, color?: string) {\n const [\n contrastThreshold,\n trueDarkText,\n trueLightText,\n trueBg,\n trueColor,\n ] = useToken('colors', [\n 'contrastThreshold',\n 'darkText',\n 'lightText',\n bg,\n color ?? '',\n ]);\n\n const suppressColorAccessibilityWarning = useNativeBaseConfig(\n 'NativeBaseConfigProvider'\n ).config.suppressColorAccessibilityWarning;\n\n const [accessibleColors] = useAccessibleColors();\n\n if (useNativeBaseConfig('NativeBaseConfigProvider').disableContrastText) {\n return trueColor;\n }\n if (typeof bg !== 'string') {\n return;\n }\n\n const [bgThemeColorVariant, bgShade] = bg.split('.');\n\n const textColor =\n !accessibleColors &&\n bgThemeColorVariant &&\n themeColorsThresholdShades[bgThemeColorVariant]\n ? getContrastThemeColor(bgThemeColorVariant, bgShade)\n : getAccessibleContrastColor(\n contrastThreshold,\n trueDarkText,\n trueLightText,\n trueBg,\n trueColor,\n bg,\n color,\n suppressColorAccessibilityWarning\n );\n\n return textColor;\n}\n\nfunction getContrastThemeColor(bgThemeColorVariant: string, bgShade: string) {\n const shadeThreshold = themeColorsThresholdShades[bgThemeColorVariant];\n if (\n bgShade &&\n shadeThreshold &&\n ((bgShade >= shadeThreshold && bgThemeColorVariant !== 'dark') ||\n (bgThemeColorVariant === 'dark' && bgShade < shadeThreshold))\n ) {\n return 'lightText';\n }\n return 'darkText';\n}\nfunction getAccessibleContrastColor(\n contrastThreshold: number,\n trueDarkText: string,\n trueLightText: string,\n trueBg: string,\n trueColor: string,\n bg: string,\n color?: string,\n suppressColorAccessibilityWarning?: boolean\n) {\n if (typeof trueBg !== 'string') {\n trueBg = bg;\n }\n let trueContrastColor;\n let contrastColorToken;\n const darkTextConstrast = getContrastRatio(trueBg, trueDarkText);\n const lightTextConstrast = getContrastRatio(trueBg, trueLightText);\n\n if (\n darkTextConstrast >= contrastThreshold ||\n darkTextConstrast > lightTextConstrast\n ) {\n trueContrastColor = trueDarkText;\n contrastColorToken = 'darkText';\n } else {\n trueContrastColor = trueLightText;\n contrastColorToken = 'lightText';\n }\n\n if (process.env.NODE_ENV !== 'production') {\n const contrast = getContrastRatio(\n trueBg,\n trueColor ? trueColor : trueContrastColor\n );\n if (contrast < 3 && !suppressColorAccessibilityWarning) {\n console.warn(\n [\n `NativeBase: The contrast ratio of ${contrast}:1 for ${\n color ? color : contrastColorToken\n } on ${bg}`,\n 'falls below the WCAG recommended absolute minimum contrast ratio of 3:1.',\n 'https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast',\n ].join('\\n')\n );\n }\n }\n return contrastColorToken;\n}\nfunction getContrastRatio(foreground: string, background: string) {\n const lumA = Color(foreground).getLuminance();\n const lumB = Color(background).getLuminance();\n return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\n}\n\nconst themeColorsThresholdShades: any = {\n rose: 500,\n pink: 500,\n fuchsia: 800,\n purple: 700,\n violet: 600,\n indigo: 500,\n blue: 400,\n lightBlue: 400,\n cyan: 300,\n teal: 300,\n emerald: 300,\n tertiary: 300,\n green: 400,\n lime: 600,\n yellow: 800,\n amber: 500,\n orange: 500,\n red: 500,\n warmGray: 500,\n trueGray: 500,\n gray: 500,\n coolGray: 500,\n blueGray: 500,\n dark: 500,\n danger: 500,\n error: 500,\n success: 400,\n warning: 500,\n muted: 500,\n primary: 500,\n info: 400,\n secondary: 500,\n light: 500,\n};\n","import { useTheme } from './useTheme';\nimport get from 'lodash.get';\n\nexport function useToken(\n property: string,\n token: T | T[],\n fallback?: T | T[]\n) {\n const theme = useTheme();\n if (Array.isArray(token)) {\n let fallbackArr: T[] = [];\n if (fallback) {\n fallbackArr = Array.isArray(fallback) ? fallback : [fallback];\n }\n return token.map((innerToken, index) => {\n const path = `${property}.${innerToken}`;\n return get(theme, path, fallbackArr[index] ?? innerToken);\n });\n }\n\n const path = `${property}.${token}`;\n return get(theme, path, fallback ?? token);\n}\n","import get from 'lodash.get';\nimport isNil from 'lodash.isnil';\nimport mergeWith from 'lodash.mergewith';\nimport cloneDeep from 'lodash.clonedeep';\nimport { themePropertyMap } from './../../theme/base';\nimport {\n getClosestBreakpoint,\n findLastValidBreakpoint,\n hasValidBreakpointFormat,\n extractInObject,\n} from './../../theme/tools';\nimport { useContrastText } from '../useContrastText';\n\n/*\n Extract props from theme props and omit those from props\n*/\n/**\n *\n * @param props Props passed by the user\n * @param theme Theme object\n * @param colorModeProps `colorMode` object\n * @param componentTheme Theme for specific components\n * @param currentBreakpoint Current breakpoint values\n * @returns Extracting props from defaultProps while overriding the props that are already present\n */\nexport function extractProps(\n props: any,\n theme: any,\n {},\n componentTheme: any,\n currentBreakpoint: number\n) {\n let newProps: any = {};\n for (let property in props) {\n // If the property exists in themePropertyMap then get its value\n if (themePropertyMap[property]) {\n let propValues = extractPropertyFromFunction(\n property,\n props,\n theme,\n componentTheme\n );\n if (typeof propValues === 'string' || typeof propValues === 'number') {\n newProps[property] = propValues;\n } else if (!isNil(propValues)) {\n for (let nestedProp in propValues) {\n newProps[nestedProp] = get(\n theme,\n `${themePropertyMap[nestedProp]}.${propValues[nestedProp]}`,\n propValues[nestedProp]\n );\n }\n } else if (property === 'shadow') {\n let shadowProps = theme[themePropertyMap[property]][props[property]];\n if (!isNil(shadowProps)) {\n newProps = { ...newProps, ...shadowProps };\n }\n } else {\n newProps[property] = resolveValueWithBreakpoint(\n props[property],\n theme.breakpoints,\n currentBreakpoint,\n property\n );\n }\n } else {\n newProps[property] = resolveValueWithBreakpoint(\n props[property],\n theme.breakpoints,\n currentBreakpoint,\n property\n );\n }\n }\n return cloneDeep(newProps);\n}\n\n/*\nRemove props from defaultProps that are already present in props\n*/\nfunction filterDefaultProps(props: any, defaultProps: any) {\n let [, resultProps] = extractInObject(defaultProps, Object.keys(props));\n return resultProps;\n}\n\n/**\n * If property is functional in componentTheme, get its returned object\n *\n * @param property : name of the prop\n * @param props : all props\n * @param theme : provided theme without components\n * @param componentTheme : component specific theme\n * @returns\n */\nexport const extractPropertyFromFunction = (\n property: string,\n props: any,\n theme: any,\n componentTheme: any\n) => {\n let propValues;\n // Check if the entry in the theme is a function then calling it with all theme and props as params\n if (\n componentTheme &&\n typeof componentTheme[themePropertyMap[property]] === 'function'\n ) {\n let funcProps = componentTheme[themePropertyMap[property]]({\n theme,\n ...props,\n });\n // Check if returned object from componentTheme is a nested object\n let isNested: boolean = Object.keys(funcProps).some(function (key) {\n return funcProps[key] && typeof funcProps[key] === 'object';\n });\n // If the returned value is nested object then find the property value in it, otherwise return the whole object\n propValues = isNested\n ? { ...get(funcProps, `${props[property]}`) }\n : { ...funcProps };\n } else {\n // If the entry is any value other than function then return the whole object or value\n propValues = get(\n componentTheme,\n `${themePropertyMap[property]}.${props[property]}`\n );\n }\n return propValues;\n};\n\n/*\nMerge _props and apply contrastText color if not passed by theme or user\n*/\nexport function mergeUnderscoreProps(newProps: any, props: any) {\n const _props = Object.keys(newProps).filter((propName) =>\n propName.startsWith('_')\n );\n _props.forEach((propName: string) => {\n // Adding color based on bg contrast if no color is given\n const bg = newProps.bg ?? newProps.backgroundColor;\n const textColor = bg\n ? {\n color: useContrastText(\n bg,\n newProps[propName]?.color ?? props[propName]?.color\n ),\n }\n : {};\n // Overriding calculated props with user added props\n newProps[propName] = {\n ...textColor,\n ...newProps[propName],\n ...props[propName],\n };\n });\n return newProps;\n}\n\n/**\n *\n * Checks the property and resolves it if it has breakpoints\n * @param values : value from props\n * @param currentBreakpoint : current value for which breakpoint will be calculated\n * @param property : property name\n * @returns\n */\nexport const resolveValueWithBreakpoint = (\n values: any,\n breakpointTheme: any,\n currentBreakpoint: number,\n property: any\n) => {\n if (hasValidBreakpointFormat(values, breakpointTheme, property)) {\n // Check the last valid breakpoint value from all values\n // If current breakpoint is `md` and we have `base` then `lg`, then last value will be taken(`base` in this case)\n return findLastValidBreakpoint(values, breakpointTheme, currentBreakpoint);\n } else {\n return values;\n }\n};\n\n/**\n * Takes all prop related data and returns the props that needs to be applied to the component\n *\n * @param theme Theme object\n * @param colorModeProps Color mode information\n * @param componentTheme Theme object for the specific component\n * @param props Props passed by the user\n * @param windowWidth Width of the current window\n * @returns props to be applied\n */\nexport function calculateProps(\n theme: any,\n colorModeProps: any,\n componentTheme: any,\n props: any,\n windowWidth: any\n) {\n let currentBreakpoint = getClosestBreakpoint(theme.breakpoints, windowWidth);\n if (!props) {\n props = {};\n }\n\n let newProps: any;\n if (componentTheme) {\n // Extracting props from defaultProps\n newProps = extractProps(\n filterDefaultProps(props, componentTheme.defaultProps),\n theme,\n colorModeProps,\n componentTheme,\n currentBreakpoint\n );\n // Extracting props from base style\n let componentBaseStyle =\n typeof componentTheme.baseStyle !== 'function'\n ? componentTheme.baseStyle\n : componentTheme.baseStyle({\n theme,\n ...newProps,\n ...props,\n ...colorModeProps,\n });\n newProps = mergeWith(\n newProps,\n componentBaseStyle,\n // @ts-ignore\n (objValue, srcValue, key) => {\n if (!isNil(objValue)) {\n delete newProps[key];\n }\n }\n );\n\n const variant =\n props.variant || get(componentTheme, 'defaultProps.variant');\n // Extracting props from variant\n if (\n variant &&\n componentTheme.variants &&\n componentTheme.variants[variant]\n ) {\n const colorScheme =\n props.colorScheme || get(componentTheme, 'defaultProps.colorScheme');\n let variantProps = componentTheme.variants[variant]({\n ...props,\n ...newProps,\n colorScheme,\n theme,\n ...colorModeProps,\n });\n variantProps = extractProps(\n variantProps,\n theme,\n colorModeProps,\n componentTheme,\n currentBreakpoint\n );\n // added this to handle order of props\n newProps = mergeWith(\n newProps,\n variantProps,\n // @ts-ignore\n (objValue, srcValue, key) => {\n if (!isNil(objValue)) {\n delete newProps[key];\n }\n }\n );\n delete newProps.variant;\n delete newProps.colorScheme;\n }\n }\n // Extracting props from normal props\n let extractedProps = extractProps(\n props,\n theme,\n colorModeProps,\n componentTheme,\n currentBreakpoint\n );\n // added this to handle order of props\n // @ts-ignore\n newProps = mergeWith(newProps, extractedProps, (objValue, srcValue, key) => {\n if (!isNil(objValue)) {\n delete newProps[key];\n }\n });\n newProps = mergeUnderscoreProps(newProps, props);\n return newProps;\n}\n","export default function _objectDestructuringEmpty(obj) {\n if (obj == null) throw new TypeError(\"Cannot destructure undefined\");\n}","const borderWidths = {\n '0': 0,\n '1': '1px',\n '2': '2px',\n '4': '4px',\n '8': '8px',\n};\n\nexport type IBorderWidth = keyof typeof borderWidths;\n\nexport default borderWidths;\n","const breakpoints = {\n 'base': 0,\n 'sm': 480,\n 'md': 768,\n 'lg': 992,\n 'xl': 1280,\n '2xl': 1536,\n};\nexport type IBreakpoint = keyof typeof breakpoints;\n\nexport default breakpoints;\n","// import type { ITheme } from '..';\nimport type { Leaves } from './types';\n\nexport interface IColorHues {\n 50: string;\n 100: string;\n 200: string;\n 300: string;\n 400: string;\n 500: string;\n 600: string;\n 700: string;\n 800: string;\n 900: string;\n}\n\nconst colors = {\n contrastThreshold: 7,\n // Singleton colors\n white: '#FFFFFF',\n black: '#000000',\n lightText: '#FFFFFF',\n darkText: '#000000',\n // Primary colors\n rose: {\n 50: '#fff1f2',\n 100: '#ffe4e6',\n 200: '#fecdd3',\n 300: '#fda4af',\n 400: '#fb7185',\n 500: '#f43f5e',\n 600: '#e11d48',\n 700: '#be123c',\n 800: '#9f1239',\n 900: '#881337',\n },\n pink: {\n 50: '#fdf2f8',\n 100: '#fce7f3',\n 200: '#fbcfe8',\n 300: '#f9a8d4',\n 400: '#f472b6',\n 500: '#ec4899',\n 600: '#db2777',\n 700: '#be185d',\n 800: '#9d174d',\n 900: '#831843',\n },\n fuchsia: {\n 50: '#fdf4ff',\n 100: '#fae8ff',\n 200: '#f5d0fe',\n 300: '#f0abfc',\n 400: '#e879f9',\n 500: '#d946ef',\n 600: '#c026d3',\n 700: '#a21caf',\n 800: '#86198f',\n 900: '#701a75',\n },\n purple: {\n 50: '#faf5ff',\n 100: '#f3e8ff',\n 200: '#e9d5ff',\n 300: '#d8b4fe',\n 400: '#c084fc',\n 500: '#a855f7',\n 600: '#9333ea',\n 700: '#7e22ce',\n 800: '#6b21a8',\n 900: '#581c87',\n },\n violet: {\n 50: '#f5f3ff',\n 100: '#ede9fe',\n 200: '#ddd6fe',\n 300: '#c4b5fd',\n 400: '#a78bfa',\n 500: '#8b5cf6',\n 600: '#7c3aed',\n 700: '#6d28d9',\n 800: '#5b21b6',\n 900: '#4c1d95',\n },\n indigo: {\n 50: '#eef2ff',\n 100: '#e0e7ff',\n 200: '#c7d2fe',\n 300: '#a5b4fc',\n 400: '#818cf8',\n 500: '#6366f1',\n 600: '#4f46e5',\n 700: '#4338ca',\n 800: '#3730a3',\n 900: '#312e81',\n },\n blue: {\n 50: '#eff6ff',\n 100: '#dbeafe',\n 200: '#bfdbfe',\n 300: '#93c5fd',\n 400: '#60a5fa',\n 500: '#3b82f6',\n 600: '#2563eb',\n 700: '#1d4ed8',\n 800: '#1e40af',\n 900: '#1e3a8a',\n },\n lightBlue: {\n 50: '#f0f9ff',\n 100: '#e0f2fe',\n 200: '#bae6fd',\n 300: '#7dd3fc',\n 400: '#38bdf8',\n 500: '#0ea5e9',\n 600: '#0284c7',\n 700: '#0369a1',\n 800: '#075985',\n 900: '#0c4a6e',\n },\n darkBlue: {\n 50: '#dbf4ff',\n 100: '#addbff',\n 200: '#7cc2ff',\n 300: '#4aa9ff',\n 400: '#1a91ff',\n 500: '#0077e6',\n 600: '#005db4',\n 700: '#004282',\n 800: '#002851',\n 900: '#000e21',\n },\n cyan: {\n 50: '#ecfeff',\n 100: '#cffafe',\n 200: '#a5f3fc',\n 300: '#67e8f9',\n 400: '#22d3ee',\n 500: '#06b6d4',\n 600: '#0891b2',\n 700: '#0e7490',\n 800: '#155e75',\n 900: '#164e63',\n },\n teal: {\n 50: '#f0fdfa',\n 100: '#ccfbf1',\n 200: '#99f6e4',\n 300: '#5eead4',\n 400: '#2dd4bf',\n 500: '#14b8a6',\n 600: '#0d9488',\n 700: '#0f766e',\n 800: '#115e59',\n 900: '#134e4a',\n },\n emerald: {\n 50: '#ecfdf5',\n 100: '#d1fae5',\n 200: '#a7f3d0',\n 300: '#6ee7b7',\n 400: '#34d399',\n 500: '#10b981',\n 600: '#059669',\n 700: '#047857',\n 800: '#065f46',\n 900: '#064e3b',\n },\n green: {\n 50: '#f0fdf4',\n 100: '#dcfce7',\n 200: '#bbf7d0',\n 300: '#86efac',\n 400: '#4ade80',\n 500: '#22c55e',\n 600: '#16a34a',\n 700: '#15803d',\n 800: '#166534',\n 900: '#14532d',\n },\n lime: {\n 50: '#f7fee7',\n 100: '#ecfccb',\n 200: '#d9f99d',\n 300: '#bef264',\n 400: '#a3e635',\n 500: '#84cc16',\n 600: '#65a30d',\n 700: '#4d7c0f',\n 800: '#3f6212',\n 900: '#365314',\n },\n yellow: {\n 50: '#fefce8',\n 100: '#fef9c3',\n 200: '#fef08a',\n 300: '#fde047',\n 400: '#facc15',\n 500: '#eab308',\n 600: '#ca8a04',\n 700: '#a16207',\n 800: '#854d0e',\n 900: '#713f12',\n },\n amber: {\n 50: '#fffbeb',\n 100: '#fef3c7',\n 200: '#fde68a',\n 300: '#fcd34d',\n 400: '#fbbf24',\n 500: '#f59e0b',\n 600: '#d97706',\n 700: '#b45309',\n 800: '#92400e',\n 900: '#78350f',\n },\n orange: {\n 50: '#fff7ed',\n 100: '#ffedd5',\n 200: '#fed7aa',\n 300: '#fdba74',\n 400: '#fb923c',\n 500: '#f97316',\n 600: '#ea580c',\n 700: '#c2410c',\n 800: '#9a3412',\n 900: '#7c2d12',\n },\n red: {\n 50: '#fef2f2',\n 100: '#fee2e2',\n 200: '#fecaca',\n 300: '#fca5a5',\n 400: '#f87171',\n 500: '#ef4444',\n 600: '#dc2626',\n 700: '#b91c1c',\n 800: '#991b1b',\n 900: '#7f1d1d',\n },\n warmGray: {\n 50: '#fafaf9',\n 100: '#f5f5f4',\n 200: '#e7e5e4',\n 300: '#d6d3d1',\n 400: '#a8a29e',\n 500: '#78716c',\n 600: '#57534e',\n 700: '#44403c',\n 800: '#292524',\n 900: '#1c1917',\n },\n trueGray: {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#e5e5e5',\n 300: '#d4d4d4',\n 400: '#a3a3a3',\n 500: '#737373',\n 600: '#525252',\n 700: '#404040',\n 800: '#262626',\n 900: '#171717',\n },\n gray: {\n 50: '#fafafa',\n 100: '#f4f4f5',\n 200: '#e4e4e7',\n 300: '#d4d4d8',\n 400: '#a1a1aa',\n 500: '#71717a',\n 600: '#52525b',\n 700: '#3f3f46',\n 800: '#27272a',\n 900: '#18181b',\n },\n coolGray: {\n 50: '#f9fafb',\n 100: '#f3f4f6',\n 200: '#e5e7eb',\n 300: '#d1d5db',\n 400: '#9ca3af',\n 500: '#6b7280',\n 600: '#4b5563',\n 700: '#374151',\n 800: '#1f2937',\n 900: '#111827',\n },\n blueGray: {\n 50: '#f8fafc',\n 100: '#f1f5f9',\n 200: '#e2e8f0',\n 300: '#cbd5e1',\n 400: '#94a3b8',\n 500: '#64748b',\n 600: '#475569',\n 700: '#334155',\n 800: '#1e293b',\n 900: '#0f172a',\n },\n dark: {\n 50: '#18181b',\n 100: '#27272a',\n 200: '#3f3f46',\n 300: '#52525b',\n 400: '#71717a',\n 500: '#a1a1aa',\n 600: '#d4d4d8',\n 700: '#e4e4e7',\n 800: '#f4f4f5',\n 900: '#fafafa',\n },\n text: {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#e5e5e5',\n 300: '#d4d4d4',\n 400: '#a3a3a3',\n 500: '#737373',\n 600: '#525252',\n 700: '#404040',\n 800: '#262626',\n 900: '#171717',\n },\n // Derived colors\n danger: {} as IColorHues,\n error: {} as IColorHues,\n success: {} as IColorHues,\n warning: {} as IColorHues,\n muted: {} as IColorHues,\n primary: {} as IColorHues,\n info: {} as IColorHues,\n secondary: {} as IColorHues,\n light: {} as IColorHues,\n tertiary: {} as IColorHues,\n};\n\ncolors.danger = colors.rose;\ncolors.error = colors.red;\ncolors.success = colors.green;\ncolors.warning = colors.orange;\ncolors.muted = colors.trueGray;\ncolors.primary = colors.cyan;\ncolors.secondary = colors.pink;\ncolors.tertiary = colors.emerald;\ncolors.info = colors.lightBlue;\ncolors.light = colors.warmGray;\n\nexport default colors;\n// export type IColors = Leaves;\nexport type IColors = Leaves;\n","const radii = {\n 'none': 0,\n 'xs': 2,\n 'sm': 4,\n 'md': 6,\n 'lg': 8,\n 'xl': 12,\n '2xl': 16,\n '3xl': 24,\n 'full': 9999,\n};\n\nexport type IRadii = keyof typeof radii;\n\nexport default radii;\n","import colors from './colors';\nconst shadow = {\n 'none': {\n shadowColor: 'transparent',\n shadowOffset: {\n width: 0,\n height: 0,\n },\n shadowOpacity: 0,\n shadowRadius: 0,\n elevation: 0,\n },\n '0': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 1,\n },\n shadowOpacity: 0.18,\n shadowRadius: 1.0,\n elevation: 1,\n },\n '1': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 1,\n },\n shadowOpacity: 0.2,\n shadowRadius: 1.41,\n elevation: 2,\n },\n '2': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 1,\n },\n shadowOpacity: 0.22,\n shadowRadius: 2.22,\n elevation: 3,\n },\n '3': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 2,\n },\n shadowOpacity: 0.23,\n shadowRadius: 2.62,\n elevation: 4,\n },\n '4': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 2,\n },\n shadowOpacity: 0.25,\n shadowRadius: 3.84,\n elevation: 5,\n },\n '5': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 3,\n },\n shadowOpacity: 0.27,\n shadowRadius: 4.65,\n elevation: 6,\n },\n '6': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 3,\n },\n shadowOpacity: 0.29,\n shadowRadius: 4.65,\n elevation: 7,\n },\n '7': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 4,\n },\n shadowOpacity: 0.3,\n shadowRadius: 4.65,\n elevation: 8,\n },\n '8': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 4,\n },\n shadowOpacity: 0.32,\n shadowRadius: 5.46,\n elevation: 9,\n },\n '9': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 5,\n },\n shadowOpacity: 0.34,\n shadowRadius: 6.27,\n elevation: 10,\n },\n};\n\nexport type IShadow = keyof typeof shadow;\nexport default shadow;\n","export const spacing = {\n 'px': '1px',\n '0': 0,\n '0.5': 2,\n '1': 4,\n '1.5': 6,\n '2': 8,\n '2.5': 10,\n '3': 12,\n '3.5': 14,\n '4': 16,\n '5': 20,\n '6': 24,\n '7': 28,\n '8': 32,\n '9': 36,\n '10': 40,\n '12': 48,\n '16': 64,\n '20': 80,\n '24': 96,\n '32': 128,\n '40': 160,\n '48': 192,\n '56': 224,\n '64': 256,\n '72': 288,\n '80': 320,\n '96': 384,\n '1/2': '50%',\n '1/3': '33.333%',\n '2/3': '66.666%',\n '1/4': '25%',\n '2/4': '50%',\n '3/4': '75%',\n '1/5': '20%',\n '2/5': '40%',\n '3/5': '60%',\n '4/5': '80%',\n '1/6': '16.666%',\n '2/6': '33.333%',\n '3/6': '50%',\n '4/6': '66.666%',\n '5/6': '83.333%',\n 'full': '100%',\n};\n\nexport type ISpacing = keyof typeof spacing;\n","import { spacing } from './space';\n\nconst container = {\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n};\n\nconst sizes = {\n ...spacing,\n ...{\n '3xs': 224,\n '2xs': 256,\n 'xs': 320,\n 'sm': 384,\n 'md': 448,\n 'lg': 512,\n 'xl': 576,\n '2xl': 672,\n },\n container,\n};\n\nexport type ISizes = keyof typeof sizes;\nexport default sizes;\n","const opacity = {\n 0: 0,\n 5: 0.05,\n 10: 0.1,\n 20: 0.2,\n 25: 0.25,\n 30: 0.3,\n 40: 0.4,\n 50: 0.5,\n 60: 0.6,\n 70: 0.7,\n 75: 0.75,\n 80: 0.8,\n 90: 0.9,\n 95: 0.95,\n 100: 1,\n};\nexport type IOpacity = keyof typeof opacity;\n\nexport default opacity;\n","import borderWidths from './borders';\nimport breakpoints from './breakpoints';\nimport colors from './colors';\nimport radii from './radius';\nimport shadows from './shadows';\nimport sizes from './sizes';\nimport { spacing } from './space';\nimport typography from './typography';\nimport opacity from './opacity';\n\nconst theme = {\n borderWidths,\n breakpoints,\n colors,\n radii,\n ...typography,\n sizes,\n space: spacing,\n shadows,\n opacity,\n};\n\nexport const themePropertyMap: any = {\n borderRadius: 'radii',\n color: 'colors',\n letterSpacing: 'letterSpacings',\n lineHeight: 'lineHeights',\n fontFamily: 'fonts',\n fontSize: 'fontSizes',\n fontWeight: 'fontWeights',\n size: 'sizes',\n space: 'space',\n border: 'borders',\n shadow: 'shadows',\n};\n\nexport default theme;\n","const typography = {\n letterSpacings: {\n 'xs': '-0.05em',\n 'sm': '-0.025em',\n 'md': 0,\n 'lg': '0.025em',\n 'xl': '0.05em',\n '2xl': '0.1em',\n },\n lineHeights: {\n '2xs': '1em',\n 'xs': '1.125em',\n 'sm': '1.25em',\n 'md': '1.375em',\n 'lg': '1.5em',\n 'xl': '1.75em',\n '2xl': '2em',\n '3xl': '2.5em',\n '4xl': '3em',\n '5xl': '4em',\n },\n fontConfig: {\n // Roboto: {\n // 100: {\n // normal: 'Roboto-Light',\n // italic: 'Roboto-LightItalic',\n // },\n // 200: {\n // normal: 'Roboto-Light',\n // italic: 'Roboto-LightItalic',\n // },\n // 300: {\n // normal: 'Roboto-Light',\n // italic: 'Roboto-LightItalic',\n // },\n // 400: {\n // normal: 'Roboto-Regular',\n // italic: 'Roboto-Italic',\n // },\n // 500: {\n // normal: 'Roboto-Medium',\n // italic: 'Roboto-MediumItalic',\n // },\n // 600: {\n // normal: 'Roboto-Medium',\n // italic: 'Roboto-MediumItalic',\n // },\n // 700: {\n // normal: 'Roboto-Bold',\n // italic: 'Roboto-BoldItalic',\n // },\n // 800: {\n // normal: 'Roboto-Bold',\n // italic: 'Roboto-BoldItalic',\n // },\n // 900: {\n // normal: 'Roboto-Bold',\n // italic: 'Roboto-BoldItalic',\n // },\n // },\n // Montserrat: {\n // 100: {\n // normal: 'Montserrat-Light',\n // italic: 'Montserrat-LightItalic',\n // },\n // 200: {\n // normal: 'Montserrat-Light',\n // italic: 'Montserrat-LightItalic',\n // },\n // 300: {\n // normal: 'Montserrat-Light',\n // italic: 'Montserrat-LightItalic',\n // },\n // 400: {\n // normal: 'Montserrat-Regular',\n // italic: 'Montserrat-Italic',\n // },\n // 500: {\n // normal: 'Montserrat-Medium',\n // italic: 'Montserrat-MediumItalic',\n // },\n // 600: {\n // normal: 'Montserrat-SemiBold',\n // italic: 'Montserrat-SemiBoldItalic',\n // },\n // 700: {\n // normal: 'Montserrat-Bold',\n // italic: 'Montserrat-BoldItalic',\n // },\n // 800: {\n // normal: 'Montserrat-ExtraBold',\n // italic: 'Montserrat-ExtraBoldItalic',\n // },\n // 900: {\n // normal: 'Montserrat-Black',\n // italic: 'Montserrat-BlackItalic',\n // },\n // },\n },\n fontWeights: {\n hairline: 100,\n thin: 200,\n light: 300,\n normal: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n extrabold: 800,\n black: 900,\n extraBlack: 950,\n },\n fonts: {\n heading: undefined,\n body: undefined,\n mono: undefined,\n },\n fontSizes: {\n '2xs': 10,\n 'xs': 12,\n 'sm': 14,\n 'md': 16,\n 'lg': 18,\n 'xl': 20,\n '2xl': 24,\n '3xl': 30,\n '4xl': 36,\n '5xl': 48,\n '6xl': 60,\n '7xl': 72,\n '8xl': 96,\n '9xl': 128,\n },\n};\n\nexport type ITypography = typeof typography;\nexport type IFontSize = keyof typeof typography.fontSizes;\nexport type ILetterSpacing = keyof typeof typography.letterSpacings;\nexport type ILineHeight = keyof typeof typography.lineHeights;\nexport type IFontWeight = keyof typeof typography.fontWeights;\n// export type IFont = typeof typography.fonts;\nexport interface IFont {\n heading?: string;\n body?: string;\n mono?: string;\n}\n\nexport default typography;\n","// For backward compatibility with 3.0 of props like non token string numbers `` => used to get applied as 39px. RN expects fontWeight to be string and crashes with numbers\n// https://reactnative.dev/docs/text-style-props#fontweight\nexport const convertStringNumberToNumber = (key: string, value: string) => {\n if (\n typeof value === 'string' &&\n key !== 'fontWeight' &&\n value &&\n !isNaN(Number(value))\n ) {\n return parseFloat(value);\n }\n\n return value;\n};\n","import { Platform } from 'react-native';\nimport get from 'lodash.get';\nimport { convertStringNumberToNumber } from './convertStringNumberToNumber';\nimport { resolveValueWithBreakpoint } from '../hooks/useThemeProps/utils';\n\n/**\n * Common Logic Sharing between useSx and useStyledSytem\n */\nexport const getRNKeyAndStyleValue = ({\n config,\n value,\n key,\n theme,\n styledSystemProps,\n currentBreakpoint,\n}: any) => {\n let style: any = {};\n if (config === true) {\n style = {\n ...style,\n [key]: convertStringNumberToNumber(key, value),\n };\n } else if (config) {\n //@ts-ignore\n const { property, scale, properties, transformer } = config;\n let val = value;\n\n if (transformer) {\n val = transformer(val, theme[scale], theme, styledSystemProps.fontSize);\n } else {\n // If a token is not found in the theme\n val = get(theme[scale], value, value);\n }\n\n if (typeof val === 'string') {\n if (val.endsWith('px')) {\n val = parseFloat(val);\n } else if (val.endsWith('em') && Platform.OS !== 'web') {\n const fontSize = resolveValueWithBreakpoint(\n styledSystemProps.fontSize,\n theme.breakpoints,\n currentBreakpoint,\n key\n );\n val =\n parseFloat(val) *\n parseFloat(get(theme.fontSizes, fontSize, fontSize));\n }\n }\n\n val = convertStringNumberToNumber(key, val);\n\n if (properties) {\n //@ts-ignore\n properties.forEach((property) => {\n style = {\n ...style,\n [property]: val,\n };\n });\n } else if (property) {\n style = {\n ...style,\n [property]: val,\n };\n } else {\n style = {\n ...style,\n ...val,\n };\n }\n }\n\n return style;\n};\n","import { StyleSheet } from 'react-native';\nimport get from 'lodash.get';\nimport { transparentize } from './tools';\nimport type { ITheme } from '.';\nimport type { UseResponsiveQueryParams } from '../utils/useResponsiveQuery';\nimport { getStyledFromProps } from '../utils/getStyledFromProps';\nimport { convertStringNumberToNumber } from '../utils/convertStringNumberToNumber';\nconst isNumber = (n: any) => typeof n === 'number' && !isNaN(n);\n\nexport const getColor = (rawValue: any, scale: any, theme: any) => {\n const alphaMatched =\n typeof rawValue === 'string' ? rawValue?.match(/:alpha\\.\\d\\d?\\d?/) : false;\n\n if (alphaMatched) {\n const colorMatched = rawValue?.match(/^.*?(?=:alpha)/);\n const color = colorMatched ? colorMatched[0] : colorMatched;\n const alphaValue = alphaMatched[0].split('.')[1];\n const alphaFromToken = get(theme.opacity, alphaValue, alphaValue);\n const alpha = alphaFromToken ? parseFloat(alphaFromToken) : 1;\n const newColor = transparentize(color, alpha)(theme);\n return newColor;\n } else {\n return get(scale, rawValue, rawValue);\n }\n};\n\n// To handle negative margins\nconst getMargin = (n: any, scale: any) => {\n n = convertStringNumberToNumber('margin', n);\n if (!isNumber(n)) {\n return get(scale, n, n);\n }\n\n const isNegative = n < 0;\n const absolute = Math.abs(n);\n const value = get(scale, absolute, absolute);\n if (!isNumber(value)) {\n return isNegative ? '-' + value : value;\n }\n return value * (isNegative ? -1 : 1);\n};\n\nexport const layout = {\n width: {\n property: 'width',\n scale: 'sizes',\n },\n w: {\n property: 'width',\n scale: 'sizes',\n },\n height: {\n property: 'height',\n scale: 'sizes',\n },\n h: {\n property: 'height',\n scale: 'sizes',\n },\n minWidth: {\n property: 'minWidth',\n scale: 'sizes',\n },\n minW: {\n property: 'minWidth',\n scale: 'sizes',\n },\n minHeight: {\n property: 'minHeight',\n scale: 'sizes',\n },\n minH: {\n property: 'minHeight',\n scale: 'sizes',\n },\n maxWidth: {\n property: 'maxWidth',\n scale: 'sizes',\n },\n maxW: {\n property: 'maxWidth',\n scale: 'sizes',\n },\n maxHeight: {\n property: 'maxHeight',\n scale: 'sizes',\n },\n maxH: {\n property: 'maxHeight',\n scale: 'sizes',\n },\n size: {\n properties: ['width', 'height'],\n scale: 'sizes',\n },\n boxSize: {\n properties: ['width', 'height'],\n scale: 'sizes',\n },\n overflow: true,\n overflowX: true,\n overflowY: true,\n display: true,\n verticalAlign: true,\n textAlign: true,\n} as const;\n\nexport const flexbox = {\n alignItems: true,\n alignContent: true,\n justifyItems: true,\n justifyContent: true,\n flexWrap: true,\n flexDirection: true,\n flexDir: {\n property: 'flexDirection',\n scale: 'flexDirection',\n },\n // item\n flex: true,\n flexGrow: true,\n flexShrink: true,\n flexBasis: true,\n justifySelf: true,\n alignSelf: true,\n order: true,\n} as const;\n\nexport const position = {\n position: true,\n zIndex: {\n property: 'zIndex',\n },\n top: {\n property: 'top',\n scale: 'space',\n },\n right: {\n property: 'right',\n scale: 'space',\n },\n bottom: {\n property: 'bottom',\n scale: 'space',\n },\n left: {\n property: 'left',\n scale: 'space',\n },\n} as const;\n\nexport const color = {\n color: {\n property: 'color',\n scale: 'colors',\n transformer: getColor,\n },\n tintColor: {\n property: 'tintColor',\n scale: 'colors',\n transformer: getColor,\n },\n backgroundColor: {\n property: 'backgroundColor',\n scale: 'colors',\n transformer: getColor,\n },\n opacity: {\n property: 'opacity',\n scale: 'opacity',\n },\n bg: {\n property: 'backgroundColor',\n scale: 'colors',\n transformer: getColor,\n },\n bgColor: {\n property: 'backgroundColor',\n scale: 'colors',\n transformer: getColor,\n },\n background: {\n property: 'backgroundColor',\n scale: 'colors',\n transformer: getColor,\n },\n textDecorationColor: {\n property: 'textDecorationColor',\n scale: 'colors',\n transformer: getColor,\n },\n} as const;\n\nexport const border = {\n borderWidth: {\n property: 'borderWidth',\n scale: 'borderWidths',\n },\n borderStyle: {\n property: 'borderStyle',\n scale: 'borderStyles',\n },\n borderColor: {\n property: 'borderColor',\n scale: 'colors',\n transformer: getColor,\n },\n borderRadius: {\n property: 'borderRadius',\n scale: 'radii',\n },\n borderTop: {\n property: 'borderTop',\n scale: 'borders',\n },\n borderTopRadius: {\n properties: ['borderTopLeftRadius', 'borderTopRightRadius'],\n scale: 'radii',\n },\n borderLeftRadius: {\n properties: ['borderTopLeftRadius', 'borderBottomLeftRadius'],\n scale: 'radii',\n },\n borderRightRadius: {\n properties: ['borderTopRightRadius', 'borderBottomRightRadius'],\n scale: 'radii',\n },\n borderTopLeftRadius: {\n property: 'borderTopLeftRadius',\n scale: 'radii',\n },\n borderTopRightRadius: {\n property: 'borderTopRightRadius',\n scale: 'radii',\n },\n borderRight: {\n property: 'borderRight',\n scale: 'borders',\n },\n borderBottom: {\n property: 'borderBottom',\n scale: 'borders',\n },\n borderBottomLeftRadius: {\n property: 'borderBottomLeftRadius',\n scale: 'radii',\n },\n borderBottomRightRadius: {\n property: 'borderBottomRightRadius',\n scale: 'radii',\n },\n borderLeft: {\n property: 'borderLeft',\n scale: 'borders',\n },\n borderX: {\n properties: ['borderLeft', 'borderRight'],\n scale: 'borders',\n },\n borderY: {\n properties: ['borderTop', 'borderBottom'],\n scale: 'borders',\n },\n borderTopWidth: {\n property: 'borderTopWidth',\n scale: 'borderWidths',\n },\n borderTopColor: {\n property: 'borderTopColor',\n scale: 'colors',\n transformer: getColor,\n },\n borderTopStyle: {\n property: 'borderTopStyle',\n scale: 'borderStyles',\n },\n borderBottomWidth: {\n property: 'borderBottomWidth',\n scale: 'borderWidths',\n },\n borderBottomColor: {\n property: 'borderBottomColor',\n scale: 'colors',\n transformer: getColor,\n },\n borderBottomStyle: {\n property: 'borderBottomStyle',\n scale: 'borderStyles',\n },\n borderLeftWidth: {\n property: 'borderLeftWidth',\n scale: 'borderWidths',\n },\n borderLeftColor: {\n property: 'borderLeftColor',\n scale: 'colors',\n transformer: getColor,\n },\n borderLeftStyle: {\n property: 'borderLeftStyle',\n scale: 'borderStyles',\n },\n borderRightWidth: {\n property: 'borderRightWidth',\n scale: 'borderWidths',\n },\n borderRightColor: {\n property: 'borderRightColor',\n scale: 'colors',\n transformer: getColor,\n },\n borderRightStyle: {\n property: 'borderRightStyle',\n scale: 'borderStyles',\n },\n rounded: {\n property: 'borderRadius',\n scale: 'radii',\n },\n\n roundedTopLeft: {\n property: 'borderTopLeftRadius',\n scale: 'radii',\n },\n\n roundedTopRight: {\n property: 'borderTopRightRadius',\n scale: 'radii',\n },\n\n roundedBottomLeft: {\n property: 'borderBottomLeftRadius',\n scale: 'radii',\n },\n\n roundedBottomRight: {\n property: 'borderBottomRightRadius',\n scale: 'radii',\n },\n\n roundedTop: {\n properties: ['borderTopLeftRadius', 'borderTopRightRadius'],\n scale: 'radii',\n },\n borderBottomRadius: {\n properties: ['borderBottomLeftRadius', 'borderBottomRightRadius'],\n scale: 'radii',\n },\n roundedBottom: {\n properties: ['borderBottomLeftRadius', 'borderBottomRightRadius'],\n scale: 'radii',\n },\n\n roundedLeft: {\n properties: ['borderTopLeftRadius', 'borderBottomLeftRadius'],\n scale: 'radii',\n },\n\n roundedRight: {\n properties: ['borderTopRightRadius', 'borderBottomRightRadius'],\n scale: 'radii',\n },\n} as const;\n\nexport const background = {\n backgroundSize: true,\n backgroundPosition: true,\n backgroundRepeat: true,\n backgroundAttachment: true,\n backgroundBlendMode: true,\n bgImage: {\n property: 'backgroundImage',\n },\n bgImg: {\n property: 'backgroundImage',\n },\n bgBlendMode: {\n property: 'backgroundBlendMode',\n },\n bgSize: {\n property: 'backgroundSize',\n },\n bgPosition: {\n property: 'backgroundPosition',\n },\n bgPos: {\n property: 'backgroundPosition',\n },\n bgRepeat: {\n property: 'backgroundRepeat',\n },\n bgAttachment: {\n property: 'backgroundAttachment',\n },\n} as const;\n\nexport const space = {\n margin: {\n property: 'margin',\n scale: 'space',\n transformer: getMargin,\n },\n m: {\n property: 'margin',\n scale: 'space',\n transformer: getMargin,\n },\n marginTop: {\n property: 'marginTop',\n scale: 'space',\n transformer: getMargin,\n },\n mt: {\n property: 'marginTop',\n scale: 'space',\n transformer: getMargin,\n },\n marginRight: {\n property: 'marginRight',\n scale: 'space',\n transformer: getMargin,\n },\n mr: {\n property: 'marginRight',\n scale: 'space',\n transformer: getMargin,\n },\n marginBottom: {\n property: 'marginBottom',\n scale: 'space',\n transformer: getMargin,\n },\n mb: {\n property: 'marginBottom',\n scale: 'space',\n transformer: getMargin,\n },\n marginLeft: {\n property: 'marginLeft',\n scale: 'space',\n transformer: getMargin,\n },\n ml: {\n property: 'marginLeft',\n scale: 'space',\n transformer: getMargin,\n },\n marginX: {\n properties: ['marginLeft', 'marginRight'],\n scale: 'space',\n transformer: getMargin,\n },\n mx: {\n properties: ['marginLeft', 'marginRight'],\n scale: 'space',\n transformer: getMargin,\n },\n marginY: {\n properties: ['marginTop', 'marginBottom'],\n scale: 'space',\n transformer: getMargin,\n },\n my: {\n properties: ['marginTop', 'marginBottom'],\n scale: 'space',\n transformer: getMargin,\n },\n\n padding: {\n property: 'padding',\n scale: 'space',\n },\n p: {\n property: 'padding',\n scale: 'space',\n },\n paddingTop: {\n property: 'paddingTop',\n scale: 'space',\n },\n pt: {\n property: 'paddingTop',\n scale: 'space',\n },\n paddingRight: {\n property: 'paddingRight',\n scale: 'space',\n },\n pr: {\n property: 'paddingRight',\n scale: 'space',\n },\n paddingBottom: {\n property: 'paddingBottom',\n scale: 'space',\n },\n pb: {\n property: 'paddingBottom',\n scale: 'space',\n },\n paddingLeft: {\n property: 'paddingLeft',\n scale: 'space',\n },\n pl: {\n property: 'paddingLeft',\n scale: 'space',\n },\n paddingX: {\n properties: ['paddingLeft', 'paddingRight'],\n scale: 'space',\n },\n px: {\n properties: ['paddingLeft', 'paddingRight'],\n scale: 'space',\n },\n paddingY: {\n properties: ['paddingTop', 'paddingBottom'],\n scale: 'space',\n },\n py: {\n properties: ['paddingTop', 'paddingBottom'],\n scale: 'space',\n },\n gap: {\n property: 'gap',\n scale: 'space',\n },\n} as const;\n\nexport const typography = {\n fontFamily: {\n property: 'fontFamily',\n scale: 'fonts',\n // transformer: (val: any, scale: any) => {\n // const value = get(scale, val);\n // return value ? value.toString() : undefined;\n // },\n },\n fontSize: {\n property: 'fontSize',\n scale: 'fontSizes',\n },\n fontWeight: {\n property: 'fontWeight',\n scale: 'fontWeights',\n transformer: (val: any, scale: any) => {\n return val ? get(scale, val, val).toString() : val;\n },\n },\n lineHeight: {\n property: 'lineHeight',\n scale: 'lineHeights',\n },\n letterSpacing: {\n property: 'letterSpacing',\n scale: 'letterSpacings',\n },\n textAlign: true,\n fontStyle: true,\n wordBreak: true,\n overflowWrap: true,\n textOverflow: true,\n textTransform: true,\n whiteSpace: true,\n textDecoration: { property: 'textDecorationLine' },\n txtDecor: { property: 'textDecorationLine' },\n textDecorationLine: true,\n} as const;\n\nconst extraProps = {\n outline: true,\n outlineWidth: true,\n outlineColor: true,\n outlineStyle: true,\n shadow: {\n scale: 'shadows',\n },\n cursor: true,\n overflow: true,\n userSelect: { property: 'userSelect' },\n} as const;\n\nexport const propConfig = {\n ...color,\n ...space,\n ...layout,\n ...flexbox,\n ...border,\n ...position,\n ...typography,\n ...background,\n ...extraProps,\n} as const;\n\nexport const getStyleAndFilteredProps = ({\n style,\n theme,\n debug,\n currentBreakpoint,\n getResponsiveStyles,\n styledSystemProps,\n}: any) => {\n let dataSet: any = {};\n\n const orderedBreakPoints = Object.entries(\n theme.breakpoints as ITheme['breakpoints']\n ).sort((a, b) => a[1] - b[1]);\n\n let { styleFromProps, responsiveStyles }: any = getStyledFromProps(\n styledSystemProps,\n theme,\n currentBreakpoint,\n propConfig\n );\n\n if (responsiveStyles) {\n const query: UseResponsiveQueryParams = { query: [] };\n orderedBreakPoints.forEach((o) => {\n const key = o[0];\n if (key === 'base') {\n if (responsiveStyles) query.initial = responsiveStyles.base;\n } else {\n if (responsiveStyles)\n if (key in responsiveStyles) {\n query?.query?.push({\n minWidth: o[1],\n style: responsiveStyles[key],\n });\n }\n }\n });\n\n const { dataSet: newDataSet, styles } = getResponsiveStyles(query);\n dataSet = { ...dataSet, ...newDataSet };\n styleFromProps = { ...styleFromProps, ...StyleSheet.flatten(styles) };\n }\n\n if (process.env.NODE_ENV === 'development' && debug) {\n /* eslint-disable-next-line */\n console.log('style ', debug + ' :: ', {\n styleFromProps,\n style,\n styledSystemProps,\n });\n }\n\n return {\n styleSheet: StyleSheet.create({ box: styleFromProps }),\n styleFromProps,\n dataSet,\n };\n};\n\nexport type StyledPropConfig = typeof propConfig;\n","import { hasValidBreakpointFormat } from '../theme/tools';\nimport { getRNKeyAndStyleValue } from './getRNKeyAndStyleValue';\nimport type { ITheme } from '../theme';\n/**\n * Common Logic Sharing between useSx and useStyledSytem\n * @param styledSystemProps\n * @param theme\n * @param currentBreakpoint\n * @returns styleFromProps, responsiveStyles\n */\n\nexport const getStyledFromProps = (\n styledSystemProps: any,\n theme: any,\n currentBreakpoint: any,\n propConfig: any\n) => {\n let styleFromProps: any = {};\n let responsiveStyles: null | Record<\n keyof typeof theme.breakpoints,\n Array\n > = null;\n const orderedBreakPoints = Object.entries(\n theme.breakpoints as ITheme['breakpoints']\n ).sort((a, b) => a[1] - b[1]);\n for (const key in styledSystemProps) {\n const rawValue = styledSystemProps[key];\n\n const config = propConfig[key as keyof typeof propConfig];\n\n if (hasValidBreakpointFormat(rawValue, theme.breakpoints)) {\n if (!responsiveStyles) responsiveStyles = {};\n\n const value = rawValue;\n if (Array.isArray(value)) {\n value.forEach((v, i) => {\n //@ts-ignore\n if (!responsiveStyles[orderedBreakPoints[i][0]]) {\n //@ts-ignore\n responsiveStyles[orderedBreakPoints[i][0]] = [];\n }\n const newStyle = getRNKeyAndStyleValue({\n config,\n value: v,\n key,\n styledSystemProps,\n theme,\n currentBreakpoint,\n });\n //@ts-ignore\n responsiveStyles[orderedBreakPoints[i][0]].push(newStyle);\n });\n } else {\n for (const k in value) {\n const newStyle = getRNKeyAndStyleValue({\n config,\n value: value[k],\n key,\n styledSystemProps,\n theme,\n currentBreakpoint,\n });\n if (!responsiveStyles[k]) {\n responsiveStyles[k] = [];\n }\n responsiveStyles[k].push(newStyle);\n }\n }\n } else {\n const value = rawValue;\n const newStyle = getRNKeyAndStyleValue({\n config,\n value,\n key,\n styledSystemProps,\n theme,\n currentBreakpoint,\n });\n\n styleFromProps = {\n ...styleFromProps,\n ...newStyle,\n };\n }\n }\n\n return { styleFromProps, responsiveStyles };\n};\n","import get from 'lodash.get';\nimport isEmpty from 'lodash.isempty';\nimport Color from 'tinycolor2';\nimport type { Dict } from './utils';\n\nexport function mode(light: any, dark: any) {\n return (props: any) => (props.colorMode === 'dark' ? dark : light);\n}\n\nexport const transparentize = (color: string, opacity: number) => (\n theme: Dict\n) => {\n const raw = getColor(theme, color);\n return Color(raw).setAlpha(opacity).toRgbString();\n};\n\nexport const getColor = (theme: Dict, color: string, fallback?: string) => {\n const hex = get(theme, `colors.${color}`, color);\n const isValid = Color(hex).isValid();\n return isValid ? hex : fallback;\n};\n\nexport const tone = (color: string) => (theme: Dict) => {\n const hex = getColor(theme, color);\n const isDark = Color(hex).isDark();\n return isDark ? 'dark' : 'light';\n};\n\nexport const isDark = (color: string) => (theme: Dict) =>\n tone(color)(theme) === 'dark';\n\nexport const isLight = (color: string) => (theme: Dict) =>\n tone(color)(theme) === 'light';\n\ninterface RandomColorOptions {\n /**\n * If passed, string will be used to generate\n * random color\n */\n string?: string;\n /**\n * List of colors to pick from at random\n */\n colors?: string[];\n}\nexport function randomColor(opts?: RandomColorOptions) {\n const fallback = Color.random().toHexString();\n\n if (!opts || isEmpty(opts)) {\n return fallback;\n }\n\n if (opts.string && opts.colors) {\n return randomColorFromList(opts.string, opts.colors);\n }\n\n if (opts.string && !opts.colors) {\n return randomColorFromString(opts.string);\n }\n\n if (opts.colors && !opts.string) {\n return randomFromList(opts.colors);\n }\n\n return fallback;\n}\n\nfunction randomFromList(list: string[]) {\n return list[Math.floor(Math.random() * list.length)];\n}\n\nfunction randomColorFromList(str: string, list: string[]) {\n let index = 0;\n if (str.length === 0) return list[0];\n for (let i = 0; i < str.length; i++) {\n index = str.charCodeAt(i) + ((index << 5) - index);\n index = index & index;\n }\n index = ((index % list.length) + list.length) % list.length;\n return list[index];\n}\n\nfunction randomColorFromString(str: string) {\n let hash = 0;\n if (str.length === 0) return hash.toString();\n for (let i = 0; i < str.length; i++) {\n hash = str.charCodeAt(i) + ((hash << 5) - hash);\n hash = hash & hash;\n }\n let color = '#';\n for (let j = 0; j < 3; j++) {\n const value = (hash >> (j * 8)) & 255;\n color += ('00' + value.toString(16)).substr(-2);\n }\n return color;\n}\n","import omitBy from 'lodash.omitby';\nimport isNil from 'lodash.isnil';\nimport pick from 'lodash.pick';\nimport omit from 'lodash.omit';\nimport get from 'lodash.get';\nimport type { ITheme } from '../index';\nimport { Platform } from 'react-native';\n\nexport const stylingProps = {\n margin: [\n 'margin',\n 'm',\n 'marginTop',\n 'mt',\n 'marginRight',\n 'mr',\n 'marginBottom',\n 'mb',\n 'marginLeft',\n 'ml',\n 'marginX',\n 'mx',\n 'marginY',\n 'my',\n ],\n padding: [\n 'padding',\n 'p',\n 'paddingTop',\n 'pt',\n 'paddingRight',\n 'pr',\n 'paddingBottom',\n 'pb',\n 'paddingLeft',\n 'pl',\n 'paddingX',\n 'px',\n 'paddingY',\n 'py',\n ],\n border: [\n 'border',\n 'borderWidth',\n 'borderStyle',\n 'borderColor',\n 'borderRadius',\n 'borderTop',\n 'borderTopWidth',\n 'borderTopStyle',\n 'borderTopColor',\n 'borderTopLeftRadius',\n 'borderTopRightRadius',\n 'borderRight',\n 'borderRightWidth',\n 'borderRightStyle',\n 'borderRightColor',\n 'borderBottom',\n 'borderBottomWidth',\n 'borderBottomStyle',\n 'borderBottomColor',\n 'borderBottomLeftRadius',\n 'borderBottomRightRadius',\n 'borderLeft',\n 'borderLeftWidth',\n 'borderLeftStyle',\n 'borderLeftColor',\n 'borderX',\n 'borderY',\n 'rounded',\n ],\n layout: [\n 'width',\n 'w',\n 'height',\n 'h',\n 'display',\n 'minWidth',\n 'minW',\n 'minH',\n 'minHeight',\n 'maxWidth',\n 'maxW',\n 'maxHeight',\n 'maxH',\n 'size',\n 'verticalAlign',\n 'overflow',\n 'overflowX',\n 'overflowY',\n ],\n flexbox: [\n 'alignItems',\n 'alignContent',\n 'justifyItems',\n 'justifyContent',\n 'flexWrap',\n 'flexDirection',\n 'flex',\n 'flexGrow',\n 'flexShrink',\n 'flexBasis',\n 'justifySelf',\n 'alignSelf',\n 'order',\n ],\n position: ['position', 'zIndex', 'top', 'right', 'bottom', 'left'],\n outline: ['outlineWidth', 'outlineColor', 'outlineStyle'],\n background: ['bg', 'backgroundColor', 'bgColor'],\n};\nexport type Dict = Record;\nexport function omitUndefined(obj: any) {\n return omitBy(obj, isNil);\n}\nexport function getRandomString(length: number) {\n var result = '';\n var characters =\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n var charactersLength = characters.length;\n for (var i = 0; i < length; i++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n return result;\n}\n// Inefficient way for pick, but retains order of props.\nfunction orderedPick(obj: any, values: any) {\n const ret: any = {};\n Object.keys(obj).forEach((key: string) => {\n if (values.includes(key)) {\n ret[key] = obj[key];\n }\n });\n return ret;\n}\nexport function orderedExtractInObject(parent: any, values: Array) {\n return [\n omitUndefined(orderedPick(parent, values)),\n omitUndefined(omit(parent, values)),\n ];\n}\n/**\n *\n * @param parent The object from which data needs to extracted\n * @param values Keys which needs to be extracted\n * @returns [extractedProps, remainingProps]\n */\nexport function extractInObject(parent: any, values: Array) {\n return [\n omitUndefined(pick(parent, values)),\n omitUndefined(omit(parent, values)),\n ];\n}\nexport function getColorFormColorScheme(props: Record) {\n const { theme, colorScheme, isDisabled } = props;\n const simpleColorScheme = colorScheme.split('.')[0];\n if (isDisabled) return 'gray.300';\n else if (simpleColorScheme in theme.colors) {\n return theme.colors[simpleColorScheme][0] === '#'\n ? simpleColorScheme\n : theme.colors[simpleColorScheme][400] ||\n theme.colors[simpleColorScheme][200];\n } else return 'primary.200';\n}\n\n// TODO: This function can be removed.\nexport function getColorScheme(\n props: Record,\n customColorScheme?: string\n) {\n let { theme, colorScheme } = props;\n colorScheme = customColorScheme || colorScheme;\n if (!(colorScheme in theme.colors)) return 'primary';\n else {\n if (typeof theme.colors[colorScheme] === 'object') return colorScheme;\n }\n}\nexport const inValidBreakpointProps = ['style', 'children', 'shadowOffset'];\nexport function hasValidBreakpointFormat(\n breaks: any,\n themeBreakpoints?: any,\n property?: string\n) {\n if (property && inValidBreakpointProps.indexOf(property) !== -1) {\n return false;\n } else if (Array.isArray(breaks)) {\n return breaks.length ? true : false;\n } else if (typeof breaks === 'object' && breaks !== null) {\n const keys = Object.keys(breaks);\n const themeBreakPointKeys = Object.keys(themeBreakpoints);\n for (let i = 0; i < keys.length; i++) {\n if (themeBreakPointKeys.indexOf(keys[i]) === -1) {\n return false;\n }\n }\n return true;\n } else {\n return false;\n }\n}\nexport function findLastValidBreakpoint(\n values: any,\n themeBreakpoints: any,\n currentBreakpoint: number\n) {\n const valArray = Array.isArray(values)\n ? values\n : Object.keys(themeBreakpoints).map((bPoint: string) => values[bPoint]);\n return (\n valArray[currentBreakpoint] ??\n valArray\n .slice(0, currentBreakpoint + 1)\n .filter((v: any) => !isNil(v))\n .pop()\n );\n}\nexport function getClosestBreakpoint(\n values: Record,\n point: number\n) {\n const dimValues = Object.values(values);\n let index = -1;\n let breakpointsObj: any = {};\n for (let i = 0; i < dimValues.length; i++) {\n breakpointsObj[dimValues[i]] = i;\n }\n const breakpoints = Object.keys(breakpointsObj);\n for (let i = 0; i < breakpoints.length; i++) {\n if (parseInt(breakpoints[i]) === point) {\n index = breakpointsObj[breakpoints[i]];\n break;\n } else if (parseInt(breakpoints[i]) > point && i !== 0) {\n index = breakpointsObj[breakpoints[i - 1]];\n break;\n }\n // If windowWidth is greater than last available breakpoint clamp it to last index\n else if (parseInt(breakpoints[i]) < point && i === dimValues.length - 1) {\n index = breakpointsObj[breakpoints[i]];\n break;\n }\n }\n return index;\n}\n\nexport const baseFontSize = 16;\n\nexport const convertAbsoluteToRem = (px: number) => {\n return `${px / baseFontSize}rem`;\n};\n\nexport const convertRemToAbsolute = (rem: number) => {\n return rem * baseFontSize;\n};\n\nexport const convertToDp = (value: number | string): number => {\n const numberRegex = /^\\d+$/;\n\n if (typeof value === 'number') {\n return value;\n } else {\n const isAbsolute = numberRegex.test(value);\n const isPx = !isAbsolute && value.endsWith('px');\n const isRem = !isAbsolute && value.endsWith('rem');\n const isEm = !isAbsolute && value.endsWith('em');\n\n let finalDpValue = 0;\n\n if (isAbsolute || isPx) {\n finalDpValue = parseFloat(value);\n } else if (isEm) {\n finalDpValue = convertRemToAbsolute(parseFloat(value));\n } else if (isRem) {\n finalDpValue = convertRemToAbsolute(parseFloat(value));\n }\n\n return finalDpValue;\n }\n};\n\n/**\n *\n * @param theme\n * @description\n - Converts space/sizes/lineHeights/letterSpacings/fontSizes to `rem` on web if the token value specified is an absolute number.\n - Converts space/sizes/lineHeights/letterSpacings/fontSizes to absolute number on native if the token value specified is in `px` or `rem`\n*/\nexport const platformSpecificSpaceUnits = (theme: ITheme) => {\n const scales = ['space', 'sizes', 'fontSizes'];\n\n const newTheme = { ...theme };\n const isWeb = Platform.OS === 'web';\n scales.forEach((key) => {\n const scale = get(theme, key, {});\n const newScale = { ...scale };\n for (const scaleKey in scale) {\n const val = scale[scaleKey];\n if (typeof val !== 'object') {\n const isAbsolute = typeof val === 'number';\n const isPx = !isAbsolute && val.endsWith('px');\n const isRem = !isAbsolute && val.endsWith('rem');\n\n // If platform is web, we need to convert absolute unit to rem. e.g. 16 to 1rem\n if (isWeb) {\n if (isAbsolute) {\n newScale[scaleKey] = convertAbsoluteToRem(val);\n }\n }\n // If platform is not web, we need to convert px unit to absolute and rem unit to absolute. e.g. 16px to 16. 1rem to 16.\n else {\n if (isRem) {\n newScale[scaleKey] = convertRemToAbsolute(parseFloat(val));\n } else if (isPx) {\n newScale[scaleKey] = parseFloat(val);\n }\n }\n }\n }\n //@ts-ignore\n newTheme[key] = newScale;\n });\n\n return newTheme;\n};\nexport function isResponsiveAnyProp(props: Record, theme: any) {\n if (props) {\n const keys = Object.keys(props);\n for (let i = 0; i < keys.length; i++) {\n if (\n hasValidBreakpointFormat(props[keys[i]], theme.breakpoints, keys[i])\n ) {\n return true;\n }\n }\n }\n\n return false;\n}\n","import React from 'react';\n\ntype ResponsiveQueryContextType = {\n disableCSSMediaQueries?: boolean;\n};\n\nexport const ResponsiveQueryContext = React.createContext(\n {\n disableCSSMediaQueries: false,\n }\n);\n\nexport const ResponsiveQueryProvider = (\n props: ResponsiveQueryContextType & { children: React.ReactNode }\n) => {\n const value = React.useMemo(\n () => ({\n disableCSSMediaQueries: props.disableCSSMediaQueries,\n }),\n [props.disableCSSMediaQueries]\n );\n\n return (\n \n {props.children}\n \n );\n};\n","/*\r\n * bignumber.js v9.1.0\r\n * A JavaScript library for arbitrary-precision arithmetic.\r\n * https://github.com/MikeMcl/bignumber.js\r\n * Copyright (c) 2022 Michael Mclaughlin \r\n * MIT Licensed.\r\n *\r\n * BigNumber.prototype methods | BigNumber methods\r\n * |\r\n * absoluteValue abs | clone\r\n * comparedTo | config set\r\n * decimalPlaces dp | DECIMAL_PLACES\r\n * dividedBy div | ROUNDING_MODE\r\n * dividedToIntegerBy idiv | EXPONENTIAL_AT\r\n * exponentiatedBy pow | RANGE\r\n * integerValue | CRYPTO\r\n * isEqualTo eq | MODULO_MODE\r\n * isFinite | POW_PRECISION\r\n * isGreaterThan gt | FORMAT\r\n * isGreaterThanOrEqualTo gte | ALPHABET\r\n * isInteger | isBigNumber\r\n * isLessThan lt | maximum max\r\n * isLessThanOrEqualTo lte | minimum min\r\n * isNaN | random\r\n * isNegative | sum\r\n * isPositive |\r\n * isZero |\r\n * minus |\r\n * modulo mod |\r\n * multipliedBy times |\r\n * negated |\r\n * plus |\r\n * precision sd |\r\n * shiftedBy |\r\n * squareRoot sqrt |\r\n * toExponential |\r\n * toFixed |\r\n * toFormat |\r\n * toFraction |\r\n * toJSON |\r\n * toNumber |\r\n * toPrecision |\r\n * toString |\r\n * valueOf |\r\n *\r\n */\r\n\r\n\r\nvar\r\n isNumeric = /^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i,\r\n mathceil = Math.ceil,\r\n mathfloor = Math.floor,\r\n\r\n bignumberError = '[BigNumber Error] ',\r\n tooManyDigits = bignumberError + 'Number primitive has more than 15 significant digits: ',\r\n\r\n BASE = 1e14,\r\n LOG_BASE = 14,\r\n MAX_SAFE_INTEGER = 0x1fffffffffffff, // 2^53 - 1\r\n // MAX_INT32 = 0x7fffffff, // 2^31 - 1\r\n POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13],\r\n SQRT_BASE = 1e7,\r\n\r\n // EDITABLE\r\n // The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and\r\n // the arguments to toExponential, toFixed, toFormat, and toPrecision.\r\n MAX = 1E9; // 0 to MAX_INT32\r\n\r\n\r\n/*\r\n * Create and return a BigNumber constructor.\r\n */\r\nfunction clone(configObject) {\r\n var div, convertBase, parseNumeric,\r\n P = BigNumber.prototype = { constructor: BigNumber, toString: null, valueOf: null },\r\n ONE = new BigNumber(1),\r\n\r\n\r\n //----------------------------- EDITABLE CONFIG DEFAULTS -------------------------------\r\n\r\n\r\n // The default values below must be integers within the inclusive ranges stated.\r\n // The values can also be changed at run-time using BigNumber.set.\r\n\r\n // The maximum number of decimal places for operations involving division.\r\n DECIMAL_PLACES = 20, // 0 to MAX\r\n\r\n // The rounding mode used when rounding to the above decimal places, and when using\r\n // toExponential, toFixed, toFormat and toPrecision, and round (default value).\r\n // UP 0 Away from zero.\r\n // DOWN 1 Towards zero.\r\n // CEIL 2 Towards +Infinity.\r\n // FLOOR 3 Towards -Infinity.\r\n // HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n ROUNDING_MODE = 4, // 0 to 8\r\n\r\n // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS]\r\n\r\n // The exponent value at and beneath which toString returns exponential notation.\r\n // Number type: -7\r\n TO_EXP_NEG = -7, // 0 to -MAX\r\n\r\n // The exponent value at and above which toString returns exponential notation.\r\n // Number type: 21\r\n TO_EXP_POS = 21, // 0 to MAX\r\n\r\n // RANGE : [MIN_EXP, MAX_EXP]\r\n\r\n // The minimum exponent value, beneath which underflow to zero occurs.\r\n // Number type: -324 (5e-324)\r\n MIN_EXP = -1e7, // -1 to -MAX\r\n\r\n // The maximum exponent value, above which overflow to Infinity occurs.\r\n // Number type: 308 (1.7976931348623157e+308)\r\n // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow.\r\n MAX_EXP = 1e7, // 1 to MAX\r\n\r\n // Whether to use cryptographically-secure random number generation, if available.\r\n CRYPTO = false, // true or false\r\n\r\n // The modulo mode used when calculating the modulus: a mod n.\r\n // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n // The remainder (r) is calculated as: r = a - n * q.\r\n //\r\n // UP 0 The remainder is positive if the dividend is negative, else is negative.\r\n // DOWN 1 The remainder has the same sign as the dividend.\r\n // This modulo mode is commonly known as 'truncated division' and is\r\n // equivalent to (a % n) in JavaScript.\r\n // FLOOR 3 The remainder has the same sign as the divisor (Python %).\r\n // HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function.\r\n // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)).\r\n // The remainder is always positive.\r\n //\r\n // The truncated division, floored division, Euclidian division and IEEE 754 remainder\r\n // modes are commonly used for the modulus operation.\r\n // Although the other rounding modes can also be used, they may not give useful results.\r\n MODULO_MODE = 1, // 0 to 9\r\n\r\n // The maximum number of significant digits of the result of the exponentiatedBy operation.\r\n // If POW_PRECISION is 0, there will be unlimited significant digits.\r\n POW_PRECISION = 0, // 0 to MAX\r\n\r\n // The format specification used by the BigNumber.prototype.toFormat method.\r\n FORMAT = {\r\n prefix: '',\r\n groupSize: 3,\r\n secondaryGroupSize: 0,\r\n groupSeparator: ',',\r\n decimalSeparator: '.',\r\n fractionGroupSize: 0,\r\n fractionGroupSeparator: '\\xA0', // non-breaking space\r\n suffix: ''\r\n },\r\n\r\n // The alphabet used for base conversion. It must be at least 2 characters long, with no '+',\r\n // '-', '.', whitespace, or repeated character.\r\n // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_'\r\n ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz',\r\n alphabetHasNormalDecimalDigits = true;\r\n\r\n\r\n //------------------------------------------------------------------------------------------\r\n\r\n\r\n // CONSTRUCTOR\r\n\r\n\r\n /*\r\n * The BigNumber constructor and exported function.\r\n * Create and return a new instance of a BigNumber object.\r\n *\r\n * v {number|string|BigNumber} A numeric value.\r\n * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive.\r\n */\r\n function BigNumber(v, b) {\r\n var alphabet, c, caseChanged, e, i, isNum, len, str,\r\n x = this;\r\n\r\n // Enable constructor call without `new`.\r\n if (!(x instanceof BigNumber)) return new BigNumber(v, b);\r\n\r\n if (b == null) {\r\n\r\n if (v && v._isBigNumber === true) {\r\n x.s = v.s;\r\n\r\n if (!v.c || v.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else if (v.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = v.e;\r\n x.c = v.c.slice();\r\n }\r\n\r\n return;\r\n }\r\n\r\n if ((isNum = typeof v == 'number') && v * 0 == 0) {\r\n\r\n // Use `1 / n` to handle minus zero also.\r\n x.s = 1 / v < 0 ? (v = -v, -1) : 1;\r\n\r\n // Fast path for integers, where n < 2147483648 (2**31).\r\n if (v === ~~v) {\r\n for (e = 0, i = v; i >= 10; i /= 10, e++);\r\n\r\n if (e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else {\r\n x.e = e;\r\n x.c = [v];\r\n }\r\n\r\n return;\r\n }\r\n\r\n str = String(v);\r\n } else {\r\n\r\n if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum);\r\n\r\n x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n\r\n // Allow exponential notation to be used with base 10 argument, while\r\n // also rounding to DECIMAL_PLACES as with other bases.\r\n if (b == 10 && alphabetHasNormalDecimalDigits) {\r\n x = new BigNumber(v);\r\n return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);\r\n }\r\n\r\n str = String(v);\r\n\r\n if (isNum = typeof v == 'number') {\r\n\r\n // Avoid potential interpretation of Infinity and NaN as base 44+ values.\r\n if (v * 0 != 0) return parseNumeric(x, str, isNum, b);\r\n\r\n x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (BigNumber.DEBUG && str.replace(/^0\\.0*|\\./, '').length > 15) {\r\n throw Error\r\n (tooManyDigits + v);\r\n }\r\n } else {\r\n x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n alphabet = ALPHABET.slice(0, b);\r\n e = i = 0;\r\n\r\n // Check that str is a valid base b number.\r\n // Don't use RegExp, so alphabet can contain special characters.\r\n for (len = str.length; i < len; i++) {\r\n if (alphabet.indexOf(c = str.charAt(i)) < 0) {\r\n if (c == '.') {\r\n\r\n // If '.' is not the first character and it has not be found before.\r\n if (i > e) {\r\n e = len;\r\n continue;\r\n }\r\n } else if (!caseChanged) {\r\n\r\n // Allow e.g. hexadecimal 'FF' as well as 'ff'.\r\n if (str == str.toUpperCase() && (str = str.toLowerCase()) ||\r\n str == str.toLowerCase() && (str = str.toUpperCase())) {\r\n caseChanged = true;\r\n i = -1;\r\n e = 0;\r\n continue;\r\n }\r\n }\r\n\r\n return parseNumeric(x, String(v), isNum, b);\r\n }\r\n }\r\n\r\n // Prevent later check for length on converted number.\r\n isNum = false;\r\n str = convertBase(str, b, 10, x.s);\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n else e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48; i++);\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(--len) === 48;);\r\n\r\n if (str = str.slice(i, ++len)) {\r\n len -= i;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (isNum && BigNumber.DEBUG &&\r\n len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {\r\n throw Error\r\n (tooManyDigits + (x.s * v));\r\n }\r\n\r\n // Overflow?\r\n if ((e = e - i - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n x.c = x.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = e;\r\n x.c = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first element of the coefficient array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE; // i < 1\r\n\r\n if (i < len) {\r\n if (i) x.c.push(+str.slice(0, i));\r\n\r\n for (len -= LOG_BASE; i < len;) {\r\n x.c.push(+str.slice(i, i += LOG_BASE));\r\n }\r\n\r\n i = LOG_BASE - (str = str.slice(i)).length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--; str += '0');\r\n x.c.push(+str);\r\n }\r\n } else {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n\r\n // CONSTRUCTOR PROPERTIES\r\n\r\n\r\n BigNumber.clone = clone;\r\n\r\n BigNumber.ROUND_UP = 0;\r\n BigNumber.ROUND_DOWN = 1;\r\n BigNumber.ROUND_CEIL = 2;\r\n BigNumber.ROUND_FLOOR = 3;\r\n BigNumber.ROUND_HALF_UP = 4;\r\n BigNumber.ROUND_HALF_DOWN = 5;\r\n BigNumber.ROUND_HALF_EVEN = 6;\r\n BigNumber.ROUND_HALF_CEIL = 7;\r\n BigNumber.ROUND_HALF_FLOOR = 8;\r\n BigNumber.EUCLID = 9;\r\n\r\n\r\n /*\r\n * Configure infrequently-changing library-wide settings.\r\n *\r\n * Accept an object with the following optional properties (if the value of a property is\r\n * a number, it must be an integer within the inclusive range stated):\r\n *\r\n * DECIMAL_PLACES {number} 0 to MAX\r\n * ROUNDING_MODE {number} 0 to 8\r\n * EXPONENTIAL_AT {number|number[]} -MAX to MAX or [-MAX to 0, 0 to MAX]\r\n * RANGE {number|number[]} -MAX to MAX (not zero) or [-MAX to -1, 1 to MAX]\r\n * CRYPTO {boolean} true or false\r\n * MODULO_MODE {number} 0 to 9\r\n * POW_PRECISION {number} 0 to MAX\r\n * ALPHABET {string} A string of two or more unique characters which does\r\n * not contain '.'.\r\n * FORMAT {object} An object with some of the following properties:\r\n * prefix {string}\r\n * groupSize {number}\r\n * secondaryGroupSize {number}\r\n * groupSeparator {string}\r\n * decimalSeparator {string}\r\n * fractionGroupSize {number}\r\n * fractionGroupSeparator {string}\r\n * suffix {string}\r\n *\r\n * (The values assigned to the above FORMAT object properties are not checked for validity.)\r\n *\r\n * E.g.\r\n * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 })\r\n *\r\n * Ignore properties/parameters set to null or undefined, except for ALPHABET.\r\n *\r\n * Return an object with the properties current values.\r\n */\r\n BigNumber.config = BigNumber.set = function (obj) {\r\n var p, v;\r\n\r\n if (obj != null) {\r\n\r\n if (typeof obj == 'object') {\r\n\r\n // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] DECIMAL_PLACES {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'DECIMAL_PLACES')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n DECIMAL_PLACES = v;\r\n }\r\n\r\n // ROUNDING_MODE {number} Integer, 0 to 8 inclusive.\r\n // '[BigNumber Error] ROUNDING_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'ROUNDING_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 8, p);\r\n ROUNDING_MODE = v;\r\n }\r\n\r\n // EXPONENTIAL_AT {number|number[]}\r\n // Integer, -MAX to MAX inclusive or\r\n // [integer -MAX to 0 inclusive, 0 to MAX inclusive].\r\n // '[BigNumber Error] EXPONENTIAL_AT {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'EXPONENTIAL_AT')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, 0, p);\r\n intCheck(v[1], 0, MAX, p);\r\n TO_EXP_NEG = v[0];\r\n TO_EXP_POS = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);\r\n }\r\n }\r\n\r\n // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or\r\n // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive].\r\n // '[BigNumber Error] RANGE {not a primitive number|not an integer|out of range|cannot be zero}: {v}'\r\n if (obj.hasOwnProperty(p = 'RANGE')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, -1, p);\r\n intCheck(v[1], 1, MAX, p);\r\n MIN_EXP = v[0];\r\n MAX_EXP = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n if (v) {\r\n MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' cannot be zero: ' + v);\r\n }\r\n }\r\n }\r\n\r\n // CRYPTO {boolean} true or false.\r\n // '[BigNumber Error] CRYPTO not true or false: {v}'\r\n // '[BigNumber Error] crypto unavailable'\r\n if (obj.hasOwnProperty(p = 'CRYPTO')) {\r\n v = obj[p];\r\n if (v === !!v) {\r\n if (v) {\r\n if (typeof crypto != 'undefined' && crypto &&\r\n (crypto.getRandomValues || crypto.randomBytes)) {\r\n CRYPTO = v;\r\n } else {\r\n CRYPTO = !v;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n } else {\r\n CRYPTO = v;\r\n }\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' not true or false: ' + v);\r\n }\r\n }\r\n\r\n // MODULO_MODE {number} Integer, 0 to 9 inclusive.\r\n // '[BigNumber Error] MODULO_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'MODULO_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 9, p);\r\n MODULO_MODE = v;\r\n }\r\n\r\n // POW_PRECISION {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] POW_PRECISION {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'POW_PRECISION')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n POW_PRECISION = v;\r\n }\r\n\r\n // FORMAT {object}\r\n // '[BigNumber Error] FORMAT not an object: {v}'\r\n if (obj.hasOwnProperty(p = 'FORMAT')) {\r\n v = obj[p];\r\n if (typeof v == 'object') FORMAT = v;\r\n else throw Error\r\n (bignumberError + p + ' not an object: ' + v);\r\n }\r\n\r\n // ALPHABET {string}\r\n // '[BigNumber Error] ALPHABET invalid: {v}'\r\n if (obj.hasOwnProperty(p = 'ALPHABET')) {\r\n v = obj[p];\r\n\r\n // Disallow if less than two characters,\r\n // or if it contains '+', '-', '.', whitespace, or a repeated character.\r\n if (typeof v == 'string' && !/^.?$|[+\\-.\\s]|(.).*\\1/.test(v)) {\r\n alphabetHasNormalDecimalDigits = v.slice(0, 10) == '0123456789';\r\n ALPHABET = v;\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' invalid: ' + v);\r\n }\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Object expected: {v}'\r\n throw Error\r\n (bignumberError + 'Object expected: ' + obj);\r\n }\r\n }\r\n\r\n return {\r\n DECIMAL_PLACES: DECIMAL_PLACES,\r\n ROUNDING_MODE: ROUNDING_MODE,\r\n EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],\r\n RANGE: [MIN_EXP, MAX_EXP],\r\n CRYPTO: CRYPTO,\r\n MODULO_MODE: MODULO_MODE,\r\n POW_PRECISION: POW_PRECISION,\r\n FORMAT: FORMAT,\r\n ALPHABET: ALPHABET\r\n };\r\n };\r\n\r\n\r\n /*\r\n * Return true if v is a BigNumber instance, otherwise return false.\r\n *\r\n * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed.\r\n *\r\n * v {any}\r\n *\r\n * '[BigNumber Error] Invalid BigNumber: {v}'\r\n */\r\n BigNumber.isBigNumber = function (v) {\r\n if (!v || v._isBigNumber !== true) return false;\r\n if (!BigNumber.DEBUG) return true;\r\n\r\n var i, n,\r\n c = v.c,\r\n e = v.e,\r\n s = v.s;\r\n\r\n out: if ({}.toString.call(c) == '[object Array]') {\r\n\r\n if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {\r\n\r\n // If the first element is zero, the BigNumber value must be zero.\r\n if (c[0] === 0) {\r\n if (e === 0 && c.length === 1) return true;\r\n break out;\r\n }\r\n\r\n // Calculate number of digits that c[0] should have, based on the exponent.\r\n i = (e + 1) % LOG_BASE;\r\n if (i < 1) i += LOG_BASE;\r\n\r\n // Calculate number of digits of c[0].\r\n //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) {\r\n if (String(c[0]).length == i) {\r\n\r\n for (i = 0; i < c.length; i++) {\r\n n = c[i];\r\n if (n < 0 || n >= BASE || n !== mathfloor(n)) break out;\r\n }\r\n\r\n // Last element cannot be zero, unless it is the only element.\r\n if (n !== 0) return true;\r\n }\r\n }\r\n\r\n // Infinity/NaN\r\n } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {\r\n return true;\r\n }\r\n\r\n throw Error\r\n (bignumberError + 'Invalid BigNumber: ' + v);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the maximum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.maximum = BigNumber.max = function () {\r\n return maxOrMin(arguments, P.lt);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the minimum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.minimum = BigNumber.min = function () {\r\n return maxOrMin(arguments, P.gt);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber with a random value equal to or greater than 0 and less than 1,\r\n * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing\r\n * zeros are produced).\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp}'\r\n * '[BigNumber Error] crypto unavailable'\r\n */\r\n BigNumber.random = (function () {\r\n var pow2_53 = 0x20000000000000;\r\n\r\n // Return a 53 bit integer n, where 0 <= n < 9007199254740992.\r\n // Check if Math.random() produces more than 32 bits of randomness.\r\n // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits.\r\n // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1.\r\n var random53bitInt = (Math.random() * pow2_53) & 0x1fffff\r\n ? function () { return mathfloor(Math.random() * pow2_53); }\r\n : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) +\r\n (Math.random() * 0x800000 | 0); };\r\n\r\n return function (dp) {\r\n var a, b, e, k, v,\r\n i = 0,\r\n c = [],\r\n rand = new BigNumber(ONE);\r\n\r\n if (dp == null) dp = DECIMAL_PLACES;\r\n else intCheck(dp, 0, MAX);\r\n\r\n k = mathceil(dp / LOG_BASE);\r\n\r\n if (CRYPTO) {\r\n\r\n // Browsers supporting crypto.getRandomValues.\r\n if (crypto.getRandomValues) {\r\n\r\n a = crypto.getRandomValues(new Uint32Array(k *= 2));\r\n\r\n for (; i < k;) {\r\n\r\n // 53 bits:\r\n // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2)\r\n // 11111 11111111 11111111 11111111 11100000 00000000 00000000\r\n // ((Math.pow(2, 32) - 1) >>> 11).toString(2)\r\n // 11111 11111111 11111111\r\n // 0x20000 is 2^21.\r\n v = a[i] * 0x20000 + (a[i + 1] >>> 11);\r\n\r\n // Rejection sampling:\r\n // 0 <= v < 9007199254740992\r\n // Probability that v >= 9e15, is\r\n // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251\r\n if (v >= 9e15) {\r\n b = crypto.getRandomValues(new Uint32Array(2));\r\n a[i] = b[0];\r\n a[i + 1] = b[1];\r\n } else {\r\n\r\n // 0 <= v <= 8999999999999999\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 2;\r\n }\r\n }\r\n i = k / 2;\r\n\r\n // Node.js supporting crypto.randomBytes.\r\n } else if (crypto.randomBytes) {\r\n\r\n // buffer\r\n a = crypto.randomBytes(k *= 7);\r\n\r\n for (; i < k;) {\r\n\r\n // 0x1000000000000 is 2^48, 0x10000000000 is 2^40\r\n // 0x100000000 is 2^32, 0x1000000 is 2^24\r\n // 11111 11111111 11111111 11111111 11111111 11111111 11111111\r\n // 0 <= v < 9007199254740992\r\n v = ((a[i] & 31) * 0x1000000000000) + (a[i + 1] * 0x10000000000) +\r\n (a[i + 2] * 0x100000000) + (a[i + 3] * 0x1000000) +\r\n (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];\r\n\r\n if (v >= 9e15) {\r\n crypto.randomBytes(7).copy(a, i);\r\n } else {\r\n\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 7;\r\n }\r\n }\r\n i = k / 7;\r\n } else {\r\n CRYPTO = false;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n }\r\n\r\n // Use Math.random.\r\n if (!CRYPTO) {\r\n\r\n for (; i < k;) {\r\n v = random53bitInt();\r\n if (v < 9e15) c[i++] = v % 1e14;\r\n }\r\n }\r\n\r\n k = c[--i];\r\n dp %= LOG_BASE;\r\n\r\n // Convert trailing digits to zeros according to dp.\r\n if (k && dp) {\r\n v = POWS_TEN[LOG_BASE - dp];\r\n c[i] = mathfloor(k / v) * v;\r\n }\r\n\r\n // Remove trailing elements which are zero.\r\n for (; c[i] === 0; c.pop(), i--);\r\n\r\n // Zero?\r\n if (i < 0) {\r\n c = [e = 0];\r\n } else {\r\n\r\n // Remove leading elements which are zero and adjust exponent accordingly.\r\n for (e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE);\r\n\r\n // Count the digits of the first element of c to determine leading zeros, and...\r\n for (i = 1, v = c[0]; v >= 10; v /= 10, i++);\r\n\r\n // adjust the exponent accordingly.\r\n if (i < LOG_BASE) e -= LOG_BASE - i;\r\n }\r\n\r\n rand.e = e;\r\n rand.c = c;\r\n return rand;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the sum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.sum = function () {\r\n var i = 1,\r\n args = arguments,\r\n sum = new BigNumber(args[0]);\r\n for (; i < args.length;) sum = sum.plus(args[i++]);\r\n return sum;\r\n };\r\n\r\n\r\n // PRIVATE FUNCTIONS\r\n\r\n\r\n // Called by BigNumber and BigNumber.prototype.toString.\r\n convertBase = (function () {\r\n var decimal = '0123456789';\r\n\r\n /*\r\n * Convert string of baseIn to an array of numbers of baseOut.\r\n * Eg. toBaseOut('255', 10, 16) returns [15, 15].\r\n * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5].\r\n */\r\n function toBaseOut(str, baseIn, baseOut, alphabet) {\r\n var j,\r\n arr = [0],\r\n arrL,\r\n i = 0,\r\n len = str.length;\r\n\r\n for (; i < len;) {\r\n for (arrL = arr.length; arrL--; arr[arrL] *= baseIn);\r\n\r\n arr[0] += alphabet.indexOf(str.charAt(i++));\r\n\r\n for (j = 0; j < arr.length; j++) {\r\n\r\n if (arr[j] > baseOut - 1) {\r\n if (arr[j + 1] == null) arr[j + 1] = 0;\r\n arr[j + 1] += arr[j] / baseOut | 0;\r\n arr[j] %= baseOut;\r\n }\r\n }\r\n }\r\n\r\n return arr.reverse();\r\n }\r\n\r\n // Convert a numeric string of baseIn to a numeric string of baseOut.\r\n // If the caller is toString, we are converting from base 10 to baseOut.\r\n // If the caller is BigNumber, we are converting from baseIn to base 10.\r\n return function (str, baseIn, baseOut, sign, callerIsToString) {\r\n var alphabet, d, e, k, r, x, xc, y,\r\n i = str.indexOf('.'),\r\n dp = DECIMAL_PLACES,\r\n rm = ROUNDING_MODE;\r\n\r\n // Non-integer.\r\n if (i >= 0) {\r\n k = POW_PRECISION;\r\n\r\n // Unlimited precision.\r\n POW_PRECISION = 0;\r\n str = str.replace('.', '');\r\n y = new BigNumber(baseIn);\r\n x = y.pow(str.length - i);\r\n POW_PRECISION = k;\r\n\r\n // Convert str as if an integer, then restore the fraction part by dividing the\r\n // result by its base raised to a power.\r\n\r\n y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, '0'),\r\n 10, baseOut, decimal);\r\n y.e = y.c.length;\r\n }\r\n\r\n // Convert the number as integer.\r\n\r\n xc = toBaseOut(str, baseIn, baseOut, callerIsToString\r\n ? (alphabet = ALPHABET, decimal)\r\n : (alphabet = decimal, ALPHABET));\r\n\r\n // xc now represents str as an integer and converted to baseOut. e is the exponent.\r\n e = k = xc.length;\r\n\r\n // Remove trailing zeros.\r\n for (; xc[--k] == 0; xc.pop());\r\n\r\n // Zero?\r\n if (!xc[0]) return alphabet.charAt(0);\r\n\r\n // Does str represent an integer? If so, no need for the division.\r\n if (i < 0) {\r\n --e;\r\n } else {\r\n x.c = xc;\r\n x.e = e;\r\n\r\n // The sign is needed for correct rounding.\r\n x.s = sign;\r\n x = div(x, y, dp, rm, baseOut);\r\n xc = x.c;\r\n r = x.r;\r\n e = x.e;\r\n }\r\n\r\n // xc now represents str converted to baseOut.\r\n\r\n // THe index of the rounding digit.\r\n d = e + dp + 1;\r\n\r\n // The rounding digit: the digit to the right of the digit that may be rounded up.\r\n i = xc[d];\r\n\r\n // Look at the rounding digits and mode to determine whether to round up.\r\n\r\n k = baseOut / 2;\r\n r = r || d < 0 || xc[d + 1] != null;\r\n\r\n r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : i > k || i == k &&(rm == 4 || r || rm == 6 && xc[d - 1] & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n // If the index of the rounding digit is not greater than zero, or xc represents\r\n // zero, then the result of the base conversion is zero or, if rounding up, a value\r\n // such as 0.00001.\r\n if (d < 1 || !xc[0]) {\r\n\r\n // 1^-dp or 0\r\n str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);\r\n } else {\r\n\r\n // Truncate xc to the required number of decimal places.\r\n xc.length = d;\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up and so on.\r\n for (--baseOut; ++xc[--d] > baseOut;) {\r\n xc[d] = 0;\r\n\r\n if (!d) {\r\n ++e;\r\n xc = [1].concat(xc);\r\n }\r\n }\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (k = xc.length; !xc[--k];);\r\n\r\n // E.g. [4, 11, 15] becomes 4bf.\r\n for (i = 0, str = ''; i <= k; str += alphabet.charAt(xc[i++]));\r\n\r\n // Add leading zeros, decimal point and trailing zeros as required.\r\n str = toFixedPoint(str, e, alphabet.charAt(0));\r\n }\r\n\r\n // The caller will add the sign.\r\n return str;\r\n };\r\n })();\r\n\r\n\r\n // Perform division in the specified base. Called by div and convertBase.\r\n div = (function () {\r\n\r\n // Assume non-zero x and k.\r\n function multiply(x, k, base) {\r\n var m, temp, xlo, xhi,\r\n carry = 0,\r\n i = x.length,\r\n klo = k % SQRT_BASE,\r\n khi = k / SQRT_BASE | 0;\r\n\r\n for (x = x.slice(); i--;) {\r\n xlo = x[i] % SQRT_BASE;\r\n xhi = x[i] / SQRT_BASE | 0;\r\n m = khi * xlo + xhi * klo;\r\n temp = klo * xlo + ((m % SQRT_BASE) * SQRT_BASE) + carry;\r\n carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;\r\n x[i] = temp % base;\r\n }\r\n\r\n if (carry) x = [carry].concat(x);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, cmp;\r\n\r\n if (aL != bL) {\r\n cmp = aL > bL ? 1 : -1;\r\n } else {\r\n\r\n for (i = cmp = 0; i < aL; i++) {\r\n\r\n if (a[i] != b[i]) {\r\n cmp = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return cmp;\r\n }\r\n\r\n function subtract(a, b, aL, base) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * base + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1; a.splice(0, 1));\r\n }\r\n\r\n // x: dividend, y: divisor.\r\n return function (x, y, dp, rm, base) {\r\n var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0,\r\n yL, yz,\r\n s = x.s == y.s ? 1 : -1,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n // Either NaN, Infinity or 0?\r\n if (!xc || !xc[0] || !yc || !yc[0]) {\r\n\r\n return new BigNumber(\r\n\r\n // Return NaN if either NaN, or both Infinity or 0.\r\n !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN :\r\n\r\n // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0.\r\n xc && xc[0] == 0 || !yc ? s * 0 : s / 0\r\n );\r\n }\r\n\r\n q = new BigNumber(s);\r\n qc = q.c = [];\r\n e = x.e - y.e;\r\n s = dp + e + 1;\r\n\r\n if (!base) {\r\n base = BASE;\r\n e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);\r\n s = s / LOG_BASE | 0;\r\n }\r\n\r\n // Result exponent may be one less then the current value of e.\r\n // The coefficients of the BigNumbers from convertBase may have trailing zeros.\r\n for (i = 0; yc[i] == (xc[i] || 0); i++);\r\n\r\n if (yc[i] > (xc[i] || 0)) e--;\r\n\r\n if (s < 0) {\r\n qc.push(1);\r\n more = true;\r\n } else {\r\n xL = xc.length;\r\n yL = yc.length;\r\n i = 0;\r\n s += 2;\r\n\r\n // Normalise xc and yc so highest order digit of yc is >= base / 2.\r\n\r\n n = mathfloor(base / (yc[0] + 1));\r\n\r\n // Not necessary, but to handle odd bases where yc[0] == (base / 2) - 1.\r\n // if (n > 1 || n++ == 1 && yc[0] < base / 2) {\r\n if (n > 1) {\r\n yc = multiply(yc, n, base);\r\n xc = multiply(xc, n, base);\r\n yL = yc.length;\r\n xL = xc.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xc.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL; rem[remL++] = 0);\r\n yz = yc.slice();\r\n yz = [0].concat(yz);\r\n yc0 = yc[0];\r\n if (yc[1] >= base / 2) yc0++;\r\n // Not necessary, but to prevent trial digit n > base, when using base 3.\r\n // else if (base == 3 && yc0 == 1) yc0 = 1 + 1e-15;\r\n\r\n do {\r\n n = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yc, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, n.\r\n\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n // n is how many times the divisor goes into the current remainder.\r\n n = mathfloor(rem0 / yc0);\r\n\r\n // Algorithm:\r\n // product = divisor multiplied by trial digit (n).\r\n // Compare product and remainder.\r\n // If product is greater than remainder:\r\n // Subtract divisor from product, decrement trial digit.\r\n // Subtract product from remainder.\r\n // If product was less than remainder at the last compare:\r\n // Compare new remainder and divisor.\r\n // If remainder is greater than divisor:\r\n // Subtract divisor from remainder, increment trial digit.\r\n\r\n if (n > 1) {\r\n\r\n // n may be > base only when base is 3.\r\n if (n >= base) n = base - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiply(yc, n, base);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n // If product > remainder then trial digit n too high.\r\n // n is 1 too high about 5% of the time, and is not known to have\r\n // ever been more than 1 too high.\r\n while (compare(prod, rem, prodL, remL) == 1) {\r\n n--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yc, prodL, base);\r\n prodL = prod.length;\r\n cmp = 1;\r\n }\r\n } else {\r\n\r\n // n is 0 or 1, cmp is -1.\r\n // If n is 0, there is no need to compare yc and rem again below,\r\n // so change cmp to 1 to avoid it.\r\n // If n is 1, leave cmp as -1, so yc and rem are compared again.\r\n if (n == 0) {\r\n\r\n // divisor < remainder, so n must be at least 1.\r\n cmp = n = 1;\r\n }\r\n\r\n // product = divisor\r\n prod = yc.slice();\r\n prodL = prod.length;\r\n }\r\n\r\n if (prodL < remL) prod = [0].concat(prod);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL, base);\r\n remL = rem.length;\r\n\r\n // If product was < remainder.\r\n if (cmp == -1) {\r\n\r\n // Compare divisor and new remainder.\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n // Trial digit n too low.\r\n // n is 1 too low about 5% of the time, and very rarely 2 too low.\r\n while (compare(yc, rem, yL, remL) < 1) {\r\n n++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yc, remL, base);\r\n remL = rem.length;\r\n }\r\n }\r\n } else if (cmp === 0) {\r\n n++;\r\n rem = [0];\r\n } // else cmp === 1 and n will be 0\r\n\r\n // Add the next digit, n, to the result array.\r\n qc[i++] = n;\r\n\r\n // Update the remainder.\r\n if (rem[0]) {\r\n rem[remL++] = xc[xi] || 0;\r\n } else {\r\n rem = [xc[xi]];\r\n remL = 1;\r\n }\r\n } while ((xi++ < xL || rem[0] != null) && s--);\r\n\r\n more = rem[0] != null;\r\n\r\n // Leading zero?\r\n if (!qc[0]) qc.splice(0, 1);\r\n }\r\n\r\n if (base == BASE) {\r\n\r\n // To calculate q.e, first get the number of digits of qc[0].\r\n for (i = 1, s = qc[0]; s >= 10; s /= 10, i++);\r\n\r\n round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);\r\n\r\n // Caller is convertBase.\r\n } else {\r\n q.e = e;\r\n q.r = +more;\r\n }\r\n\r\n return q;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a string representing the value of BigNumber n in fixed-point or exponential\r\n * notation rounded to the specified decimal places or significant digits.\r\n *\r\n * n: a BigNumber.\r\n * i: the index of the last digit required (i.e. the digit that may be rounded up).\r\n * rm: the rounding mode.\r\n * id: 1 (toExponential) or 2 (toPrecision).\r\n */\r\n function format(n, i, rm, id) {\r\n var c0, e, ne, len, str;\r\n\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n if (!n.c) return n.toString();\r\n\r\n c0 = n.c[0];\r\n ne = n.e;\r\n\r\n if (i == null) {\r\n str = coeffToString(n.c);\r\n str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS)\r\n ? toExponential(str, ne)\r\n : toFixedPoint(str, ne, '0');\r\n } else {\r\n n = round(new BigNumber(n), i, rm);\r\n\r\n // n.e may have changed if the value was rounded up.\r\n e = n.e;\r\n\r\n str = coeffToString(n.c);\r\n len = str.length;\r\n\r\n // toPrecision returns exponential notation if the number of significant digits\r\n // specified is less than the number of digits necessary to represent the integer\r\n // part of the value in fixed-point notation.\r\n\r\n // Exponential notation.\r\n if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {\r\n\r\n // Append zeros?\r\n for (; len < i; str += '0', len++);\r\n str = toExponential(str, e);\r\n\r\n // Fixed-point notation.\r\n } else {\r\n i -= ne;\r\n str = toFixedPoint(str, e, '0');\r\n\r\n // Append zeros?\r\n if (e + 1 > len) {\r\n if (--i > 0) for (str += '.'; i--; str += '0');\r\n } else {\r\n i += e - len;\r\n if (i > 0) {\r\n if (e + 1 == len) str += '.';\r\n for (; i--; str += '0');\r\n }\r\n }\r\n }\r\n }\r\n\r\n return n.s < 0 && c0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Handle BigNumber.max and BigNumber.min.\r\n function maxOrMin(args, method) {\r\n var n,\r\n i = 1,\r\n m = new BigNumber(args[0]);\r\n\r\n for (; i < args.length; i++) {\r\n n = new BigNumber(args[i]);\r\n\r\n // If any number is NaN, return NaN.\r\n if (!n.s) {\r\n m = n;\r\n break;\r\n } else if (method.call(m, n)) {\r\n m = n;\r\n }\r\n }\r\n\r\n return m;\r\n }\r\n\r\n\r\n /*\r\n * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP.\r\n * Called by minus, plus and times.\r\n */\r\n function normalise(n, c, e) {\r\n var i = 1,\r\n j = c.length;\r\n\r\n // Remove trailing zeros.\r\n for (; !c[--j]; c.pop());\r\n\r\n // Calculate the base 10 exponent. First get the number of digits of c[0].\r\n for (j = c[0]; j >= 10; j /= 10, i++);\r\n\r\n // Overflow?\r\n if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n n.c = n.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n n.c = [n.e = 0];\r\n } else {\r\n n.e = e;\r\n n.c = c;\r\n }\r\n\r\n return n;\r\n }\r\n\r\n\r\n // Handle values that fail the validity test in BigNumber.\r\n parseNumeric = (function () {\r\n var basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i,\r\n dotAfter = /^([^.]+)\\.$/,\r\n dotBefore = /^\\.([^.]+)$/,\r\n isInfinityOrNaN = /^-?(Infinity|NaN)$/,\r\n whitespaceOrPlus = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g;\r\n\r\n return function (x, str, isNum, b) {\r\n var base,\r\n s = isNum ? str : str.replace(whitespaceOrPlus, '');\r\n\r\n // No exception on ±Infinity or NaN.\r\n if (isInfinityOrNaN.test(s)) {\r\n x.s = isNaN(s) ? null : s < 0 ? -1 : 1;\r\n } else {\r\n if (!isNum) {\r\n\r\n // basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i\r\n s = s.replace(basePrefix, function (m, p1, p2) {\r\n base = (p2 = p2.toLowerCase()) == 'x' ? 16 : p2 == 'b' ? 2 : 8;\r\n return !b || b == base ? p1 : m;\r\n });\r\n\r\n if (b) {\r\n base = b;\r\n\r\n // E.g. '1.' to '1', '.1' to '0.1'\r\n s = s.replace(dotAfter, '$1').replace(dotBefore, '0.$1');\r\n }\r\n\r\n if (str != s) return new BigNumber(s, base);\r\n }\r\n\r\n // '[BigNumber Error] Not a number: {n}'\r\n // '[BigNumber Error] Not a base {b} number: {n}'\r\n if (BigNumber.DEBUG) {\r\n throw Error\r\n (bignumberError + 'Not a' + (b ? ' base ' + b : '') + ' number: ' + str);\r\n }\r\n\r\n // NaN\r\n x.s = null;\r\n }\r\n\r\n x.c = x.e = null;\r\n }\r\n })();\r\n\r\n\r\n /*\r\n * Round x to sd significant digits using rounding mode rm. Check for over/under-flow.\r\n * If r is truthy, it is known that there are more digits after the rounding digit.\r\n */\r\n function round(x, sd, rm, r) {\r\n var d, i, j, k, n, ni, rd,\r\n xc = x.c,\r\n pows10 = POWS_TEN;\r\n\r\n // if x is not Infinity or NaN...\r\n if (xc) {\r\n\r\n // rd is the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // n is a base 1e14 number, the value of the element of array x.c containing rd.\r\n // ni is the index of n within x.c.\r\n // d is the number of digits of n.\r\n // i is the index of rd within n including leading zeros.\r\n // j is the actual index of rd within n (if < 0, rd is a leading zero).\r\n out: {\r\n\r\n // Get the number of digits of the first element of xc.\r\n for (d = 1, k = xc[0]; k >= 10; k /= 10, d++);\r\n i = sd - d;\r\n\r\n // If the rounding digit is in the first element of xc...\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n n = xc[ni = 0];\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = n / pows10[d - j - 1] % 10 | 0;\r\n } else {\r\n ni = mathceil((i + 1) / LOG_BASE);\r\n\r\n if (ni >= xc.length) {\r\n\r\n if (r) {\r\n\r\n // Needed by sqrt.\r\n for (; xc.length <= ni; xc.push(0));\r\n n = rd = 0;\r\n d = 1;\r\n i %= LOG_BASE;\r\n j = i - LOG_BASE + 1;\r\n } else {\r\n break out;\r\n }\r\n } else {\r\n n = k = xc[ni];\r\n\r\n // Get the number of digits of n.\r\n for (d = 1; k >= 10; k /= 10, d++);\r\n\r\n // Get the index of rd within n.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within n, adjusted for leading zeros.\r\n // The number of leading zeros of n is given by LOG_BASE - d.\r\n j = i - LOG_BASE + d;\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = j < 0 ? 0 : n / pows10[d - j - 1] % 10 | 0;\r\n }\r\n }\r\n\r\n r = r || sd < 0 ||\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n // The expression n % pows10[d - j - 1] returns all digits of n to the right\r\n // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.\r\n xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);\r\n\r\n r = rm < 4\r\n ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n if (sd < 1 || !xc[0]) {\r\n xc.length = 0;\r\n\r\n if (r) {\r\n\r\n // Convert sd to decimal places.\r\n sd -= x.e + 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];\r\n x.e = -sd || 0;\r\n } else {\r\n\r\n // Zero.\r\n xc[0] = x.e = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xc.length = ni;\r\n k = 1;\r\n ni--;\r\n } else {\r\n xc.length = ni + 1;\r\n k = pows10[LOG_BASE - i];\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of n.\r\n xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;\r\n }\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n for (; ;) {\r\n\r\n // If the digit to be rounded up is in the first element of xc...\r\n if (ni == 0) {\r\n\r\n // i will be the length of xc[0] before k is added.\r\n for (i = 1, j = xc[0]; j >= 10; j /= 10, i++);\r\n j = xc[0] += k;\r\n for (k = 1; j >= 10; j /= 10, k++);\r\n\r\n // if i != k the length has increased.\r\n if (i != k) {\r\n x.e++;\r\n if (xc[0] == BASE) xc[0] = 1;\r\n }\r\n\r\n break;\r\n } else {\r\n xc[ni] += k;\r\n if (xc[ni] != BASE) break;\r\n xc[ni--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xc.length; xc[--i] === 0; xc.pop());\r\n }\r\n\r\n // Overflow? Infinity.\r\n if (x.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n\r\n // Underflow? Zero.\r\n } else if (x.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function valueOf(n) {\r\n var str,\r\n e = n.e;\r\n\r\n if (e === null) return n.toString();\r\n\r\n str = coeffToString(n.c);\r\n\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(str, e)\r\n : toFixedPoint(str, e, '0');\r\n\r\n return n.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // PROTOTYPE/INSTANCE METHODS\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the absolute value of this BigNumber.\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new BigNumber(this);\r\n if (x.s < 0) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * -1 if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * 0 if they have the same value,\r\n * or null if the value of either is NaN.\r\n */\r\n P.comparedTo = function (y, b) {\r\n return compare(this, new BigNumber(y, b));\r\n };\r\n\r\n\r\n /*\r\n * If dp is undefined or null or true or false, return the number of decimal places of the\r\n * value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n *\r\n * Otherwise, if dp is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of dp decimal places using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * [dp] {number} Decimal places: integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.decimalPlaces = P.dp = function (dp, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), dp + x.e + 1, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last number.\r\n if (v = c[v]) for (; v % 10 == 0; v /= 10, n--);\r\n if (n < 0) n = 0;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * n / 0 = I\r\n * n / N = N\r\n * n / I = 0\r\n * 0 / n = 0\r\n * 0 / 0 = N\r\n * 0 / N = N\r\n * 0 / I = 0\r\n * N / n = N\r\n * N / 0 = N\r\n * N / N = N\r\n * N / I = N\r\n * I / n = I\r\n * I / 0 = I\r\n * I / N = N\r\n * I / I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber divided by the value of\r\n * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.dividedBy = P.div = function (y, b) {\r\n return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the integer part of dividing the value of this\r\n * BigNumber by the value of BigNumber(y, b).\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y, b) {\r\n return div(this, new BigNumber(y, b), 0, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the value of this BigNumber exponentiated by n.\r\n *\r\n * If m is present, return the result modulo m.\r\n * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE.\r\n * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using ROUNDING_MODE.\r\n *\r\n * The modular power operation works efficiently when x, n, and m are integers, otherwise it\r\n * is equivalent to calculating x.exponentiatedBy(n).modulo(m) with a POW_PRECISION of 0.\r\n *\r\n * n {number|string|BigNumber} The exponent. An integer.\r\n * [m] {number|string|BigNumber} The modulus.\r\n *\r\n * '[BigNumber Error] Exponent not an integer: {n}'\r\n */\r\n P.exponentiatedBy = P.pow = function (n, m) {\r\n var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y,\r\n x = this;\r\n\r\n n = new BigNumber(n);\r\n\r\n // Allow NaN and ±Infinity, but not other non-integers.\r\n if (n.c && !n.isInteger()) {\r\n throw Error\r\n (bignumberError + 'Exponent not an integer: ' + valueOf(n));\r\n }\r\n\r\n if (m != null) m = new BigNumber(m);\r\n\r\n // Exponent of MAX_SAFE_INTEGER is 15.\r\n nIsBig = n.e > 14;\r\n\r\n // If x is NaN, ±Infinity, ±0 or ±1, or n is ±Infinity, NaN or ±0.\r\n if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {\r\n\r\n // The sign of the result of pow when x is negative depends on the evenness of n.\r\n // If +n overflows to ±Infinity, the evenness of n would be not be known.\r\n y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? 2 - isOdd(n) : +valueOf(n)));\r\n return m ? y.mod(m) : y;\r\n }\r\n\r\n nIsNeg = n.s < 0;\r\n\r\n if (m) {\r\n\r\n // x % m returns NaN if abs(m) is zero, or m is NaN.\r\n if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN);\r\n\r\n isModExp = !nIsNeg && x.isInteger() && m.isInteger();\r\n\r\n if (isModExp) x = x.mod(m);\r\n\r\n // Overflow to ±Infinity: >=2**1e10 or >=1.0000024**1e15.\r\n // Underflow to ±0: <=0.79**1e10 or <=0.9999975**1e15.\r\n } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0\r\n // [1, 240000000]\r\n ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7\r\n // [80000000000000] [99999750000000]\r\n : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {\r\n\r\n // If x is negative and n is odd, k = -0, else k = 0.\r\n k = x.s < 0 && isOdd(n) ? -0 : 0;\r\n\r\n // If x >= 1, k = ±Infinity.\r\n if (x.e > -1) k = 1 / k;\r\n\r\n // If n is negative return ±0, else return ±Infinity.\r\n return new BigNumber(nIsNeg ? 1 / k : k);\r\n\r\n } else if (POW_PRECISION) {\r\n\r\n // Truncating each coefficient array to a length of k after each multiplication\r\n // equates to truncating significant digits to POW_PRECISION + [28, 41],\r\n // i.e. there will be a minimum of 28 guard digits retained.\r\n k = mathceil(POW_PRECISION / LOG_BASE + 2);\r\n }\r\n\r\n if (nIsBig) {\r\n half = new BigNumber(0.5);\r\n if (nIsNeg) n.s = 1;\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = Math.abs(+valueOf(n));\r\n nIsOdd = i % 2;\r\n }\r\n\r\n y = new BigNumber(ONE);\r\n\r\n // Performs 54 loop iterations for n of 9007199254740991.\r\n for (; ;) {\r\n\r\n if (nIsOdd) {\r\n y = y.times(x);\r\n if (!y.c) break;\r\n\r\n if (k) {\r\n if (y.c.length > k) y.c.length = k;\r\n } else if (isModExp) {\r\n y = y.mod(m); //y = y.minus(div(y, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (i) {\r\n i = mathfloor(i / 2);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n } else {\r\n n = n.times(half);\r\n round(n, n.e + 1, 1);\r\n\r\n if (n.e > 14) {\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = +valueOf(n);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n }\r\n }\r\n\r\n x = x.times(x);\r\n\r\n if (k) {\r\n if (x.c && x.c.length > k) x.c.length = k;\r\n } else if (isModExp) {\r\n x = x.mod(m); //x = x.minus(div(x, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (isModExp) return y;\r\n if (nIsNeg) y = ONE.div(y);\r\n\r\n return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber rounded to an integer\r\n * using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {rm}'\r\n */\r\n P.integerValue = function (rm) {\r\n var n = new BigNumber(this);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n return round(n, n.e + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isEqualTo = P.eq = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is a finite number, otherwise return false.\r\n */\r\n P.isFinite = function () {\r\n return !!this.c;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isGreaterThan = P.gt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isGreaterThanOrEqualTo = P.gte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0;\r\n\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is an integer, otherwise return false.\r\n */\r\n P.isInteger = function () {\r\n return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isLessThan = P.lt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isLessThanOrEqualTo = P.lte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is NaN, otherwise return false.\r\n */\r\n P.isNaN = function () {\r\n return !this.s;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is negative, otherwise return false.\r\n */\r\n P.isNegative = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is positive, otherwise return false.\r\n */\r\n P.isPositive = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is 0 or -0, otherwise return false.\r\n */\r\n P.isZero = function () {\r\n return !!this.c && this.c[0] == 0;\r\n };\r\n\r\n\r\n /*\r\n * n - 0 = n\r\n * n - N = N\r\n * n - I = -I\r\n * 0 - n = -n\r\n * 0 - 0 = 0\r\n * 0 - N = N\r\n * 0 - I = -I\r\n * N - n = N\r\n * N - 0 = N\r\n * N - N = N\r\n * N - I = N\r\n * I - n = I\r\n * I - 0 = I\r\n * I - N = N\r\n * I - I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber minus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.minus = function (y, b) {\r\n var i, j, t, xLTy,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.plus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN);\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) {\r\n\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x :\r\n\r\n // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity\r\n ROUNDING_MODE == 3 ? -0 : 0);\r\n }\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Determine which is the bigger number.\r\n if (a = xe - ye) {\r\n\r\n if (xLTy = a < 0) {\r\n a = -a;\r\n t = xc;\r\n } else {\r\n ye = xe;\r\n t = yc;\r\n }\r\n\r\n t.reverse();\r\n\r\n // Prepend zeros to equalise exponents.\r\n for (b = a; b--; t.push(0));\r\n t.reverse();\r\n } else {\r\n\r\n // Exponents equal. Check digit by digit.\r\n j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;\r\n\r\n for (a = b = 0; b < j; b++) {\r\n\r\n if (xc[b] != yc[b]) {\r\n xLTy = xc[b] < yc[b];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // x < y? Point xc to the array of the bigger number.\r\n if (xLTy) t = xc, xc = yc, yc = t, y.s = -y.s;\r\n\r\n b = (j = yc.length) - (i = xc.length);\r\n\r\n // Append zeros to xc if shorter.\r\n // No need to add zeros to yc if shorter as subtract only needs to start at yc.length.\r\n if (b > 0) for (; b--; xc[i++] = 0);\r\n b = BASE - 1;\r\n\r\n // Subtract yc from xc.\r\n for (; j > a;) {\r\n\r\n if (xc[--j] < yc[j]) {\r\n for (i = j; i && !xc[--i]; xc[i] = b);\r\n --xc[i];\r\n xc[j] += BASE;\r\n }\r\n\r\n xc[j] -= yc[j];\r\n }\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xc[0] == 0; xc.splice(0, 1), --ye);\r\n\r\n // Zero?\r\n if (!xc[0]) {\r\n\r\n // Following IEEE 754 (2008) 6.3,\r\n // n - n = +0 but n - n = -0 when rounding towards -Infinity.\r\n y.s = ROUNDING_MODE == 3 ? -1 : 1;\r\n y.c = [y.e = 0];\r\n return y;\r\n }\r\n\r\n // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity\r\n // for finite x and y.\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * n % 0 = N\r\n * n % N = N\r\n * n % I = n\r\n * 0 % n = 0\r\n * -0 % n = -0\r\n * 0 % 0 = N\r\n * 0 % N = N\r\n * 0 % I = 0\r\n * N % n = N\r\n * N % 0 = N\r\n * N % N = N\r\n * N % I = N\r\n * I % n = N\r\n * I % 0 = N\r\n * I % N = N\r\n * I % I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber modulo the value of\r\n * BigNumber(y, b). The result depends on the value of MODULO_MODE.\r\n */\r\n P.modulo = P.mod = function (y, b) {\r\n var q, s,\r\n x = this;\r\n\r\n y = new BigNumber(y, b);\r\n\r\n // Return NaN if x is Infinity or NaN, or y is NaN or zero.\r\n if (!x.c || !y.s || y.c && !y.c[0]) {\r\n return new BigNumber(NaN);\r\n\r\n // Return x if y is Infinity or x is zero.\r\n } else if (!y.c || x.c && !x.c[0]) {\r\n return new BigNumber(x);\r\n }\r\n\r\n if (MODULO_MODE == 9) {\r\n\r\n // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n // r = x - qy where 0 <= r < abs(y)\r\n s = y.s;\r\n y.s = 1;\r\n q = div(x, y, 0, 3);\r\n y.s = s;\r\n q.s *= s;\r\n } else {\r\n q = div(x, y, 0, MODULO_MODE);\r\n }\r\n\r\n y = x.minus(q.times(y));\r\n\r\n // To match JavaScript %, ensure sign of zero is sign of dividend.\r\n if (!y.c[0] && MODULO_MODE == 1) y.s = x.s;\r\n\r\n return y;\r\n };\r\n\r\n\r\n /*\r\n * n * 0 = 0\r\n * n * N = N\r\n * n * I = I\r\n * 0 * n = 0\r\n * 0 * 0 = 0\r\n * 0 * N = N\r\n * 0 * I = N\r\n * N * n = N\r\n * N * 0 = N\r\n * N * N = N\r\n * N * I = N\r\n * I * n = I\r\n * I * 0 = N\r\n * I * N = N\r\n * I * I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber multiplied by the value\r\n * of BigNumber(y, b).\r\n */\r\n P.multipliedBy = P.times = function (y, b) {\r\n var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc,\r\n base, sqrtBase,\r\n x = this,\r\n xc = x.c,\r\n yc = (y = new BigNumber(y, b)).c;\r\n\r\n // Either NaN, ±Infinity or ±0?\r\n if (!xc || !yc || !xc[0] || !yc[0]) {\r\n\r\n // Return NaN if either is NaN, or one is 0 and the other is Infinity.\r\n if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {\r\n y.c = y.e = y.s = null;\r\n } else {\r\n y.s *= x.s;\r\n\r\n // Return ±Infinity if either is ±Infinity.\r\n if (!xc || !yc) {\r\n y.c = y.e = null;\r\n\r\n // Return ±0 if either is ±0.\r\n } else {\r\n y.c = [0];\r\n y.e = 0;\r\n }\r\n }\r\n\r\n return y;\r\n }\r\n\r\n e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);\r\n y.s *= x.s;\r\n xcL = xc.length;\r\n ycL = yc.length;\r\n\r\n // Ensure xc points to longer array and xcL to its length.\r\n if (xcL < ycL) zc = xc, xc = yc, yc = zc, i = xcL, xcL = ycL, ycL = i;\r\n\r\n // Initialise the result array with zeros.\r\n for (i = xcL + ycL, zc = []; i--; zc.push(0));\r\n\r\n base = BASE;\r\n sqrtBase = SQRT_BASE;\r\n\r\n for (i = ycL; --i >= 0;) {\r\n c = 0;\r\n ylo = yc[i] % sqrtBase;\r\n yhi = yc[i] / sqrtBase | 0;\r\n\r\n for (k = xcL, j = i + k; j > i;) {\r\n xlo = xc[--k] % sqrtBase;\r\n xhi = xc[k] / sqrtBase | 0;\r\n m = yhi * xlo + xhi * ylo;\r\n xlo = ylo * xlo + ((m % sqrtBase) * sqrtBase) + zc[j] + c;\r\n c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;\r\n zc[j--] = xlo % base;\r\n }\r\n\r\n zc[j] = c;\r\n }\r\n\r\n if (c) {\r\n ++e;\r\n } else {\r\n zc.splice(0, 1);\r\n }\r\n\r\n return normalise(y, zc, e);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber negated,\r\n * i.e. multiplied by -1.\r\n */\r\n P.negated = function () {\r\n var x = new BigNumber(this);\r\n x.s = -x.s || null;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * n + 0 = n\r\n * n + N = N\r\n * n + I = I\r\n * 0 + n = n\r\n * 0 + 0 = 0\r\n * 0 + N = N\r\n * 0 + I = I\r\n * N + n = N\r\n * N + 0 = N\r\n * N + N = N\r\n * N + I = N\r\n * I + n = I\r\n * I + 0 = I\r\n * I + N = N\r\n * I + I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber plus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.plus = function (y, b) {\r\n var t,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.minus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Return ±Infinity if either ±Infinity.\r\n if (!xc || !yc) return new BigNumber(a / 0);\r\n\r\n // Either zero?\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0);\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts.\r\n if (a = xe - ye) {\r\n if (a > 0) {\r\n ye = xe;\r\n t = yc;\r\n } else {\r\n a = -a;\r\n t = xc;\r\n }\r\n\r\n t.reverse();\r\n for (; a--; t.push(0));\r\n t.reverse();\r\n }\r\n\r\n a = xc.length;\r\n b = yc.length;\r\n\r\n // Point xc to the longer array, and b to the shorter length.\r\n if (a - b < 0) t = yc, yc = xc, xc = t, b = a;\r\n\r\n // Only start adding at yc.length - 1 as the further digits of xc can be ignored.\r\n for (a = 0; b;) {\r\n a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;\r\n xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;\r\n }\r\n\r\n if (a) {\r\n xc = [a].concat(xc);\r\n ++ye;\r\n }\r\n\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n // ye = MAX_EXP + 1 possible\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * If sd is undefined or null or true or false, return the number of significant digits of\r\n * the value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n * If sd is true include integer-part trailing zeros in the count.\r\n *\r\n * Otherwise, if sd is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of sd significant digits using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * sd {number|boolean} number: significant digits: integer, 1 to MAX inclusive.\r\n * boolean: whether to count integer-part trailing zeros: true or false.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.precision = P.sd = function (sd, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (sd != null && sd !== !!sd) {\r\n intCheck(sd, 1, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), sd, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n v = c.length - 1;\r\n n = v * LOG_BASE + 1;\r\n\r\n if (v = c[v]) {\r\n\r\n // Subtract the number of trailing zeros of the last element.\r\n for (; v % 10 == 0; v /= 10, n--);\r\n\r\n // Add the number of digits of the first element.\r\n for (v = c[0]; v >= 10; v /= 10, n++);\r\n }\r\n\r\n if (sd && x.e + 1 > n) n = x.e + 1;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber shifted by k places\r\n * (powers of 10). Shift to the right if n > 0, and to the left if n < 0.\r\n *\r\n * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {k}'\r\n */\r\n P.shiftedBy = function (k) {\r\n intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);\r\n return this.times('1e' + k);\r\n };\r\n\r\n\r\n /*\r\n * sqrt(-n) = N\r\n * sqrt(N) = N\r\n * sqrt(-I) = N\r\n * sqrt(I) = I\r\n * sqrt(0) = 0\r\n * sqrt(-0) = -0\r\n *\r\n * Return a new BigNumber whose value is the square root of the value of this BigNumber,\r\n * rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var m, n, r, rep, t,\r\n x = this,\r\n c = x.c,\r\n s = x.s,\r\n e = x.e,\r\n dp = DECIMAL_PLACES + 4,\r\n half = new BigNumber('0.5');\r\n\r\n // Negative/NaN/Infinity/zero?\r\n if (s !== 1 || !c || !c[0]) {\r\n return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);\r\n }\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+valueOf(x));\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = coeffToString(c);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(+n);\r\n e = bitFloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new BigNumber(n);\r\n } else {\r\n r = new BigNumber(s + '');\r\n }\r\n\r\n // Check for zero.\r\n // r could be zero if MIN_EXP is changed after the this value was created.\r\n // This would cause a division by zero (x/t) and hence Infinity below, which would cause\r\n // coeffToString to throw.\r\n if (r.c[0]) {\r\n e = r.e;\r\n s = e + dp;\r\n if (s < 3) s = 0;\r\n\r\n // Newton-Raphson iteration.\r\n for (; ;) {\r\n t = r;\r\n r = half.times(t.plus(div(x, t, dp, 1)));\r\n\r\n if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {\r\n\r\n // The exponent of r may here be one less than the final result exponent,\r\n // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits\r\n // are indexed correctly.\r\n if (r.e < e) --s;\r\n n = n.slice(s - 3, s + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits\r\n // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the\r\n // iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the\r\n // exact result as the nines may infinitely repeat.\r\n if (!rep) {\r\n round(t, t.e + DECIMAL_PLACES + 2, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n dp += 4;\r\n s += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact\r\n // result. If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n round(r, r.e + DECIMAL_PLACES + 2, 1);\r\n m = !r.times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in exponential notation and\r\n * rounded using ROUNDING_MODE to dp fixed decimal places.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toExponential = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp++;\r\n }\r\n return format(this, dp, rm, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounding\r\n * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * Note: as with JavaScript's number type, (-0).toFixed(0) is '0',\r\n * but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toFixed = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp = dp + this.e + 1;\r\n }\r\n return format(this, dp, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounded\r\n * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties\r\n * of the format or FORMAT object (see BigNumber.set).\r\n *\r\n * The formatting object may contain some or all of the properties shown below.\r\n *\r\n * FORMAT = {\r\n * prefix: '',\r\n * groupSize: 3,\r\n * secondaryGroupSize: 0,\r\n * groupSeparator: ',',\r\n * decimalSeparator: '.',\r\n * fractionGroupSize: 0,\r\n * fractionGroupSeparator: '\\xA0', // non-breaking space\r\n * suffix: ''\r\n * };\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n * [format] {object} Formatting options. See FORMAT pbject above.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n * '[BigNumber Error] Argument not an object: {format}'\r\n */\r\n P.toFormat = function (dp, rm, format) {\r\n var str,\r\n x = this;\r\n\r\n if (format == null) {\r\n if (dp != null && rm && typeof rm == 'object') {\r\n format = rm;\r\n rm = null;\r\n } else if (dp && typeof dp == 'object') {\r\n format = dp;\r\n dp = rm = null;\r\n } else {\r\n format = FORMAT;\r\n }\r\n } else if (typeof format != 'object') {\r\n throw Error\r\n (bignumberError + 'Argument not an object: ' + format);\r\n }\r\n\r\n str = x.toFixed(dp, rm);\r\n\r\n if (x.c) {\r\n var i,\r\n arr = str.split('.'),\r\n g1 = +format.groupSize,\r\n g2 = +format.secondaryGroupSize,\r\n groupSeparator = format.groupSeparator || '',\r\n intPart = arr[0],\r\n fractionPart = arr[1],\r\n isNeg = x.s < 0,\r\n intDigits = isNeg ? intPart.slice(1) : intPart,\r\n len = intDigits.length;\r\n\r\n if (g2) i = g1, g1 = g2, g2 = i, len -= i;\r\n\r\n if (g1 > 0 && len > 0) {\r\n i = len % g1 || g1;\r\n intPart = intDigits.substr(0, i);\r\n for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1);\r\n if (g2 > 0) intPart += groupSeparator + intDigits.slice(i);\r\n if (isNeg) intPart = '-' + intPart;\r\n }\r\n\r\n str = fractionPart\r\n ? intPart + (format.decimalSeparator || '') + ((g2 = +format.fractionGroupSize)\r\n ? fractionPart.replace(new RegExp('\\\\d{' + g2 + '}\\\\B', 'g'),\r\n '$&' + (format.fractionGroupSeparator || ''))\r\n : fractionPart)\r\n : intPart;\r\n }\r\n\r\n return (format.prefix || '') + str + (format.suffix || '');\r\n };\r\n\r\n\r\n /*\r\n * Return an array of two BigNumbers representing the value of this BigNumber as a simple\r\n * fraction with an integer numerator and an integer denominator.\r\n * The denominator will be a positive non-zero value less than or equal to the specified\r\n * maximum denominator. If a maximum denominator is not specified, the denominator will be\r\n * the lowest value necessary to represent the number exactly.\r\n *\r\n * [md] {number|string|BigNumber} Integer >= 1, or Infinity. The maximum denominator.\r\n *\r\n * '[BigNumber Error] Argument {not an integer|out of range} : {md}'\r\n */\r\n P.toFraction = function (md) {\r\n var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s,\r\n x = this,\r\n xc = x.c;\r\n\r\n if (md != null) {\r\n n = new BigNumber(md);\r\n\r\n // Throw if md is less than one or is not an integer, unless it is Infinity.\r\n if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {\r\n throw Error\r\n (bignumberError + 'Argument ' +\r\n (n.isInteger() ? 'out of range: ' : 'not an integer: ') + valueOf(n));\r\n }\r\n }\r\n\r\n if (!xc) return new BigNumber(x);\r\n\r\n d = new BigNumber(ONE);\r\n n1 = d0 = new BigNumber(ONE);\r\n d1 = n0 = new BigNumber(ONE);\r\n s = coeffToString(xc);\r\n\r\n // Determine initial denominator.\r\n // d is a power of 10 and the minimum max denominator that specifies the value exactly.\r\n e = d.e = s.length - x.e - 1;\r\n d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];\r\n md = !md || n.comparedTo(d) > 0 ? (e > 0 ? d : n1) : n;\r\n\r\n exp = MAX_EXP;\r\n MAX_EXP = 1 / 0;\r\n n = new BigNumber(s);\r\n\r\n // n0 = d1 = 0\r\n n0.c[0] = 0;\r\n\r\n for (; ;) {\r\n q = div(n, d, 0, 1);\r\n d2 = d0.plus(q.times(d1));\r\n if (d2.comparedTo(md) == 1) break;\r\n d0 = d1;\r\n d1 = d2;\r\n n1 = n0.plus(q.times(d2 = n1));\r\n n0 = d2;\r\n d = n.minus(q.times(d2 = d));\r\n n = d2;\r\n }\r\n\r\n d2 = div(md.minus(d0), d1, 0, 1);\r\n n0 = n0.plus(d2.times(n1));\r\n d0 = d0.plus(d2.times(d1));\r\n n0.s = n1.s = x.s;\r\n e = e * 2;\r\n\r\n // Determine which fraction is closer to x, n0/d0 or n1/d1\r\n r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(\r\n div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];\r\n\r\n MAX_EXP = exp;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this BigNumber converted to a number primitive.\r\n */\r\n P.toNumber = function () {\r\n return +valueOf(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber rounded to sd significant digits\r\n * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits\r\n * necessary to represent the integer part of the value in fixed-point notation, then use\r\n * exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n if (sd != null) intCheck(sd, 1, MAX);\r\n return format(this, sd, rm, 2);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in base b, or base 10 if b is\r\n * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and\r\n * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent\r\n * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than\r\n * TO_EXP_NEG, return exponential notation.\r\n *\r\n * [b] {number} Integer, 2 to ALPHABET.length inclusive.\r\n *\r\n * '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n */\r\n P.toString = function (b) {\r\n var str,\r\n n = this,\r\n s = n.s,\r\n e = n.e;\r\n\r\n // Infinity or NaN?\r\n if (e === null) {\r\n if (s) {\r\n str = 'Infinity';\r\n if (s < 0) str = '-' + str;\r\n } else {\r\n str = 'NaN';\r\n }\r\n } else {\r\n if (b == null) {\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(coeffToString(n.c), e)\r\n : toFixedPoint(coeffToString(n.c), e, '0');\r\n } else if (b === 10 && alphabetHasNormalDecimalDigits) {\r\n n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);\r\n str = toFixedPoint(coeffToString(n.c), n.e, '0');\r\n } else {\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true);\r\n }\r\n\r\n if (s < 0 && n.c[0]) str = '-' + str;\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return as toString, but do not accept a base argument, and include the minus sign for\r\n * negative zero.\r\n */\r\n P.valueOf = P.toJSON = function () {\r\n return valueOf(this);\r\n };\r\n\r\n\r\n P._isBigNumber = true;\r\n\r\n P[Symbol.toStringTag] = 'BigNumber';\r\n\r\n // Node.js v10.12.0+\r\n P[Symbol.for('nodejs.util.inspect.custom')] = P.valueOf;\r\n\r\n if (configObject != null) BigNumber.set(configObject);\r\n\r\n return BigNumber;\r\n}\r\n\r\n\r\n// PRIVATE HELPER FUNCTIONS\r\n\r\n// These functions don't need access to variables,\r\n// e.g. DECIMAL_PLACES, in the scope of the `clone` function above.\r\n\r\n\r\nfunction bitFloor(n) {\r\n var i = n | 0;\r\n return n > 0 || n === i ? i : i - 1;\r\n}\r\n\r\n\r\n// Return a coefficient array as a string of base 10 digits.\r\nfunction coeffToString(a) {\r\n var s, z,\r\n i = 1,\r\n j = a.length,\r\n r = a[0] + '';\r\n\r\n for (; i < j;) {\r\n s = a[i++] + '';\r\n z = LOG_BASE - s.length;\r\n for (; z--; s = '0' + s);\r\n r += s;\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (j = r.length; r.charCodeAt(--j) === 48;);\r\n\r\n return r.slice(0, j + 1 || 1);\r\n}\r\n\r\n\r\n// Compare the value of BigNumbers x and y.\r\nfunction compare(x, y) {\r\n var a, b,\r\n xc = x.c,\r\n yc = y.c,\r\n i = x.s,\r\n j = y.s,\r\n k = x.e,\r\n l = y.e;\r\n\r\n // Either NaN?\r\n if (!i || !j) return null;\r\n\r\n a = xc && !xc[0];\r\n b = yc && !yc[0];\r\n\r\n // Either zero?\r\n if (a || b) return a ? b ? 0 : -j : i;\r\n\r\n // Signs differ?\r\n if (i != j) return i;\r\n\r\n a = i < 0;\r\n b = k == l;\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1;\r\n\r\n // Compare exponents.\r\n if (!b) return k > l ^ a ? 1 : -1;\r\n\r\n j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n // Compare digit by digit.\r\n for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1;\r\n\r\n // Compare lengths.\r\n return k == l ? 0 : k > l ^ a ? 1 : -1;\r\n}\r\n\r\n\r\n/*\r\n * Check that n is a primitive number, an integer, and in range, otherwise throw.\r\n */\r\nfunction intCheck(n, min, max, name) {\r\n if (n < min || n > max || n !== mathfloor(n)) {\r\n throw Error\r\n (bignumberError + (name || 'Argument') + (typeof n == 'number'\r\n ? n < min || n > max ? ' out of range: ' : ' not an integer: '\r\n : ' not a primitive number: ') + String(n));\r\n }\r\n}\r\n\r\n\r\n// Assumes finite n.\r\nfunction isOdd(n) {\r\n var k = n.c.length - 1;\r\n return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;\r\n}\r\n\r\n\r\nfunction toExponential(str, e) {\r\n return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) +\r\n (e < 0 ? 'e' : 'e+') + e;\r\n}\r\n\r\n\r\nfunction toFixedPoint(str, e, z) {\r\n var len, zs;\r\n\r\n // Negative exponent?\r\n if (e < 0) {\r\n\r\n // Prepend zeros.\r\n for (zs = z + '.'; ++e; zs += z);\r\n str = zs + str;\r\n\r\n // Positive exponent\r\n } else {\r\n len = str.length;\r\n\r\n // Append zeros.\r\n if (++e > len) {\r\n for (zs = z, e -= len; --e; zs += z);\r\n str += zs;\r\n } else if (e < len) {\r\n str = str.slice(0, e) + '.' + str.slice(e);\r\n }\r\n }\r\n\r\n return str;\r\n}\r\n\r\n\r\n// EXPORT\r\n\r\n\r\nexport var BigNumber = clone();\r\n\r\nexport default BigNumber;\r\n","import { DIGIT, ALPHA, ALPHANUM } from './constants'\n\n/**\n * function addPlaceholder\n * @param {string[]} output\n * @param {number} index\n * @param {string} placeholder\n * @returns {string[]}\n */\nfunction addPlaceholder(\n output: string[],\n index: number,\n placeholder: string\n): string[] {\n for (let newIndex = index; newIndex < output.length; newIndex++) {\n if (\n output[newIndex] === DIGIT ||\n output[newIndex] === ALPHA ||\n output[newIndex] === ALPHANUM\n ) {\n // eslint-disable-next-line no-param-reassign\n output[newIndex] = placeholder\n }\n }\n return output\n}\n\nexport default addPlaceholder\n","export const DIGIT = '9'\nexport const ALPHA = 'A'\nexport const ALPHANUM = 'S'\nexport const HOURS = 'H'\n// export const HOURS_AM_PM = 'h'\nexport const MINUTES = 'm'\nexport const SECONDS = 's'\n","import { DIGIT, ALPHA, ALPHANUM, MINUTES, SECONDS, HOURS } from './constants'\nimport addPlaceholder from './addPlaceholder'\n\ntype OptionPattern = {\n pattern: string\n placeholder: string\n}\n\n/**\n * function toPattern\n * @param {number | string} value\n * @param {string | OptionPattern} optionPattern\n * @returns {string}\n */\nfunction toPattern(\n value: number | string,\n optionPattern: string | OptionPattern\n): string {\n const pattern =\n typeof optionPattern === 'object' ? optionPattern.pattern : optionPattern\n const patternChars = pattern.replace(/\\W/g, '')\n const output = pattern.split('')\n const values = value.toString().replace(/\\W/g, '')\n const charsValues = values.replace(/\\W/g, '')\n const placeholder =\n typeof optionPattern === 'object' ? optionPattern.placeholder : undefined\n let charCounter = 0\n let index\n\n const outputLength = output.length\n for (index = 0; index < outputLength; index++) {\n // Reached the end of input\n if (charCounter >= values.length) {\n if (patternChars.length === charsValues.length) {\n return output.join('')\n }\n if (\n placeholder !== undefined &&\n patternChars.length > charsValues.length\n ) {\n return addPlaceholder(output, index, placeholder).join('')\n }\n break\n } else if (\n (output[index] === DIGIT && values[charCounter].match(/[0-9]/)) ||\n (output[index] === ALPHA && values[charCounter].match(/[a-zA-Z]/)) ||\n (output[index] === ALPHANUM &&\n values[charCounter].match(/[0-9a-zA-Z]/)) ||\n (output[index] === HOURS && values[charCounter].match(/[0-23]/)) ||\n (output[index] === MINUTES && values[charCounter].match(/[0-59]/)) ||\n (output[index] === SECONDS && values[charCounter].match(/[0-59]/))\n ) {\n output[index] = values[charCounter++]\n } else if (\n output[index] === DIGIT ||\n output[index] === ALPHA ||\n output[index] === ALPHANUM ||\n output[index] === HOURS ||\n output[index] === MINUTES ||\n output[index] === SECONDS\n ) {\n if (placeholder !== undefined) {\n return addPlaceholder(output, index, placeholder).join('')\n }\n return output.slice(0, index).join('')\n\n // exact match for a non-magic character\n } else if (output[index] === values[charCounter]) {\n charCounter++\n }\n }\n return output.join('').substr(0, index)\n}\n\nexport default toPattern\n","/* eslint-disable no-confusing-arrow */\nimport { BigNumber } from 'bignumber.js'\nimport type { FormatType } from '../@types/FormatType'\nimport toPattern from './toPattern'\n\n/**\n * function unMask(\n * @param {string} value\n * @param {'custom' | 'currency'} type\n * @returns {string}\n */\nfunction unMask(value: string, type: 'custom' | 'currency' = 'custom') {\n if (type === 'currency') {\n if (!value) return '0'\n\n const unMaskedValue = value.replace(/\\D/g, '')\n const number = parseInt(unMaskedValue.trimStart())\n\n return number.toString()\n }\n\n return value.replace(/\\W/g, '')\n}\n\n/**\n * function masker(\n * @param {string} value\n * @param {string} patterns\n * @param {any} options\n * @returns {string}\n */\nfunction masker(value: string, pattern: string, options: any) {\n return toPattern(value, { pattern, ...options })\n}\n\n/**\n * function masker(\n * @param {string} value\n * @param {any} options\n * @returns {string}\n */\nfunction currencyMasker(value = '0', options: any) {\n const {\n prefix,\n decimalSeparator,\n groupSeparator,\n precision,\n groupSize,\n secondaryGroupSize,\n fractionGroupSeparator,\n fractionGroupSize,\n suffix,\n } = options\n\n const precisionDivider = parseInt(1 + '0'.repeat(precision || 0))\n const number = parseInt(value) / precisionDivider\n\n const formatter = {\n prefix,\n decimalSeparator,\n groupSeparator,\n groupSize: groupSize || 3,\n secondaryGroupSize,\n fractionGroupSeparator,\n fractionGroupSize,\n suffix,\n }\n\n const bigNumber = new BigNumber(number)\n\n BigNumber.config({ FORMAT: formatter })\n\n return bigNumber.toFormat(precision)\n}\n\nfunction dateMasker(value = '', options: any) {\n const { dateFormat = 'yyyy/mm/dd' } = options\n\n const regex = /[a-zA-Z]/gi\n const pattern = dateFormat.replaceAll(regex, '9')\n return masker(value, pattern, {})\n}\n\nfunction timeMasker(value = '', options: any) {\n const { timeFormat = 'HH:mm:ss' } = options\n\n const pattern = timeFormat\n return masker(value, pattern, {})\n}\n\n/**\n * function multimasker(\n * @param {string} value\n * @param {string[]} patterns\n * @param {any} options\n * @returns {string}\n */\nfunction multimasker(value: string, patterns: string[], options: any) {\n return masker(\n value,\n patterns.reduce(\n (memo: string, pattern: string) =>\n value.length <= unMask(memo).length ? memo : pattern,\n patterns[0]\n ),\n options\n )\n}\n\nfunction mask(\n value: string | number,\n pattern: string | string[] = '',\n type: FormatType = 'custom',\n options?: any\n): string {\n if (type === 'currency') {\n return currencyMasker(String(value), options)\n }\n\n if (type === 'date') {\n return dateMasker(String(value), options)\n }\n\n if (type === 'time') {\n return timeMasker(String(value), options)\n }\n\n if (typeof pattern === 'string') {\n return masker(String(value), pattern || '', {})\n }\n\n return multimasker(String(value), pattern, {})\n}\n\nexport { mask, unMask }\n","import React from 'react'\nimport { Text, TextProps } from 'react-native'\nimport { mask } from '../utils/mask'\nimport type { MaskOptions } from '../@types/MaskOptions'\n\nexport interface MaskedTextProps {\n children: string\n mask?: string\n type?: 'custom' | 'currency'\n options?: MaskOptions\n}\n\nexport function MaskedText({\n children: text,\n mask: pattern = '',\n type = 'custom',\n options = {} as MaskOptions,\n ...rest\n}: MaskedTextProps & TextProps): JSX.Element {\n return {mask(text, pattern, type, options)};\n}\n","import React, {\n useEffect,\n useState,\n forwardRef,\n ForwardRefRenderFunction,\n} from 'react'\nimport { TextInput, TextInputProps } from 'react-native'\nimport { mask, unMask } from '../utils/mask'\nimport type { MaskOptions } from '../@types/MaskOptions'\nimport type { FormatType } from '../@types/FormatType'\n\ntype TIProps = Omit\n\nexport interface MaskedTextInputProps extends TIProps {\n mask?: string\n type?: FormatType\n options?: MaskOptions\n defaultValue?: string\n onChangeText: (text: string, rawText: string) => void\n inputAccessoryView?: JSX.Element\n}\n\nexport const MaskedTextInputComponent: ForwardRefRenderFunction<\n TextInput,\n MaskedTextInputProps\n> = (\n {\n mask: pattern = '',\n type = 'custom',\n options = {} as MaskOptions,\n defaultValue,\n onChangeText,\n value,\n inputAccessoryView,\n ...rest\n },\n ref\n): JSX.Element => {\n const getMaskedValue = (value: string) => mask(value, pattern, type, options)\n const getUnMaskedValue = (value: string) =>\n unMask(value, type as 'custom' | 'currency')\n\n const defaultValueCustom = defaultValue || ''\n const defaultValueCurrency = defaultValue || '0'\n\n const initialMaskedValue = getMaskedValue(\n type === 'currency' ? defaultValueCurrency : defaultValueCustom\n )\n\n const initialUnMaskedValue = getUnMaskedValue(\n type === 'currency' ? defaultValueCurrency : defaultValueCustom\n )\n\n const [maskedValue, setMaskedValue] = useState(initialMaskedValue)\n const [unMaskedValue, setUnmaskedValue] = useState(initialUnMaskedValue)\n\n function onChange(value: string) {\n const newUnMaskedValue = unMask(value, type as 'custom' | 'currency')\n const newMaskedValue = mask(newUnMaskedValue, pattern, type, options)\n\n setMaskedValue(newMaskedValue)\n setUnmaskedValue(newUnMaskedValue)\n }\n\n useEffect(() => {\n onChangeText(maskedValue, unMaskedValue)\n }, [maskedValue, unMaskedValue])\n\n useEffect(() => {\n if (value) {\n setMaskedValue(getMaskedValue(value))\n setUnmaskedValue(getUnMaskedValue(value))\n } else {\n setMaskedValue(initialMaskedValue)\n setUnmaskedValue(initialUnMaskedValue)\n }\n }, [value])\n\n return (\n <>\n onChange(value)}\n ref={ref}\n maxLength={pattern.length || undefined}\n {...rest}\n value={maskedValue}\n />\n {inputAccessoryView}\n \n )\n}\n\nexport const MaskedTextInput = forwardRef(MaskedTextInputComponent)\n","import * as React from 'react';\nimport {\n Animated,\n Easing,\n Platform,\n StyleProp,\n StyleSheet,\n View,\n ViewStyle,\n} from 'react-native';\nimport { withTheme } from '../core/theming';\n\ntype Props = React.ComponentPropsWithRef & {\n /**\n * Whether to show the indicator or hide it.\n */\n animating?: boolean;\n /**\n * The color of the spinner.\n */\n color?: string;\n /**\n * Size of the indicator.\n */\n size?: 'small' | 'large' | number;\n /**\n * Whether the indicator should hide when not animating.\n */\n hidesWhenStopped?: boolean;\n style?: StyleProp;\n /**\n * @optional\n */\n theme: ReactNativePaper.Theme;\n};\n\nconst DURATION = 2400;\n\n/**\n * Activity indicator is used to present progress of some activity in the app.\n * It can be used as a drop-in for the ActivityIndicator shipped with React Native.\n *\n *

\n * \n *
\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { ActivityIndicator, Colors } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * );\n *\n * export default MyComponent;\n * ```\n */\nconst ActivityIndicator = ({\n animating = true,\n color: indicatorColor,\n hidesWhenStopped = true,\n size: indicatorSize = 'small',\n style,\n theme,\n ...rest\n}: Props) => {\n const { current: timer } = React.useRef(\n new Animated.Value(0)\n );\n const { current: fade } = React.useRef(\n new Animated.Value(!animating && hidesWhenStopped ? 0 : 1)\n );\n\n const rotation = React.useRef(\n undefined\n );\n\n const {\n animation: { scale },\n } = theme;\n\n const startRotation = React.useCallback(() => {\n // Show indicator\n Animated.timing(fade, {\n duration: 200 * scale,\n toValue: 1,\n isInteraction: false,\n useNativeDriver: true,\n }).start();\n\n // Circular animation in loop\n if (rotation.current) {\n timer.setValue(0);\n // $FlowFixMe\n Animated.loop(rotation.current).start();\n }\n }, [scale, fade, timer]);\n\n const stopRotation = () => {\n if (rotation.current) {\n rotation.current.stop();\n }\n };\n\n React.useEffect(() => {\n if (rotation.current === undefined) {\n // Circular animation in loop\n rotation.current = Animated.timing(timer, {\n duration: DURATION,\n easing: Easing.linear,\n // Animated.loop does not work if useNativeDriver is true on web\n useNativeDriver: Platform.OS !== 'web',\n toValue: 1,\n isInteraction: false,\n });\n }\n\n if (animating) {\n startRotation();\n } else if (hidesWhenStopped) {\n // Hide indicator first and then stop rotation\n Animated.timing(fade, {\n duration: 200 * scale,\n toValue: 0,\n useNativeDriver: true,\n isInteraction: false,\n }).start(stopRotation);\n } else {\n stopRotation();\n }\n }, [animating, fade, hidesWhenStopped, startRotation, scale, timer]);\n\n const color = indicatorColor || theme.colors.primary;\n const size =\n typeof indicatorSize === 'string'\n ? indicatorSize === 'small'\n ? 24\n : 48\n : indicatorSize\n ? indicatorSize\n : 24;\n\n const frames = (60 * DURATION) / 1000;\n const easing = Easing.bezier(0.4, 0.0, 0.7, 1.0);\n const containerStyle = {\n width: size,\n height: size / 2,\n overflow: 'hidden' as const,\n };\n\n return (\n \n \n {[0, 1].map((index) => {\n // Thanks to https://github.com/n4kz/react-native-indicators for the great work\n const inputRange = Array.from(\n new Array(frames),\n (_, frameIndex) => frameIndex / (frames - 1)\n );\n const outputRange = Array.from(new Array(frames), (_, frameIndex) => {\n let progress = (2 * frameIndex) / (frames - 1);\n const rotation = index ? +(360 - 15) : -(180 - 15);\n\n if (progress > 1.0) {\n progress = 2.0 - progress;\n }\n\n const direction = index ? -1 : +1;\n\n return `${direction * (180 - 30) * easing(progress) + rotation}deg`;\n });\n\n const layerStyle = {\n width: size,\n height: size,\n transform: [\n {\n rotate: timer.interpolate({\n inputRange: [0, 1],\n outputRange: [`${0 + 30 + 15}deg`, `${2 * 360 + 30 + 15}deg`],\n }),\n },\n ],\n };\n\n const viewportStyle = {\n width: size,\n height: size,\n transform: [\n {\n translateY: index ? -size / 2 : 0,\n },\n {\n rotate: timer.interpolate({ inputRange, outputRange }),\n },\n ],\n };\n\n const offsetStyle = index ? { top: size / 2 } : null;\n\n const lineStyle = {\n width: size,\n height: size,\n borderColor: color,\n borderWidth: size / 10,\n borderRadius: size / 2,\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n })}\n \n \n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n justifyContent: 'center',\n alignItems: 'center',\n },\n\n layer: {\n ...StyleSheet.absoluteFillObject,\n\n justifyContent: 'center',\n alignItems: 'center',\n },\n});\n\nexport default withTheme(ActivityIndicator);\n","import * as React from 'react';\nimport {\n Image,\n I18nManager,\n Platform,\n ImageSourcePropType,\n} from 'react-native';\nimport { Consumer as SettingsConsumer } from '../core/settings';\nimport { accessibilityProps } from './MaterialCommunityIcon';\nimport { withTheme } from '../core/theming';\n\ntype IconSourceBase = string | ImageSourcePropType;\n\nexport type IconSource =\n | IconSourceBase\n | Readonly<{ source: IconSourceBase; direction: 'rtl' | 'ltr' | 'auto' }>\n | ((props: IconProps & { color: string }) => React.ReactNode);\n\ntype IconProps = {\n size: number;\n allowFontScaling?: boolean;\n};\n\ntype Props = IconProps & {\n color?: string;\n source: any;\n /**\n * @optional\n */\n theme: ReactNativePaper.Theme;\n};\n\nconst isImageSource = (source: any) =>\n // source is an object with uri\n (typeof source === 'object' &&\n source !== null &&\n Object.prototype.hasOwnProperty.call(source, 'uri') &&\n typeof source.uri === 'string') ||\n // source is a module, e.g. - require('image')\n typeof source === 'number' ||\n // image url on web\n (Platform.OS === 'web' &&\n typeof source === 'string' &&\n (source.startsWith('data:image') ||\n /\\.(bmp|jpg|jpeg|png|gif|svg)$/.test(source)));\n\nconst getIconId = (source: any) => {\n if (\n typeof source === 'object' &&\n source !== null &&\n Object.prototype.hasOwnProperty.call(source, 'uri') &&\n typeof source.uri === 'string'\n ) {\n return source.uri;\n }\n\n return source;\n};\n\nexport const isValidIcon = (source: any) =>\n typeof source === 'string' ||\n typeof source === 'function' ||\n isImageSource(source);\n\nexport const isEqualIcon = (a: any, b: any) =>\n a === b || getIconId(a) === getIconId(b);\n\nconst Icon = ({ source, color, size, theme, ...rest }: Props) => {\n const direction =\n typeof source === 'object' && source.direction && source.source\n ? source.direction === 'auto'\n ? I18nManager.isRTL\n ? 'rtl'\n : 'ltr'\n : source.direction\n : null;\n const s =\n typeof source === 'object' && source.direction && source.source\n ? source.source\n : source;\n const iconColor = color || theme.colors.text;\n\n if (isImageSource(s)) {\n return (\n \n );\n } else if (typeof s === 'string') {\n return (\n \n {({ icon }) => {\n return icon({\n name: s,\n color: iconColor,\n size,\n direction,\n });\n }}\n \n );\n } else if (typeof s === 'function') {\n return s({ color: iconColor, size, direction });\n }\n\n return null;\n};\n\nexport default withTheme(Icon);\n","import * as Colors from './colors';\nimport { Animated } from 'react-native';\n\nconst SHADOW_COLOR = Colors.black;\nconst SHADOW_OPACITY = 0.24;\n\nexport default function shadow(elevation: number | Animated.Value = 0) {\n if (elevation instanceof Animated.Value) {\n const inputRange = [0, 1, 2, 3, 8, 24];\n\n return {\n shadowColor: SHADOW_COLOR,\n shadowOffset: {\n width: new Animated.Value(0),\n height: elevation.interpolate({\n inputRange,\n outputRange: [0, 0.5, 0.75, 2, 7, 23],\n }),\n },\n shadowOpacity: elevation.interpolate({\n inputRange: [0, 1],\n outputRange: [0, SHADOW_OPACITY],\n extrapolate: 'clamp',\n }),\n shadowRadius: elevation.interpolate({\n inputRange,\n outputRange: [0, 0.75, 1.5, 3, 8, 24],\n }),\n };\n } else {\n if (elevation === 0) {\n return {};\n }\n\n let height, radius;\n switch (elevation) {\n case 1:\n height = 0.5;\n radius = 0.75;\n break;\n case 2:\n height = 0.75;\n radius = 1.5;\n break;\n default:\n height = elevation - 1;\n radius = elevation;\n }\n\n return {\n shadowColor: SHADOW_COLOR,\n shadowOffset: {\n width: 0,\n height,\n },\n shadowOpacity: SHADOW_OPACITY,\n shadowRadius: radius,\n };\n }\n}\n","import color from 'color';\nimport { Animated } from 'react-native';\nimport DarkTheme from './DarkTheme';\n\nconst isAnimatedValue = (\n it: number | Animated.AnimatedInterpolation\n): it is Animated.Value => it instanceof Animated.Value;\n\nexport default function overlay(\n elevation: T,\n surfaceColor: string = DarkTheme.colors.surface\n): T extends number ? string : Animated.AnimatedInterpolation {\n if (isAnimatedValue(elevation)) {\n const inputRange = [0, 1, 2, 3, 8, 24];\n\n // @ts-expect-error: TS doesn't seem to refine the type correctly\n return elevation.interpolate({\n inputRange,\n outputRange: inputRange.map((elevation) => {\n return calculateColor(surfaceColor, elevation);\n }),\n });\n }\n\n // @ts-expect-error: TS doesn't seem to refine the type correctly\n return calculateColor(surfaceColor, elevation);\n}\n\nfunction calculateColor(surfaceColor: string, elevation: number = 1) {\n let overlayTransparency: number;\n if (elevation >= 1 && elevation <= 24) {\n overlayTransparency = elevationOverlayTransparency[elevation];\n } else if (elevation > 24) {\n overlayTransparency = elevationOverlayTransparency[24];\n } else {\n overlayTransparency = elevationOverlayTransparency[1];\n }\n return color(surfaceColor)\n .mix(color('white'), overlayTransparency * 0.01)\n .hex();\n}\n\nconst elevationOverlayTransparency: Record = {\n 1: 5,\n 2: 7,\n 3: 8,\n 4: 9,\n 5: 10,\n 6: 11,\n 7: 11.5,\n 8: 12,\n 9: 12.5,\n 10: 13,\n 11: 13.5,\n 12: 14,\n 13: 14.25,\n 14: 14.5,\n 15: 14.75,\n 16: 15,\n 17: 15.12,\n 18: 15.24,\n 19: 15.36,\n 20: 15.48,\n 21: 15.6,\n 22: 15.72,\n 23: 15.84,\n 24: 16,\n};\n","import * as React from 'react';\nimport { Animated, StyleSheet, View, StyleProp, ViewStyle } from 'react-native';\nimport shadow from '../styles/shadow';\nimport { withTheme } from '../core/theming';\nimport overlay from '../styles/overlay';\n\ntype Props = React.ComponentPropsWithRef & {\n /**\n * Content of the `Surface`.\n */\n children: React.ReactNode;\n style?: Animated.WithAnimatedValue>;\n /**\n * @optional\n */\n theme: ReactNativePaper.Theme;\n};\n\n/**\n * Surface is a basic container that can give depth to an element with elevation shadow.\n * On dark theme with `adaptive` mode, surface is constructed by also placing a semi-transparent white overlay over a component surface.\n * See [Dark Theme](https://callstack.github.io/react-native-paper/theming.html#dark-theme) for more information.\n * Overlay and shadow can be applied by specifying the `elevation` property both on Android and iOS.\n *\n *
\n * \n * \n * \n *
\n *\n *
\n * \n * \n *
\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Surface, Text } from 'react-native-paper';\n * import { StyleSheet } from 'react-native';\n *\n * const MyComponent = () => (\n * \n * Surface\n * \n * );\n *\n * export default MyComponent;\n *\n * const styles = StyleSheet.create({\n * surface: {\n * padding: 8,\n * height: 80,\n * width: 80,\n * alignItems: 'center',\n * justifyContent: 'center',\n * elevation: 4,\n * },\n * });\n * ```\n */\nconst Surface = ({ style, theme, ...rest }: Props) => {\n const { elevation = 4 } = (StyleSheet.flatten(style) || {}) as ViewStyle;\n const { dark: isDarkTheme, mode, colors } = theme;\n return (\n \n );\n};\n\nexport default withTheme(Surface);\n","import * as React from 'react';\nimport {\n Animated,\n View,\n ViewStyle,\n StyleSheet,\n StyleProp,\n TextStyle,\n} from 'react-native';\nimport color from 'color';\n\nimport ActivityIndicator from './ActivityIndicator';\nimport Icon, { IconSource } from './Icon';\nimport Surface from './Surface';\nimport Text from './Typography/Text';\nimport TouchableRipple from './TouchableRipple/TouchableRipple';\nimport { black, white } from '../styles/colors';\nimport { withTheme } from '../core/theming';\n\ntype Props = React.ComponentProps & {\n /**\n * Mode of the button. You can change the mode to adjust the styling to give it desired emphasis.\n * - `text` - flat button without background or outline (low emphasis)\n * - `outlined` - button with an outline (medium emphasis)\n * - `contained` - button with a background color and elevation shadow (high emphasis)\n */\n mode?: 'text' | 'outlined' | 'contained';\n /**\n * Whether the color is a dark color. A dark button will render light text and vice-versa. Only applicable for `contained` mode.\n */\n dark?: boolean;\n /**\n * Use a compact look, useful for `text` buttons in a row.\n */\n compact?: boolean;\n /**\n * Custom text color for flat button, or background color for contained button.\n */\n color?: string;\n /**\n * Whether to show a loading indicator.\n */\n loading?: boolean;\n /**\n * Icon to display for the `Button`.\n */\n icon?: IconSource;\n /**\n * Whether the button is disabled. A disabled button is greyed out and `onPress` is not called on touch.\n */\n disabled?: boolean;\n /**\n * Label text of the button.\n */\n children: React.ReactNode;\n /**\n * Make the label text uppercased. Note that this won't work if you pass React elements as children.\n */\n uppercase?: boolean;\n /**\n * Accessibility label for the button. This is read by the screen reader when the user taps the button.\n */\n accessibilityLabel?: string;\n /**\n * Accessibility hint for the button. This is read by the screen reader when the user taps the button.\n */\n accessibilityHint?: string;\n /**\n * Function to execute on press.\n */\n onPress?: () => void;\n /**\n * Function to execute on long press.\n */\n onLongPress?: () => void;\n /**\n * Style of button's inner content.\n * Use this prop to apply custom height and width and to set the icon on the right with `flexDirection: 'row-reverse'`.\n */\n contentStyle?: StyleProp;\n style?: StyleProp;\n /**\n * Style for the button text.\n */\n labelStyle?: StyleProp;\n /**\n * @optional\n */\n theme: ReactNativePaper.Theme;\n /**\n * testID to be used on tests.\n */\n testID?: string;\n};\n\n/**\n * A button is component that the user can press to trigger an action.\n *\n *
\n *
\n * \n *
Text button
\n *
\n *
\n * \n *
Outlined button
\n *
\n *
\n * \n *
Contained button
\n *
\n *
\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Button } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * );\n *\n * export default MyComponent;\n * ```\n */\nconst Button = ({\n disabled,\n compact,\n mode = 'text',\n dark,\n loading,\n icon,\n color: buttonColor,\n children,\n uppercase = true,\n accessibilityLabel,\n accessibilityHint,\n onPress,\n onLongPress,\n style,\n theme,\n contentStyle,\n labelStyle,\n testID,\n accessible,\n ...rest\n}: Props) => {\n const { current: elevation } = React.useRef(\n new Animated.Value(disabled || mode !== 'contained' ? 0 : 2)\n );\n React.useEffect(() => {\n elevation.setValue(disabled || mode !== 'contained' ? 0 : 2);\n }, [mode, elevation, disabled]);\n\n const handlePressIn = () => {\n if (mode === 'contained') {\n const { scale } = theme.animation;\n Animated.timing(elevation, {\n toValue: 8,\n duration: 200 * scale,\n useNativeDriver: true,\n }).start();\n }\n };\n\n const handlePressOut = () => {\n if (mode === 'contained') {\n const { scale } = theme.animation;\n Animated.timing(elevation, {\n toValue: 2,\n duration: 150 * scale,\n useNativeDriver: true,\n }).start();\n }\n };\n\n const { colors, roundness } = theme;\n const font = theme.fonts.medium;\n\n let backgroundColor: string,\n borderColor: string,\n textColor: string,\n borderWidth: number;\n\n if (mode === 'contained') {\n if (disabled) {\n backgroundColor = color(theme.dark ? white : black)\n .alpha(0.12)\n .rgb()\n .string();\n } else if (buttonColor) {\n backgroundColor = buttonColor;\n } else {\n backgroundColor = colors.primary;\n }\n } else {\n backgroundColor = 'transparent';\n }\n\n if (mode === 'outlined') {\n borderColor = color(theme.dark ? white : black)\n .alpha(0.29)\n .rgb()\n .string();\n borderWidth = StyleSheet.hairlineWidth;\n } else {\n borderColor = 'transparent';\n borderWidth = 0;\n }\n\n if (disabled) {\n textColor = color(theme.dark ? white : black)\n .alpha(0.32)\n .rgb()\n .string();\n } else if (mode === 'contained') {\n let isDark;\n\n if (typeof dark === 'boolean') {\n isDark = dark;\n } else {\n isDark =\n backgroundColor === 'transparent'\n ? false\n : !color(backgroundColor).isLight();\n }\n\n textColor = isDark ? white : black;\n } else if (buttonColor) {\n textColor = buttonColor;\n } else {\n textColor = colors.primary;\n }\n\n const rippleColor = color(textColor).alpha(0.32).rgb().string();\n const buttonStyle = {\n backgroundColor,\n borderColor,\n borderWidth,\n borderRadius: roundness,\n };\n const touchableStyle = {\n borderRadius: style\n ? ((StyleSheet.flatten(style) || {}) as ViewStyle).borderRadius ||\n roundness\n : roundness,\n };\n\n const { color: customLabelColor, fontSize: customLabelSize } =\n StyleSheet.flatten(labelStyle) || {};\n\n const textStyle = { color: textColor, ...font };\n const iconStyle =\n StyleSheet.flatten(contentStyle)?.flexDirection === 'row-reverse'\n ? styles.iconReverse\n : styles.icon;\n\n return (\n \n \n \n {icon && loading !== true ? (\n \n \n \n ) : null}\n {loading ? (\n \n ) : null}\n \n {children}\n \n \n \n \n );\n};\n\nconst styles = StyleSheet.create({\n button: {\n minWidth: 64,\n borderStyle: 'solid',\n },\n compact: {\n minWidth: 'auto',\n },\n content: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n icon: {\n marginLeft: 12,\n marginRight: -4,\n },\n iconReverse: {\n marginRight: 12,\n marginLeft: -4,\n },\n label: {\n textAlign: 'center',\n letterSpacing: 1,\n marginVertical: 9,\n marginHorizontal: 16,\n },\n compactLabel: {\n marginHorizontal: 8,\n },\n uppercaseLabel: {\n textTransform: 'uppercase',\n },\n});\n\nexport default withTheme(Button);\n","import * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport color from 'color';\nimport MaterialCommunityIcon from '../MaterialCommunityIcon';\nimport TouchableRipple from '../TouchableRipple/TouchableRipple';\nimport { withTheme } from '../../core/theming';\nimport type { $RemoveChildren } from '../../types';\n\ntype Props = $RemoveChildren & {\n /**\n * Status of checkbox.\n */\n status: 'checked' | 'unchecked' | 'indeterminate';\n /**\n * Whether checkbox is disabled.\n */\n disabled?: boolean;\n /**\n * Function to execute on press.\n */\n onPress?: () => void;\n /**\n * Custom color for checkbox.\n */\n color?: string;\n /**\n * @optional\n */\n theme: ReactNativePaper.Theme;\n /**\n * testID to be used on tests.\n */\n testID?: string;\n};\n\n/**\n * Checkboxes allow the selection of multiple options from a set.\n * This component follows platform guidelines for iOS, but can be used\n * on any platform.\n *\n *
\n *
\n * \n *
Enabled
\n *
\n *
\n * \n *
Disabled
\n *
\n *
\n */\nconst CheckboxIOS = ({\n status,\n disabled,\n onPress,\n theme,\n testID,\n ...rest\n}: Props) => {\n const checked = status === 'checked';\n const indeterminate = status === 'indeterminate';\n\n const checkedColor = disabled\n ? theme.colors.disabled\n : rest.color || theme.colors.accent;\n\n let rippleColor;\n\n if (disabled) {\n rippleColor = color(theme.colors.text).alpha(0.16).rgb().string();\n } else {\n rippleColor = color(checkedColor).fade(0.32).rgb().string();\n }\n\n const icon = indeterminate ? 'minus' : 'check';\n\n return (\n \n \n \n \n \n );\n};\n\nCheckboxIOS.displayName = 'Checkbox.IOS';\n\nconst styles = StyleSheet.create({\n container: {\n borderRadius: 18,\n padding: 6,\n },\n});\n\nexport default withTheme(CheckboxIOS);\n\n// @component-docs ignore-next-line\nconst CheckboxIOSWithTheme = withTheme(CheckboxIOS);\n// @component-docs ignore-next-line\nexport { CheckboxIOSWithTheme as CheckboxIOS };\n","import * as React from 'react';\nimport { Animated, View, StyleSheet } from 'react-native';\nimport color from 'color';\nimport MaterialCommunityIcon from '../MaterialCommunityIcon';\nimport TouchableRipple from '../TouchableRipple/TouchableRipple';\nimport { withTheme } from '../../core/theming';\nimport type { $RemoveChildren } from '../../types';\n\ntype Props = $RemoveChildren & {\n /**\n * Status of checkbox.\n */\n status: 'checked' | 'unchecked' | 'indeterminate';\n /**\n * Whether checkbox is disabled.\n */\n disabled?: boolean;\n /**\n * Function to execute on press.\n */\n onPress?: () => void;\n /**\n * Custom color for unchecked checkbox.\n */\n uncheckedColor?: string;\n /**\n * Custom color for checkbox.\n */\n color?: string;\n /**\n * @optional\n */\n theme: ReactNativePaper.Theme;\n /**\n * testID to be used on tests.\n */\n testID?: string;\n};\n\n// From https://material.io/design/motion/speed.html#duration\nconst ANIMATION_DURATION = 100;\n\n/**\n * Checkboxes allow the selection of multiple options from a set.\n * This component follows platform guidelines for Android, but can be used\n * on any platform.\n *\n *
\n *
\n * \n *
Enabled
\n *
\n *
\n * \n *
Disabled
\n *
\n *
\n */\nconst CheckboxAndroid = ({\n status,\n theme,\n disabled,\n onPress,\n testID,\n ...rest\n}: Props) => {\n const { current: scaleAnim } = React.useRef(\n new Animated.Value(1)\n );\n const isFirstRendering = React.useRef(true);\n\n const {\n animation: { scale },\n } = theme;\n\n React.useEffect(() => {\n // Do not run animation on very first rendering\n if (isFirstRendering.current) {\n isFirstRendering.current = false;\n return;\n }\n\n const checked = status === 'checked';\n\n Animated.sequence([\n Animated.timing(scaleAnim, {\n toValue: 0.85,\n duration: checked ? ANIMATION_DURATION * scale : 0,\n useNativeDriver: false,\n }),\n Animated.timing(scaleAnim, {\n toValue: 1,\n duration: checked\n ? ANIMATION_DURATION * scale\n : ANIMATION_DURATION * scale * 1.75,\n useNativeDriver: false,\n }),\n ]).start();\n }, [status, scaleAnim, scale]);\n\n const checked = status === 'checked';\n const indeterminate = status === 'indeterminate';\n const checkedColor = rest.color || theme.colors.accent;\n const uncheckedColor =\n rest.uncheckedColor ||\n color(theme.colors.text)\n .alpha(theme.dark ? 0.7 : 0.54)\n .rgb()\n .string();\n\n let rippleColor, checkboxColor;\n\n if (disabled) {\n rippleColor = color(theme.colors.text).alpha(0.16).rgb().string();\n checkboxColor = theme.colors.disabled;\n } else {\n rippleColor = color(checkedColor).fade(0.32).rgb().string();\n checkboxColor = checked ? checkedColor : uncheckedColor;\n }\n\n const borderWidth = scaleAnim.interpolate({\n inputRange: [0.8, 1],\n outputRange: [7, 0],\n });\n\n const icon = indeterminate\n ? 'minus-box'\n : checked\n ? 'checkbox-marked'\n : 'checkbox-blank-outline';\n\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nCheckboxAndroid.displayName = 'Checkbox.Android';\n\nconst styles = StyleSheet.create({\n container: {\n borderRadius: 18,\n width: 36,\n height: 36,\n padding: 6,\n },\n fillContainer: {\n alignItems: 'center',\n justifyContent: 'center',\n },\n fill: {\n height: 14,\n width: 14,\n },\n});\n\nexport default withTheme(CheckboxAndroid);\n\n// @component-docs ignore-next-line\nconst CheckboxAndroidWithTheme = withTheme(CheckboxAndroid);\n// @component-docs ignore-next-line\nexport { CheckboxAndroidWithTheme as CheckboxAndroid };\n","import * as React from 'react';\nimport { Platform } from 'react-native';\nimport CheckboxIOS from './CheckboxIOS';\nimport CheckboxAndroid from './CheckboxAndroid';\nimport { withTheme } from '../../core/theming';\n\ntype Props = {\n /**\n * Status of checkbox.\n */\n status: 'checked' | 'unchecked' | 'indeterminate';\n /**\n * Whether checkbox is disabled.\n */\n disabled?: boolean;\n /**\n * Function to execute on press.\n */\n onPress?: () => void;\n /**\n * Custom color for unchecked checkbox.\n */\n uncheckedColor?: string;\n /**\n * Custom color for checkbox.\n */\n color?: string;\n /**\n * @optional\n */\n theme: ReactNativePaper.Theme;\n /**\n * testID to be used on tests.\n */\n testID?: string;\n};\n\n/**\n * Checkboxes allow the selection of multiple options from a set.\n *\n *
\n *
\n * \n *
Android (enabled)
\n *
\n *
\n * \n *
Android (disabled)
\n *
\n *
\n * \n *
iOS (enabled)
\n *
\n *
\n * \n *
iOS (disabled)
\n *
\n *
\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Checkbox } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const [checked, setChecked] = React.useState(false);\n *\n * return (\n * {\n * setChecked(!checked);\n * }}\n * />\n * );\n * };\n *\n * export default MyComponent;\n * ```\n */\nconst Checkbox = (props: Props) =>\n Platform.OS === 'ios' ? (\n \n ) : (\n \n );\n\nexport default withTheme(Checkbox);\n\n// @component-docs ignore-next-line\nconst CheckboxWithTheme = withTheme(Checkbox);\n// @component-docs ignore-next-line\nexport { CheckboxWithTheme as Checkbox };\n","import * as React from 'react';\n\nimport {\n StyleProp,\n StyleSheet,\n TextStyle,\n View,\n ViewStyle,\n} from 'react-native';\n\nimport Checkbox from './Checkbox';\nimport CheckboxAndroid from './CheckboxAndroid';\nimport CheckboxIOS from './CheckboxIOS';\nimport Text from '../Typography/Text';\nimport TouchableRipple from '../TouchableRipple/TouchableRipple';\nimport { withTheme } from '../../core/theming';\n\ntype Props = {\n /**\n * Status of checkbox.\n */\n status: 'checked' | 'unchecked' | 'indeterminate';\n /**\n * Whether checkbox is disabled.\n */\n disabled?: boolean;\n /**\n * Label to be displayed on the item.\n */\n label: string;\n /**\n * Function to execute on press.\n */\n onPress?: () => void;\n /**\n * Custom color for unchecked checkbox.\n */\n uncheckedColor?: string;\n /**\n * Custom color for checkbox.\n */\n color?: string;\n /**\n * Additional styles for container View.\n */\n style?: StyleProp;\n /**\n * Style that is passed to Label element.\n */\n labelStyle?: StyleProp;\n /**\n * @optional\n */\n theme: ReactNativePaper.Theme;\n /**\n * testID to be used on tests.\n */\n testID?: string;\n /**\n * Checkbox control position.\n */\n position?: 'leading' | 'trailing';\n /**\n * Whether `` or `` should be used.\n * Left undefined `` will be used.\n */\n mode?: 'android' | 'ios';\n};\n\n/**\n * Checkbox.Item allows you to press the whole row (item) instead of only the Checkbox.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { View } from 'react-native';\n * import { Checkbox } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * \n * \n * );\n *\n * export default MyComponent;\n *```\n */\n\nconst CheckboxItem = ({\n style,\n status,\n label,\n onPress,\n labelStyle,\n theme,\n testID,\n mode,\n position = 'trailing',\n disabled,\n ...props\n}: Props) => {\n const checkboxProps = { ...props, status, theme, disabled };\n const isLeading = position === 'leading';\n let checkbox;\n\n if (mode === 'android') {\n checkbox = ;\n } else if (mode === 'ios') {\n checkbox = ;\n } else {\n checkbox = ;\n }\n\n return (\n \n \n {isLeading && checkbox}\n \n {label}\n \n {!isLeading && checkbox}\n \n \n );\n};\n\nCheckboxItem.displayName = 'Checkbox.Item';\n\nexport default withTheme(CheckboxItem);\n\n// @component-docs ignore-next-line\nconst CheckboxItemWithTheme = withTheme(CheckboxItem);\n// @component-docs ignore-next-line\nexport { CheckboxItemWithTheme as CheckboxItem };\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n paddingVertical: 8,\n paddingHorizontal: 16,\n },\n label: {\n fontSize: 16,\n flexShrink: 1,\n flexGrow: 1,\n },\n});\n","import CheckboxComponent from './Checkbox';\nimport CheckboxItem from './CheckboxItem';\nimport CheckboxAndroid from './CheckboxAndroid';\nimport CheckboxIOS from './CheckboxIOS';\n\nconst Checkbox = Object.assign(\n // @component ./Checkbox.tsx\n CheckboxComponent,\n {\n // @component ./CheckboxItem.tsx\n Item: CheckboxItem,\n // @component ./CheckboxAndroid.tsx\n Android: CheckboxAndroid,\n // @component ./CheckboxIOS.tsx\n IOS: CheckboxIOS,\n }\n);\n\nexport default Checkbox;\n","import * as React from 'react';\nimport { StyleSheet, Text, Platform, TextProps, ViewProps } from 'react-native';\n\nexport type IconProps = {\n name: string;\n color: string;\n size: number;\n direction: 'rtl' | 'ltr';\n allowFontScaling?: boolean;\n};\n\nlet MaterialCommunityIcons: React.ComponentType<\n TextProps & {\n name: string;\n color: string;\n size: number;\n pointerEvents?: ViewProps['pointerEvents'];\n }\n>;\n\ntry {\n // Optionally require vector-icons\n MaterialCommunityIcons =\n require('react-native-vector-icons/MaterialCommunityIcons').default;\n} catch (e) {\n let isErrorLogged = false;\n\n // Fallback component for icons\n MaterialCommunityIcons = ({ name, color, size, ...rest }) => {\n /* eslint-disable no-console */\n if (!isErrorLogged) {\n if (\n !/(Cannot find module|Module not found|Cannot resolve module)/.test(\n (e as any).message\n )\n ) {\n console.error(e);\n }\n\n console.warn(\n `Tried to use the icon '${name}' in a component from 'react-native-paper', but 'react-native-vector-icons/MaterialCommunityIcons' could not be loaded.`,\n `To remove this warning, try installing 'react-native-vector-icons' or use another method to specify icon: https://callstack.github.io/react-native-paper/icons.html.`\n );\n\n isErrorLogged = true;\n }\n\n return (\n \n □\n \n );\n };\n}\n\nexport const accessibilityProps =\n Platform.OS === 'web'\n ? {\n role: 'img',\n focusable: false,\n }\n : {\n accessibilityElementsHidden: true,\n importantForAccessibility:\n 'no-hide-descendants' as 'no-hide-descendants',\n };\n\nconst defaultIcon = ({\n name,\n color,\n size,\n direction,\n allowFontScaling,\n}: IconProps) => (\n \n);\n\nconst styles = StyleSheet.create({\n icon: {\n backgroundColor: 'transparent',\n },\n});\n\nexport default defaultIcon;\n","import * as React from 'react';\nimport { View } from 'react-native';\n\ntype Props = {\n /**\n * Function to execute on selection change.\n */\n onValueChange: (value: string) => void;\n /**\n * Value of the currently selected radio button.\n */\n value: string;\n /**\n * React elements containing radio buttons.\n */\n children: React.ReactNode;\n};\n\nexport type RadioButtonContextType = {\n value: string;\n onValueChange: (item: string) => void;\n};\n\nexport const RadioButtonContext = React.createContext(\n null as any\n);\n\n/**\n * Radio button group allows to control a group of radio buttons.\n *\n *
\n *
\n * \n *
Android
\n *
\n *
\n * \n *
iOS
\n *
\n *
\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { View } from 'react-native';\n * import { RadioButton, Text } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const [value, setValue] = React.useState('first');\n *\n * return (\n * setValue(newValue)} value={value}>\n * \n * First\n * \n * \n * \n * Second\n * \n * \n * \n * );\n * };\n *\n * export default MyComponent;\n *```\n */\nconst RadioButtonGroup = ({ value, onValueChange, children }: Props) => (\n \n {children}\n \n);\n\nRadioButtonGroup.displayName = 'RadioButton.Group';\nexport default RadioButtonGroup;\n\n// @component-docs ignore-next-line\nexport { RadioButtonGroup };\n","export const handlePress = ({\n onPress,\n value,\n onValueChange,\n}: {\n onPress?: () => void;\n value: string;\n onValueChange?: (value: string) => void;\n}) => {\n if (onPress && onValueChange) {\n console.warn(\n `onPress in the scope of RadioButtonGroup will not be executed, use onValueChange instead`\n );\n }\n\n onValueChange ? onValueChange(value) : onPress?.();\n};\n\nexport const isChecked = ({\n value,\n status,\n contextValue,\n}: {\n value: string;\n status?: 'checked' | 'unchecked';\n contextValue?: string;\n}) => {\n if (contextValue !== undefined && contextValue !== null) {\n return contextValue === value ? 'checked' : 'unchecked';\n } else {\n return status;\n }\n};\n","import * as React from 'react';\nimport { Animated, View, StyleSheet } from 'react-native';\nimport color from 'color';\nimport { RadioButtonContext, RadioButtonContextType } from './RadioButtonGroup';\nimport { handlePress, isChecked } from './utils';\nimport TouchableRipple from '../TouchableRipple/TouchableRipple';\nimport { withTheme } from '../../core/theming';\nimport type { $RemoveChildren } from '../../types';\n\ntype Props = $RemoveChildren & {\n /**\n * Value of the radio button\n */\n value: string;\n /**\n * Status of radio button.\n */\n status?: 'checked' | 'unchecked';\n /**\n * Whether radio is disabled.\n */\n disabled?: boolean;\n /**\n * Function to execute on press.\n */\n onPress?: (param?: any) => void;\n /**\n * Custom color for unchecked radio.\n */\n uncheckedColor?: string;\n /**\n * Custom color for radio.\n */\n color?: string;\n /**\n * @optional\n */\n theme: ReactNativePaper.Theme;\n /**\n * testID to be used on tests.\n */\n testID?: string;\n};\n\nconst BORDER_WIDTH = 2;\n\n/**\n * Radio buttons allow the selection a single option from a set.\n * This component follows platform guidelines for Android, but can be used\n * on any platform.\n *\n *
\n *
\n * \n *
Enabled
\n *
\n *
\n * \n *
Disabled
\n *
\n *
\n */\nconst RadioButtonAndroid = ({\n disabled,\n onPress,\n theme,\n value,\n status,\n testID,\n ...rest\n}: Props) => {\n const { current: borderAnim } = React.useRef(\n new Animated.Value(BORDER_WIDTH)\n );\n\n const { current: radioAnim } = React.useRef(\n new Animated.Value(1)\n );\n\n const isFirstRendering = React.useRef(true);\n\n const { scale } = theme.animation;\n\n React.useEffect(() => {\n // Do not run animation on very first rendering\n if (isFirstRendering.current) {\n isFirstRendering.current = false;\n return;\n }\n\n if (status === 'checked') {\n radioAnim.setValue(1.2);\n\n Animated.timing(radioAnim, {\n toValue: 1,\n duration: 150 * scale,\n useNativeDriver: true,\n }).start();\n } else {\n borderAnim.setValue(10);\n\n Animated.timing(borderAnim, {\n toValue: BORDER_WIDTH,\n duration: 150 * scale,\n useNativeDriver: false,\n }).start();\n }\n }, [status, borderAnim, radioAnim, scale]);\n\n const checkedColor = rest.color || theme.colors.accent;\n const uncheckedColor =\n rest.uncheckedColor ||\n color(theme.colors.text)\n .alpha(theme.dark ? 0.7 : 0.54)\n .rgb()\n .string();\n\n let rippleColor: string, radioColor: string;\n\n return (\n \n {(context?: RadioButtonContextType) => {\n const checked =\n isChecked({\n contextValue: context?.value,\n status,\n value,\n }) === 'checked';\n\n if (disabled) {\n rippleColor = color(theme.colors.text).alpha(0.16).rgb().string();\n radioColor = theme.colors.disabled;\n } else {\n rippleColor = color(checkedColor).fade(0.32).rgb().string();\n radioColor = checked ? checkedColor : uncheckedColor;\n }\n\n return (\n {\n handlePress({\n onPress,\n onValueChange: context?.onValueChange,\n value,\n });\n }\n }\n // @ts-expect-error We keep old a11y props for backwards compat with old RN versions\n accessibilityTraits={disabled ? ['button', 'disabled'] : 'button'}\n accessibilityComponentType={\n checked ? 'radiobutton_checked' : 'radiobutton_unchecked'\n }\n accessibilityRole=\"radio\"\n accessibilityState={{ disabled, checked }}\n accessibilityLiveRegion=\"polite\"\n style={styles.container}\n testID={testID}\n >\n \n {checked ? (\n \n \n \n ) : null}\n \n \n );\n }}\n \n );\n};\n\nRadioButtonAndroid.displayName = 'RadioButton.Android';\n\nconst styles = StyleSheet.create({\n container: {\n borderRadius: 18,\n },\n radioContainer: {\n alignItems: 'center',\n justifyContent: 'center',\n },\n radio: {\n height: 20,\n width: 20,\n borderRadius: 10,\n margin: 8,\n },\n dot: {\n height: 10,\n width: 10,\n borderRadius: 5,\n },\n});\n\nexport default withTheme(RadioButtonAndroid);\n\n// @component-docs ignore-next-line\nconst RadioButtonAndroidWithTheme = withTheme(RadioButtonAndroid);\n// @component-docs ignore-next-line\nexport { RadioButtonAndroidWithTheme as RadioButtonAndroid };\n","import * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport color from 'color';\nimport { RadioButtonContext, RadioButtonContextType } from './RadioButtonGroup';\nimport { handlePress, isChecked } from './utils';\nimport MaterialCommunityIcon from '../MaterialCommunityIcon';\nimport TouchableRipple from '../TouchableRipple/TouchableRipple';\nimport { withTheme } from '../../core/theming';\nimport type { $RemoveChildren } from '../../types';\n\ntype Props = $RemoveChildren & {\n /**\n * Value of the radio button\n */\n value: string;\n /**\n * Status of radio button.\n */\n status?: 'checked' | 'unchecked';\n /**\n * Whether radio is disabled.\n */\n disabled?: boolean;\n /**\n * Function to execute on press.\n */\n onPress?: () => void;\n /**\n * Custom color for radio.\n */\n color?: string;\n /**\n * @optional\n */\n theme: ReactNativePaper.Theme;\n /**\n * testID to be used on tests.\n */\n testID?: string;\n};\n\n/**\n * Radio buttons allow the selection a single option from a set.\n * This component follows platform guidelines for iOS, but can be used\n * on any platform.\n *\n *
\n *
\n * \n *
Enabled
\n *
\n *
\n * \n *
Disabled
\n *
\n *
\n */\nconst RadioButtonIOS = ({\n disabled,\n onPress,\n theme,\n status,\n value,\n testID,\n ...rest\n}: Props) => {\n const checkedColor = disabled\n ? theme.colors.disabled\n : rest.color || theme.colors.accent;\n\n let rippleColor: string;\n\n if (disabled) {\n rippleColor = color(theme.colors.text).alpha(0.16).rgb().string();\n } else {\n rippleColor = color(checkedColor).fade(0.32).rgb().string();\n }\n\n return (\n \n {(context?: RadioButtonContextType) => {\n const checked =\n isChecked({\n contextValue: context?.value,\n status,\n value,\n }) === 'checked';\n\n return (\n {\n handlePress({\n onPress,\n value,\n onValueChange: context?.onValueChange,\n });\n }\n }\n // @ts-expect-error We keep old a11y props for backwards compat with old RN versions\n accessibilityTraits={disabled ? ['button', 'disabled'] : 'button'}\n accessibilityComponentType={\n checked ? 'radiobutton_checked' : 'radiobutton_unchecked'\n }\n accessibilityRole=\"radio\"\n accessibilityState={{ disabled, checked }}\n accessibilityLiveRegion=\"polite\"\n style={styles.container}\n testID={testID}\n >\n \n \n \n \n );\n }}\n \n );\n};\n\nRadioButtonIOS.displayName = 'RadioButton.IOS';\n\nconst styles = StyleSheet.create({\n container: {\n borderRadius: 18,\n padding: 6,\n },\n});\n\nexport default withTheme(RadioButtonIOS);\n\n// @component-docs ignore-next-line\nconst RadioButtonIOSWithTheme = withTheme(RadioButtonIOS);\n// @component-docs ignore-next-line\nexport { RadioButtonIOSWithTheme as RadioButtonIOS };\n","import * as React from 'react';\nimport { Platform } from 'react-native';\nimport RadioButtonAndroid from './RadioButtonAndroid';\nimport RadioButtonIOS from './RadioButtonIOS';\nimport { withTheme } from '../../core/theming';\n\nexport type Props = {\n /**\n * Value of the radio button\n */\n value: string;\n /**\n * Status of radio button.\n */\n status?: 'checked' | 'unchecked';\n /**\n * Whether radio is disabled.\n */\n disabled?: boolean;\n /**\n * Function to execute on press.\n */\n onPress?: () => void;\n /**\n * Custom color for unchecked radio.\n */\n uncheckedColor?: string;\n /**\n * Custom color for radio.\n */\n color?: string;\n /**\n * @optional\n */\n theme: ReactNativePaper.Theme;\n /**\n * testID to be used on tests.\n */\n testID?: string;\n};\n\n/**\n * Radio buttons allow the selection a single option from a set.\n *\n *
\n *
\n * \n *
Android (enabled)
\n *
\n *
\n * \n *
Android (disabled)
\n *
\n *
\n * \n *
iOS (enabled)
\n *
\n *
\n * \n *
iOS (disabled)
\n *
\n *
\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { View } from 'react-native';\n * import { RadioButton } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const [checked, setChecked] = React.useState('first');\n *\n * return (\n * \n * setChecked('first')}\n * />\n * setChecked('second')}\n * />\n * \n * );\n * };\n *\n * export default MyComponent;\n * ```\n */\nconst RadioButton = (props: Props) => {\n const Button = Platform.select({\n default: RadioButtonAndroid,\n ios: RadioButtonIOS,\n });\n\n return