{"version":3,"file":"static/chunks/pages/_app-95ff8bf9d3294ae2.js","mappings":"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","sources":["webpack://_N_E/./node_modules/@chakra-ui/alert/dist/esm/icons.js","webpack://_N_E/./node_modules/@chakra-ui/alert/dist/esm/alert.js","webpack://_N_E/./node_modules/@chakra-ui/close-button/dist/esm/close-button.js","webpack://_N_E/./node_modules/@chakra-ui/color-mode/dist/esm/color-mode.utils.js","webpack://_N_E/./node_modules/@chakra-ui/color-mode/dist/esm/storage-manager.js","webpack://_N_E/./node_modules/@chakra-ui/color-mode/dist/esm/color-mode-provider.js","webpack://_N_E/./node_modules/@chakra-ui/control-box/dist/esm/control-box.js","webpack://_N_E/./node_modules/@chakra-ui/hooks/dist/esm/use-callback-ref.js","webpack://_N_E/./node_modules/@chakra-ui/hooks/dist/esm/use-id.js","webpack://_N_E/./node_modules/@chakra-ui/hooks/dist/esm/use-safe-layout-effect.js","webpack://_N_E/./node_modules/@chakra-ui/hooks/dist/esm/use-update-effect.js","webpack://_N_E/./node_modules/@chakra-ui/icon/dist/esm/icon.js","webpack://_N_E/./node_modules/@chakra-ui/portal/dist/esm/portal-manager.js","webpack://_N_E/./node_modules/@chakra-ui/react-utils/dist/esm/context.js","webpack://_N_E/./node_modules/@chakra-ui/styled-system/dist/esm/utils/prop-config.js","webpack://_N_E/./node_modules/@chakra-ui/styled-system/dist/esm/utils/templates.js","webpack://_N_E/./node_modules/@chakra-ui/styled-system/dist/esm/utils/parse-gradient.js","webpack://_N_E/./node_modules/@chakra-ui/styled-system/dist/esm/utils/transform-functions.js","webpack://_N_E/./node_modules/@chakra-ui/styled-system/dist/esm/utils/index.js","webpack://_N_E/./node_modules/@chakra-ui/styled-system/dist/esm/config/background.js","webpack://_N_E/./node_modules/@chakra-ui/styled-system/dist/esm/config/border.js","webpack://_N_E/./node_modules/@chakra-ui/styled-system/dist/esm/config/color.js","webpack://_N_E/./node_modules/@chakra-ui/styled-system/dist/esm/config/effect.js","webpack://_N_E/./node_modules/@chakra-ui/styled-system/dist/esm/config/filter.js","webpack://_N_E/./node_modules/@chakra-ui/styled-system/dist/esm/config/flexbox.js","webpack://_N_E/./node_modules/@chakra-ui/styled-system/dist/esm/config/grid.js","webpack://_N_E/./node_modules/@chakra-ui/styled-system/dist/esm/config/interactivity.js","webpack://_N_E/./node_modules/@chakra-ui/styled-system/dist/esm/config/layout.js","webpack://_N_E/./node_modules/@chakra-ui/styled-system/dist/esm/config/list.js","webpack://_N_E/./node_modules/@chakra-ui/styled-system/dist/esm/config/others.js","webpack://_N_E/./node_modules/@chakra-ui/styled-system/dist/esm/config/position.js","webpack://_N_E/./node_modules/@chakra-ui/styled-system/dist/esm/config/ring.js","webpack://_N_E/./node_modules/@chakra-ui/styled-system/dist/esm/config/space.js","webpack://_N_E/./node_modules/@chakra-ui/styled-system/dist/esm/config/text-decoration.js","webpack://_N_E/./node_modules/@chakra-ui/styled-system/dist/esm/config/transform.js","webpack://_N_E/./node_modules/@chakra-ui/styled-system/dist/esm/config/transition.js","webpack://_N_E/./node_modules/@chakra-ui/styled-system/dist/esm/config/typography.js","webpack://_N_E/./node_modules/@chakra-ui/styled-system/dist/esm/create-theme-vars/calc.js","webpack://_N_E/./node_modules/@chakra-ui/styled-system/dist/esm/create-theme-vars/css-var.js","webpack://_N_E/./node_modules/@chakra-ui/styled-system/dist/esm/create-theme-vars/create-theme-vars.js","webpack://_N_E/./node_modules/@chakra-ui/utils/dist/esm/walk-object.js","webpack://_N_E/./node_modules/@chakra-ui/styled-system/dist/esm/create-theme-vars/theme-tokens.js","webpack://_N_E/./node_modules/@chakra-ui/styled-system/dist/esm/create-theme-vars/to-css-var.js","webpack://_N_E/./node_modules/@chakra-ui/styled-system/dist/esm/css.js","webpack://_N_E/./node_modules/@chakra-ui/styled-system/dist/esm/utils/expand-responsive.js","webpack://_N_E/./node_modules/@chakra-ui/styled-system/dist/esm/pseudos.js","webpack://_N_E/./node_modules/@chakra-ui/styled-system/dist/esm/system.js","webpack://_N_E/./node_modules/@chakra-ui/styled-system/dist/esm/utils/create-transform.js","webpack://_N_E/./node_modules/@chakra-ui/system/dist/esm/forward-ref.js","webpack://_N_E/./node_modules/@chakra-ui/system/dist/esm/hooks.js","webpack://_N_E/./node_modules/@chakra-ui/system/dist/esm/providers.js","webpack://_N_E/./node_modules/@chakra-ui/system/dist/esm/should-forward-prop.js","webpack://_N_E/./node_modules/@chakra-ui/system/dist/esm/system.js","webpack://_N_E/./node_modules/@chakra-ui/system/dist/esm/system.utils.js","webpack://_N_E/./node_modules/@chakra-ui/system/dist/esm/use-style-config.js","webpack://_N_E/./node_modules/@chakra-ui/system/node_modules/react-fast-compare/index.js","webpack://_N_E/./node_modules/@chakra-ui/theme-tools/dist/esm/component.js","webpack://_N_E/./node_modules/@chakra-ui/theme-tools/dist/esm/create-breakpoints.js","webpack://_N_E/./node_modules/@chakra-ui/theme-tools/dist/esm/anatomy.js","webpack://_N_E/./node_modules/@chakra-ui/anatomy/dist/esm/index.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/accordion.js","webpack://_N_E/./node_modules/@chakra-ui/theme-tools/dist/esm/color.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/alert.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/avatar.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/badge.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/breadcrumb.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/button.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/checkbox.js","webpack://_N_E/./node_modules/@chakra-ui/theme-tools/dist/esm/css-var.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/close-button.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/code.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/container.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/divider.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/drawer.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/editable.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/form.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/form-label.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/heading.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/input.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/kbd.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/link.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/list.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/menu.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/modal.js","webpack://_N_E/./node_modules/@chakra-ui/theme-tools/dist/esm/css-calc.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/number-input.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/pin-input.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/popover.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/progress.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/radio.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/select.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/skeleton.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/skip-link.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/slider.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/spinner.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/stat.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/switch.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/table.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/textarea.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/tabs.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/tag.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/tooltip.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/form-error.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/components/index.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/foundations/borders.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/foundations/breakpoints.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/foundations/colors.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/foundations/radius.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/foundations/shadows.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/foundations/transition.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/foundations/index.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/foundations/z-index.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/foundations/blur.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/foundations/sizes.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/foundations/spacing.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/foundations/typography.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/index.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/styles.js","webpack://_N_E/./node_modules/@reach/visually-hidden/dist/reach-visually-hidden.esm.js","webpack://_N_E/./node_modules/@reach/utils/dist/reach-utils.esm.js","webpack://_N_E/./node_modules/@reach/alert/dist/reach-alert.esm.js","webpack://_N_E/./node_modules/@chakra-ui/toast/dist/esm/toast.utils.js","webpack://_N_E/./node_modules/@chakra-ui/toast/dist/esm/toast.js","webpack://_N_E/./node_modules/@chakra-ui/hooks/dist/esm/use-timeout.js","webpack://_N_E/./node_modules/@chakra-ui/toast/dist/esm/toast-manager.js","webpack://_N_E/./node_modules/@chakra-ui/toast/dist/esm/toast.class.js","webpack://_N_E/./node_modules/@chakra-ui/toast/dist/esm/use-toast.js","webpack://_N_E/./node_modules/@chakra-ui/utils/dist/esm/array.js","webpack://_N_E/./node_modules/@chakra-ui/utils/dist/esm/assertion.js","webpack://_N_E/./node_modules/@chakra-ui/utils/dist/esm/breakpoint.js","webpack://_N_E/./node_modules/@chakra-ui/utils/dist/esm/dom.js","webpack://_N_E/./node_modules/@chakra-ui/utils/dist/esm/function.js","webpack://_N_E/./node_modules/@chakra-ui/utils/dist/esm/object.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/components/SignInButton.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/components/SignInWithMetamaskButton.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/components/SignOutButton.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/components/SignUpButton.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/components/controlComponents.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/components/index.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/components/uiComponents.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/components/withClerk.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/components/withSession.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/components/withUser.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/contexts/AuthContext.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/contexts/ClerkContextProvider.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/contexts/ClerkProvider.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/contexts/ClientContext.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/contexts/IsomorphicClerkContext.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/contexts/SessionContext.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/contexts/StructureContext.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/contexts/UserContext.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/contexts/assertHelpers.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/contexts/index.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/errors.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/hooks/index.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/hooks/useAuth.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/hooks/useClerk.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/hooks/useMagicLink.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/hooks/useOrganizations.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/hooks/useSession.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/hooks/useSessionList.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/hooks/useSignIn.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/hooks/useSignUp.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/hooks/useUser.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/hooks/utils.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/index.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/info.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/isomorphicClerk.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/utils/childrenUtils.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/utils/inClientSide.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/utils/index.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/utils/isConstructor.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/utils/makeContextAndHook.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/utils/scriptLoader.js","webpack://_N_E/./node_modules/@clerk/clerk-react/dist/utils/useMaxAllowedInstancesGuard.js","webpack://_N_E/./node_modules/@clerk/clerk-react/node_modules/tslib/tslib.es6.js","webpack://_N_E/./node_modules/@clerk/nextjs/dist/client/index.js","webpack://_N_E/./node_modules/@clerk/nextjs/dist/index.js","webpack://_N_E/./node_modules/@clerk/nextjs/node_modules/tslib/tslib.es6.js","webpack://_N_E/./node_modules/@emotion/cache/node_modules/stylis/src/Utility.js","webpack://_N_E/./node_modules/@emotion/cache/node_modules/stylis/src/Tokenizer.js","webpack://_N_E/./node_modules/@emotion/cache/node_modules/stylis/src/Enum.js","webpack://_N_E/./node_modules/@emotion/cache/node_modules/stylis/src/Serializer.js","webpack://_N_E/./node_modules/@emotion/cache/node_modules/stylis/src/Prefixer.js","webpack://_N_E/./node_modules/@emotion/cache/node_modules/stylis/src/Parser.js","webpack://_N_E/./node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","webpack://_N_E/./node_modules/@emotion/cache/node_modules/stylis/src/Middleware.js","webpack://_N_E/./node_modules/@emotion/memoize/dist/emotion-memoize.browser.esm.js","webpack://_N_E/./node_modules/@emotion/weak-memoize/dist/weak-memoize.browser.esm.js","webpack://_N_E/./node_modules/@emotion/react/dist/emotion-element-99289b21.browser.esm.js","webpack://_N_E/./node_modules/@emotion/react/dist/emotion-react.browser.esm.js","webpack://_N_E/./node_modules/@emotion/hash/dist/hash.browser.esm.js","webpack://_N_E/./node_modules/@emotion/unitless/dist/unitless.browser.esm.js","webpack://_N_E/./node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","webpack://_N_E/./node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js","webpack://_N_E/./node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.browser.esm.js","webpack://_N_E/./node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","webpack://_N_E/./node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","webpack://_N_E/./node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","webpack://_N_E/./node_modules/@sentry/core/esm/flags.js","webpack://_N_E/./node_modules/@sentry/core/esm/integration.js","webpack://_N_E/./node_modules/@sentry/core/esm/integrations/inboundfilters.js","webpack://_N_E/./node_modules/@sentry/core/esm/integrations/functiontostring.js","webpack://_N_E/./node_modules/@sentry/utils/esm/buildPolyfills/_optionalChain.js","webpack://_N_E/./node_modules/@sentry/utils/esm/error.js","webpack://_N_E/./node_modules/@sentry/utils/esm/dsn.js","webpack://_N_E/./node_modules/@sentry/utils/esm/envelope.js","webpack://_N_E/./node_modules/@sentry/utils/esm/normalize.js","webpack://_N_E/./node_modules/@sentry/core/esm/api.js","webpack://_N_E/./node_modules/@sentry/core/esm/envelope.js","webpack://_N_E/./node_modules/@sentry/core/esm/baseclient.js","webpack://_N_E/./node_modules/@sentry/browser/esm/eventbuilder.js","webpack://_N_E/./node_modules/@sentry/browser/esm/flags.js","webpack://_N_E/./node_modules/@sentry/utils/esm/severity.js","webpack://_N_E/./node_modules/@sentry/browser/esm/integrations/breadcrumbs.js","webpack://_N_E/./node_modules/@sentry/browser/esm/transports/utils.js","webpack://_N_E/./node_modules/@sentry/browser/esm/client.js","webpack://_N_E/./node_modules/@sentry/utils/esm/clientreport.js","webpack://_N_E/./node_modules/@sentry/browser/esm/stack-parsers.js","webpack://_N_E/./node_modules/@sentry/browser/esm/helpers.js","webpack://_N_E/./node_modules/@sentry/browser/esm/integrations/trycatch.js","webpack://_N_E/./node_modules/@sentry/browser/esm/integrations/globalhandlers.js","webpack://_N_E/./node_modules/@sentry/browser/esm/integrations/linkederrors.js","webpack://_N_E/./node_modules/@sentry/browser/esm/integrations/dedupe.js","webpack://_N_E/./node_modules/@sentry/browser/esm/integrations/httpcontext.js","webpack://_N_E/./node_modules/@sentry/utils/esm/promisebuffer.js","webpack://_N_E/./node_modules/@sentry/utils/esm/ratelimit.js","webpack://_N_E/./node_modules/@sentry/core/esm/transports/base.js","webpack://_N_E/./node_modules/@sentry/browser/esm/transports/fetch.js","webpack://_N_E/./node_modules/@sentry/browser/esm/transports/xhr.js","webpack://_N_E/./node_modules/@sentry/browser/esm/sdk.js","webpack://_N_E/./node_modules/@sentry/core/esm/sdk.js","webpack://_N_E/./node_modules/@sentry/core/esm/version.js","webpack://_N_E/./node_modules/@sentry/hub/esm/exports.js","webpack://_N_E/./node_modules/@sentry/hub/esm/flags.js","webpack://_N_E/./node_modules/@sentry/hub/esm/hub.js","webpack://_N_E/./node_modules/@sentry/hub/esm/scope.js","webpack://_N_E/./node_modules/@sentry/hub/esm/session.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/flags.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/errors.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/hubextensions.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/idletransaction.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/span.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/transaction.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/utils.js","webpack://_N_E/./node_modules/@sentry/utils/esm/browser.js","webpack://_N_E/./node_modules/@sentry/utils/esm/buildPolyfills/_nullishCoalesce.js","webpack://_N_E/./node_modules/@sentry/utils/esm/flags.js","webpack://_N_E/./node_modules/@sentry/utils/esm/global.js","webpack://_N_E/./node_modules/@sentry/utils/esm/instrument.js","webpack://_N_E/./node_modules/@sentry/utils/esm/is.js","webpack://_N_E/./node_modules/@sentry/utils/esm/logger.js","webpack://_N_E/./node_modules/@sentry/utils/esm/memo.js","webpack://_N_E/./node_modules/@sentry/utils/esm/misc.js","webpack://_N_E/./node_modules/@sentry/utils/esm/node.js","webpack://_N_E/./node_modules/@sentry/utils/esm/env.js","webpack://_N_E/./node_modules/@sentry/utils/esm/object.js","webpack://_N_E/./node_modules/@sentry/utils/esm/stacktrace.js","webpack://_N_E/./node_modules/@sentry/utils/esm/string.js","webpack://_N_E/./node_modules/@sentry/utils/esm/supports.js","webpack://_N_E/./node_modules/@sentry/utils/esm/syncpromise.js","webpack://_N_E/./node_modules/@sentry/utils/esm/time.js","webpack://_N_E/./node_modules/@sentry/webpack-plugin/src/sentry-webpack.module.js","webpack://_N_E/./node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.js","webpack://_N_E/./node_modules/framer-motion/dist/es/components/AnimatePresence/index.js","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/use-force-update.js","webpack://_N_E/./node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.js","webpack://_N_E/./node_modules/framer-motion/dist/es/components/AnimateSharedLayout/types.js","webpack://_N_E/./node_modules/framer-motion/dist/es/context/PresenceContext.js","webpack://_N_E/./node_modules/framer-motion/dist/es/components/AnimateSharedLayout/utils/batcher.js","webpack://_N_E/./node_modules/framer-motion/dist/es/context/SharedLayoutContext.js","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/definitions.js","webpack://_N_E/./node_modules/framer-motion/dist/es/context/LazyContext.js","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/use-features.js","webpack://_N_E/./node_modules/framer-motion/dist/es/context/MotionConfigContext.js","webpack://_N_E/./node_modules/framer-motion/dist/es/context/MotionContext/index.js","webpack://_N_E/./node_modules/framer-motion/dist/es/context/LayoutGroupContext.js","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/is-browser.js","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.js","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/utils/use-visual-element.js","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/is-ref-object.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/variants.js","webpack://_N_E/./node_modules/framer-motion/dist/es/context/MotionContext/create.js","webpack://_N_E/./node_modules/framer-motion/dist/es/context/MotionContext/utils.js","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/index.js","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/motion-proxy.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/lowercase-elements.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/projection/scale-correction.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/utils/transform.js","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.js","webpack://_N_E/./node_modules/framer-motion/dist/es/value/utils/is-motion-value.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/utils/build-transform.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/value-types/get-as-type.js","webpack://_N_E/./node_modules/style-value-types/node_modules/tslib/tslib.es6.js","webpack://_N_E/./node_modules/style-value-types/dist/es/utils.js","webpack://_N_E/./node_modules/style-value-types/dist/es/numbers/units.js","webpack://_N_E/./node_modules/style-value-types/dist/es/numbers/index.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/value-types/type-int.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/value-types/number.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/utils/build-styles.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/utils/create-render-state.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/use-props.js","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/utils/valid-prop.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/utils/filter-props.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/utils/transform-origin.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/utils/path.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/use-props.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/use-render.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/utils/render.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/utils/render.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.js","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.js","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.js","webpack://_N_E/./node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.js","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/resolve-value.js","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/utils/use-visual-state.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/config-motion.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/config-motion.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/types.js","webpack://_N_E/./node_modules/framer-motion/dist/es/events/use-dom-event.js","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/utils/event-type.js","webpack://_N_E/./node_modules/framer-motion/dist/es/events/event-info.js","webpack://_N_E/./node_modules/framer-motion/dist/es/events/use-pointer-event.js","webpack://_N_E/./node_modules/framer-motion/dist/es/events/utils.js","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/drag/utils/lock.js","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/use-hover-gesture.js","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/utils/is-node-or-child.js","webpack://_N_E/./node_modules/popmotion/dist/es/utils/pipe.js","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/utils/make-renderless-component.js","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/gestures.js","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/use-tap-gesture.js","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/use-focus-gesture.js","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/shallow-compare.js","webpack://_N_E/./node_modules/popmotion/node_modules/tslib/tslib.es6.js","webpack://_N_E/./node_modules/popmotion/dist/es/utils/clamp.js","webpack://_N_E/./node_modules/popmotion/dist/es/animations/utils/find-spring.js","webpack://_N_E/./node_modules/popmotion/dist/es/animations/generators/spring.js","webpack://_N_E/./node_modules/popmotion/dist/es/utils/progress.js","webpack://_N_E/./node_modules/popmotion/dist/es/utils/mix.js","webpack://_N_E/./node_modules/style-value-types/dist/es/color/utils.js","webpack://_N_E/./node_modules/style-value-types/dist/es/color/rgba.js","webpack://_N_E/./node_modules/style-value-types/dist/es/color/hex.js","webpack://_N_E/./node_modules/style-value-types/dist/es/color/hsla.js","webpack://_N_E/./node_modules/popmotion/dist/es/utils/mix-color.js","webpack://_N_E/./node_modules/style-value-types/dist/es/color/index.js","webpack://_N_E/./node_modules/style-value-types/dist/es/complex/index.js","webpack://_N_E/./node_modules/popmotion/dist/es/utils/inc.js","webpack://_N_E/./node_modules/popmotion/dist/es/utils/mix-complex.js","webpack://_N_E/./node_modules/popmotion/dist/es/utils/interpolate.js","webpack://_N_E/./node_modules/popmotion/dist/es/easing/utils.js","webpack://_N_E/./node_modules/popmotion/dist/es/easing/index.js","webpack://_N_E/./node_modules/popmotion/dist/es/animations/generators/keyframes.js","webpack://_N_E/./node_modules/popmotion/dist/es/animations/utils/detect-animation-from-options.js","webpack://_N_E/./node_modules/popmotion/dist/es/animations/generators/decay.js","webpack://_N_E/./node_modules/popmotion/dist/es/animations/utils/elapsed.js","webpack://_N_E/./node_modules/popmotion/dist/es/animations/index.js","webpack://_N_E/./node_modules/popmotion/dist/es/utils/velocity-per-second.js","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/time-conversion.js","webpack://_N_E/./node_modules/popmotion/dist/es/easing/cubic-bezier.js","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/utils/easing.js","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/utils/is-animatable.js","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/utils/default-transitions.js","webpack://_N_E/./node_modules/style-value-types/dist/es/complex/filter.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/value-types/defaults.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.js","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/utils/transitions.js","webpack://_N_E/./node_modules/popmotion/dist/es/animations/inertia.js","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/array.js","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/subscription-manager.js","webpack://_N_E/./node_modules/framer-motion/dist/es/value/index.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/value-types/test.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/value-types/dimensions.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/value-types/type-auto.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/value-types/find.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/setters.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/animation.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/animation-state.js","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/animations.js","webpack://_N_E/./node_modules/popmotion/dist/es/utils/is-point.js","webpack://_N_E/./node_modules/popmotion/dist/es/utils/is-point-3d.js","webpack://_N_E/./node_modules/popmotion/dist/es/utils/distance.js","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/PanSession.js","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/each-axis.js","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/projection/measure.js","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/geometry/delta-calc.js","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/layout/utils.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/is-draggable.js","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/geometry/delta-apply.js","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/projection/convert-to-relative.js","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/drag.js","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/use-pan-gesture.js","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/drag/use-drag.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/projection/default-scale-correctors.js","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/layout/Animate.js","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/layout/Measure.js","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/layout/index.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/state.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/utils/build-projection-transform.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/lifecycles.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/projection.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/flat-tree.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/index.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/motion-values.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/projection/relative-set.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/utils/parse-dom-variant.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/visual-element.js","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/is-numerical-string.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/visual-element.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/create-visual-element.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/motion.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/utils/create-config.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/projection/utils.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/utils/batch-layout.js","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/compare-by-depth.js","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/noop.js","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/geometry/index.js","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/use-constant.js","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/use-unmount-effect.js","webpack://_N_E/./node_modules/framer-motion/node_modules/@emotion/memoize/dist/memoize.browser.esm.js","webpack://_N_E/./node_modules/framer-motion/node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.esm.js","webpack://_N_E/./node_modules/framer-motion/node_modules/tslib/tslib.es6.js","webpack://_N_E/./node_modules/framesync/dist/es/on-next-frame.js","webpack://_N_E/./node_modules/framesync/dist/es/index.js","webpack://_N_E/./node_modules/framesync/dist/es/create-render-step.js","webpack://_N_E/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://_N_E/./node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","webpack://_N_E/./node_modules/hoist-non-react-statics/node_modules/react-is/index.js","webpack://_N_E/./node_modules/lodash.mergewith/index.js","webpack://_N_E/./node_modules/next/dist/build/polyfills/process.js","webpack://_N_E/?7b44","webpack://_N_E/./node_modules/next/dist/shared/lib/dynamic.js","webpack://_N_E/./node_modules/next/dist/shared/lib/loadable-context.js","webpack://_N_E/./node_modules/next/dist/shared/lib/loadable.js","webpack://_N_E/./node_modules/@chakra-ui/css-reset/dist/esm/css-reset.js","webpack://_N_E/./node_modules/@chakra-ui/react-env/dist/esm/mock-document.js","webpack://_N_E/./node_modules/@chakra-ui/react-env/dist/esm/mock-window.js","webpack://_N_E/./node_modules/@chakra-ui/react-env/dist/esm/env.js","webpack://_N_E/./node_modules/@chakra-ui/react/dist/esm/chakra-provider.js","webpack://_N_E/./node_modules/@chakra-ui/provider/dist/esm/chakra-provider.js","webpack://_N_E/./node_modules/@chakra-ui/theme/dist/esm/utils.js","webpack://_N_E/./node_modules/@chakra-ui/react/dist/esm/extend-theme.js","webpack://_N_E/./styles/theme.js","webpack://_N_E/./lib/gtag.js","webpack://_N_E/./components/crisp.js","webpack://_N_E/./pages/_app.js","webpack://_N_E/./node_modules/@sentry/utils/esm/tracing.js","webpack://_N_E/./node_modules/@sentry/utils/esm/baggage.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/backgroundtab.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/bindReporter.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/initMetric.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/generateUniqueID.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/observe.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/onHidden.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/getVisibilityWatcher.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/web-vitals/getLCP.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/metrics/utils.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/metrics/index.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/web-vitals/getCLS.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/web-vitals/getFID.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/request.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/router.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/browsertracing.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/index.js","webpack://_N_E/./node_modules/@sentry/nextjs/esm/performance/client.js","webpack://_N_E/./node_modules/@sentry/nextjs/esm/utils/userIntegrations.js","webpack://_N_E/./node_modules/@sentry/nextjs/esm/index.client.js","webpack://_N_E/./node_modules/@sentry/nextjs/esm/utils/metadata.js","webpack://_N_E/./node_modules/@sentry/react/esm/sdk.js","webpack://_N_E/./sentry.client.config.js","webpack://_N_E/./node_modules/next/dist/compiled/process/browser.js","webpack://_N_E/./node_modules/next/dynamic.js","webpack://_N_E/./node_modules/next/head.js","webpack://_N_E/./node_modules/next/router.js","webpack://_N_E/./node_modules/next/script.js","webpack://_N_E/./node_modules/nprogress/nprogress.js","webpack://_N_E/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://_N_E/./node_modules/prop-types/index.js","webpack://_N_E/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://_N_E/./node_modules/tinycolor2/tinycolor.js","webpack://_N_E/./node_modules/use-subscription/cjs/use-subscription.production.min.js","webpack://_N_E/./node_modules/use-subscription/index.js","webpack://_N_E/./node_modules/warning/warning.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/extends.js"],"sourcesContent":["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\nimport * as React from \"react\";\nimport { Icon } from \"@chakra-ui/icon\";\nexport var CheckIcon = props => /*#__PURE__*/React.createElement(Icon, _extends({\n  viewBox: \"0 0 24 24\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"currentColor\",\n  d: \"M12,0A12,12,0,1,0,24,12,12.014,12.014,0,0,0,12,0Zm6.927,8.2-6.845,9.289a1.011,1.011,0,0,1-1.43.188L5.764,13.769a1,1,0,1,1,1.25-1.562l4.076,3.261,6.227-8.451A1,1,0,1,1,18.927,8.2Z\"\n}));\nexport var InfoIcon = props => /*#__PURE__*/React.createElement(Icon, _extends({\n  viewBox: \"0 0 24 24\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"currentColor\",\n  d: \"M12,0A12,12,0,1,0,24,12,12.013,12.013,0,0,0,12,0Zm.25,5a1.5,1.5,0,1,1-1.5,1.5A1.5,1.5,0,0,1,12.25,5ZM14.5,18.5h-4a1,1,0,0,1,0-2h.75a.25.25,0,0,0,.25-.25v-4.5a.25.25,0,0,0-.25-.25H10.5a1,1,0,0,1,0-2h1a2,2,0,0,1,2,2v4.75a.25.25,0,0,0,.25.25h.75a1,1,0,1,1,0,2Z\"\n}));\nexport var WarningIcon = props => /*#__PURE__*/React.createElement(Icon, _extends({\n  viewBox: \"0 0 24 24\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"currentColor\",\n  d: \"M11.983,0a12.206,12.206,0,0,0-8.51,3.653A11.8,11.8,0,0,0,0,12.207,11.779,11.779,0,0,0,11.8,24h.214A12.111,12.111,0,0,0,24,11.791h0A11.766,11.766,0,0,0,11.983,0ZM10.5,16.542a1.476,1.476,0,0,1,1.449-1.53h.027a1.527,1.527,0,0,1,1.523,1.47,1.475,1.475,0,0,1-1.449,1.53h-.027A1.529,1.529,0,0,1,10.5,16.542ZM11,12.5v-6a1,1,0,0,1,2,0v6a1,1,0,1,1-2,0Z\"\n}));\n//# sourceMappingURL=icons.js.map","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\nimport { chakra, forwardRef, omitThemingProps, StylesProvider, useMultiStyleConfig, useStyles } from \"@chakra-ui/system\";\nimport { cx } from \"@chakra-ui/utils\";\nimport { createContext } from \"@chakra-ui/react-utils\";\nimport * as React from \"react\";\nimport { CheckIcon, InfoIcon, WarningIcon } from \"./icons\";\nvar STATUSES = {\n  info: {\n    icon: InfoIcon,\n    colorScheme: \"blue\"\n  },\n  warning: {\n    icon: WarningIcon,\n    colorScheme: \"orange\"\n  },\n  success: {\n    icon: CheckIcon,\n    colorScheme: \"green\"\n  },\n  error: {\n    icon: WarningIcon,\n    colorScheme: \"red\"\n  }\n};\nvar [AlertProvider, useAlertContext] = createContext({\n  name: \"AlertContext\",\n  errorMessage: \"useAlertContext: `context` is undefined. Seems you forgot to wrap alert components in `<Alert />`\"\n});\n\n/**\n * Alert is used to communicate the state or status of a\n * page, feature or action\n */\nexport var Alert = /*#__PURE__*/forwardRef((props, ref) => {\n  var _props$colorScheme;\n\n  var _omitThemingProps = omitThemingProps(props),\n      {\n    status = \"info\"\n  } = _omitThemingProps,\n      rest = _objectWithoutPropertiesLoose(_omitThemingProps, [\"status\"]);\n\n  var colorScheme = (_props$colorScheme = props.colorScheme) != null ? _props$colorScheme : STATUSES[status].colorScheme;\n  var styles = useMultiStyleConfig(\"Alert\", _extends({}, props, {\n    colorScheme\n  }));\n\n  var alertStyles = _extends({\n    width: \"100%\",\n    display: \"flex\",\n    alignItems: \"center\",\n    position: \"relative\",\n    overflow: \"hidden\"\n  }, styles.container);\n\n  return /*#__PURE__*/React.createElement(AlertProvider, {\n    value: {\n      status\n    }\n  }, /*#__PURE__*/React.createElement(StylesProvider, {\n    value: styles\n  }, /*#__PURE__*/React.createElement(chakra.div, _extends({\n    role: \"alert\",\n    ref: ref\n  }, rest, {\n    className: cx(\"chakra-alert\", props.className),\n    __css: alertStyles\n  }))));\n});\nexport var AlertTitle = /*#__PURE__*/forwardRef((props, ref) => {\n  var styles = useStyles();\n  return /*#__PURE__*/React.createElement(chakra.div, _extends({\n    ref: ref\n  }, props, {\n    className: cx(\"chakra-alert__title\", props.className),\n    __css: styles.title\n  }));\n});\nexport var AlertDescription = /*#__PURE__*/forwardRef((props, ref) => {\n  var styles = useStyles();\n\n  var descriptionStyles = _extends({\n    display: \"inline\"\n  }, styles.description);\n\n  return /*#__PURE__*/React.createElement(chakra.div, _extends({\n    ref: ref\n  }, props, {\n    className: cx(\"chakra-alert__desc\", props.className),\n    __css: descriptionStyles\n  }));\n});\nexport var AlertIcon = props => {\n  var {\n    status\n  } = useAlertContext();\n  var {\n    icon: BaseIcon\n  } = STATUSES[status];\n  var styles = useStyles();\n  return /*#__PURE__*/React.createElement(chakra.span, _extends({\n    display: \"inherit\"\n  }, props, {\n    className: cx(\"chakra-alert__icon\", props.className),\n    __css: styles.icon\n  }), /*#__PURE__*/React.createElement(BaseIcon, {\n    w: \"100%\",\n    h: \"100%\"\n  }));\n};\n//# sourceMappingURL=alert.js.map","function _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\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\nimport { Icon } from \"@chakra-ui/icon\";\nimport { chakra, forwardRef, omitThemingProps, useStyleConfig } from \"@chakra-ui/system\";\nimport { __DEV__ } from \"@chakra-ui/utils\";\nimport * as React from \"react\";\n\nvar CloseIcon = props => /*#__PURE__*/React.createElement(Icon, _extends({\n  focusable: \"false\",\n  \"aria-hidden\": true\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"currentColor\",\n  d: \"M.439,21.44a1.5,1.5,0,0,0,2.122,2.121L11.823,14.3a.25.25,0,0,1,.354,0l9.262,9.263a1.5,1.5,0,1,0,2.122-2.121L14.3,12.177a.25.25,0,0,1,0-.354l9.263-9.262A1.5,1.5,0,0,0,21.439.44L12.177,9.7a.25.25,0,0,1-.354,0L2.561.44A1.5,1.5,0,0,0,.439,2.561L9.7,11.823a.25.25,0,0,1,0,.354Z\"\n}));\n\n/**\n * A button with a close icon.\n *\n * It is used to handle the close functionality in feedback and overlay components\n * like Alerts, Toasts, Drawers and Modals.\n */\nexport var CloseButton = /*#__PURE__*/forwardRef((props, ref) => {\n  var styles = useStyleConfig(\"CloseButton\", props);\n\n  var _omitThemingProps = omitThemingProps(props),\n      {\n    children,\n    isDisabled,\n    __css\n  } = _omitThemingProps,\n      rest = _objectWithoutPropertiesLoose(_omitThemingProps, [\"children\", \"isDisabled\", \"__css\"]);\n\n  var baseStyle = {\n    outline: 0,\n    display: \"flex\",\n    alignItems: \"center\",\n    justifyContent: \"center\",\n    flexShrink: 0\n  };\n  return /*#__PURE__*/React.createElement(chakra.button, _extends({\n    type: \"button\",\n    \"aria-label\": \"Close\",\n    ref: ref,\n    disabled: isDisabled,\n    __css: _extends({}, baseStyle, styles, __css)\n  }, rest), children || /*#__PURE__*/React.createElement(CloseIcon, {\n    width: \"1em\",\n    height: \"1em\"\n  }));\n});\n\nif (__DEV__) {\n  CloseButton.displayName = \"CloseButton\";\n}\n//# sourceMappingURL=close-button.js.map","import { isBrowser, noop } from \"@chakra-ui/utils\";\nvar classNames = {\n  light: \"chakra-ui-light\",\n  dark: \"chakra-ui-dark\"\n};\n\n/**\n * SSR: Graceful fallback for the `body` element\n */\nvar mockBody = {\n  classList: {\n    add: noop,\n    remove: noop\n  }\n};\n\nvar getBody = () => isBrowser ? document.body : mockBody;\n/**\n * Function to add/remove class from `body` based on color mode\n */\n\n\nexport function syncBodyClassName(isDark) {\n  var body = getBody();\n  body.classList.add(isDark ? classNames.dark : classNames.light);\n  body.classList.remove(isDark ? classNames.light : classNames.dark);\n}\n/**\n * Check if JS media query matches the query string passed\n */\n\nfunction getMediaQuery(query) {\n  var mediaQueryList = window.matchMedia == null ? void 0 : window.matchMedia(query);\n\n  if (!mediaQueryList) {\n    return undefined;\n  }\n\n  return !!mediaQueryList.media === mediaQueryList.matches;\n}\n\nexport var queries = {\n  light: \"(prefers-color-scheme: light)\",\n  dark: \"(prefers-color-scheme: dark)\"\n};\nexport var lightQuery = queries.light;\nexport var darkQuery = queries.dark;\nexport function getColorScheme(fallback) {\n  var _getMediaQuery;\n\n  var isDark = (_getMediaQuery = getMediaQuery(queries.dark)) != null ? _getMediaQuery : fallback === \"dark\";\n  return isDark ? \"dark\" : \"light\";\n}\n/**\n * Adds system os color mode listener, and run the callback\n * once preference changes\n */\n\nexport function addListener(fn) {\n  if (!(\"matchMedia\" in window)) {\n    return noop;\n  }\n\n  var mediaQueryList = window.matchMedia(queries.dark);\n\n  var listener = () => {\n    fn(mediaQueryList.matches ? \"dark\" : \"light\");\n  };\n\n  listener();\n  mediaQueryList.addListener(listener);\n  return () => {\n    mediaQueryList.removeListener(listener);\n  };\n}\nexport var root = {\n  get: () => document.documentElement.style.getPropertyValue(\"--chakra-ui-color-mode\"),\n  set: mode => {\n    if (isBrowser) {\n      document.documentElement.style.setProperty(\"--chakra-ui-color-mode\", mode);\n    }\n  }\n};\n//# sourceMappingURL=color-mode.utils.js.map","import { __DEV__ } from \"@chakra-ui/utils\";\n\nvar hasSupport = () => typeof Storage !== \"undefined\";\n\nexport var storageKey = \"chakra-ui-color-mode\";\n\n/**\n * Simple object to handle read-write to localStorage\n */\nexport var localStorageManager = {\n  get(init) {\n    if (!hasSupport()) return init;\n\n    try {\n      var _value = localStorage.getItem(storageKey);\n\n      return _value != null ? _value : init;\n    } catch (error) {\n      if (__DEV__) {\n        console.log(error);\n      }\n\n      return init;\n    }\n  },\n\n  set(value) {\n    if (!hasSupport()) return;\n\n    try {\n      localStorage.setItem(storageKey, value);\n    } catch (error) {\n      if (__DEV__) {\n        console.log(error);\n      }\n    }\n  },\n\n  type: \"localStorage\"\n};\n/**\n * Simple object to handle read-write to cookies\n */\n\nexport var cookieStorageManager = function cookieStorageManager(cookies) {\n  if (cookies === void 0) {\n    cookies = \"\";\n  }\n\n  return {\n    get(init) {\n      var match = cookies.match(new RegExp(\"(^| )\" + storageKey + \"=([^;]+)\"));\n\n      if (match) {\n        return match[2];\n      }\n\n      return init;\n    },\n\n    set(value) {\n      document.cookie = storageKey + \"=\" + value + \"; max-age=31536000; path=/\";\n    },\n\n    type: \"cookie\"\n  };\n};\n//# sourceMappingURL=storage-manager.js.map","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\nimport { isBrowser, noop, __DEV__ } from \"@chakra-ui/utils\";\nimport * as React from \"react\";\nimport { addListener, getColorScheme, syncBodyClassName, root } from \"./color-mode.utils\";\nimport { localStorageManager } from \"./storage-manager\";\nexport var ColorModeContext = /*#__PURE__*/React.createContext({});\n\nif (__DEV__) {\n  ColorModeContext.displayName = \"ColorModeContext\";\n}\n/**\n * React hook that reads from `ColorModeProvider` context\n * Returns the color mode and function to toggle it\n */\n\n\nexport var useColorMode = () => {\n  var context = React.useContext(ColorModeContext);\n\n  if (context === undefined) {\n    throw new Error(\"useColorMode must be used within a ColorModeProvider\");\n  }\n\n  return context;\n};\n\n/**\n * Provides context for the color mode based on config in `theme`\n * Returns the color mode and function to toggle the color mode\n */\nexport function ColorModeProvider(props) {\n  var {\n    value,\n    children,\n    options: {\n      useSystemColorMode,\n      initialColorMode\n    },\n    colorModeManager = localStorageManager\n  } = props;\n  /**\n   * Only attempt to retrieve if we're on the server. Else this will result\n   * in a hydration mismatch warning and partially invalid visuals.\n   *\n   * Else fallback safely to `theme.config.initialColormode` (default light)\n   */\n\n  var [colorMode, rawSetColorMode] = React.useState(colorModeManager.type === \"cookie\" ? colorModeManager.get(initialColorMode) : initialColorMode);\n  React.useEffect(() => {\n    /**\n     * Since we cannot initially retrieve localStorage to due above mentioned\n     * reasons, do so after hydration.\n     *\n     * Priority:\n     * - system color mode\n     * - defined value on <ColorModeScript />, if present\n     * - previously stored value\n     */\n    if (isBrowser && colorModeManager.type === \"localStorage\") {\n      var mode = useSystemColorMode ? getColorScheme(initialColorMode) : root.get() || colorModeManager.get();\n\n      if (mode) {\n        rawSetColorMode(mode);\n      }\n    }\n  }, [colorModeManager, useSystemColorMode, initialColorMode]);\n  React.useEffect(() => {\n    var isDark = colorMode === \"dark\";\n    syncBodyClassName(isDark);\n    root.set(isDark ? \"dark\" : \"light\");\n  }, [colorMode]);\n  var setColorMode = React.useCallback(value => {\n    colorModeManager.set(value);\n    rawSetColorMode(value);\n  }, [colorModeManager]);\n  var toggleColorMode = React.useCallback(() => {\n    setColorMode(colorMode === \"light\" ? \"dark\" : \"light\");\n  }, [colorMode, setColorMode]);\n  React.useEffect(() => {\n    var removeListener;\n\n    if (useSystemColorMode) {\n      removeListener = addListener(setColorMode);\n    }\n\n    return () => {\n      if (removeListener && useSystemColorMode) {\n        removeListener();\n      }\n    };\n  }, [setColorMode, useSystemColorMode]); // presence of `value` indicates a controlled context\n\n  var context = React.useMemo(() => ({\n    colorMode: value != null ? value : colorMode,\n    toggleColorMode: value ? noop : toggleColorMode,\n    setColorMode: value ? noop : setColorMode\n  }), [colorMode, setColorMode, toggleColorMode, value]);\n  return /*#__PURE__*/React.createElement(ColorModeContext.Provider, {\n    value: context\n  }, children);\n}\n\nif (__DEV__) {\n  ColorModeProvider.displayName = \"ColorModeProvider\";\n}\n/**\n * Locks the color mode to `dark`, without any way to change it.\n */\n\n\nexport var DarkMode = props => /*#__PURE__*/React.createElement(ColorModeContext.Provider, _extends({\n  value: {\n    colorMode: \"dark\",\n    toggleColorMode: noop,\n    setColorMode: noop\n  }\n}, props));\n\nif (__DEV__) {\n  DarkMode.displayName = \"DarkMode\";\n}\n/**\n * Locks the color mode to `light` without any way to change it.\n */\n\n\nexport var LightMode = props => /*#__PURE__*/React.createElement(ColorModeContext.Provider, _extends({\n  value: {\n    colorMode: \"light\",\n    toggleColorMode: noop,\n    setColorMode: noop\n  }\n}, props));\n\nif (__DEV__) {\n  LightMode.displayName = \"LightMode\";\n}\n/**\n * Change value based on color mode.\n *\n * @param light the light mode value\n * @param dark the dark mode value\n *\n * @example\n *\n * ```js\n * const Icon = useColorModeValue(MoonIcon, SunIcon)\n * ```\n */\n\n\nexport function useColorModeValue(light, dark) {\n  var {\n    colorMode\n  } = useColorMode();\n  return colorMode === \"dark\" ? dark : light;\n}\n//# sourceMappingURL=color-mode-provider.js.map","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\nimport { chakra } from \"@chakra-ui/system\";\nimport { __DEV__ } from \"@chakra-ui/utils\";\nimport * as React from \"react\";\nexport var ControlBox = props => {\n  var {\n    type = \"checkbox\",\n    _hover,\n    _invalid,\n    _disabled,\n    _focus,\n    _checked,\n    _child = {\n      opacity: 0\n    },\n    _checkedAndChild = {\n      opacity: 1\n    },\n    _checkedAndDisabled,\n    _checkedAndFocus,\n    _checkedAndHover,\n    children\n  } = props,\n      rest = _objectWithoutPropertiesLoose(props, [\"type\", \"_hover\", \"_invalid\", \"_disabled\", \"_focus\", \"_checked\", \"_child\", \"_checkedAndChild\", \"_checkedAndDisabled\", \"_checkedAndFocus\", \"_checkedAndHover\", \"children\"]);\n\n  var checkedAndDisabled = \"input[type=\" + type + \"]:checked:disabled + &\";\n  var checkedAndHover = \"input[type=\" + type + \"]:checked:hover:not(:disabled) + &\";\n  var checkedAndFocus = \"input[type=\" + type + \"]:checked:focus + &\";\n  var disabled = \"input[type=\" + type + \"]:disabled + &\";\n  var focus = \"input[type=\" + type + \"]:focus + &\";\n  var hover = \"input[type=\" + type + \"]:hover:not(:disabled):not(:checked) + &\";\n  var checked = \"input[type=\" + type + \"]:checked + &, input[type=\" + type + \"][aria-checked=mixed] + &\";\n  var invalid = \"input[type=\" + type + \"][aria-invalid=true] + &\";\n  var child = \"& > *\";\n  return /*#__PURE__*/React.createElement(chakra.div, _extends({}, rest, {\n    \"aria-hidden\": true,\n    __css: {\n      display: \"inline-flex\",\n      alignItems: \"center\",\n      justifyContent: \"center\",\n      transitionProperty: \"common\",\n      transitionDuration: \"fast\",\n      flexShrink: 0,\n      [focus]: _focus,\n      [hover]: _hover,\n      [disabled]: _disabled,\n      [invalid]: _invalid,\n      [checkedAndDisabled]: _checkedAndDisabled,\n      [checkedAndFocus]: _checkedAndFocus,\n      [checkedAndHover]: _checkedAndHover,\n      [child]: _child,\n      [checked]: _extends({}, _checked, {\n        [child]: _checkedAndChild\n      })\n    }\n  }), children);\n};\n\nif (__DEV__) {\n  ControlBox.displayName = \"ControlBox\";\n}\n\nexport default ControlBox;\n//# sourceMappingURL=control-box.js.map","import * as React from \"react\";\nimport { useSafeLayoutEffect } from \"./use-safe-layout-effect\";\n/**\n * React hook to persist any value between renders,\n * but keeps it up-to-date if it changes.\n *\n * @param value the value or function to persist\n */\n\nexport function useCallbackRef(fn, deps) {\n  if (deps === void 0) {\n    deps = [];\n  }\n\n  var ref = React.useRef(fn);\n  useSafeLayoutEffect(() => {\n    ref.current = fn;\n  }); // eslint-disable-next-line react-hooks/exhaustive-deps\n\n  return React.useCallback(function () {\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return ref.current == null ? void 0 : ref.current(...args);\n  }, deps);\n}\n//# sourceMappingURL=use-callback-ref.js.map","// This implementation is heavily inspired by react-aria's implementation\nimport * as React from \"react\";\nvar defaultIdContext = {\n  prefix: Math.round(Math.random() * 10000000000),\n  current: 0\n};\nvar IdContext = /*#__PURE__*/React.createContext(defaultIdContext);\nexport var IdProvider = /*#__PURE__*/React.memo((_ref) => {\n  var {\n    children\n  } = _ref;\n  var currentContext = React.useContext(IdContext);\n  var isRoot = currentContext === defaultIdContext;\n  var context = React.useMemo(() => ({\n    prefix: isRoot ? 0 : ++currentContext.prefix,\n    current: 0\n  }), [isRoot, currentContext]);\n  return /*#__PURE__*/React.createElement(IdContext.Provider, {\n    value: context\n  }, children);\n});\nexport function useId(idProp, prefix) {\n  var context = React.useContext(IdContext);\n  return React.useMemo(() => idProp || [prefix, context.prefix, ++context.current].filter(Boolean).join(\"-\"), // eslint-disable-next-line react-hooks/exhaustive-deps\n  [idProp, prefix]);\n}\n/**\n * Reack hook to generate ids for use in compound components\n *\n * @param idProp the external id passed from the user\n * @param prefixes array of prefixes to use\n *\n * @example\n *\n * ```js\n * const [buttonId, menuId] = useIds(\"52\", \"button\", \"menu\")\n *\n * // buttonId will be `button-52`\n * // menuId will be `menu-52`\n * ```\n */\n\nexport function useIds(idProp) {\n  for (var _len = arguments.length, prefixes = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n    prefixes[_key - 1] = arguments[_key];\n  }\n\n  var id = useId(idProp);\n  return React.useMemo(() => {\n    return prefixes.map(prefix => prefix + \"-\" + id);\n  }, [id, prefixes]);\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 `aria-labelledby`.\n *\n * @param partId - The unique id for the component part\n *\n * @example\n * const { ref, id } = useOptionalPart<HTMLInputElement>(`${id}-label`)\n */\n\nexport function useOptionalPart(partId) {\n  var [id, setId] = React.useState(null);\n  var ref = React.useCallback(node => {\n    setId(node ? partId : null);\n  }, [partId]);\n  return {\n    ref,\n    id,\n    isRendered: Boolean(id)\n  };\n}\n//# sourceMappingURL=use-id.js.map","import * as React from \"react\";\nimport { isBrowser } from \"@chakra-ui/utils\";\n/**\n * useSafeLayoutEffect enables us to safely call `useLayoutEffect` on the browser\n * (for SSR reasons)\n *\n * React currently throws a warning when using useLayoutEffect on the server.\n * To get around it, we can conditionally useEffect on the server (no-op) and\n * useLayoutEffect in the browser.\n *\n * @see https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n */\n\nexport var useSafeLayoutEffect = isBrowser ? React.useLayoutEffect : React.useEffect;\n//# sourceMappingURL=use-safe-layout-effect.js.map","import * as React from \"react\";\n/**\n * React effect hook that invokes only on update.\n * It doesn't invoke on mount\n */\n\nexport var useUpdateEffect = (effect, deps) => {\n  var mounted = React.useRef(false);\n  React.useEffect(() => {\n    if (mounted.current) {\n      return effect();\n    }\n\n    mounted.current = true;\n    return undefined; // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, deps);\n  return mounted.current;\n};\n//# sourceMappingURL=use-update-effect.js.map","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\nimport { chakra, forwardRef } from \"@chakra-ui/system\";\nimport { cx, __DEV__ } from \"@chakra-ui/utils\";\nimport * as React from \"react\";\nvar fallbackIcon = {\n  path: /*#__PURE__*/React.createElement(\"g\", {\n    stroke: \"currentColor\",\n    strokeWidth: \"1.5\"\n  }, /*#__PURE__*/React.createElement(\"path\", {\n    strokeLinecap: \"round\",\n    fill: \"none\",\n    d: \"M9,9a3,3,0,1,1,4,2.829,1.5,1.5,0,0,0-1,1.415V14.25\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"currentColor\",\n    strokeLinecap: \"round\",\n    d: \"M12,17.25a.375.375,0,1,0,.375.375A.375.375,0,0,0,12,17.25h0\"\n  }), /*#__PURE__*/React.createElement(\"circle\", {\n    fill: \"none\",\n    strokeMiterlimit: \"10\",\n    cx: \"12\",\n    cy: \"12\",\n    r: \"11.25\"\n  })),\n  viewBox: \"0 0 24 24\"\n};\nexport var Icon = /*#__PURE__*/forwardRef((props, ref) => {\n  var {\n    as: element,\n    viewBox,\n    color = \"currentColor\",\n    focusable = false,\n    children,\n    className,\n    __css\n  } = props,\n      rest = _objectWithoutPropertiesLoose(props, [\"as\", \"viewBox\", \"color\", \"focusable\", \"children\", \"className\", \"__css\"]);\n\n  var _className = cx(\"chakra-icon\", className);\n\n  var styles = _extends({\n    w: \"1em\",\n    h: \"1em\",\n    display: \"inline-block\",\n    lineHeight: \"1em\",\n    flexShrink: 0,\n    color\n  }, __css);\n\n  var shared = {\n    ref,\n    focusable,\n    className: _className,\n    __css: styles\n  };\n\n  var _viewBox = viewBox != null ? viewBox : fallbackIcon.viewBox;\n  /**\n   * If you're using an icon library like `react-icons`.\n   * Note: anyone passing the `as` prop, should manage the `viewBox` from the external component\n   */\n\n\n  if (element && typeof element !== \"string\") {\n    return /*#__PURE__*/React.createElement(chakra.svg, _extends({\n      as: element\n    }, shared, rest));\n  }\n\n  var _path = children != null ? children : fallbackIcon.path;\n\n  return /*#__PURE__*/React.createElement(chakra.svg, _extends({\n    verticalAlign: \"middle\",\n    viewBox: _viewBox\n  }, shared, rest), _path);\n});\n\nif (__DEV__) {\n  Icon.displayName = \"Icon\";\n}\n\nexport default Icon;\n//# sourceMappingURL=icon.js.map","import { __DEV__ } from \"@chakra-ui/utils\";\nimport { createContext } from \"@chakra-ui/react-utils\";\nimport * as React from \"react\";\nvar [PortalManagerContextProvider, usePortalManager] = createContext({\n  strict: false,\n  name: \"PortalManagerContext\"\n});\nexport { usePortalManager };\nexport function PortalManager(props) {\n  var {\n    children,\n    zIndex\n  } = props;\n  return /*#__PURE__*/React.createElement(PortalManagerContextProvider, {\n    value: {\n      zIndex\n    }\n  }, children);\n}\n\nif (__DEV__) {\n  PortalManager.displayName = \"PortalManager\";\n}\n//# sourceMappingURL=portal-manager.js.map","import * as React from \"react\";\n\n/**\n * Creates a named context, provider, and hook.\n *\n * @param options create context options\n */\nexport function createContext(options) {\n  if (options === void 0) {\n    options = {};\n  }\n\n  var {\n    strict = true,\n    errorMessage = \"useContext: `context` is undefined. Seems you forgot to wrap component within the Provider\",\n    name\n  } = options;\n  var Context = /*#__PURE__*/React.createContext(undefined);\n  Context.displayName = name;\n\n  function useContext() {\n    var context = React.useContext(Context);\n\n    if (!context && strict) {\n      var error = new Error(errorMessage);\n      error.name = \"ContextError\";\n      Error.captureStackTrace == null ? void 0 : Error.captureStackTrace(error, useContext);\n      throw error;\n    }\n\n    return context;\n  }\n\n  return [Context.Provider, useContext, Context];\n}\n//# sourceMappingURL=context.js.map","import { createTransform } from \"./create-transform\";\nexport function toConfig(scale, transform) {\n  return property => {\n    var result = {\n      property,\n      scale\n    };\n    result.transform = createTransform({\n      scale,\n      transform\n    });\n    return result;\n  };\n}\n\nvar getRtl = (_ref) => {\n  var {\n    rtl,\n    ltr\n  } = _ref;\n  return theme => theme.direction === \"rtl\" ? rtl : ltr;\n};\n\nexport function logical(options) {\n  var {\n    property,\n    scale,\n    transform\n  } = options;\n  return {\n    scale,\n    property: getRtl(property),\n    transform: scale ? createTransform({\n      scale,\n      compose: transform\n    }) : transform\n  };\n}\n//# sourceMappingURL=prop-config.js.map","/**\n * The CSS transform order following the upcoming spec from CSSWG\n * translate => rotate => scale => skew\n * @see https://drafts.csswg.org/css-transforms-2/#ctm\n * @see https://www.stefanjudis.com/blog/order-in-css-transformation-transform-functions-vs-individual-transforms/\n */\nvar transformTemplate = [\"rotate(var(--chakra-rotate, 0))\", \"scaleX(var(--chakra-scale-x, 1))\", \"scaleY(var(--chakra-scale-y, 1))\", \"skewX(var(--chakra-skew-x, 0))\", \"skewY(var(--chakra-skew-y, 0))\"];\nexport function getTransformTemplate() {\n  return [\"translateX(var(--chakra-translate-x, 0))\", \"translateY(var(--chakra-translate-y, 0))\", ...transformTemplate].join(\" \");\n}\nexport function getTransformGpuTemplate() {\n  return [\"translate3d(var(--chakra-translate-x, 0), var(--chakra-translate-y, 0), 0)\", ...transformTemplate].join(\" \");\n}\nexport var filterTemplate = {\n  \"--chakra-blur\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n  \"--chakra-brightness\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n  \"--chakra-contrast\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n  \"--chakra-grayscale\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n  \"--chakra-hue-rotate\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n  \"--chakra-invert\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n  \"--chakra-saturate\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n  \"--chakra-sepia\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n  \"--chakra-drop-shadow\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n  filter: [\"var(--chakra-blur)\", \"var(--chakra-brightness)\", \"var(--chakra-contrast)\", \"var(--chakra-grayscale)\", \"var(--chakra-hue-rotate)\", \"var(--chakra-invert)\", \"var(--chakra-saturate)\", \"var(--chakra-sepia)\", \"var(--chakra-drop-shadow)\"].join(\" \")\n};\nexport var backdropFilterTemplate = {\n  backdropFilter: [\"var(--chakra-backdrop-blur)\", \"var(--chakra-backdrop-brightness)\", \"var(--chakra-backdrop-contrast)\", \"var(--chakra-backdrop-grayscale)\", \"var(--chakra-backdrop-hue-rotate)\", \"var(--chakra-backdrop-invert)\", \"var(--chakra-backdrop-opacity)\", \"var(--chakra-backdrop-saturate)\", \"var(--chakra-backdrop-sepia)\"].join(\" \"),\n  \"--chakra-backdrop-blur\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n  \"--chakra-backdrop-brightness\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n  \"--chakra-backdrop-contrast\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n  \"--chakra-backdrop-grayscale\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n  \"--chakra-backdrop-hue-rotate\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n  \"--chakra-backdrop-invert\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n  \"--chakra-backdrop-opacity\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n  \"--chakra-backdrop-saturate\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n  \"--chakra-backdrop-sepia\": \"var(--chakra-empty,/*!*/ /*!*/)\"\n};\nexport function getRingTemplate(value) {\n  return {\n    \"--chakra-ring-offset-shadow\": \"var(--chakra-ring-inset) 0 0 0 var(--chakra-ring-offset-width) var(--chakra-ring-offset-color)\",\n    \"--chakra-ring-shadow\": \"var(--chakra-ring-inset) 0 0 0 calc(var(--chakra-ring-width) + var(--chakra-ring-offset-width)) var(--chakra-ring-color)\",\n    \"--chakra-ring-width\": value,\n    boxShadow: [\"var(--chakra-ring-offset-shadow)\", \"var(--chakra-ring-shadow)\", \"var(--chakra-shadow, 0 0 #0000)\"].join(\", \")\n  };\n}\nexport var flexDirectionTemplate = {\n  \"row-reverse\": {\n    space: \"--chakra-space-x-reverse\",\n    divide: \"--chakra-divide-x-reverse\"\n  },\n  \"column-reverse\": {\n    space: \"--chakra-space-y-reverse\",\n    divide: \"--chakra-divide-y-reverse\"\n  }\n};\nvar owlSelector = \"& > :not(style) ~ :not(style)\";\nexport var spaceXTemplate = {\n  [owlSelector]: {\n    marginInlineStart: \"calc(var(--chakra-space-x) * calc(1 - var(--chakra-space-x-reverse)))\",\n    marginInlineEnd: \"calc(var(--chakra-space-x) * var(--chakra-space-x-reverse))\"\n  }\n};\nexport var spaceYTemplate = {\n  [owlSelector]: {\n    marginTop: \"calc(var(--chakra-space-y) * calc(1 - var(--chakra-space-y-reverse)))\",\n    marginBottom: \"calc(var(--chakra-space-y) * var(--chakra-space-y-reverse))\"\n  }\n};\n//# sourceMappingURL=templates.js.map","function _wrapRegExp(re, groups) { _wrapRegExp = function _wrapRegExp(re, groups) { return new BabelRegExp(re, undefined, groups); }; var _RegExp = _wrapNativeSuper(RegExp); var _super = RegExp.prototype; var _groups = new WeakMap(); function BabelRegExp(re, flags, groups) { var _this = _RegExp.call(this, re, flags); _groups.set(_this, groups || _groups.get(re)); return _this; } _inherits(BabelRegExp, _RegExp); BabelRegExp.prototype.exec = function (str) { var result = _super.exec.call(this, str); if (result) result.groups = buildGroups(result, this); return result; }; BabelRegExp.prototype[Symbol.replace] = function (str, substitution) { if (typeof substitution === \"string\") { var groups = _groups.get(this); return _super[Symbol.replace].call(this, str, substitution.replace(/\\$<([^>]+)>/g, function (_, name) { return \"$\" + groups[name]; })); } else if (typeof substitution === \"function\") { var _this = this; return _super[Symbol.replace].call(this, str, function () { var args = []; args.push.apply(args, arguments); if (typeof args[args.length - 1] !== \"object\") { args.push(buildGroups(args, _this)); } return substitution.apply(this, args); }); } else { return _super[Symbol.replace].call(this, str, substitution); } }; function buildGroups(result, re) { var g = _groups.get(re); return Object.keys(g).reduce(function (groups, name) { groups[name] = result[g[name]]; return groups; }, Object.create(null)); } return _wrapRegExp.apply(this, arguments); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (typeof call === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { isString } from \"@chakra-ui/utils\";\nvar directionMap = {\n  \"to-t\": \"to top\",\n  \"to-tr\": \"to top right\",\n  \"to-r\": \"to right\",\n  \"to-br\": \"to bottom right\",\n  \"to-b\": \"to bottom\",\n  \"to-bl\": \"to bottom left\",\n  \"to-l\": \"to left\",\n  \"to-tl\": \"to top left\"\n};\nvar valueSet = new Set(Object.values(directionMap));\nexport var globalSet = new Set([\"none\", \"-moz-initial\", \"inherit\", \"initial\", \"revert\", \"unset\"]);\n\nvar trimSpace = str => str.trim();\n\nexport function parseGradient(value, theme) {\n  var _regex$exec$groups, _regex$exec;\n\n  if (value == null || globalSet.has(value)) return value;\n\n  var regex = /*#__PURE__*/_wrapRegExp(/(^[\\x2DA-Za-z]+)\\(((.*))\\)/g, {\n    type: 1,\n    values: 2\n  });\n\n  var {\n    type,\n    values\n  } = (_regex$exec$groups = (_regex$exec = regex.exec(value)) == null ? void 0 : _regex$exec.groups) != null ? _regex$exec$groups : {};\n  if (!type || !values) return value;\n\n  var _type = type.includes(\"-gradient\") ? type : type + \"-gradient\";\n\n  var [maybeDirection, ...stops] = values.split(\",\").map(trimSpace).filter(Boolean);\n  if ((stops == null ? void 0 : stops.length) === 0) return value;\n  var direction = maybeDirection in directionMap ? directionMap[maybeDirection] : maybeDirection;\n  stops.unshift(direction);\n\n  var _values = stops.map(stop => {\n    // if stop is valid shorthand direction, return it\n    if (valueSet.has(stop)) return stop;\n    var firstStop = stop.indexOf(\" \"); // color stop could be `red.200 20%` based on css gradient spec\n\n    var [_color, _stop] = firstStop !== -1 ? [stop.substr(0, firstStop), stop.substr(firstStop + 1)] : [stop];\n\n    var _stopOrFunc = isCSSFunction(_stop) ? _stop : _stop && _stop.split(\" \"); // else, get and transform the color token or css value\n\n\n    var key = \"colors.\" + _color;\n    var color = key in theme.__cssMap ? theme.__cssMap[key].varRef : _color;\n    return _stopOrFunc ? [color, _stopOrFunc].join(\" \") : color;\n  });\n\n  return _type + \"(\" + _values.join(\", \") + \")\";\n}\nexport var isCSSFunction = value => {\n  return isString(value) && value.includes(\"(\") && value.includes(\")\");\n};\nexport var gradientTransform = (value, theme) => parseGradient(value, theme != null ? theme : {});\n//# sourceMappingURL=parse-gradient.js.map","import { isCssVar, isNumber, isString } from \"@chakra-ui/utils\";\nimport { backdropFilterTemplate, filterTemplate, getRingTemplate, getTransformGpuTemplate, getTransformTemplate, flexDirectionTemplate } from \"./templates\";\nimport { gradientTransform, globalSet, isCSSFunction } from \"./parse-gradient\";\n\nvar analyzeCSSValue = value => {\n  var num = parseFloat(value.toString());\n  var unit = value.toString().replace(String(num), \"\");\n  return {\n    unitless: !unit,\n    value: num,\n    unit\n  };\n};\n\nvar wrap = str => value => str + \"(\" + value + \")\";\n\nexport var transformFunctions = {\n  filter(value) {\n    return value !== \"auto\" ? value : filterTemplate;\n  },\n\n  backdropFilter(value) {\n    return value !== \"auto\" ? value : backdropFilterTemplate;\n  },\n\n  ring(value) {\n    return getRingTemplate(transformFunctions.px(value));\n  },\n\n  bgClip(value) {\n    return value === \"text\" ? {\n      color: \"transparent\",\n      backgroundClip: \"text\"\n    } : {\n      backgroundClip: value\n    };\n  },\n\n  transform(value) {\n    if (value === \"auto\") return getTransformTemplate();\n    if (value === \"auto-gpu\") return getTransformGpuTemplate();\n    return value;\n  },\n\n  px(value) {\n    if (value == null) return value;\n    var {\n      unitless\n    } = analyzeCSSValue(value);\n    return unitless || isNumber(value) ? value + \"px\" : value;\n  },\n\n  fraction(value) {\n    return !isNumber(value) || value > 1 ? value : value * 100 + \"%\";\n  },\n\n  float(value, theme) {\n    var map = {\n      left: \"right\",\n      right: \"left\"\n    };\n    return theme.direction === \"rtl\" ? map[value] : value;\n  },\n\n  degree(value) {\n    if (isCssVar(value) || value == null) return value;\n    var unitless = isString(value) && !value.endsWith(\"deg\");\n    return isNumber(value) || unitless ? value + \"deg\" : value;\n  },\n\n  gradient: gradientTransform,\n  blur: wrap(\"blur\"),\n  opacity: wrap(\"opacity\"),\n  brightness: wrap(\"brightness\"),\n  contrast: wrap(\"contrast\"),\n  dropShadow: wrap(\"drop-shadow\"),\n  grayscale: wrap(\"grayscale\"),\n  hueRotate: wrap(\"hue-rotate\"),\n  invert: wrap(\"invert\"),\n  saturate: wrap(\"saturate\"),\n  sepia: wrap(\"sepia\"),\n\n  bgImage(value) {\n    if (value == null) return value;\n    var prevent = isCSSFunction(value) || globalSet.has(value);\n    return !prevent ? \"url(\" + value + \")\" : value;\n  },\n\n  outline(value) {\n    var isNoneOrZero = String(value) === \"0\" || String(value) === \"none\";\n    return value !== null && isNoneOrZero ? {\n      outline: \"2px solid transparent\",\n      outlineOffset: \"2px\"\n    } : {\n      outline: value\n    };\n  },\n\n  flexDirection(value) {\n    var _flexDirectionTemplat;\n\n    var {\n      space,\n      divide\n    } = (_flexDirectionTemplat = flexDirectionTemplate[value]) != null ? _flexDirectionTemplat : {};\n    var result = {\n      flexDirection: value\n    };\n    if (space) result[space] = 1;\n    if (divide) result[divide] = 1;\n    return result;\n  }\n\n};\n//# sourceMappingURL=transform-functions.js.map","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\nimport { createTransform } from \"./create-transform\";\nimport { logical, toConfig } from \"./prop-config\";\nimport { transformFunctions as transforms } from \"./transform-functions\";\nexport { transforms };\nexport * from \"./types\";\nexport var t = {\n  borderWidths: toConfig(\"borderWidths\"),\n  borderStyles: toConfig(\"borderStyles\"),\n  colors: toConfig(\"colors\"),\n  borders: toConfig(\"borders\"),\n  radii: toConfig(\"radii\", transforms.px),\n  space: toConfig(\"space\", transforms.px),\n  spaceT: toConfig(\"space\", transforms.px),\n\n  degreeT(property) {\n    return {\n      property,\n      transform: transforms.degree\n    };\n  },\n\n  prop(property, scale, transform) {\n    return _extends({\n      property,\n      scale\n    }, scale && {\n      transform: createTransform({\n        scale,\n        transform\n      })\n    });\n  },\n\n  propT(property, transform) {\n    return {\n      property,\n      transform\n    };\n  },\n\n  sizes: toConfig(\"sizes\", transforms.px),\n  sizesT: toConfig(\"sizes\", transforms.fraction),\n  shadows: toConfig(\"shadows\"),\n  logical,\n  blur: toConfig(\"blur\", transforms.blur)\n};\n//# sourceMappingURL=index.js.map","import { t, transforms } from \"../utils\";\nexport var background = {\n  background: t.colors(\"background\"),\n  backgroundColor: t.colors(\"backgroundColor\"),\n  backgroundImage: t.propT(\"backgroundImage\", transforms.bgImage),\n  backgroundSize: true,\n  backgroundPosition: true,\n  backgroundRepeat: true,\n  backgroundAttachment: true,\n  backgroundClip: {\n    transform: transforms.bgClip\n  },\n  bgSize: t.prop(\"backgroundSize\"),\n  bgPosition: t.prop(\"backgroundPosition\"),\n  bg: t.colors(\"background\"),\n  bgColor: t.colors(\"backgroundColor\"),\n  bgPos: t.prop(\"backgroundPosition\"),\n  bgRepeat: t.prop(\"backgroundRepeat\"),\n  bgAttachment: t.prop(\"backgroundAttachment\"),\n  bgGradient: t.propT(\"backgroundImage\", transforms.gradient),\n  bgClip: {\n    transform: transforms.bgClip\n  }\n};\nObject.assign(background, {\n  bgImage: background.backgroundImage,\n  bgImg: background.backgroundImage\n});\n//# sourceMappingURL=background.js.map","import { t } from \"../utils\";\nexport var border = {\n  border: t.borders(\"border\"),\n  borderWidth: t.borderWidths(\"borderWidth\"),\n  borderStyle: t.borderStyles(\"borderStyle\"),\n  borderColor: t.colors(\"borderColor\"),\n  borderRadius: t.radii(\"borderRadius\"),\n  borderTop: t.borders(\"borderTop\"),\n  borderBlockStart: t.borders(\"borderBlockStart\"),\n  borderTopLeftRadius: t.radii(\"borderTopLeftRadius\"),\n  borderStartStartRadius: t.logical({\n    scale: \"radii\",\n    property: {\n      ltr: \"borderTopLeftRadius\",\n      rtl: \"borderTopRightRadius\"\n    }\n  }),\n  borderEndStartRadius: t.logical({\n    scale: \"radii\",\n    property: {\n      ltr: \"borderBottomLeftRadius\",\n      rtl: \"borderBottomRightRadius\"\n    }\n  }),\n  borderTopRightRadius: t.radii(\"borderTopRightRadius\"),\n  borderStartEndRadius: t.logical({\n    scale: \"radii\",\n    property: {\n      ltr: \"borderTopRightRadius\",\n      rtl: \"borderTopLeftRadius\"\n    }\n  }),\n  borderEndEndRadius: t.logical({\n    scale: \"radii\",\n    property: {\n      ltr: \"borderBottomRightRadius\",\n      rtl: \"borderBottomLeftRadius\"\n    }\n  }),\n  borderRight: t.borders(\"borderRight\"),\n  borderInlineEnd: t.borders(\"borderInlineEnd\"),\n  borderBottom: t.borders(\"borderBottom\"),\n  borderBlockEnd: t.borders(\"borderBlockEnd\"),\n  borderBottomLeftRadius: t.radii(\"borderBottomLeftRadius\"),\n  borderBottomRightRadius: t.radii(\"borderBottomRightRadius\"),\n  borderLeft: t.borders(\"borderLeft\"),\n  borderInlineStart: {\n    property: \"borderInlineStart\",\n    scale: \"borders\"\n  },\n  borderInlineStartRadius: t.logical({\n    scale: \"radii\",\n    property: {\n      ltr: [\"borderTopLeftRadius\", \"borderBottomLeftRadius\"],\n      rtl: [\"borderTopRightRadius\", \"borderBottomRightRadius\"]\n    }\n  }),\n  borderInlineEndRadius: t.logical({\n    scale: \"radii\",\n    property: {\n      ltr: [\"borderTopRightRadius\", \"borderBottomRightRadius\"],\n      rtl: [\"borderTopLeftRadius\", \"borderBottomLeftRadius\"]\n    }\n  }),\n  borderX: t.borders([\"borderLeft\", \"borderRight\"]),\n  borderInline: t.borders(\"borderInline\"),\n  borderY: t.borders([\"borderTop\", \"borderBottom\"]),\n  borderBlock: t.borders(\"borderBlock\"),\n  borderTopWidth: t.borderWidths(\"borderTopWidth\"),\n  borderBlockStartWidth: t.borderWidths(\"borderBlockStartWidth\"),\n  borderTopColor: t.colors(\"borderTopColor\"),\n  borderBlockStartColor: t.colors(\"borderBlockStartColor\"),\n  borderTopStyle: t.borderStyles(\"borderTopStyle\"),\n  borderBlockStartStyle: t.borderStyles(\"borderBlockStartStyle\"),\n  borderBottomWidth: t.borderWidths(\"borderBottomWidth\"),\n  borderBlockEndWidth: t.borderWidths(\"borderBlockEndWidth\"),\n  borderBottomColor: t.colors(\"borderBottomColor\"),\n  borderBlockEndColor: t.colors(\"borderBlockEndColor\"),\n  borderBottomStyle: t.borderStyles(\"borderBottomStyle\"),\n  borderBlockEndStyle: t.borderStyles(\"borderBlockEndStyle\"),\n  borderLeftWidth: t.borderWidths(\"borderLeftWidth\"),\n  borderInlineStartWidth: t.borderWidths(\"borderInlineStartWidth\"),\n  borderLeftColor: t.colors(\"borderLeftColor\"),\n  borderInlineStartColor: t.colors(\"borderInlineStartColor\"),\n  borderLeftStyle: t.borderStyles(\"borderLeftStyle\"),\n  borderInlineStartStyle: t.borderStyles(\"borderInlineStartStyle\"),\n  borderRightWidth: t.borderWidths(\"borderRightWidth\"),\n  borderInlineEndWidth: t.borderWidths(\"borderInlineEndWidth\"),\n  borderRightColor: t.colors(\"borderRightColor\"),\n  borderInlineEndColor: t.colors(\"borderInlineEndColor\"),\n  borderRightStyle: t.borderStyles(\"borderRightStyle\"),\n  borderInlineEndStyle: t.borderStyles(\"borderInlineEndStyle\"),\n  borderTopRadius: t.radii([\"borderTopLeftRadius\", \"borderTopRightRadius\"]),\n  borderBottomRadius: t.radii([\"borderBottomLeftRadius\", \"borderBottomRightRadius\"]),\n  borderLeftRadius: t.radii([\"borderTopLeftRadius\", \"borderBottomLeftRadius\"]),\n  borderRightRadius: t.radii([\"borderTopRightRadius\", \"borderBottomRightRadius\"])\n};\nObject.assign(border, {\n  rounded: border.borderRadius,\n  roundedTop: border.borderTopRadius,\n  roundedTopLeft: border.borderTopLeftRadius,\n  roundedTopRight: border.borderTopRightRadius,\n  roundedTopStart: border.borderStartStartRadius,\n  roundedTopEnd: border.borderStartEndRadius,\n  roundedBottom: border.borderBottomRadius,\n  roundedBottomLeft: border.borderBottomLeftRadius,\n  roundedBottomRight: border.borderBottomRightRadius,\n  roundedBottomStart: border.borderEndStartRadius,\n  roundedBottomEnd: border.borderEndEndRadius,\n  roundedLeft: border.borderLeftRadius,\n  roundedRight: border.borderRightRadius,\n  roundedStart: border.borderInlineStartRadius,\n  roundedEnd: border.borderInlineEndRadius,\n  borderStart: border.borderInlineStart,\n  borderEnd: border.borderInlineEnd,\n  borderTopStartRadius: border.borderStartStartRadius,\n  borderTopEndRadius: border.borderStartEndRadius,\n  borderBottomStartRadius: border.borderEndStartRadius,\n  borderBottomEndRadius: border.borderEndEndRadius,\n  borderStartRadius: border.borderInlineStartRadius,\n  borderEndRadius: border.borderInlineEndRadius,\n  borderStartWidth: border.borderInlineStartWidth,\n  borderEndWidth: border.borderInlineEndWidth,\n  borderStartColor: border.borderInlineStartColor,\n  borderEndColor: border.borderInlineEndColor,\n  borderStartStyle: border.borderInlineStartStyle,\n  borderEndStyle: border.borderInlineEndStyle\n});\n/**\n * The prop types for border properties listed above\n */\n//# sourceMappingURL=border.js.map","import { t } from \"../utils\";\nexport var color = {\n  color: t.colors(\"color\"),\n  textColor: t.colors(\"color\"),\n  fill: t.colors(\"fill\"),\n  stroke: t.colors(\"stroke\")\n};\n//# sourceMappingURL=color.js.map","import { t } from \"../utils\";\nexport var effect = {\n  boxShadow: t.shadows(\"boxShadow\"),\n  mixBlendMode: true,\n  blendMode: t.prop(\"mixBlendMode\"),\n  backgroundBlendMode: true,\n  bgBlendMode: t.prop(\"backgroundBlendMode\"),\n  opacity: true\n};\nObject.assign(effect, {\n  shadow: effect.boxShadow\n});\n/**\n * Types for box and text shadow properties\n */\n//# sourceMappingURL=effect.js.map","import { t, transforms } from \"../utils\";\nexport var filter = {\n  filter: {\n    transform: transforms.filter\n  },\n  blur: t.blur(\"--chakra-blur\"),\n  brightness: t.propT(\"--chakra-brightness\", transforms.brightness),\n  contrast: t.propT(\"--chakra-contrast\", transforms.contrast),\n  hueRotate: t.degreeT(\"--chakra-hue-rotate\"),\n  invert: t.propT(\"--chakra-invert\", transforms.invert),\n  saturate: t.propT(\"--chakra-saturate\", transforms.saturate),\n  dropShadow: t.propT(\"--chakra-drop-shadow\", transforms.dropShadow),\n  backdropFilter: {\n    transform: transforms.backdropFilter\n  },\n  backdropBlur: t.blur(\"--chakra-backdrop-blur\"),\n  backdropBrightness: t.propT(\"--chakra-backdrop-brightness\", transforms.brightness),\n  backdropContrast: t.propT(\"--chakra-backdrop-contrast\", transforms.contrast),\n  backdropHueRotate: t.degreeT(\"--chakra-backdrop-hue-rotate\"),\n  backdropInvert: t.propT(\"--chakra-backdrop-invert\", transforms.invert),\n  backdropSaturate: t.propT(\"--chakra-backdrop-saturate\", transforms.saturate)\n};\n//# sourceMappingURL=filter.js.map","import { t, transforms } from \"../utils\";\nimport { createTransform } from \"../utils/create-transform\";\nimport { spaceXTemplate, spaceYTemplate } from \"../utils/templates\";\nexport var flexbox = {\n  alignItems: true,\n  alignContent: true,\n  justifyItems: true,\n  justifyContent: true,\n  flexWrap: true,\n  flexDirection: {\n    transform: transforms.flexDirection\n  },\n  experimental_spaceX: {\n    static: spaceXTemplate,\n    transform: createTransform({\n      scale: \"space\",\n      transform: value => value !== null ? {\n        \"--chakra-space-x\": value\n      } : null\n    })\n  },\n  experimental_spaceY: {\n    static: spaceYTemplate,\n    transform: createTransform({\n      scale: \"space\",\n      transform: value => value != null ? {\n        \"--chakra-space-y\": value\n      } : null\n    })\n  },\n  flex: true,\n  flexFlow: true,\n  flexGrow: true,\n  flexShrink: true,\n  flexBasis: t.sizes(\"flexBasis\"),\n  justifySelf: true,\n  alignSelf: true,\n  order: true,\n  placeItems: true,\n  placeContent: true,\n  placeSelf: true\n};\nObject.assign(flexbox, {\n  flexDir: flexbox.flexDirection\n});\n//# sourceMappingURL=flexbox.js.map","import { t } from \"../utils\";\nexport var grid = {\n  gridGap: t.space(\"gridGap\"),\n  gridColumnGap: t.space(\"gridColumnGap\"),\n  gridRowGap: t.space(\"gridRowGap\"),\n  gridColumn: true,\n  gridRow: true,\n  gridAutoFlow: true,\n  gridAutoColumns: true,\n  gridColumnStart: true,\n  gridColumnEnd: true,\n  gridRowStart: true,\n  gridRowEnd: true,\n  gridAutoRows: true,\n  gridTemplate: true,\n  gridTemplateColumns: true,\n  gridTemplateRows: true,\n  gridTemplateAreas: true,\n  gridArea: true\n};\n//# sourceMappingURL=grid.js.map","import { t, transforms } from \"../utils\";\nexport var interactivity = {\n  appearance: true,\n  cursor: true,\n  resize: true,\n  userSelect: true,\n  pointerEvents: true,\n  outline: {\n    transform: transforms.outline\n  },\n  outlineOffset: true,\n  outlineColor: t.colors(\"outlineColor\")\n};\n//# sourceMappingURL=interactivity.js.map","import { t, transforms } from \"../utils\";\nexport var layout = {\n  width: t.sizesT(\"width\"),\n  inlineSize: t.sizesT(\"inlineSize\"),\n  height: t.sizes(\"height\"),\n  blockSize: t.sizes(\"blockSize\"),\n  boxSize: t.sizes([\"width\", \"height\"]),\n  minWidth: t.sizes(\"minWidth\"),\n  minInlineSize: t.sizes(\"minInlineSize\"),\n  minHeight: t.sizes(\"minHeight\"),\n  minBlockSize: t.sizes(\"minBlockSize\"),\n  maxWidth: t.sizes(\"maxWidth\"),\n  maxInlineSize: t.sizes(\"maxInlineSize\"),\n  maxHeight: t.sizes(\"maxHeight\"),\n  maxBlockSize: t.sizes(\"maxBlockSize\"),\n  d: t.prop(\"display\"),\n  overflow: true,\n  overflowX: true,\n  overflowY: true,\n  overscrollBehavior: true,\n  overscrollBehaviorX: true,\n  overscrollBehaviorY: true,\n  display: true,\n  verticalAlign: true,\n  boxSizing: true,\n  boxDecorationBreak: true,\n  float: t.propT(\"float\", transforms.float),\n  objectFit: true,\n  objectPosition: true,\n  visibility: true,\n  isolation: true\n};\nObject.assign(layout, {\n  w: layout.width,\n  h: layout.height,\n  minW: layout.minWidth,\n  maxW: layout.maxWidth,\n  minH: layout.minHeight,\n  maxH: layout.maxHeight,\n  overscroll: layout.overscrollBehavior,\n  overscrollX: layout.overscrollBehaviorX,\n  overscrollY: layout.overscrollBehaviorY\n});\n/**\n * Types for layout related CSS properties\n */\n//# sourceMappingURL=layout.js.map","import { t } from \"../utils\";\nexport var list = {\n  listStyleType: true,\n  listStylePosition: true,\n  listStylePos: t.prop(\"listStylePosition\"),\n  listStyleImage: true,\n  listStyleImg: t.prop(\"listStyleImage\")\n};\n//# sourceMappingURL=list.js.map","import { memoizedGet as get } from \"@chakra-ui/utils\";\nvar srOnly = {\n  border: \"0px\",\n  clip: \"rect(0, 0, 0, 0)\",\n  width: \"1px\",\n  height: \"1px\",\n  margin: \"-1px\",\n  padding: \"0px\",\n  overflow: \"hidden\",\n  whiteSpace: \"nowrap\",\n  position: \"absolute\"\n};\nvar srFocusable = {\n  position: \"static\",\n  width: \"auto\",\n  height: \"auto\",\n  clip: \"auto\",\n  padding: \"0\",\n  margin: \"0\",\n  overflow: \"visible\",\n  whiteSpace: \"normal\"\n};\n\nvar getWithPriority = (theme, key, styles) => {\n  var result = {};\n  var obj = get(theme, key, {});\n\n  for (var prop in obj) {\n    var isInStyles = prop in styles && styles[prop] != null;\n    if (!isInStyles) result[prop] = obj[prop];\n  }\n\n  return result;\n};\n\nexport var others = {\n  srOnly: {\n    transform(value) {\n      if (value === true) return srOnly;\n      if (value === \"focusable\") return srFocusable;\n      return {};\n    }\n\n  },\n  layerStyle: {\n    processResult: true,\n    transform: (value, theme, styles) => getWithPriority(theme, \"layerStyles.\" + value, styles)\n  },\n  textStyle: {\n    processResult: true,\n    transform: (value, theme, styles) => getWithPriority(theme, \"textStyles.\" + value, styles)\n  },\n  apply: {\n    processResult: true,\n    transform: (value, theme, styles) => getWithPriority(theme, value, styles)\n  }\n};\n//# sourceMappingURL=others.js.map","import { t } from \"../utils\";\nexport var position = {\n  position: true,\n  pos: t.prop(\"position\"),\n  zIndex: t.prop(\"zIndex\", \"zIndices\"),\n  inset: t.spaceT([\"top\", \"right\", \"bottom\", \"left\"]),\n  insetX: t.spaceT([\"left\", \"right\"]),\n  insetInline: t.spaceT(\"insetInline\"),\n  insetY: t.spaceT([\"top\", \"bottom\"]),\n  insetBlock: t.spaceT(\"insetBlock\"),\n  top: t.spaceT(\"top\"),\n  insetBlockStart: t.spaceT(\"insetBlockStart\"),\n  bottom: t.spaceT(\"bottom\"),\n  insetBlockEnd: t.spaceT(\"insetBlockEnd\"),\n  left: t.spaceT(\"left\"),\n  insetInlineStart: t.logical({\n    scale: \"space\",\n    property: {\n      ltr: \"left\",\n      rtl: \"right\"\n    }\n  }),\n  right: t.spaceT(\"right\"),\n  insetInlineEnd: t.logical({\n    scale: \"space\",\n    property: {\n      ltr: \"right\",\n      rtl: \"left\"\n    }\n  })\n};\nObject.assign(position, {\n  insetStart: position.insetInlineStart,\n  insetEnd: position.insetInlineEnd\n});\n/**\n * Types for position CSS properties\n */\n//# sourceMappingURL=position.js.map","import { t, transforms } from \"../utils\";\n\n/**\n * The parser configuration for common outline properties\n */\nexport var ring = {\n  ring: {\n    transform: transforms.ring\n  },\n  ringColor: t.colors(\"--chakra-ring-color\"),\n  ringOffset: t.prop(\"--chakra-ring-offset-width\"),\n  ringOffsetColor: t.colors(\"--chakra-ring-offset-color\"),\n  ringInset: t.prop(\"--chakra-ring-inset\")\n};\n//# sourceMappingURL=ring.js.map","import { t } from \"../utils\";\nexport var space = {\n  margin: t.spaceT(\"margin\"),\n  marginTop: t.spaceT(\"marginTop\"),\n  marginBlockStart: t.spaceT(\"marginBlockStart\"),\n  marginRight: t.spaceT(\"marginRight\"),\n  marginInlineEnd: t.spaceT(\"marginInlineEnd\"),\n  marginBottom: t.spaceT(\"marginBottom\"),\n  marginBlockEnd: t.spaceT(\"marginBlockEnd\"),\n  marginLeft: t.spaceT(\"marginLeft\"),\n  marginInlineStart: t.spaceT(\"marginInlineStart\"),\n  marginX: t.spaceT([\"marginInlineStart\", \"marginInlineEnd\"]),\n  marginInline: t.spaceT(\"marginInline\"),\n  marginY: t.spaceT([\"marginTop\", \"marginBottom\"]),\n  marginBlock: t.spaceT(\"marginBlock\"),\n  padding: t.space(\"padding\"),\n  paddingTop: t.space(\"paddingTop\"),\n  paddingBlockStart: t.space(\"paddingBlockStart\"),\n  paddingRight: t.space(\"paddingRight\"),\n  paddingBottom: t.space(\"paddingBottom\"),\n  paddingBlockEnd: t.space(\"paddingBlockEnd\"),\n  paddingLeft: t.space(\"paddingLeft\"),\n  paddingInlineStart: t.space(\"paddingInlineStart\"),\n  paddingInlineEnd: t.space(\"paddingInlineEnd\"),\n  paddingX: t.space([\"paddingInlineStart\", \"paddingInlineEnd\"]),\n  paddingInline: t.space(\"paddingInline\"),\n  paddingY: t.space([\"paddingTop\", \"paddingBottom\"]),\n  paddingBlock: t.space(\"paddingBlock\")\n};\nObject.assign(space, {\n  m: space.margin,\n  mt: space.marginTop,\n  mr: space.marginRight,\n  me: space.marginInlineEnd,\n  marginEnd: space.marginInlineEnd,\n  mb: space.marginBottom,\n  ml: space.marginLeft,\n  ms: space.marginInlineStart,\n  marginStart: space.marginInlineStart,\n  mx: space.marginX,\n  my: space.marginY,\n  p: space.padding,\n  pt: space.paddingTop,\n  py: space.paddingY,\n  px: space.paddingX,\n  pb: space.paddingBottom,\n  pl: space.paddingLeft,\n  ps: space.paddingInlineStart,\n  paddingStart: space.paddingInlineStart,\n  pr: space.paddingRight,\n  pe: space.paddingInlineEnd,\n  paddingEnd: space.paddingInlineEnd\n});\n/**\n * Types for space related CSS properties\n */\n//# sourceMappingURL=space.js.map","import { t } from \"../utils\";\nexport var textDecoration = {\n  textDecorationColor: t.colors(\"textDecorationColor\"),\n  textDecoration: true,\n  textDecor: {\n    property: \"textDecoration\"\n  },\n  textDecorationLine: true,\n  textDecorationStyle: true,\n  textDecorationThickness: true,\n  textUnderlineOffset: true,\n  textShadow: t.shadows(\"textShadow\")\n};\n//# sourceMappingURL=text-decoration.js.map","import { t, transforms } from \"../utils\";\nexport var transform = {\n  clipPath: true,\n  transform: t.propT(\"transform\", transforms.transform),\n  transformOrigin: true,\n  translateX: t.spaceT(\"--chakra-translate-x\"),\n  translateY: t.spaceT(\"--chakra-translate-y\"),\n  skewX: t.degreeT(\"--chakra-skew-x\"),\n  skewY: t.degreeT(\"--chakra-skew-y\"),\n  scaleX: t.prop(\"--chakra-scale-x\"),\n  scaleY: t.prop(\"--chakra-scale-y\"),\n  scale: t.prop([\"--chakra-scale-x\", \"--chakra-scale-y\"]),\n  rotate: t.degreeT(\"--chakra-rotate\")\n};\n//# sourceMappingURL=transform.js.map","import { t } from \"../utils\";\nexport var transition = {\n  transition: true,\n  transitionDelay: true,\n  animation: true,\n  willChange: true,\n  transitionDuration: t.prop(\"transitionDuration\", \"transition.duration\"),\n  transitionProperty: t.prop(\"transitionProperty\", \"transition.property\"),\n  transitionTimingFunction: t.prop(\"transitionTimingFunction\", \"transition.easing\")\n};\n//# sourceMappingURL=transition.js.map","import { t, transforms } from \"../utils\";\nexport var typography = {\n  fontFamily: t.prop(\"fontFamily\", \"fonts\"),\n  fontSize: t.prop(\"fontSize\", \"fontSizes\", transforms.px),\n  fontWeight: t.prop(\"fontWeight\", \"fontWeights\"),\n  lineHeight: t.prop(\"lineHeight\", \"lineHeights\"),\n  letterSpacing: t.prop(\"letterSpacing\", \"letterSpacings\"),\n  textAlign: true,\n  fontStyle: true,\n  wordBreak: true,\n  overflowWrap: true,\n  textOverflow: true,\n  textTransform: true,\n  whiteSpace: true,\n  noOfLines: {\n    static: {\n      overflow: \"hidden\",\n      textOverflow: \"ellipsis\",\n      display: \"-webkit-box\",\n      WebkitBoxOrient: \"vertical\",\n      //@ts-ignore\n      WebkitLineClamp: \"var(--chakra-line-clamp)\"\n    },\n    property: \"--chakra-line-clamp\"\n  },\n  isTruncated: {\n    transform(value) {\n      if (value === true) {\n        return {\n          overflow: \"hidden\",\n          textOverflow: \"ellipsis\",\n          whiteSpace: \"nowrap\"\n        };\n      }\n    }\n\n  }\n};\n/**\n * Types for typography related CSS properties\n */\n//# sourceMappingURL=typography.js.map","/**\n * Thank you @markdalgleish for this piece of art!\n */\nimport { isObject } from \"@chakra-ui/utils\";\n\nfunction resolveReference(operand) {\n  if (isObject(operand) && operand.reference) {\n    return operand.reference;\n  }\n\n  return String(operand);\n}\n\nvar toExpression = function toExpression(operator) {\n  for (var _len = arguments.length, operands = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n    operands[_key - 1] = arguments[_key];\n  }\n\n  return operands.map(resolveReference).join(\" \" + operator + \" \").replace(/calc/g, \"\");\n};\n\nvar _add = function add() {\n  for (var _len2 = arguments.length, operands = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n    operands[_key2] = arguments[_key2];\n  }\n\n  return \"calc(\" + toExpression(\"+\", ...operands) + \")\";\n};\n\nvar _subtract = function subtract() {\n  for (var _len3 = arguments.length, operands = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n    operands[_key3] = arguments[_key3];\n  }\n\n  return \"calc(\" + toExpression(\"-\", ...operands) + \")\";\n};\n\nvar _multiply = function multiply() {\n  for (var _len4 = arguments.length, operands = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n    operands[_key4] = arguments[_key4];\n  }\n\n  return \"calc(\" + toExpression(\"*\", ...operands) + \")\";\n};\n\nvar _divide = function divide() {\n  for (var _len5 = arguments.length, operands = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n    operands[_key5] = arguments[_key5];\n  }\n\n  return \"calc(\" + toExpression(\"/\", ...operands) + \")\";\n};\n\nvar _negate = x => {\n  var value = resolveReference(x);\n\n  if (value != null && !Number.isNaN(parseFloat(value))) {\n    return String(value).startsWith(\"-\") ? String(value).slice(1) : \"-\" + value;\n  }\n\n  return _multiply(value, -1);\n};\n\nexport var calc = Object.assign(x => ({\n  add: function add() {\n    for (var _len6 = arguments.length, operands = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n      operands[_key6] = arguments[_key6];\n    }\n\n    return calc(_add(x, ...operands));\n  },\n  subtract: function subtract() {\n    for (var _len7 = arguments.length, operands = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n      operands[_key7] = arguments[_key7];\n    }\n\n    return calc(_subtract(x, ...operands));\n  },\n  multiply: function multiply() {\n    for (var _len8 = arguments.length, operands = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n      operands[_key8] = arguments[_key8];\n    }\n\n    return calc(_multiply(x, ...operands));\n  },\n  divide: function divide() {\n    for (var _len9 = arguments.length, operands = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n      operands[_key9] = arguments[_key9];\n    }\n\n    return calc(_divide(x, ...operands));\n  },\n  negate: () => calc(_negate(x)),\n  toString: () => x.toString()\n}), {\n  add: _add,\n  subtract: _subtract,\n  multiply: _multiply,\n  divide: _divide,\n  negate: _negate\n});\n//# sourceMappingURL=calc.js.map","function replaceWhiteSpace(value, replaceValue) {\n  if (replaceValue === void 0) {\n    replaceValue = \"-\";\n  }\n\n  return value.replace(/\\s+/g, replaceValue);\n}\n\nfunction escape(value) {\n  var valueStr = replaceWhiteSpace(value.toString());\n  if (valueStr.includes(\"\\\\.\")) return value;\n  var isDecimal = !Number.isInteger(parseFloat(value.toString()));\n  return isDecimal ? valueStr.replace(\".\", \"\\\\.\") : value;\n}\n\nexport function addPrefix(value, prefix) {\n  if (prefix === void 0) {\n    prefix = \"\";\n  }\n\n  return [prefix, escape(value)].filter(Boolean).join(\"-\");\n}\nexport function toVarReference(name, fallback) {\n  return \"var(\" + escape(name) + (fallback ? \", \" + fallback : \"\") + \")\";\n}\nexport function toVarDefinition(value, prefix) {\n  if (prefix === void 0) {\n    prefix = \"\";\n  }\n\n  return \"--\" + addPrefix(value, prefix);\n}\nexport function cssVar(name, fallback, cssVarPrefix) {\n  var cssVariable = toVarDefinition(name, cssVarPrefix);\n  return {\n    variable: cssVariable,\n    reference: toVarReference(cssVariable, fallback)\n  };\n}\n//# sourceMappingURL=css-var.js.map","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\nimport { walkObject } from \"@chakra-ui/utils\";\nimport { calc } from \"./calc\";\nimport { cssVar } from \"./css-var\";\nexport function createThemeVars(target, options) {\n  var context = {\n    cssMap: {},\n    cssVars: {}\n  };\n  walkObject(target, (value, path) => {\n    var _tokenHandlerMap$firs;\n\n    // firstKey will be e.g. \"space\"\n    var [firstKey] = path;\n    var handler = (_tokenHandlerMap$firs = tokenHandlerMap[firstKey]) != null ? _tokenHandlerMap$firs : tokenHandlerMap.defaultHandler;\n    var {\n      cssVars,\n      cssMap\n    } = handler(path, value, options);\n    Object.assign(context.cssVars, cssVars);\n    Object.assign(context.cssMap, cssMap);\n  });\n  return context;\n}\n\n/**\n * Define transformation handlers for ThemeScale\n */\nvar tokenHandlerMap = {\n  space: (keys, value, options) => {\n    var properties = tokenHandlerMap.defaultHandler(keys, value, options);\n    var [firstKey, ...referenceKeys] = keys;\n    var negativeLookupKey = firstKey + \".-\" + referenceKeys.join(\".\");\n    var negativeVarKey = keys.join(\"-\");\n    var {\n      variable,\n      reference\n    } = cssVar(negativeVarKey, undefined, options.cssVarPrefix);\n    var negativeValue = calc.negate(value);\n    var varRef = calc.negate(reference);\n    return {\n      cssVars: properties.cssVars,\n      cssMap: _extends({}, properties.cssMap, {\n        [negativeLookupKey]: {\n          value: \"\" + negativeValue,\n          var: \"\" + variable,\n          varRef\n        }\n      })\n    };\n  },\n  defaultHandler: (keys, value, options) => {\n    var lookupKey = keys.join(\".\");\n    var varKey = keys.join(\"-\");\n    var {\n      variable,\n      reference\n    } = cssVar(varKey, undefined, options.cssVarPrefix);\n    return {\n      cssVars: {\n        [variable]: value\n      },\n      cssMap: {\n        [lookupKey]: {\n          value,\n          var: variable,\n          varRef: reference\n        }\n      }\n    };\n  }\n};\n//# sourceMappingURL=create-theme-vars.js.map","import { isArray, isObject } from \"./assertion\";\nexport function walkObject(target, predicate) {\n  function inner(value, path) {\n    if (path === void 0) {\n      path = [];\n    }\n\n    if (isArray(value)) {\n      return value.map((item, index) => inner(item, [...path, String(index)]));\n    }\n\n    if (isObject(value)) {\n      return Object.fromEntries(Object.entries(value).map((_ref) => {\n        var [key, child] = _ref;\n        return [key, inner(child, [...path, key])];\n      }));\n    }\n\n    return predicate(value, path);\n  }\n\n  return inner(target);\n}\n//# sourceMappingURL=walk-object.js.map","function _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 { pick } from \"@chakra-ui/utils\";\nvar tokens = [\"colors\", \"borders\", \"borderWidths\", \"borderStyles\", \"fonts\", \"fontSizes\", \"fontWeights\", \"letterSpacings\", \"lineHeights\", \"radii\", \"space\", \"shadows\", \"sizes\", \"zIndices\", \"transition\", \"blur\"];\nexport function extractTokens(theme) {\n  var _tokens = tokens;\n  return pick(theme, _tokens);\n}\nexport function omitVars(rawTheme) {\n  var cleanTheme = _objectWithoutPropertiesLoose(rawTheme, [\"__cssMap\", \"__cssVars\", \"__breakpoints\"]);\n\n  return cleanTheme;\n}\n//# sourceMappingURL=theme-tokens.js.map","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\nimport { analyzeBreakpoints } from \"@chakra-ui/utils\";\nimport { createThemeVars } from \"./create-theme-vars\";\nimport { extractTokens, omitVars } from \"./theme-tokens\";\nexport function toCSSVar(rawTheme) {\n  var _theme$config;\n\n  /**\n   * In the case the theme has already been converted to css-var (e.g extending the theme),\n   * we can omit the computed css vars and recompute it for the extended theme.\n   */\n  var theme = omitVars(rawTheme); // omit components and breakpoints from css variable map\n\n  var tokens = extractTokens(theme);\n  var cssVarPrefix = (_theme$config = theme.config) == null ? void 0 : _theme$config.cssVarPrefix;\n  var {\n    /**\n     * This is more like a dictionary of tokens users will type `green.500`,\n     * and their equivalent css variable.\n     */\n    cssMap,\n\n    /**\n     * The extracted css variables will be stored here, and used in\n     * the emotion's <Global/> component to attach variables to `:root`\n     */\n    cssVars\n  } = createThemeVars(tokens, {\n    cssVarPrefix\n  });\n  var defaultCssVars = {\n    \"--chakra-ring-inset\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n    \"--chakra-ring-offset-width\": \"0px\",\n    \"--chakra-ring-offset-color\": \"#fff\",\n    \"--chakra-ring-color\": \"rgba(66, 153, 225, 0.6)\",\n    \"--chakra-ring-offset-shadow\": \"0 0 #0000\",\n    \"--chakra-ring-shadow\": \"0 0 #0000\",\n    \"--chakra-space-x-reverse\": \"0\",\n    \"--chakra-space-y-reverse\": \"0\"\n  };\n  Object.assign(theme, {\n    __cssVars: _extends({}, defaultCssVars, cssVars),\n    __cssMap: cssMap,\n    __breakpoints: analyzeBreakpoints(theme.breakpoints)\n  });\n  return theme;\n}\n//# sourceMappingURL=to-css-var.js.map","import { isCssVar, isObject, isString, mergeWith as merge, runIfFn } from \"@chakra-ui/utils\";\nimport { pseudoSelectors } from \"./pseudos\";\nimport { systemProps as systemPropConfigs } from \"./system\";\nimport { expandResponsive } from \"./utils/expand-responsive\";\n\nvar isCSSVariableTokenValue = (key, value) => key.startsWith(\"--\") && isString(value) && !isCssVar(value);\n\nvar resolveTokenValue = (theme, value) => {\n  var _ref, _getVar2;\n\n  if (value == null) return value;\n\n  var getVar = val => {\n    var _theme$__cssMap, _theme$__cssMap$val;\n\n    return (_theme$__cssMap = theme.__cssMap) == null ? void 0 : (_theme$__cssMap$val = _theme$__cssMap[val]) == null ? void 0 : _theme$__cssMap$val.varRef;\n  };\n\n  var getValue = val => {\n    var _getVar;\n\n    return (_getVar = getVar(val)) != null ? _getVar : val;\n  };\n\n  var valueSplit = value.split(\",\").map(v => v.trim());\n  var [tokenValue, fallbackValue] = valueSplit;\n  value = (_ref = (_getVar2 = getVar(tokenValue)) != null ? _getVar2 : getValue(fallbackValue)) != null ? _ref : getValue(value);\n  return value;\n};\n\nexport function getCss(options) {\n  var {\n    configs = {},\n    pseudos = {},\n    theme\n  } = options;\n\n  var css = function css(stylesOrFn, nested) {\n    if (nested === void 0) {\n      nested = false;\n    }\n\n    var _styles = runIfFn(stylesOrFn, theme);\n\n    var styles = expandResponsive(_styles)(theme);\n    var computedStyles = {};\n\n    for (var key in styles) {\n      var _config$transform, _config, _config2, _config3, _config4;\n\n      var valueOrFn = styles[key];\n      /**\n       * allows the user to pass functional values\n       * boxShadow: theme => `0 2px 2px ${theme.colors.red}`\n       */\n\n      var value = runIfFn(valueOrFn, theme);\n      /**\n       * converts pseudo shorthands to valid selector\n       * \"_hover\" => \"&:hover\"\n       */\n\n      if (key in pseudos) {\n        key = pseudos[key];\n      }\n      /**\n       * allows the user to use theme tokens in css vars\n       * { --banner-height: \"sizes.md\" } => { --banner-height: \"var(--chakra-sizes-md)\" }\n       *\n       * You can also provide fallback values\n       * { --banner-height: \"sizes.no-exist, 40px\" } => { --banner-height: \"40px\" }\n       */\n\n\n      if (isCSSVariableTokenValue(key, value)) {\n        value = resolveTokenValue(theme, value);\n      }\n\n      var config = configs[key];\n\n      if (config === true) {\n        config = {\n          property: key\n        };\n      }\n\n      if (isObject(value)) {\n        var _computedStyles$key;\n\n        computedStyles[key] = (_computedStyles$key = computedStyles[key]) != null ? _computedStyles$key : {};\n        computedStyles[key] = merge({}, computedStyles[key], css(value, true));\n        continue;\n      }\n\n      var rawValue = (_config$transform = (_config = config) == null ? void 0 : _config.transform == null ? void 0 : _config.transform(value, theme, _styles)) != null ? _config$transform : value;\n      /**\n       * Used for `layerStyle`, `textStyle` and `apply`. After getting the\n       * styles in the theme, we need to process them since they might\n       * contain theme tokens.\n       *\n       * `processResult` is the config property we pass to `layerStyle`, `textStyle` and `apply`\n       */\n\n      rawValue = (_config2 = config) != null && _config2.processResult ? css(rawValue, true) : rawValue;\n      /**\n       * allows us define css properties for RTL and LTR.\n       *\n       * const marginStart = {\n       *   property: theme => theme.direction === \"rtl\" ? \"marginRight\": \"marginLeft\",\n       * }\n       */\n\n      var configProperty = runIfFn((_config3 = config) == null ? void 0 : _config3.property, theme);\n\n      if (!nested && (_config4 = config) != null && _config4.static) {\n        var staticStyles = runIfFn(config.static, theme);\n        computedStyles = merge({}, computedStyles, staticStyles);\n      }\n\n      if (configProperty && Array.isArray(configProperty)) {\n        for (var property of configProperty) {\n          computedStyles[property] = rawValue;\n        }\n\n        continue;\n      }\n\n      if (configProperty) {\n        if (configProperty === \"&\" && isObject(rawValue)) {\n          computedStyles = merge({}, computedStyles, rawValue);\n        } else {\n          computedStyles[configProperty] = rawValue;\n        }\n\n        continue;\n      }\n\n      if (isObject(rawValue)) {\n        computedStyles = merge({}, computedStyles, rawValue);\n        continue;\n      }\n\n      computedStyles[key] = rawValue;\n    }\n\n    return computedStyles;\n  };\n\n  return css;\n}\nexport var css = styles => theme => {\n  var cssFn = getCss({\n    theme,\n    pseudos: pseudoSelectors,\n    configs: systemPropConfigs\n  });\n  return cssFn(styles);\n};\n//# sourceMappingURL=css.js.map","import { isObject, runIfFn } from \"@chakra-ui/utils\";\n/**\n * Expands an array or object syntax responsive style.\n *\n * @example\n * expandResponsive({ mx: [1, 2] })\n * // or\n * expandResponsive({ mx: { base: 1, sm: 2 } })\n *\n * // => { mx: 1, \"@media(min-width:<sm>)\": { mx: 2 } }\n */\n\nexport var expandResponsive = styles => theme => {\n  /**\n   * Before any style can be processed, the user needs to call `toCSSVar`\n   * which analyzes the theme's breakpoint and appends a `__breakpoints` property\n   * to the theme with more details of the breakpoints.\n   *\n   * To learn more, go here: packages/utils/src/responsive.ts #analyzeBreakpoints\n   */\n  if (!theme.__breakpoints) return styles;\n  var {\n    isResponsive,\n    toArrayValue,\n    media: medias\n  } = theme.__breakpoints;\n  var computedStyles = {};\n\n  for (var key in styles) {\n    var value = runIfFn(styles[key], theme);\n    if (value == null) continue; // converts the object responsive syntax to array syntax\n\n    value = isObject(value) && isResponsive(value) ? toArrayValue(value) : value;\n\n    if (!Array.isArray(value)) {\n      computedStyles[key] = value;\n      continue;\n    }\n\n    var queries = value.slice(0, medias.length).length;\n\n    for (var index = 0; index < queries; index += 1) {\n      var media = medias == null ? void 0 : medias[index];\n\n      if (!media) {\n        computedStyles[key] = value[index];\n        continue;\n      }\n\n      computedStyles[media] = computedStyles[media] || {};\n\n      if (value[index] == null) {\n        continue;\n      }\n\n      computedStyles[media][key] = value[index];\n    }\n  }\n\n  return computedStyles;\n};\n//# sourceMappingURL=expand-responsive.js.map","import { objectKeys } from \"@chakra-ui/utils\";\nvar group = {\n  hover: selector => selector + \":hover &, \" + selector + \"[data-hover] &\",\n  focus: selector => selector + \":focus &, \" + selector + \"[data-focus] &\",\n  active: selector => selector + \":active &, \" + selector + \"[data-active] &\",\n  disabled: selector => selector + \":disabled &, \" + selector + \"[data-disabled] &\",\n  invalid: selector => selector + \":invalid &, \" + selector + \"[data-invalid] &\",\n  checked: selector => selector + \":checked &, \" + selector + \"[data-checked] &\",\n  indeterminate: selector => selector + \":indeterminate &, \" + selector + \"[aria-checked=mixed] &, \" + selector + \"[data-indeterminate] &\",\n  readOnly: selector => selector + \":read-only &, \" + selector + \"[readonly] &, \" + selector + \"[data-read-only] &\",\n  expanded: selector => selector + \":read-only &, \" + selector + \"[aria-expanded=true] &, \" + selector + \"[data-expanded] &\"\n};\n\nvar toGroup = fn => merge(fn, \"[role=group]\", \"[data-group]\", \".group\");\n\nvar merge = function merge(fn) {\n  for (var _len = arguments.length, selectors = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n    selectors[_key - 1] = arguments[_key];\n  }\n\n  return selectors.map(fn).join(\", \");\n};\n\nexport var pseudoSelectors = {\n  /**\n   * Styles for CSS selector `&:hover`\n   */\n  _hover: \"&:hover, &[data-hover]\",\n\n  /**\n   * Styles for CSS Selector `&:active`\n   */\n  _active: \"&:active, &[data-active]\",\n\n  /**\n   * Styles for CSS selector `&:focus`\n   *\n   */\n  _focus: \"&:focus, &[data-focus]\",\n\n  /**\n   * Styles for the highlighted state.\n   */\n  _highlighted: \"&[data-highlighted]\",\n\n  /**\n   * Styles to apply when a child of this element has received focus\n   * - CSS Selector `&:focus-within`\n   */\n  _focusWithin: \"&:focus-within\",\n  _focusVisible: \"&:focus-visible\",\n\n  /**\n   * Styles to apply when this element is disabled. The passed styles are applied to these CSS selectors:\n   * - `&[aria-disabled=true]`\n   * - `&:disabled`\n   * - `&[data-disabled]`\n   */\n  _disabled: \"&[disabled], &[aria-disabled=true], &[data-disabled]\",\n\n  /**\n   * Styles for CSS Selector `&:readonly`\n   */\n  _readOnly: \"&[aria-readonly=true], &[readonly], &[data-readonly]\",\n\n  /**\n   * Styles for CSS selector `&::before`\n   *\n   * NOTE:When using this, ensure the `content` is wrapped in a backtick.\n   * @example\n   * ```jsx\n   * <Box _before={{content:`\"\"` }}/>\n   * ```\n   */\n  _before: \"&::before\",\n\n  /**\n   * Styles for CSS selector `&::after`\n   *\n   * NOTE:When using this, ensure the `content` is wrapped in a backtick.\n   * @example\n   * ```jsx\n   * <Box _after={{content:`\"\"` }}/>\n   * ```\n   */\n  _after: \"&::after\",\n  _empty: \"&:empty\",\n\n  /**\n   * Styles to apply when the ARIA attribute `aria-expanded` is `true`\n   * - CSS selector `&[aria-expanded=true]`\n   */\n  _expanded: \"&[aria-expanded=true], &[data-expanded]\",\n\n  /**\n   * Styles to apply when the ARIA attribute `aria-checked` is `true`\n   * - CSS selector `&[aria-checked=true]`\n   */\n  _checked: \"&[aria-checked=true], &[data-checked]\",\n\n  /**\n   * Styles to apply when the ARIA attribute `aria-grabbed` is `true`\n   * - CSS selector `&[aria-grabbed=true]`\n   */\n  _grabbed: \"&[aria-grabbed=true], &[data-grabbed]\",\n\n  /**\n   * Styles for CSS Selector `&[aria-pressed=true]`\n   * Typically used to style the current \"pressed\" state of toggle buttons\n   */\n  _pressed: \"&[aria-pressed=true], &[data-pressed]\",\n\n  /**\n   * Styles to apply when the ARIA attribute `aria-invalid` is `true`\n   * - CSS selector `&[aria-invalid=true]`\n   */\n  _invalid: \"&[aria-invalid=true], &[data-invalid]\",\n\n  /**\n   * Styles for the valid state\n   * - CSS selector `&[data-valid], &[data-state=valid]`\n   */\n  _valid: \"&[data-valid], &[data-state=valid]\",\n\n  /**\n   * Styles for CSS Selector `&[aria-busy=true]` or `&[data-loading=true]`.\n   * Useful for styling loading states\n   */\n  _loading: \"&[data-loading], &[aria-busy=true]\",\n\n  /**\n   * Styles to apply when the ARIA attribute `aria-selected` is `true`\n   *\n   * - CSS selector `&[aria-selected=true]`\n   */\n  _selected: \"&[aria-selected=true], &[data-selected]\",\n\n  /**\n   * Styles for CSS Selector `[hidden=true]`\n   */\n  _hidden: \"&[hidden], &[data-hidden]\",\n\n  /**\n   * Styles for CSS Selector `&:-webkit-autofill`\n   */\n  _autofill: \"&:-webkit-autofill\",\n\n  /**\n   * Styles for CSS Selector `&:nth-child(even)`\n   */\n  _even: \"&:nth-of-type(even)\",\n\n  /**\n   * Styles for CSS Selector `&:nth-child(odd)`\n   */\n  _odd: \"&:nth-of-type(odd)\",\n\n  /**\n   * Styles for CSS Selector `&:first-of-type`\n   */\n  _first: \"&:first-of-type\",\n\n  /**\n   * Styles for CSS Selector `&:last-of-type`\n   */\n  _last: \"&:last-of-type\",\n\n  /**\n   * Styles for CSS Selector `&:not(:first-of-type)`\n   */\n  _notFirst: \"&:not(:first-of-type)\",\n\n  /**\n   * Styles for CSS Selector `&:not(:last-of-type)`\n   */\n  _notLast: \"&:not(:last-of-type)\",\n\n  /**\n   * Styles for CSS Selector `&:visited`\n   */\n  _visited: \"&:visited\",\n\n  /**\n   * Used to style the active link in a navigation\n   * Styles for CSS Selector `&[aria-current=page]`\n   */\n  _activeLink: \"&[aria-current=page]\",\n\n  /**\n   * Used to style the current step within a process\n   * Styles for CSS Selector `&[aria-current=step]`\n   */\n  _activeStep: \"&[aria-current=step]\",\n\n  /**\n   * Styles to apply when the ARIA attribute `aria-checked` is `mixed`\n   * - CSS selector `&[aria-checked=mixed]`\n   */\n  _indeterminate: \"&:indeterminate, &[aria-checked=mixed], &[data-indeterminate]\",\n\n  /**\n   * Styles to apply when parent is hovered\n   */\n  _groupHover: toGroup(group.hover),\n\n  /**\n   * Styles to apply when parent is focused\n   */\n  _groupFocus: toGroup(group.focus),\n\n  /**\n   * Styles to apply when parent is active\n   */\n  _groupActive: toGroup(group.active),\n\n  /**\n   * Styles to apply when parent is disabled\n   */\n  _groupDisabled: toGroup(group.disabled),\n\n  /**\n   * Styles to apply when parent is invalid\n   */\n  _groupInvalid: toGroup(group.invalid),\n\n  /**\n   * Styles to apply when parent is checked\n   */\n  _groupChecked: toGroup(group.checked),\n\n  /**\n   * Styles for CSS Selector `&::placeholder`.\n   */\n  _placeholder: \"&::placeholder\",\n\n  /**\n   * Styles for CSS Selector `&:fullscreen`.\n   */\n  _fullScreen: \"&:fullscreen\",\n\n  /**\n   * Styles for CSS Selector `&::selection`\n   */\n  _selection: \"&::selection\",\n\n  /**\n   * Styles for CSS Selector `[dir=rtl] &`\n   * It is applied when any parent element has `dir=\"rtl\"`\n   */\n  _rtl: \"[dir=rtl] &\",\n\n  /**\n   * Styles for CSS Selector `@media (prefers-color-scheme: dark)`\n   * used when the user has requested the system\n   * use a light or dark color theme.\n   */\n  _mediaDark: \"@media (prefers-color-scheme: dark)\",\n\n  /**\n   * Styles for when `data-theme` is applied to any parent of\n   * this component or element.\n   */\n  _dark: \".chakra-ui-dark &, [data-theme=dark] &, &[data-theme=dark]\",\n\n  /**\n   * Styles for when `data-theme` is applied to any parent of\n   * this component or element.\n   */\n  _light: \".chakra-ui-light &, [data-theme=light] &, &[data-theme=light]\"\n};\nexport var pseudoPropNames = objectKeys(pseudoSelectors);\n//# sourceMappingURL=pseudos.js.map","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\nimport { mergeWith, objectKeys } from \"@chakra-ui/utils\";\nimport { background, border, color, effect, filter, flexbox, grid, interactivity, layout, list, others, position, ring, space, textDecoration, transform, transition, typography } from \"./config\";\nimport { pseudoPropNames, pseudoSelectors } from \"./pseudos\";\nexport var systemProps = mergeWith({}, background, border, color, flexbox, layout, filter, ring, interactivity, grid, others, position, effect, space, typography, textDecoration, transform, list, transition);\nvar layoutSystem = Object.assign({}, space, layout, flexbox, grid, position);\nexport var layoutPropNames = objectKeys(layoutSystem);\nexport var propNames = [...objectKeys(systemProps), ...pseudoPropNames];\n\nvar styleProps = _extends({}, systemProps, pseudoSelectors);\n\nexport var isStyleProp = prop => prop in styleProps;\n//# sourceMappingURL=system.js.map","import { isObject } from \"@chakra-ui/utils\";\nexport var tokenToCSSVar = (scale, value) => theme => {\n  var valueStr = String(value);\n  var key = scale ? scale + \".\" + valueStr : valueStr;\n  return isObject(theme.__cssMap) && key in theme.__cssMap ? theme.__cssMap[key].varRef : value;\n};\nexport function createTransform(options) {\n  var {\n    scale,\n    transform,\n    compose\n  } = options;\n\n  var fn = (value, theme) => {\n    var _transform;\n\n    var _value = tokenToCSSVar(scale, value)(theme);\n\n    var result = (_transform = transform == null ? void 0 : transform(_value, theme)) != null ? _transform : _value;\n\n    if (compose) {\n      result = compose(result, theme);\n    }\n\n    return result;\n  };\n\n  return fn;\n}\n//# sourceMappingURL=create-transform.js.map","/**\n * All credit goes to Chance (Reach UI), Haz (Reakit) and (fluentui)\n * for creating the base type definitions upon which we improved on\n */\nimport * as React from \"react\";\nexport function forwardRef(component) {\n  return /*#__PURE__*/React.forwardRef(component);\n}\n//# sourceMappingURL=forward-ref.js.map","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\nimport { useColorMode } from \"@chakra-ui/color-mode\";\nimport { filterUndefined, memoizedGet as get, mergeWith, runIfFn } from \"@chakra-ui/utils\";\nimport { useMemo, useRef } from \"react\";\nimport isEqual from \"react-fast-compare\";\nimport { useTheme } from \"./providers\";\nimport { omitThemingProps } from \"./system.utils\";\nexport function useChakra() {\n  var colorModeResult = useColorMode();\n  var theme = useTheme();\n  return _extends({}, colorModeResult, {\n    theme\n  });\n}\nexport function useToken(scale, token, fallback) {\n  var theme = useTheme();\n\n  if (Array.isArray(token)) {\n    var fallbackArr = [];\n\n    if (fallback) {\n      fallbackArr = Array.isArray(fallback) ? fallback : [fallback];\n    }\n\n    return token.map((token, index) => {\n      var _fallbackArr$index;\n\n      var path = scale + \".\" + token;\n      return get(theme, path, (_fallbackArr$index = fallbackArr[index]) != null ? _fallbackArr$index : token);\n    });\n  }\n\n  var path = scale + \".\" + token;\n  return get(theme, path, fallback != null ? fallback : token);\n}\nexport function useProps(themeKey, props) {\n  var _theme$components, _styleConfig$defaultP;\n\n  var {\n    theme,\n    colorMode\n  } = useChakra();\n  var styleConfig = props.styleConfig || ((_theme$components = theme.components) == null ? void 0 : _theme$components[themeKey]);\n  var defaultProps = (_styleConfig$defaultP = styleConfig == null ? void 0 : styleConfig.defaultProps) != null ? _styleConfig$defaultP : {};\n\n  var propsWithDefault = _extends({}, defaultProps, filterUndefined(props));\n\n  var stylesRef = useRef({});\n  var mergedProps = mergeWith({}, propsWithDefault, {\n    theme,\n    colorMode\n  });\n  var memoizedStyles = useMemo(() => {\n    if (styleConfig) {\n      var _styleConfig$baseStyl, _styleConfig$variants, _styleConfig$variants2, _styleConfig$sizes, _styleConfig$sizes2;\n\n      var baseStyles = runIfFn((_styleConfig$baseStyl = styleConfig.baseStyle) != null ? _styleConfig$baseStyl : {}, mergedProps);\n      var variants = runIfFn((_styleConfig$variants = (_styleConfig$variants2 = styleConfig.variants) == null ? void 0 : _styleConfig$variants2[mergedProps.variant]) != null ? _styleConfig$variants : {}, mergedProps);\n      var sizes = runIfFn((_styleConfig$sizes = (_styleConfig$sizes2 = styleConfig.sizes) == null ? void 0 : _styleConfig$sizes2[mergedProps.size]) != null ? _styleConfig$sizes : {}, mergedProps);\n      var styles = mergeWith(baseStyles, sizes, variants);\n\n      if (styleConfig.parts) {\n        styleConfig.parts.forEach(part => {\n          var _styles$part;\n\n          styles[part] = (_styles$part = styles[part]) != null ? _styles$part : {};\n        });\n      }\n\n      var isStyleEqual = isEqual(stylesRef.current, styles);\n\n      if (!isStyleEqual) {\n        stylesRef.current = styles;\n      }\n    }\n\n    return stylesRef.current;\n  }, [styleConfig, mergedProps]);\n  return {\n    styles: memoizedStyles,\n    props: omitThemingProps(propsWithDefault)\n  };\n}\n//# sourceMappingURL=hooks.js.map","import { useColorMode } from \"@chakra-ui/color-mode\";\nimport { css, toCSSVar } from \"@chakra-ui/styled-system\";\nimport { memoizedGet as get, runIfFn } from \"@chakra-ui/utils\";\nimport { createContext } from \"@chakra-ui/react-utils\";\nimport { Global, ThemeContext, ThemeProvider as EmotionThemeProvider } from \"@emotion/react\";\nimport * as React from \"react\";\nexport var ThemeProvider = props => {\n  var {\n    cssVarsRoot = \":host, :root\",\n    theme,\n    children\n  } = props;\n  var computedTheme = React.useMemo(() => toCSSVar(theme), [theme]);\n  return /*#__PURE__*/React.createElement(EmotionThemeProvider, {\n    theme: computedTheme\n  }, /*#__PURE__*/React.createElement(Global, {\n    styles: theme => ({\n      [cssVarsRoot]: theme.__cssVars\n    })\n  }), children);\n};\nexport function useTheme() {\n  var theme = React.useContext(ThemeContext);\n\n  if (!theme) {\n    throw Error(\"useTheme: `theme` is undefined. Seems you forgot to wrap your app in `<ChakraProvider />` or `<ThemeProvider />`\");\n  }\n\n  return theme;\n}\nvar [StylesProvider, useStyles] = createContext({\n  name: \"StylesContext\",\n  errorMessage: \"useStyles: `styles` is undefined. Seems you forgot to wrap the components in `<StylesProvider />` \"\n});\nexport { StylesProvider, useStyles };\n/**\n * Applies styles defined in `theme.styles.global` globally\n * using emotion's `Global` component\n */\n\nexport var GlobalStyle = () => {\n  var {\n    colorMode\n  } = useColorMode();\n  return /*#__PURE__*/React.createElement(Global, {\n    styles: theme => {\n      var styleObjectOrFn = get(theme, \"styles.global\");\n      var globalStyles = runIfFn(styleObjectOrFn, {\n        theme,\n        colorMode\n      });\n      if (!globalStyles) return undefined;\n      var styles = css(globalStyles)(theme);\n      return styles;\n    }\n  });\n};\n//# sourceMappingURL=providers.js.map","import { propNames } from \"@chakra-ui/styled-system\";\n/**\n * List of props for emotion to omit from DOM.\n * It mostly consists of Chakra props\n */\n\nvar allPropNames = new Set([...propNames, \"textStyle\", \"layerStyle\", \"apply\", \"isTruncated\", \"noOfLines\", \"focusBorderColor\", \"errorBorderColor\", \"as\", \"__css\", \"css\", \"sx\"]);\n/**\n * htmlWidth and htmlHeight is used in the <Image />\n * component to support the native `width` and `height` attributes\n *\n * https://github.com/chakra-ui/chakra-ui/issues/149\n */\n\nvar validHTMLProps = new Set([\"htmlWidth\", \"htmlHeight\", \"htmlSize\"]);\nexport var shouldForwardProp = prop => validHTMLProps.has(prop) || !allPropNames.has(prop);\n//# sourceMappingURL=should-forward-prop.js.map","function _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 { css, isStyleProp } from \"@chakra-ui/styled-system\";\nimport { filterUndefined, objectFilter, runIfFn } from \"@chakra-ui/utils\";\nimport _styled from \"@emotion/styled\";\nimport { shouldForwardProp } from \"./should-forward-prop\";\nimport { domElements } from \"./system.utils\";\n\n/**\n * Style resolver function that manages how style props are merged\n * in combination with other possible ways of defining styles.\n *\n * For example, take a component defined this way:\n * ```jsx\n * <Box fontSize=\"24px\" sx={{ fontSize: \"40px\" }}></Box>\n * ```\n *\n * We want to manage the priority of the styles properly to prevent unwanted\n * behaviors. Right now, the `sx` prop has the highest priority so the resolved\n * fontSize will be `40px`\n */\nexport var toCSSObject = (_ref) => {\n  var {\n    baseStyle\n  } = _ref;\n  return props => {\n    var {\n      css: cssProp,\n      __css,\n      sx\n    } = props,\n        rest = _objectWithoutPropertiesLoose(props, [\"theme\", \"css\", \"__css\", \"sx\"]);\n\n    var styleProps = objectFilter(rest, (_, prop) => isStyleProp(prop));\n    var finalBaseStyle = runIfFn(baseStyle, props);\n    var finalStyles = Object.assign({}, __css, finalBaseStyle, filterUndefined(styleProps), sx);\n    var computedCSS = css(finalStyles)(props.theme);\n    return cssProp ? [computedCSS, cssProp] : computedCSS;\n  };\n};\nexport function styled(component, options) {\n  var _ref2 = options != null ? options : {},\n      {\n    baseStyle\n  } = _ref2,\n      styledOptions = _objectWithoutPropertiesLoose(_ref2, [\"baseStyle\"]);\n\n  if (!styledOptions.shouldForwardProp) {\n    styledOptions.shouldForwardProp = shouldForwardProp;\n  }\n\n  var styleObject = toCSSObject({\n    baseStyle\n  });\n  return _styled(component, styledOptions)(styleObject);\n}\nexport var chakra = styled;\ndomElements.forEach(tag => {\n  chakra[tag] = chakra(tag);\n});\n//# sourceMappingURL=system.js.map","import { isString, omit, __DEV__ } from \"@chakra-ui/utils\";\n\n/**\n * Carefully selected html elements for chakra components.\n * This is mostly for `chakra.<element>` syntax.\n */\nexport var domElements = [\"a\", \"b\", \"article\", \"aside\", \"blockquote\", \"button\", \"caption\", \"cite\", \"circle\", \"code\", \"dd\", \"div\", \"dl\", \"dt\", \"fieldset\", \"figcaption\", \"figure\", \"footer\", \"form\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"header\", \"hr\", \"img\", \"input\", \"kbd\", \"label\", \"li\", \"main\", \"mark\", \"nav\", \"ol\", \"p\", \"path\", \"pre\", \"q\", \"rect\", \"s\", \"svg\", \"section\", \"select\", \"strong\", \"small\", \"span\", \"sub\", \"sup\", \"table\", \"tbody\", \"td\", \"textarea\", \"tfoot\", \"th\", \"thead\", \"tr\", \"ul\"];\nexport function omitThemingProps(props) {\n  return omit(props, [\"styleConfig\", \"size\", \"variant\", \"colorScheme\"]);\n}\nexport default function isTag(target) {\n  return isString(target) && (__DEV__ ? target.charAt(0) === target.charAt(0).toLowerCase() : true);\n}\nexport function getDisplayName(primitive) {\n  return isTag(primitive) ? \"chakra.\" + primitive : getComponentName(primitive);\n}\n\nfunction getComponentName(primitive) {\n  return (__DEV__ ? isString(primitive) && primitive : false) || !isString(primitive) && primitive.displayName || !isString(primitive) && primitive.name || \"ChakraComponent\";\n}\n//# sourceMappingURL=system.utils.js.map","function _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 { filterUndefined, memoizedGet as get, mergeWith, runIfFn, omit } from \"@chakra-ui/utils\";\nimport { useRef } from \"react\";\nimport isEqual from \"react-fast-compare\";\nimport { useChakra } from \"./hooks\";\nexport function useStyleConfig(themeKey, props, opts) {\n  var _styleConfig$defaultP;\n\n  if (props === void 0) {\n    props = {};\n  }\n\n  if (opts === void 0) {\n    opts = {};\n  }\n\n  var {\n    styleConfig: styleConfigProp\n  } = props,\n      rest = _objectWithoutPropertiesLoose(props, [\"styleConfig\"]);\n\n  var {\n    theme,\n    colorMode\n  } = useChakra();\n  var themeStyleConfig = get(theme, \"components.\" + themeKey);\n  var styleConfig = styleConfigProp || themeStyleConfig;\n  var mergedProps = mergeWith({\n    theme,\n    colorMode\n  }, (_styleConfig$defaultP = styleConfig == null ? void 0 : styleConfig.defaultProps) != null ? _styleConfig$defaultP : {}, filterUndefined(omit(rest, [\"children\"])));\n  /**\n   * Store the computed styles in a `ref` to avoid unneeded re-computation\n   */\n\n  var stylesRef = useRef({});\n\n  if (styleConfig) {\n    var _styleConfig$baseStyl, _styleConfig$variants, _styleConfig$variants2, _styleConfig$sizes$me, _styleConfig$sizes, _opts;\n\n    var baseStyles = runIfFn((_styleConfig$baseStyl = styleConfig.baseStyle) != null ? _styleConfig$baseStyl : {}, mergedProps);\n    var variants = runIfFn((_styleConfig$variants = (_styleConfig$variants2 = styleConfig.variants) == null ? void 0 : _styleConfig$variants2[mergedProps.variant]) != null ? _styleConfig$variants : {}, mergedProps);\n    var sizes = runIfFn((_styleConfig$sizes$me = (_styleConfig$sizes = styleConfig.sizes) == null ? void 0 : _styleConfig$sizes[mergedProps.size]) != null ? _styleConfig$sizes$me : {}, mergedProps);\n    var styles = mergeWith({}, baseStyles, sizes, variants);\n\n    if ((_opts = opts) != null && _opts.isMultiPart && styleConfig.parts) {\n      styleConfig.parts.forEach(part => {\n        var _styles$part;\n\n        styles[part] = (_styles$part = styles[part]) != null ? _styles$part : {};\n      });\n    }\n\n    var isStyleEqual = isEqual(stylesRef.current, styles);\n\n    if (!isStyleEqual) {\n      stylesRef.current = styles;\n    }\n  }\n\n  return stylesRef.current;\n}\nexport function useMultiStyleConfig(themeKey, props) {\n  return useStyleConfig(themeKey, props, {\n    isMultiPart: true\n  });\n}\n//# sourceMappingURL=use-style-config.js.map","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n  // START: fast-deep-equal es6/index.js 3.1.1\n  if (a === b) return true;\n\n  if (a && b && typeof a == 'object' && typeof b == 'object') {\n    if (a.constructor !== b.constructor) return false;\n\n    var length, i, keys;\n    if (Array.isArray(a)) {\n      length = a.length;\n      if (length != b.length) return false;\n      for (i = length; i-- !== 0;)\n        if (!equal(a[i], b[i])) return false;\n      return true;\n    }\n\n    // START: Modifications:\n    // 1. Extra `has<Type> &&` helpers in initial condition allow es6 code\n    //    to co-exist with es5.\n    // 2. Replace `for of` with es5 compliant iteration using `for`.\n    //    Basically, take:\n    //\n    //    ```js\n    //    for (i of a.entries())\n    //      if (!b.has(i[0])) return false;\n    //    ```\n    //\n    //    ... and convert to:\n    //\n    //    ```js\n    //    it = a.entries();\n    //    while (!(i = it.next()).done)\n    //      if (!b.has(i.value[0])) return false;\n    //    ```\n    //\n    //    **Note**: `i` access switches to `i.value`.\n    var it;\n    if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n      if (a.size !== b.size) return false;\n      it = a.entries();\n      while (!(i = it.next()).done)\n        if (!b.has(i.value[0])) return false;\n      it = a.entries();\n      while (!(i = it.next()).done)\n        if (!equal(i.value[1], b.get(i.value[0]))) return false;\n      return true;\n    }\n\n    if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n      if (a.size !== b.size) return false;\n      it = a.entries();\n      while (!(i = it.next()).done)\n        if (!b.has(i.value[0])) return false;\n      return true;\n    }\n    // END: Modifications\n\n    if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n      length = a.length;\n      if (length != b.length) return false;\n      for (i = length; i-- !== 0;)\n        if (a[i] !== b[i]) return false;\n      return true;\n    }\n\n    if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n    if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n    if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n    keys = Object.keys(a);\n    length = keys.length;\n    if (length !== Object.keys(b).length) return false;\n\n    for (i = length; i-- !== 0;)\n      if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n    // END: fast-deep-equal\n\n    // START: react-fast-compare\n    // custom handling for DOM elements\n    if (hasElementType && a instanceof Element) return false;\n\n    // custom handling for React/Preact\n    for (i = length; i-- !== 0;) {\n      if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n        // React-specific: avoid traversing React elements' _owner\n        // Preact-specific: avoid traversing Preact elements' __v and __o\n        //    __v = $_original / $_vnode\n        //    __o = $_owner\n        // These properties contain circular references and are not needed when\n        // comparing the actual elements (and not their owners)\n        // .$$typeof and ._store on just reasonable markers of elements\n\n        continue;\n      }\n\n      // all other properties should be traversed as usual\n      if (!equal(a[keys[i]], b[keys[i]])) return false;\n    }\n    // END: react-fast-compare\n\n    // START: fast-deep-equal\n    return true;\n  }\n\n  return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n  try {\n    return equal(a, b);\n  } catch (error) {\n    if (((error.message || '').match(/stack|recursion/i))) {\n      // warn on circular references, don't crash\n      // browsers give this different errors name and messages:\n      // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n      // firefox: \"InternalError\", too much recursion\"\n      // edge: \"Error\", \"Out of stack space\"\n      console.warn('react-fast-compare cannot handle circular refs');\n      return false;\n    }\n    // some other error. we should definitely know about these\n    throw error;\n  }\n};\n","import { runIfFn } from \"@chakra-ui/utils\";\n/* -----------------------------------------------------------------------------\n * Style Configuration definition for components\n * -----------------------------------------------------------------------------*/\n\nexport { runIfFn };\nexport function mode(light, dark) {\n  return props => props.colorMode === \"dark\" ? dark : light;\n}\nexport function orient(options) {\n  var {\n    orientation,\n    vertical,\n    horizontal\n  } = options;\n  if (!orientation) return {};\n  return orientation === \"vertical\" ? vertical : horizontal;\n}\n//# sourceMappingURL=component.js.map","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\nimport { warn } from \"@chakra-ui/utils\";\nexport var createBreakpoints = config => {\n  warn({\n    condition: true,\n    message: [\"[chakra-ui]: createBreakpoints(...) will be deprecated pretty soon\", \"simply pass the breakpoints as an object. Remove the createBreakpoint(..) call\"].join(\"\")\n  });\n  return _extends({\n    base: \"0em\"\n  }, config);\n};\n//# sourceMappingURL=create-breakpoints.js.map","function _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 * Used to define the anatomy/parts of a component in a way that provides\n * a consistent API for `className`, css selector and `theming`.\n */\nexport class Anatomy {\n  constructor(name) {\n    var _this = this;\n\n    this.name = name;\n\n    _defineProperty(this, \"map\", {});\n\n    _defineProperty(this, \"called\", false);\n\n    _defineProperty(this, \"assert\", () => {\n      if (!this.called) {\n        this.called = true;\n        return;\n      }\n\n      throw new Error(\"[anatomy] .part(...) should only be called once. Did you mean to use .extend(...) ?\");\n    });\n\n    _defineProperty(this, \"parts\", function () {\n      _this.assert();\n\n      for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n        values[_key] = arguments[_key];\n      }\n\n      for (var part of values) {\n        ;\n        _this.map[part] = _this.toPart(part);\n      }\n\n      return _this;\n    });\n\n    _defineProperty(this, \"extend\", function () {\n      for (var _len2 = arguments.length, parts = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        parts[_key2] = arguments[_key2];\n      }\n\n      for (var part of parts) {\n        if (part in _this.map) continue;\n        _this.map[part] = _this.toPart(part);\n      }\n\n      return _this;\n    });\n\n    _defineProperty(this, \"toPart\", part => {\n      var el = [\"container\", \"root\"].includes(part != null ? part : \"\") ? [this.name] : [this.name, part];\n      var attr = el.filter(Boolean).join(\"__\");\n      var className = \"chakra-\" + attr;\n      var partObj = {\n        className,\n        selector: \".\" + className,\n        toString: () => part\n      };\n      return partObj;\n    });\n\n    _defineProperty(this, \"__type\", {});\n  }\n  /**\n   * Prevents user from calling `.parts` multiple times.\n   * It should only be called once.\n   */\n\n\n  /**\n   * Get all selectors for the component anatomy\n   */\n  get selectors() {\n    var value = Object.fromEntries(Object.entries(this.map).map((_ref) => {\n      var [key, part] = _ref;\n      return [key, part.selector];\n    }));\n    return value;\n  }\n  /**\n   * Get all classNames for the component anatomy\n   */\n\n\n  get classNames() {\n    var value = Object.fromEntries(Object.entries(this.map).map((_ref2) => {\n      var [key, part] = _ref2;\n      return [key, part.className];\n    }));\n    return value;\n  }\n  /**\n   * Get all parts as array of string\n   */\n\n\n  get keys() {\n    return Object.keys(this.map);\n  }\n  /**\n   * Creates the part object for the given part\n   */\n\n\n}\nexport function anatomy(name) {\n  return new Anatomy(name);\n}\n//# sourceMappingURL=anatomy.js.map","import { anatomy } from \"@chakra-ui/theme-tools\";\n/**\n * **Accordion anatomy**\n * - Item: the accordion item contains the button and panel\n * - Button: the button is the trigger for the panel\n * - Panel: the panel is the content of the accordion item\n * - Icon: the expanded/collapsed icon\n */\n\nexport var accordionAnatomy = anatomy(\"accordion\").parts(\"container\", \"item\", \"button\", \"panel\").extend(\"icon\");\n/**\n * **Alert anatomy**\n * - Title: the alert's title\n * - Description: the alert's description\n * - Icon: the alert's icon\n */\n\nexport var alertAnatomy = anatomy(\"alert\").parts(\"title\", \"description\", \"container\").extend(\"icon\");\n/**\n * **Avatar anatomy**\n * - Container: the container for the avatar\n * - Label: the avatar initials text\n * - Excess Label: the label or text that represents excess avatar count.\n * Typically used in avatar groups.\n * - Group: the container for the avatar group\n */\n\nexport var avatarAnatomy = anatomy(\"avatar\").parts(\"label\", \"badge\", \"container\").extend(\"excessLabel\", \"group\");\n/**\n * **Breadcrumb anatomy**\n * - Item: the container for a breadcrumb item\n * - Link: the element that represents the breadcrumb link\n * - Container: the container for the breadcrumb items\n * - Separator: the separator between breadcrumb items\n */\n\nexport var breadcrumbAnatomy = anatomy(\"breadcrumb\").parts(\"link\", \"item\").extend(\"separator\");\nexport var buttonAnatomy = anatomy(\"button\").parts();\nexport var checkboxAnatomy = anatomy(\"checkbox\").parts(\"control\", \"icon\").extend(\"label\");\nexport var circularProgressAnatomy = anatomy(\"progress\").parts(\"track\", \"filledTrack\").extend(\"label\");\nexport var drawerAnatomy = anatomy(\"drawer\").parts(\"overlay\", \"dialogContainer\", \"dialog\").extend(\"header\", \"closeButton\", \"body\", \"footer\");\nexport var editableAnatomy = anatomy(\"editable\").parts(\"preview\", \"input\");\nexport var formAnatomy = anatomy(\"form\").parts(\"container\", \"requiredIndicator\", \"helperText\");\nexport var formErrorAnatomy = anatomy(\"formError\").parts(\"text\", \"icon\");\nexport var inputAnatomy = anatomy(\"input\").parts(\"addon\", \"field\", \"element\");\nexport var listAnatomy = anatomy(\"list\").parts(\"container\", \"item\", \"icon\");\nexport var menuAnatomy = anatomy(\"menu\").parts(\"button\", \"list\", \"item\").extend(\"groupTitle\", \"command\", \"divider\");\nexport var modalAnatomy = anatomy(\"modal\").parts(\"overlay\", \"dialogContainer\", \"dialog\").extend(\"header\", \"closeButton\", \"body\", \"footer\");\nexport var numberInputAnatomy = anatomy(\"numberinput\").parts(\"root\", \"field\", \"stepperGroup\", \"stepper\");\nexport var pinInputAnatomy = anatomy(\"pininput\").parts(\"field\");\nexport var popoverAnatomy = anatomy(\"popover\").parts(\"content\", \"header\", \"body\", \"footer\").extend(\"popper\", \"arrow\");\nexport var progressAnatomy = anatomy(\"progress\").parts(\"label\", \"filledTrack\", \"track\");\nexport var radioAnatomy = anatomy(\"radio\").parts(\"container\", \"control\", \"label\");\nexport var selectAnatomy = anatomy(\"select\").parts(\"field\", \"icon\");\nexport var sliderAnatomy = anatomy(\"slider\").parts(\"container\", \"track\", \"thumb\", \"filledTrack\");\nexport var statAnatomy = anatomy(\"stat\").parts(\"container\", \"label\", \"helpText\", \"number\", \"icon\");\nexport var switchAnatomy = anatomy(\"switch\").parts(\"container\", \"track\", \"thumb\");\nexport var tableAnatomy = anatomy(\"table\").parts(\"table\", \"thead\", \"tbody\", \"tr\", \"th\", \"td\", \"tfoot\", \"caption\");\nexport var tabsAnatomy = anatomy(\"tabs\").parts(\"root\", \"tab\", \"tablist\", \"tabpanel\", \"tabpanels\", \"indicator\");\n/**\n * **Tag anatomy**\n * - Container: the container for the tag\n * - Label: the text content of the tag\n * - closeButton: the close button for the tag\n */\n\nexport var tagAnatomy = anatomy(\"tag\").parts(\"container\", \"label\", \"closeButton\");\n//# sourceMappingURL=index.js.map","import { accordionAnatomy as parts } from \"@chakra-ui/anatomy\";\nvar baseStyleContainer = {\n  borderTopWidth: \"1px\",\n  borderColor: \"inherit\",\n  _last: {\n    borderBottomWidth: \"1px\"\n  }\n};\nvar baseStyleButton = {\n  transitionProperty: \"common\",\n  transitionDuration: \"normal\",\n  fontSize: \"1rem\",\n  _focus: {\n    boxShadow: \"outline\"\n  },\n  _hover: {\n    bg: \"blackAlpha.50\"\n  },\n  _disabled: {\n    opacity: 0.4,\n    cursor: \"not-allowed\"\n  },\n  px: 4,\n  py: 2\n};\nvar baseStylePanel = {\n  pt: 2,\n  px: 4,\n  pb: 5\n};\nvar baseStyleIcon = {\n  fontSize: \"1.25em\"\n};\nvar baseStyle = {\n  container: baseStyleContainer,\n  button: baseStyleButton,\n  panel: baseStylePanel,\n  icon: baseStyleIcon\n};\nexport default {\n  parts: parts.keys,\n  baseStyle\n};\n//# sourceMappingURL=accordion.js.map","import Color from \"tinycolor2\";\nimport { memoizedGet as get, isEmptyObject } from \"@chakra-ui/utils\";\n/**\n * Get the color raw value from theme\n * @param theme - the theme object\n * @param color - the color path (\"green.200\")\n * @param fallback - the fallback color\n */\n\nexport var getColor = (theme, color, fallback) => {\n  var hex = get(theme, \"colors.\" + color, color);\n  var isValid = Color(hex).isValid();\n  return isValid ? hex : fallback;\n};\n/**\n * Determines if the tone of given color is \"light\" or \"dark\"\n * @param color - the color in hex, rgb, or hsl\n */\n\nexport var tone = color => theme => {\n  var hex = getColor(theme, color);\n  var isDark = Color(hex).isDark();\n  return isDark ? \"dark\" : \"light\";\n};\n/**\n * Determines if a color tone is \"dark\"\n * @param color - the color in hex, rgb, or hsl\n */\n\nexport var isDark = color => theme => tone(color)(theme) === \"dark\";\n/**\n * Determines if a color tone is \"light\"\n * @param color - the color in hex, rgb, or hsl\n */\n\nexport var isLight = color => theme => tone(color)(theme) === \"light\";\n/**\n * Make a color transparent\n * @param color - the color in hex, rgb, or hsl\n * @param opacity - the amount of opacity the color should have (0-1)\n */\n\nexport var transparentize = (color, opacity) => theme => {\n  var raw = getColor(theme, color);\n  return Color(raw).setAlpha(opacity).toRgbString();\n};\n/**\n * Add white to a color\n * @param color - the color in hex, rgb, or hsl\n * @param amount - the amount white to add (0-100)\n */\n\nexport var whiten = (color, amount) => theme => {\n  var raw = getColor(theme, color);\n  return Color.mix(raw, \"#fff\", amount).toHexString();\n};\n/**\n * Add black to a color\n * @param color - the color in hex, rgb, or hsl\n * @param amount - the amount black to add (0-100)\n */\n\nexport var blacken = (color, amount) => theme => {\n  var raw = getColor(theme, color);\n  return Color.mix(raw, \"#000\", amount).toHexString();\n};\n/**\n * Darken a specified color\n * @param color - the color in hex, rgb, or hsl\n * @param amount - the amount to darken (0-100)\n */\n\nexport var darken = (color, amount) => theme => {\n  var raw = getColor(theme, color);\n  return Color(raw).darken(amount).toHexString();\n};\n/**\n * Lighten a specified color\n * @param color - the color in hex, rgb, or hsl\n * @param amount - the amount to lighten (0-100)\n */\n\nexport var lighten = (color, amount) => theme => Color(getColor(theme, color)).lighten(amount).toHexString();\n/**\n * Checks the contract ratio of between 2 colors,\n * based on the Web Content Accessibility Guidelines (Version 2.0).\n *\n * @param fg - the foreground or text color\n * @param bg - the background color\n */\n\nexport var contrast = (fg, bg) => theme => Color.readability(getColor(theme, bg), getColor(theme, fg));\n/**\n * Checks if a color meets the Web Content Accessibility\n * Guidelines (Version 2.0) for constract ratio.\n *\n * @param fg - the foreground or text color\n * @param bg - the background color\n */\n\nexport var isAccessible = (textColor, bgColor, options) => theme => Color.isReadable(getColor(theme, bgColor), getColor(theme, textColor), options);\nexport var complementary = color => theme => Color(getColor(theme, color)).complement().toHexString();\nexport function generateStripe(size, color) {\n  if (size === void 0) {\n    size = \"1rem\";\n  }\n\n  if (color === void 0) {\n    color = \"rgba(255, 255, 255, 0.15)\";\n  }\n\n  return {\n    backgroundImage: \"linear-gradient(\\n    45deg,\\n    \" + color + \" 25%,\\n    transparent 25%,\\n    transparent 50%,\\n    \" + color + \" 50%,\\n    \" + color + \" 75%,\\n    transparent 75%,\\n    transparent\\n  )\",\n    backgroundSize: size + \" \" + size\n  };\n}\nexport function randomColor(opts) {\n  var fallback = Color.random().toHexString();\n\n  if (!opts || isEmptyObject(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 randomColorFromString(str) {\n  var hash = 0;\n  if (str.length === 0) return hash.toString();\n\n  for (var i = 0; i < str.length; i += 1) {\n    hash = str.charCodeAt(i) + ((hash << 5) - hash);\n    hash = hash & hash;\n  }\n\n  var color = \"#\";\n\n  for (var j = 0; j < 3; j += 1) {\n    var value = hash >> j * 8 & 255;\n    color += (\"00\" + value.toString(16)).substr(-2);\n  }\n\n  return color;\n}\n\nfunction randomColorFromList(str, list) {\n  var index = 0;\n  if (str.length === 0) return list[0];\n\n  for (var i = 0; i < str.length; i += 1) {\n    index = str.charCodeAt(i) + ((index << 5) - index);\n    index = index & index;\n  }\n\n  index = (index % list.length + list.length) % list.length;\n  return list[index];\n}\n\nfunction randomFromList(list) {\n  return list[Math.floor(Math.random() * list.length)];\n}\n//# sourceMappingURL=color.js.map","import { alertAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport { getColor, mode, transparentize } from \"@chakra-ui/theme-tools\";\nvar baseStyle = {\n  container: {\n    px: 4,\n    py: 3\n  },\n  title: {\n    fontWeight: \"bold\",\n    lineHeight: 6,\n    marginEnd: 2\n  },\n  description: {\n    lineHeight: 6\n  },\n  icon: {\n    flexShrink: 0,\n    marginEnd: 3,\n    w: 5,\n    h: 6\n  }\n};\n\nfunction getBg(props) {\n  var {\n    theme,\n    colorScheme: c\n  } = props;\n  var lightBg = getColor(theme, c + \".100\", c);\n  var darkBg = transparentize(c + \".200\", 0.16)(theme);\n  return mode(lightBg, darkBg)(props);\n}\n\nvar variantSubtle = props => {\n  var {\n    colorScheme: c\n  } = props;\n  return {\n    container: {\n      bg: getBg(props)\n    },\n    icon: {\n      color: mode(c + \".500\", c + \".200\")(props)\n    }\n  };\n};\n\nvar variantLeftAccent = props => {\n  var {\n    colorScheme: c\n  } = props;\n  return {\n    container: {\n      paddingStart: 3,\n      borderStartWidth: \"4px\",\n      borderStartColor: mode(c + \".500\", c + \".200\")(props),\n      bg: getBg(props)\n    },\n    icon: {\n      color: mode(c + \".500\", c + \".200\")(props)\n    }\n  };\n};\n\nvar variantTopAccent = props => {\n  var {\n    colorScheme: c\n  } = props;\n  return {\n    container: {\n      pt: 2,\n      borderTopWidth: \"4px\",\n      borderTopColor: mode(c + \".500\", c + \".200\")(props),\n      bg: getBg(props)\n    },\n    icon: {\n      color: mode(c + \".500\", c + \".200\")(props)\n    }\n  };\n};\n\nvar variantSolid = props => {\n  var {\n    colorScheme: c\n  } = props;\n  return {\n    container: {\n      bg: mode(c + \".500\", c + \".200\")(props),\n      color: mode(\"white\", \"gray.900\")(props)\n    }\n  };\n};\n\nvar variants = {\n  subtle: variantSubtle,\n  \"left-accent\": variantLeftAccent,\n  \"top-accent\": variantTopAccent,\n  solid: variantSolid\n};\nvar defaultProps = {\n  variant: \"subtle\",\n  colorScheme: \"blue\"\n};\nexport default {\n  parts: parts.keys,\n  baseStyle,\n  variants,\n  defaultProps\n};\n//# sourceMappingURL=alert.js.map","import { avatarAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport { isDark, mode, randomColor } from \"@chakra-ui/theme-tools\";\nimport themeSizes from \"../foundations/sizes\";\n\nvar baseStyleBadge = props => {\n  return {\n    transform: \"translate(25%, 25%)\",\n    borderRadius: \"full\",\n    border: \"0.2em solid\",\n    borderColor: mode(\"white\", \"gray.800\")(props)\n  };\n};\n\nvar baseStyleExcessLabel = props => {\n  return {\n    bg: mode(\"gray.200\", \"whiteAlpha.400\")(props)\n  };\n};\n\nvar baseStyleContainer = props => {\n  var {\n    name,\n    theme\n  } = props;\n  var bg = name ? randomColor({\n    string: name\n  }) : \"gray.400\";\n  var isBgDark = isDark(bg)(theme);\n  var color = \"white\";\n  if (!isBgDark) color = \"gray.800\";\n  var borderColor = mode(\"white\", \"gray.800\")(props);\n  return {\n    bg,\n    color,\n    borderColor,\n    verticalAlign: \"top\"\n  };\n};\n\nvar baseStyle = props => ({\n  badge: baseStyleBadge(props),\n  excessLabel: baseStyleExcessLabel(props),\n  container: baseStyleContainer(props)\n});\n\nfunction getSize(size) {\n  var themeSize = themeSizes[size];\n  return {\n    container: {\n      width: size,\n      height: size,\n      fontSize: \"calc(\" + (themeSize != null ? themeSize : size) + \" / 2.5)\"\n    },\n    excessLabel: {\n      width: size,\n      height: size\n    },\n    label: {\n      fontSize: \"calc(\" + (themeSize != null ? themeSize : size) + \" / 2.5)\",\n      lineHeight: size !== \"100%\" ? themeSize != null ? themeSize : size : undefined\n    }\n  };\n}\n\nvar sizes = {\n  \"2xs\": getSize(\"4\"),\n  xs: getSize(\"6\"),\n  sm: getSize(\"8\"),\n  md: getSize(\"12\"),\n  lg: getSize(\"16\"),\n  xl: getSize(\"24\"),\n  \"2xl\": getSize(\"32\"),\n  full: getSize(\"100%\")\n};\nvar defaultProps = {\n  size: \"md\"\n};\nexport default {\n  parts: parts.keys,\n  baseStyle,\n  sizes,\n  defaultProps\n};\n//# sourceMappingURL=avatar.js.map","import { getColor, mode, transparentize } from \"@chakra-ui/theme-tools\";\nvar baseStyle = {\n  px: 1,\n  textTransform: \"uppercase\",\n  fontSize: \"xs\",\n  borderRadius: \"sm\",\n  fontWeight: \"bold\"\n};\n\nvar variantSolid = props => {\n  var {\n    colorScheme: c,\n    theme\n  } = props;\n  var dark = transparentize(c + \".500\", 0.6)(theme);\n  return {\n    bg: mode(c + \".500\", dark)(props),\n    color: mode(\"white\", \"whiteAlpha.800\")(props)\n  };\n};\n\nvar variantSubtle = props => {\n  var {\n    colorScheme: c,\n    theme\n  } = props;\n  var darkBg = transparentize(c + \".200\", 0.16)(theme);\n  return {\n    bg: mode(c + \".100\", darkBg)(props),\n    color: mode(c + \".800\", c + \".200\")(props)\n  };\n};\n\nvar variantOutline = props => {\n  var {\n    colorScheme: c,\n    theme\n  } = props;\n  var darkColor = transparentize(c + \".200\", 0.8)(theme);\n  var lightColor = getColor(theme, c + \".500\");\n  var color = mode(lightColor, darkColor)(props);\n  return {\n    color,\n    boxShadow: \"inset 0 0 0px 1px \" + color\n  };\n};\n\nvar variants = {\n  solid: variantSolid,\n  subtle: variantSubtle,\n  outline: variantOutline\n};\nvar defaultProps = {\n  variant: \"subtle\",\n  colorScheme: \"gray\"\n};\nexport default {\n  baseStyle,\n  variants,\n  defaultProps\n};\n//# sourceMappingURL=badge.js.map","import { breadcrumbAnatomy as parts } from \"@chakra-ui/anatomy\";\nvar baseStyleLink = {\n  transitionProperty: \"common\",\n  transitionDuration: \"fast\",\n  transitionTimingFunction: \"ease-out\",\n  cursor: \"pointer\",\n  textDecoration: \"none\",\n  outline: \"none\",\n  color: \"inherit\",\n  _hover: {\n    textDecoration: \"underline\"\n  },\n  _focus: {\n    boxShadow: \"outline\"\n  }\n};\nvar baseStyle = {\n  link: baseStyleLink\n};\nexport default {\n  parts: parts.keys,\n  baseStyle\n};\n//# sourceMappingURL=breadcrumb.js.map","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\nimport { mode, transparentize } from \"@chakra-ui/theme-tools\";\nvar baseStyle = {\n  lineHeight: \"1.2\",\n  borderRadius: \"md\",\n  fontWeight: \"semibold\",\n  transitionProperty: \"common\",\n  transitionDuration: \"normal\",\n  _focus: {\n    boxShadow: \"outline\"\n  },\n  _disabled: {\n    opacity: 0.4,\n    cursor: \"not-allowed\",\n    boxShadow: \"none\"\n  },\n  _hover: {\n    _disabled: {\n      bg: \"initial\"\n    }\n  }\n};\n\nvar variantGhost = props => {\n  var {\n    colorScheme: c,\n    theme\n  } = props;\n\n  if (c === \"gray\") {\n    return {\n      color: mode(\"inherit\", \"whiteAlpha.900\")(props),\n      _hover: {\n        bg: mode(\"gray.100\", \"whiteAlpha.200\")(props)\n      },\n      _active: {\n        bg: mode(\"gray.200\", \"whiteAlpha.300\")(props)\n      }\n    };\n  }\n\n  var darkHoverBg = transparentize(c + \".200\", 0.12)(theme);\n  var darkActiveBg = transparentize(c + \".200\", 0.24)(theme);\n  return {\n    color: mode(c + \".600\", c + \".200\")(props),\n    bg: \"transparent\",\n    _hover: {\n      bg: mode(c + \".50\", darkHoverBg)(props)\n    },\n    _active: {\n      bg: mode(c + \".100\", darkActiveBg)(props)\n    }\n  };\n};\n\nvar variantOutline = props => {\n  var {\n    colorScheme: c\n  } = props;\n  var borderColor = mode(\"gray.200\", \"whiteAlpha.300\")(props);\n  return _extends({\n    border: \"1px solid\",\n    borderColor: c === \"gray\" ? borderColor : \"currentColor\"\n  }, variantGhost(props));\n};\n\n/** Accessible color overrides for less accessible colors. */\nvar accessibleColorMap = {\n  yellow: {\n    bg: \"yellow.400\",\n    color: \"black\",\n    hoverBg: \"yellow.500\",\n    activeBg: \"yellow.600\"\n  },\n  cyan: {\n    bg: \"cyan.400\",\n    color: \"black\",\n    hoverBg: \"cyan.500\",\n    activeBg: \"cyan.600\"\n  }\n};\n\nvar variantSolid = props => {\n  var _accessibleColorMap$c;\n\n  var {\n    colorScheme: c\n  } = props;\n\n  if (c === \"gray\") {\n    var _bg = mode(\"gray.100\", \"whiteAlpha.200\")(props);\n\n    return {\n      bg: _bg,\n      _hover: {\n        bg: mode(\"gray.200\", \"whiteAlpha.300\")(props),\n        _disabled: {\n          bg: _bg\n        }\n      },\n      _active: {\n        bg: mode(\"gray.300\", \"whiteAlpha.400\")(props)\n      }\n    };\n  }\n\n  var {\n    bg = c + \".500\",\n    color = \"white\",\n    hoverBg = c + \".600\",\n    activeBg = c + \".700\"\n  } = (_accessibleColorMap$c = accessibleColorMap[c]) != null ? _accessibleColorMap$c : {};\n  var background = mode(bg, c + \".200\")(props);\n  return {\n    bg: background,\n    color: mode(color, \"gray.800\")(props),\n    _hover: {\n      bg: mode(hoverBg, c + \".300\")(props),\n      _disabled: {\n        bg: background\n      }\n    },\n    _active: {\n      bg: mode(activeBg, c + \".400\")(props)\n    }\n  };\n};\n\nvar variantLink = props => {\n  var {\n    colorScheme: c\n  } = props;\n  return {\n    padding: 0,\n    height: \"auto\",\n    lineHeight: \"normal\",\n    verticalAlign: \"baseline\",\n    color: mode(c + \".500\", c + \".200\")(props),\n    _hover: {\n      textDecoration: \"underline\",\n      _disabled: {\n        textDecoration: \"none\"\n      }\n    },\n    _active: {\n      color: mode(c + \".700\", c + \".500\")(props)\n    }\n  };\n};\n\nvar variantUnstyled = {\n  bg: \"none\",\n  color: \"inherit\",\n  display: \"inline\",\n  lineHeight: \"inherit\",\n  m: 0,\n  p: 0\n};\nvar variants = {\n  ghost: variantGhost,\n  outline: variantOutline,\n  solid: variantSolid,\n  link: variantLink,\n  unstyled: variantUnstyled\n};\nvar sizes = {\n  lg: {\n    h: 12,\n    minW: 12,\n    fontSize: \"lg\",\n    px: 6\n  },\n  md: {\n    h: 10,\n    minW: 10,\n    fontSize: \"md\",\n    px: 4\n  },\n  sm: {\n    h: 8,\n    minW: 8,\n    fontSize: \"sm\",\n    px: 3\n  },\n  xs: {\n    h: 6,\n    minW: 6,\n    fontSize: \"xs\",\n    px: 2\n  }\n};\nvar defaultProps = {\n  variant: \"solid\",\n  size: \"md\",\n  colorScheme: \"gray\"\n};\nexport default {\n  baseStyle,\n  variants,\n  sizes,\n  defaultProps\n};\n//# sourceMappingURL=button.js.map","import { checkboxAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport { mode } from \"@chakra-ui/theme-tools\";\n\nvar baseStyleControl = props => {\n  var {\n    colorScheme: c\n  } = props;\n  return {\n    w: \"100%\",\n    transitionProperty: \"box-shadow\",\n    transitionDuration: \"normal\",\n    border: \"2px solid\",\n    borderRadius: \"sm\",\n    borderColor: \"inherit\",\n    color: \"white\",\n    _checked: {\n      bg: mode(c + \".500\", c + \".200\")(props),\n      borderColor: mode(c + \".500\", c + \".200\")(props),\n      color: mode(\"white\", \"gray.900\")(props),\n      _hover: {\n        bg: mode(c + \".600\", c + \".300\")(props),\n        borderColor: mode(c + \".600\", c + \".300\")(props)\n      },\n      _disabled: {\n        borderColor: mode(\"gray.200\", \"transparent\")(props),\n        bg: mode(\"gray.200\", \"whiteAlpha.300\")(props),\n        color: mode(\"gray.500\", \"whiteAlpha.500\")(props)\n      }\n    },\n    _indeterminate: {\n      bg: mode(c + \".500\", c + \".200\")(props),\n      borderColor: mode(c + \".500\", c + \".200\")(props),\n      color: mode(\"white\", \"gray.900\")(props)\n    },\n    _disabled: {\n      bg: mode(\"gray.100\", \"whiteAlpha.100\")(props),\n      borderColor: mode(\"gray.100\", \"transparent\")(props)\n    },\n    _focus: {\n      boxShadow: \"outline\"\n    },\n    _invalid: {\n      borderColor: mode(\"red.500\", \"red.300\")(props)\n    }\n  };\n};\n\nvar baseStyleLabel = {\n  userSelect: \"none\",\n  _disabled: {\n    opacity: 0.4\n  }\n};\nvar baseStyleIcon = {\n  transitionProperty: \"transform\",\n  transitionDuration: \"normal\"\n};\n\nvar baseStyle = props => ({\n  icon: baseStyleIcon,\n  control: baseStyleControl(props),\n  label: baseStyleLabel\n});\n\nvar sizes = {\n  sm: {\n    control: {\n      h: 3,\n      w: 3\n    },\n    label: {\n      fontSize: \"sm\"\n    },\n    icon: {\n      fontSize: \"0.45rem\"\n    }\n  },\n  md: {\n    control: {\n      w: 4,\n      h: 4\n    },\n    label: {\n      fontSize: \"md\"\n    },\n    icon: {\n      fontSize: \"0.625rem\"\n    }\n  },\n  lg: {\n    control: {\n      w: 5,\n      h: 5\n    },\n    label: {\n      fontSize: \"lg\"\n    },\n    icon: {\n      fontSize: \"0.625rem\"\n    }\n  }\n};\nvar defaultProps = {\n  size: \"md\",\n  colorScheme: \"blue\"\n};\nexport default {\n  parts: parts.keys,\n  baseStyle,\n  sizes,\n  defaultProps\n};\n//# sourceMappingURL=checkbox.js.map","export function isDecimal(value) {\n  return !Number.isInteger(parseFloat(value.toString()));\n}\n\nfunction replaceWhiteSpace(value, replaceValue) {\n  if (replaceValue === void 0) {\n    replaceValue = \"-\";\n  }\n\n  return value.replace(/\\s+/g, replaceValue);\n}\n\nfunction escape(value) {\n  var valueStr = replaceWhiteSpace(value.toString());\n  if (valueStr.includes(\"\\\\.\")) return value;\n  return isDecimal(value) ? valueStr.replace(\".\", \"\\\\.\") : value;\n}\n\nexport function addPrefix(value, prefix) {\n  if (prefix === void 0) {\n    prefix = \"\";\n  }\n\n  return [prefix, escape(value)].filter(Boolean).join(\"-\");\n}\nexport function toVarRef(name, fallback) {\n  return \"var(\" + escape(name) + (fallback ? \", \" + fallback : \"\") + \")\";\n}\nexport function toVar(value, prefix) {\n  if (prefix === void 0) {\n    prefix = \"\";\n  }\n\n  return \"--\" + addPrefix(value, prefix);\n}\nexport function cssVar(name, options) {\n  var cssVariable = toVar(name, options == null ? void 0 : options.prefix);\n  return {\n    variable: cssVariable,\n    reference: toVarRef(cssVariable, getFallback(options == null ? void 0 : options.fallback))\n  };\n}\n\nfunction getFallback(fallback) {\n  if (typeof fallback === \"string\") return fallback;\n  return fallback == null ? void 0 : fallback.reference;\n}\n//# sourceMappingURL=css-var.js.map","import { cssVar, mode } from \"@chakra-ui/theme-tools\";\nvar $size = cssVar(\"close-button-size\");\n\nvar baseStyle = props => {\n  var hoverBg = mode(\"blackAlpha.100\", \"whiteAlpha.100\")(props);\n  var activeBg = mode(\"blackAlpha.200\", \"whiteAlpha.200\")(props);\n  return {\n    w: [$size.reference],\n    h: [$size.reference],\n    borderRadius: \"md\",\n    transitionProperty: \"common\",\n    transitionDuration: \"normal\",\n    _disabled: {\n      opacity: 0.4,\n      cursor: \"not-allowed\",\n      boxShadow: \"none\"\n    },\n    _hover: {\n      bg: hoverBg\n    },\n    _active: {\n      bg: activeBg\n    },\n    _focus: {\n      boxShadow: \"outline\"\n    }\n  };\n};\n\nvar sizes = {\n  lg: {\n    [$size.variable]: \"40px\",\n    fontSize: \"16px\"\n  },\n  md: {\n    [$size.variable]: \"32px\",\n    fontSize: \"12px\"\n  },\n  sm: {\n    [$size.variable]: \"24px\",\n    fontSize: \"10px\"\n  }\n};\nvar defaultProps = {\n  size: \"md\"\n};\nexport default {\n  baseStyle,\n  sizes,\n  defaultProps\n};\n//# sourceMappingURL=close-button.js.map","import Badge from \"./badge\";\nvar {\n  variants,\n  defaultProps\n} = Badge;\nvar baseStyle = {\n  fontFamily: \"mono\",\n  fontSize: \"sm\",\n  px: \"0.2em\",\n  borderRadius: \"sm\"\n};\nexport default {\n  baseStyle,\n  variants,\n  defaultProps\n};\n//# sourceMappingURL=code.js.map","var baseStyle = {\n  w: \"100%\",\n  mx: \"auto\",\n  maxW: \"60ch\",\n  px: \"1rem\"\n};\nexport default {\n  baseStyle\n};\n//# sourceMappingURL=container.js.map","var baseStyle = {\n  opacity: 0.6,\n  borderColor: \"inherit\"\n};\nvar variantSolid = {\n  borderStyle: \"solid\"\n};\nvar variantDashed = {\n  borderStyle: \"dashed\"\n};\nvar variants = {\n  solid: variantSolid,\n  dashed: variantDashed\n};\nvar defaultProps = {\n  variant: \"solid\"\n};\nexport default {\n  baseStyle,\n  variants,\n  defaultProps\n};\n//# sourceMappingURL=divider.js.map","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\nimport { drawerAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport { mode } from \"@chakra-ui/theme-tools\";\n/**\n * Since the `maxWidth` prop references theme.sizes internally,\n * we can leverage that to size our modals.\n */\n\nfunction getSize(value) {\n  if (value === \"full\") {\n    return {\n      dialog: {\n        maxW: \"100vw\",\n        h: \"100vh\"\n      }\n    };\n  }\n\n  return {\n    dialog: {\n      maxW: value\n    }\n  };\n}\n\nvar baseStyleOverlay = {\n  bg: \"blackAlpha.600\",\n  zIndex: \"overlay\"\n};\nvar baseStyleDialogContainer = {\n  display: \"flex\",\n  zIndex: \"modal\",\n  justifyContent: \"center\"\n};\n\nvar baseStyleDialog = props => {\n  var {\n    isFullHeight\n  } = props;\n  return _extends({}, isFullHeight && {\n    height: \"100vh\"\n  }, {\n    zIndex: \"modal\",\n    maxH: \"100vh\",\n    bg: mode(\"white\", \"gray.700\")(props),\n    color: \"inherit\",\n    boxShadow: mode(\"lg\", \"dark-lg\")(props)\n  });\n};\n\nvar baseStyleHeader = {\n  px: 6,\n  py: 4,\n  fontSize: \"xl\",\n  fontWeight: \"semibold\"\n};\nvar baseStyleCloseButton = {\n  position: \"absolute\",\n  top: 2,\n  insetEnd: 3\n};\nvar baseStyleBody = {\n  px: 6,\n  py: 2,\n  flex: 1,\n  overflow: \"auto\"\n};\nvar baseStyleFooter = {\n  px: 6,\n  py: 4\n};\n\nvar baseStyle = props => ({\n  overlay: baseStyleOverlay,\n  dialogContainer: baseStyleDialogContainer,\n  dialog: baseStyleDialog(props),\n  header: baseStyleHeader,\n  closeButton: baseStyleCloseButton,\n  body: baseStyleBody,\n  footer: baseStyleFooter\n});\n\nvar sizes = {\n  xs: getSize(\"xs\"),\n  sm: getSize(\"md\"),\n  md: getSize(\"lg\"),\n  lg: getSize(\"2xl\"),\n  xl: getSize(\"4xl\"),\n  full: getSize(\"full\")\n};\nvar defaultProps = {\n  size: \"xs\"\n};\nexport default {\n  parts: parts.keys,\n  baseStyle,\n  sizes,\n  defaultProps\n};\n//# sourceMappingURL=drawer.js.map","import { editableAnatomy as parts } from \"@chakra-ui/anatomy\";\nvar baseStylePreview = {\n  borderRadius: \"md\",\n  py: \"3px\",\n  transitionProperty: \"common\",\n  transitionDuration: \"normal\"\n};\nvar baseStyleInput = {\n  borderRadius: \"md\",\n  py: \"3px\",\n  transitionProperty: \"common\",\n  transitionDuration: \"normal\",\n  width: \"full\",\n  _focus: {\n    boxShadow: \"outline\"\n  },\n  _placeholder: {\n    opacity: 0.6\n  }\n};\nvar baseStyle = {\n  preview: baseStylePreview,\n  input: baseStyleInput\n};\nexport default {\n  parts: parts.keys,\n  baseStyle\n};\n//# sourceMappingURL=editable.js.map","import { formAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport { mode } from \"@chakra-ui/theme-tools\";\n\nvar baseStyleRequiredIndicator = props => {\n  return {\n    marginStart: 1,\n    color: mode(\"red.500\", \"red.300\")(props)\n  };\n};\n\nvar baseStyleHelperText = props => {\n  return {\n    mt: 2,\n    color: mode(\"gray.500\", \"whiteAlpha.600\")(props),\n    lineHeight: \"normal\",\n    fontSize: \"sm\"\n  };\n};\n\nvar baseStyle = props => ({\n  container: {\n    width: \"100%\",\n    position: \"relative\"\n  },\n  requiredIndicator: baseStyleRequiredIndicator(props),\n  helperText: baseStyleHelperText(props)\n});\n\nexport default {\n  parts: parts.keys,\n  baseStyle\n};\n//# sourceMappingURL=form.js.map","var baseStyle = {\n  fontSize: \"md\",\n  marginEnd: 3,\n  mb: 2,\n  fontWeight: \"medium\",\n  transitionProperty: \"common\",\n  transitionDuration: \"normal\",\n  opacity: 1,\n  _disabled: {\n    opacity: 0.4\n  }\n};\nexport default {\n  baseStyle\n};\n//# sourceMappingURL=form-label.js.map","var baseStyle = {\n  fontFamily: \"heading\",\n  fontWeight: \"bold\"\n};\nvar sizes = {\n  \"4xl\": {\n    fontSize: [\"6xl\", null, \"7xl\"],\n    lineHeight: 1\n  },\n  \"3xl\": {\n    fontSize: [\"5xl\", null, \"6xl\"],\n    lineHeight: 1\n  },\n  \"2xl\": {\n    fontSize: [\"4xl\", null, \"5xl\"],\n    lineHeight: [1.2, null, 1]\n  },\n  xl: {\n    fontSize: [\"3xl\", null, \"4xl\"],\n    lineHeight: [1.33, null, 1.2]\n  },\n  lg: {\n    fontSize: [\"2xl\", null, \"3xl\"],\n    lineHeight: [1.33, null, 1.2]\n  },\n  md: {\n    fontSize: \"xl\",\n    lineHeight: 1.2\n  },\n  sm: {\n    fontSize: \"md\",\n    lineHeight: 1.2\n  },\n  xs: {\n    fontSize: \"sm\",\n    lineHeight: 1.2\n  }\n};\nvar defaultProps = {\n  size: \"xl\"\n};\nexport default {\n  baseStyle,\n  sizes,\n  defaultProps\n};\n//# sourceMappingURL=heading.js.map","import { inputAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport { getColor, mode } from \"@chakra-ui/theme-tools\";\nvar baseStyle = {\n  field: {\n    width: \"100%\",\n    minWidth: 0,\n    outline: 0,\n    position: \"relative\",\n    appearance: \"none\",\n    transitionProperty: \"common\",\n    transitionDuration: \"normal\"\n  }\n};\nvar size = {\n  lg: {\n    fontSize: \"lg\",\n    px: 4,\n    h: 12,\n    borderRadius: \"md\"\n  },\n  md: {\n    fontSize: \"md\",\n    px: 4,\n    h: 10,\n    borderRadius: \"md\"\n  },\n  sm: {\n    fontSize: \"sm\",\n    px: 3,\n    h: 8,\n    borderRadius: \"sm\"\n  },\n  xs: {\n    fontSize: \"xs\",\n    px: 2,\n    h: 6,\n    borderRadius: \"sm\"\n  }\n};\nvar sizes = {\n  lg: {\n    field: size.lg,\n    addon: size.lg\n  },\n  md: {\n    field: size.md,\n    addon: size.md\n  },\n  sm: {\n    field: size.sm,\n    addon: size.sm\n  },\n  xs: {\n    field: size.xs,\n    addon: size.xs\n  }\n};\n\nfunction getDefaults(props) {\n  var {\n    focusBorderColor: fc,\n    errorBorderColor: ec\n  } = props;\n  return {\n    focusBorderColor: fc || mode(\"blue.500\", \"blue.300\")(props),\n    errorBorderColor: ec || mode(\"red.500\", \"red.300\")(props)\n  };\n}\n\nvar variantOutline = props => {\n  var {\n    theme\n  } = props;\n  var {\n    focusBorderColor: fc,\n    errorBorderColor: ec\n  } = getDefaults(props);\n  return {\n    field: {\n      border: \"1px solid\",\n      borderColor: \"inherit\",\n      bg: \"inherit\",\n      _hover: {\n        borderColor: mode(\"gray.300\", \"whiteAlpha.400\")(props)\n      },\n      _readOnly: {\n        boxShadow: \"none !important\",\n        userSelect: \"all\"\n      },\n      _disabled: {\n        opacity: 0.4,\n        cursor: \"not-allowed\"\n      },\n      _invalid: {\n        borderColor: getColor(theme, ec),\n        boxShadow: \"0 0 0 1px \" + getColor(theme, ec)\n      },\n      _focus: {\n        zIndex: 1,\n        borderColor: getColor(theme, fc),\n        boxShadow: \"0 0 0 1px \" + getColor(theme, fc)\n      }\n    },\n    addon: {\n      border: \"1px solid\",\n      borderColor: mode(\"inherit\", \"whiteAlpha.50\")(props),\n      bg: mode(\"gray.100\", \"whiteAlpha.300\")(props)\n    }\n  };\n};\n\nvar variantFilled = props => {\n  var {\n    theme\n  } = props;\n  var {\n    focusBorderColor: fc,\n    errorBorderColor: ec\n  } = getDefaults(props);\n  return {\n    field: {\n      border: \"2px solid\",\n      borderColor: \"transparent\",\n      bg: mode(\"gray.100\", \"whiteAlpha.50\")(props),\n      _hover: {\n        bg: mode(\"gray.200\", \"whiteAlpha.100\")(props)\n      },\n      _readOnly: {\n        boxShadow: \"none !important\",\n        userSelect: \"all\"\n      },\n      _disabled: {\n        opacity: 0.4,\n        cursor: \"not-allowed\"\n      },\n      _invalid: {\n        borderColor: getColor(theme, ec)\n      },\n      _focus: {\n        bg: \"transparent\",\n        borderColor: getColor(theme, fc)\n      }\n    },\n    addon: {\n      border: \"2px solid\",\n      borderColor: \"transparent\",\n      bg: mode(\"gray.100\", \"whiteAlpha.50\")(props)\n    }\n  };\n};\n\nvar variantFlushed = props => {\n  var {\n    theme\n  } = props;\n  var {\n    focusBorderColor: fc,\n    errorBorderColor: ec\n  } = getDefaults(props);\n  return {\n    field: {\n      borderBottom: \"1px solid\",\n      borderColor: \"inherit\",\n      borderRadius: 0,\n      px: 0,\n      bg: \"transparent\",\n      _readOnly: {\n        boxShadow: \"none !important\",\n        userSelect: \"all\"\n      },\n      _invalid: {\n        borderColor: getColor(theme, ec),\n        boxShadow: \"0px 1px 0px 0px \" + getColor(theme, ec)\n      },\n      _focus: {\n        borderColor: getColor(theme, fc),\n        boxShadow: \"0px 1px 0px 0px \" + getColor(theme, fc)\n      }\n    },\n    addon: {\n      borderBottom: \"2px solid\",\n      borderColor: \"inherit\",\n      borderRadius: 0,\n      px: 0,\n      bg: \"transparent\"\n    }\n  };\n};\n\nvar variantUnstyled = {\n  field: {\n    bg: \"transparent\",\n    px: 0,\n    height: \"auto\"\n  },\n  addon: {\n    bg: \"transparent\",\n    px: 0,\n    height: \"auto\"\n  }\n};\nvar variants = {\n  outline: variantOutline,\n  filled: variantFilled,\n  flushed: variantFlushed,\n  unstyled: variantUnstyled\n};\nvar defaultProps = {\n  size: \"md\",\n  variant: \"outline\"\n};\nexport default {\n  parts: parts.keys,\n  baseStyle,\n  sizes,\n  variants,\n  defaultProps\n};\n//# sourceMappingURL=input.js.map","import { mode } from \"@chakra-ui/theme-tools\";\n\nvar baseStyle = props => {\n  return {\n    bg: mode(\"gray.100\", \"whiteAlpha\")(props),\n    borderRadius: \"md\",\n    borderWidth: \"1px\",\n    borderBottomWidth: \"3px\",\n    fontSize: \"0.8em\",\n    fontWeight: \"bold\",\n    lineHeight: \"normal\",\n    px: \"0.4em\",\n    whiteSpace: \"nowrap\"\n  };\n};\n\nexport default {\n  baseStyle\n};\n//# sourceMappingURL=kbd.js.map","var baseStyle = {\n  transitionProperty: \"common\",\n  transitionDuration: \"fast\",\n  transitionTimingFunction: \"ease-out\",\n  cursor: \"pointer\",\n  textDecoration: \"none\",\n  outline: \"none\",\n  color: \"inherit\",\n  _hover: {\n    textDecoration: \"underline\"\n  },\n  _focus: {\n    boxShadow: \"outline\"\n  }\n};\nexport default {\n  baseStyle\n};\n//# sourceMappingURL=link.js.map","import { listAnatomy as parts } from \"@chakra-ui/anatomy\";\nvar baseStyleIcon = {\n  marginEnd: \"0.5rem\",\n  display: \"inline\",\n  verticalAlign: \"text-bottom\"\n};\nvar baseStyle = {\n  container: {},\n  item: {},\n  icon: baseStyleIcon\n};\nexport default {\n  parts: parts.keys,\n  baseStyle\n};\n//# sourceMappingURL=list.js.map","import { menuAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport { mode } from \"@chakra-ui/theme-tools\";\n\nvar baseStyleList = props => {\n  return {\n    bg: mode(\"#fff\", \"gray.700\")(props),\n    boxShadow: mode(\"sm\", \"dark-lg\")(props),\n    color: \"inherit\",\n    minW: \"3xs\",\n    py: \"2\",\n    zIndex: 1,\n    borderRadius: \"md\",\n    borderWidth: \"1px\"\n  };\n};\n\nvar baseStyleItem = props => {\n  return {\n    py: \"0.4rem\",\n    px: \"0.8rem\",\n    transitionProperty: \"background\",\n    transitionDuration: \"ultra-fast\",\n    transitionTimingFunction: \"ease-in\",\n    _focus: {\n      bg: mode(\"gray.100\", \"whiteAlpha.100\")(props)\n    },\n    _active: {\n      bg: mode(\"gray.200\", \"whiteAlpha.200\")(props)\n    },\n    _expanded: {\n      bg: mode(\"gray.100\", \"whiteAlpha.100\")(props)\n    },\n    _disabled: {\n      opacity: 0.4,\n      cursor: \"not-allowed\"\n    }\n  };\n};\n\nvar baseStyleGroupTitle = {\n  mx: 4,\n  my: 2,\n  fontWeight: \"semibold\",\n  fontSize: \"sm\"\n};\nvar baseStyleCommand = {\n  opacity: 0.6\n};\nvar baseStyleDivider = {\n  border: 0,\n  borderBottom: \"1px solid\",\n  borderColor: \"inherit\",\n  my: \"0.5rem\",\n  opacity: 0.6\n};\nvar baseStyleButton = {\n  transitionProperty: \"common\",\n  transitionDuration: \"normal\"\n};\n\nvar baseStyle = props => ({\n  button: baseStyleButton,\n  list: baseStyleList(props),\n  item: baseStyleItem(props),\n  groupTitle: baseStyleGroupTitle,\n  command: baseStyleCommand,\n  divider: baseStyleDivider\n});\n\nexport default {\n  parts: parts.keys,\n  baseStyle\n};\n//# sourceMappingURL=menu.js.map","import { modalAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport { mode } from \"@chakra-ui/theme-tools\";\nvar baseStyleOverlay = {\n  bg: \"blackAlpha.600\",\n  zIndex: \"modal\"\n};\n\nvar baseStyleDialogContainer = props => {\n  var {\n    isCentered,\n    scrollBehavior\n  } = props;\n  return {\n    display: \"flex\",\n    zIndex: \"modal\",\n    justifyContent: \"center\",\n    alignItems: isCentered ? \"center\" : \"flex-start\",\n    overflow: scrollBehavior === \"inside\" ? \"hidden\" : \"auto\"\n  };\n};\n\nvar baseStyleDialog = props => {\n  var {\n    scrollBehavior\n  } = props;\n  return {\n    borderRadius: \"md\",\n    bg: mode(\"white\", \"gray.700\")(props),\n    color: \"inherit\",\n    my: \"3.75rem\",\n    zIndex: \"modal\",\n    maxH: scrollBehavior === \"inside\" ? \"calc(100% - 7.5rem)\" : undefined,\n    boxShadow: mode(\"lg\", \"dark-lg\")(props)\n  };\n};\n\nvar baseStyleHeader = {\n  px: 6,\n  py: 4,\n  fontSize: \"xl\",\n  fontWeight: \"semibold\"\n};\nvar baseStyleCloseButton = {\n  position: \"absolute\",\n  top: 2,\n  insetEnd: 3\n};\n\nvar baseStyleBody = props => {\n  var {\n    scrollBehavior\n  } = props;\n  return {\n    px: 6,\n    py: 2,\n    flex: 1,\n    overflow: scrollBehavior === \"inside\" ? \"auto\" : undefined\n  };\n};\n\nvar baseStyleFooter = {\n  px: 6,\n  py: 4\n};\n\nvar baseStyle = props => ({\n  overlay: baseStyleOverlay,\n  dialogContainer: baseStyleDialogContainer(props),\n  dialog: baseStyleDialog(props),\n  header: baseStyleHeader,\n  closeButton: baseStyleCloseButton,\n  body: baseStyleBody(props),\n  footer: baseStyleFooter\n});\n/**\n * Since the `maxWidth` prop references theme.sizes internally,\n * we can leverage that to size our modals.\n */\n\n\nfunction getSize(value) {\n  if (value === \"full\") {\n    return {\n      dialog: {\n        maxW: \"100vw\",\n        minH: \"100vh\",\n        my: 0\n      }\n    };\n  }\n\n  return {\n    dialog: {\n      maxW: value\n    }\n  };\n}\n\nvar sizes = {\n  xs: getSize(\"xs\"),\n  sm: getSize(\"sm\"),\n  md: getSize(\"md\"),\n  lg: getSize(\"lg\"),\n  xl: getSize(\"xl\"),\n  \"2xl\": getSize(\"2xl\"),\n  \"3xl\": getSize(\"3xl\"),\n  \"4xl\": getSize(\"4xl\"),\n  \"5xl\": getSize(\"5xl\"),\n  \"6xl\": getSize(\"6xl\"),\n  full: getSize(\"full\")\n};\nvar defaultProps = {\n  size: \"md\"\n};\nexport default {\n  parts: parts.keys,\n  baseStyle,\n  sizes,\n  defaultProps\n};\n//# sourceMappingURL=modal.js.map","import { isObject } from \"@chakra-ui/utils\";\n\nfunction toRef(operand) {\n  if (isObject(operand) && operand.reference) {\n    return operand.reference;\n  }\n\n  return String(operand);\n}\n\nvar toExpr = function toExpr(operator) {\n  for (var _len = arguments.length, operands = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n    operands[_key - 1] = arguments[_key];\n  }\n\n  return operands.map(toRef).join(\" \" + operator + \" \").replace(/calc/g, \"\");\n};\n\nvar _add = function add() {\n  for (var _len2 = arguments.length, operands = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n    operands[_key2] = arguments[_key2];\n  }\n\n  return \"calc(\" + toExpr(\"+\", ...operands) + \")\";\n};\n\nvar _subtract = function subtract() {\n  for (var _len3 = arguments.length, operands = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n    operands[_key3] = arguments[_key3];\n  }\n\n  return \"calc(\" + toExpr(\"-\", ...operands) + \")\";\n};\n\nvar _multiply = function multiply() {\n  for (var _len4 = arguments.length, operands = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n    operands[_key4] = arguments[_key4];\n  }\n\n  return \"calc(\" + toExpr(\"*\", ...operands) + \")\";\n};\n\nvar _divide = function divide() {\n  for (var _len5 = arguments.length, operands = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n    operands[_key5] = arguments[_key5];\n  }\n\n  return \"calc(\" + toExpr(\"/\", ...operands) + \")\";\n};\n\nvar _negate = x => {\n  var value = toRef(x);\n\n  if (value != null && !Number.isNaN(parseFloat(value))) {\n    return String(value).startsWith(\"-\") ? String(value).slice(1) : \"-\" + value;\n  }\n\n  return _multiply(value, -1);\n};\n\nexport var calc = Object.assign(x => ({\n  add: function add() {\n    for (var _len6 = arguments.length, operands = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n      operands[_key6] = arguments[_key6];\n    }\n\n    return calc(_add(x, ...operands));\n  },\n  subtract: function subtract() {\n    for (var _len7 = arguments.length, operands = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n      operands[_key7] = arguments[_key7];\n    }\n\n    return calc(_subtract(x, ...operands));\n  },\n  multiply: function multiply() {\n    for (var _len8 = arguments.length, operands = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n      operands[_key8] = arguments[_key8];\n    }\n\n    return calc(_multiply(x, ...operands));\n  },\n  divide: function divide() {\n    for (var _len9 = arguments.length, operands = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n      operands[_key9] = arguments[_key9];\n    }\n\n    return calc(_divide(x, ...operands));\n  },\n  negate: () => calc(_negate(x)),\n  toString: () => x.toString()\n}), {\n  add: _add,\n  subtract: _subtract,\n  multiply: _multiply,\n  divide: _divide,\n  negate: _negate\n});\n//# sourceMappingURL=css-calc.js.map","var _Input$baseStyle$fiel, _Input$baseStyle;\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\nimport { numberInputAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport { calc, cssVar, mode } from \"@chakra-ui/theme-tools\";\nimport typography from \"../foundations/typography\";\nimport Input from \"./input\";\nvar {\n  variants,\n  defaultProps\n} = Input;\nvar $stepperWidth = cssVar(\"number-input-stepper-width\");\nvar $inputPadding = cssVar(\"number-input-input-padding\");\nvar inputPaddingValue = calc($stepperWidth).add(\"0.5rem\").toString();\nvar baseStyleRoot = {\n  [$stepperWidth.variable]: \"24px\",\n  [$inputPadding.variable]: inputPaddingValue\n};\nvar baseStyleField = (_Input$baseStyle$fiel = (_Input$baseStyle = Input.baseStyle) == null ? void 0 : _Input$baseStyle.field) != null ? _Input$baseStyle$fiel : {};\nvar baseStyleStepperGroup = {\n  width: [$stepperWidth.reference]\n};\n\nvar baseStyleStepper = props => {\n  return {\n    borderStart: \"1px solid\",\n    borderStartColor: mode(\"inherit\", \"whiteAlpha.300\")(props),\n    color: mode(\"inherit\", \"whiteAlpha.800\")(props),\n    _active: {\n      bg: mode(\"gray.200\", \"whiteAlpha.300\")(props)\n    },\n    _disabled: {\n      opacity: 0.4,\n      cursor: \"not-allowed\"\n    }\n  };\n};\n\nvar baseStyle = props => ({\n  root: baseStyleRoot,\n  field: baseStyleField,\n  stepperGroup: baseStyleStepperGroup,\n  stepper: baseStyleStepper(props)\n});\n\nfunction getSize(size) {\n  var _sizeStyle$field$font, _sizeStyle$field;\n\n  var sizeStyle = Input.sizes[size];\n  var radius = {\n    lg: \"md\",\n    md: \"md\",\n    sm: \"sm\",\n    xs: \"sm\"\n  };\n\n  var _fontSize = (_sizeStyle$field$font = (_sizeStyle$field = sizeStyle.field) == null ? void 0 : _sizeStyle$field.fontSize) != null ? _sizeStyle$field$font : \"md\";\n\n  var fontSize = typography.fontSizes[_fontSize.toString()];\n\n  return {\n    field: _extends({}, sizeStyle.field, {\n      paddingInlineEnd: $inputPadding.reference,\n      verticalAlign: \"top\"\n    }),\n    stepper: {\n      fontSize: calc(fontSize).multiply(0.75).toString(),\n      _first: {\n        borderTopEndRadius: radius[size]\n      },\n      _last: {\n        borderBottomEndRadius: radius[size],\n        mt: \"-1px\",\n        borderTopWidth: 1\n      }\n    }\n  };\n}\n\nvar sizes = {\n  xs: getSize(\"xs\"),\n  sm: getSize(\"sm\"),\n  md: getSize(\"md\"),\n  lg: getSize(\"lg\")\n};\nexport default {\n  parts: parts.keys,\n  baseStyle,\n  sizes,\n  variants,\n  defaultProps\n};\n//# sourceMappingURL=number-input.js.map","var _Input$variants$unsty;\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\nimport Input from \"./input\";\n\nvar baseStyle = _extends({}, Input.baseStyle.field, {\n  textAlign: \"center\"\n});\n\nvar sizes = {\n  lg: {\n    fontSize: \"lg\",\n    w: 12,\n    h: 12,\n    borderRadius: \"md\"\n  },\n  md: {\n    fontSize: \"md\",\n    w: 10,\n    h: 10,\n    borderRadius: \"md\"\n  },\n  sm: {\n    fontSize: \"sm\",\n    w: 8,\n    h: 8,\n    borderRadius: \"sm\"\n  },\n  xs: {\n    fontSize: \"xs\",\n    w: 6,\n    h: 6,\n    borderRadius: \"sm\"\n  }\n};\nvar variants = {\n  outline: props => {\n    var _Input$variants$outli;\n\n    return (_Input$variants$outli = Input.variants.outline(props).field) != null ? _Input$variants$outli : {};\n  },\n  flushed: props => {\n    var _Input$variants$flush;\n\n    return (_Input$variants$flush = Input.variants.flushed(props).field) != null ? _Input$variants$flush : {};\n  },\n  filled: props => {\n    var _Input$variants$fille;\n\n    return (_Input$variants$fille = Input.variants.filled(props).field) != null ? _Input$variants$fille : {};\n  },\n  unstyled: (_Input$variants$unsty = Input.variants.unstyled.field) != null ? _Input$variants$unsty : {}\n};\nvar defaultProps = Input.defaultProps;\nexport default {\n  baseStyle,\n  sizes,\n  variants,\n  defaultProps\n};\n//# sourceMappingURL=pin-input.js.map","import { popoverAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport { cssVar, mode } from \"@chakra-ui/theme-tools\";\nvar $popperBg = cssVar(\"popper-bg\");\nvar $arrowBg = cssVar(\"popper-arrow-bg\");\nvar $arrowShadowColor = cssVar(\"popper-arrow-shadow-color\");\nvar baseStylePopper = {\n  zIndex: 10\n};\n\nvar baseStyleContent = props => {\n  var bg = mode(\"white\", \"gray.700\")(props);\n  var shadowColor = mode(\"gray.200\", \"whiteAlpha.300\")(props);\n  return {\n    [$popperBg.variable]: \"colors.\" + bg,\n    bg: $popperBg.reference,\n    [$arrowBg.variable]: $popperBg.reference,\n    [$arrowShadowColor.variable]: \"colors.\" + shadowColor,\n    width: \"xs\",\n    border: \"1px solid\",\n    borderColor: \"inherit\",\n    borderRadius: \"md\",\n    boxShadow: \"sm\",\n    zIndex: \"inherit\",\n    _focus: {\n      outline: 0,\n      boxShadow: \"outline\"\n    }\n  };\n};\n\nvar baseStyleHeader = {\n  px: 3,\n  py: 2,\n  borderBottomWidth: \"1px\"\n};\nvar baseStyleBody = {\n  px: 3,\n  py: 2\n};\nvar baseStyleFooter = {\n  px: 3,\n  py: 2,\n  borderTopWidth: \"1px\"\n};\n\nvar baseStyle = props => ({\n  popper: baseStylePopper,\n  content: baseStyleContent(props),\n  header: baseStyleHeader,\n  body: baseStyleBody,\n  footer: baseStyleFooter,\n  arrow: {}\n});\n\nexport default {\n  parts: parts.keys,\n  baseStyle\n};\n//# sourceMappingURL=popover.js.map","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\nimport { progressAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport { generateStripe, getColor, mode } from \"@chakra-ui/theme-tools\";\n\nfunction filledStyle(props) {\n  var {\n    colorScheme: c,\n    theme: t,\n    isIndeterminate,\n    hasStripe\n  } = props;\n  var stripeStyle = mode(generateStripe(), generateStripe(\"1rem\", \"rgba(0,0,0,0.1)\"))(props);\n  var bgColor = mode(c + \".500\", c + \".200\")(props);\n  var gradient = \"linear-gradient(\\n    to right,\\n    transparent 0%,\\n    \" + getColor(t, bgColor) + \" 50%,\\n    transparent 100%\\n  )\";\n  var addStripe = !isIndeterminate && hasStripe;\n  return _extends({}, addStripe && stripeStyle, isIndeterminate ? {\n    bgImage: gradient\n  } : {\n    bgColor\n  });\n}\n\nvar baseStyleLabel = {\n  lineHeight: \"1\",\n  fontSize: \"0.25em\",\n  fontWeight: \"bold\",\n  color: \"white\"\n};\n\nvar baseStyleTrack = props => {\n  return {\n    bg: mode(\"gray.100\", \"whiteAlpha.300\")(props)\n  };\n};\n\nvar baseStyleFilledTrack = props => {\n  return _extends({\n    transitionProperty: \"common\",\n    transitionDuration: \"slow\"\n  }, filledStyle(props));\n};\n\nvar baseStyle = props => ({\n  label: baseStyleLabel,\n  filledTrack: baseStyleFilledTrack(props),\n  track: baseStyleTrack(props)\n});\n\nvar sizes = {\n  xs: {\n    track: {\n      h: \"0.25rem\"\n    }\n  },\n  sm: {\n    track: {\n      h: \"0.5rem\"\n    }\n  },\n  md: {\n    track: {\n      h: \"0.75rem\"\n    }\n  },\n  lg: {\n    track: {\n      h: \"1rem\"\n    }\n  }\n};\nvar defaultProps = {\n  size: \"md\",\n  colorScheme: \"blue\"\n};\nexport default {\n  parts: parts.keys,\n  sizes,\n  baseStyle,\n  defaultProps\n};\n//# sourceMappingURL=progress.js.map","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\nimport { radioAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport Checkbox from \"./checkbox\";\n\nvar baseStyleControl = props => {\n  var {\n    control = {}\n  } = Checkbox.baseStyle(props);\n  return _extends({}, control, {\n    borderRadius: \"full\",\n    _checked: _extends({}, control[\"_checked\"], {\n      _before: {\n        content: \"\\\"\\\"\",\n        display: \"inline-block\",\n        pos: \"relative\",\n        w: \"50%\",\n        h: \"50%\",\n        borderRadius: \"50%\",\n        bg: \"currentColor\"\n      }\n    })\n  });\n};\n\nvar baseStyle = props => ({\n  label: Checkbox.baseStyle(props).label,\n  control: baseStyleControl(props)\n});\n\nvar sizes = {\n  md: {\n    control: {\n      w: 4,\n      h: 4\n    },\n    label: {\n      fontSize: \"md\"\n    }\n  },\n  lg: {\n    control: {\n      w: 5,\n      h: 5\n    },\n    label: {\n      fontSize: \"lg\"\n    }\n  },\n  sm: {\n    control: {\n      width: 3,\n      height: 3\n    },\n    label: {\n      fontSize: \"sm\"\n    }\n  }\n};\nvar defaultProps = {\n  size: \"md\",\n  colorScheme: \"blue\"\n};\nexport default {\n  parts: parts.keys,\n  baseStyle,\n  sizes,\n  defaultProps\n};\n//# sourceMappingURL=radio.js.map","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\nimport { selectAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport { mode } from \"@chakra-ui/theme-tools\";\nimport Input from \"./input\";\n\nvar baseStyleField = props => {\n  return _extends({}, Input.baseStyle.field, {\n    bg: mode(\"white\", \"gray.700\")(props),\n    appearance: \"none\",\n    paddingBottom: \"1px\",\n    lineHeight: \"normal\",\n    \"> option, > optgroup\": {\n      bg: mode(\"white\", \"gray.700\")(props)\n    }\n  });\n};\n\nvar baseStyleIcon = {\n  width: \"1.5rem\",\n  height: \"100%\",\n  insetEnd: \"0.5rem\",\n  position: \"relative\",\n  color: \"currentColor\",\n  fontSize: \"1.25rem\",\n  _disabled: {\n    opacity: 0.5\n  }\n};\n\nvar baseStyle = props => ({\n  field: baseStyleField(props),\n  icon: baseStyleIcon\n});\n\nvar sizes = _extends({}, Input.sizes, {\n  xs: _extends({}, Input.sizes.xs, {\n    icon: {\n      insetEnd: \"0.25rem\"\n    }\n  })\n});\n\nexport default {\n  parts: parts.keys,\n  baseStyle,\n  sizes,\n  variants: Input.variants,\n  defaultProps: Input.defaultProps\n};\n//# sourceMappingURL=select.js.map","import { keyframes } from \"@chakra-ui/system\";\nimport { getColor, mode } from \"@chakra-ui/theme-tools\";\n\nvar fade = (startColor, endColor) => keyframes({\n  from: {\n    borderColor: startColor,\n    background: startColor\n  },\n  to: {\n    borderColor: endColor,\n    background: endColor\n  }\n});\n\nvar baseStyle = props => {\n  var defaultStartColor = mode(\"gray.100\", \"gray.800\")(props);\n  var defaultEndColor = mode(\"gray.400\", \"gray.600\")(props);\n  var {\n    startColor = defaultStartColor,\n    endColor = defaultEndColor,\n    speed,\n    theme\n  } = props;\n  var start = getColor(theme, startColor);\n  var end = getColor(theme, endColor);\n  return {\n    opacity: 0.7,\n    borderRadius: \"2px\",\n    borderColor: start,\n    background: end,\n    animation: speed + \"s linear infinite alternate \" + fade(start, end)\n  };\n};\n\nexport default {\n  baseStyle\n};\n//# sourceMappingURL=skeleton.js.map","import { mode } from \"@chakra-ui/theme-tools\";\n\nvar baseStyle = props => ({\n  borderRadius: \"md\",\n  fontWeight: \"semibold\",\n  _focus: {\n    boxShadow: \"outline\",\n    padding: \"1rem\",\n    position: \"fixed\",\n    top: \"1.5rem\",\n    insetStart: \"1.5rem\",\n    bg: mode(\"white\", \"gray.700\")(props)\n  }\n});\n\nexport default {\n  baseStyle\n};\n//# sourceMappingURL=skip-link.js.map","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\nimport { sliderAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport { mode, orient } from \"@chakra-ui/theme-tools\";\n\nfunction thumbOrientation(props) {\n  return orient({\n    orientation: props.orientation,\n    vertical: {\n      left: \"50%\",\n      transform: \"translateX(-50%)\",\n      _active: {\n        transform: \"translateX(-50%) scale(1.15)\"\n      }\n    },\n    horizontal: {\n      top: \"50%\",\n      transform: \"translateY(-50%)\",\n      _active: {\n        transform: \"translateY(-50%) scale(1.15)\"\n      }\n    }\n  });\n}\n\nvar baseStyleContainer = props => {\n  var {\n    orientation\n  } = props;\n  return _extends({\n    _disabled: {\n      opacity: 0.6,\n      cursor: \"default\",\n      pointerEvents: \"none\"\n    }\n  }, orient({\n    orientation,\n    vertical: {\n      h: \"100%\"\n    },\n    horizontal: {\n      w: \"100%\"\n    }\n  }));\n};\n\nvar baseStyleTrack = props => {\n  return {\n    borderRadius: \"sm\",\n    bg: mode(\"gray.200\", \"whiteAlpha.200\")(props),\n    _disabled: {\n      bg: mode(\"gray.300\", \"whiteAlpha.300\")(props)\n    }\n  };\n};\n\nvar baseStyleThumb = props => {\n  return _extends({\n    zIndex: 1,\n    borderRadius: \"full\",\n    bg: \"white\",\n    boxShadow: \"base\",\n    border: \"1px solid\",\n    borderColor: \"transparent\",\n    transitionProperty: \"transform\",\n    transitionDuration: \"normal\",\n    _focus: {\n      boxShadow: \"outline\"\n    },\n    _disabled: {\n      bg: \"gray.300\"\n    }\n  }, thumbOrientation(props));\n};\n\nvar baseStyleFilledTrack = props => {\n  var {\n    colorScheme: c\n  } = props;\n  return {\n    bg: mode(c + \".500\", c + \".200\")(props)\n  };\n};\n\nvar baseStyle = props => ({\n  container: baseStyleContainer(props),\n  track: baseStyleTrack(props),\n  thumb: baseStyleThumb(props),\n  filledTrack: baseStyleFilledTrack(props)\n});\n\nvar sizeLg = props => {\n  return {\n    thumb: {\n      w: \"16px\",\n      h: \"16px\"\n    },\n    track: orient({\n      orientation: props.orientation,\n      horizontal: {\n        h: \"4px\"\n      },\n      vertical: {\n        w: \"4px\"\n      }\n    })\n  };\n};\n\nvar sizeMd = props => {\n  return {\n    thumb: {\n      w: \"14px\",\n      h: \"14px\"\n    },\n    track: orient({\n      orientation: props.orientation,\n      horizontal: {\n        h: \"4px\"\n      },\n      vertical: {\n        w: \"4px\"\n      }\n    })\n  };\n};\n\nvar sizeSm = props => {\n  return {\n    thumb: {\n      w: \"10px\",\n      h: \"10px\"\n    },\n    track: orient({\n      orientation: props.orientation,\n      horizontal: {\n        h: \"2px\"\n      },\n      vertical: {\n        w: \"2px\"\n      }\n    })\n  };\n};\n\nvar sizes = {\n  lg: sizeLg,\n  md: sizeMd,\n  sm: sizeSm\n};\nvar defaultProps = {\n  size: \"md\",\n  colorScheme: \"blue\"\n};\nexport default {\n  parts: parts.keys,\n  sizes,\n  baseStyle,\n  defaultProps\n};\n//# sourceMappingURL=slider.js.map","import { cssVar } from \"@chakra-ui/theme-tools\";\nvar $size = cssVar(\"spinner-size\");\nvar baseStyle = {\n  width: [$size.reference],\n  height: [$size.reference]\n};\nvar sizes = {\n  xs: {\n    [$size.variable]: \"0.75rem\"\n  },\n  sm: {\n    [$size.variable]: \"1rem\"\n  },\n  md: {\n    [$size.variable]: \"1.5rem\"\n  },\n  lg: {\n    [$size.variable]: \"2rem\"\n  },\n  xl: {\n    [$size.variable]: \"3rem\"\n  }\n};\nvar defaultProps = {\n  size: \"md\"\n};\nexport default {\n  baseStyle,\n  sizes,\n  defaultProps\n};\n//# sourceMappingURL=spinner.js.map","import { statAnatomy as parts } from \"@chakra-ui/anatomy\";\nvar baseStyleLabel = {\n  fontWeight: \"medium\"\n};\nvar baseStyleHelpText = {\n  opacity: 0.8,\n  marginBottom: 2\n};\nvar baseStyleNumber = {\n  verticalAlign: \"baseline\",\n  fontWeight: \"semibold\"\n};\nvar baseStyleIcon = {\n  marginEnd: 1,\n  w: \"14px\",\n  h: \"14px\",\n  verticalAlign: \"middle\"\n};\nvar baseStyle = {\n  container: {},\n  label: baseStyleLabel,\n  helpText: baseStyleHelpText,\n  number: baseStyleNumber,\n  icon: baseStyleIcon\n};\nvar sizes = {\n  md: {\n    label: {\n      fontSize: \"sm\"\n    },\n    helpText: {\n      fontSize: \"sm\"\n    },\n    number: {\n      fontSize: \"2xl\"\n    }\n  }\n};\nvar defaultProps = {\n  size: \"md\"\n};\nexport default {\n  parts: parts.keys,\n  baseStyle,\n  sizes,\n  defaultProps\n};\n//# sourceMappingURL=stat.js.map","import { switchAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport { calc, cssVar, mode } from \"@chakra-ui/theme-tools\";\nvar $width = cssVar(\"switch-track-width\");\nvar $height = cssVar(\"switch-track-height\");\nvar $diff = cssVar(\"switch-track-diff\");\nvar diffValue = calc.subtract($width, $height);\nvar $translateX = cssVar(\"switch-thumb-x\");\n\nvar baseStyleTrack = props => {\n  var {\n    colorScheme: c\n  } = props;\n  return {\n    borderRadius: \"full\",\n    p: \"2px\",\n    width: [$width.reference],\n    height: [$height.reference],\n    transitionProperty: \"common\",\n    transitionDuration: \"fast\",\n    bg: mode(\"gray.300\", \"whiteAlpha.400\")(props),\n    _focus: {\n      boxShadow: \"outline\"\n    },\n    _disabled: {\n      opacity: 0.4,\n      cursor: \"not-allowed\"\n    },\n    _checked: {\n      bg: mode(c + \".500\", c + \".200\")(props)\n    }\n  };\n};\n\nvar baseStyleThumb = {\n  bg: \"white\",\n  transitionProperty: \"transform\",\n  transitionDuration: \"normal\",\n  borderRadius: \"inherit\",\n  width: [$height.reference],\n  height: [$height.reference],\n  _checked: {\n    transform: \"translateX(\" + $translateX.reference + \")\"\n  }\n};\n\nvar baseStyle = props => ({\n  container: {\n    [$diff.variable]: diffValue,\n    [$translateX.variable]: $diff.reference,\n    _rtl: {\n      [$translateX.variable]: calc($diff).negate().toString()\n    }\n  },\n  track: baseStyleTrack(props),\n  thumb: baseStyleThumb\n});\n\nvar sizes = {\n  sm: {\n    container: {\n      [$width.variable]: \"1.375rem\",\n      [$height.variable]: \"0.75rem\"\n    }\n  },\n  md: {\n    container: {\n      [$width.variable]: \"1.875rem\",\n      [$height.variable]: \"1rem\"\n    }\n  },\n  lg: {\n    container: {\n      [$width.variable]: \"2.875rem\",\n      [$height.variable]: \"1.5rem\"\n    }\n  }\n};\nvar defaultProps = {\n  size: \"md\",\n  colorScheme: \"blue\"\n};\nexport default {\n  parts: parts.keys,\n  baseStyle,\n  sizes,\n  defaultProps\n};\n//# sourceMappingURL=switch.js.map","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\nimport { tableAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport { mode } from \"@chakra-ui/theme-tools\";\nvar baseStyle = {\n  table: {\n    fontVariantNumeric: \"lining-nums tabular-nums\",\n    borderCollapse: \"collapse\",\n    width: \"full\"\n  },\n  th: {\n    fontFamily: \"heading\",\n    fontWeight: \"bold\",\n    textTransform: \"uppercase\",\n    letterSpacing: \"wider\",\n    textAlign: \"start\"\n  },\n  td: {\n    textAlign: \"start\"\n  },\n  caption: {\n    mt: 4,\n    fontFamily: \"heading\",\n    textAlign: \"center\",\n    fontWeight: \"medium\"\n  }\n};\nvar numericStyles = {\n  \"&[data-is-numeric=true]\": {\n    textAlign: \"end\"\n  }\n};\n\nvar variantSimple = props => {\n  var {\n    colorScheme: c\n  } = props;\n  return {\n    th: _extends({\n      color: mode(\"gray.600\", \"gray.400\")(props),\n      borderBottom: \"1px\",\n      borderColor: mode(c + \".100\", c + \".700\")(props)\n    }, numericStyles),\n    td: _extends({\n      borderBottom: \"1px\",\n      borderColor: mode(c + \".100\", c + \".700\")(props)\n    }, numericStyles),\n    caption: {\n      color: mode(\"gray.600\", \"gray.100\")(props)\n    },\n    tfoot: {\n      tr: {\n        \"&:last-of-type\": {\n          th: {\n            borderBottomWidth: 0\n          }\n        }\n      }\n    }\n  };\n};\n\nvar variantStripe = props => {\n  var {\n    colorScheme: c\n  } = props;\n  return {\n    th: _extends({\n      color: mode(\"gray.600\", \"gray.400\")(props),\n      borderBottom: \"1px\",\n      borderColor: mode(c + \".100\", c + \".700\")(props)\n    }, numericStyles),\n    td: _extends({\n      borderBottom: \"1px\",\n      borderColor: mode(c + \".100\", c + \".700\")(props)\n    }, numericStyles),\n    caption: {\n      color: mode(\"gray.600\", \"gray.100\")(props)\n    },\n    tbody: {\n      tr: {\n        \"&:nth-of-type(odd)\": {\n          \"th, td\": {\n            borderBottomWidth: \"1px\",\n            borderColor: mode(c + \".100\", c + \".700\")(props)\n          },\n          td: {\n            background: mode(c + \".100\", c + \".700\")(props)\n          }\n        }\n      }\n    },\n    tfoot: {\n      tr: {\n        \"&:last-of-type\": {\n          th: {\n            borderBottomWidth: 0\n          }\n        }\n      }\n    }\n  };\n};\n\nvar variants = {\n  simple: variantSimple,\n  striped: variantStripe,\n  unstyled: {}\n};\nvar sizes = {\n  sm: {\n    th: {\n      px: \"4\",\n      py: \"1\",\n      lineHeight: \"4\",\n      fontSize: \"xs\"\n    },\n    td: {\n      px: \"4\",\n      py: \"2\",\n      fontSize: \"sm\",\n      lineHeight: \"4\"\n    },\n    caption: {\n      px: \"4\",\n      py: \"2\",\n      fontSize: \"xs\"\n    }\n  },\n  md: {\n    th: {\n      px: \"6\",\n      py: \"3\",\n      lineHeight: \"4\",\n      fontSize: \"xs\"\n    },\n    td: {\n      px: \"6\",\n      py: \"4\",\n      lineHeight: \"5\"\n    },\n    caption: {\n      px: \"6\",\n      py: \"2\",\n      fontSize: \"sm\"\n    }\n  },\n  lg: {\n    th: {\n      px: \"8\",\n      py: \"4\",\n      lineHeight: \"5\",\n      fontSize: \"sm\"\n    },\n    td: {\n      px: \"8\",\n      py: \"5\",\n      lineHeight: \"6\"\n    },\n    caption: {\n      px: \"6\",\n      py: \"2\",\n      fontSize: \"md\"\n    }\n  }\n};\nvar defaultProps = {\n  variant: \"simple\",\n  size: \"md\",\n  colorScheme: \"gray\"\n};\nexport default {\n  parts: parts.keys,\n  baseStyle,\n  variants,\n  sizes,\n  defaultProps\n};\n//# sourceMappingURL=table.js.map","var _Input$variants$unsty, _Input$sizes$xs$field, _Input$sizes$sm$field, _Input$sizes$md$field, _Input$sizes$lg$field;\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\nimport Input from \"./input\";\n\nvar baseStyle = _extends({}, Input.baseStyle.field, {\n  paddingY: \"8px\",\n  minHeight: \"80px\",\n  lineHeight: \"short\",\n  verticalAlign: \"top\"\n});\n\nvar variants = {\n  outline: props => {\n    var _Input$variants$outli;\n\n    return (_Input$variants$outli = Input.variants.outline(props).field) != null ? _Input$variants$outli : {};\n  },\n  flushed: props => {\n    var _Input$variants$flush;\n\n    return (_Input$variants$flush = Input.variants.flushed(props).field) != null ? _Input$variants$flush : {};\n  },\n  filled: props => {\n    var _Input$variants$fille;\n\n    return (_Input$variants$fille = Input.variants.filled(props).field) != null ? _Input$variants$fille : {};\n  },\n  unstyled: (_Input$variants$unsty = Input.variants.unstyled.field) != null ? _Input$variants$unsty : {}\n};\nvar sizes = {\n  xs: (_Input$sizes$xs$field = Input.sizes.xs.field) != null ? _Input$sizes$xs$field : {},\n  sm: (_Input$sizes$sm$field = Input.sizes.sm.field) != null ? _Input$sizes$sm$field : {},\n  md: (_Input$sizes$md$field = Input.sizes.md.field) != null ? _Input$sizes$md$field : {},\n  lg: (_Input$sizes$lg$field = Input.sizes.lg.field) != null ? _Input$sizes$lg$field : {}\n};\nvar defaultProps = {\n  size: \"md\",\n  variant: \"outline\"\n};\nexport default {\n  baseStyle,\n  sizes,\n  variants,\n  defaultProps\n};\n//# sourceMappingURL=textarea.js.map","import { tabsAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport { getColor, mode } from \"@chakra-ui/theme-tools\";\n\nvar baseStyleRoot = props => {\n  var {\n    orientation\n  } = props;\n  return {\n    display: orientation === \"vertical\" ? \"flex\" : \"block\"\n  };\n};\n\nvar baseStyleTab = props => {\n  var {\n    isFitted\n  } = props;\n  return {\n    flex: isFitted ? 1 : undefined,\n    transitionProperty: \"common\",\n    transitionDuration: \"normal\",\n    _focus: {\n      zIndex: 1,\n      boxShadow: \"outline\"\n    }\n  };\n};\n\nvar baseStyleTablist = props => {\n  var {\n    align = \"start\",\n    orientation\n  } = props;\n  var alignments = {\n    end: \"flex-end\",\n    center: \"center\",\n    start: \"flex-start\"\n  };\n  return {\n    justifyContent: alignments[align],\n    flexDirection: orientation === \"vertical\" ? \"column\" : \"row\"\n  };\n};\n\nvar baseStyleTabpanel = {\n  p: 4\n};\n\nvar baseStyle = props => ({\n  root: baseStyleRoot(props),\n  tab: baseStyleTab(props),\n  tablist: baseStyleTablist(props),\n  tabpanel: baseStyleTabpanel\n});\n\nvar sizes = {\n  sm: {\n    tab: {\n      py: 1,\n      px: 4,\n      fontSize: \"sm\"\n    }\n  },\n  md: {\n    tab: {\n      fontSize: \"md\",\n      py: 2,\n      px: 4\n    }\n  },\n  lg: {\n    tab: {\n      fontSize: \"lg\",\n      py: 3,\n      px: 4\n    }\n  }\n};\n\nvar variantLine = props => {\n  var {\n    colorScheme: c,\n    orientation\n  } = props;\n  var isVertical = orientation === \"vertical\";\n  var borderProp = orientation === \"vertical\" ? \"borderStart\" : \"borderBottom\";\n  var marginProp = isVertical ? \"marginStart\" : \"marginBottom\";\n  return {\n    tablist: {\n      [borderProp]: \"2px solid\",\n      borderColor: \"inherit\"\n    },\n    tab: {\n      [borderProp]: \"2px solid\",\n      borderColor: \"transparent\",\n      [marginProp]: \"-2px\",\n      _selected: {\n        color: mode(c + \".600\", c + \".300\")(props),\n        borderColor: \"currentColor\"\n      },\n      _active: {\n        bg: mode(\"gray.200\", \"whiteAlpha.300\")(props)\n      },\n      _disabled: {\n        opacity: 0.4,\n        cursor: \"not-allowed\"\n      }\n    }\n  };\n};\n\nvar variantEnclosed = props => {\n  var {\n    colorScheme: c\n  } = props;\n  return {\n    tab: {\n      borderTopRadius: \"md\",\n      border: \"1px solid\",\n      borderColor: \"transparent\",\n      mb: \"-1px\",\n      _selected: {\n        color: mode(c + \".600\", c + \".300\")(props),\n        borderColor: \"inherit\",\n        borderBottomColor: mode(\"white\", \"gray.800\")(props)\n      }\n    },\n    tablist: {\n      mb: \"-1px\",\n      borderBottom: \"1px solid\",\n      borderColor: \"inherit\"\n    }\n  };\n};\n\nvar variantEnclosedColored = props => {\n  var {\n    colorScheme: c\n  } = props;\n  return {\n    tab: {\n      border: \"1px solid\",\n      borderColor: \"inherit\",\n      bg: mode(\"gray.50\", \"whiteAlpha.50\")(props),\n      mb: \"-1px\",\n      _notLast: {\n        marginEnd: \"-1px\"\n      },\n      _selected: {\n        bg: mode(\"#fff\", \"gray.800\")(props),\n        color: mode(c + \".600\", c + \".300\")(props),\n        borderColor: \"inherit\",\n        borderTopColor: \"currentColor\",\n        borderBottomColor: \"transparent\"\n      }\n    },\n    tablist: {\n      mb: \"-1px\",\n      borderBottom: \"1px solid\",\n      borderColor: \"inherit\"\n    }\n  };\n};\n\nvar variantSoftRounded = props => {\n  var {\n    colorScheme: c,\n    theme\n  } = props;\n  return {\n    tab: {\n      borderRadius: \"full\",\n      fontWeight: \"semibold\",\n      color: \"gray.600\",\n      _selected: {\n        color: getColor(theme, c + \".700\"),\n        bg: getColor(theme, c + \".100\")\n      }\n    }\n  };\n};\n\nvar variantSolidRounded = props => {\n  var {\n    colorScheme: c\n  } = props;\n  return {\n    tab: {\n      borderRadius: \"full\",\n      fontWeight: \"semibold\",\n      color: mode(\"gray.600\", \"inherit\")(props),\n      _selected: {\n        color: mode(\"#fff\", \"gray.800\")(props),\n        bg: mode(c + \".600\", c + \".300\")(props)\n      }\n    }\n  };\n};\n\nvar variantUnstyled = {};\nvar variants = {\n  line: variantLine,\n  enclosed: variantEnclosed,\n  \"enclosed-colored\": variantEnclosedColored,\n  \"soft-rounded\": variantSoftRounded,\n  \"solid-rounded\": variantSolidRounded,\n  unstyled: variantUnstyled\n};\nvar defaultProps = {\n  size: \"md\",\n  variant: \"line\",\n  colorScheme: \"blue\"\n};\nexport default {\n  parts: parts.keys,\n  baseStyle,\n  sizes,\n  variants,\n  defaultProps\n};\n//# sourceMappingURL=tabs.js.map","import { tagAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport Badge from \"./badge\";\nvar baseStyleContainer = {\n  fontWeight: \"medium\",\n  lineHeight: 1.2,\n  outline: 0,\n  _focus: {\n    boxShadow: \"outline\"\n  }\n};\nvar baseStyleLabel = {\n  lineHeight: 1.2,\n  overflow: \"visible\"\n};\nvar baseStyleCloseButton = {\n  fontSize: \"18px\",\n  w: \"1.25rem\",\n  h: \"1.25rem\",\n  transitionProperty: \"common\",\n  transitionDuration: \"normal\",\n  borderRadius: \"full\",\n  marginStart: \"0.375rem\",\n  marginEnd: \"-1\",\n  opacity: 0.5,\n  _disabled: {\n    opacity: 0.4\n  },\n  _focus: {\n    boxShadow: \"outline\",\n    bg: \"rgba(0, 0, 0, 0.14)\"\n  },\n  _hover: {\n    opacity: 0.8\n  },\n  _active: {\n    opacity: 1\n  }\n};\nvar baseStyle = {\n  container: baseStyleContainer,\n  label: baseStyleLabel,\n  closeButton: baseStyleCloseButton\n};\nvar sizes = {\n  sm: {\n    container: {\n      minH: \"1.25rem\",\n      minW: \"1.25rem\",\n      fontSize: \"xs\",\n      px: 2,\n      borderRadius: \"md\"\n    },\n    closeButton: {\n      marginEnd: \"-2px\",\n      marginStart: \"0.35rem\"\n    }\n  },\n  md: {\n    container: {\n      minH: \"1.5rem\",\n      minW: \"1.5rem\",\n      fontSize: \"sm\",\n      borderRadius: \"md\",\n      px: 2\n    }\n  },\n  lg: {\n    container: {\n      minH: 8,\n      minW: 8,\n      fontSize: \"md\",\n      borderRadius: \"md\",\n      px: 3\n    }\n  }\n};\nvar variants = {\n  subtle: props => ({\n    container: Badge.variants.subtle(props)\n  }),\n  solid: props => ({\n    container: Badge.variants.solid(props)\n  }),\n  outline: props => ({\n    container: Badge.variants.outline(props)\n  })\n};\nvar defaultProps = {\n  size: \"md\",\n  variant: \"subtle\",\n  colorScheme: \"gray\"\n};\nexport default {\n  parts: parts.keys,\n  variants,\n  baseStyle,\n  sizes,\n  defaultProps\n};\n//# sourceMappingURL=tag.js.map","import { mode, cssVar } from \"@chakra-ui/theme-tools\";\nvar $bg = cssVar(\"tooltip-bg\");\nvar $arrowBg = cssVar(\"popper-arrow-bg\");\n\nvar baseStyle = props => {\n  var bg = mode(\"gray.700\", \"gray.300\")(props);\n  return {\n    [$bg.variable]: \"colors.\" + bg,\n    px: \"8px\",\n    py: \"2px\",\n    bg: [$bg.reference],\n    [$arrowBg.variable]: [$bg.reference],\n    color: mode(\"whiteAlpha.900\", \"gray.900\")(props),\n    borderRadius: \"sm\",\n    fontWeight: \"medium\",\n    fontSize: \"sm\",\n    boxShadow: \"md\",\n    maxW: \"320px\",\n    zIndex: \"tooltip\"\n  };\n};\n\nexport default {\n  baseStyle\n};\n//# sourceMappingURL=tooltip.js.map","import { formErrorAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport { mode } from \"@chakra-ui/theme-tools\";\n\nvar baseStyleText = props => {\n  return {\n    color: mode(\"red.500\", \"red.300\")(props),\n    mt: 2,\n    fontSize: \"sm\"\n  };\n};\n\nvar baseStyleIcon = props => {\n  return {\n    marginEnd: \"0.5em\",\n    color: mode(\"red.500\", \"red.300\")(props)\n  };\n};\n\nvar baseStyle = props => ({\n  text: baseStyleText(props),\n  icon: baseStyleIcon(props)\n});\n\nexport default {\n  parts: parts.keys,\n  baseStyle\n};\n//# sourceMappingURL=form-error.js.map","import Accordion from \"./accordion\";\nimport Alert from \"./alert\";\nimport Avatar from \"./avatar\";\nimport Badge from \"./badge\";\nimport Breadcrumb from \"./breadcrumb\";\nimport Button from \"./button\";\nimport Checkbox from \"./checkbox\";\nimport CloseButton from \"./close-button\";\nimport Code from \"./code\";\nimport Container from \"./container\";\nimport Divider from \"./divider\";\nimport Drawer from \"./drawer\";\nimport Editable from \"./editable\";\nimport Form from \"./form\";\nimport FormLabel from \"./form-label\";\nimport Heading from \"./heading\";\nimport Input from \"./input\";\nimport Kbd from \"./kbd\";\nimport Link from \"./link\";\nimport List from \"./list\";\nimport Menu from \"./menu\";\nimport Modal from \"./modal\";\nimport NumberInput from \"./number-input\";\nimport PinInput from \"./pin-input\";\nimport Popover from \"./popover\";\nimport Progress from \"./progress\";\nimport Radio from \"./radio\";\nimport Select from \"./select\";\nimport Skeleton from \"./skeleton\";\nimport SkipLink from \"./skip-link\";\nimport Slider from \"./slider\";\nimport Spinner from \"./spinner\";\nimport Stat from \"./stat\";\nimport Switch from \"./switch\";\nimport Table from \"./table\";\nimport Tabs from \"./tabs\";\nimport Tag from \"./tag\";\nimport Textarea from \"./textarea\";\nimport Tooltip from \"./tooltip\";\nimport FormError from \"./form-error\";\nexport default {\n  Accordion,\n  Alert,\n  Avatar,\n  Badge,\n  Breadcrumb,\n  Button,\n  Checkbox,\n  CloseButton,\n  Code,\n  Container,\n  Divider,\n  Drawer,\n  Editable,\n  Form,\n  FormLabel,\n  Heading,\n  Input,\n  Kbd,\n  Link,\n  List,\n  Menu,\n  Modal,\n  NumberInput,\n  PinInput,\n  Popover,\n  Progress,\n  Radio,\n  Select,\n  Skeleton,\n  SkipLink,\n  Slider,\n  Spinner,\n  Stat,\n  Switch,\n  Table,\n  Tabs,\n  Tag,\n  Textarea,\n  Tooltip,\n  FormError\n};\n//# sourceMappingURL=index.js.map","var borders = {\n  none: 0,\n  \"1px\": \"1px solid\",\n  \"2px\": \"2px solid\",\n  \"4px\": \"4px solid\",\n  \"8px\": \"8px solid\"\n};\nexport default borders;\n//# sourceMappingURL=borders.js.map","import { createBreakpoints } from \"@chakra-ui/theme-tools\";\n/**\n * Breakpoints for responsive design\n */\n\nvar breakpoints = createBreakpoints({\n  sm: \"30em\",\n  md: \"48em\",\n  lg: \"62em\",\n  xl: \"80em\",\n  \"2xl\": \"96em\"\n});\nexport default breakpoints;\n//# sourceMappingURL=breakpoints.js.map","/**\n * @deprecated\n * You can derive the Colors type from the DefaultChakraTheme:\n *\n * type Colors = DefaultChakraTheme[\"colors\"]\n */\nvar colors = {\n  transparent: \"transparent\",\n  current: \"currentColor\",\n  black: \"#000000\",\n  white: \"#FFFFFF\",\n  whiteAlpha: {\n    50: \"rgba(255, 255, 255, 0.04)\",\n    100: \"rgba(255, 255, 255, 0.06)\",\n    200: \"rgba(255, 255, 255, 0.08)\",\n    300: \"rgba(255, 255, 255, 0.16)\",\n    400: \"rgba(255, 255, 255, 0.24)\",\n    500: \"rgba(255, 255, 255, 0.36)\",\n    600: \"rgba(255, 255, 255, 0.48)\",\n    700: \"rgba(255, 255, 255, 0.64)\",\n    800: \"rgba(255, 255, 255, 0.80)\",\n    900: \"rgba(255, 255, 255, 0.92)\"\n  },\n  blackAlpha: {\n    50: \"rgba(0, 0, 0, 0.04)\",\n    100: \"rgba(0, 0, 0, 0.06)\",\n    200: \"rgba(0, 0, 0, 0.08)\",\n    300: \"rgba(0, 0, 0, 0.16)\",\n    400: \"rgba(0, 0, 0, 0.24)\",\n    500: \"rgba(0, 0, 0, 0.36)\",\n    600: \"rgba(0, 0, 0, 0.48)\",\n    700: \"rgba(0, 0, 0, 0.64)\",\n    800: \"rgba(0, 0, 0, 0.80)\",\n    900: \"rgba(0, 0, 0, 0.92)\"\n  },\n  gray: {\n    50: \"#F7FAFC\",\n    100: \"#EDF2F7\",\n    200: \"#E2E8F0\",\n    300: \"#CBD5E0\",\n    400: \"#A0AEC0\",\n    500: \"#718096\",\n    600: \"#4A5568\",\n    700: \"#2D3748\",\n    800: \"#1A202C\",\n    900: \"#171923\"\n  },\n  red: {\n    50: \"#FFF5F5\",\n    100: \"#FED7D7\",\n    200: \"#FEB2B2\",\n    300: \"#FC8181\",\n    400: \"#F56565\",\n    500: \"#E53E3E\",\n    600: \"#C53030\",\n    700: \"#9B2C2C\",\n    800: \"#822727\",\n    900: \"#63171B\"\n  },\n  orange: {\n    50: \"#FFFAF0\",\n    100: \"#FEEBC8\",\n    200: \"#FBD38D\",\n    300: \"#F6AD55\",\n    400: \"#ED8936\",\n    500: \"#DD6B20\",\n    600: \"#C05621\",\n    700: \"#9C4221\",\n    800: \"#7B341E\",\n    900: \"#652B19\"\n  },\n  yellow: {\n    50: \"#FFFFF0\",\n    100: \"#FEFCBF\",\n    200: \"#FAF089\",\n    300: \"#F6E05E\",\n    400: \"#ECC94B\",\n    500: \"#D69E2E\",\n    600: \"#B7791F\",\n    700: \"#975A16\",\n    800: \"#744210\",\n    900: \"#5F370E\"\n  },\n  green: {\n    50: \"#F0FFF4\",\n    100: \"#C6F6D5\",\n    200: \"#9AE6B4\",\n    300: \"#68D391\",\n    400: \"#48BB78\",\n    500: \"#38A169\",\n    600: \"#2F855A\",\n    700: \"#276749\",\n    800: \"#22543D\",\n    900: \"#1C4532\"\n  },\n  teal: {\n    50: \"#E6FFFA\",\n    100: \"#B2F5EA\",\n    200: \"#81E6D9\",\n    300: \"#4FD1C5\",\n    400: \"#38B2AC\",\n    500: \"#319795\",\n    600: \"#2C7A7B\",\n    700: \"#285E61\",\n    800: \"#234E52\",\n    900: \"#1D4044\"\n  },\n  blue: {\n    50: \"#ebf8ff\",\n    100: \"#bee3f8\",\n    200: \"#90cdf4\",\n    300: \"#63b3ed\",\n    400: \"#4299e1\",\n    500: \"#3182ce\",\n    600: \"#2b6cb0\",\n    700: \"#2c5282\",\n    800: \"#2a4365\",\n    900: \"#1A365D\"\n  },\n  cyan: {\n    50: \"#EDFDFD\",\n    100: \"#C4F1F9\",\n    200: \"#9DECF9\",\n    300: \"#76E4F7\",\n    400: \"#0BC5EA\",\n    500: \"#00B5D8\",\n    600: \"#00A3C4\",\n    700: \"#0987A0\",\n    800: \"#086F83\",\n    900: \"#065666\"\n  },\n  purple: {\n    50: \"#FAF5FF\",\n    100: \"#E9D8FD\",\n    200: \"#D6BCFA\",\n    300: \"#B794F4\",\n    400: \"#9F7AEA\",\n    500: \"#805AD5\",\n    600: \"#6B46C1\",\n    700: \"#553C9A\",\n    800: \"#44337A\",\n    900: \"#322659\"\n  },\n  pink: {\n    50: \"#FFF5F7\",\n    100: \"#FED7E2\",\n    200: \"#FBB6CE\",\n    300: \"#F687B3\",\n    400: \"#ED64A6\",\n    500: \"#D53F8C\",\n    600: \"#B83280\",\n    700: \"#97266D\",\n    800: \"#702459\",\n    900: \"#521B41\"\n  },\n  linkedin: {\n    50: \"#E8F4F9\",\n    100: \"#CFEDFB\",\n    200: \"#9BDAF3\",\n    300: \"#68C7EC\",\n    400: \"#34B3E4\",\n    500: \"#00A0DC\",\n    600: \"#008CC9\",\n    700: \"#0077B5\",\n    800: \"#005E93\",\n    900: \"#004471\"\n  },\n  facebook: {\n    50: \"#E8F4F9\",\n    100: \"#D9DEE9\",\n    200: \"#B7C2DA\",\n    300: \"#6482C0\",\n    400: \"#4267B2\",\n    500: \"#385898\",\n    600: \"#314E89\",\n    700: \"#29487D\",\n    800: \"#223B67\",\n    900: \"#1E355B\"\n  },\n  messenger: {\n    50: \"#D0E6FF\",\n    100: \"#B9DAFF\",\n    200: \"#A2CDFF\",\n    300: \"#7AB8FF\",\n    400: \"#2E90FF\",\n    500: \"#0078FF\",\n    600: \"#0063D1\",\n    700: \"#0052AC\",\n    800: \"#003C7E\",\n    900: \"#002C5C\"\n  },\n  whatsapp: {\n    50: \"#dffeec\",\n    100: \"#b9f5d0\",\n    200: \"#90edb3\",\n    300: \"#65e495\",\n    400: \"#3cdd78\",\n    500: \"#22c35e\",\n    600: \"#179848\",\n    700: \"#0c6c33\",\n    800: \"#01421c\",\n    900: \"#001803\"\n  },\n  twitter: {\n    50: \"#E5F4FD\",\n    100: \"#C8E9FB\",\n    200: \"#A8DCFA\",\n    300: \"#83CDF7\",\n    400: \"#57BBF5\",\n    500: \"#1DA1F2\",\n    600: \"#1A94DA\",\n    700: \"#1681BF\",\n    800: \"#136B9E\",\n    900: \"#0D4D71\"\n  },\n  telegram: {\n    50: \"#E3F2F9\",\n    100: \"#C5E4F3\",\n    200: \"#A2D4EC\",\n    300: \"#7AC1E4\",\n    400: \"#47A9DA\",\n    500: \"#0088CC\",\n    600: \"#007AB8\",\n    700: \"#006BA1\",\n    800: \"#005885\",\n    900: \"#003F5E\"\n  }\n};\nexport default colors;\n//# sourceMappingURL=colors.js.map","var radii = {\n  none: \"0\",\n  sm: \"0.125rem\",\n  base: \"0.25rem\",\n  md: \"0.375rem\",\n  lg: \"0.5rem\",\n  xl: \"0.75rem\",\n  \"2xl\": \"1rem\",\n  \"3xl\": \"1.5rem\",\n  full: \"9999px\"\n};\n/**\n * @deprecated\n * You can derive the Radii type from the DefaultChakraTheme\n *\n * type Radii = DefaultChakraTheme['radii']\n */\n\nexport default radii;\n//# sourceMappingURL=radius.js.map","var shadows = {\n  xs: \"0 0 0 1px rgba(0, 0, 0, 0.05)\",\n  sm: \"0 1px 2px 0 rgba(0, 0, 0, 0.05)\",\n  base: \"0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)\",\n  md: \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)\",\n  lg: \"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)\",\n  xl: \"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)\",\n  \"2xl\": \"0 25px 50px -12px rgba(0, 0, 0, 0.25)\",\n  outline: \"0 0 0 3px rgba(66, 153, 225, 0.6)\",\n  inner: \"inset 0 2px 4px 0 rgba(0,0,0,0.06)\",\n  none: \"none\",\n  \"dark-lg\": \"rgba(0, 0, 0, 0.1) 0px 0px 0px 1px, rgba(0, 0, 0, 0.2) 0px 5px 10px, rgba(0, 0, 0, 0.4) 0px 15px 40px\"\n};\n/**\n * @deprecated\n * You can derive the Shadows type from the DefaultChakraTheme\n *\n * type Shadows = DefaultChakraTheme['shadows']\n */\n\nexport default shadows;\n//# sourceMappingURL=shadows.js.map","var transitionProperty = {\n  common: \"background-color, border-color, color, fill, stroke, opacity, box-shadow, transform\",\n  colors: \"background-color, border-color, color, fill, stroke\",\n  dimensions: \"width, height\",\n  position: \"left, right, top, bottom\",\n  background: \"background-color, background-image, background-position\"\n};\nvar transitionTimingFunction = {\n  \"ease-in\": \"cubic-bezier(0.4, 0, 1, 1)\",\n  \"ease-out\": \"cubic-bezier(0, 0, 0.2, 1)\",\n  \"ease-in-out\": \"cubic-bezier(0.4, 0, 0.2, 1)\"\n};\nvar transitionDuration = {\n  \"ultra-fast\": \"50ms\",\n  faster: \"100ms\",\n  fast: \"150ms\",\n  normal: \"200ms\",\n  slow: \"300ms\",\n  slower: \"400ms\",\n  \"ultra-slow\": \"500ms\"\n};\nvar transition = {\n  property: transitionProperty,\n  easing: transitionTimingFunction,\n  duration: transitionDuration\n};\nexport default transition;\n//# sourceMappingURL=transition.js.map","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\nimport borders 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 \"./spacing\";\nimport transition from \"./transition\";\nimport typography from \"./typography\";\nimport zIndices from \"./z-index\";\nimport blur from \"./blur\";\n\nvar foundations = _extends({\n  breakpoints,\n  zIndices,\n  radii,\n  blur,\n  colors\n}, typography, {\n  sizes,\n  shadows,\n  space: spacing,\n  borders,\n  transition\n});\n\nexport default foundations;\n//# sourceMappingURL=index.js.map","var zIndices = {\n  hide: -1,\n  auto: \"auto\",\n  base: 0,\n  docked: 10,\n  dropdown: 1000,\n  sticky: 1100,\n  banner: 1200,\n  overlay: 1300,\n  modal: 1400,\n  popover: 1500,\n  skipLink: 1600,\n  toast: 1700,\n  tooltip: 1800\n};\n/**\n * @deprecated\n * You can derive the ZIndices type from the DefaultChakraTheme\n *\n * type ZIndices = DefaultChakraTheme['zIndices']\n */\n\nexport default zIndices;\n//# sourceMappingURL=z-index.js.map","var blur = {\n  none: 0,\n  sm: \"4px\",\n  base: \"8px\",\n  md: \"12px\",\n  lg: \"16px\",\n  xl: \"24px\",\n  \"2xl\": \"40px\",\n  \"3xl\": \"64px\"\n};\nexport default blur;\n//# sourceMappingURL=blur.js.map","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\nimport { spacing } from \"./spacing\";\nvar largeSizes = {\n  max: \"max-content\",\n  min: \"min-content\",\n  full: \"100%\",\n  \"3xs\": \"14rem\",\n  \"2xs\": \"16rem\",\n  xs: \"20rem\",\n  sm: \"24rem\",\n  md: \"28rem\",\n  lg: \"32rem\",\n  xl: \"36rem\",\n  \"2xl\": \"42rem\",\n  \"3xl\": \"48rem\",\n  \"4xl\": \"56rem\",\n  \"5xl\": \"64rem\",\n  \"6xl\": \"72rem\",\n  \"7xl\": \"80rem\",\n  \"8xl\": \"90rem\"\n};\nvar container = {\n  sm: \"640px\",\n  md: \"768px\",\n  lg: \"1024px\",\n  xl: \"1280px\"\n};\n\nvar sizes = _extends({}, spacing, largeSizes, {\n  container\n});\n/**\n * @deprecated\n * You can derive the Sizes type from the DefaultChakraTheme\n *\n * type Sizes = DefaultChakraTheme['sizes']\n */\n\n\nexport default sizes;\n//# sourceMappingURL=sizes.js.map","export var spacing = {\n  px: \"1px\",\n  0.5: \"0.125rem\",\n  1: \"0.25rem\",\n  1.5: \"0.375rem\",\n  2: \"0.5rem\",\n  2.5: \"0.625rem\",\n  3: \"0.75rem\",\n  3.5: \"0.875rem\",\n  4: \"1rem\",\n  5: \"1.25rem\",\n  6: \"1.5rem\",\n  7: \"1.75rem\",\n  8: \"2rem\",\n  9: \"2.25rem\",\n  10: \"2.5rem\",\n  12: \"3rem\",\n  14: \"3.5rem\",\n  16: \"4rem\",\n  20: \"5rem\",\n  24: \"6rem\",\n  28: \"7rem\",\n  32: \"8rem\",\n  36: \"9rem\",\n  40: \"10rem\",\n  44: \"11rem\",\n  48: \"12rem\",\n  52: \"13rem\",\n  56: \"14rem\",\n  60: \"15rem\",\n  64: \"16rem\",\n  72: \"18rem\",\n  80: \"20rem\",\n  96: \"24rem\"\n};\n/**\n * @deprecated\n * Spacing tokens are a part of DefaultChakraTheme['sizes']\n */\n//# sourceMappingURL=spacing.js.map","var typography = {\n  letterSpacings: {\n    tighter: \"-0.05em\",\n    tight: \"-0.025em\",\n    normal: \"0\",\n    wide: \"0.025em\",\n    wider: \"0.05em\",\n    widest: \"0.1em\"\n  },\n  lineHeights: {\n    normal: \"normal\",\n    none: 1,\n    shorter: 1.25,\n    short: 1.375,\n    base: 1.5,\n    tall: 1.625,\n    taller: \"2\",\n    \"3\": \".75rem\",\n    \"4\": \"1rem\",\n    \"5\": \"1.25rem\",\n    \"6\": \"1.5rem\",\n    \"7\": \"1.75rem\",\n    \"8\": \"2rem\",\n    \"9\": \"2.25rem\",\n    \"10\": \"2.5rem\"\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  },\n  fonts: {\n    heading: \"-apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Helvetica, Arial, sans-serif, \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\", \\\"Segoe UI Symbol\\\"\",\n    body: \"-apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Helvetica, Arial, sans-serif, \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\", \\\"Segoe UI Symbol\\\"\",\n    mono: \"SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace\"\n  },\n  fontSizes: {\n    xs: \"0.75rem\",\n    sm: \"0.875rem\",\n    md: \"1rem\",\n    lg: \"1.125rem\",\n    xl: \"1.25rem\",\n    \"2xl\": \"1.5rem\",\n    \"3xl\": \"1.875rem\",\n    \"4xl\": \"2.25rem\",\n    \"5xl\": \"3rem\",\n    \"6xl\": \"3.75rem\",\n    \"7xl\": \"4.5rem\",\n    \"8xl\": \"6rem\",\n    \"9xl\": \"8rem\"\n  }\n};\n/**\n * @deprecated\n * You can derive the Typography type from the DefaultChakraTheme\n *\n * type Typography = Pick<\n *   DefaultChakraTheme,\n *   | \"letterSpacings\"\n *   | \"lineHeights\"\n *   | \"fontWeights\"\n *   | \"fonts\"\n *   | \"fontSizes\"\n *  >\n */\n\nexport default typography;\n//# sourceMappingURL=typography.js.map","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\nimport components from \"./components\";\nimport foundations from \"./foundations\";\nimport styles from \"./styles\";\nvar direction = \"ltr\";\nvar config = {\n  useSystemColorMode: false,\n  initialColorMode: \"light\",\n  cssVarPrefix: \"chakra\"\n};\nexport var theme = _extends({\n  direction\n}, foundations, {\n  components,\n  styles,\n  config\n});\nexport * from \"./theme.types\";\nexport * from \"./utils\";\nexport default theme;\n//# sourceMappingURL=index.js.map","import { mode } from \"@chakra-ui/theme-tools\";\nvar styles = {\n  global: props => ({\n    body: {\n      fontFamily: \"body\",\n      color: mode(\"gray.800\", \"whiteAlpha.900\")(props),\n      bg: mode(\"white\", \"gray.800\")(props),\n      transitionProperty: \"background-color\",\n      transitionDuration: \"normal\",\n      lineHeight: \"base\"\n    },\n    \"*::placeholder\": {\n      color: mode(\"gray.400\", \"whiteAlpha.400\")(props)\n    },\n    \"*, *::before, &::after\": {\n      borderColor: mode(\"gray.200\", \"whiteAlpha.300\")(props),\n      wordWrap: \"break-word\"\n    }\n  })\n};\nexport default styles;\n//# sourceMappingURL=styles.js.map","import { forwardRef, createElement } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n\n/**\n * VisuallyHidden\n *\n * Provides text for screen readers that is visually hidden.\n * It is the logical opposite of the `aria-hidden` attribute.\n */\n\nvar VisuallyHidden = /*#__PURE__*/forwardRef(function VisuallyHidden(_ref, ref) {\n  var _ref$as = _ref.as,\n      Comp = _ref$as === void 0 ? \"span\" : _ref$as,\n      _ref$style = _ref.style,\n      style = _ref$style === void 0 ? {} : _ref$style,\n      props = _objectWithoutPropertiesLoose(_ref, [\"as\", \"style\"]);\n\n  return /*#__PURE__*/createElement(Comp, _extends({\n    ref: ref,\n    style: _extends({\n      border: 0,\n      clip: \"rect(0 0 0 0)\",\n      height: \"1px\",\n      margin: \"-1px\",\n      overflow: \"hidden\",\n      padding: 0,\n      position: \"absolute\",\n      width: \"1px\",\n      // https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe\n      whiteSpace: \"nowrap\",\n      wordWrap: \"normal\"\n    }, style)\n  }, props));\n});\n/**\n * @see Docs https://reach.tech/visually-hidden#visuallyhidden-props\n */\n\nif (process.env.NODE_ENV !== \"production\") {\n  VisuallyHidden.displayName = \"VisuallyHidden\";\n  VisuallyHidden.propTypes = {\n    as: PropTypes.any,\n    children: PropTypes.node\n  };\n} ////////////////////////////////////////////////////////////////////////////////\n\nexport default VisuallyHidden;\nexport { VisuallyHidden };\n","import * as React from 'react';\nimport { useLayoutEffect, useEffect, isValidElement, cloneElement, createContext, forwardRef, memo, useRef, useState, useCallback, useMemo } from 'react';\nimport fbWarning from 'warning';\n\n/* eslint-disable no-restricted-globals, eqeqeq  */\n\n/**\n * React currently throws a warning when using useLayoutEffect on the server.\n * To get around it, we can conditionally useEffect on the server (no-op) and\n * useLayoutEffect in the browser. We occasionally need useLayoutEffect to\n * ensure we don't get a render flash for certain operations, but we may also\n * need affected components to render on the server. One example is when setting\n * a component's descendants to retrieve their index values.\n *\n * Important to note that using this hook as an escape hatch will break the\n * eslint dependency warnings unless you rename the import to `useLayoutEffect`.\n * Use sparingly only when the effect won't effect the rendered HTML to avoid\n * any server/client mismatch.\n *\n * If a useLayoutEffect is needed and the result would create a mismatch, it's\n * likely that the component in question shouldn't be rendered on the server at\n * all, so a better approach would be to lazily render those in a parent\n * component after client-side hydration.\n *\n * TODO: We are calling useLayoutEffect in a couple of places that will likely\n * cause some issues for SSR users, whether the warning shows or not. Audit and\n * fix these.\n *\n * https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n * https://github.com/reduxjs/react-redux/blob/master/src/utils/useIsomorphicLayoutEffect.js\n *\n * @param effect\n * @param deps\n */\nvar useIsomorphicLayoutEffect = /*#__PURE__*/canUseDOM() ? useLayoutEffect : useEffect;\nvar checkedPkgs = {};\n/**\n * Copy of Facebook's warning package.\n *\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical paths.\n * Removing the logging code for production environments will keep the same\n * logic and follow the same code paths.\n *\n * @see https://github.com/BerkeleyTrue/warning/blob/master/warning.js\n */\n\nvar warning = fbWarning;\n/**\n * When in dev mode, checks that styles for a given @reach package are loaded.\n *\n * @param packageName Name of the package to check.\n * @example checkStyles(\"dialog\") will check for styles for @reach/dialog\n */\n\nvar checkStyles = noop;\n\nif (process.env.NODE_ENV !== \"production\") {\n  // In CJS files, process.env.NODE_ENV is stripped from our build, but we need\n  // it to prevent style checks from clogging up user logs while testing.\n  // This is a workaround until we can tweak the build a bit to accommodate.\n  var _ref = typeof process !== \"undefined\" ? process : {\n    env: {\n      NODE_ENV: \"development\"\n    }\n  },\n      env = _ref.env;\n\n  checkStyles = function checkStyles(packageName) {\n    // only check once per package\n    if (checkedPkgs[packageName]) return;\n    checkedPkgs[packageName] = true;\n\n    if (env.NODE_ENV !== \"test\" && parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--reach-\" + packageName), 10) !== 1) {\n      console.warn(\"@reach/\" + packageName + \" styles not found. If you are using a bundler like webpack or parcel include this in the entry file of your app before any of your own styles:\\n\\n    import \\\"@reach/\" + packageName + \"/styles.css\\\";\\n\\n  Otherwise you'll need to include them some other way:\\n\\n    <link rel=\\\"stylesheet\\\" type=\\\"text/css\\\" href=\\\"node_modules/@reach/\" + packageName + \"/styles.css\\\" />\\n\\n  For more information visit https://ui.reach.tech/styling.\\n  \");\n    }\n  };\n}\n/**\n * Ponyfill for the global object in some environments.\n *\n * @link https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n */\n\nvar ponyfillGlobal = typeof window != \"undefined\" && window.Math == Math ? window : typeof self != \"undefined\" && self.Math == Math ? self :\n/*#__PURE__*/\n// eslint-disable-next-line no-new-func\nFunction(\"return this\")();\n/**\n * Passes or assigns an arbitrary value to a ref function or object.\n *\n * @param ref\n * @param value\n */\n\nfunction assignRef(ref, value) {\n  if (ref == null) return;\n\n  if (isFunction(ref)) {\n    ref(value);\n  } else {\n    try {\n      ref.current = value;\n    } catch (error) {\n      throw new Error(\"Cannot assign value \\\"\" + value + \"\\\" to ref \\\"\" + ref + \"\\\"\");\n    }\n  }\n}\n/**\n * Checks true|\"true\" vs false|\"false\"\n *\n * @param value\n */\n\nfunction boolOrBoolString(value) {\n  return value === \"true\" ? true : isBoolean(value) ? value : false;\n}\nfunction canUseDOM() {\n  return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n}\n/**\n * Type-safe clone element\n *\n * @param element\n * @param props\n * @param children\n */\n\nfunction cloneValidElement(element, props) {\n  for (var _len = arguments.length, children = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n    children[_key - 2] = arguments[_key];\n  }\n\n  return /*#__PURE__*/isValidElement(element) ? cloneElement.apply(React, [element, props].concat(children)) : element;\n}\nfunction createNamedContext(name, defaultValue) {\n  var Ctx = /*#__PURE__*/createContext(defaultValue);\n  Ctx.displayName = name;\n  return Ctx;\n}\n/**\n * This is a hack for sure. The thing is, getting a component to intelligently\n * infer props based on a component or JSX string passed into an `as` prop is\n * kind of a huge pain. Getting it to work and satisfy the constraints of\n * `forwardRef` seems dang near impossible. To avoid needing to do this awkward\n * type song-and-dance every time we want to forward a ref into a component\n * that accepts an `as` prop, we abstract all of that mess to this function for\n * the time time being.\n */\n\nfunction forwardRefWithAs(render) {\n  return /*#__PURE__*/forwardRef(render);\n}\nfunction memoWithAs(Component, propsAreEqual) {\n  return /*#__PURE__*/memo(Component, propsAreEqual);\n}\n/**\n * Get the size of the working document minus the scrollbar offset.\n *\n * @param element\n */\n\nfunction getDocumentDimensions(element) {\n  var _ownerDocument$docume, _ownerDocument$docume2;\n\n  var ownerDocument = getOwnerDocument(element);\n  var ownerWindow = ownerDocument.defaultView || window;\n\n  if (!ownerDocument) {\n    return {\n      width: 0,\n      height: 0\n    };\n  }\n\n  return {\n    width: (_ownerDocument$docume = ownerDocument.documentElement.clientWidth) != null ? _ownerDocument$docume : ownerWindow.innerWidth,\n    height: (_ownerDocument$docume2 = ownerDocument.documentElement.clientHeight) != null ? _ownerDocument$docume2 : ownerWindow.innerHeight\n  };\n}\n/**\n * Get the scoll position of the global window object relative to a given node.\n *\n * @param element\n */\n\nfunction getScrollPosition(element) {\n  var ownerDocument = getOwnerDocument(element);\n  var ownerWindow = ownerDocument.defaultView || window;\n\n  if (!ownerDocument) {\n    return {\n      scrollX: 0,\n      scrollY: 0\n    };\n  }\n\n  return {\n    scrollX: ownerWindow.scrollX,\n    scrollY: ownerWindow.scrollY\n  };\n}\n/**\n * Get a computed style value by property.\n *\n * @param element\n * @param styleProp\n */\n\nfunction getElementComputedStyle(element, styleProp) {\n  var ownerDocument = getOwnerDocument(element);\n  var ownerWindow = (ownerDocument == null ? void 0 : ownerDocument.defaultView) || window;\n\n  if (ownerWindow) {\n    return ownerWindow.getComputedStyle(element, null).getPropertyValue(styleProp);\n  }\n\n  return null;\n}\n/**\n * Get an element's owner document. Useful when components are used in iframes\n * or other environments like dev tools.\n *\n * @param element\n */\n\nfunction getOwnerDocument(element) {\n  return canUseDOM() ? element ? element.ownerDocument : document : null;\n}\n/**\n * TODO: Remove in 1.0\n */\n\nfunction getOwnerWindow(element) {\n  var ownerDocument = getOwnerDocument(element);\n  return ownerDocument ? ownerDocument.defaultView || window : null;\n}\n/**\n * Get the scrollbar offset distance.\n *\n * TODO: Remove in 1.0 (we used this in public examples)\n */\n\nfunction getScrollbarOffset() {\n  try {\n    if (window.innerWidth > document.documentElement.clientWidth) {\n      return window.innerWidth - document.documentElement.clientWidth;\n    }\n  } catch (err) {}\n\n  return 0;\n}\n/**\n * Checks whether or not a value is a boolean.\n *\n * @param value\n */\n\nfunction isBoolean(value) {\n  return typeof value === \"boolean\";\n}\n/**\n * Checks whether or not a value is a function.\n *\n * @param value\n */\n\nfunction isFunction(value) {\n  return !!(value && {}.toString.call(value) == \"[object Function]\");\n}\n/**\n * Checks whether or not a value is a number.\n *\n * @param value\n */\n\nfunction isNumber(value) {\n  return typeof value === \"number\" && !isNaN(value);\n}\n/**\n * Detects right clicks\n *\n * @param nativeEvent\n */\n\nfunction isRightClick(nativeEvent) {\n  return \"which\" in nativeEvent ? nativeEvent.which === 3 : \"button\" in nativeEvent ? nativeEvent.button === 2 : false;\n}\n/**\n * Checks whether or not a value is a string.\n *\n * @param value\n */\n\nfunction isString(value) {\n  return typeof value === \"string\";\n}\n/**\n * Joins strings to format IDs for compound components.\n *\n * @param args\n */\n\nfunction makeId() {\n  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n    args[_key2] = arguments[_key2];\n  }\n\n  return args.filter(function (val) {\n    return val != null;\n  }).join(\"--\");\n}\n/**\n * No-op function.\n */\n\nfunction noop() {}\n/**\n * Convert our state strings for HTML data attributes.\n * No need for a fancy kebab-caser here, we know what our state strings are!\n *\n * @param state\n */\n\nfunction stateToAttributeString(state) {\n  return String(state).replace(/([\\s_]+)/g, \"-\").toLowerCase();\n}\n/**\n * Check if a component is controlled or uncontrolled and return the correct\n * state value and setter accordingly. If the component state is controlled by\n * the app, the setter is a noop.\n *\n * @param controlledValue\n * @param defaultValue\n */\n\nfunction useControlledState(controlledValue, defaultValue) {\n  var controlledRef = useRef(controlledValue != null);\n\n  var _React$useState = useState(defaultValue),\n      valueState = _React$useState[0],\n      setValue = _React$useState[1];\n\n  var set = useCallback(function (n) {\n    if (!controlledRef.current) {\n      setValue(n);\n    }\n  }, []);\n  return [controlledRef.current ? controlledValue : valueState, set];\n}\n/**\n * Logs a warning in dev mode when a component switches from controlled to\n * uncontrolled, or vice versa\n *\n * A single prop should typically be used to determine whether or not a\n * component is controlled or not.\n *\n * @param controlledValue\n * @param controlledPropName\n * @param componentName\n */\n\nvar useControlledSwitchWarning = noop;\n\nif (process.env.NODE_ENV !== \"production\") {\n  useControlledSwitchWarning = function useControlledSwitchWarning(controlledValue, controlledPropName, componentName) {\n    var controlledRef = useRef(controlledValue != null);\n    var nameCache = useRef({\n      componentName: componentName,\n      controlledPropName: controlledPropName\n    });\n    useEffect(function () {\n      nameCache.current = {\n        componentName: componentName,\n        controlledPropName: controlledPropName\n      };\n    }, [componentName, controlledPropName]);\n    useEffect(function () {\n      var wasControlled = controlledRef.current;\n      var _nameCache$current = nameCache.current,\n          componentName = _nameCache$current.componentName,\n          controlledPropName = _nameCache$current.controlledPropName;\n      var isControlled = controlledValue != null;\n\n      if (wasControlled !== isControlled) {\n        console.error(\"A component is changing an \" + (wasControlled ? \"\" : \"un\") + \"controlled `\" + controlledPropName + \"` state of \" + componentName + \" to be \" + (wasControlled ? \"un\" : \"\") + \"controlled. This is likely caused by the value changing from undefined to a defined value, which should not happen. Decide between using a controlled or uncontrolled \" + componentName + \" element for the lifetime of the component.\\nMore info: https://fb.me/react-controlled-components\");\n      }\n    }, [controlledValue]);\n  };\n}\nvar useCheckStyles = noop;\n\nif (process.env.NODE_ENV !== \"production\") {\n  useCheckStyles = function useCheckStyles(pkg) {\n    var name = useRef(pkg);\n    useEffect(function () {\n      return void (name.current = pkg);\n    }, [pkg]);\n    useEffect(function () {\n      return checkStyles(name.current);\n    }, []);\n  };\n}\n/**\n * React hook for creating a value exactly once.\n * @see https://github.com/Andarist/use-constant\n */\n\nfunction useConstant(fn) {\n  var ref = useRef();\n\n  if (!ref.current) {\n    ref.current = {\n      v: fn()\n    };\n  }\n\n  return ref.current.v;\n}\n/**\n * @param callback\n */\n\nfunction useEventCallback(callback) {\n  var ref = useRef(callback);\n  useIsomorphicLayoutEffect(function () {\n    ref.current = callback;\n  });\n  return useCallback(function (event) {\n    for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n      args[_key3 - 1] = arguments[_key3];\n    }\n\n    return ref.current.apply(ref, [event].concat(args));\n  }, []);\n}\nfunction useLazyRef(fn) {\n  var ref = useRef({\n    __internalSet: true\n  });\n\n  if (ref.current && ref.current.__internalSet === true) {\n    ref.current = fn();\n  }\n\n  return ref;\n}\n/**\n * TODO: Remove in 1.0\n * @alias useStableCallback\n * @param callback\n */\n\nvar useCallbackProp = useStableCallback;\n/**\n * Adds a DOM event listener\n *\n * @param eventName\n * @param listener\n * @param element\n */\n\nfunction useEventListener(eventName, listener, element) {\n  if (element === void 0) {\n    element = window;\n  }\n\n  var savedHandler = useRef(listener);\n  useEffect(function () {\n    savedHandler.current = listener;\n  }, [listener]);\n  useEffect(function () {\n    var isSupported = element && element.addEventListener;\n\n    if (!isSupported) {\n      if (process.env.NODE_ENV !== \"production\") {\n        console.warn(\"Event listener not supported on the element provided\");\n      }\n\n      return;\n    }\n\n    function eventListener(event) {\n      savedHandler.current(event);\n    }\n\n    element.addEventListener(eventName, eventListener);\n    return function () {\n      element.removeEventListener(eventName, eventListener);\n    };\n  }, [eventName, element]);\n}\n/**\n * Detect when focus changes in our document.\n *\n * @param handleChange\n * @param when\n * @param ownerDocument\n */\n\nfunction useFocusChange(handleChange, when, ownerDocument) {\n  if (handleChange === void 0) {\n    handleChange = console.log;\n  }\n\n  if (when === void 0) {\n    when = \"focus\";\n  }\n\n  if (ownerDocument === void 0) {\n    ownerDocument = document;\n  }\n\n  var lastActiveElement = useRef(ownerDocument.activeElement);\n  useEffect(function () {\n    lastActiveElement.current = ownerDocument.activeElement;\n\n    function onChange(event) {\n      if (lastActiveElement.current !== ownerDocument.activeElement) {\n        handleChange(ownerDocument.activeElement, lastActiveElement.current, event);\n        lastActiveElement.current = ownerDocument.activeElement;\n      }\n    }\n\n    ownerDocument.addEventListener(when, onChange, true);\n    return function () {\n      ownerDocument.removeEventListener(when, onChange);\n    };\n  }, [when, handleChange, ownerDocument]);\n}\n/**\n * Forces a re-render, similar to `forceUpdate` in class components.\n */\n\nfunction useForceUpdate() {\n  var _React$useState2 = useState(Object.create(null)),\n      dispatch = _React$useState2[1];\n\n  return useCallback(function () {\n    dispatch(Object.create(null));\n  }, []);\n}\n/**\n * Passes or assigns a value to multiple refs (typically a DOM node). Useful for\n * dealing with components that need an explicit ref for DOM calculations but\n * also forwards refs assigned by an app.\n *\n * @param refs Refs to fork\n */\n\nfunction useForkedRef() {\n  for (var _len4 = arguments.length, refs = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n    refs[_key4] = arguments[_key4];\n  }\n\n  return useMemo(function () {\n    if (refs.every(function (ref) {\n      return ref == null;\n    })) {\n      return null;\n    }\n\n    return function (node) {\n      refs.forEach(function (ref) {\n        assignRef(ref, node);\n      });\n    }; // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [].concat(refs));\n}\n/**\n * Returns the previous value of a reference after a component update.\n *\n * @param value\n */\n\nfunction usePrevious(value) {\n  var ref = useRef(null);\n  useEffect(function () {\n    ref.current = value;\n  }, [value]);\n  return ref.current;\n}\n/**\n * Converts a callback to a ref to avoid triggering re-renders when passed as a\n * prop and exposed as a stable function to avoid executing effects when\n * passed as a dependency.\n */\n\nfunction useStableCallback(callback) {\n  var callbackRef = useRef(callback);\n  useEffect(function () {\n    callbackRef.current = callback;\n  }); // eslint-disable-next-line react-hooks/exhaustive-deps\n\n  return useCallback(function () {\n    callbackRef.current && callbackRef.current.apply(callbackRef, arguments);\n  }, []);\n}\n/**\n * Call an effect after a component update, skipping the initial mount.\n *\n * @param effect Effect to call\n * @param deps Effect dependency list\n */\n\nfunction useUpdateEffect(effect, deps) {\n  var mounted = useRef(false);\n  useEffect(function () {\n    if (mounted.current) {\n      effect();\n    } else {\n      mounted.current = true;\n    } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n  }, deps);\n}\n/**\n * Just a lil state logger\n *\n * @param state\n * @param DEBUG\n */\n\nvar useStateLogger = noop;\n\nif (process.env.NODE_ENV !== \"production\") {\n  useStateLogger = function useStateLogger(state, DEBUG) {\n    if (DEBUG === void 0) {\n      DEBUG = false;\n    }\n\n    var debugRef = useRef(DEBUG);\n    useEffect(function () {\n      debugRef.current = DEBUG;\n    }, [DEBUG]);\n    useEffect(function () {\n      if (debugRef.current) {\n        console.group(\"State Updated\");\n        console.log(\"%c\" + state, \"font-weight: normal; font-size: 120%; font-style: italic;\");\n        console.groupEnd();\n      }\n    }, [state]);\n  };\n}\n/**\n * Wraps a lib-defined event handler and a user-defined event handler, returning\n * a single handler that allows a user to prevent lib-defined handlers from\n * firing.\n *\n * @param theirHandler User-supplied event handler\n * @param ourHandler Library-supplied event handler\n */\n\nfunction wrapEvent(theirHandler, ourHandler) {\n  return function (event) {\n    theirHandler && theirHandler(event);\n\n    if (!event.defaultPrevented) {\n      return ourHandler(event);\n    }\n  };\n} // Export types\n\nexport { assignRef, boolOrBoolString, canUseDOM, checkStyles, cloneValidElement, createNamedContext, forwardRefWithAs, getDocumentDimensions, getElementComputedStyle, getOwnerDocument, getOwnerWindow, getScrollPosition, getScrollbarOffset, isBoolean, isFunction, isNumber, isRightClick, isString, makeId, memoWithAs, noop, ponyfillGlobal, stateToAttributeString, useCallbackProp, useCheckStyles, useConstant, useControlledState, useControlledSwitchWarning, useEventCallback, useEventListener, useFocusChange, useForceUpdate, useForkedRef, useIsomorphicLayoutEffect, useLazyRef, usePrevious, useStableCallback, useStateLogger, useUpdateEffect, warning, wrapEvent };\n","import { useRef, useMemo, createElement, useEffect, cloneElement } from 'react';\nimport { render } from 'react-dom';\nimport { VisuallyHidden } from '@reach/visually-hidden';\nimport { forwardRefWithAs, useForkedRef, usePrevious, getOwnerDocument } from '@reach/utils';\nimport PropTypes from 'prop-types';\n\nfunction _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n\n/*\n * Singleton state is fine because you don't server render\n * an alert (SRs don't read them on first load anyway)\n */\n\nvar keys = {\n  polite: -1,\n  assertive: -1\n};\nvar elements = {\n  polite: {},\n  assertive: {}\n};\nvar liveRegions = {\n  polite: null,\n  assertive: null\n};\nvar renderTimer; ////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Alert\n *\n * Screen-reader-friendly alert messages. In many apps developers add \"alert\"\n * messages when network events or other things happen. Users with assistive\n * technologies may not know about the message unless you develop for it.\n *\n * @see Docs https://reach.tech/alert\n */\n\nvar Alert = /*#__PURE__*/forwardRefWithAs(function Alert(_ref, forwardedRef) {\n  var _ref$as = _ref.as,\n      Comp = _ref$as === void 0 ? \"div\" : _ref$as,\n      children = _ref.children,\n      _ref$type = _ref.type,\n      regionType = _ref$type === void 0 ? \"polite\" : _ref$type,\n      props = _objectWithoutPropertiesLoose(_ref, [\"as\", \"children\", \"type\"]);\n\n  var ownRef = useRef(null);\n  var ref = useForkedRef(forwardedRef, ownRef);\n  var child = useMemo(function () {\n    return /*#__PURE__*/createElement(Comp, _extends({}, props, {\n      ref: ref,\n      \"data-reach-alert\": true\n    }), children);\n  }, // eslint-disable-next-line react-hooks/exhaustive-deps\n  [children, props]);\n  useMirrorEffects(regionType, child, ownRef);\n  return child;\n});\n/**\n * @see Docs https://reach.tech/alert#alert-props\n */\n\nif (process.env.NODE_ENV !== \"production\") {\n  Alert.displayName = \"Alert\";\n  Alert.propTypes = {\n    children: PropTypes.node,\n    type: /*#__PURE__*/PropTypes.oneOf([\"assertive\", \"polite\"])\n  };\n} ////////////////////////////////////////////////////////////////////////////////\n\n\nfunction createMirror(type, doc) {\n  var key = ++keys[type];\n\n  var mount = function mount(element) {\n    if (liveRegions[type]) {\n      elements[type][key] = element;\n      renderAlerts();\n    } else {\n      var node = doc.createElement(\"div\");\n      node.setAttribute(\"data-reach-live-\" + type, \"true\");\n      liveRegions[type] = node;\n      doc.body.appendChild(liveRegions[type]);\n      mount(element);\n    }\n  };\n\n  var update = function update(element) {\n    elements[type][key] = element;\n    renderAlerts();\n  };\n\n  var unmount = function unmount() {\n    delete elements[type][key];\n    renderAlerts();\n  };\n\n  return {\n    mount: mount,\n    update: update,\n    unmount: unmount\n  };\n}\n\nfunction renderAlerts() {\n  if (renderTimer != null) {\n    window.clearTimeout(renderTimer);\n  }\n\n  renderTimer = window.setTimeout(function () {\n    Object.keys(elements).forEach(function (elementType) {\n      var regionType = elementType;\n      var container = liveRegions[regionType];\n\n      if (container) {\n        render( /*#__PURE__*/createElement(VisuallyHidden, {\n          as: \"div\"\n        }, /*#__PURE__*/createElement(\"div\", {\n          // The status role is a type of live region and a container whose\n          // content is advisory information for the user that is not\n          // important enough to justify an alert, and is often presented as\n          // a status bar. When the role is added to an element, the browser\n          // will send out an accessible status event to assistive\n          // technology products which can then notify the user about it.\n          // https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_status_role\n          role: regionType === \"assertive\" ? \"alert\" : \"status\",\n          \"aria-live\": regionType\n        }, Object.keys(elements[regionType]).map(function (key) {\n          return /*#__PURE__*/cloneElement(elements[regionType][key], {\n            key: key,\n            ref: null\n          });\n        }))), liveRegions[regionType]);\n      }\n    });\n  }, 500);\n}\n\nfunction useMirrorEffects(regionType, element, ref) {\n  var prevType = usePrevious(regionType);\n  var mirror = useRef(null);\n  var mounted = useRef(false);\n  useEffect(function () {\n    var ownerDocument = getOwnerDocument(ref.current);\n\n    if (!mounted.current) {\n      mounted.current = true;\n      mirror.current = createMirror(regionType, ownerDocument);\n      mirror.current.mount(element);\n    } else if (prevType !== regionType) {\n      mirror.current && mirror.current.unmount();\n      mirror.current = createMirror(regionType, ownerDocument);\n      mirror.current.mount(element);\n    } else {\n      mirror.current && mirror.current.update(element);\n    }\n  }, [element, regionType, prevType, ref]);\n  useEffect(function () {\n    return function () {\n      mirror.current && mirror.current.unmount();\n    };\n  }, []);\n} ////////////////////////////////////////////////////////////////////////////////\n\nexport default Alert;\nexport { Alert };\n","/**\n * Given an array of toasts for a specific position.\n * It returns the toast that matches the `id` passed\n */\nexport var findById = (arr, id) => arr.find(toast => toast.id === id);\n/**\n * Given the toast manager state, finds the toast that matches\n * the id and return its position and index\n */\n\nexport function findToast(toasts, id) {\n  var position = getToastPosition(toasts, id);\n  var index = position ? toasts[position].findIndex(toast => toast.id === id) : -1;\n  return {\n    position,\n    index\n  };\n}\n/**\n * Given the toast manager state, finds the position of the toast that\n * matches the `id`\n */\n\nexport var getToastPosition = (toasts, id) => {\n  var _Object$values$flat$f;\n\n  return (_Object$values$flat$f = Object.values(toasts).flat().find(toast => toast.id === id)) == null ? void 0 : _Object$values$flat$f.position;\n};\n/**\n * Given the toast manager state, checks if a specific toast is\n * still in the state, which means it is still visible on screen.\n */\n\nexport var isVisible = (toasts, id) => !!getToastPosition(toasts, id);\n/**\n * Get's the styles to be applied to a toast's container\n * based on its position in the manager\n */\n\nexport function getToastStyle(position) {\n  var isRighty = position.includes(\"right\");\n  var isLefty = position.includes(\"left\");\n  var alignItems = \"center\";\n  if (isRighty) alignItems = \"flex-end\";\n  if (isLefty) alignItems = \"flex-start\";\n  return {\n    display: \"flex\",\n    flexDirection: \"column\",\n    alignItems\n  };\n}\n//# sourceMappingURL=toast.utils.js.map","import { useTimeout, useUpdateEffect } from \"@chakra-ui/hooks\";\nimport { isFunction, __DEV__ } from \"@chakra-ui/utils\";\nimport ReachAlert from \"@reach/alert\";\nimport { motion, useIsPresent } from \"framer-motion\";\nimport * as React from \"react\";\nimport { getToastStyle } from \"./toast.utils\";\n/**\n * @todo After Gerrit refactors this implementation,\n * allow users to change the toast transition direction from\n * a `ToastProvider` component.\n *\n * Here's an API example:\n *\n * ```jsx\n * <ToastProvider\n *   motion={customVariants}\n *   component={CustomToastComponent}\n *   autoCloseTimeout={3000}\n *   toastSpacing={32} // this will control the `margin` value applied\n * >\n * </ToastProvider>\n * ```\n */\n\nvar toastMotionVariants = {\n  initial: props => {\n    var {\n      position\n    } = props;\n    var dir = [\"top\", \"bottom\"].includes(position) ? \"y\" : \"x\";\n    var factor = [\"top-right\", \"bottom-right\"].includes(position) ? 1 : -1;\n    if (position === \"bottom\") factor = 1;\n    return {\n      opacity: 0,\n      [dir]: factor * 24\n    };\n  },\n  animate: {\n    opacity: 1,\n    y: 0,\n    x: 0,\n    scale: 1,\n    transition: {\n      duration: 0.4,\n      ease: [0.4, 0, 0.2, 1]\n    }\n  },\n  exit: {\n    opacity: 0,\n    scale: 0.85,\n    transition: {\n      duration: 0.2,\n      ease: [0.4, 0, 1, 1]\n    }\n  }\n};\nexport var Toast = props => {\n  var {\n    id,\n    message,\n    onCloseComplete,\n    onRequestRemove,\n    requestClose = false,\n    position = \"bottom\",\n    duration = 5000\n  } = props;\n  var [delay, setDelay] = React.useState(duration);\n  var isPresent = useIsPresent();\n  useUpdateEffect(() => {\n    if (!isPresent) {\n      onCloseComplete == null ? void 0 : onCloseComplete();\n    }\n  }, [isPresent]);\n  useUpdateEffect(() => {\n    setDelay(duration);\n  }, [duration]);\n\n  var onMouseEnter = () => setDelay(null);\n\n  var onMouseLeave = () => setDelay(duration);\n\n  var close = () => {\n    if (isPresent) onRequestRemove();\n  };\n\n  React.useEffect(() => {\n    if (isPresent && requestClose) {\n      onRequestRemove();\n    }\n  }, [isPresent, requestClose, onRequestRemove]);\n  useTimeout(close, delay);\n  var style = React.useMemo(() => getToastStyle(position), [position]);\n  return /*#__PURE__*/React.createElement(motion.li, {\n    layout: true,\n    className: \"chakra-toast\",\n    variants: toastMotionVariants,\n    initial: \"initial\",\n    animate: \"animate\",\n    exit: \"exit\",\n    onHoverStart: onMouseEnter,\n    onHoverEnd: onMouseLeave,\n    custom: {\n      position\n    },\n    style: style\n  }, /*#__PURE__*/React.createElement(ReachAlert, {\n    className: \"chakra-toast__inner\",\n    style: {\n      pointerEvents: \"auto\",\n      maxWidth: 560,\n      minWidth: 300,\n      margin: \"0.5rem\"\n    }\n  }, isFunction(message) ? message({\n    id,\n    onClose: close\n  }) : message));\n};\n\nif (__DEV__) {\n  Toast.displayName = \"Toast\";\n}\n//# sourceMappingURL=toast.js.map","import * as React from \"react\";\nimport { useCallbackRef } from \"./use-callback-ref\";\n/**\n * React hook that provides a declarative `setTimeout`\n *\n * @param callback the callback to run after specified delay\n * @param delay the delay (in ms)\n */\n\nexport function useTimeout(callback, delay) {\n  var fn = useCallbackRef(callback);\n  React.useEffect(() => {\n    if (delay == null) return undefined;\n    var timeoutId = null;\n    timeoutId = window.setTimeout(() => {\n      fn();\n    }, delay);\n    return () => {\n      if (timeoutId) {\n        window.clearTimeout(timeoutId);\n      }\n    };\n  }, [delay, fn]);\n}\n//# sourceMappingURL=use-timeout.js.map","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 _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\nimport { objectKeys } from \"@chakra-ui/utils\";\nimport { AnimatePresence } from \"framer-motion\";\nimport * as React from \"react\";\nimport { Toast } from \"./toast\";\nimport { findToast, getToastPosition } from \"./toast.utils\";\n\n/**\n * Manages the creation, and removal of toasts\n * across all corners (\"top\", \"bottom\", etc.)\n */\nexport class ToastManager extends React.Component {\n  /**\n   * Static id counter to create unique ids\n   * for each toast\n   */\n\n  /**\n   * State to track all the toast across all positions\n   */\n  constructor(props) {\n    var _this;\n\n    super(props);\n    _this = this;\n\n    _defineProperty(this, \"state\", {\n      top: [],\n      \"top-left\": [],\n      \"top-right\": [],\n      \"bottom-left\": [],\n      bottom: [],\n      \"bottom-right\": []\n    });\n\n    _defineProperty(this, \"notify\", (message, options) => {\n      var toast = this.createToast(message, options);\n      var {\n        position,\n        id\n      } = toast;\n      this.setState(prevToasts => {\n        var isTop = position.includes(\"top\");\n        /**\n         * - If the toast is positioned at the top edges, the\n         * recent toast stacks on top of the other toasts.\n         *\n         * - If the toast is positioned at the bottom edges, the recent\n         * toast stacks below the other toasts.\n         */\n\n        var toasts = isTop ? [toast, ...prevToasts[position]] : [...prevToasts[position], toast];\n        return _extends({}, prevToasts, {\n          [position]: toasts\n        });\n      });\n      return id;\n    });\n\n    _defineProperty(this, \"updateToast\", (id, options) => {\n      this.setState(prevState => {\n        var nextState = _extends({}, prevState);\n\n        var {\n          position,\n          index\n        } = findToast(nextState, id);\n\n        if (position && index !== -1) {\n          nextState[position][index] = _extends({}, nextState[position][index], options);\n        }\n\n        return nextState;\n      });\n    });\n\n    _defineProperty(this, \"closeAll\", function (_temp) {\n      var {\n        positions\n      } = _temp === void 0 ? {} : _temp;\n\n      // only one setState here for perf reasons\n      // instead of spamming this.closeToast\n      _this.setState(prev => {\n        var allPositions = [\"bottom\", \"bottom-right\", \"bottom-left\", \"top\", \"top-left\", \"top-right\"];\n        var positionsToClose = positions != null ? positions : allPositions;\n        return positionsToClose.reduce((acc, position) => {\n          acc[position] = prev[position].map(toast => _extends({}, toast, {\n            requestClose: true\n          }));\n          return acc;\n        }, {});\n      });\n    });\n\n    _defineProperty(this, \"createToast\", (message, options) => {\n      var _options$id, _options$position;\n\n      ToastManager.counter += 1;\n      var id = (_options$id = options.id) != null ? _options$id : ToastManager.counter;\n      var position = (_options$position = options.position) != null ? _options$position : \"top\";\n      return {\n        id,\n        message,\n        position,\n        duration: options.duration,\n        onCloseComplete: options.onCloseComplete,\n        onRequestRemove: () => this.removeToast(String(id), position),\n        status: options.status,\n        requestClose: false\n      };\n    });\n\n    _defineProperty(this, \"closeToast\", id => {\n      this.setState(prevState => {\n        var position = getToastPosition(prevState, id);\n        if (!position) return prevState;\n        return _extends({}, prevState, {\n          [position]: prevState[position].map(toast => {\n            // id may be string or number\n            // eslint-disable-next-line eqeqeq\n            if (toast.id == id) {\n              return _extends({}, toast, {\n                requestClose: true\n              });\n            }\n\n            return toast;\n          })\n        });\n      });\n    });\n\n    _defineProperty(this, \"removeToast\", (id, position) => {\n      this.setState(prevState => _extends({}, prevState, {\n        // id may be string or number\n        // eslint-disable-next-line eqeqeq\n        [position]: prevState[position].filter(toast => toast.id != id)\n      }));\n    });\n\n    _defineProperty(this, \"isVisible\", id => {\n      var {\n        position\n      } = findToast(this.state, id);\n      return Boolean(position);\n    });\n\n    _defineProperty(this, \"getStyle\", position => {\n      var isTopOrBottom = position === \"top\" || position === \"bottom\";\n      var margin = isTopOrBottom ? \"0 auto\" : undefined;\n      var top = position.includes(\"top\") ? \"env(safe-area-inset-top, 0px)\" : undefined;\n      var bottom = position.includes(\"bottom\") ? \"env(safe-area-inset-bottom, 0px)\" : undefined;\n      var right = !position.includes(\"left\") ? \"env(safe-area-inset-right, 0px)\" : undefined;\n      var left = !position.includes(\"right\") ? \"env(safe-area-inset-left, 0px)\" : undefined;\n      return {\n        position: \"fixed\",\n        zIndex: 5500,\n        pointerEvents: \"none\",\n        display: \"flex\",\n        flexDirection: \"column\",\n        margin,\n        top,\n        bottom,\n        right,\n        left\n      };\n    });\n\n    var methods = {\n      notify: this.notify,\n      closeAll: this.closeAll,\n      close: this.closeToast,\n      update: this.updateToast,\n      isActive: this.isVisible\n    };\n    props.notify(methods);\n  }\n  /**\n   * Function to actually create a toast and add it\n   * to state at the specified position\n   */\n\n\n  render() {\n    return objectKeys(this.state).map(position => {\n      var toasts = this.state[position];\n      return /*#__PURE__*/React.createElement(\"ul\", {\n        key: position,\n        id: \"chakra-toast-manager-\" + position,\n        style: this.getStyle(position)\n      }, /*#__PURE__*/React.createElement(AnimatePresence, {\n        initial: false\n      }, toasts.map(toast => /*#__PURE__*/React.createElement(Toast, _extends({\n        key: toast.id\n      }, toast)))));\n    });\n  }\n\n}\n\n_defineProperty(ToastManager, \"counter\", 0);\n//# sourceMappingURL=toast-manager.js.map","function _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\nimport { isBrowser } from \"@chakra-ui/utils\";\nimport * as React from \"react\";\nimport { render } from \"react-dom\";\nimport { ToastManager } from \"./toast-manager\";\nvar portalId = \"chakra-toast-portal\";\n\nclass Toaster {\n  /**\n   * Initialize the manager and mount it in the DOM\n   * inside the portal node.\n   *\n   * @todo\n   *\n   * Update toast constructor to use `PortalManager`'s node or document.body.\n   * Once done, we can remove the `zIndex` in `toast.manager.tsx`\n   */\n  constructor() {\n    var _this = this;\n\n    _defineProperty(this, \"createToast\", void 0);\n\n    _defineProperty(this, \"removeAll\", void 0);\n\n    _defineProperty(this, \"closeToast\", void 0);\n\n    _defineProperty(this, \"updateToast\", void 0);\n\n    _defineProperty(this, \"isToastActive\", void 0);\n\n    _defineProperty(this, \"bindFunctions\", methods => {\n      this.createToast = methods.notify;\n      this.removeAll = methods.closeAll;\n      this.closeToast = methods.close;\n      this.updateToast = methods.update;\n      this.isToastActive = methods.isActive;\n    });\n\n    _defineProperty(this, \"notify\", function (message, options) {\n      if (options === void 0) {\n        options = {};\n      }\n\n      return _this.createToast == null ? void 0 : _this.createToast(message, options);\n    });\n\n    _defineProperty(this, \"close\", id => {\n      var _this$closeToast;\n\n      (_this$closeToast = this.closeToast) == null ? void 0 : _this$closeToast.call(this, id);\n    });\n\n    _defineProperty(this, \"closeAll\", options => {\n      var _this$removeAll;\n\n      (_this$removeAll = this.removeAll) == null ? void 0 : _this$removeAll.call(this, options);\n    });\n\n    _defineProperty(this, \"update\", function (id, options) {\n      if (options === void 0) {\n        options = {};\n      }\n\n      _this.updateToast == null ? void 0 : _this.updateToast(id, options);\n    });\n\n    _defineProperty(this, \"isActive\", id => {\n      var _this$isToastActive;\n\n      return (_this$isToastActive = this.isToastActive) == null ? void 0 : _this$isToastActive.call(this, id);\n    });\n\n    if (!isBrowser) return;\n    var portal;\n    var existingPortal = document.getElementById(portalId);\n\n    if (existingPortal) {\n      portal = existingPortal;\n    } else {\n      var _document$body;\n\n      var div = document.createElement(\"div\");\n      div.id = portalId;\n      (_document$body = document.body) == null ? void 0 : _document$body.appendChild(div);\n      portal = div;\n    }\n\n    render( /*#__PURE__*/React.createElement(ToastManager, {\n      notify: this.bindFunctions\n    }), portal);\n  }\n\n}\n\nexport var toast = new Toaster();\n//# sourceMappingURL=toast.class.js.map","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\nimport { Alert, AlertDescription, AlertIcon, AlertTitle } from \"@chakra-ui/alert\";\nimport { CloseButton } from \"@chakra-ui/close-button\";\nimport { chakra, ColorModeContext, ThemeProvider, useChakra } from \"@chakra-ui/system\";\nimport defaultTheme from \"@chakra-ui/theme\";\nimport { isFunction, noop } from \"@chakra-ui/utils\";\nimport * as React from \"react\";\nimport { toast } from \"./toast.class\";\n\nvar Toast = props => {\n  var {\n    status,\n    variant,\n    id,\n    title,\n    isClosable,\n    onClose,\n    description\n  } = props;\n  return /*#__PURE__*/React.createElement(Alert, {\n    status: status,\n    variant: variant,\n    id: id,\n    alignItems: \"start\",\n    borderRadius: \"md\",\n    boxShadow: \"lg\",\n    paddingEnd: 8,\n    textAlign: \"start\",\n    width: \"auto\"\n  }, /*#__PURE__*/React.createElement(AlertIcon, null), /*#__PURE__*/React.createElement(chakra.div, {\n    flex: \"1\",\n    maxWidth: \"100%\"\n  }, title && /*#__PURE__*/React.createElement(AlertTitle, null, title), description && /*#__PURE__*/React.createElement(AlertDescription, {\n    display: \"block\"\n  }, description)), isClosable && /*#__PURE__*/React.createElement(CloseButton, {\n    size: \"sm\",\n    onClick: onClose,\n    position: \"absolute\",\n    insetEnd: 1,\n    top: 1\n  }));\n};\n\nvar defaults = {\n  duration: 5000,\n  position: \"bottom\",\n  variant: \"solid\"\n};\nexport var defaultStandaloneParam = {\n  theme: defaultTheme,\n  colorMode: \"light\",\n  toggleColorMode: noop,\n  setColorMode: noop,\n  defaultOptions: defaults\n};\n/**\n * Create a toast from outside of React Components\n */\n\nexport function createStandaloneToast(_temp) {\n  var {\n    theme = defaultStandaloneParam.theme,\n    colorMode = defaultStandaloneParam.colorMode,\n    toggleColorMode = defaultStandaloneParam.toggleColorMode,\n    setColorMode = defaultStandaloneParam.setColorMode,\n    defaultOptions = defaultStandaloneParam.defaultOptions\n  } = _temp === void 0 ? defaultStandaloneParam : _temp;\n\n  var renderWithProviders = (props, options) => /*#__PURE__*/React.createElement(ThemeProvider, {\n    theme: theme\n  }, /*#__PURE__*/React.createElement(ColorModeContext.Provider, {\n    value: {\n      colorMode,\n      setColorMode,\n      toggleColorMode\n    }\n  }, isFunction(options.render) ? options.render(props) : /*#__PURE__*/React.createElement(Toast, _extends({}, props, options))));\n\n  var toastImpl = options => {\n    var opts = _extends({}, defaultOptions, options);\n\n    var Message = props => renderWithProviders(props, opts);\n\n    return toast.notify(Message, opts);\n  };\n\n  toastImpl.close = toast.close;\n  toastImpl.closeAll = toast.closeAll; // toasts can only be updated if they have a valid id\n\n  toastImpl.update = (id, options) => {\n    if (!id) return;\n\n    var opts = _extends({}, defaultOptions, options);\n\n    toast.update(id, _extends({}, opts, {\n      message: props => renderWithProviders(props, opts)\n    }));\n  };\n\n  toastImpl.isActive = toast.isActive;\n  return toastImpl;\n}\n/**\n * React hook used to create a function that can be used\n * to show toasts in an application.\n */\n\nexport function useToast(options) {\n  var {\n    theme,\n    setColorMode,\n    toggleColorMode,\n    colorMode\n  } = useChakra();\n  return React.useMemo(() => createStandaloneToast({\n    theme,\n    colorMode,\n    setColorMode,\n    toggleColorMode,\n    defaultOptions: options\n  }), [theme, setColorMode, toggleColorMode, colorMode, options]);\n}\nexport default useToast;\n//# sourceMappingURL=use-toast.js.map","export function getFirstItem(array) {\n  return array != null && array.length ? array[0] : undefined;\n}\nexport function getLastItem(array) {\n  var length = array == null ? 0 : array.length;\n  return length ? array[length - 1] : undefined;\n}\nexport function getPrevItem(index, array, loop) {\n  if (loop === void 0) {\n    loop = true;\n  }\n\n  var prevIndex = getPrevIndex(index, array.length, loop);\n  return array[prevIndex];\n}\nexport function getNextItem(index, array, loop) {\n  if (loop === void 0) {\n    loop = true;\n  }\n\n  var nextIndex = getNextIndex(index, array.length, 1, loop);\n  return array[nextIndex];\n}\nexport function removeIndex(array, index) {\n  return array.filter((_, idx) => idx !== index);\n}\nexport function addItem(array, item) {\n  return [...array, item];\n}\nexport function removeItem(array, item) {\n  return array.filter(eachItem => eachItem !== item);\n}\n/**\n * Get the next index based on the current index and step.\n *\n * @param currentIndex the current index\n * @param length the total length or count of items\n * @param step the number of steps\n * @param loop whether to circle back once `currentIndex` is at the start/end\n */\n\nexport function getNextIndex(currentIndex, length, step, loop) {\n  if (step === void 0) {\n    step = 1;\n  }\n\n  if (loop === void 0) {\n    loop = true;\n  }\n\n  var lastIndex = length - 1;\n\n  if (currentIndex === -1) {\n    return step > 0 ? 0 : lastIndex;\n  }\n\n  var nextIndex = currentIndex + step;\n\n  if (nextIndex < 0) {\n    return loop ? lastIndex : 0;\n  }\n\n  if (nextIndex >= length) {\n    if (loop) return 0;\n    return currentIndex > length ? length : currentIndex;\n  }\n\n  return nextIndex;\n}\n/**\n * Get's the previous index based on the current index.\n * Mostly used for keyboard navigation.\n *\n * @param index - the current index\n * @param count - the length or total count of items in the array\n * @param loop - whether we should circle back to the\n * first/last once `currentIndex` is at the start/end\n */\n\nexport function getPrevIndex(index, count, loop) {\n  if (loop === void 0) {\n    loop = true;\n  }\n\n  return getNextIndex(index, count, -1, loop);\n}\n/**\n * Converts an array into smaller chunks or groups.\n *\n * @param array the array to chunk into group\n * @param size the length of each chunk\n */\n\nexport function chunk(array, size) {\n  return array.reduce((rows, currentValue, index) => {\n    if (index % size === 0) {\n      rows.push([currentValue]);\n    } else {\n      rows[rows.length - 1].push(currentValue);\n    }\n\n    return rows;\n  }, []);\n}\n/**\n * Gets the next item based on a search string\n *\n * @param items array of items\n * @param searchString the search string\n * @param itemToString resolves an item to string\n * @param currentItem the current selected item\n */\n\nexport function getNextItemFromSearch(items, searchString, itemToString, currentItem) {\n  if (searchString == null) {\n    return currentItem;\n  } // If current item doesn't exist, find the item that matches the search string\n\n\n  if (!currentItem) {\n    var foundItem = items.find(item => itemToString(item).toLowerCase().startsWith(searchString.toLowerCase()));\n    return foundItem;\n  } // Filter items for ones that match the search string (case insensitive)\n\n\n  var matchingItems = items.filter(item => itemToString(item).toLowerCase().startsWith(searchString.toLowerCase())); // If there's a match, let's get the next item to select\n\n  if (matchingItems.length > 0) {\n    var nextIndex; // If the currentItem is in the available items, we move to the next available option\n\n    if (matchingItems.includes(currentItem)) {\n      var currentIndex = matchingItems.indexOf(currentItem);\n      nextIndex = currentIndex + 1;\n\n      if (nextIndex === matchingItems.length) {\n        nextIndex = 0;\n      }\n\n      return matchingItems[nextIndex];\n    } // Else, we pick the first item in the available items\n\n\n    nextIndex = items.indexOf(matchingItems[0]);\n    return items[nextIndex];\n  } // a decent fallback to the currentItem\n\n\n  return currentItem;\n}\n//# sourceMappingURL=array.js.map","// Number assertions\nexport function isNumber(value) {\n  return typeof value === \"number\";\n}\nexport function isNotNumber(value) {\n  return typeof value !== \"number\" || Number.isNaN(value) || !Number.isFinite(value);\n}\nexport function isNumeric(value) {\n  return value != null && value - parseFloat(value) + 1 >= 0;\n} // Array assertions\n\nexport function isArray(value) {\n  return Array.isArray(value);\n}\nexport function isEmptyArray(value) {\n  return isArray(value) && value.length === 0;\n} // Function assertions\n\nexport function isFunction(value) {\n  return typeof value === \"function\";\n} // Generic assertions\n\nexport function isDefined(value) {\n  return typeof value !== \"undefined\" && value !== undefined;\n}\nexport function isUndefined(value) {\n  return typeof value === \"undefined\" || value === undefined;\n} // Object assertions\n\nexport function isObject(value) {\n  var type = typeof value;\n  return value != null && (type === \"object\" || type === \"function\") && !isArray(value);\n}\nexport function isEmptyObject(value) {\n  return isObject(value) && Object.keys(value).length === 0;\n}\nexport function isNotEmptyObject(value) {\n  return value && !isEmptyObject(value);\n}\nexport function isNull(value) {\n  return value == null;\n} // String assertions\n\nexport function isString(value) {\n  return Object.prototype.toString.call(value) === \"[object String]\";\n}\nexport function isCssVar(value) {\n  return /^var\\(--.+\\)$/.test(value);\n} // Empty assertions\n\nexport function isEmpty(value) {\n  if (isArray(value)) return isEmptyArray(value);\n  if (isObject(value)) return isEmptyObject(value);\n  if (value == null || value === \"\") return true;\n  return false;\n}\nexport var __DEV__ = process.env.NODE_ENV !== \"production\";\nexport var __TEST__ = process.env.NODE_ENV === \"test\";\nexport function isRefObject(val) {\n  return \"current\" in val;\n}\nexport function isInputEvent(value) {\n  return value && isObject(value) && isObject(value.target);\n}\n//# sourceMappingURL=assertion.js.map","import { getLastItem } from \"./array\";\nimport { isNumber, isObject } from \"./assertion\";\nimport { fromEntries } from \"./object\";\n\nfunction analyzeCSSValue(value) {\n  var num = parseFloat(value.toString());\n  var unit = value.toString().replace(String(num), \"\");\n  return {\n    unitless: !unit,\n    value: num,\n    unit\n  };\n}\n\nexport function px(value) {\n  if (value == null) return value;\n  var {\n    unitless\n  } = analyzeCSSValue(value);\n  return unitless || isNumber(value) ? value + \"px\" : value;\n}\n\nvar sortByBreakpointValue = (a, b) => parseInt(a[1], 10) > parseInt(b[1], 10) ? 1 : -1;\n\nvar sortBps = breakpoints => fromEntries(Object.entries(breakpoints).sort(sortByBreakpointValue));\n\nfunction normalize(breakpoints) {\n  var sorted = sortBps(breakpoints);\n  return Object.assign(Object.values(sorted), sorted);\n}\n\nfunction keys(breakpoints) {\n  var value = Object.keys(sortBps(breakpoints));\n  return new Set(value);\n}\n\nfunction subtract(value) {\n  var _px;\n\n  if (!value) return value;\n  value = (_px = px(value)) != null ? _px : value;\n  var factor = value.endsWith(\"px\") ? -1 : // the equivalent of 1px in em using a 16px base\n  -0.0635;\n  return isNumber(value) ? \"\" + (value + factor) : value.replace(/([0-9]+\\.?[0-9]*)/, m => \"\" + (parseFloat(m) + factor));\n}\n\nfunction queryString(min, max) {\n  var query = [];\n  if (min) query.push(\"@media screen and (min-width: \" + px(min) + \")\");\n  if (query.length > 0 && max) query.push(\"and\");\n  if (max) query.push(\"@media screen and (max-width: \" + px(max) + \")\");\n  return query.join(\" \");\n}\n\nexport function analyzeBreakpoints(breakpoints) {\n  var _breakpoints$base;\n\n  if (!breakpoints) return null;\n  breakpoints.base = (_breakpoints$base = breakpoints.base) != null ? _breakpoints$base : \"0px\";\n  var normalized = normalize(breakpoints);\n  var queries = Object.entries(breakpoints).sort(sortByBreakpointValue).map((_ref, index, entry) => {\n    var _entry;\n\n    var [breakpoint, minW] = _ref;\n    var [, maxW] = (_entry = entry[index + 1]) != null ? _entry : [];\n    maxW = parseFloat(maxW) > 0 ? subtract(maxW) : undefined;\n    return {\n      breakpoint,\n      minW,\n      maxW,\n      maxWQuery: queryString(null, maxW),\n      minWQuery: queryString(minW),\n      minMaxQuery: queryString(minW, maxW)\n    };\n  });\n\n  var _keys = keys(breakpoints);\n\n  var _keysArr = Array.from(_keys.values());\n\n  return {\n    keys: _keys,\n    normalized,\n\n    isResponsive(test) {\n      var keys = Object.keys(test);\n      return keys.length > 0 && keys.every(key => _keys.has(key));\n    },\n\n    asObject: sortBps(breakpoints),\n    asArray: normalize(breakpoints),\n    details: queries,\n    media: [null, ...normalized.map(minW => queryString(minW)).slice(1)],\n\n    toArrayValue(test) {\n      if (!isObject(test)) {\n        throw new Error(\"toArrayValue: value must be an object\");\n      }\n\n      var result = _keysArr.map(bp => {\n        var _test$bp;\n\n        return (_test$bp = test[bp]) != null ? _test$bp : null;\n      });\n\n      while (getLastItem(result) === null) {\n        result.pop();\n      }\n\n      return result;\n    },\n\n    toObjectValue(test) {\n      if (!Array.isArray(test)) {\n        throw new Error(\"toObjectValue: value must be an array\");\n      }\n\n      return test.reduce((acc, value, index) => {\n        var key = _keysArr[index];\n        if (key != null && value != null) acc[key] = value;\n        return acc;\n      }, {});\n    }\n\n  };\n}\n//# sourceMappingURL=breakpoint.js.map","export function isElement(el) {\n  return el != null && typeof el == \"object\" && \"nodeType\" in el && el.nodeType === Node.ELEMENT_NODE;\n}\nexport function isHTMLElement(el) {\n  var _el$ownerDocument$def;\n\n  if (!isElement(el)) {\n    return false;\n  }\n\n  var win = (_el$ownerDocument$def = el.ownerDocument.defaultView) != null ? _el$ownerDocument$def : window;\n  return el instanceof win.HTMLElement;\n}\nexport function getOwnerWindow(node) {\n  var _getOwnerDocument$def, _getOwnerDocument;\n\n  return isElement(node) ? (_getOwnerDocument$def = (_getOwnerDocument = getOwnerDocument(node)) == null ? void 0 : _getOwnerDocument.defaultView) != null ? _getOwnerDocument$def : window : window;\n}\nexport function getOwnerDocument(node) {\n  var _node$ownerDocument;\n\n  return isElement(node) ? (_node$ownerDocument = node.ownerDocument) != null ? _node$ownerDocument : document : document;\n}\nexport function getEventWindow(event) {\n  var _view;\n\n  return (_view = event.view) != null ? _view : window;\n}\nexport function canUseDOM() {\n  return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n}\nexport var isBrowser = canUseDOM();\nexport var dataAttr = condition => condition ? \"\" : undefined;\nexport var ariaAttr = condition => condition ? true : undefined;\nexport var cx = function cx() {\n  for (var _len = arguments.length, classNames = new Array(_len), _key = 0; _key < _len; _key++) {\n    classNames[_key] = arguments[_key];\n  }\n\n  return classNames.filter(Boolean).join(\" \");\n};\nexport function getActiveElement(node) {\n  var doc = getOwnerDocument(node);\n  return doc == null ? void 0 : doc.activeElement;\n}\nexport function contains(parent, child) {\n  if (!parent) return false;\n  return parent === child || parent.contains(child);\n}\nexport function addDomEvent(target, eventName, handler, options) {\n  target.addEventListener(eventName, handler, options);\n  return () => {\n    target.removeEventListener(eventName, handler, options);\n  };\n}\n/**\n * Get the normalized event key across all browsers\n * @param event keyboard event\n */\n\nexport function normalizeEventKey(event) {\n  var {\n    key,\n    keyCode\n  } = event;\n  var isArrowKey = keyCode >= 37 && keyCode <= 40 && key.indexOf(\"Arrow\") !== 0;\n  var eventKey = isArrowKey ? \"Arrow\" + key : key;\n  return eventKey;\n}\nexport function getRelatedTarget(event) {\n  var _event$target, _ref, _event$relatedTarget;\n\n  var target = (_event$target = event.target) != null ? _event$target : event.currentTarget;\n  var activeElement = getActiveElement(target);\n  var originalTarget = event.nativeEvent.explicitOriginalTarget;\n  return (_ref = (_event$relatedTarget = event.relatedTarget) != null ? _event$relatedTarget : originalTarget) != null ? _ref : activeElement;\n}\nexport function isRightClick(event) {\n  return event.button !== 0;\n}\n//# sourceMappingURL=dom.js.map","/* eslint-disable no-nested-ternary */\nimport { isFunction, isNumber, __DEV__ } from \"./assertion\";\nexport function runIfFn(valueOrFn) {\n  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n    args[_key - 1] = arguments[_key];\n  }\n\n  return isFunction(valueOrFn) ? valueOrFn(...args) : valueOrFn;\n}\nexport function callAllHandlers() {\n  for (var _len2 = arguments.length, fns = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n    fns[_key2] = arguments[_key2];\n  }\n\n  return function func(event) {\n    fns.some(fn => {\n      fn == null ? void 0 : fn(event);\n      return event == null ? void 0 : event.defaultPrevented;\n    });\n  };\n}\nexport function callAll() {\n  for (var _len3 = arguments.length, fns = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n    fns[_key3] = arguments[_key3];\n  }\n\n  return function mergedFn(arg) {\n    fns.forEach(fn => {\n      fn == null ? void 0 : fn(arg);\n    });\n  };\n}\nexport var compose = function compose(fn1) {\n  for (var _len4 = arguments.length, fns = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n    fns[_key4 - 1] = arguments[_key4];\n  }\n\n  return fns.reduce((f1, f2) => function () {\n    return f1(f2(...arguments));\n  }, fn1);\n};\nexport function once(fn) {\n  var result;\n  return function func() {\n    if (fn) {\n      for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n        args[_key5] = arguments[_key5];\n      }\n\n      result = fn.apply(this, args);\n      fn = null;\n    }\n\n    return result;\n  };\n}\nexport var noop = () => {};\nexport var warn = once(options => () => {\n  var {\n    condition,\n    message\n  } = options;\n\n  if (condition && __DEV__) {\n    console.warn(message);\n  }\n});\nexport var error = once(options => () => {\n  var {\n    condition,\n    message\n  } = options;\n\n  if (condition && __DEV__) {\n    console.error(message);\n  }\n});\nexport var pipe = function pipe() {\n  for (var _len6 = arguments.length, fns = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n    fns[_key6] = arguments[_key6];\n  }\n\n  return v => fns.reduce((a, b) => b(a), v);\n};\n\nvar distance1D = (a, b) => Math.abs(a - b);\n\nvar isPoint = point => \"x\" in point && \"y\" in point;\n\nexport function distance(a, b) {\n  if (isNumber(a) && isNumber(b)) {\n    return distance1D(a, b);\n  }\n\n  if (isPoint(a) && isPoint(b)) {\n    var xDelta = distance1D(a.x, b.x);\n    var yDelta = distance1D(a.y, b.y);\n    return Math.sqrt(xDelta ** 2 + yDelta ** 2);\n  }\n\n  return 0;\n}\n//# sourceMappingURL=function.js.map","export { default as mergeWith } from \"lodash.mergewith\";\nexport function omit(object, keys) {\n  var result = {};\n  Object.keys(object).forEach(key => {\n    if (keys.includes(key)) return;\n    result[key] = object[key];\n  });\n  return result;\n}\nexport function pick(object, keys) {\n  var result = {};\n  keys.forEach(key => {\n    if (key in object) {\n      result[key] = object[key];\n    }\n  });\n  return result;\n}\nexport function split(object, keys) {\n  var picked = {};\n  var omitted = {};\n  Object.keys(object).forEach(key => {\n    if (keys.includes(key)) {\n      picked[key] = object[key];\n    } else {\n      omitted[key] = object[key];\n    }\n  });\n  return [picked, omitted];\n}\n/**\n * Get value from a deeply nested object using a string path.\n * Memoizes the value.\n * @param obj - the object\n * @param path - the string path\n * @param def  - the fallback value\n */\n\nexport function get(obj, path, fallback, index) {\n  var key = typeof path === \"string\" ? path.split(\".\") : [path];\n\n  for (index = 0; index < key.length; index += 1) {\n    if (!obj) break;\n    obj = obj[key[index]];\n  }\n\n  return obj === undefined ? fallback : obj;\n}\nexport var memoize = fn => {\n  var cache = new WeakMap();\n\n  var memoizedFn = (obj, path, fallback, index) => {\n    if (typeof obj === \"undefined\") {\n      return fn(obj, path, fallback);\n    }\n\n    if (!cache.has(obj)) {\n      cache.set(obj, new Map());\n    }\n\n    var map = cache.get(obj);\n\n    if (map.has(path)) {\n      return map.get(path);\n    }\n\n    var value = fn(obj, path, fallback, index);\n    map.set(path, value);\n    return value;\n  };\n\n  return memoizedFn;\n};\nexport var memoizedGet = memoize(get);\n/**\n * Get value from deeply nested object, based on path\n * It returns the path value if not found in object\n *\n * @param path - the string path or value\n * @param scale - the string path or value\n */\n\nexport function getWithDefault(path, scale) {\n  return memoizedGet(scale, path, path);\n}\n\n/**\n * Returns the items of an object that meet the condition specified in a callback function.\n *\n * @param object the object to loop through\n * @param fn The filter function\n */\nexport function objectFilter(object, fn) {\n  var result = {};\n  Object.keys(object).forEach(key => {\n    var value = object[key];\n    var shouldPass = fn(value, key, object);\n\n    if (shouldPass) {\n      result[key] = value;\n    }\n  });\n  return result;\n}\nexport var filterUndefined = object => objectFilter(object, val => val !== null && val !== undefined);\nexport var objectKeys = obj => Object.keys(obj);\n/**\n * Object.entries polyfill for Nodev10 compatibility\n */\n\nexport var fromEntries = entries => entries.reduce((carry, _ref) => {\n  var [key, value] = _ref;\n  carry[key] = value;\n  return carry;\n}, {});\n/**\n * Get the CSS variable ref stored in the theme\n */\n\nexport var getCSSVar = (theme, scale, value) => {\n  var _theme$__cssMap$$varR, _theme$__cssMap$;\n\n  return (_theme$__cssMap$$varR = (_theme$__cssMap$ = theme.__cssMap[scale + \".\" + value]) == null ? void 0 : _theme$__cssMap$.varRef) != null ? _theme$__cssMap$$varR : value;\n};\n//# sourceMappingURL=object.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SignInButton = void 0;\nconst tslib_1 = require(\"tslib\");\nconst react_1 = tslib_1.__importDefault(require(\"react\"));\nconst utils_1 = require(\"../utils\");\nconst withClerk_1 = require(\"./withClerk\");\nexports.SignInButton = (0, withClerk_1.withClerk)((_a) => {\n    var { clerk, children } = _a, props = tslib_1.__rest(_a, [\"clerk\", \"children\"]);\n    const { afterSignInUrl, afterSignUpUrl, redirectUrl, mode } = props, rest = tslib_1.__rest(props, [\"afterSignInUrl\", \"afterSignUpUrl\", \"redirectUrl\", \"mode\"]);\n    children = (0, utils_1.normalizeWithDefaultValue)(children, 'Sign in');\n    const child = (0, utils_1.assertSingleChild)(children)('SignInButton');\n    const clickHandler = () => {\n        const opts = { afterSignInUrl, afterSignUpUrl, redirectUrl };\n        if (mode === 'modal') {\n            return clerk.openSignIn(opts);\n        }\n        return clerk.redirectToSignIn(opts);\n    };\n    const wrappedChildClickHandler = async (e) => {\n        await (0, utils_1.safeExecute)(child.props.onClick)(e);\n        return clickHandler();\n    };\n    const childProps = Object.assign(Object.assign({}, rest), { onClick: wrappedChildClickHandler });\n    return react_1.default.cloneElement(child, childProps);\n}, 'SignInButton');\n//# sourceMappingURL=SignInButton.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SignInWithMetamaskButton = void 0;\nconst tslib_1 = require(\"tslib\");\nconst react_1 = tslib_1.__importDefault(require(\"react\"));\nconst utils_1 = require(\"../utils\");\nconst withClerk_1 = require(\"./withClerk\");\nexports.SignInWithMetamaskButton = (0, withClerk_1.withClerk)((_a) => {\n    var { clerk, children } = _a, props = tslib_1.__rest(_a, [\"clerk\", \"children\"]);\n    const { redirectUrl } = props, rest = tslib_1.__rest(props, [\"redirectUrl\"]);\n    children = (0, utils_1.normalizeWithDefaultValue)(children, 'Sign in with Metamask');\n    const child = (0, utils_1.assertSingleChild)(children)('SignInWithMetamaskButton');\n    const clickHandler = async () => {\n        async function authenticate() {\n            await clerk.authenticateWithMetamask({ redirectUrl });\n        }\n        void authenticate();\n    };\n    const wrappedChildClickHandler = async (e) => {\n        await (0, utils_1.safeExecute)(child.props.onClick)(e);\n        return clickHandler();\n    };\n    const childProps = Object.assign(Object.assign({}, rest), { onClick: wrappedChildClickHandler });\n    return react_1.default.cloneElement(child, childProps);\n}, 'SignInWithMetamask');\n//# sourceMappingURL=SignInWithMetamaskButton.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SignOutButton = void 0;\nconst tslib_1 = require(\"tslib\");\nconst react_1 = tslib_1.__importDefault(require(\"react\"));\nconst utils_1 = require(\"../utils\");\nconst withClerk_1 = require(\"./withClerk\");\nexports.SignOutButton = (0, withClerk_1.withClerk)((_a) => {\n    var { clerk, children } = _a, props = tslib_1.__rest(_a, [\"clerk\", \"children\"]);\n    const { signOutCallback, signOutOptions } = props, rest = tslib_1.__rest(props, [\"signOutCallback\", \"signOutOptions\"]);\n    children = (0, utils_1.normalizeWithDefaultValue)(children, 'Sign out');\n    const child = (0, utils_1.assertSingleChild)(children)('SignOutButton');\n    const clickHandler = () => {\n        return clerk.signOut(signOutCallback, signOutOptions);\n    };\n    const wrappedChildClickHandler = async (e) => {\n        await (0, utils_1.safeExecute)(child.props.onClick)(e);\n        return clickHandler();\n    };\n    const childProps = Object.assign(Object.assign({}, rest), { onClick: wrappedChildClickHandler });\n    return react_1.default.cloneElement(child, childProps);\n}, 'SignOutButton');\n//# sourceMappingURL=SignOutButton.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SignUpButton = void 0;\nconst tslib_1 = require(\"tslib\");\nconst react_1 = tslib_1.__importDefault(require(\"react\"));\nconst utils_1 = require(\"../utils\");\nconst withClerk_1 = require(\"./withClerk\");\nexports.SignUpButton = (0, withClerk_1.withClerk)((_a) => {\n    var { clerk, children } = _a, props = tslib_1.__rest(_a, [\"clerk\", \"children\"]);\n    const { afterSignInUrl, afterSignUpUrl, redirectUrl, mode } = props, rest = tslib_1.__rest(props, [\"afterSignInUrl\", \"afterSignUpUrl\", \"redirectUrl\", \"mode\"]);\n    children = (0, utils_1.normalizeWithDefaultValue)(children, 'Sign up');\n    const child = (0, utils_1.assertSingleChild)(children)('SignUpButton');\n    const clickHandler = () => {\n        const opts = { afterSignInUrl, afterSignUpUrl, redirectUrl };\n        if (mode === 'modal') {\n            return clerk.openSignUp(opts);\n        }\n        return clerk.redirectToSignUp(opts);\n    };\n    const wrappedChildClickHandler = async (e) => {\n        await (0, utils_1.safeExecute)(child.props.onClick)(e);\n        return clickHandler();\n    };\n    const childProps = Object.assign(Object.assign({}, rest), { onClick: wrappedChildClickHandler });\n    return react_1.default.cloneElement(child, childProps);\n}, 'SignUpButton');\n//# sourceMappingURL=SignUpButton.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MultisessionAppSupport = exports.AuthenticateWithRedirectCallback = exports.RedirectToUserProfile = exports.RedirectToSignUp = exports.RedirectToSignIn = exports.ClerkLoading = exports.ClerkLoaded = exports.SignedOut = exports.SignedIn = void 0;\nconst tslib_1 = require(\"tslib\");\nconst react_1 = tslib_1.__importDefault(require(\"react\"));\nconst AuthContext_1 = require(\"../contexts/AuthContext\");\nconst IsomorphicClerkContext_1 = require(\"../contexts/IsomorphicClerkContext\");\nconst SessionContext_1 = require(\"../contexts/SessionContext\");\nconst StructureContext_1 = require(\"../contexts/StructureContext\");\nconst withClerk_1 = require(\"./withClerk\");\nconst SignedIn = ({ children }) => {\n    const { userId } = (0, AuthContext_1.useAuthContext)();\n    if (userId) {\n        return react_1.default.createElement(react_1.default.Fragment, null, children);\n    }\n    return null;\n};\nexports.SignedIn = SignedIn;\nconst SignedOut = ({ children }) => {\n    const { userId } = (0, AuthContext_1.useAuthContext)();\n    if (userId === null) {\n        return react_1.default.createElement(react_1.default.Fragment, null, children);\n    }\n    return null;\n};\nexports.SignedOut = SignedOut;\nconst ClerkLoaded = ({ children }) => {\n    const isomorphicClerk = (0, IsomorphicClerkContext_1.useIsomorphicClerkContext)();\n    if (!isomorphicClerk.loaded) {\n        return null;\n    }\n    return react_1.default.createElement(StructureContext_1.LoadedGuarantee, null, children);\n};\nexports.ClerkLoaded = ClerkLoaded;\nconst ClerkLoading = ({ children }) => {\n    const isomorphicClerk = (0, IsomorphicClerkContext_1.useIsomorphicClerkContext)();\n    if (isomorphicClerk.loaded) {\n        return null;\n    }\n    return react_1.default.createElement(react_1.default.Fragment, null, children);\n};\nexports.ClerkLoading = ClerkLoading;\nexports.RedirectToSignIn = (0, withClerk_1.withClerk)((_a) => {\n    var { clerk } = _a, props = tslib_1.__rest(_a, [\"clerk\"]);\n    const { client, session } = clerk;\n    // TODO: Remove temp use of __unstable__environment\n    const { __unstable__environment } = clerk;\n    const hasActiveSessions = client.activeSessions && client.activeSessions.length > 0;\n    react_1.default.useEffect(() => {\n        if (session === null && hasActiveSessions && __unstable__environment) {\n            const { afterSignOutOneUrl } = __unstable__environment.displayConfig;\n            void clerk.navigate(afterSignOutOneUrl);\n        }\n        else {\n            void clerk.redirectToSignIn(props);\n        }\n    }, []);\n    return null;\n}, 'RedirectToSignIn');\nexports.RedirectToSignUp = (0, withClerk_1.withClerk)((_a) => {\n    var { clerk } = _a, props = tslib_1.__rest(_a, [\"clerk\"]);\n    react_1.default.useEffect(() => {\n        void clerk.redirectToSignUp(props);\n    }, []);\n    return null;\n}, 'RedirectToSignUp');\nexports.RedirectToUserProfile = (0, withClerk_1.withClerk)(({ clerk }) => {\n    react_1.default.useEffect(() => {\n        clerk.redirectToUserProfile();\n    }, []);\n    return null;\n}, 'RedirectToUserProfile');\nexports.AuthenticateWithRedirectCallback = (0, withClerk_1.withClerk)((_a) => {\n    var { clerk } = _a, handleRedirectCallbackParams = tslib_1.__rest(_a, [\"clerk\"]);\n    react_1.default.useEffect(() => {\n        void clerk.handleRedirectCallback(handleRedirectCallbackParams);\n    }, []);\n    return null;\n}, 'AuthenticateWithRedirectCallback');\nconst MultisessionAppSupport = ({ children }) => {\n    const session = (0, SessionContext_1.useSessionContext)();\n    return react_1.default.createElement(react_1.default.Fragment, { key: session ? session.id : 'no-users' }, children);\n};\nexports.MultisessionAppSupport = MultisessionAppSupport;\n//# sourceMappingURL=controlComponents.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MultisessionAppSupport = exports.AuthenticateWithRedirectCallback = exports.RedirectToUserProfile = exports.RedirectToSignUp = exports.RedirectToSignIn = exports.SignedIn = exports.SignedOut = exports.ClerkLoading = exports.ClerkLoaded = exports.UserButton = exports.UserProfile = exports.SignIn = exports.SignUp = void 0;\nconst tslib_1 = require(\"tslib\");\nvar uiComponents_1 = require(\"./uiComponents\");\nObject.defineProperty(exports, \"SignUp\", { enumerable: true, get: function () { return uiComponents_1.SignUp; } });\nObject.defineProperty(exports, \"SignIn\", { enumerable: true, get: function () { return uiComponents_1.SignIn; } });\nObject.defineProperty(exports, \"UserProfile\", { enumerable: true, get: function () { return uiComponents_1.UserProfile; } });\nObject.defineProperty(exports, \"UserButton\", { enumerable: true, get: function () { return uiComponents_1.UserButton; } });\nvar controlComponents_1 = require(\"./controlComponents\");\nObject.defineProperty(exports, \"ClerkLoaded\", { enumerable: true, get: function () { return controlComponents_1.ClerkLoaded; } });\nObject.defineProperty(exports, \"ClerkLoading\", { enumerable: true, get: function () { return controlComponents_1.ClerkLoading; } });\nObject.defineProperty(exports, \"SignedOut\", { enumerable: true, get: function () { return controlComponents_1.SignedOut; } });\nObject.defineProperty(exports, \"SignedIn\", { enumerable: true, get: function () { return controlComponents_1.SignedIn; } });\nObject.defineProperty(exports, \"RedirectToSignIn\", { enumerable: true, get: function () { return controlComponents_1.RedirectToSignIn; } });\nObject.defineProperty(exports, \"RedirectToSignUp\", { enumerable: true, get: function () { return controlComponents_1.RedirectToSignUp; } });\nObject.defineProperty(exports, \"RedirectToUserProfile\", { enumerable: true, get: function () { return controlComponents_1.RedirectToUserProfile; } });\nObject.defineProperty(exports, \"AuthenticateWithRedirectCallback\", { enumerable: true, get: function () { return controlComponents_1.AuthenticateWithRedirectCallback; } });\nObject.defineProperty(exports, \"MultisessionAppSupport\", { enumerable: true, get: function () { return controlComponents_1.MultisessionAppSupport; } });\ntslib_1.__exportStar(require(\"./withClerk\"), exports);\ntslib_1.__exportStar(require(\"./withUser\"), exports);\ntslib_1.__exportStar(require(\"./withSession\"), exports);\ntslib_1.__exportStar(require(\"./SignInButton\"), exports);\ntslib_1.__exportStar(require(\"./SignUpButton\"), exports);\ntslib_1.__exportStar(require(\"./SignOutButton\"), exports);\ntslib_1.__exportStar(require(\"./SignInWithMetamaskButton\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UserButton = exports.UserProfile = exports.SignUp = exports.SignIn = void 0;\nconst tslib_1 = require(\"tslib\");\nconst react_1 = tslib_1.__importDefault(require(\"react\"));\nconst withClerk_1 = require(\"./withClerk\");\n// README: <Portal/> should be a class pure component in order for mount and unmount\n// lifecycle props to be invoked correctly. Replacing the class component with a\n// functional component wrapped with a React.memo is not identical to the original\n// class implementation due to React intricacies such as the useEffect’s cleanup\n// seems to run AFTER unmount, while componentWillUnmount runs BEFORE.\n// More information can be found at https://clerkinc.slack.com/archives/C015S0BGH8R/p1624891993016300\n// The function Portal implementation is commented out for future reference.\n// const Portal = React.memo(({ props, mount, unmount }: MountProps) => {\n//   const portalRef = React.createRef<HTMLDivElement>();\n//   useEffect(() => {\n//     if (portalRef.current) {\n//       mount(portalRef.current, props);\n//     }\n//     return () => {\n//       if (portalRef.current) {\n//         unmount(portalRef.current);\n//       }\n//     };\n//   }, []);\n//   return <div ref={portalRef} />;\n// });\n// Portal.displayName = 'ClerkPortal';\nclass Portal extends react_1.default.PureComponent {\n    constructor() {\n        super(...arguments);\n        this.portalRef = react_1.default.createRef();\n    }\n    componentDidMount() {\n        if (this.portalRef.current) {\n            this.props.mount(this.portalRef.current, this.props.props);\n        }\n    }\n    componentWillUnmount() {\n        if (this.portalRef.current) {\n            this.props.unmount(this.portalRef.current);\n        }\n    }\n    render() {\n        return react_1.default.createElement(\"div\", { ref: this.portalRef });\n    }\n}\nexports.SignIn = (0, withClerk_1.withClerk)((_a) => {\n    var { clerk } = _a, props = tslib_1.__rest(_a, [\"clerk\"]);\n    return (react_1.default.createElement(Portal, { mount: clerk.mountSignIn, unmount: clerk.unmountSignIn, props: props }));\n}, 'SignIn');\nexports.SignUp = (0, withClerk_1.withClerk)((_a) => {\n    var { clerk } = _a, props = tslib_1.__rest(_a, [\"clerk\"]);\n    return (react_1.default.createElement(Portal, { mount: clerk.mountSignUp, unmount: clerk.unmountSignUp, props: props }));\n}, 'SignUp');\nexports.UserProfile = (0, withClerk_1.withClerk)((_a) => {\n    var { clerk } = _a, props = tslib_1.__rest(_a, [\"clerk\"]);\n    return (react_1.default.createElement(Portal, { mount: clerk.mountUserProfile, unmount: clerk.unmountUserProfile, props: props }));\n}, 'UserProfile');\nexports.UserButton = (0, withClerk_1.withClerk)((_a) => {\n    var { clerk } = _a, props = tslib_1.__rest(_a, [\"clerk\"]);\n    return (react_1.default.createElement(Portal, { mount: clerk.mountUserButton, unmount: clerk.unmountUserButton, props: props }));\n}, 'UserButton');\n//# sourceMappingURL=uiComponents.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WithClerk = exports.withClerk = void 0;\nconst tslib_1 = require(\"tslib\");\nconst react_1 = tslib_1.__importDefault(require(\"react\"));\nconst IsomorphicClerkContext_1 = require(\"../contexts/IsomorphicClerkContext\");\nconst StructureContext_1 = require(\"../contexts/StructureContext\");\nconst errors_1 = require(\"../errors\");\nconst withClerk = (Component, displayName) => {\n    displayName = displayName || Component.displayName || Component.name || 'Component';\n    Component.displayName = displayName;\n    const HOC = (props) => {\n        const clerk = (0, IsomorphicClerkContext_1.useIsomorphicClerkContext)();\n        if (!clerk.loaded) {\n            return null;\n        }\n        return (react_1.default.createElement(StructureContext_1.LoadedGuarantee, null,\n            react_1.default.createElement(Component, Object.assign({}, props, { clerk: clerk }))));\n    };\n    HOC.displayName = `withClerk(${displayName})`;\n    return HOC;\n};\nexports.withClerk = withClerk;\nconst WithClerk = ({ children }) => {\n    const clerk = (0, IsomorphicClerkContext_1.useIsomorphicClerkContext)();\n    if (typeof children !== 'function') {\n        throw new Error(errors_1.hocChildrenNotAFunctionError);\n    }\n    if (!clerk.loaded) {\n        return null;\n    }\n    return react_1.default.createElement(StructureContext_1.LoadedGuarantee, null, children(clerk));\n};\nexports.WithClerk = WithClerk;\n//# sourceMappingURL=withClerk.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WithSession = exports.withSession = void 0;\nconst tslib_1 = require(\"tslib\");\nconst react_1 = tslib_1.__importDefault(require(\"react\"));\nconst SessionContext_1 = require(\"../contexts/SessionContext\");\nconst errors_1 = require(\"../errors\");\nconst withSession = (Component, displayName) => {\n    displayName = displayName || Component.displayName || Component.name || 'Component';\n    Component.displayName = displayName;\n    const HOC = (props) => {\n        const session = (0, SessionContext_1.useSessionContext)();\n        if (!session) {\n            return null;\n        }\n        return (react_1.default.createElement(Component, Object.assign({}, props, { session: session })));\n    };\n    HOC.displayName = `withSession(${displayName})`;\n    return HOC;\n};\nexports.withSession = withSession;\nconst WithSession = ({ children }) => {\n    const session = (0, SessionContext_1.useSessionContext)();\n    if (typeof children !== 'function') {\n        throw new Error(errors_1.hocChildrenNotAFunctionError);\n    }\n    if (!session) {\n        return null;\n    }\n    return react_1.default.createElement(react_1.default.Fragment, null, children(session));\n};\nexports.WithSession = WithSession;\n//# sourceMappingURL=withSession.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WithUser = exports.withUser = void 0;\nconst tslib_1 = require(\"tslib\");\nconst react_1 = tslib_1.__importDefault(require(\"react\"));\nconst UserContext_1 = require(\"../contexts/UserContext\");\nconst errors_1 = require(\"../errors\");\nconst withUser = (Component, displayName) => {\n    displayName = displayName || Component.displayName || Component.name || 'Component';\n    Component.displayName = displayName;\n    const HOC = (props) => {\n        const user = (0, UserContext_1.useUserContext)();\n        if (!user) {\n            return null;\n        }\n        return (react_1.default.createElement(Component, Object.assign({}, props, { user: user })));\n    };\n    HOC.displayName = `withUser(${displayName})`;\n    return HOC;\n};\nexports.withUser = withUser;\nconst WithUser = ({ children }) => {\n    const user = (0, UserContext_1.useUserContext)();\n    if (typeof children !== 'function') {\n        throw new Error(errors_1.hocChildrenNotAFunctionError);\n    }\n    if (!user) {\n        return null;\n    }\n    return react_1.default.createElement(react_1.default.Fragment, null, children(user));\n};\nexports.WithUser = WithUser;\n//# sourceMappingURL=withUser.js.map","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useAuthContext = exports.AuthContext = void 0;\nconst makeContextAndHook_1 = require(\"../utils/makeContextAndHook\");\n_a = (0, makeContextAndHook_1.makeContextAndHook)('AuthContext'), exports.AuthContext = _a[0], exports.useAuthContext = _a[1];\n//# sourceMappingURL=AuthContext.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ClerkContextProvider = void 0;\nconst tslib_1 = require(\"tslib\");\nconst react_1 = tslib_1.__importDefault(require(\"react\"));\nconst isomorphicClerk_1 = tslib_1.__importDefault(require(\"../isomorphicClerk\"));\nconst AuthContext_1 = require(\"./AuthContext\");\nconst ClientContext_1 = require(\"./ClientContext\");\nconst IsomorphicClerkContext_1 = require(\"./IsomorphicClerkContext\");\nconst SessionContext_1 = require(\"./SessionContext\");\nconst UserContext_1 = require(\"./UserContext\");\nfunction ClerkContextProvider(props) {\n    const { isomorphicClerkOptions, initialState, children } = props;\n    const { isomorphicClerk: clerk, loaded: clerkLoaded } = useLoadedIsomorphicClerk(isomorphicClerkOptions);\n    const [state, setState] = react_1.default.useState({\n        client: clerk.client,\n        session: clerk.session,\n        user: clerk.user,\n    });\n    const derivedState = deriveState(clerkLoaded, state, initialState);\n    react_1.default.useEffect(() => {\n        return clerk.addListener(e => setState(Object.assign({}, e)));\n    }, []);\n    const clerkCtx = react_1.default.useMemo(() => ({ value: clerk }), [clerkLoaded]);\n    const clientCtx = react_1.default.useMemo(() => ({ value: state.client }), [state.client]);\n    const authCtx = react_1.default.useMemo(() => {\n        return {\n            value: { sessionId: derivedState.sessionId, userId: derivedState.userId },\n        };\n    }, [derivedState.sessionId, derivedState.userId]);\n    const userCtx = react_1.default.useMemo(() => {\n        return { value: derivedState.user };\n    }, [derivedState.userId, derivedState.user]);\n    const sessionCtx = react_1.default.useMemo(() => {\n        return { value: derivedState.session };\n    }, [derivedState.sessionId, derivedState.session]);\n    return (react_1.default.createElement(IsomorphicClerkContext_1.IsomorphicClerkContext.Provider, { value: clerkCtx },\n        react_1.default.createElement(ClientContext_1.ClientContext.Provider, { value: clientCtx },\n            react_1.default.createElement(SessionContext_1.SessionContext.Provider, { value: sessionCtx },\n                react_1.default.createElement(AuthContext_1.AuthContext.Provider, { value: authCtx },\n                    react_1.default.createElement(UserContext_1.UserContext.Provider, { value: userCtx }, children))))));\n}\nexports.ClerkContextProvider = ClerkContextProvider;\nconst useLoadedIsomorphicClerk = (options) => {\n    const [loaded, setLoaded] = react_1.default.useState(false);\n    const isomorphicClerk = react_1.default.useMemo(() => isomorphicClerk_1.default.getOrCreateInstance(options), []);\n    react_1.default.useEffect(() => {\n        isomorphicClerk.addOnLoaded(() => setLoaded(true));\n    }, []);\n    return { isomorphicClerk, loaded };\n};\n// This should be provided from isomorphicClerk\n// TODO: move inside isomorphicClerk\nfunction deriveState(clerkLoaded, state, initialState) {\n    if (!clerkLoaded && initialState) {\n        const userId = initialState.userId;\n        // TODO: Instantiate an actual user resource\n        const user = initialState.user;\n        const sessionId = initialState.sessionId;\n        // TODO: Instantiate an actual session resource\n        const session = initialState.session;\n        return { sessionId, session, userId, user };\n    }\n    const userId = state.user ? state.user.id : state.user;\n    const user = state.user;\n    const sessionId = state.session ? state.session.id : state.session;\n    const session = state.session;\n    return { sessionId, session, userId, user };\n}\n//# sourceMappingURL=ClerkContextProvider.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ClerkProvider = void 0;\nconst tslib_1 = require(\"tslib\");\nconst react_1 = tslib_1.__importDefault(require(\"react\"));\nconst errors_1 = require(\"../errors\");\nconst utils_1 = require(\"../utils\");\nconst ClerkContextProvider_1 = require(\"./ClerkContextProvider\");\nconst StructureContext_1 = require(\"./StructureContext\");\nfunction ClerkProviderBase(props) {\n    const { initialState, children, Clerk, frontendApi } = props, options = tslib_1.__rest(props, [\"initialState\", \"children\", \"Clerk\", \"frontendApi\"]);\n    return (react_1.default.createElement(StructureContext_1.StructureContext.Provider, { value: StructureContext_1.StructureContextStates.noGuarantees },\n        react_1.default.createElement(ClerkContextProvider_1.ClerkContextProvider, { initialState: initialState, isomorphicClerkOptions: { frontendApi: frontendApi || '', Clerk, options } }, children)));\n}\nconst ClerkProvider = (0, utils_1.withMaxAllowedInstancesGuard)(ClerkProviderBase, 'ClerkProvider', errors_1.multipleClerkProvidersError);\nexports.ClerkProvider = ClerkProvider;\nClerkProvider.displayName = 'ClerkProvider';\n//# sourceMappingURL=ClerkProvider.js.map","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useClientContext = exports.ClientContext = void 0;\nconst makeContextAndHook_1 = require(\"../utils/makeContextAndHook\");\n/**\n * @internal\n */\n_a = (0, makeContextAndHook_1.makeContextAndHook)('ClientContext'), exports.ClientContext = _a[0], exports.useClientContext = _a[1];\n//# sourceMappingURL=ClientContext.js.map","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useIsomorphicClerkContext = exports.IsomorphicClerkContext = void 0;\nconst makeContextAndHook_1 = require(\"../utils/makeContextAndHook\");\n/**\n * @internal\n */\n_a = (0, makeContextAndHook_1.makeContextAndHook)('IsomorphicClerkContext'), exports.IsomorphicClerkContext = _a[0], exports.useIsomorphicClerkContext = _a[1];\n//# sourceMappingURL=IsomorphicClerkContext.js.map","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useSessionContext = exports.SessionContext = void 0;\nconst makeContextAndHook_1 = require(\"../utils/makeContextAndHook\");\n/**\n * @internal\n */\n_a = (0, makeContextAndHook_1.makeContextAndHook)('SessionContext'), exports.SessionContext = _a[0], exports.useSessionContext = _a[1];\n//# sourceMappingURL=SessionContext.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LoadedGuarantee = exports.StructureContext = exports.StructureContextStates = void 0;\nconst tslib_1 = require(\"tslib\");\nconst react_1 = tslib_1.__importDefault(require(\"react\"));\nconst assertHelpers_1 = require(\"./assertHelpers\");\nexports.StructureContextStates = Object.freeze({\n    noGuarantees: Object.freeze({\n        guaranteedLoaded: false,\n    }),\n    guaranteedLoaded: Object.freeze({\n        guaranteedLoaded: true,\n    }),\n});\nexports.StructureContext = react_1.default.createContext(undefined);\nexports.StructureContext.displayName = 'StructureContext';\nconst useStructureContext = () => {\n    const structureCtx = react_1.default.useContext(exports.StructureContext);\n    (0, assertHelpers_1.assertWrappedByClerkProvider)(structureCtx);\n    return structureCtx;\n};\nconst LoadedGuarantee = ({ children }) => {\n    const structure = useStructureContext();\n    if (structure.guaranteedLoaded) {\n        return react_1.default.createElement(react_1.default.Fragment, null, children);\n    }\n    return (react_1.default.createElement(exports.StructureContext.Provider, { value: exports.StructureContextStates.guaranteedLoaded }, children));\n};\nexports.LoadedGuarantee = LoadedGuarantee;\n//# sourceMappingURL=StructureContext.js.map","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useUserContext = exports.UserContext = void 0;\nconst makeContextAndHook_1 = require(\"../utils/makeContextAndHook\");\n/**\n * @internal\n */\n_a = (0, makeContextAndHook_1.makeContextAndHook)('UserContext'), exports.UserContext = _a[0], exports.useUserContext = _a[1];\n//# sourceMappingURL=UserContext.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assertClerkLoadedGuarantee = exports.assertWrappedByClerkProvider = void 0;\nconst errors_1 = require(\"../errors\");\nfunction assertWrappedByClerkProvider(contextVal) {\n    if (!contextVal) {\n        throw new Error(errors_1.noClerkProviderError);\n    }\n}\nexports.assertWrappedByClerkProvider = assertWrappedByClerkProvider;\nfunction assertClerkLoadedGuarantee(guarantee, hookName) {\n    if (!guarantee) {\n        throw new Error((0, errors_1.noGuaranteedLoadedError)(hookName));\n    }\n}\nexports.assertClerkLoadedGuarantee = assertClerkLoadedGuarantee;\n//# sourceMappingURL=assertHelpers.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ClerkProvider = void 0;\nvar ClerkProvider_1 = require(\"./ClerkProvider\");\nObject.defineProperty(exports, \"ClerkProvider\", { enumerable: true, get: function () { return ClerkProvider_1.ClerkProvider; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.invalidStateError = exports.isMagicLinkError = exports.MagicLinkErrorCode = exports.multipleChildrenInButtonComponent = exports.hocChildrenNotAFunctionError = exports.multipleClerkProvidersError = exports.noGuaranteedUserError = exports.noGuaranteedLoadedError = exports.noClerkProviderError = exports.noFrontendApiError = void 0;\nexports.noFrontendApiError = 'Clerk: You must add the frontendApi prop to your <ClerkProvider>';\nexports.noClerkProviderError = 'Clerk: You must wrap your application in a <ClerkProvider> component.';\nconst noGuaranteedLoadedError = (hookName) => `Clerk: You're calling ${hookName} before there's a guarantee the client has been loaded. Call ${hookName} from a child of <SignedIn>, <SignedOut>, or <ClerkLoaded>, or use the withClerk() HOC.`;\nexports.noGuaranteedLoadedError = noGuaranteedLoadedError;\nconst noGuaranteedUserError = (hookName) => `Clerk: You're calling ${hookName} before there's a guarantee there's an active user. Call ${hookName} from a child of <SignedIn> or use the withUser() HOC.`;\nexports.noGuaranteedUserError = noGuaranteedUserError;\nexports.multipleClerkProvidersError = \"Clerk: You've added multiple <ClerkProvider> components in your React component tree. Wrap your components in a single <ClerkProvider>.\";\nexports.hocChildrenNotAFunctionError = 'Clerk: Child of WithClerk must be a function.';\nconst multipleChildrenInButtonComponent = (name) => `Clerk: You've passed multiple children components to <${name}/>. You can only pass a single child component or text.`;\nexports.multipleChildrenInButtonComponent = multipleChildrenInButtonComponent;\nexports.MagicLinkErrorCode = {\n    Expired: 'expired',\n    Failed: 'failed',\n};\nfunction isMagicLinkError(err) {\n    return !!err && (err.code === exports.MagicLinkErrorCode.Expired || err.code === exports.MagicLinkErrorCode.Failed);\n}\nexports.isMagicLinkError = isMagicLinkError;\nexports.invalidStateError = 'Invalid state. Feel free to submit a bug or reach out to support here: https://clerk.dev/support';\n//# sourceMappingURL=errors.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./useUser\"), exports);\ntslib_1.__exportStar(require(\"./useAuth\"), exports);\ntslib_1.__exportStar(require(\"./useSession\"), exports);\ntslib_1.__exportStar(require(\"./useClerk\"), exports);\ntslib_1.__exportStar(require(\"./useSignIn\"), exports);\ntslib_1.__exportStar(require(\"./useSignUp\"), exports);\ntslib_1.__exportStar(require(\"./useSessionList\"), exports);\ntslib_1.__exportStar(require(\"./useOrganizations\"), exports);\ntslib_1.__exportStar(require(\"./useMagicLink\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useAuth = void 0;\nconst AuthContext_1 = require(\"../contexts/AuthContext\");\nconst IsomorphicClerkContext_1 = require(\"../contexts/IsomorphicClerkContext\");\nconst errors_1 = require(\"../errors\");\nconst utils_1 = require(\"./utils\");\n/**\n * Returns the current auth state, the user and session ids and the `getToken`\n * that can be used to retrieve the given template or the default Clerk token.\n *\n * Until Clerk loads, `isLoaded` will be set to `false`.\n * Once Clerk loads, `isLoaded` will be set to `true`, and you can\n * safely access the `userId` and `sessionId` variables.\n *\n * For projects using NextJs or Remix, you can have immediate access to this data  during SSR\n * simply by using the `withServerSideAuth` helper.\n *\n * @example\n * A simple example:\n *\n * import { useAuth } from '@clerk/clerk-react'\n *\n * function Hello() {\n *   const { isSignedIn, sessionId, userId } = useAuth();\n *   if(isSignedIn) {\n *     return null;\n *   }\n *   console.log(sessionId, userId)\n *   return <div>...</div>\n * }\n *\n * @example\n * Basic example in a NextJs app. This page will be fully rendered during SSR:\n *\n * import { useAuth } from '@clerk/nextjs'\n * import { withServerSideAuth } from '@clerk/nextjs/api'\n *\n * export getServerSideProps = withServerSideAuth();\n *\n * export HelloPage = () => {\n *   const { isSignedIn, sessionId, userId } = useAuth();\n *   console.log(isSignedIn, sessionId, userId)\n *   return <div>...</div>\n * }\n */\nconst useAuth = () => {\n    const { sessionId, userId } = (0, AuthContext_1.useAuthContext)();\n    const isomorphicClerk = (0, IsomorphicClerkContext_1.useIsomorphicClerkContext)();\n    const getToken = (0, utils_1.createGetToken)(isomorphicClerk);\n    const signOut = (0, utils_1.createSignOut)(isomorphicClerk);\n    if (sessionId === undefined && userId === undefined) {\n        return {\n            isLoaded: false,\n            isSignedIn: undefined,\n            sessionId,\n            userId,\n            signOut,\n            getToken,\n        };\n    }\n    if (sessionId === null && userId === null) {\n        return {\n            isLoaded: true,\n            isSignedIn: false,\n            sessionId,\n            userId,\n            signOut,\n            getToken,\n        };\n    }\n    if (!!sessionId && !!userId) {\n        return {\n            isLoaded: true,\n            isSignedIn: true,\n            sessionId,\n            userId,\n            signOut,\n            getToken,\n        };\n    }\n    throw new Error(errors_1.invalidStateError);\n};\nexports.useAuth = useAuth;\n//# sourceMappingURL=useAuth.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useClerk = void 0;\nconst IsomorphicClerkContext_1 = require(\"../contexts/IsomorphicClerkContext\");\nconst useClerk = () => {\n    const isomorphicClerk = (0, IsomorphicClerkContext_1.useIsomorphicClerkContext)();\n    // The actual value is an instance of IsomorphicClerk, not Clerk\n    // we expose is as a Clerk instance\n    return isomorphicClerk;\n};\nexports.useClerk = useClerk;\n//# sourceMappingURL=useClerk.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useMagicLink = void 0;\nconst tslib_1 = require(\"tslib\");\nconst react_1 = tslib_1.__importDefault(require(\"react\"));\nfunction useMagicLink(resource) {\n    const { startMagicLinkFlow, cancelMagicLinkFlow } = react_1.default.useMemo(() => resource.createMagicLinkFlow(), [resource]);\n    react_1.default.useEffect(() => {\n        return cancelMagicLinkFlow;\n    }, []);\n    return {\n        startMagicLinkFlow,\n        cancelMagicLinkFlow,\n    };\n}\nexports.useMagicLink = useMagicLink;\n//# sourceMappingURL=useMagicLink.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useOrganizations = void 0;\nconst IsomorphicClerkContext_1 = require(\"../contexts/IsomorphicClerkContext\");\nconst useOrganizations = () => {\n    const isomorphicClerk = (0, IsomorphicClerkContext_1.useIsomorphicClerkContext)();\n    if (!isomorphicClerk.loaded) {\n        return {\n            isLoaded: false,\n            createOrganization: undefined,\n            getOrganizationMemberships: undefined,\n            getOrganization: undefined,\n        };\n    }\n    const clerk = isomorphicClerk;\n    return {\n        isLoaded: true,\n        createOrganization: clerk.createOrganization,\n        getOrganizationMemberships: clerk.getOrganizationMemberships,\n        getOrganization: clerk.getOrganization,\n    };\n};\nexports.useOrganizations = useOrganizations;\n//# sourceMappingURL=useOrganizations.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useSession = void 0;\nconst SessionContext_1 = require(\"../contexts/SessionContext\");\n/**\n * Returns the current auth state and if a session exists, the session object.\n *\n * Until Clerk loads and initializes, `isLoaded` will be set to `false`.\n * Once Clerk loads, `isLoaded` will be set to `true`, and you can\n * safely access `isSignedIn` state and `session`.\n *\n * For projects using NextJs or Remix, you can make this state available during SSR\n * simply by using the `withServerSideAuth` helper and setting the `loadSession` flag to `true`.\n *\n * @example\n * A simple example:\n *\n * import { useSession } from '@clerk/clerk-react'\n *\n * function Hello() {\n *   const { isSignedIn, session } = useSession();\n *   if(!isSignedIn) {\n *     return null;\n *   }\n *   return <div>{session.updatedAt}</div>\n * }\n *\n * @example\n * Basic example in a NextJs app. This page will be fully rendered during SSR:\n *\n * import { useSession } from '@clerk/nextjs'\n * import { withServerSideAuth } from '@clerk/nextjs/api'\n *\n * export getServerSideProps = withServerSideAuth({ loadSession: true});\n *\n * export HelloPage = () => {\n *   const { isSignedIn, session } = useSession();\n *   if(!isSignedIn) {\n *     return null;\n *   }\n *  return <div>{session.updatedAt}</div>\n * }\n */\nconst useSession = () => {\n    const session = (0, SessionContext_1.useSessionContext)();\n    if (session === undefined) {\n        return { isLoaded: false, isSignedIn: undefined, session: undefined };\n    }\n    if (session === null) {\n        return { isLoaded: true, isSignedIn: false, session: null };\n    }\n    return { isLoaded: true, isSignedIn: true, session };\n};\nexports.useSession = useSession;\n//# sourceMappingURL=useSession.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useSessionList = void 0;\nconst ClientContext_1 = require(\"../contexts/ClientContext\");\nconst IsomorphicClerkContext_1 = require(\"../contexts/IsomorphicClerkContext\");\nconst useSessionList = () => {\n    const isomorphicClerk = (0, IsomorphicClerkContext_1.useIsomorphicClerkContext)();\n    const client = (0, ClientContext_1.useClientContext)();\n    if (!client) {\n        return { isLoaded: false, sessions: undefined, setSession: undefined };\n    }\n    return { isLoaded: true, sessions: client.sessions, setSession: isomorphicClerk.setSession };\n};\nexports.useSessionList = useSessionList;\n//# sourceMappingURL=useSessionList.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useSignIn = void 0;\nconst ClientContext_1 = require(\"../contexts/ClientContext\");\nconst IsomorphicClerkContext_1 = require(\"../contexts/IsomorphicClerkContext\");\nconst useSignIn = () => {\n    const isomorphicClerk = (0, IsomorphicClerkContext_1.useIsomorphicClerkContext)();\n    const client = (0, ClientContext_1.useClientContext)();\n    if (!client) {\n        return { isLoaded: false, signIn: undefined, setSession: undefined };\n    }\n    return { isLoaded: true, signIn: client.signIn, setSession: isomorphicClerk.setSession };\n};\nexports.useSignIn = useSignIn;\n//# sourceMappingURL=useSignIn.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useSignUp = void 0;\nconst ClientContext_1 = require(\"../contexts/ClientContext\");\nconst IsomorphicClerkContext_1 = require(\"../contexts/IsomorphicClerkContext\");\nconst useSignUp = () => {\n    const isomorphicClerk = (0, IsomorphicClerkContext_1.useIsomorphicClerkContext)();\n    const client = (0, ClientContext_1.useClientContext)();\n    if (!client) {\n        return { isLoaded: false, signUp: undefined, setSession: undefined };\n    }\n    return { isLoaded: true, signUp: client.signUp, setSession: isomorphicClerk.setSession };\n};\nexports.useSignUp = useSignUp;\n//# sourceMappingURL=useSignUp.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useUser = void 0;\nconst UserContext_1 = require(\"../contexts/UserContext\");\n/**\n * Returns the current auth state and if a user is signed in, the user object.\n *\n * Until Clerk loads and initializes, `isLoaded` will be set to `false`.\n * Once Clerk loads, `isLoaded` will be set to `true`, and you can\n * safely access `isSignedIn` state and `user`.\n *\n * For projects using NextJs or Remix, you can make this state available during SSR\n * simply by using the `withServerSideAuth` helper and setting the `loadUser` flag to `true`.\n *\n * If you want to disable strict type checking, pass the generic `guaranteed` type flag\n * as shown in the last example below.\n *\n * @example\n * A simple example:\n *\n * import { useUser } from '@clerk/clerk-react'\n *\n * function Hello() {\n *   const { isSignedIn, user } = useUser();\n *   if(!isSignedIn) {\n *     return null;\n *   }\n *   return <div>Hello, {user.firstName}</div>\n * }\n *\n * @example\n * Basic example in a NextJs app. This page will be fully rendered during SSR:\n *\n * import { useUser } from '@clerk/nextjs'\n * import { withServerSideAuth } from '@clerk/nextjs/api'\n *\n * export getServerSideProps = withServerSideAuth({ loadUser: true});\n *\n * export HelloPage = () => {\n *   const { isSignedIn, user } = useUser();\n *   if(!isSignedIn) {\n *     return null;\n *   }\n *   return <div>Hello, {user.firstName}</div>\n * }\n *\n * @example\n * Disable strict type checking:\n *\n * function Hello() {\n *   const { user } = useUser<guaranteed>();\n *   return <div>Hello, {user.firstName}</div>\n * }\n */\nfunction useUser() {\n    const user = (0, UserContext_1.useUserContext)();\n    if (user === undefined) {\n        return { isLoaded: false, isSignedIn: undefined, user: undefined };\n    }\n    if (user === null) {\n        return { isLoaded: true, isSignedIn: false, user: null };\n    }\n    return { isLoaded: true, isSignedIn: true, user };\n}\nexports.useUser = useUser;\n//# sourceMappingURL=useUser.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createSignOut = exports.createGetToken = void 0;\n/**\n * @internal\n */\nconst clerkLoaded = (isomorphicClerk) => {\n    return new Promise(resolve => {\n        if (isomorphicClerk.loaded) {\n            resolve();\n        }\n        isomorphicClerk.addOnLoaded(resolve);\n    });\n};\n/**\n * @internal\n */\nconst createGetToken = (isomorphicClerk) => async (options) => {\n    await clerkLoaded(isomorphicClerk);\n    if (!isomorphicClerk.session) {\n        return null;\n    }\n    return isomorphicClerk.session.getToken(options);\n};\nexports.createGetToken = createGetToken;\n/**\n * @internal\n */\nconst createSignOut = (isomorphicClerk) => async (...args) => {\n    await clerkLoaded(isomorphicClerk);\n    return isomorphicClerk.signOut(...args);\n};\nexports.createSignOut = createSignOut;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useMagicLink = exports.MagicLinkErrorCode = exports.isMagicLinkError = void 0;\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./contexts\"), exports);\ntslib_1.__exportStar(require(\"./components\"), exports);\ntslib_1.__exportStar(require(\"./hooks\"), exports);\nvar errors_1 = require(\"./errors\");\nObject.defineProperty(exports, \"isMagicLinkError\", { enumerable: true, get: function () { return errors_1.isMagicLinkError; } });\nObject.defineProperty(exports, \"MagicLinkErrorCode\", { enumerable: true, get: function () { return errors_1.MagicLinkErrorCode; } });\nvar useMagicLink_1 = require(\"./hooks/useMagicLink\");\nObject.defineProperty(exports, \"useMagicLink\", { enumerable: true, get: function () { return useMagicLink_1.useMagicLink; } });\n/**\n * Vite does not define `global` by default\n * One workaround is to use the `define` config prop\n * https://vitejs.dev/config/#define\n * We are solving this in the SDK level to reduce setup steps.\n */\nif (typeof global === 'undefined' && typeof window !== 'undefined' && !window.global) {\n    window.global = window;\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LIB_NAME = exports.LIB_VERSION = void 0;\n/** DO NOT EDIT: This file is automatically generated by ../scripts/info.js */\nexports.LIB_VERSION = '3.2.13';\nexports.LIB_NAME = '@clerk/clerk-react';\n//# sourceMappingURL=info.js.map","\"use strict\";\nvar _a, _IsomorphicClerk_loaded, _IsomorphicClerk_instance;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\nconst errors_1 = require(\"./errors\");\nconst utils_1 = require(\"./utils\");\nclass IsomorphicClerk {\n    constructor(params) {\n        this.clerkjs = null;\n        this.preopenSignIn = null;\n        this.preopenSignUp = null;\n        this.premountSignInNodes = new Map();\n        this.premountSignUpNodes = new Map();\n        this.premountUserProfileNodes = new Map();\n        this.premountUserButtonNodes = new Map();\n        this.premountMethodCalls = new Map();\n        this.loadedListeners = [];\n        _IsomorphicClerk_loaded.set(this, false);\n        this.addOnLoaded = (cb) => {\n            this.loadedListeners.push(cb);\n        };\n        this.emitLoaded = () => {\n            this.loadedListeners.forEach(cb => cb());\n            this.loadedListeners = [];\n        };\n        this.hydrateClerkJS = async (clerkjs) => {\n            if (!clerkjs) {\n                throw new Error('Failed to hydrate latest Clerk JS');\n            }\n            this.clerkjs = clerkjs;\n            this.premountMethodCalls.forEach(cb => cb());\n            if (this.preopenSignIn !== null) {\n                clerkjs.openSignIn(this.preopenSignIn);\n            }\n            if (this.preopenSignUp !== null) {\n                clerkjs.openSignUp(this.preopenSignUp);\n            }\n            this.premountSignInNodes.forEach((props, node) => {\n                clerkjs.mountSignIn(node, props);\n            });\n            this.premountSignUpNodes.forEach((props, node) => {\n                clerkjs.mountSignUp(node, props);\n            });\n            this.premountUserProfileNodes.forEach((props, node) => {\n                clerkjs.mountUserProfile(node, props);\n            });\n            this.premountUserButtonNodes.forEach((props, node) => {\n                clerkjs.mountUserButton(node, props);\n            });\n            tslib_1.__classPrivateFieldSet(this, _IsomorphicClerk_loaded, true, \"f\");\n            this.emitLoaded();\n            return this.clerkjs;\n        };\n        this.setSession = (session, beforeEmit) => {\n            if (this.clerkjs) {\n                return this.clerkjs.setSession(session, beforeEmit);\n            }\n            else {\n                return Promise.reject();\n            }\n        };\n        this.openSignIn = (props) => {\n            if (this.clerkjs && tslib_1.__classPrivateFieldGet(this, _IsomorphicClerk_loaded, \"f\")) {\n                this.clerkjs.openSignIn(props);\n            }\n            else {\n                this.preopenSignIn = props;\n            }\n        };\n        this.closeSignIn = () => {\n            if (this.clerkjs && tslib_1.__classPrivateFieldGet(this, _IsomorphicClerk_loaded, \"f\")) {\n                this.clerkjs.closeSignIn();\n            }\n            else {\n                this.preopenSignIn = null;\n            }\n        };\n        this.openSignUp = (props) => {\n            if (this.clerkjs && tslib_1.__classPrivateFieldGet(this, _IsomorphicClerk_loaded, \"f\")) {\n                this.clerkjs.openSignUp(props);\n            }\n            else {\n                this.preopenSignUp = props;\n            }\n        };\n        this.closeSignUp = () => {\n            if (this.clerkjs && tslib_1.__classPrivateFieldGet(this, _IsomorphicClerk_loaded, \"f\")) {\n                this.clerkjs.closeSignUp();\n            }\n            else {\n                this.preopenSignUp = null;\n            }\n        };\n        this.mountSignIn = (node, props) => {\n            if (this.clerkjs && tslib_1.__classPrivateFieldGet(this, _IsomorphicClerk_loaded, \"f\")) {\n                this.clerkjs.mountSignIn(node, props);\n            }\n            else {\n                this.premountSignInNodes.set(node, props);\n            }\n        };\n        this.unmountSignIn = (node) => {\n            if (this.clerkjs && tslib_1.__classPrivateFieldGet(this, _IsomorphicClerk_loaded, \"f\")) {\n                this.clerkjs.unmountSignIn(node);\n            }\n            else {\n                this.premountSignInNodes.delete(node);\n            }\n        };\n        this.mountSignUp = (node, props) => {\n            if (this.clerkjs && tslib_1.__classPrivateFieldGet(this, _IsomorphicClerk_loaded, \"f\")) {\n                this.clerkjs.mountSignUp(node, props);\n            }\n            else {\n                this.premountSignUpNodes.set(node, props);\n            }\n        };\n        this.unmountSignUp = (node) => {\n            if (this.clerkjs && tslib_1.__classPrivateFieldGet(this, _IsomorphicClerk_loaded, \"f\")) {\n                this.clerkjs.unmountSignUp(node);\n            }\n            else {\n                this.premountSignUpNodes.delete(node);\n            }\n        };\n        this.mountUserProfile = (node, props) => {\n            if (this.clerkjs && tslib_1.__classPrivateFieldGet(this, _IsomorphicClerk_loaded, \"f\")) {\n                this.clerkjs.mountUserProfile(node, props);\n            }\n            else {\n                this.premountUserProfileNodes.set(node, props);\n            }\n        };\n        this.unmountUserProfile = (node) => {\n            if (this.clerkjs && tslib_1.__classPrivateFieldGet(this, _IsomorphicClerk_loaded, \"f\")) {\n                this.clerkjs.unmountUserProfile(node);\n            }\n            else {\n                this.premountUserProfileNodes.delete(node);\n            }\n        };\n        this.mountUserButton = (node, userButtonProps) => {\n            if (this.clerkjs && tslib_1.__classPrivateFieldGet(this, _IsomorphicClerk_loaded, \"f\")) {\n                this.clerkjs.mountUserButton(node, userButtonProps);\n            }\n            else {\n                this.premountUserButtonNodes.set(node, userButtonProps);\n            }\n        };\n        this.unmountUserButton = (node) => {\n            if (this.clerkjs && tslib_1.__classPrivateFieldGet(this, _IsomorphicClerk_loaded, \"f\")) {\n                this.clerkjs.unmountUserButton(node);\n            }\n            else {\n                this.premountUserButtonNodes.delete(node);\n            }\n        };\n        this.addListener = (listener) => {\n            const callback = () => { var _b; return (_b = this.clerkjs) === null || _b === void 0 ? void 0 : _b.addListener(listener); };\n            if (this.clerkjs) {\n                callback();\n            }\n            else {\n                this.premountMethodCalls.set('addListener', callback);\n            }\n        };\n        this.navigate = (to) => {\n            const callback = () => { var _b; return (_b = this.clerkjs) === null || _b === void 0 ? void 0 : _b.navigate(to); };\n            if (this.clerkjs && tslib_1.__classPrivateFieldGet(this, _IsomorphicClerk_loaded, \"f\")) {\n                void callback();\n            }\n            else {\n                this.premountMethodCalls.set('navigate', callback);\n            }\n        };\n        this.redirectToSignIn = (opts) => {\n            const callback = () => { var _b; return (_b = this.clerkjs) === null || _b === void 0 ? void 0 : _b.redirectToSignIn(opts); };\n            if (this.clerkjs && tslib_1.__classPrivateFieldGet(this, _IsomorphicClerk_loaded, \"f\")) {\n                void callback();\n            }\n            else {\n                this.premountMethodCalls.set('redirectToSignIn', callback);\n            }\n        };\n        this.redirectToSignUp = (opts) => {\n            const callback = () => { var _b; return (_b = this.clerkjs) === null || _b === void 0 ? void 0 : _b.redirectToSignUp(opts); };\n            if (this.clerkjs && tslib_1.__classPrivateFieldGet(this, _IsomorphicClerk_loaded, \"f\")) {\n                void callback();\n            }\n            else {\n                this.premountMethodCalls.set('redirectToSignUp', callback);\n            }\n        };\n        this.redirectToUserProfile = () => {\n            const callback = () => { var _b; return (_b = this.clerkjs) === null || _b === void 0 ? void 0 : _b.redirectToUserProfile(); };\n            if (this.clerkjs && tslib_1.__classPrivateFieldGet(this, _IsomorphicClerk_loaded, \"f\")) {\n                callback();\n            }\n            else {\n                this.premountMethodCalls.set('redirectToUserProfile', callback);\n            }\n        };\n        this.handleRedirectCallback = (params) => {\n            const callback = () => { var _b; return (_b = this.clerkjs) === null || _b === void 0 ? void 0 : _b.handleRedirectCallback(params); };\n            if (this.clerkjs && tslib_1.__classPrivateFieldGet(this, _IsomorphicClerk_loaded, \"f\")) {\n                void callback();\n            }\n            else {\n                this.premountMethodCalls.set('handleRedirectCallback', callback);\n            }\n        };\n        this.handleMagicLinkVerification = async (params) => {\n            const callback = () => { var _b; return (_b = this.clerkjs) === null || _b === void 0 ? void 0 : _b.handleMagicLinkVerification(params); };\n            if (this.clerkjs && tslib_1.__classPrivateFieldGet(this, _IsomorphicClerk_loaded, \"f\")) {\n                return callback();\n            }\n            else {\n                this.premountMethodCalls.set('handleMagicLinkVerification', callback);\n            }\n        };\n        this.authenticateWithMetamask = async (params) => {\n            const callback = () => { var _b; return (_b = this.clerkjs) === null || _b === void 0 ? void 0 : _b.authenticateWithMetamask(params); };\n            if (this.clerkjs && tslib_1.__classPrivateFieldGet(this, _IsomorphicClerk_loaded, \"f\")) {\n                return callback();\n            }\n            else {\n                this.premountMethodCalls.set('authenticateWithMetamask', callback);\n            }\n        };\n        this.createOrganization = async (params) => {\n            const callback = () => { var _b; return (_b = this.clerkjs) === null || _b === void 0 ? void 0 : _b.createOrganization(params); };\n            if (this.clerkjs && tslib_1.__classPrivateFieldGet(this, _IsomorphicClerk_loaded, \"f\")) {\n                return callback();\n            }\n            else {\n                this.premountMethodCalls.set('createOrganization', callback);\n            }\n        };\n        this.getOrganizationMemberships = async () => {\n            const callback = () => { var _b; return (_b = this.clerkjs) === null || _b === void 0 ? void 0 : _b.getOrganizationMemberships(); };\n            if (this.clerkjs && tslib_1.__classPrivateFieldGet(this, _IsomorphicClerk_loaded, \"f\")) {\n                return callback();\n            }\n            else {\n                this.premountMethodCalls.set('getOrganizationMemberships', callback);\n            }\n        };\n        this.getOrganization = async (organizationId) => {\n            const callback = () => { var _b; return (_b = this.clerkjs) === null || _b === void 0 ? void 0 : _b.getOrganization(organizationId); };\n            if (this.clerkjs && tslib_1.__classPrivateFieldGet(this, _IsomorphicClerk_loaded, \"f\")) {\n                return callback();\n            }\n            else {\n                this.premountMethodCalls.set('getOrganization', callback);\n            }\n        };\n        this.signOut = async (signOutCallbackOrOptions, options) => {\n            const callback = () => { var _b; return (_b = this.clerkjs) === null || _b === void 0 ? void 0 : _b.signOut(signOutCallbackOrOptions, options); };\n            if (this.clerkjs && tslib_1.__classPrivateFieldGet(this, _IsomorphicClerk_loaded, \"f\")) {\n                return callback();\n            }\n            else {\n                this.premountMethodCalls.set('signOut', callback);\n            }\n        };\n        const { Clerk = null, frontendApi, options = {} } = params || {};\n        this.frontendApi = frontendApi;\n        this.options = options;\n        this.Clerk = Clerk;\n        this.mode = (0, utils_1.inClientSide)() ? 'browser' : 'server';\n        void this.loadClerkJS();\n    }\n    get loaded() {\n        return tslib_1.__classPrivateFieldGet(this, _IsomorphicClerk_loaded, \"f\");\n    }\n    static getOrCreateInstance(params) {\n        // During SSR: a new instance should be created for every request\n        // During CSR: use the cached instance for the whole lifetime of the app\n        // This method should be idempotent in both scenarios\n        if (!(0, utils_1.inClientSide)() || !tslib_1.__classPrivateFieldGet(this, _a, \"f\", _IsomorphicClerk_instance)) {\n            tslib_1.__classPrivateFieldSet(this, _a, new IsomorphicClerk(params), \"f\", _IsomorphicClerk_instance);\n        }\n        return tslib_1.__classPrivateFieldGet(this, _a, \"f\", _IsomorphicClerk_instance);\n    }\n    async loadClerkJS() {\n        if (this.mode !== 'browser' || tslib_1.__classPrivateFieldGet(this, _IsomorphicClerk_loaded, \"f\")) {\n            return;\n        }\n        if (!this.frontendApi) {\n            this.throwError(errors_1.noFrontendApiError);\n        }\n        try {\n            if (this.Clerk) {\n                // Set a fixed Clerk version\n                let c;\n                if ((0, utils_1.isConstructor)(this.Clerk)) {\n                    // Construct a new Clerk object if a constructor is passed\n                    c = new this.Clerk(this.frontendApi);\n                    await c.load(this.options);\n                }\n                else {\n                    // Otherwise use the instantiated Clerk object\n                    c = this.Clerk;\n                    if (!c.isReady()) {\n                        await c.load(this.options);\n                    }\n                }\n                global.Clerk = c;\n            }\n            else {\n                // Hot-load latest ClerkJS from Clerk CDN\n                await (0, utils_1.loadScript)({\n                    frontendApi: this.frontendApi,\n                    scriptUrl: this.options.clerkJSUrl,\n                    scriptVariant: this.options.clerkJSVariant,\n                });\n                if (!global.Clerk) {\n                    throw new Error('Failed to download latest ClerkJS. Contact support@clerk.dev.');\n                }\n                await global.Clerk.load(this.options);\n            }\n            return this.hydrateClerkJS(global.Clerk);\n        }\n        catch (err) {\n            let message;\n            if (err instanceof Error) {\n                message = err.message;\n            }\n            else {\n                message = String(err);\n            }\n            this.throwError(message);\n            return;\n        }\n    }\n    // Custom wrapper to throw an error, since we need to apply different handling between\n    // production and development builds. In Next.js we can throw a full screen error in\n    // development mode. However, in production throwing an error results in an infinite loop\n    // as shown at https://github.com/vercel/next.js/issues/6973\n    throwError(errorMsg) {\n        if (process.env.NODE_ENV === 'production') {\n            console.error(errorMsg);\n        }\n        throw new Error(errorMsg);\n    }\n    get version() {\n        var _b;\n        return (_b = this.clerkjs) === null || _b === void 0 ? void 0 : _b.version;\n    }\n    get client() {\n        if (this.clerkjs) {\n            return this.clerkjs.client;\n            // TODO: add ssr condition\n        }\n        else {\n            return undefined;\n        }\n    }\n    get session() {\n        if (this.clerkjs) {\n            return this.clerkjs.session;\n            // TODO: add ssr condition\n        }\n        else {\n            return undefined;\n        }\n    }\n    get user() {\n        if (this.clerkjs) {\n            return this.clerkjs.user;\n        }\n        else {\n            return undefined;\n        }\n    }\n    // TODO: Remove temp use of __unstable__environment\n    get __unstable__environment() {\n        if (this.clerkjs) {\n            return this.clerkjs.__unstable__environment;\n            // TODO: add ssr condition\n        }\n        else {\n            return undefined;\n        }\n    }\n}\nexports.default = IsomorphicClerk;\n_a = IsomorphicClerk, _IsomorphicClerk_loaded = new WeakMap();\n_IsomorphicClerk_instance = { value: void 0 };\n//# sourceMappingURL=isomorphicClerk.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.safeExecute = exports.normalizeWithDefaultValue = exports.assertSingleChild = void 0;\nconst tslib_1 = require(\"tslib\");\nconst react_1 = tslib_1.__importDefault(require(\"react\"));\nconst errors_1 = require(\"../errors\");\nconst assertSingleChild = (children) => (name) => {\n    try {\n        return react_1.default.Children.only(children);\n    }\n    catch (e) {\n        throw new Error((0, errors_1.multipleChildrenInButtonComponent)(name));\n    }\n};\nexports.assertSingleChild = assertSingleChild;\nconst normalizeWithDefaultValue = (children, defaultText) => {\n    if (!children) {\n        children = defaultText;\n    }\n    if (typeof children === 'string') {\n        children = react_1.default.createElement(\"button\", null, children);\n    }\n    return children;\n};\nexports.normalizeWithDefaultValue = normalizeWithDefaultValue;\nconst safeExecute = (cb) => (...args) => {\n    if (cb && typeof cb === 'function') {\n        return cb(...args);\n    }\n};\nexports.safeExecute = safeExecute;\n//# sourceMappingURL=childrenUtils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.inClientSide = void 0;\nconst inClientSide = () => {\n    return typeof window !== 'undefined';\n};\nexports.inClientSide = inClientSide;\n//# sourceMappingURL=inClientSide.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./isConstructor\"), exports);\ntslib_1.__exportStar(require(\"./scriptLoader\"), exports);\ntslib_1.__exportStar(require(\"./useMaxAllowedInstancesGuard\"), exports);\ntslib_1.__exportStar(require(\"./childrenUtils\"), exports);\ntslib_1.__exportStar(require(\"./inClientSide\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isConstructor = void 0;\nfunction isConstructor(f) {\n    return typeof f === 'function';\n}\nexports.isConstructor = isConstructor;\n//# sourceMappingURL=isConstructor.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeContextAndHook = void 0;\nconst tslib_1 = require(\"tslib\");\nconst react_1 = tslib_1.__importDefault(require(\"react\"));\nconst assertHelpers_1 = require(\"../contexts/assertHelpers\");\nfunction makeContextAndHook(displayName, assertCtxFn = assertHelpers_1.assertWrappedByClerkProvider) {\n    const Ctx = react_1.default.createContext(undefined);\n    Ctx.displayName = displayName;\n    const useCtx = () => {\n        const ctx = react_1.default.useContext(Ctx);\n        assertCtxFn(ctx);\n        return ctx.value;\n    };\n    return [Ctx, useCtx];\n}\nexports.makeContextAndHook = makeContextAndHook;\n//# sourceMappingURL=makeContextAndHook.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadScript = void 0;\nconst info_1 = require(\"../info\");\nconst FAILED_TO_LOAD_ERROR = 'Clerk: Failed to load Clerk';\nconst MISSING_PROVIDER_ERROR = 'Clerk: Missing provider';\nconst MISSING_BODY_ERROR = 'Clerk: Missing <body> element.';\nconst UNSTABLE_RELEASE_TAGS = ['staging'];\nconst extractNonStableTag = (packageVersion) => {\n    var _a;\n    const tag = (_a = packageVersion.match(/-(.*)\\./)) === null || _a === void 0 ? void 0 : _a[1];\n    return tag && UNSTABLE_RELEASE_TAGS.includes(tag) ? tag : undefined;\n};\nconst extractMajorVersion = (packageVersion) => {\n    return packageVersion.split('.')[0];\n};\nconst forceStagingReleaseForClerkFapi = (frontendApi) => {\n    return (frontendApi.endsWith('.lclstage.dev') ||\n        frontendApi.endsWith('.stgstage.dev') ||\n        frontendApi.endsWith('.clerkstage.dev'));\n};\nfunction getScriptSrc({ frontendApi, scriptUrl, scriptVariant = '' }) {\n    if (scriptUrl) {\n        return scriptUrl;\n    }\n    const variant = scriptVariant ? `${scriptVariant.replace(/\\.+$/, '')}.` : '';\n    const getUrlForTag = (target) => {\n        return `https://${frontendApi}/npm/@clerk/clerk-js@${target}/dist/clerk.${variant}browser.js`;\n    };\n    if (forceStagingReleaseForClerkFapi(frontendApi)) {\n        return getUrlForTag('staging');\n    }\n    const nonStableTag = extractNonStableTag(info_1.LIB_VERSION);\n    if (nonStableTag) {\n        return getUrlForTag(nonStableTag);\n    }\n    return getUrlForTag(extractMajorVersion(info_1.LIB_VERSION));\n}\nfunction loadScript(params) {\n    return new Promise((resolve, reject) => {\n        const { frontendApi } = params;\n        if (global.Clerk) {\n            resolve(null);\n        }\n        if (!frontendApi) {\n            reject(MISSING_PROVIDER_ERROR);\n        }\n        const script = document.createElement('script');\n        const src = getScriptSrc(params);\n        script.setAttribute('data-clerk-frontend-api', frontendApi);\n        script.setAttribute('crossorigin', 'anonymous');\n        script.async = true;\n        if (!document.body) {\n            reject(MISSING_BODY_ERROR);\n        }\n        script.addEventListener('load', () => resolve(script));\n        script.addEventListener('error', () => reject(FAILED_TO_LOAD_ERROR));\n        script.src = src;\n        document.body.appendChild(script);\n    });\n}\nexports.loadScript = loadScript;\n//# sourceMappingURL=scriptLoader.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.withMaxAllowedInstancesGuard = exports.useMaxAllowedInstancesGuard = void 0;\nconst tslib_1 = require(\"tslib\");\nconst react_1 = tslib_1.__importDefault(require(\"react\"));\nconst counts = new Map();\nfunction useMaxAllowedInstancesGuard(name, error, maxCount = 1) {\n    react_1.default.useEffect(() => {\n        const count = counts.get(name) || 0;\n        if (count == maxCount) {\n            throw new Error(error);\n        }\n        counts.set(name, count + 1);\n        return () => {\n            counts.set(name, (counts.get(name) || 1) - 1);\n        };\n    }, []);\n}\nexports.useMaxAllowedInstancesGuard = useMaxAllowedInstancesGuard;\nfunction withMaxAllowedInstancesGuard(WrappedComponent, name, error) {\n    const displayName = WrappedComponent.displayName || WrappedComponent.name || name || 'Component';\n    const Hoc = (props) => {\n        useMaxAllowedInstancesGuard(name, error);\n        return react_1.default.createElement(WrappedComponent, Object.assign({}, props));\n    };\n    Hoc.displayName = `withMaxAllowedInstancesGuard(${displayName})`;\n    return Hoc;\n}\nexports.withMaxAllowedInstancesGuard = withMaxAllowedInstancesGuard;\n//# sourceMappingURL=useMaxAllowedInstancesGuard.js.map","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n    if (typeof b !== \"function\" && b !== null)\r\n        throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    var desc = Object.getOwnPropertyDescriptor(m, k);\r\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n        desc = { enumerable: true, get: function() { return m[k]; } };\r\n    }\r\n    Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n        if (ar || !(i in from)) {\r\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n            ar[i] = from[i];\r\n        }\r\n    }\r\n    return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n    if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n    return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","\"use strict\";\nexports.__esModule = true;\nexports.ClerkProvider = void 0;\nvar tslib_1 = require(\"tslib\");\nvar clerk_react_1 = require(\"@clerk/clerk-react\");\nvar router_1 = require(\"next/router\");\nvar react_1 = tslib_1.__importDefault(require(\"react\"));\ntslib_1.__exportStar(require(\"@clerk/clerk-react\"), exports);\nvar NO_FRONTEND_API_ERR = 'The NEXT_PUBLIC_CLERK_FRONTEND_API environment variable must be set to use the ClerkProvider component.';\nfunction ClerkProvider(_a) {\n    var children = _a.children, rest = tslib_1.__rest(_a, [\"children\"]);\n    // @ts-expect-error\n    // Allow for overrides without making the type public\n    var frontendApi = rest.frontendApi, __clerk_ssr_state = rest.__clerk_ssr_state, clerkJSUrl = rest.clerkJSUrl, restProps = tslib_1.__rest(rest, [\"frontendApi\", \"__clerk_ssr_state\", \"clerkJSUrl\"]);\n    var push = (0, router_1.useRouter)().push;\n    if (frontendApi == undefined && !process.env.NEXT_PUBLIC_CLERK_FRONTEND_API) {\n        throw Error(NO_FRONTEND_API_ERR);\n    }\n    clerk_react_1.ClerkProvider.displayName = 'ReactClerkProvider';\n    return (react_1[\"default\"].createElement(clerk_react_1.ClerkProvider, tslib_1.__assign({ frontendApi: frontendApi || process.env.NEXT_PUBLIC_CLERK_FRONTEND_API, clerkJSUrl: clerkJSUrl || process.env.NEXT_PUBLIC_CLERK_JS, navigate: function (to) { return push(to); }, initialState: __clerk_ssr_state }, restProps), children));\n}\nexports.ClerkProvider = ClerkProvider;\n//# sourceMappingURL=index.js.map","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./client\"), exports);\n//# sourceMappingURL=index.js.map","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n    if (typeof b !== \"function\" && b !== null)\r\n        throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    var desc = Object.getOwnPropertyDescriptor(m, k);\r\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n        desc = { enumerable: true, get: function() { return m[k]; } };\r\n    }\r\n    Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n        if (ar || !(i in from)) {\r\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n            ar[i] = from[i];\r\n        }\r\n    }\r\n    return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n    if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n    return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3)\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} value\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string} type\n * @param {string[]} props\n * @param {object[]} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {string} type\n */\nexport function copy (value, root, type) {\n\treturn node(value, root.root, root.parent, type, root.props, root.children, 0)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\treturn delimiter(type === 34 || type === 39 ? type : character)\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\n","import {IMPORT, COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT} from './Enum.js'\nimport {hash, charat, strlen, indexof, replace} from './Utility.js'\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {string}\n */\nexport function prefix (value, length) {\n\tswitch (hash(value, length)) {\n\t\t// color-adjust\n\t\tcase 5103:\n\t\t\treturn WEBKIT + 'print-' + value + value\n\t\t// animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\t\tcase 5737: case 4201: case 3177: case 3433: case 1641: case 4457: case 2921:\n\t\t// text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\t\tcase 5572: case 6356: case 5844: case 3191: case 6645: case 3005:\n\t\t// mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\t\tcase 6391: case 5879: case 5623: case 6135: case 4599: case 4855:\n\t\t// background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\t\tcase 4215: case 6389: case 5109: case 5365: case 5621: case 3829:\n\t\t\treturn WEBKIT + value + value\n\t\t// appearance, user-select, transform, hyphens, text-size-adjust\n\t\tcase 5349: case 4246: case 4810: case 6968: case 2756:\n\t\t\treturn WEBKIT + value + MOZ + value + MS + value + value\n\t\t// flex, flex-direction\n\t\tcase 6828: case 4268:\n\t\t\treturn WEBKIT + value + MS + value + value\n\t\t// order\n\t\tcase 6165:\n\t\t\treturn WEBKIT + value + MS + 'flex-' + value + value\n\t\t// align-items\n\t\tcase 5187:\n\t\t\treturn WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value\n\t\t// align-self\n\t\tcase 5443:\n\t\t\treturn WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value\n\t\t// align-content\n\t\tcase 4675:\n\t\t\treturn WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value\n\t\t// flex-shrink\n\t\tcase 5548:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value\n\t\t// flex-basis\n\t\tcase 5292:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value\n\t\t// flex-grow\n\t\tcase 6060:\n\t\t\treturn WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value\n\t\t// transition\n\t\tcase 4554:\n\t\t\treturn WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value\n\t\t// cursor\n\t\tcase 6187:\n\t\t\treturn replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value\n\t\t// background, background-image\n\t\tcase 5495: case 3959:\n\t\t\treturn replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1')\n\t\t// justify-content\n\t\tcase 4968:\n\t\t\treturn replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value\n\t\t// (margin|padding)-inline-(start|end)\n\t\tcase 4095: case 3583: case 4068: case 2532:\n\t\t\treturn replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value\n\t\t// (min|max)?(width|height|inline-size|block-size)\n\t\tcase 8116: case 7059: case 5753: case 5535:\n\t\tcase 5445: case 5701: case 4933: case 4677:\n\t\tcase 5533: case 5789: case 5021: case 4765:\n\t\t\t// stretch, max-content, min-content, fill-available\n\t\t\tif (strlen(value) - 1 - length > 6)\n\t\t\t\tswitch (charat(value, length + 1)) {\n\t\t\t\t\t// (m)ax-content, (m)in-content\n\t\t\t\t\tcase 109:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (charat(value, length + 4) !== 45)\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t// (f)ill-available, (f)it-content\n\t\t\t\t\tcase 102:\n\t\t\t\t\t\treturn replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value\n\t\t\t\t\t// (s)tretch\n\t\t\t\t\tcase 115:\n\t\t\t\t\t\treturn ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value\n\t\t\t\t}\n\t\t\tbreak\n\t\t// position: sticky\n\t\tcase 4949:\n\t\t\t// (s)ticky?\n\t\t\tif (charat(value, length + 1) !== 115)\n\t\t\t\tbreak\n\t\t// display: (flex|inline-flex)\n\t\tcase 6444:\n\t\t\tswitch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n\t\t\t\t// stic(k)y\n\t\t\t\tcase 107:\n\t\t\t\t\treturn replace(value, ':', ':' + WEBKIT) + value\n\t\t\t\t// (inline-)?fl(e)x\n\t\t\t\tcase 101:\n\t\t\t\t\treturn replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value\n\t\t\t}\n\t\t\tbreak\n\t\t// writing-mode\n\t\tcase 5936:\n\t\t\tswitch (charat(value, length + 11)) {\n\t\t\t\t// vertical-l(r)\n\t\t\t\tcase 114:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value\n\t\t\t\t// vertical-r(l)\n\t\t\t\tcase 108:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value\n\t\t\t\t// horizontal(-)tb\n\t\t\t\tcase 45:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value\n\t\t\t}\n\n\t\t\treturn WEBKIT + value + MS + value + value\n\t}\n\n\treturn value\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, trim, from, sizeof, strlen, substr, append, replace} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// \" ' [ (\n\t\t\tcase 34: case 39: case 91: case 40:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset:\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule) {\n\t\t\t\t\t\t\t\t\t// d m s\n\t\t\t\t\t\t\t\t\tcase 100: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, length, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, identifier, position, stringify, COMMENT, rulesheet, middleware, prefixer, serialize, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar last = function last(arr) {\n  return arr.length ? arr[arr.length - 1] : null;\n};\n\nvar toRules = function toRules(parsed, points) {\n  // pretend we've started with a comma\n  var index = -1;\n  var character = 44;\n\n  do {\n    switch (token(character)) {\n      case 0:\n        // &\\f\n        if (character === 38 && peek() === 12) {\n          // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n          // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n          // and when it should just concatenate the outer and inner selectors\n          // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n          points[index] = 1;\n        }\n\n        parsed[index] += identifier(position - 1);\n        break;\n\n      case 2:\n        parsed[index] += delimit(character);\n        break;\n\n      case 4:\n        // comma\n        if (character === 44) {\n          // colon\n          parsed[++index] = peek() === 58 ? '&\\f' : '';\n          points[index] = parsed[index].length;\n          break;\n        }\n\n      // fallthrough\n\n      default:\n        parsed[index] += from(character);\n    }\n  } while (character = next());\n\n  return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n  return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n  if (element.type !== 'rule' || !element.parent || // .length indicates if this rule contains pseudo or not\n  !element.length) {\n    return;\n  }\n\n  var value = element.value,\n      parent = element.parent;\n  var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n  while (parent.type !== 'rule') {\n    parent = parent.parent;\n    if (!parent) return;\n  } // short-circuit for the simplest case\n\n\n  if (element.props.length === 1 && value.charCodeAt(0) !== 58\n  /* colon */\n  && !fixedElements.get(parent)) {\n    return;\n  } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n  // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n  if (isImplicitRule) {\n    return;\n  }\n\n  fixedElements.set(element, true);\n  var points = [];\n  var rules = getRules(value, points);\n  var parentRules = parent.props;\n\n  for (var i = 0, k = 0; i < rules.length; i++) {\n    for (var j = 0; j < parentRules.length; j++, k++) {\n      element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n    }\n  }\n};\nvar removeLabel = function removeLabel(element) {\n  if (element.type === 'decl') {\n    var value = element.value;\n\n    if ( // charcode for l\n    value.charCodeAt(0) === 108 && // charcode for b\n    value.charCodeAt(2) === 98) {\n      // this ignores label\n      element[\"return\"] = '';\n      element.value = '';\n    }\n  }\n};\nvar ignoreFlag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n\nvar isIgnoringComment = function isIgnoringComment(element) {\n  return !!element && element.type === 'comm' && element.children.indexOf(ignoreFlag) > -1;\n};\n\nvar createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) {\n  return function (element, index, children) {\n    if (element.type !== 'rule') return;\n    var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g);\n\n    if (unsafePseudoClasses && cache.compat !== true) {\n      var prevElement = index > 0 ? children[index - 1] : null;\n\n      if (prevElement && isIgnoringComment(last(prevElement.children))) {\n        return;\n      }\n\n      unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n        console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n      });\n    }\n  };\n};\n\nvar isImportRule = function isImportRule(element) {\n  return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64;\n};\n\nvar isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) {\n  for (var i = index - 1; i >= 0; i--) {\n    if (!isImportRule(children[i])) {\n      return true;\n    }\n  }\n\n  return false;\n}; // use this to remove incorrect elements from further processing\n// so they don't get handed to the `sheet` (or anything else)\n// as that could potentially lead to additional logs which in turn could be overhelming to the user\n\n\nvar nullifyElement = function nullifyElement(element) {\n  element.type = '';\n  element.value = '';\n  element[\"return\"] = '';\n  element.children = '';\n  element.props = '';\n};\n\nvar incorrectImportAlarm = function incorrectImportAlarm(element, index, children) {\n  if (!isImportRule(element)) {\n    return;\n  }\n\n  if (element.parent) {\n    console.error(\"`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles.\");\n    nullifyElement(element);\n  } else if (isPrependedWithRegularRules(index, children)) {\n    console.error(\"`@import` rules can't be after other rules. Please put your `@import` rules before your other rules.\");\n    nullifyElement(element);\n  }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n  var key = options.key;\n\n  if (process.env.NODE_ENV !== 'production' && !key) {\n    throw new Error(\"You have to configure `key` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache.\\n\" + \"If multiple caches share the same key they might \\\"fight\\\" for each other's style elements.\");\n  }\n\n  if ( key === 'css') {\n    var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n    // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n    // note this very very intentionally targets all style elements regardless of the key to ensure\n    // that creating a cache works inside of render of a React component\n\n    Array.prototype.forEach.call(ssrStyles, function (node) {\n      // we want to only move elements which have a space in the data-emotion attribute value\n      // because that indicates that it is an Emotion 11 server-side rendered style elements\n      // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n      // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n      // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n      // will not result in the Emotion 10 styles being destroyed\n      var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n      if (dataEmotionAttribute.indexOf(' ') === -1) {\n        return;\n      }\n      document.head.appendChild(node);\n      node.setAttribute('data-s', '');\n    });\n  }\n\n  var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n  if (process.env.NODE_ENV !== 'production') {\n    // $FlowFixMe\n    if (/[^a-z-]/.test(key)) {\n      throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n    }\n  }\n\n  var inserted = {}; // $FlowFixMe\n\n  var container;\n  var nodesToHydrate = [];\n\n  {\n    container = options.container || document.head;\n    Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n    // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n    document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n      var attrib = node.getAttribute(\"data-emotion\").split(' '); // $FlowFixMe\n\n      for (var i = 1; i < attrib.length; i++) {\n        inserted[attrib[i]] = true;\n      }\n\n      nodesToHydrate.push(node);\n    });\n  }\n\n  var _insert;\n\n  var omnipresentPlugins = [compat, removeLabel];\n\n  if (process.env.NODE_ENV !== 'production') {\n    omnipresentPlugins.push(createUnsafeSelectorsAlarm({\n      get compat() {\n        return cache.compat;\n      }\n\n    }), incorrectImportAlarm);\n  }\n\n  {\n    var currentSheet;\n    var finalizingPlugins = [stringify, process.env.NODE_ENV !== 'production' ? function (element) {\n      if (!element.root) {\n        if (element[\"return\"]) {\n          currentSheet.insert(element[\"return\"]);\n        } else if (element.value && element.type !== COMMENT) {\n          // insert empty rule in non-production environments\n          // so @emotion/jest can grab `key` from the (JS)DOM for caches without any rules inserted yet\n          currentSheet.insert(element.value + \"{}\");\n        }\n      }\n    } : rulesheet(function (rule) {\n      currentSheet.insert(rule);\n    })];\n    var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n    var stylis = function stylis(styles) {\n      return serialize(compile(styles), serializer);\n    };\n\n    _insert = function insert(selector, serialized, sheet, shouldCache) {\n      currentSheet = sheet;\n\n      if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n        currentSheet = {\n          insert: function insert(rule) {\n            sheet.insert(rule + serialized.map);\n          }\n        };\n      }\n\n      stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n      if (shouldCache) {\n        cache.inserted[serialized.name] = true;\n      }\n    };\n  }\n\n  var cache = {\n    key: key,\n    sheet: new StyleSheet({\n      key: key,\n      container: container,\n      nonce: options.nonce,\n      speedy: options.speedy,\n      prepend: options.prepend\n    }),\n    nonce: options.nonce,\n    inserted: inserted,\n    registered: {},\n    insert: _insert\n  };\n  cache.sheet.hydrate(nodesToHydrate);\n  return cache;\n};\n\nexport default createCache;\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (!element.return)\n\t\tswitch (element.type) {\n\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length)\n\t\t\t\tbreak\n\t\t\tcase KEYFRAMES:\n\t\t\t\treturn serialize([copy(replace(element.value, '@', '@' + WEBKIT), element, '')], callback)\n\t\t\tcase RULESET:\n\t\t\t\tif (element.length)\n\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\treturn serialize([copy(replace(value, /:(read-\\w+)/, ':' + MOZ + '$1'), element, '')], callback)\n\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\tcopy(replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1'), element, ''),\n\t\t\t\t\t\t\t\t\tcopy(replace(value, /:(plac\\w+)/, ':' + MOZ + '$1'), element, ''),\n\t\t\t\t\t\t\t\t\tcopy(replace(value, /:(plac\\w+)/, MS + 'input-$1'), element, '')\n\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn ''\n\t\t\t\t\t})\n\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","function memoize(fn) {\n  var cache = Object.create(null);\n  return function (arg) {\n    if (cache[arg] === undefined) cache[arg] = fn(arg);\n    return cache[arg];\n  };\n}\n\nexport default memoize;\n","var weakMemoize = function weakMemoize(func) {\n  // $FlowFixMe flow doesn't include all non-primitive types as allowed for weakmaps\n  var cache = new WeakMap();\n  return function (arg) {\n    if (cache.has(arg)) {\n      // $FlowFixMe\n      return cache.get(arg);\n    }\n\n    var ret = func(arg);\n    cache.set(arg, ret);\n    return ret;\n  };\n};\n\nexport default weakMemoize;\n","import { createContext, useContext, forwardRef, createElement } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../isolated-hoist-non-react-statics-do-not-use-this-in-your-code/dist/emotion-react-isolated-hoist-non-react-statics-do-not-use-this-in-your-code.browser.esm.js';\nimport { getRegisteredStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar EmotionCacheContext = /* #__PURE__ */createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n  key: 'css'\n}) : null);\n\nif (process.env.NODE_ENV !== 'production') {\n  EmotionCacheContext.displayName = 'EmotionCacheContext';\n}\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n  return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n  // $FlowFixMe\n  return /*#__PURE__*/forwardRef(function (props, ref) {\n    // the cache will never be null in the browser\n    var cache = useContext(EmotionCacheContext);\n    return func(props, cache, ref);\n  });\n};\n\nvar ThemeContext = /* #__PURE__ */createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n  ThemeContext.displayName = 'EmotionThemeContext';\n}\n\nvar useTheme = function useTheme() {\n  return useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n  if (typeof theme === 'function') {\n    var mergedTheme = theme(outerTheme);\n\n    if (process.env.NODE_ENV !== 'production' && (mergedTheme == null || typeof mergedTheme !== 'object' || Array.isArray(mergedTheme))) {\n      throw new Error('[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!');\n    }\n\n    return mergedTheme;\n  }\n\n  if (process.env.NODE_ENV !== 'production' && (theme == null || typeof theme !== 'object' || Array.isArray(theme))) {\n    throw new Error('[ThemeProvider] Please make your theme prop a plain object');\n  }\n\n  return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n  return weakMemoize(function (theme) {\n    return getTheme(outerTheme, theme);\n  });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n  var theme = useContext(ThemeContext);\n\n  if (props.theme !== theme) {\n    theme = createCacheWithTheme(theme)(props.theme);\n  }\n\n  return /*#__PURE__*/createElement(ThemeContext.Provider, {\n    value: theme\n  }, props.children);\n};\nfunction withTheme(Component) {\n  var componentName = Component.displayName || Component.name || 'Component';\n\n  var render = function render(props, ref) {\n    var theme = useContext(ThemeContext);\n    return /*#__PURE__*/createElement(Component, _extends({\n      theme: theme,\n      ref: ref\n    }, props));\n  }; // $FlowFixMe\n\n\n  var WithTheme = /*#__PURE__*/forwardRef(render);\n  WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n  return hoistNonReactStatics(WithTheme, Component);\n}\n\n// thus we only need to replace what is a valid character for JS, but not for CSS\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n  return identifier.replace(/\\$/g, '-');\n};\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n  if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n  props.css.indexOf(':') !== -1) {\n    throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/react' like this: css`\" + props.css + \"`\");\n  }\n\n  var newProps = {};\n\n  for (var key in props) {\n    if (hasOwnProperty.call(props, key)) {\n      newProps[key] = props[key];\n    }\n  }\n\n  newProps[typePropName] = type;\n\n  if (process.env.NODE_ENV !== 'production') {\n    var error = new Error();\n\n    if (error.stack) {\n      // chrome\n      var match = error.stack.match(/at (?:Object\\.|Module\\.|)(?:jsx|createEmotionProps).*\\n\\s+at (?:Object\\.|)([A-Z][A-Za-z0-9$]+) /);\n\n      if (!match) {\n        // safari and firefox\n        match = error.stack.match(/.*\\n([A-Z][A-Za-z0-9$]+)@/);\n      }\n\n      if (match) {\n        newProps[labelPropName] = sanitizeIdentifier(match[1]);\n      }\n    }\n  }\n\n  return newProps;\n};\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n  var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n  // not passing the registered cache to serializeStyles because it would\n  // make certain babel optimisations not possible\n\n  if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n    cssProp = cache.registered[cssProp];\n  }\n\n  var type = props[typePropName];\n  var registeredStyles = [cssProp];\n  var className = '';\n\n  if (typeof props.className === 'string') {\n    className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n  } else if (props.className != null) {\n    className = props.className + \" \";\n  }\n\n  var serialized = serializeStyles(registeredStyles, undefined, useContext(ThemeContext));\n\n  if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n    var labelFromStack = props[labelPropName];\n\n    if (labelFromStack) {\n      serialized = serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n    }\n  }\n\n  var rules = insertStyles(cache, serialized, typeof type === 'string');\n  className += cache.key + \"-\" + serialized.name;\n  var newProps = {};\n\n  for (var key in props) {\n    if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n      newProps[key] = props[key];\n    }\n  }\n\n  newProps.ref = ref;\n  newProps.className = className;\n  var ele = /*#__PURE__*/createElement(type, newProps);\n\n  return ele;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n  Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nexport { CacheProvider as C, Emotion as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwnProperty as h, useTheme as u, withEmotionCache as w };\n","import { createElement, useContext, useRef, useLayoutEffect } from 'react';\nimport '@emotion/cache';\nimport { h as hasOwnProperty, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext } from './emotion-element-99289b21.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, a as ThemeProvider, _ as __unsafe_useEmotionCache, u as useTheme, w as withEmotionCache, b as withTheme } from './emotion-element-99289b21.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport 'hoist-non-react-statics';\nimport '../isolated-hoist-non-react-statics-do-not-use-this-in-your-code/dist/emotion-react-isolated-hoist-non-react-statics-do-not-use-this-in-your-code.browser.esm.js';\nimport { insertStyles, getRegisteredStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { StyleSheet } from '@emotion/sheet';\n\nvar pkg = {\n\tname: \"@emotion/react\",\n\tversion: \"11.4.1\",\n\tmain: \"dist/emotion-react.cjs.js\",\n\tmodule: \"dist/emotion-react.esm.js\",\n\tbrowser: {\n\t\t\"./dist/emotion-react.cjs.js\": \"./dist/emotion-react.browser.cjs.js\",\n\t\t\"./dist/emotion-react.esm.js\": \"./dist/emotion-react.browser.esm.js\"\n\t},\n\ttypes: \"types/index.d.ts\",\n\tfiles: [\n\t\t\"src\",\n\t\t\"dist\",\n\t\t\"jsx-runtime\",\n\t\t\"jsx-dev-runtime\",\n\t\t\"isolated-hoist-non-react-statics-do-not-use-this-in-your-code\",\n\t\t\"types/*.d.ts\",\n\t\t\"macro.js\",\n\t\t\"macro.d.ts\",\n\t\t\"macro.js.flow\"\n\t],\n\tsideEffects: false,\n\tauthor: \"mitchellhamilton <mitchell@mitchellhamilton.me>\",\n\tlicense: \"MIT\",\n\tscripts: {\n\t\t\"test:typescript\": \"dtslint types\"\n\t},\n\tdependencies: {\n\t\t\"@babel/runtime\": \"^7.13.10\",\n\t\t\"@emotion/cache\": \"^11.4.0\",\n\t\t\"@emotion/serialize\": \"^1.0.2\",\n\t\t\"@emotion/sheet\": \"^1.0.2\",\n\t\t\"@emotion/utils\": \"^1.0.0\",\n\t\t\"@emotion/weak-memoize\": \"^0.2.5\",\n\t\t\"hoist-non-react-statics\": \"^3.3.1\"\n\t},\n\tpeerDependencies: {\n\t\t\"@babel/core\": \"^7.0.0\",\n\t\treact: \">=16.8.0\"\n\t},\n\tpeerDependenciesMeta: {\n\t\t\"@babel/core\": {\n\t\t\toptional: true\n\t\t},\n\t\t\"@types/react\": {\n\t\t\toptional: true\n\t\t}\n\t},\n\tdevDependencies: {\n\t\t\"@babel/core\": \"^7.13.10\",\n\t\t\"@emotion/css\": \"11.1.3\",\n\t\t\"@emotion/css-prettifier\": \"1.0.0\",\n\t\t\"@emotion/server\": \"11.4.0\",\n\t\t\"@emotion/styled\": \"11.3.0\",\n\t\t\"@types/react\": \"^16.9.11\",\n\t\tdtslint: \"^0.3.0\",\n\t\t\"html-tag-names\": \"^1.1.2\",\n\t\treact: \"16.14.0\",\n\t\t\"svg-tag-names\": \"^1.1.1\"\n\t},\n\trepository: \"https://github.com/emotion-js/emotion/tree/main/packages/react\",\n\tpublishConfig: {\n\t\taccess: \"public\"\n\t},\n\t\"umd:main\": \"dist/emotion-react.umd.min.js\",\n\tpreconstruct: {\n\t\tentrypoints: [\n\t\t\t\"./index.js\",\n\t\t\t\"./jsx-runtime.js\",\n\t\t\t\"./jsx-dev-runtime.js\",\n\t\t\t\"./isolated-hoist-non-react-statics-do-not-use-this-in-your-code.js\"\n\t\t],\n\t\tumdName: \"emotionReact\"\n\t}\n};\n\nvar jsx = function jsx(type, props) {\n  var args = arguments;\n\n  if (props == null || !hasOwnProperty.call(props, 'css')) {\n    // $FlowFixMe\n    return createElement.apply(undefined, args);\n  }\n\n  var argsLength = args.length;\n  var createElementArgArray = new Array(argsLength);\n  createElementArgArray[0] = Emotion;\n  createElementArgArray[1] = createEmotionProps(type, props);\n\n  for (var i = 2; i < argsLength; i++) {\n    createElementArgArray[i] = args[i];\n  } // $FlowFixMe\n\n\n  return createElement.apply(null, createElementArgArray);\n};\n\nvar warnedAboutCssPropForGlobal = false; // maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n  if (process.env.NODE_ENV !== 'production' && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is\n  // probably using the custom createElement which\n  // means it will be turned into a className prop\n  // $FlowFixMe I don't really want to add it to the type since it shouldn't be used\n  props.className || props.css)) {\n    console.error(\"It looks like you're using the css prop on Global, did you mean to use the styles prop instead?\");\n    warnedAboutCssPropForGlobal = true;\n  }\n\n  var styles = props.styles;\n  var serialized = serializeStyles([styles], undefined, useContext(ThemeContext));\n  // but it is based on a constant that will never change at runtime\n  // it's effectively like having two implementations and switching them out\n  // so it's not actually breaking anything\n\n\n  var sheetRef = useRef();\n  useLayoutEffect(function () {\n    var key = cache.key + \"-global\";\n    var sheet = new StyleSheet({\n      key: key,\n      nonce: cache.sheet.nonce,\n      container: cache.sheet.container,\n      speedy: cache.sheet.isSpeedy\n    });\n    var rehydrating = false; // $FlowFixMe\n\n    var node = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n    if (cache.sheet.tags.length) {\n      sheet.before = cache.sheet.tags[0];\n    }\n\n    if (node !== null) {\n      rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other <Global/>s\n\n      node.setAttribute('data-emotion', key);\n      sheet.hydrate([node]);\n    }\n\n    sheetRef.current = [sheet, rehydrating];\n    return function () {\n      sheet.flush();\n    };\n  }, [cache]);\n  useLayoutEffect(function () {\n    var sheetRefCurrent = sheetRef.current;\n    var sheet = sheetRefCurrent[0],\n        rehydrating = sheetRefCurrent[1];\n\n    if (rehydrating) {\n      sheetRefCurrent[1] = false;\n      return;\n    }\n\n    if (serialized.next !== undefined) {\n      // insert keyframes\n      insertStyles(cache, serialized.next, true);\n    }\n\n    if (sheet.tags.length) {\n      // if this doesn't exist then it will be null so the style element will be appended\n      var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n      sheet.before = element;\n      sheet.flush();\n    }\n\n    cache.insert(\"\", serialized, sheet, false);\n  }, [cache, serialized.name]);\n  return null;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n  Global.displayName = 'EmotionGlobal';\n}\n\nfunction css() {\n  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n\n  return serializeStyles(args);\n}\n\nvar keyframes = function keyframes() {\n  var insertable = css.apply(void 0, arguments);\n  var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n  return {\n    name: name,\n    styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n    anim: 1,\n    toString: function toString() {\n      return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n    }\n  };\n};\n\nvar classnames = function classnames(args) {\n  var len = args.length;\n  var i = 0;\n  var cls = '';\n\n  for (; i < len; i++) {\n    var arg = args[i];\n    if (arg == null) continue;\n    var toAdd = void 0;\n\n    switch (typeof arg) {\n      case 'boolean':\n        break;\n\n      case 'object':\n        {\n          if (Array.isArray(arg)) {\n            toAdd = classnames(arg);\n          } else {\n            if (process.env.NODE_ENV !== 'production' && arg.styles !== undefined && arg.name !== undefined) {\n              console.error('You have passed styles created with `css` from `@emotion/react` package to the `cx`.\\n' + '`cx` is meant to compose class names (strings) so you should convert those styles to a class name by passing them to the `css` received from <ClassNames/> component.');\n            }\n\n            toAdd = '';\n\n            for (var k in arg) {\n              if (arg[k] && k) {\n                toAdd && (toAdd += ' ');\n                toAdd += k;\n              }\n            }\n          }\n\n          break;\n        }\n\n      default:\n        {\n          toAdd = arg;\n        }\n    }\n\n    if (toAdd) {\n      cls && (cls += ' ');\n      cls += toAdd;\n    }\n  }\n\n  return cls;\n};\n\nfunction merge(registered, css, className) {\n  var registeredStyles = [];\n  var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n  if (registeredStyles.length < 2) {\n    return className;\n  }\n\n  return rawClassName + css(registeredStyles);\n}\n\nvar ClassNames = /* #__PURE__ */withEmotionCache(function (props, cache) {\n  var hasRendered = false;\n\n  var css = function css() {\n    if (hasRendered && process.env.NODE_ENV !== 'production') {\n      throw new Error('css can only be used during render');\n    }\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    var serialized = serializeStyles(args, cache.registered);\n\n    {\n      insertStyles(cache, serialized, false);\n    }\n\n    return cache.key + \"-\" + serialized.name;\n  };\n\n  var cx = function cx() {\n    if (hasRendered && process.env.NODE_ENV !== 'production') {\n      throw new Error('cx can only be used during render');\n    }\n\n    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n      args[_key2] = arguments[_key2];\n    }\n\n    return merge(cache.registered, css, classnames(args));\n  };\n\n  var content = {\n    css: css,\n    cx: cx,\n    theme: useContext(ThemeContext)\n  };\n  var ele = props.children(content);\n  hasRendered = true;\n\n  return ele;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n  ClassNames.displayName = 'EmotionClassNames';\n}\n\nif (process.env.NODE_ENV !== 'production') {\n  var isBrowser = \"object\" !== 'undefined'; // #1727 for some reason Jest evaluates modules twice if some consuming module gets mocked with jest.mock\n\n  var isJest = typeof jest !== 'undefined';\n\n  if (isBrowser && !isJest) {\n    var globalContext = isBrowser ? window : global;\n    var globalKey = \"__EMOTION_REACT_\" + pkg.version.split('.')[0] + \"__\";\n\n    if (globalContext[globalKey]) {\n      console.warn('You are loading @emotion/react when it is already loaded. Running ' + 'multiple instances may cause problems. This can happen if multiple ' + 'versions are used, or if multiple builds of the same version are ' + 'used.');\n    }\n\n    globalContext[globalKey] = true;\n  }\n}\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n  // 'm' and 'r' are mixing constants generated offline.\n  // They're not really 'magic', they just happen to work well.\n  // const m = 0x5bd1e995;\n  // const r = 24;\n  // Initialize the hash\n  var h = 0; // Mix 4 bytes at a time into the hash\n\n  var k,\n      i = 0,\n      len = str.length;\n\n  for (; len >= 4; ++i, len -= 4) {\n    k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n    k =\n    /* Math.imul(k, m): */\n    (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n    k ^=\n    /* k >>> r: */\n    k >>> 24;\n    h =\n    /* Math.imul(k, m): */\n    (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n    /* Math.imul(h, m): */\n    (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n  } // Handle the last few bytes of the input array\n\n\n  switch (len) {\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      /* Math.imul(h, m): */\n      (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n  } // Do a few final mixes of the hash to ensure the last few\n  // bytes are well-incorporated.\n\n\n  h ^= h >>> 13;\n  h =\n  /* Math.imul(h, m): */\n  (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n  return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport default murmur2;\n","var unitlessKeys = {\n  animationIterationCount: 1,\n  borderImageOutset: 1,\n  borderImageSlice: 1,\n  borderImageWidth: 1,\n  boxFlex: 1,\n  boxFlexGroup: 1,\n  boxOrdinalGroup: 1,\n  columnCount: 1,\n  columns: 1,\n  flex: 1,\n  flexGrow: 1,\n  flexPositive: 1,\n  flexShrink: 1,\n  flexNegative: 1,\n  flexOrder: 1,\n  gridRow: 1,\n  gridRowEnd: 1,\n  gridRowSpan: 1,\n  gridRowStart: 1,\n  gridColumn: 1,\n  gridColumnEnd: 1,\n  gridColumnSpan: 1,\n  gridColumnStart: 1,\n  msGridRow: 1,\n  msGridRowSpan: 1,\n  msGridColumn: 1,\n  msGridColumnSpan: 1,\n  fontWeight: 1,\n  lineHeight: 1,\n  opacity: 1,\n  order: 1,\n  orphans: 1,\n  tabSize: 1,\n  widows: 1,\n  zIndex: 1,\n  zoom: 1,\n  WebkitLineClamp: 1,\n  // SVG-related properties\n  fillOpacity: 1,\n  floodOpacity: 1,\n  stopOpacity: 1,\n  strokeDasharray: 1,\n  strokeDashoffset: 1,\n  strokeMiterlimit: 1,\n  strokeOpacity: 1,\n  strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n  return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n  return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n  return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n  switch (key) {\n    case 'animation':\n    case 'animationName':\n      {\n        if (typeof value === 'string') {\n          return value.replace(animationRegex, function (match, p1, p2) {\n            cursor = {\n              name: p1,\n              styles: p2,\n              next: cursor\n            };\n            return p1;\n          });\n        }\n      }\n  }\n\n  if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n    return value + 'px';\n  }\n\n  return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n  var contentValuePattern = /(attr|counters?|url|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/;\n  var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];\n  var oldProcessStyleValue = processStyleValue;\n  var msPattern = /^-ms-/;\n  var hyphenPattern = /-(.)/g;\n  var hyphenatedCache = {};\n\n  processStyleValue = function processStyleValue(key, value) {\n    if (key === 'content') {\n      if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n        throw new Error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n      }\n    }\n\n    var processed = oldProcessStyleValue(key, value);\n\n    if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n      hyphenatedCache[key] = true;\n      console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n        return _char.toUpperCase();\n      }) + \"?\");\n    }\n\n    return processed;\n  };\n}\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n  if (interpolation == null) {\n    return '';\n  }\n\n  if (interpolation.__emotion_styles !== undefined) {\n    if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n      throw new Error('Component selectors can only be used in conjunction with @emotion/babel-plugin.');\n    }\n\n    return interpolation;\n  }\n\n  switch (typeof interpolation) {\n    case 'boolean':\n      {\n        return '';\n      }\n\n    case 'object':\n      {\n        if (interpolation.anim === 1) {\n          cursor = {\n            name: interpolation.name,\n            styles: interpolation.styles,\n            next: cursor\n          };\n          return interpolation.name;\n        }\n\n        if (interpolation.styles !== undefined) {\n          var next = interpolation.next;\n\n          if (next !== undefined) {\n            // not the most efficient thing ever but this is a pretty rare case\n            // and there will be very few iterations of this generally\n            while (next !== undefined) {\n              cursor = {\n                name: next.name,\n                styles: next.styles,\n                next: cursor\n              };\n              next = next.next;\n            }\n          }\n\n          var styles = interpolation.styles + \";\";\n\n          if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n            styles += interpolation.map;\n          }\n\n          return styles;\n        }\n\n        return createStringFromObject(mergedProps, registered, interpolation);\n      }\n\n    case 'function':\n      {\n        if (mergedProps !== undefined) {\n          var previousCursor = cursor;\n          var result = interpolation(mergedProps);\n          cursor = previousCursor;\n          return handleInterpolation(mergedProps, registered, result);\n        } else if (process.env.NODE_ENV !== 'production') {\n          console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n        }\n\n        break;\n      }\n\n    case 'string':\n      if (process.env.NODE_ENV !== 'production') {\n        var matched = [];\n        var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n          var fakeVarName = \"animation\" + matched.length;\n          matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n          return \"${\" + fakeVarName + \"}\";\n        });\n\n        if (matched.length) {\n          console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n        }\n      }\n\n      break;\n  } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n  if (registered == null) {\n    return interpolation;\n  }\n\n  var cached = registered[interpolation];\n  return cached !== undefined ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n  var string = '';\n\n  if (Array.isArray(obj)) {\n    for (var i = 0; i < obj.length; i++) {\n      string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n    }\n  } else {\n    for (var _key in obj) {\n      var value = obj[_key];\n\n      if (typeof value !== 'object') {\n        if (registered != null && registered[value] !== undefined) {\n          string += _key + \"{\" + registered[value] + \"}\";\n        } else if (isProcessableValue(value)) {\n          string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n        }\n      } else {\n        if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n          throw new Error('Component selectors can only be used in conjunction with @emotion/babel-plugin.');\n        }\n\n        if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n          for (var _i = 0; _i < value.length; _i++) {\n            if (isProcessableValue(value[_i])) {\n              string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n            }\n          }\n        } else {\n          var interpolated = handleInterpolation(mergedProps, registered, value);\n\n          switch (_key) {\n            case 'animation':\n            case 'animationName':\n              {\n                string += processStyleName(_key) + \":\" + interpolated + \";\";\n                break;\n              }\n\n            default:\n              {\n                if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n                  console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n                }\n\n                string += _key + \"{\" + interpolated + \"}\";\n              }\n          }\n        }\n      }\n    }\n  }\n\n  return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n  sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n  if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n    return args[0];\n  }\n\n  var stringMode = true;\n  var styles = '';\n  cursor = undefined;\n  var strings = args[0];\n\n  if (strings == null || strings.raw === undefined) {\n    stringMode = false;\n    styles += handleInterpolation(mergedProps, registered, strings);\n  } else {\n    if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n      console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n    }\n\n    styles += strings[0];\n  } // we start at 1 since we've already handled the first arg\n\n\n  for (var i = 1; i < args.length; i++) {\n    styles += handleInterpolation(mergedProps, registered, args[i]);\n\n    if (stringMode) {\n      if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n        console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n      }\n\n      styles += strings[i];\n    }\n  }\n\n  var sourceMap;\n\n  if (process.env.NODE_ENV !== 'production') {\n    styles = styles.replace(sourceMapPattern, function (match) {\n      sourceMap = match;\n      return '';\n    });\n  } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n  labelPattern.lastIndex = 0;\n  var identifierName = '';\n  var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n  while ((match = labelPattern.exec(styles)) !== null) {\n    identifierName += '-' + // $FlowFixMe we know it's not null\n    match[1];\n  }\n\n  var name = hashString(styles) + identifierName;\n\n  if (process.env.NODE_ENV !== 'production') {\n    // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n    return {\n      name: name,\n      styles: styles,\n      map: sourceMap,\n      next: cursor,\n      toString: function toString() {\n        return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n      }\n    };\n  }\n\n  return {\n    name: name,\n    styles: styles,\n    next: cursor\n  };\n};\n\nexport { serializeStyles };\n","/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n  if (tag.sheet) {\n    // $FlowFixMe\n    return tag.sheet;\n  } // this weirdness brought to you by firefox\n\n  /* istanbul ignore next */\n\n\n  for (var i = 0; i < document.styleSheets.length; i++) {\n    if (document.styleSheets[i].ownerNode === tag) {\n      // $FlowFixMe\n      return document.styleSheets[i];\n    }\n  }\n}\n\nfunction createStyleElement(options) {\n  var tag = document.createElement('style');\n  tag.setAttribute('data-emotion', options.key);\n\n  if (options.nonce !== undefined) {\n    tag.setAttribute('nonce', options.nonce);\n  }\n\n  tag.appendChild(document.createTextNode(''));\n  tag.setAttribute('data-s', '');\n  return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n  function StyleSheet(options) {\n    var _this = this;\n\n    this._insertTag = function (tag) {\n      var before;\n\n      if (_this.tags.length === 0) {\n        before = _this.prepend ? _this.container.firstChild : _this.before;\n      } else {\n        before = _this.tags[_this.tags.length - 1].nextSibling;\n      }\n\n      _this.container.insertBefore(tag, before);\n\n      _this.tags.push(tag);\n    };\n\n    this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n    this.tags = [];\n    this.ctr = 0;\n    this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n    this.key = options.key;\n    this.container = options.container;\n    this.prepend = options.prepend;\n    this.before = null;\n  }\n\n  var _proto = StyleSheet.prototype;\n\n  _proto.hydrate = function hydrate(nodes) {\n    nodes.forEach(this._insertTag);\n  };\n\n  _proto.insert = function insert(rule) {\n    // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n    // it's 1 in dev because we insert source maps that map a single rule to a location\n    // and you can only have one source map per style tag\n    if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n      this._insertTag(createStyleElement(this));\n    }\n\n    var tag = this.tags[this.tags.length - 1];\n\n    if (process.env.NODE_ENV !== 'production') {\n      var isImportRule = rule.charCodeAt(0) === 64 && rule.charCodeAt(1) === 105;\n\n      if (isImportRule && this._alreadyInsertedOrderInsensitiveRule) {\n        // this would only cause problem in speedy mode\n        // but we don't want enabling speedy to affect the observable behavior\n        // so we report this error at all times\n        console.error(\"You're attempting to insert the following rule:\\n\" + rule + '\\n\\n`@import` rules must be before all other types of rules in a stylesheet but other rules have already been inserted. Please ensure that `@import` rules are before all other rules.');\n      }\n      this._alreadyInsertedOrderInsensitiveRule = this._alreadyInsertedOrderInsensitiveRule || !isImportRule;\n    }\n\n    if (this.isSpeedy) {\n      var sheet = sheetForTag(tag);\n\n      try {\n        // this is the ultrafast version, works across browsers\n        // the big drawback is that the css won't be editable in devtools\n        sheet.insertRule(rule, sheet.cssRules.length);\n      } catch (e) {\n        if (process.env.NODE_ENV !== 'production' && !/:(-moz-placeholder|-moz-focus-inner|-moz-focusring|-ms-input-placeholder|-moz-read-write|-moz-read-only|-ms-clear){/.test(rule)) {\n          console.error(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n        }\n      }\n    } else {\n      tag.appendChild(document.createTextNode(rule));\n    }\n\n    this.ctr++;\n  };\n\n  _proto.flush = function flush() {\n    // $FlowFixMe\n    this.tags.forEach(function (tag) {\n      return tag.parentNode.removeChild(tag);\n    });\n    this.tags = [];\n    this.ctr = 0;\n\n    if (process.env.NODE_ENV !== 'production') {\n      this._alreadyInsertedOrderInsensitiveRule = false;\n    }\n  };\n\n  return StyleSheet;\n}();\n\nexport { StyleSheet };\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n  return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n  /* o */\n  && prop.charCodeAt(1) === 110\n  /* n */\n  && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default isPropValid;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport { useContext, createElement } from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { withEmotionCache, ThemeContext } from '@emotion/react';\nimport { getRegisteredStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {\n  return key !== 'theme';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {\n  return typeof tag === 'string' && // 96 is one less than the char code\n  // for \"a\" so this is checking that\n  // it's a lowercase character\n  tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\nvar composeShouldForwardProps = function composeShouldForwardProps(tag, options, isReal) {\n  var shouldForwardProp;\n\n  if (options) {\n    var optionsShouldForwardProp = options.shouldForwardProp;\n    shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName) {\n      return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);\n    } : optionsShouldForwardProp;\n  }\n\n  if (typeof shouldForwardProp !== 'function' && isReal) {\n    shouldForwardProp = tag.__emotion_forwardProp;\n  }\n\n  return shouldForwardProp;\n};\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\n\nvar createStyled = function createStyled(tag, options) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (tag === undefined) {\n      throw new Error('You are trying to create a styled element with an undefined component.\\nYou may have forgotten to import it.');\n    }\n  }\n\n  var isReal = tag.__emotion_real === tag;\n  var baseTag = isReal && tag.__emotion_base || tag;\n  var identifierName;\n  var targetClassName;\n\n  if (options !== undefined) {\n    identifierName = options.label;\n    targetClassName = options.target;\n  }\n\n  var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);\n  var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n  var shouldUseAs = !defaultShouldForwardProp('as');\n  return function () {\n    var args = arguments;\n    var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n    if (identifierName !== undefined) {\n      styles.push(\"label:\" + identifierName + \";\");\n    }\n\n    if (args[0] == null || args[0].raw === undefined) {\n      styles.push.apply(styles, args);\n    } else {\n      if (process.env.NODE_ENV !== 'production' && args[0][0] === undefined) {\n        console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n      }\n\n      styles.push(args[0][0]);\n      var len = args.length;\n      var i = 1;\n\n      for (; i < len; i++) {\n        if (process.env.NODE_ENV !== 'production' && args[0][i] === undefined) {\n          console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n        }\n\n        styles.push(args[i], args[0][i]);\n      }\n    } // $FlowFixMe: we need to cast StatelessFunctionalComponent to our PrivateStyledComponent class\n\n\n    var Styled = withEmotionCache(function (props, cache, ref) {\n      var finalTag = shouldUseAs && props.as || baseTag;\n      var className = '';\n      var classInterpolations = [];\n      var mergedProps = props;\n\n      if (props.theme == null) {\n        mergedProps = {};\n\n        for (var key in props) {\n          mergedProps[key] = props[key];\n        }\n\n        mergedProps.theme = useContext(ThemeContext);\n      }\n\n      if (typeof props.className === 'string') {\n        className = getRegisteredStyles(cache.registered, classInterpolations, props.className);\n      } else if (props.className != null) {\n        className = props.className + \" \";\n      }\n\n      var serialized = serializeStyles(styles.concat(classInterpolations), cache.registered, mergedProps);\n      var rules = insertStyles(cache, serialized, typeof finalTag === 'string');\n      className += cache.key + \"-\" + serialized.name;\n\n      if (targetClassName !== undefined) {\n        className += \" \" + targetClassName;\n      }\n\n      var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(finalTag) : defaultShouldForwardProp;\n      var newProps = {};\n\n      for (var _key in props) {\n        if (shouldUseAs && _key === 'as') continue;\n\n        if ( // $FlowFixMe\n        finalShouldForwardProp(_key)) {\n          newProps[_key] = props[_key];\n        }\n      }\n\n      newProps.className = className;\n      newProps.ref = ref;\n      var ele = /*#__PURE__*/createElement(finalTag, newProps);\n\n      return ele;\n    });\n    Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n    Styled.defaultProps = tag.defaultProps;\n    Styled.__emotion_real = Styled;\n    Styled.__emotion_base = baseTag;\n    Styled.__emotion_styles = styles;\n    Styled.__emotion_forwardProp = shouldForwardProp;\n    Object.defineProperty(Styled, 'toString', {\n      value: function value() {\n        if (targetClassName === undefined && process.env.NODE_ENV !== 'production') {\n          return 'NO_COMPONENT_SELECTOR';\n        } // $FlowFixMe: coerce undefined to string\n\n\n        return \".\" + targetClassName;\n      }\n    });\n\n    Styled.withComponent = function (nextTag, nextOptions) {\n      return createStyled(nextTag, _extends({}, options, nextOptions, {\n        shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)\n      })).apply(void 0, styles);\n    };\n\n    return Styled;\n  };\n};\n\nexport default createStyled;\n","import '@babel/runtime/helpers/extends';\nimport 'react';\nimport '@emotion/is-prop-valid';\nimport createStyled from '../base/dist/emotion-styled-base.browser.esm.js';\nimport '@emotion/react';\nimport '@emotion/utils';\nimport '@emotion/serialize';\n\nvar tags = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\nvar newStyled = createStyled.bind();\ntags.forEach(function (tagName) {\n  // $FlowFixMe: we can ignore this because its exposed type is defined by the CreateStyled type\n  newStyled[tagName] = newStyled(tagName);\n});\n\nexport default newStyled;\n","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n  var rawClassName = '';\n  classNames.split(' ').forEach(function (className) {\n    if (registered[className] !== undefined) {\n      registeredStyles.push(registered[className] + \";\");\n    } else {\n      rawClassName += className + \" \";\n    }\n  });\n  return rawClassName;\n}\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n  var className = cache.key + \"-\" + serialized.name;\n\n  if ( // we only need to add the styles to the registered cache if the\n  // class name could be used further down\n  // the tree but if it's a string tag, we know it won't\n  // so we don't have to add it to registered cache.\n  // this improves memory usage since we can avoid storing the whole style string\n  (isStringTag === false || // we need to always store it if we're in compat mode and\n  // in node since emotion-server relies on whether a style is in\n  // the registered cache to know whether a style is global or not\n  // also, note that this check will be dead code eliminated in the browser\n  isBrowser === false ) && cache.registered[className] === undefined) {\n    cache.registered[className] = serialized.styles;\n  }\n\n  if (cache.inserted[serialized.name] === undefined) {\n    var current = serialized;\n\n    do {\n      var maybeStyles = cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n      current = current.next;\n    } while (current !== undefined);\n  }\n};\n\nexport { getRegisteredStyles, insertStyles };\n","/*\n * This file defines flags and constants that can be modified during compile time in order to facilitate tree shaking\n * for users.\n *\n * Debug flags need to be declared in each package individually and must not be imported across package boundaries,\n * because some build tools have trouble tree-shaking imported guards.\n *\n * As a convention, we define debug flags in a `flags.ts` file in the root of a package's `src` folder.\n *\n * Debug flag files will contain \"magic strings\" like `__SENTRY_DEBUG__` that may get replaced with actual values during\n * our, or the user's build process. Take care when introducing new flags - they must not throw if they are not\n * replaced.\n */\n\n/** Flag that is true for debug builds, false otherwise. */\nvar IS_DEBUG_BUILD = typeof __SENTRY_DEBUG__ === 'undefined' ? true : __SENTRY_DEBUG__;\n\nexport { IS_DEBUG_BUILD };\n//# sourceMappingURL=flags.js.map\n","import { addGlobalEventProcessor, getCurrentHub } from '@sentry/hub';\nimport { logger } from '@sentry/utils';\nimport { IS_DEBUG_BUILD } from './flags.js';\n\nvar installedIntegrations = [];\n\n/** Map of integrations assigned to a client */\n\n/**\n * @private\n */\nfunction filterDuplicates(integrations) {\n  return integrations.reduce((acc, integrations) => {\n    if (acc.every(accIntegration => integrations.name !== accIntegration.name)) {\n      acc.push(integrations);\n    }\n    return acc;\n  }, [] );\n}\n\n/** Gets integration to install */\nfunction getIntegrationsToSetup(options) {\n  var defaultIntegrations = (options.defaultIntegrations && [...options.defaultIntegrations]) || [];\n  var userIntegrations = options.integrations;\n\n  let integrations = [...filterDuplicates(defaultIntegrations)];\n\n  if (Array.isArray(userIntegrations)) {\n    // Filter out integrations that are also included in user options\n    integrations = [\n      ...integrations.filter(integrations =>\n        userIntegrations.every(userIntegration => userIntegration.name !== integrations.name),\n      ),\n      // And filter out duplicated user options integrations\n      ...filterDuplicates(userIntegrations),\n    ];\n  } else if (typeof userIntegrations === 'function') {\n    integrations = userIntegrations(integrations);\n    integrations = Array.isArray(integrations) ? integrations : [integrations];\n  }\n\n  // Make sure that if present, `Debug` integration will always run last\n  var integrationsNames = integrations.map(i => i.name);\n  var alwaysLastToRun = 'Debug';\n  if (integrationsNames.indexOf(alwaysLastToRun) !== -1) {\n    integrations.push(...integrations.splice(integrationsNames.indexOf(alwaysLastToRun), 1));\n  }\n\n  return integrations;\n}\n\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\nfunction setupIntegrations(integrations) {\n  var integrationIndex = {};\n\n  integrations.forEach(integration => {\n    integrationIndex[integration.name] = integration;\n\n    if (installedIntegrations.indexOf(integration.name) === -1) {\n      integration.setupOnce(addGlobalEventProcessor, getCurrentHub);\n      installedIntegrations.push(integration.name);\n      IS_DEBUG_BUILD && logger.log(`Integration installed: ${integration.name}`);\n    }\n  });\n\n  return integrationIndex;\n}\n\nexport { getIntegrationsToSetup, installedIntegrations, setupIntegrations };\n//# sourceMappingURL=integration.js.map\n","import { logger, getEventDescription, isMatchingPattern } from '@sentry/utils';\nimport { IS_DEBUG_BUILD } from '../flags.js';\n\n// \"Script error.\" is hard coded into browsers for errors that it can't read.\n// this is the result of a script being pulled in from an external domain and CORS.\nvar DEFAULT_IGNORE_ERRORS = [/^Script error\\.?$/, /^Javascript error: Script error\\.? on line 0$/];\n\n/** Options for the InboundFilters integration */\n\n/** Inbound filters configurable by the user */\nclass InboundFilters  {\n  /**\n   * @inheritDoc\n   */\n   static __initStatic() {this.id = 'InboundFilters';}\n\n  /**\n   * @inheritDoc\n   */\n   __init() {this.name = InboundFilters.id;}\n\n   constructor(  _options = {}) {;this._options = _options;InboundFilters.prototype.__init.call(this);}\n\n  /**\n   * @inheritDoc\n   */\n   setupOnce(addGlobalEventProcessor, getCurrentHub) {\n    var eventProcess = (event) => {\n      var hub = getCurrentHub();\n      if (hub) {\n        var self = hub.getIntegration(InboundFilters);\n        if (self) {\n          var client = hub.getClient();\n          var clientOptions = client ? client.getOptions() : {};\n          var options = _mergeOptions(self._options, clientOptions);\n          return _shouldDropEvent(event, options) ? null : event;\n        }\n      }\n      return event;\n    };\n\n    eventProcess.id = this.name;\n    addGlobalEventProcessor(eventProcess);\n  }\n} InboundFilters.__initStatic();\n\n/** JSDoc */\nfunction _mergeOptions(\n  internalOptions = {},\n  clientOptions = {},\n) {\n  return {\n    allowUrls: [...(internalOptions.allowUrls || []), ...(clientOptions.allowUrls || [])],\n    denyUrls: [...(internalOptions.denyUrls || []), ...(clientOptions.denyUrls || [])],\n    ignoreErrors: [\n      ...(internalOptions.ignoreErrors || []),\n      ...(clientOptions.ignoreErrors || []),\n      ...DEFAULT_IGNORE_ERRORS,\n    ],\n    ignoreInternal: internalOptions.ignoreInternal !== undefined ? internalOptions.ignoreInternal : true,\n  };\n}\n\n/** JSDoc */\nfunction _shouldDropEvent(event, options) {\n  if (options.ignoreInternal && _isSentryError(event)) {\n    IS_DEBUG_BUILD &&\n      logger.warn(`Event dropped due to being internal Sentry Error.\\nEvent: ${getEventDescription(event)}`);\n    return true;\n  }\n  if (_isIgnoredError(event, options.ignoreErrors)) {\n    IS_DEBUG_BUILD &&\n      logger.warn(\n        `Event dropped due to being matched by \\`ignoreErrors\\` option.\\nEvent: ${getEventDescription(event)}`,\n      );\n    return true;\n  }\n  if (_isDeniedUrl(event, options.denyUrls)) {\n    IS_DEBUG_BUILD &&\n      logger.warn(\n        `Event dropped due to being matched by \\`denyUrls\\` option.\\nEvent: ${getEventDescription(\n          event,\n        )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n      );\n    return true;\n  }\n  if (!_isAllowedUrl(event, options.allowUrls)) {\n    IS_DEBUG_BUILD &&\n      logger.warn(\n        `Event dropped due to not being matched by \\`allowUrls\\` option.\\nEvent: ${getEventDescription(\n          event,\n        )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n      );\n    return true;\n  }\n  return false;\n}\n\nfunction _isIgnoredError(event, ignoreErrors) {\n  if (!ignoreErrors || !ignoreErrors.length) {\n    return false;\n  }\n\n  return _getPossibleEventMessages(event).some(message =>\n    ignoreErrors.some(pattern => isMatchingPattern(message, pattern)),\n  );\n}\n\nfunction _isDeniedUrl(event, denyUrls) {\n  // TODO: Use Glob instead?\n  if (!denyUrls || !denyUrls.length) {\n    return false;\n  }\n  var url = _getEventFilterUrl(event);\n  return !url ? false : denyUrls.some(pattern => isMatchingPattern(url, pattern));\n}\n\nfunction _isAllowedUrl(event, allowUrls) {\n  // TODO: Use Glob instead?\n  if (!allowUrls || !allowUrls.length) {\n    return true;\n  }\n  var url = _getEventFilterUrl(event);\n  return !url ? true : allowUrls.some(pattern => isMatchingPattern(url, pattern));\n}\n\nfunction _getPossibleEventMessages(event) {\n  if (event.message) {\n    return [event.message];\n  }\n  if (event.exception) {\n    try {\n      const { type = '', value = '' } = (event.exception.values && event.exception.values[0]) || {};\n      return [`${value}`, `${type}: ${value}`];\n    } catch (oO) {\n      IS_DEBUG_BUILD && logger.error(`Cannot extract message for event ${getEventDescription(event)}`);\n      return [];\n    }\n  }\n  return [];\n}\n\nfunction _isSentryError(event) {\n  try {\n    // @ts-ignore can't be a sentry error if undefined\n        return event.exception.values[0].type === 'SentryError';\n  } catch (e) {\n    // ignore\n  }\n  return false;\n}\n\nfunction _getLastValidUrl(frames = []) {\n  for (let i = frames.length - 1; i >= 0; i--) {\n    var frame = frames[i];\n\n    if (frame && frame.filename !== '<anonymous>' && frame.filename !== '[native code]') {\n      return frame.filename || null;\n    }\n  }\n\n  return null;\n}\n\nfunction _getEventFilterUrl(event) {\n  try {\n    let frames;\n    try {\n      // @ts-ignore we only care about frames if the whole thing here is defined\n      frames = event.exception.values[0].stacktrace.frames;\n    } catch (e) {\n      // ignore\n    }\n    return frames ? _getLastValidUrl(frames) : null;\n  } catch (oO) {\n    IS_DEBUG_BUILD && logger.error(`Cannot extract url for event ${getEventDescription(event)}`);\n    return null;\n  }\n}\n\nexport { InboundFilters, _mergeOptions, _shouldDropEvent };\n//# sourceMappingURL=inboundfilters.js.map\n","import { getOriginalFunction } from '@sentry/utils';\n\nlet originalFunctionToString;\n\n/** Patch toString calls to return proper name for wrapped functions */\nclass FunctionToString  {constructor() { FunctionToString.prototype.__init.call(this); }\n  /**\n   * @inheritDoc\n   */\n   static __initStatic() {this.id = 'FunctionToString';}\n\n  /**\n   * @inheritDoc\n   */\n   __init() {this.name = FunctionToString.id;}\n\n  /**\n   * @inheritDoc\n   */\n   setupOnce() {\n        originalFunctionToString = Function.prototype.toString;\n\n        Function.prototype.toString = function ( ...args) {\n      var context = getOriginalFunction(this) || this;\n      return originalFunctionToString.apply(context, args);\n    };\n  }\n} FunctionToString.__initStatic();\n\nexport { FunctionToString };\n//# sourceMappingURL=functiontostring.js.map\n","/**\n * Polyfill for the optional chain operator, `?.`, given previous conversion of the expression into an array of values,\n * descriptors, and functions.\n *\n * Adapted from Sucrase (https://github.com/alangpierce/sucrase)\n * See https://github.com/alangpierce/sucrase/blob/265887868966917f3b924ce38dfad01fbab1329f/src/transformers/OptionalChainingNullishTransformer.ts#L15\n *\n * @param ops Array result of expression conversion\n * @returns The value of the expression\n */\nfunction _optionalChain(ops) {\n  let lastAccessLHS = undefined;\n  let value = ops[0];\n  let i = 1;\n  while (i < ops.length) {\n    var op = ops[i] ;\n    var fn = ops[i + 1] ;\n    i += 2;\n    // by checking for loose equality to `null`, we catch both `null` and `undefined`\n    if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n      // really we're meaning to return `undefined` as an actual value here, but it saves bytes not to write it\n      return;\n    }\n    if (op === 'access' || op === 'optionalAccess') {\n      lastAccessLHS = value;\n      value = fn(value);\n    } else if (op === 'call' || op === 'optionalCall') {\n      value = fn((...args) => (value ).call(lastAccessLHS, ...args));\n      lastAccessLHS = undefined;\n    }\n  }\n  return value;\n}\n\n// Sucrase version\n// function _optionalChain(ops) {\n//   let lastAccessLHS = undefined;\n//   let value = ops[0];\n//   let i = 1;\n//   while (i < ops.length) {\n//     var op = ops[i];\n//     var fn = ops[i + 1];\n//     i += 2;\n//     if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n//       return undefined;\n//     }\n//     if (op === 'access' || op === 'optionalAccess') {\n//       lastAccessLHS = value;\n//       value = fn(value);\n//     } else if (op === 'call' || op === 'optionalCall') {\n//       value = fn((...args) => value.call(lastAccessLHS, ...args));\n//       lastAccessLHS = undefined;\n//     }\n//   }\n//   return value;\n// }\n\nexport { _optionalChain };\n//# sourceMappingURL=_optionalChain.js.map\n","/** An error emitted by Sentry SDKs and related utilities. */\nclass SentryError extends Error {\n  /** Display name of this error instance. */\n  \n\n   constructor( message) {\n    super(message);this.message = message;;\n\n    this.name = new.target.prototype.constructor.name;\n    Object.setPrototypeOf(this, new.target.prototype);\n  }\n}\n\nexport { SentryError };\n//# sourceMappingURL=error.js.map\n","import { SentryError } from './error.js';\nimport { IS_DEBUG_BUILD } from './flags.js';\n\n/** Regular expression used to parse a Dsn. */\nvar DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+))?@)([\\w.-]+)(?::(\\d+))?\\/(.+)/;\n\nfunction isValidProtocol(protocol) {\n  return protocol === 'http' || protocol === 'https';\n}\n\n/**\n * Renders the string representation of this Dsn.\n *\n * By default, this will render the public representation without the password\n * component. To get the deprecated private representation, set `withPassword`\n * to true.\n *\n * @param withPassword When set to true, the password will be included.\n */\nfunction dsnToString(dsn, withPassword = false) {\n  const { host, path, pass, port, projectId, protocol, publicKey } = dsn;\n  return (\n    `${protocol}://${publicKey}${withPassword && pass ? `:${pass}` : ''}` +\n    `@${host}${port ? `:${port}` : ''}/${path ? `${path}/` : path}${projectId}`\n  );\n}\n\n/**\n * Parses a Dsn from a given string.\n *\n * @param str A Dsn as string\n * @returns Dsn as DsnComponents\n */\nfunction dsnFromString(str) {\n  var match = DSN_REGEX.exec(str);\n\n  if (!match) {\n    throw new SentryError(`Invalid Sentry Dsn: ${str}`);\n  }\n\n  const [protocol, publicKey, pass = '', host, port = '', lastPath] = match.slice(1);\n  let path = '';\n  let projectId = lastPath;\n\n  var split = projectId.split('/');\n  if (split.length > 1) {\n    path = split.slice(0, -1).join('/');\n    projectId = split.pop() ;\n  }\n\n  if (projectId) {\n    var projectMatch = projectId.match(/^\\d+/);\n    if (projectMatch) {\n      projectId = projectMatch[0];\n    }\n  }\n\n  return dsnFromComponents({ host, pass, path, projectId, port, protocol: protocol , publicKey });\n}\n\nfunction dsnFromComponents(components) {\n  return {\n    protocol: components.protocol,\n    publicKey: components.publicKey || '',\n    pass: components.pass || '',\n    host: components.host,\n    port: components.port || '',\n    path: components.path || '',\n    projectId: components.projectId,\n  };\n}\n\nfunction validateDsn(dsn) {\n  if (!IS_DEBUG_BUILD) {\n    return;\n  }\n\n  const { port, projectId, protocol } = dsn;\n\n  var requiredComponents = ['protocol', 'publicKey', 'host', 'projectId'];\n  requiredComponents.forEach(component => {\n    if (!dsn[component]) {\n      throw new SentryError(`Invalid Sentry Dsn: ${component} missing`);\n    }\n  });\n\n  if (!projectId.match(/^\\d+$/)) {\n    throw new SentryError(`Invalid Sentry Dsn: Invalid projectId ${projectId}`);\n  }\n\n  if (!isValidProtocol(protocol)) {\n    throw new SentryError(`Invalid Sentry Dsn: Invalid protocol ${protocol}`);\n  }\n\n  if (port && isNaN(parseInt(port, 10))) {\n    throw new SentryError(`Invalid Sentry Dsn: Invalid port ${port}`);\n  }\n\n  return true;\n}\n\n/** The Sentry Dsn, identifying a Sentry instance and project. */\nfunction makeDsn(from) {\n  var components = typeof from === 'string' ? dsnFromString(from) : dsnFromComponents(from);\n  validateDsn(components);\n  return components;\n}\n\n/**\n * Changes a Dsn to point to the `relay` server running in the Lambda Extension.\n *\n * This is only used by the serverless integration for AWS Lambda.\n *\n * @param originalDsn The original Dsn of the customer.\n * @returns Dsn pointing to Lambda extension.\n */\nfunction extensionRelayDSN(originalDsn) {\n  if (originalDsn === undefined) {\n    return undefined;\n  }\n\n  var dsn = dsnFromString(originalDsn);\n  dsn.host = 'localhost';\n  dsn.port = '3000';\n  dsn.protocol = 'http';\n\n  return dsnToString(dsn);\n}\n\nexport { dsnToString, extensionRelayDSN, makeDsn };\n//# sourceMappingURL=dsn.js.map\n","import { dropUndefinedKeys } from './object.js';\n\n/**\n * Creates an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nfunction createEnvelope(headers, items = []) {\n  return [headers, items] ;\n}\n\n/**\n * Add an item to an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nfunction addItemToEnvelope(envelope, newItem) {\n  const [headers, items] = envelope;\n  return [headers, [...items, newItem]] ;\n}\n\n/**\n * Convenience function to loop through the items and item types of an envelope.\n * (This function was mostly created because working with envelope types is painful at the moment)\n */\nfunction forEachEnvelopeItem(\n  envelope,\n  callback,\n) {\n  var envelopeItems = envelope[1];\n  envelopeItems.forEach((envelopeItem) => {\n    var envelopeItemType = envelopeItem[0].type;\n    callback(envelopeItem, envelopeItemType);\n  });\n}\n\n// Combination of global TextEncoder and Node require('util').TextEncoder\n\nfunction encodeUTF8(input, textEncoder) {\n  var utf8 = textEncoder || new TextEncoder();\n  return utf8.encode(input);\n}\n\n/**\n * Serializes an envelope.\n */\nfunction serializeEnvelope(envelope, textEncoder) {\n  const [envHeaders, items] = envelope;\n\n  // Initially we construct our envelope as a string and only convert to binary chunks if we encounter binary data\n  let parts = JSON.stringify(envHeaders);\n\n  function append(next) {\n    if (typeof parts === 'string') {\n      parts = typeof next === 'string' ? parts + next : [encodeUTF8(parts, textEncoder), next];\n    } else {\n      parts.push(typeof next === 'string' ? encodeUTF8(next, textEncoder) : next);\n    }\n  }\n\n  for (var item of items) {\n    const [itemHeaders, payload] = item ;\n    append(`\\n${JSON.stringify(itemHeaders)}\\n`);\n    append(typeof payload === 'string' || payload instanceof Uint8Array ? payload : JSON.stringify(payload));\n  }\n\n  return typeof parts === 'string' ? parts : concatBuffers(parts);\n}\n\nfunction concatBuffers(buffers) {\n  var totalLength = buffers.reduce((acc, buf) => acc + buf.length, 0);\n\n  var merged = new Uint8Array(totalLength);\n  let offset = 0;\n  for (var buffer of buffers) {\n    merged.set(buffer, offset);\n    offset += buffer.length;\n  }\n\n  return merged;\n}\n\n/**\n * Creates attachment envelope items\n */\nfunction createAttachmentEnvelopeItem(\n  attachment,\n  textEncoder,\n) {\n  var buffer = typeof attachment.data === 'string' ? encodeUTF8(attachment.data, textEncoder) : attachment.data;\n\n  return [\n    dropUndefinedKeys({\n      type: 'attachment',\n      length: buffer.length,\n      filename: attachment.filename,\n      content_type: attachment.contentType,\n      attachment_type: attachment.attachmentType,\n    }),\n    buffer,\n  ];\n}\n\nvar ITEM_TYPE_TO_DATA_CATEGORY_MAP = {\n  session: 'session',\n  sessions: 'session',\n  attachment: 'attachment',\n  transaction: 'transaction',\n  event: 'error',\n  client_report: 'internal',\n  user_report: 'default',\n};\n\n/**\n * Maps the type of an envelope item to a data category.\n */\nfunction envelopeItemTypeToDataCategory(type) {\n  return ITEM_TYPE_TO_DATA_CATEGORY_MAP[type];\n}\n\nexport { addItemToEnvelope, createAttachmentEnvelopeItem, createEnvelope, envelopeItemTypeToDataCategory, forEachEnvelopeItem, serializeEnvelope };\n//# sourceMappingURL=envelope.js.map\n","import { isNaN, isSyntheticEvent } from './is.js';\nimport { memoBuilder } from './memo.js';\nimport { convertToPlainObject } from './object.js';\nimport { getFunctionName } from './stacktrace.js';\n\n/**\n * Recursively normalizes the given object.\n *\n * - Creates a copy to prevent original input mutation\n * - Skips non-enumerable properties\n * - When stringifying, calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializable values (`undefined`/`NaN`/functions) to serializable format\n * - Translates known global objects/classes to a string representations\n * - Takes care of `Error` object serialization\n * - Optionally limits depth of final output\n * - Optionally limits number of properties/elements included in any single object/array\n *\n * @param input The object to be normalized.\n * @param depth The max depth to which to normalize the object. (Anything deeper stringified whole.)\n * @param maxProperties The max number of elements or properties to be included in any single array or\n * object in the normallized output..\n * @returns A normalized version of the object, or `\"**non-serializable**\"` if any errors are thrown during normalization.\n */\nfunction normalize(input, depth = +Infinity, maxProperties = +Infinity) {\n  try {\n    // since we're at the outermost level, we don't provide a key\n    return visit('', input, depth, maxProperties);\n  } catch (err) {\n    return { ERROR: `**non-serializable** (${err})` };\n  }\n}\n\n/** JSDoc */\nfunction normalizeToSize(\n    object,\n  // Default Node.js REPL depth\n  depth = 3,\n  // 100kB, as 200kB is max payload size, so half sounds reasonable\n  maxSize = 100 * 1024,\n) {\n  var normalized = normalize(object, depth);\n\n  if (jsonSize(normalized) > maxSize) {\n    return normalizeToSize(object, depth - 1, maxSize);\n  }\n\n  return normalized ;\n}\n\n/**\n * Visits a node to perform normalization on it\n *\n * @param key The key corresponding to the given node\n * @param value The node to be visited\n * @param depth Optional number indicating the maximum recursion depth\n * @param maxProperties Optional maximum number of properties/elements included in any single object/array\n * @param memo Optional Memo class handling decycling\n */\nfunction visit(\n  key,\n  value,\n  depth = +Infinity,\n  maxProperties = +Infinity,\n  memo = memoBuilder(),\n) {\n  const [memoize, unmemoize] = memo;\n\n  // If the value has a `toJSON` method, see if we can bail and let it do the work\n  var valueWithToJSON = value ;\n  if (valueWithToJSON && typeof valueWithToJSON.toJSON === 'function') {\n    try {\n      return valueWithToJSON.toJSON();\n    } catch (err) {\n      // pass (The built-in `toJSON` failed, but we can still try to do it ourselves)\n    }\n  }\n\n  // Get the simple cases out of the way first\n  if (value === null || (['number', 'boolean', 'string'].includes(typeof value) && !isNaN(value))) {\n    return value ;\n  }\n\n  var stringified = stringifyValue(key, value);\n\n  // Anything we could potentially dig into more (objects or arrays) will have come back as `\"[object XXXX]\"`.\n  // Everything else will have already been serialized, so if we don't see that pattern, we're done.\n  if (!stringified.startsWith('[object ')) {\n    return stringified;\n  }\n\n  // From here on, we can assert that `value` is either an object or an array.\n\n  // Do not normalize objects that we know have already been normalized. As a general rule, the\n  // \"__sentry_skip_normalization__\" property should only be used sparingly and only should only be set on objects that\n  // have already been normalized.\n  if ((value )['__sentry_skip_normalization__']) {\n    return value ;\n  }\n\n  // We're also done if we've reached the max depth\n  if (depth === 0) {\n    // At this point we know `serialized` is a string of the form `\"[object XXXX]\"`. Clean it up so it's just `\"[XXXX]\"`.\n    return stringified.replace('object ', '');\n  }\n\n  // If we've already visited this branch, bail out, as it's circular reference. If not, note that we're seeing it now.\n  if (memoize(value)) {\n    return '[Circular ~]';\n  }\n\n  // At this point we know we either have an object or an array, we haven't seen it before, and we're going to recurse\n  // because we haven't yet reached the max depth. Create an accumulator to hold the results of visiting each\n  // property/entry, and keep track of the number of items we add to it.\n  var normalized = (Array.isArray(value) ? [] : {}) ;\n  let numAdded = 0;\n\n  // Before we begin, convert`Error` and`Event` instances into plain objects, since some of each of their relevant\n  // properties are non-enumerable and otherwise would get missed.\n  var visitable = convertToPlainObject(value );\n\n  for (var visitKey in visitable) {\n    // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n    if (!Object.prototype.hasOwnProperty.call(visitable, visitKey)) {\n      continue;\n    }\n\n    if (numAdded >= maxProperties) {\n      normalized[visitKey] = '[MaxProperties ~]';\n      break;\n    }\n\n    // Recursively visit all the child nodes\n    var visitValue = visitable[visitKey];\n    normalized[visitKey] = visit(visitKey, visitValue, depth - 1, maxProperties, memo);\n\n    numAdded += 1;\n  }\n\n  // Once we've visited all the branches, remove the parent from memo storage\n  unmemoize(value);\n\n  // Return accumulated values\n  return normalized;\n}\n\n/**\n * Stringify the given value. Handles various known special values and types.\n *\n * Not meant to be used on simple primitives which already have a string representation, as it will, for example, turn\n * the number 1231 into \"[Object Number]\", nor on `null`, as it will throw.\n *\n * @param value The value to stringify\n * @returns A stringified representation of the given value\n */\nfunction stringifyValue(\n  key,\n  // this type is a tiny bit of a cheat, since this function does handle NaN (which is technically a number), but for\n  // our internal use, it'll do\n  value,\n) {\n  try {\n    if (key === 'domain' && value && typeof value === 'object' && (value )._events) {\n      return '[Domain]';\n    }\n\n    if (key === 'domainEmitter') {\n      return '[DomainEmitter]';\n    }\n\n    // It's safe to use `global`, `window`, and `document` here in this manner, as we are asserting using `typeof` first\n    // which won't throw if they are not present.\n\n    if (typeof global !== 'undefined' && value === global) {\n      return '[Global]';\n    }\n\n        if (typeof window !== 'undefined' && value === window) {\n      return '[Window]';\n    }\n\n        if (typeof document !== 'undefined' && value === document) {\n      return '[Document]';\n    }\n\n    // React's SyntheticEvent thingy\n    if (isSyntheticEvent(value)) {\n      return '[SyntheticEvent]';\n    }\n\n    if (typeof value === 'number' && value !== value) {\n      return '[NaN]';\n    }\n\n    // this catches `undefined` (but not `null`, which is a primitive and can be serialized on its own)\n    if (value === void 0) {\n      return '[undefined]';\n    }\n\n    if (typeof value === 'function') {\n      return `[Function: ${getFunctionName(value)}]`;\n    }\n\n    if (typeof value === 'symbol') {\n      return `[${String(value)}]`;\n    }\n\n    // stringified BigInts are indistinguishable from regular numbers, so we need to label them to avoid confusion\n    if (typeof value === 'bigint') {\n      return `[BigInt: ${String(value)}]`;\n    }\n\n    // Now that we've knocked out all the special cases and the primitives, all we have left are objects. Simply casting\n    // them to strings means that instances of classes which haven't defined their `toStringTag` will just come out as\n    // `\"[object Object]\"`. If we instead look at the constructor's name (which is the same as the name of the class),\n    // we can make sure that only plain objects come out that way.\n    return `[object ${(Object.getPrototypeOf(value) ).constructor.name}]`;\n  } catch (err) {\n    return `**non-serializable** (${err})`;\n  }\n}\n\n/** Calculates bytes size of input string */\nfunction utf8Length(value) {\n    return ~-encodeURI(value).split(/%..|./).length;\n}\n\n/** Calculates bytes size of input object */\nfunction jsonSize(value) {\n  return utf8Length(JSON.stringify(value));\n}\n\nexport { normalize, normalizeToSize, visit as walk };\n//# sourceMappingURL=normalize.js.map\n","import { urlEncode, makeDsn, dsnToString } from '@sentry/utils';\n\nvar SENTRY_API_VERSION = '7';\n\n/** Returns the prefix to construct Sentry ingestion API endpoints. */\nfunction getBaseApiEndpoint(dsn) {\n  var protocol = dsn.protocol ? `${dsn.protocol}:` : '';\n  var port = dsn.port ? `:${dsn.port}` : '';\n  return `${protocol}//${dsn.host}${port}${dsn.path ? `/${dsn.path}` : ''}/api/`;\n}\n\n/** Returns the ingest API endpoint for target. */\nfunction _getIngestEndpoint(dsn) {\n  return `${getBaseApiEndpoint(dsn)}${dsn.projectId}/envelope/`;\n}\n\n/** Returns a URL-encoded string with auth config suitable for a query string. */\nfunction _encodedAuth(dsn) {\n  return urlEncode({\n    // We send only the minimum set of required information. See\n    // https://github.com/getsentry/sentry-javascript/issues/2572.\n    sentry_key: dsn.publicKey,\n    sentry_version: SENTRY_API_VERSION,\n  });\n}\n\n/**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\nfunction getEnvelopeEndpointWithUrlEncodedAuth(dsn, tunnel) {\n  return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn)}`;\n}\n\n/** Returns the url to the report dialog endpoint. */\nfunction getReportDialogEndpoint(\n  dsnLike,\n  dialogOptions\n\n,\n) {\n  var dsn = makeDsn(dsnLike);\n  var endpoint = `${getBaseApiEndpoint(dsn)}embed/error-page/`;\n\n  let encodedOptions = `dsn=${dsnToString(dsn)}`;\n  for (var key in dialogOptions) {\n    if (key === 'dsn') {\n      continue;\n    }\n\n    if (key === 'user') {\n      var user = dialogOptions.user;\n      if (!user) {\n        continue;\n      }\n      if (user.name) {\n        encodedOptions += `&name=${encodeURIComponent(user.name)}`;\n      }\n      if (user.email) {\n        encodedOptions += `&email=${encodeURIComponent(user.email)}`;\n      }\n    } else {\n      encodedOptions += `&${encodeURIComponent(key)}=${encodeURIComponent(dialogOptions[key] )}`;\n    }\n  }\n\n  return `${endpoint}?${encodedOptions}`;\n}\n\nexport { getEnvelopeEndpointWithUrlEncodedAuth, getReportDialogEndpoint };\n//# sourceMappingURL=api.js.map\n","import { dsnToString, createEnvelope, dropUndefinedKeys } from '@sentry/utils';\n\n/** Extract sdk info from from the API metadata */\nfunction getSdkMetadataForEnvelopeHeader(metadata) {\n  if (!metadata || !metadata.sdk) {\n    return;\n  }\n  const { name, version } = metadata.sdk;\n  return { name, version };\n}\n\n/**\n * Apply SdkInfo (name, version, packages, integrations) to the corresponding event key.\n * Merge with existing data if any.\n **/\nfunction enhanceEventWithSdkInfo(event, sdkInfo) {\n  if (!sdkInfo) {\n    return event;\n  }\n  event.sdk = event.sdk || {};\n  event.sdk.name = event.sdk.name || sdkInfo.name;\n  event.sdk.version = event.sdk.version || sdkInfo.version;\n  event.sdk.integrations = [...(event.sdk.integrations || []), ...(sdkInfo.integrations || [])];\n  event.sdk.packages = [...(event.sdk.packages || []), ...(sdkInfo.packages || [])];\n  return event;\n}\n\n/** Creates an envelope from a Session */\nfunction createSessionEnvelope(\n  session,\n  dsn,\n  metadata,\n  tunnel,\n) {\n  var sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n  var envelopeHeaders = {\n    sent_at: new Date().toISOString(),\n    ...(sdkInfo && { sdk: sdkInfo }),\n    ...(!!tunnel && { dsn: dsnToString(dsn) }),\n  };\n\n  var envelopeItem =\n    'aggregates' in session ? [{ type: 'sessions' }, session] : [{ type: 'session' }, session];\n\n  return createEnvelope(envelopeHeaders, [envelopeItem]);\n}\n\n/**\n * Create an Envelope from an event.\n */\nfunction createEventEnvelope(\n  event,\n  dsn,\n  metadata,\n  tunnel,\n) {\n  var sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n  var eventType = event.type || 'event';\n\n  const { transactionSampling } = event.sdkProcessingMetadata || {};\n  const { method: samplingMethod, rate: sampleRate } = transactionSampling || {};\n\n  // TODO: Below is a temporary hack in order to debug a serialization error - see\n  // https://github.com/getsentry/sentry-javascript/issues/2809,\n  // https://github.com/getsentry/sentry-javascript/pull/4425, and\n  // https://github.com/getsentry/sentry-javascript/pull/4574.\n  //\n  // TL; DR: even though we normalize all events (which should prevent this), something is causing `JSON.stringify` to\n  // throw a circular reference error.\n  //\n  // When it's time to remove it:\n  // 1. Delete everything between here and where the request object `req` is created, EXCEPT the line deleting\n  //    `sdkProcessingMetadata`\n  // 2. Restore the original version of the request body, which is commented out\n  // 3. Search for either of the PR URLs above and pull out the companion hacks in the browser playwright tests and the\n  //    baseClient tests in this package\n  enhanceEventWithSdkInfo(event, metadata && metadata.sdk);\n  event.tags = event.tags || {};\n  event.extra = event.extra || {};\n\n  // In theory, all events should be marked as having gone through normalization and so\n  // we should never set this tag/extra data\n  if (!(event.sdkProcessingMetadata && event.sdkProcessingMetadata.baseClientNormalized)) {\n    event.tags.skippedNormalization = true;\n    event.extra.normalizeDepth = event.sdkProcessingMetadata ? event.sdkProcessingMetadata.normalizeDepth : 'unset';\n  }\n\n  // prevent this data from being sent to sentry\n  // TODO: This is NOT part of the hack - DO NOT DELETE\n  delete event.sdkProcessingMetadata;\n\n  var envelopeHeaders = createEventEnvelopeHeaders(event, sdkInfo, tunnel, dsn);\n\n  var eventItem = [\n    {\n      type: eventType,\n      sample_rates: [{ id: samplingMethod, rate: sampleRate }],\n    },\n    event,\n  ];\n  return createEnvelope(envelopeHeaders, [eventItem]);\n}\n\nfunction createEventEnvelopeHeaders(\n  event,\n  sdkInfo,\n  tunnel,\n  dsn,\n) {\n  return {\n    event_id: event.event_id ,\n    sent_at: new Date().toISOString(),\n    ...(sdkInfo && { sdk: sdkInfo }),\n    ...(!!tunnel && { dsn: dsnToString(dsn) }),\n    ...(event.type === 'transaction' &&\n      event.contexts &&\n      event.contexts.trace && {\n        // TODO: Grab this from baggage\n        trace: dropUndefinedKeys({\n          // Trace context must be defined for transactions\n                    trace_id: event.contexts.trace.trace_id ,\n          environment: event.environment,\n          release: event.release,\n          transaction: event.transaction,\n          user: event.user && {\n            id: event.user.id,\n            segment: event.user.segment,\n          },\n          public_key: dsn.publicKey,\n        }),\n      }),\n  };\n}\n\nexport { createEventEnvelope, createSessionEnvelope };\n//# sourceMappingURL=envelope.js.map\n","import { _optionalChain } from '@sentry/utils/esm/buildPolyfills';\nimport { updateSession, Scope } from '@sentry/hub';\nimport { makeDsn, logger, checkOrSetAlreadyCaught, isPrimitive, resolvedSyncPromise, addItemToEnvelope, createAttachmentEnvelopeItem, SyncPromise, uuid4, dateTimestampInSeconds, normalize, truncate, rejectedSyncPromise, SentryError, isThenable, isPlainObject } from '@sentry/utils';\nimport { getEnvelopeEndpointWithUrlEncodedAuth } from './api.js';\nimport { createEventEnvelope, createSessionEnvelope } from './envelope.js';\nimport { IS_DEBUG_BUILD } from './flags.js';\nimport { setupIntegrations } from './integration.js';\n\nvar ALREADY_SEEN_ERROR = \"Not capturing exception because it's already been captured.\";\n\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event, it is passed through\n * {@link BaseClient._prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends BaseClient<NodeOptions> {\n *   public constructor(options: NodeOptions) {\n *     super(options);\n *   }\n *\n *   // ...\n * }\n */\nclass BaseClient {\n  /** Options passed to the SDK. */\n  \n\n  /** The client Dsn, if specified in options. Without this Dsn, the SDK will be disabled. */\n  \n\n  /** Array of set up integrations. */\n   __init() {this._integrations = {};}\n\n  /** Indicates whether this client's integrations have been set up. */\n   __init2() {this._integrationsInitialized = false;}\n\n  /** Number of calls being processed */\n   __init3() {this._numProcessing = 0;}\n\n  /** Holds flushable  */\n   __init4() {this._outcomes = {};}\n\n  /**\n   * Initializes this client instance.\n   *\n   * @param options Options for the client.\n   */\n   constructor(options) {;BaseClient.prototype.__init.call(this);BaseClient.prototype.__init2.call(this);BaseClient.prototype.__init3.call(this);BaseClient.prototype.__init4.call(this);\n    this._options = options;\n    if (options.dsn) {\n      this._dsn = makeDsn(options.dsn);\n      var url = getEnvelopeEndpointWithUrlEncodedAuth(this._dsn, options.tunnel);\n      this._transport = options.transport({\n        recordDroppedEvent: this.recordDroppedEvent.bind(this),\n        ...options.transportOptions,\n        url,\n      });\n    } else {\n      IS_DEBUG_BUILD && logger.warn('No DSN provided, client will not do anything.');\n    }\n  }\n\n  /**\n   * @inheritDoc\n   */\n     captureException(exception, hint, scope) {\n    // ensure we haven't captured this very object before\n    if (checkOrSetAlreadyCaught(exception)) {\n      IS_DEBUG_BUILD && logger.log(ALREADY_SEEN_ERROR);\n      return;\n    }\n\n    let eventId = hint && hint.event_id;\n\n    this._process(\n      this.eventFromException(exception, hint)\n        .then(event => this._captureEvent(event, hint, scope))\n        .then(result => {\n          eventId = result;\n        }),\n    );\n\n    return eventId;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   captureMessage(\n    message,\n        level,\n    hint,\n    scope,\n  ) {\n    let eventId = hint && hint.event_id;\n\n    var promisedEvent = isPrimitive(message)\n      ? this.eventFromMessage(String(message), level, hint)\n      : this.eventFromException(message, hint);\n\n    this._process(\n      promisedEvent\n        .then(event => this._captureEvent(event, hint, scope))\n        .then(result => {\n          eventId = result;\n        }),\n    );\n\n    return eventId;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   captureEvent(event, hint, scope) {\n    // ensure we haven't captured this very object before\n    if (hint && hint.originalException && checkOrSetAlreadyCaught(hint.originalException)) {\n      IS_DEBUG_BUILD && logger.log(ALREADY_SEEN_ERROR);\n      return;\n    }\n\n    let eventId = hint && hint.event_id;\n\n    this._process(\n      this._captureEvent(event, hint, scope).then(result => {\n        eventId = result;\n      }),\n    );\n\n    return eventId;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   captureSession(session) {\n    if (!this._isEnabled()) {\n      IS_DEBUG_BUILD && logger.warn('SDK not enabled, will not capture session.');\n      return;\n    }\n\n    if (!(typeof session.release === 'string')) {\n      IS_DEBUG_BUILD && logger.warn('Discarded session because of missing or non-string release');\n    } else {\n      this.sendSession(session);\n      // After sending, we set init false to indicate it's not the first occurrence\n      updateSession(session, { init: false });\n    }\n  }\n\n  /**\n   * @inheritDoc\n   */\n   getDsn() {\n    return this._dsn;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   getOptions() {\n    return this._options;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   getTransport() {\n    return this._transport;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   flush(timeout) {\n    var transport = this._transport;\n    if (transport) {\n      return this._isClientDoneProcessing(timeout).then(clientFinished => {\n        return transport.flush(timeout).then(transportFlushed => clientFinished && transportFlushed);\n      });\n    } else {\n      return resolvedSyncPromise(true);\n    }\n  }\n\n  /**\n   * @inheritDoc\n   */\n   close(timeout) {\n    return this.flush(timeout).then(result => {\n      this.getOptions().enabled = false;\n      return result;\n    });\n  }\n\n  /**\n   * Sets up the integrations\n   */\n   setupIntegrations() {\n    if (this._isEnabled() && !this._integrationsInitialized) {\n      this._integrations = setupIntegrations(this._options.integrations);\n      this._integrationsInitialized = true;\n    }\n  }\n\n  /**\n   * Gets an installed integration by its `id`.\n   *\n   * @returns The installed integration or `undefined` if no integration with that `id` was installed.\n   */\n   getIntegrationById(integrationId) {\n    return this._integrations[integrationId];\n  }\n\n  /**\n   * @inheritDoc\n   */\n   getIntegration(integration) {\n    try {\n      return (this._integrations[integration.id] ) || null;\n    } catch (_oO) {\n      IS_DEBUG_BUILD && logger.warn(`Cannot retrieve integration ${integration.id} from the current Client`);\n      return null;\n    }\n  }\n\n  /**\n   * @inheritDoc\n   */\n   sendEvent(event, hint = {}) {\n    if (this._dsn) {\n      let env = createEventEnvelope(event, this._dsn, this._options._metadata, this._options.tunnel);\n\n      for (var attachment of hint.attachments || []) {\n        env = addItemToEnvelope(\n          env,\n          createAttachmentEnvelopeItem(attachment, _optionalChain([this, 'access', _ => _._options, 'access', _2 => _2.transportOptions, 'optionalAccess', _3 => _3.textEncoder])),\n        );\n      }\n\n      this._sendEnvelope(env);\n    }\n  }\n\n  /**\n   * @inheritDoc\n   */\n   sendSession(session) {\n    if (this._dsn) {\n      var env = createSessionEnvelope(session, this._dsn, this._options._metadata, this._options.tunnel);\n      this._sendEnvelope(env);\n    }\n  }\n\n  /**\n   * @inheritDoc\n   */\n   recordDroppedEvent(reason, category) {\n    if (this._options.sendClientReports) {\n      // We want to track each category (error, transaction, session) separately\n      // but still keep the distinction between different type of outcomes.\n      // We could use nested maps, but it's much easier to read and type this way.\n      // A correct type for map-based implementation if we want to go that route\n      // would be `Partial<Record<SentryRequestType, Partial<Record<Outcome, number>>>>`\n      // With typescript 4.1 we could even use template literal types\n      var key = `${reason}:${category}`;\n      IS_DEBUG_BUILD && logger.log(`Adding outcome: \"${key}\"`);\n\n      // The following works because undefined + 1 === NaN and NaN is falsy\n      this._outcomes[key] = this._outcomes[key] + 1 || 1;\n    }\n  }\n\n  /** Updates existing session based on the provided event */\n   _updateSessionFromEvent(session, event) {\n    let crashed = false;\n    let errored = false;\n    var exceptions = event.exception && event.exception.values;\n\n    if (exceptions) {\n      errored = true;\n\n      for (var ex of exceptions) {\n        var mechanism = ex.mechanism;\n        if (mechanism && mechanism.handled === false) {\n          crashed = true;\n          break;\n        }\n      }\n    }\n\n    // A session is updated and that session update is sent in only one of the two following scenarios:\n    // 1. Session with non terminal status and 0 errors + an error occurred -> Will set error count to 1 and send update\n    // 2. Session with non terminal status and 1 error + a crash occurred -> Will set status crashed and send update\n    var sessionNonTerminal = session.status === 'ok';\n    var shouldUpdateAndSend = (sessionNonTerminal && session.errors === 0) || (sessionNonTerminal && crashed);\n\n    if (shouldUpdateAndSend) {\n      updateSession(session, {\n        ...(crashed && { status: 'crashed' }),\n        errors: session.errors || Number(errored || crashed),\n      });\n      this.captureSession(session);\n    }\n  }\n\n  /**\n   * Determine if the client is finished processing. Returns a promise because it will wait `timeout` ms before saying\n   * \"no\" (resolving to `false`) in order to give the client a chance to potentially finish first.\n   *\n   * @param timeout The time, in ms, after which to resolve to `false` if the client is still busy. Passing `0` (or not\n   * passing anything) will make the promise wait as long as it takes for processing to finish before resolving to\n   * `true`.\n   * @returns A promise which will resolve to `true` if processing is already done or finishes before the timeout, and\n   * `false` otherwise\n   */\n   _isClientDoneProcessing(timeout) {\n    return new SyncPromise(resolve => {\n      let ticked = 0;\n      var tick = 1;\n\n      var interval = setInterval(() => {\n        if (this._numProcessing == 0) {\n          clearInterval(interval);\n          resolve(true);\n        } else {\n          ticked += tick;\n          if (timeout && ticked >= timeout) {\n            clearInterval(interval);\n            resolve(false);\n          }\n        }\n      }, tick);\n    });\n  }\n\n  /** Determines whether this SDK is enabled and a valid Dsn is present. */\n   _isEnabled() {\n    return this.getOptions().enabled !== false && this._dsn !== undefined;\n  }\n\n  /**\n   * Adds common information to events.\n   *\n   * The information includes release and environment from `options`,\n   * breadcrumbs and context (extra, tags and user) from the scope.\n   *\n   * Information that is already present in the event is never overwritten. For\n   * nested objects, such as the context, keys are merged.\n   *\n   * @param event The original event.\n   * @param hint May contain additional information about the original exception.\n   * @param scope A scope containing event metadata.\n   * @returns A new event with more information.\n   */\n   _prepareEvent(event, hint, scope) {\n    const { normalizeDepth = 3, normalizeMaxBreadth = 1000 } = this.getOptions();\n    var prepared = {\n      ...event,\n      event_id: event.event_id || hint.event_id || uuid4(),\n      timestamp: event.timestamp || dateTimestampInSeconds(),\n    };\n\n    this._applyClientOptions(prepared);\n    this._applyIntegrationsMetadata(prepared);\n\n    // If we have scope given to us, use it as the base for further modifications.\n    // This allows us to prevent unnecessary copying of data if `captureContext` is not provided.\n    let finalScope = scope;\n    if (hint.captureContext) {\n      finalScope = Scope.clone(finalScope).update(hint.captureContext);\n    }\n\n    // We prepare the result here with a resolved Event.\n    let result = resolvedSyncPromise(prepared);\n\n    // This should be the last thing called, since we want that\n    // {@link Hub.addEventProcessor} gets the finished prepared event.\n    if (finalScope) {\n      // Collect attachments from the hint and scope\n      var attachments = [...(hint.attachments || []), ...finalScope.getAttachments()];\n\n      if (attachments.length) {\n        hint.attachments = attachments;\n      }\n\n      // In case we have a hub we reassign it.\n      result = finalScope.applyToEvent(prepared, hint);\n    }\n\n    return result.then(evt => {\n      if (evt) {\n        // TODO this is more of the hack trying to solve https://github.com/getsentry/sentry-javascript/issues/2809\n        // it is only attached as extra data to the event if the event somehow skips being normalized\n        evt.sdkProcessingMetadata = {\n          ...evt.sdkProcessingMetadata,\n          normalizeDepth: `${normalize(normalizeDepth)} (${typeof normalizeDepth})`,\n        };\n      }\n      if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n        return this._normalizeEvent(evt, normalizeDepth, normalizeMaxBreadth);\n      }\n      return evt;\n    });\n  }\n\n  /**\n   * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n   * Normalized keys:\n   * - `breadcrumbs.data`\n   * - `user`\n   * - `contexts`\n   * - `extra`\n   * @param event Event\n   * @returns Normalized event\n   */\n   _normalizeEvent(event, depth, maxBreadth) {\n    if (!event) {\n      return null;\n    }\n\n    var normalized = {\n      ...event,\n      ...(event.breadcrumbs && {\n        breadcrumbs: event.breadcrumbs.map(b => ({\n          ...b,\n          ...(b.data && {\n            data: normalize(b.data, depth, maxBreadth),\n          }),\n        })),\n      }),\n      ...(event.user && {\n        user: normalize(event.user, depth, maxBreadth),\n      }),\n      ...(event.contexts && {\n        contexts: normalize(event.contexts, depth, maxBreadth),\n      }),\n      ...(event.extra && {\n        extra: normalize(event.extra, depth, maxBreadth),\n      }),\n    };\n    // event.contexts.trace stores information about a Transaction. Similarly,\n    // event.spans[] stores information about child Spans. Given that a\n    // Transaction is conceptually a Span, normalization should apply to both\n    // Transactions and Spans consistently.\n    // For now the decision is to skip normalization of Transactions and Spans,\n    // so this block overwrites the normalized event to add back the original\n    // Transaction information prior to normalization.\n    if (event.contexts && event.contexts.trace) {\n            normalized.contexts.trace = event.contexts.trace;\n    }\n\n    normalized.sdkProcessingMetadata = { ...normalized.sdkProcessingMetadata, baseClientNormalized: true };\n\n    return normalized;\n  }\n\n  /**\n   *  Enhances event using the client configuration.\n   *  It takes care of all \"static\" values like environment, release and `dist`,\n   *  as well as truncating overly long values.\n   * @param event event instance to be enhanced\n   */\n   _applyClientOptions(event) {\n    var options = this.getOptions();\n    const { environment, release, dist, maxValueLength = 250 } = options;\n\n    if (!('environment' in event)) {\n      event.environment = 'environment' in options ? environment : 'production';\n    }\n\n    if (event.release === undefined && release !== undefined) {\n      event.release = release;\n    }\n\n    if (event.dist === undefined && dist !== undefined) {\n      event.dist = dist;\n    }\n\n    if (event.message) {\n      event.message = truncate(event.message, maxValueLength);\n    }\n\n    var exception = event.exception && event.exception.values && event.exception.values[0];\n    if (exception && exception.value) {\n      exception.value = truncate(exception.value, maxValueLength);\n    }\n\n    var request = event.request;\n    if (request && request.url) {\n      request.url = truncate(request.url, maxValueLength);\n    }\n  }\n\n  /**\n   * This function adds all used integrations to the SDK info in the event.\n   * @param event The event that will be filled with all integrations.\n   */\n   _applyIntegrationsMetadata(event) {\n    var integrationsArray = Object.keys(this._integrations);\n    if (integrationsArray.length > 0) {\n      event.sdk = event.sdk || {};\n      event.sdk.integrations = [...(event.sdk.integrations || []), ...integrationsArray];\n    }\n  }\n\n  /**\n   * Processes the event and logs an error in case of rejection\n   * @param event\n   * @param hint\n   * @param scope\n   */\n   _captureEvent(event, hint = {}, scope) {\n    return this._processEvent(event, hint, scope).then(\n      finalEvent => {\n        return finalEvent.event_id;\n      },\n      reason => {\n        IS_DEBUG_BUILD && logger.warn(reason);\n        return undefined;\n      },\n    );\n  }\n\n  /**\n   * Processes an event (either error or message) and sends it to Sentry.\n   *\n   * This also adds breadcrumbs and context information to the event. However,\n   * platform specific meta data (such as the User's IP address) must be added\n   * by the SDK implementor.\n   *\n   *\n   * @param event The event to send to Sentry.\n   * @param hint May contain additional information about the original exception.\n   * @param scope A scope containing event metadata.\n   * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n   */\n   _processEvent(event, hint, scope) {\n    const { beforeSend, sampleRate } = this.getOptions();\n\n    if (!this._isEnabled()) {\n      return rejectedSyncPromise(new SentryError('SDK not enabled, will not capture event.'));\n    }\n\n    var isTransaction = event.type === 'transaction';\n    // 1.0 === 100% events are sent\n    // 0.0 === 0% events are sent\n    // Sampling for transaction happens somewhere else\n    if (!isTransaction && typeof sampleRate === 'number' && Math.random() > sampleRate) {\n      this.recordDroppedEvent('sample_rate', 'error');\n      return rejectedSyncPromise(\n        new SentryError(\n          `Discarding event because it's not included in the random sample (sampling rate = ${sampleRate})`,\n        ),\n      );\n    }\n\n    return this._prepareEvent(event, hint, scope)\n      .then(prepared => {\n        if (prepared === null) {\n          this.recordDroppedEvent('event_processor', event.type || 'error');\n          throw new SentryError('An event processor returned null, will not send event.');\n        }\n\n        var isInternalException = hint.data && (hint.data ).__sentry__ === true;\n        if (isInternalException || isTransaction || !beforeSend) {\n          return prepared;\n        }\n\n        var beforeSendResult = beforeSend(prepared, hint);\n        return _ensureBeforeSendRv(beforeSendResult);\n      })\n      .then(processedEvent => {\n        if (processedEvent === null) {\n          this.recordDroppedEvent('before_send', event.type || 'error');\n          throw new SentryError('`beforeSend` returned `null`, will not send event.');\n        }\n\n        var session = scope && scope.getSession();\n        if (!isTransaction && session) {\n          this._updateSessionFromEvent(session, processedEvent);\n        }\n\n        this.sendEvent(processedEvent, hint);\n        return processedEvent;\n      })\n      .then(null, reason => {\n        if (reason instanceof SentryError) {\n          throw reason;\n        }\n\n        this.captureException(reason, {\n          data: {\n            __sentry__: true,\n          },\n          originalException: reason ,\n        });\n        throw new SentryError(\n          `Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: ${reason}`,\n        );\n      });\n  }\n\n  /**\n   * Occupies the client with processing and event\n   */\n   _process(promise) {\n    this._numProcessing += 1;\n    void promise.then(\n      value => {\n        this._numProcessing -= 1;\n        return value;\n      },\n      reason => {\n        this._numProcessing -= 1;\n        return reason;\n      },\n    );\n  }\n\n  /**\n   * @inheritdoc\n   */\n   _sendEnvelope(envelope) {\n    if (this._transport && this._dsn) {\n      this._transport.send(envelope).then(null, reason => {\n        IS_DEBUG_BUILD && logger.error('Error while sending event:', reason);\n      });\n    } else {\n      IS_DEBUG_BUILD && logger.error('Transport disabled');\n    }\n  }\n\n  /**\n   * Clears outcomes on this client and returns them.\n   */\n   _clearOutcomes() {\n    var outcomes = this._outcomes;\n    this._outcomes = {};\n    return Object.keys(outcomes).map(key => {\n      const [reason, category] = key.split(':') ;\n      return {\n        reason,\n        category,\n        quantity: outcomes[key],\n      };\n    });\n  }\n\n  /**\n   * @inheritDoc\n   */\n    \n\n}\n\n/**\n * Verifies that return value of configured `beforeSend` is of expected type.\n */\nfunction _ensureBeforeSendRv(rv) {\n  var nullErr = '`beforeSend` method has to return `null` or a valid event.';\n  if (isThenable(rv)) {\n    return rv.then(\n      event => {\n        if (!(isPlainObject(event) || event === null)) {\n          throw new SentryError(nullErr);\n        }\n        return event;\n      },\n      e => {\n        throw new SentryError(`beforeSend rejected with ${e}`);\n      },\n    );\n  } else if (!(isPlainObject(rv) || rv === null)) {\n    throw new SentryError(nullErr);\n  }\n  return rv;\n}\n\nexport { BaseClient };\n//# sourceMappingURL=baseclient.js.map\n","import { isEvent, extractExceptionKeysForMessage, normalizeToSize, addExceptionMechanism, resolvedSyncPromise, isErrorEvent, isDOMError, isDOMException, addExceptionTypeValue, isError, isPlainObject } from '@sentry/utils';\n\n/**\n * This function creates an exception from a JavaScript Error\n */\nfunction exceptionFromError(stackParser, ex) {\n  // Get the frames first since Opera can lose the stack if we touch anything else first\n  var frames = parseStackFrames(stackParser, ex);\n\n  var exception = {\n    type: ex && ex.name,\n    value: extractMessage(ex),\n  };\n\n  if (frames.length) {\n    exception.stacktrace = { frames };\n  }\n\n  if (exception.type === undefined && exception.value === '') {\n    exception.value = 'Unrecoverable error caught';\n  }\n\n  return exception;\n}\n\n/**\n * @hidden\n */\nfunction eventFromPlainObject(\n  stackParser,\n  exception,\n  syntheticException,\n  isUnhandledRejection,\n) {\n  var event = {\n    exception: {\n      values: [\n        {\n          type: isEvent(exception) ? exception.constructor.name : isUnhandledRejection ? 'UnhandledRejection' : 'Error',\n          value: `Non-Error ${\n            isUnhandledRejection ? 'promise rejection' : 'exception'\n          } captured with keys: ${extractExceptionKeysForMessage(exception)}`,\n        },\n      ],\n    },\n    extra: {\n      __serialized__: normalizeToSize(exception),\n    },\n  };\n\n  if (syntheticException) {\n    var frames = parseStackFrames(stackParser, syntheticException);\n    if (frames.length) {\n      // event.exception.values[0] has been set above\n      (event.exception ).values[0].stacktrace = { frames };\n    }\n  }\n\n  return event;\n}\n\n/**\n * @hidden\n */\nfunction eventFromError(stackParser, ex) {\n  return {\n    exception: {\n      values: [exceptionFromError(stackParser, ex)],\n    },\n  };\n}\n\n/** Parses stack frames from an error */\nfunction parseStackFrames(\n  stackParser,\n  ex,\n) {\n  // Access and store the stacktrace property before doing ANYTHING\n  // else to it because Opera is not very good at providing it\n  // reliably in other circumstances.\n  var stacktrace = ex.stacktrace || ex.stack || '';\n\n  var popSize = getPopSize(ex);\n\n  try {\n    return stackParser(stacktrace, popSize);\n  } catch (e) {\n    // no-empty\n  }\n\n  return [];\n}\n\n// Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108\nvar reactMinifiedRegexp = /Minified React error #\\d+;/i;\n\nfunction getPopSize(ex) {\n  if (ex) {\n    if (typeof ex.framesToPop === 'number') {\n      return ex.framesToPop;\n    }\n\n    if (reactMinifiedRegexp.test(ex.message)) {\n      return 1;\n    }\n  }\n\n  return 0;\n}\n\n/**\n * There are cases where stacktrace.message is an Event object\n * https://github.com/getsentry/sentry-javascript/issues/1949\n * In this specific case we try to extract stacktrace.message.error.message\n */\nfunction extractMessage(ex) {\n  var message = ex && ex.message;\n  if (!message) {\n    return 'No error message';\n  }\n  if (message.error && typeof message.error.message === 'string') {\n    return message.error.message;\n  }\n  return message;\n}\n\n/**\n * Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`.\n * @hidden\n */\nfunction eventFromException(\n  stackParser,\n  exception,\n  hint,\n  attachStacktrace,\n) {\n  var syntheticException = (hint && hint.syntheticException) || undefined;\n  var event = eventFromUnknownInput(stackParser, exception, syntheticException, attachStacktrace);\n  addExceptionMechanism(event); // defaults to { type: 'generic', handled: true }\n  event.level = 'error';\n  if (hint && hint.event_id) {\n    event.event_id = hint.event_id;\n  }\n  return resolvedSyncPromise(event);\n}\n\n/**\n * Builds and Event from a Message\n * @hidden\n */\nfunction eventFromMessage(\n  stackParser,\n  message,\n    level = 'info',\n  hint,\n  attachStacktrace,\n) {\n  var syntheticException = (hint && hint.syntheticException) || undefined;\n  var event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n  event.level = level;\n  if (hint && hint.event_id) {\n    event.event_id = hint.event_id;\n  }\n  return resolvedSyncPromise(event);\n}\n\n/**\n * @hidden\n */\nfunction eventFromUnknownInput(\n  stackParser,\n  exception,\n  syntheticException,\n  attachStacktrace,\n  isUnhandledRejection,\n) {\n  let event;\n\n  if (isErrorEvent(exception ) && (exception ).error) {\n    // If it is an ErrorEvent with `error` property, extract it to get actual Error\n    var errorEvent = exception ;\n    return eventFromError(stackParser, errorEvent.error );\n  }\n\n  // If it is a `DOMError` (which is a legacy API, but still supported in some browsers) then we just extract the name\n  // and message, as it doesn't provide anything else. According to the spec, all `DOMExceptions` should also be\n  // `Error`s, but that's not the case in IE11, so in that case we treat it the same as we do a `DOMError`.\n  //\n  // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n  // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n  // https://webidl.spec.whatwg.org/#es-DOMException-specialness\n  if (isDOMError(exception ) || isDOMException(exception )) {\n    var domException = exception ;\n\n    if ('stack' in (exception )) {\n      event = eventFromError(stackParser, exception );\n    } else {\n      var name = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n      var message = domException.message ? `${name}: ${domException.message}` : name;\n      event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n      addExceptionTypeValue(event, message);\n    }\n    if ('code' in domException) {\n      event.tags = { ...event.tags, 'DOMException.code': `${domException.code}` };\n    }\n\n    return event;\n  }\n  if (isError(exception)) {\n    // we have a real Error object, do nothing\n    return eventFromError(stackParser, exception);\n  }\n  if (isPlainObject(exception) || isEvent(exception)) {\n    // If it's a plain object or an instance of `Event` (the built-in JS kind, not this SDK's `Event` type), serialize\n    // it manually. This will allow us to group events based on top-level keys which is much better than creating a new\n    // group on any key/value change.\n    var objectException = exception ;\n    event = eventFromPlainObject(stackParser, objectException, syntheticException, isUnhandledRejection);\n    addExceptionMechanism(event, {\n      synthetic: true,\n    });\n    return event;\n  }\n\n  // If none of previous checks were valid, then it means that it's not:\n  // - an instance of DOMError\n  // - an instance of DOMException\n  // - an instance of Event\n  // - an instance of Error\n  // - a valid ErrorEvent (one with an error property)\n  // - a plain Object\n  //\n  // So bail out and capture it as a simple message:\n  event = eventFromString(stackParser, exception , syntheticException, attachStacktrace);\n  addExceptionTypeValue(event, `${exception}`, undefined);\n  addExceptionMechanism(event, {\n    synthetic: true,\n  });\n\n  return event;\n}\n\n/**\n * @hidden\n */\nfunction eventFromString(\n  stackParser,\n  input,\n  syntheticException,\n  attachStacktrace,\n) {\n  var event = {\n    message: input,\n  };\n\n  if (attachStacktrace && syntheticException) {\n    var frames = parseStackFrames(stackParser, syntheticException);\n    if (frames.length) {\n      event.exception = {\n        values: [{ value: input, stacktrace: { frames } }],\n      };\n    }\n  }\n\n  return event;\n}\n\nexport { eventFromError, eventFromException, eventFromMessage, eventFromPlainObject, eventFromString, eventFromUnknownInput, exceptionFromError, parseStackFrames };\n//# sourceMappingURL=eventbuilder.js.map\n","/*\n * This file defines flags and constants that can be modified during compile time in order to facilitate tree shaking\n * for users.\n *\n * Debug flags need to be declared in each package individually and must not be imported across package boundaries,\n * because some build tools have trouble tree-shaking imported guards.\n *\n * As a convention, we define debug flags in a `flags.ts` file in the root of a package's `src` folder.\n *\n * Debug flag files will contain \"magic strings\" like `__SENTRY_DEBUG__` that may get replaced with actual values during\n * our, or the user's build process. Take care when introducing new flags - they must not throw if they are not\n * replaced.\n */\n\n/** Flag that is true for debug builds, false otherwise. */\nvar IS_DEBUG_BUILD = typeof __SENTRY_DEBUG__ === 'undefined' ? true : __SENTRY_DEBUG__;\n\nexport { IS_DEBUG_BUILD };\n//# sourceMappingURL=flags.js.map\n","// Note: Ideally the `SeverityLevel` type would be derived from `validSeverityLevels`, but that would mean either\n//\n// a) moving `validSeverityLevels` to `@sentry/types`,\n// b) moving the`SeverityLevel` type here, or\n// c) importing `validSeverityLevels` from here into `@sentry/types`.\n//\n// Option A would make `@sentry/types` a runtime dependency of `@sentry/utils` (not good), and options B and C would\n// create a circular dependency between `@sentry/types` and `@sentry/utils` (also not good). So a TODO accompanying the\n// type, reminding anyone who changes it to change this list also, will have to do.\n\nvar validSeverityLevels = ['fatal', 'error', 'warning', 'log', 'info', 'debug'];\n\n/**\n * Converts a string-based level into a member of the deprecated {@link Severity} enum.\n *\n * @deprecated `severityFromString` is deprecated. Please use `severityLevelFromString` instead.\n *\n * @param level String representation of Severity\n * @returns Severity\n */\nfunction severityFromString(level) {\n  return severityLevelFromString(level) ;\n}\n\n/**\n * Converts a string-based level into a `SeverityLevel`, normalizing it along the way.\n *\n * @param level String representation of desired `SeverityLevel`.\n * @returns The `SeverityLevel` corresponding to the given string, or 'log' if the string isn't a valid level.\n */\nfunction severityLevelFromString(level) {\n  return (level === 'warn' ? 'warning' : validSeverityLevels.includes(level) ? level : 'log') ;\n}\n\nexport { severityFromString, severityLevelFromString, validSeverityLevels };\n//# sourceMappingURL=severity.js.map\n","import { getCurrentHub } from '@sentry/core';\nimport { addInstrumentationHandler, htmlTreeAsString, severityLevelFromString, safeJoin, getGlobalObject, parseUrl } from '@sentry/utils';\n\n/** JSDoc */\n\nvar BREADCRUMB_INTEGRATION_ID = 'Breadcrumbs';\n\n/**\n * Default Breadcrumbs instrumentations\n * TODO: Deprecated - with v6, this will be renamed to `Instrument`\n */\nclass Breadcrumbs  {\n  /**\n   * @inheritDoc\n   */\n   static __initStatic() {this.id = BREADCRUMB_INTEGRATION_ID;}\n\n  /**\n   * @inheritDoc\n   */\n   __init() {this.name = Breadcrumbs.id;}\n\n  /**\n   * Options of the breadcrumbs integration.\n   */\n  // This field is public, because we use it in the browser client to check if the `sentry` option is enabled.\n  \n\n  /**\n   * @inheritDoc\n   */\n   constructor(options) {;Breadcrumbs.prototype.__init.call(this);\n    this.options = {\n      console: true,\n      dom: true,\n      fetch: true,\n      history: true,\n      sentry: true,\n      xhr: true,\n      ...options,\n    };\n  }\n\n  /**\n   * Instrument browser built-ins w/ breadcrumb capturing\n   *  - Console API\n   *  - DOM API (click/typing)\n   *  - XMLHttpRequest API\n   *  - Fetch API\n   *  - History API\n   */\n   setupOnce() {\n    if (this.options.console) {\n      addInstrumentationHandler('console', _consoleBreadcrumb);\n    }\n    if (this.options.dom) {\n      addInstrumentationHandler('dom', _domBreadcrumb(this.options.dom));\n    }\n    if (this.options.xhr) {\n      addInstrumentationHandler('xhr', _xhrBreadcrumb);\n    }\n    if (this.options.fetch) {\n      addInstrumentationHandler('fetch', _fetchBreadcrumb);\n    }\n    if (this.options.history) {\n      addInstrumentationHandler('history', _historyBreadcrumb);\n    }\n  }\n} Breadcrumbs.__initStatic();\n\n/**\n * A HOC that creaes a function that creates breadcrumbs from DOM API calls.\n * This is a HOC so that we get access to dom options in the closure.\n */\nfunction _domBreadcrumb(dom) {\n    function _innerDomBreadcrumb(handlerData) {\n    let target;\n    let keyAttrs = typeof dom === 'object' ? dom.serializeAttribute : undefined;\n\n    if (typeof keyAttrs === 'string') {\n      keyAttrs = [keyAttrs];\n    }\n\n    // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n    try {\n      target = handlerData.event.target\n        ? htmlTreeAsString(handlerData.event.target , keyAttrs)\n        : htmlTreeAsString(handlerData.event , keyAttrs);\n    } catch (e) {\n      target = '<unknown>';\n    }\n\n    if (target.length === 0) {\n      return;\n    }\n\n    getCurrentHub().addBreadcrumb(\n      {\n        category: `ui.${handlerData.name}`,\n        message: target,\n      },\n      {\n        event: handlerData.event,\n        name: handlerData.name,\n        global: handlerData.global,\n      },\n    );\n  }\n\n  return _innerDomBreadcrumb;\n}\n\n/**\n * Creates breadcrumbs from console API calls\n */\nfunction _consoleBreadcrumb(handlerData) {\n  var breadcrumb = {\n    category: 'console',\n    data: {\n      arguments: handlerData.args,\n      logger: 'console',\n    },\n    level: severityLevelFromString(handlerData.level),\n    message: safeJoin(handlerData.args, ' '),\n  };\n\n  if (handlerData.level === 'assert') {\n    if (handlerData.args[0] === false) {\n      breadcrumb.message = `Assertion failed: ${safeJoin(handlerData.args.slice(1), ' ') || 'console.assert'}`;\n      breadcrumb.data.arguments = handlerData.args.slice(1);\n    } else {\n      // Don't capture a breadcrumb for passed assertions\n      return;\n    }\n  }\n\n  getCurrentHub().addBreadcrumb(breadcrumb, {\n    input: handlerData.args,\n    level: handlerData.level,\n  });\n}\n\n/**\n * Creates breadcrumbs from XHR API calls\n */\nfunction _xhrBreadcrumb(handlerData) {\n  if (handlerData.endTimestamp) {\n    // We only capture complete, non-sentry requests\n    if (handlerData.xhr.__sentry_own_request__) {\n      return;\n    }\n\n    const { method, url, status_code, body } = handlerData.xhr.__sentry_xhr__ || {};\n\n    getCurrentHub().addBreadcrumb(\n      {\n        category: 'xhr',\n        data: {\n          method,\n          url,\n          status_code,\n        },\n        type: 'http',\n      },\n      {\n        xhr: handlerData.xhr,\n        input: body,\n      },\n    );\n\n    return;\n  }\n}\n\n/**\n * Creates breadcrumbs from fetch API calls\n */\nfunction _fetchBreadcrumb(handlerData) {\n  // We only capture complete fetch requests\n  if (!handlerData.endTimestamp) {\n    return;\n  }\n\n  if (handlerData.fetchData.url.match(/sentry_key/) && handlerData.fetchData.method === 'POST') {\n    // We will not create breadcrumbs for fetch requests that contain `sentry_key` (internal sentry requests)\n    return;\n  }\n\n  if (handlerData.error) {\n    getCurrentHub().addBreadcrumb(\n      {\n        category: 'fetch',\n        data: handlerData.fetchData,\n        level: 'error',\n        type: 'http',\n      },\n      {\n        data: handlerData.error,\n        input: handlerData.args,\n      },\n    );\n  } else {\n    getCurrentHub().addBreadcrumb(\n      {\n        category: 'fetch',\n        data: {\n          ...handlerData.fetchData,\n          status_code: handlerData.response.status,\n        },\n        type: 'http',\n      },\n      {\n        input: handlerData.args,\n        response: handlerData.response,\n      },\n    );\n  }\n}\n\n/**\n * Creates breadcrumbs from history API calls\n */\nfunction _historyBreadcrumb(handlerData) {\n  var global = getGlobalObject();\n  let from = handlerData.from;\n  let to = handlerData.to;\n  var parsedLoc = parseUrl(global.location.href);\n  let parsedFrom = parseUrl(from);\n  var parsedTo = parseUrl(to);\n\n  // Initial pushState doesn't provide `from` information\n  if (!parsedFrom.path) {\n    parsedFrom = parsedLoc;\n  }\n\n  // Use only the path component of the URL if the URL matches the current\n  // document (almost all the time when using pushState)\n  if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\n    to = parsedTo.relative;\n  }\n  if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) {\n    from = parsedFrom.relative;\n  }\n\n  getCurrentHub().addBreadcrumb({\n    category: 'navigation',\n    data: {\n      from,\n      to,\n    },\n  });\n}\n\nexport { BREADCRUMB_INTEGRATION_ID, Breadcrumbs };\n//# sourceMappingURL=breadcrumbs.js.map\n","import { getGlobalObject, isNativeFetch, logger, supportsFetch } from '@sentry/utils';\nimport { IS_DEBUG_BUILD } from '../flags.js';\n\nvar global = getGlobalObject();\nlet cachedFetchImpl;\n\n/**\n * A special usecase for incorrectly wrapped Fetch APIs in conjunction with ad-blockers.\n * Whenever someone wraps the Fetch API and returns the wrong promise chain,\n * this chain becomes orphaned and there is no possible way to capture it's rejections\n * other than allowing it bubble up to this very handler. eg.\n *\n * var f = window.fetch;\n * window.fetch = function () {\n *   var p = f.apply(this, arguments);\n *\n *   p.then(function() {\n *     console.log('hi.');\n *   });\n *\n *   return p;\n * }\n *\n * `p.then(function () { ... })` is producing a completely separate promise chain,\n * however, what's returned is `p` - the result of original `fetch` call.\n *\n * This mean, that whenever we use the Fetch API to send our own requests, _and_\n * some ad-blocker blocks it, this orphaned chain will _always_ reject,\n * effectively causing another event to be captured.\n * This makes a whole process become an infinite loop, which we need to somehow\n * deal with, and break it in one way or another.\n *\n * To deal with this issue, we are making sure that we _always_ use the real\n * browser Fetch API, instead of relying on what `window.fetch` exposes.\n * The only downside to this would be missing our own requests as breadcrumbs,\n * but because we are already not doing this, it should be just fine.\n *\n * Possible failed fetch error messages per-browser:\n *\n * Chrome:  Failed to fetch\n * Edge:    Failed to Fetch\n * Firefox: NetworkError when attempting to fetch resource\n * Safari:  resource blocked by content blocker\n */\nfunction getNativeFetchImplementation() {\n  if (cachedFetchImpl) {\n    return cachedFetchImpl;\n  }\n\n  // Fast path to avoid DOM I/O\n  if (isNativeFetch(global.fetch)) {\n    return (cachedFetchImpl = global.fetch.bind(global));\n  }\n\n  var document = global.document;\n  let fetchImpl = global.fetch;\n    if (document && typeof document.createElement === 'function') {\n    try {\n      var sandbox = document.createElement('iframe');\n      sandbox.hidden = true;\n      document.head.appendChild(sandbox);\n      var contentWindow = sandbox.contentWindow;\n      if (contentWindow && contentWindow.fetch) {\n        fetchImpl = contentWindow.fetch;\n      }\n      document.head.removeChild(sandbox);\n    } catch (e) {\n      IS_DEBUG_BUILD &&\n        logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', e);\n    }\n  }\n\n  return (cachedFetchImpl = fetchImpl.bind(global));\n  }\n\n/**\n * Sends sdk client report using sendBeacon or fetch as a fallback if available\n *\n * @param url report endpoint\n * @param body report payload\n */\nfunction sendReport(url, body) {\n  var isRealNavigator = Object.prototype.toString.call(global && global.navigator) === '[object Navigator]';\n  var hasSendBeacon = isRealNavigator && typeof global.navigator.sendBeacon === 'function';\n\n  if (hasSendBeacon) {\n    // Prevent illegal invocations - https://xgwang.me/posts/you-may-not-know-beacon/#it-may-throw-error%2C-be-sure-to-catch\n    var sendBeacon = global.navigator.sendBeacon.bind(global.navigator);\n    sendBeacon(url, body);\n  } else if (supportsFetch()) {\n    var fetch = getNativeFetchImplementation();\n    fetch(url, {\n      body,\n      method: 'POST',\n      credentials: 'omit',\n      keepalive: true,\n    }).then(null, error => logger.error(error));\n  }\n}\n\nexport { getNativeFetchImplementation, sendReport };\n//# sourceMappingURL=utils.js.map\n","import { BaseClient, SDK_VERSION, getCurrentHub, getEnvelopeEndpointWithUrlEncodedAuth } from '@sentry/core';\nimport { getGlobalObject, getEventDescription, logger, createClientReportEnvelope, dsnToString, serializeEnvelope } from '@sentry/utils';\nimport { eventFromException, eventFromMessage } from './eventbuilder.js';\nimport { IS_DEBUG_BUILD } from './flags.js';\nimport { BREADCRUMB_INTEGRATION_ID } from './integrations/breadcrumbs.js';\nimport { sendReport } from './transports/utils.js';\n\nvar globalObject = getGlobalObject();\n\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nclass BrowserClient extends BaseClient {\n  /**\n   * Creates a new Browser SDK instance.\n   *\n   * @param options Configuration options for this SDK.\n   */\n   constructor(options) {\n    options._metadata = options._metadata || {};\n    options._metadata.sdk = options._metadata.sdk || {\n      name: 'sentry.javascript.browser',\n      packages: [\n        {\n          name: 'npm:@sentry/browser',\n          version: SDK_VERSION,\n        },\n      ],\n      version: SDK_VERSION,\n    };\n\n    super(options);\n\n    if (options.sendClientReports && globalObject.document) {\n      globalObject.document.addEventListener('visibilitychange', () => {\n        if (globalObject.document.visibilityState === 'hidden') {\n          this._flushOutcomes();\n        }\n      });\n    }\n  }\n\n  /**\n   * @inheritDoc\n   */\n   eventFromException(exception, hint) {\n    return eventFromException(this._options.stackParser, exception, hint, this._options.attachStacktrace);\n  }\n\n  /**\n   * @inheritDoc\n   */\n   eventFromMessage(\n    message,\n        level = 'info',\n    hint,\n  ) {\n    return eventFromMessage(this._options.stackParser, message, level, hint, this._options.attachStacktrace);\n  }\n\n  /**\n   * @inheritDoc\n   */\n   sendEvent(event, hint) {\n    // We only want to add the sentry event breadcrumb when the user has the breadcrumb integration installed and\n    // activated its `sentry` option.\n    // We also do not want to use the `Breadcrumbs` class here directly, because we do not want it to be included in\n    // bundles, if it is not used by the SDK.\n    // This all sadly is a bit ugly, but we currently don't have a \"pre-send\" hook on the integrations so we do it this\n    // way for now.\n    var breadcrumbIntegration = this.getIntegrationById(BREADCRUMB_INTEGRATION_ID) ;\n    if (\n      breadcrumbIntegration &&\n      // We check for definedness of `options`, even though it is not strictly necessary, because that access to\n      // `.sentry` below does not throw, in case users provided their own integration with id \"Breadcrumbs\" that does\n      // not have an`options` field\n      breadcrumbIntegration.options &&\n      breadcrumbIntegration.options.sentry\n    ) {\n      getCurrentHub().addBreadcrumb(\n        {\n          category: `sentry.${event.type === 'transaction' ? 'transaction' : 'event'}`,\n          event_id: event.event_id,\n          level: event.level,\n          message: getEventDescription(event),\n        },\n        {\n          event,\n        },\n      );\n    }\n\n    super.sendEvent(event, hint);\n  }\n\n  /**\n   * @inheritDoc\n   */\n   _prepareEvent(event, hint, scope) {\n    event.platform = event.platform || 'javascript';\n    return super._prepareEvent(event, hint, scope);\n  }\n\n  /**\n   * Sends client reports as an envelope.\n   */\n   _flushOutcomes() {\n    var outcomes = this._clearOutcomes();\n\n    if (outcomes.length === 0) {\n      IS_DEBUG_BUILD && logger.log('No outcomes to send');\n      return;\n    }\n\n    if (!this._dsn) {\n      IS_DEBUG_BUILD && logger.log('No dsn provided, will not send outcomes');\n      return;\n    }\n\n    IS_DEBUG_BUILD && logger.log('Sending outcomes:', outcomes);\n\n    var url = getEnvelopeEndpointWithUrlEncodedAuth(this._dsn, this._options.tunnel);\n    var envelope = createClientReportEnvelope(outcomes, this._options.tunnel && dsnToString(this._dsn));\n\n    try {\n      sendReport(url, serializeEnvelope(envelope));\n    } catch (e) {\n      IS_DEBUG_BUILD && logger.error(e);\n    }\n  }\n}\n\nexport { BrowserClient };\n//# sourceMappingURL=client.js.map\n","import { createEnvelope } from './envelope.js';\nimport { dateTimestampInSeconds } from './time.js';\n\n/**\n * Creates client report envelope\n * @param discarded_events An array of discard events\n * @param dsn A DSN that can be set on the header. Optional.\n */\nfunction createClientReportEnvelope(\n  discarded_events,\n  dsn,\n  timestamp,\n) {\n  var clientReportItem = [\n    { type: 'client_report' },\n    {\n      timestamp: timestamp || dateTimestampInSeconds(),\n      discarded_events,\n    },\n  ];\n  return createEnvelope(dsn ? { dsn } : {}, [clientReportItem]);\n}\n\nexport { createClientReportEnvelope };\n//# sourceMappingURL=clientreport.js.map\n","import { createStackParser } from '@sentry/utils';\n\n// global reference to slice\nvar UNKNOWN_FUNCTION = '?';\n\nvar OPERA10_PRIORITY = 10;\nvar OPERA11_PRIORITY = 20;\nvar CHROME_PRIORITY = 30;\nvar WINJS_PRIORITY = 40;\nvar GECKO_PRIORITY = 50;\n\nfunction createFrame(filename, func, lineno, colno) {\n  var frame = {\n    filename,\n    function: func,\n    // All browser frames are considered in_app\n    in_app: true,\n  };\n\n  if (lineno !== undefined) {\n    frame.lineno = lineno;\n  }\n\n  if (colno !== undefined) {\n    frame.colno = colno;\n  }\n\n  return frame;\n}\n\n// Chromium based browsers: Chrome, Brave, new Opera, new Edge\nvar chromeRegex =\n  /^\\s*at (?:(.*?) ?\\((?:address at )?)?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\\/).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nvar chromeEvalRegex = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\nvar chrome = line => {\n  var parts = chromeRegex.exec(line);\n\n  if (parts) {\n    var isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n    if (isEval) {\n      var subMatch = chromeEvalRegex.exec(parts[2]);\n\n      if (subMatch) {\n        // throw out eval line/column and use top-most line/column number\n        parts[2] = subMatch[1]; // url\n        parts[3] = subMatch[2]; // line\n        parts[4] = subMatch[3]; // column\n      }\n    }\n\n    // Kamil: One more hack won't hurt us right? Understanding and adding more rules on top of these regexps right now\n    // would be way too time consuming. (TODO: Rewrite whole RegExp to be more readable)\n    const [func, filename] = extractSafariExtensionDetails(parts[1] || UNKNOWN_FUNCTION, parts[2]);\n\n    return createFrame(filename, func, parts[3] ? +parts[3] : undefined, parts[4] ? +parts[4] : undefined);\n  }\n\n  return;\n};\n\nvar chromeStackLineParser = [CHROME_PRIORITY, chrome];\n\n// gecko regex: `(?:bundle|\\d+\\.js)`: `bundle` is for react native, `\\d+\\.js` also but specifically for ram bundles because it\n// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js\n// We need this specific case for now because we want no other regex to match.\nvar geckoREgex =\n  /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension|capacitor).*?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar geckoEvalRegex = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nvar gecko = line => {\n  var parts = geckoREgex.exec(line);\n\n  if (parts) {\n    var isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n    if (isEval) {\n      var subMatch = geckoEvalRegex.exec(parts[3]);\n\n      if (subMatch) {\n        // throw out eval line/column and use top-most line number\n        parts[1] = parts[1] || 'eval';\n        parts[3] = subMatch[1];\n        parts[4] = subMatch[2];\n        parts[5] = ''; // no column when eval\n      }\n    }\n\n    let filename = parts[3];\n    let func = parts[1] || UNKNOWN_FUNCTION;\n    [func, filename] = extractSafariExtensionDetails(func, filename);\n\n    return createFrame(filename, func, parts[4] ? +parts[4] : undefined, parts[5] ? +parts[5] : undefined);\n  }\n\n  return;\n};\n\nvar geckoStackLineParser = [GECKO_PRIORITY, gecko];\n\nvar winjsRegex =\n  /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nvar winjs = line => {\n  var parts = winjsRegex.exec(line);\n\n  return parts\n    ? createFrame(parts[2], parts[1] || UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : undefined)\n    : undefined;\n};\n\nvar winjsStackLineParser = [WINJS_PRIORITY, winjs];\n\nvar opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\n\nvar opera10 = line => {\n  var parts = opera10Regex.exec(line);\n  return parts ? createFrame(parts[2], parts[3] || UNKNOWN_FUNCTION, +parts[1]) : undefined;\n};\n\nvar opera10StackLineParser = [OPERA10_PRIORITY, opera10];\n\nvar opera11Regex =\n  / line (\\d+), column (\\d+)\\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\\(.*\\))? in (.*):\\s*$/i;\n\nvar opera11 = line => {\n  var parts = opera11Regex.exec(line);\n  return parts ? createFrame(parts[5], parts[3] || parts[4] || UNKNOWN_FUNCTION, +parts[1], +parts[2]) : undefined;\n};\n\nvar opera11StackLineParser = [OPERA11_PRIORITY, opera11];\n\nvar defaultStackLineParsers = [chromeStackLineParser, geckoStackLineParser, winjsStackLineParser];\n\nvar defaultStackParser = createStackParser(...defaultStackLineParsers);\n\n/**\n * Safari web extensions, starting version unknown, can produce \"frames-only\" stacktraces.\n * What it means, is that instead of format like:\n *\n * Error: wat\n *   at function@url:row:col\n *   at function@url:row:col\n *   at function@url:row:col\n *\n * it produces something like:\n *\n *   function@url:row:col\n *   function@url:row:col\n *   function@url:row:col\n *\n * Because of that, it won't be captured by `chrome` RegExp and will fall into `Gecko` branch.\n * This function is extracted so that we can use it in both places without duplicating the logic.\n * Unfortunately \"just\" changing RegExp is too complicated now and making it pass all tests\n * and fix this case seems like an impossible, or at least way too time-consuming task.\n */\nvar extractSafariExtensionDetails = (func, filename) => {\n  var isSafariExtension = func.indexOf('safari-extension') !== -1;\n  var isSafariWebExtension = func.indexOf('safari-web-extension') !== -1;\n\n  return isSafariExtension || isSafariWebExtension\n    ? [\n        func.indexOf('@') !== -1 ? func.split('@')[0] : UNKNOWN_FUNCTION,\n        isSafariExtension ? `safari-extension:${filename}` : `safari-web-extension:${filename}`,\n      ]\n    : [func, filename];\n};\n\nexport { chromeStackLineParser, defaultStackLineParsers, defaultStackParser, geckoStackLineParser, opera10StackLineParser, opera11StackLineParser, winjsStackLineParser };\n//# sourceMappingURL=stack-parsers.js.map\n","import { withScope, captureException } from '@sentry/core';\nimport { getOriginalFunction, addExceptionTypeValue, addExceptionMechanism, markFunctionWrapped, addNonEnumerableProperty } from '@sentry/utils';\n\nlet ignoreOnError = 0;\n\n/**\n * @hidden\n */\nfunction shouldIgnoreOnError() {\n  return ignoreOnError > 0;\n}\n\n/**\n * @hidden\n */\nfunction ignoreNextOnError() {\n  // onerror should trigger before setTimeout\n  ignoreOnError += 1;\n  setTimeout(() => {\n    ignoreOnError -= 1;\n  });\n}\n\n/**\n * Instruments the given function and sends an event to Sentry every time the\n * function throws an exception.\n *\n * @param fn A function to wrap. It is generally safe to pass an unbound function, because the returned wrapper always\n * has a correct `this` context.\n * @returns The wrapped function.\n * @hidden\n */\nfunction wrap(\n  fn,\n  options\n\n = {},\n  before,\n  ) {\n  // for future readers what this does is wrap a function and then create\n  // a bi-directional wrapping between them.\n  //\n  // example: wrapped = wrap(original);\n  //  original.__sentry_wrapped__ -> wrapped\n  //  wrapped.__sentry_original__ -> original\n\n  if (typeof fn !== 'function') {\n    return fn;\n  }\n\n  try {\n    // if we're dealing with a function that was previously wrapped, return\n    // the original wrapper.\n    var wrapper = fn.__sentry_wrapped__;\n    if (wrapper) {\n      return wrapper;\n    }\n\n    // We don't wanna wrap it twice\n    if (getOriginalFunction(fn)) {\n      return fn;\n    }\n  } catch (e) {\n    // Just accessing custom props in some Selenium environments\n    // can cause a \"Permission denied\" exception (see raven-js#495).\n    // Bail on wrapping and return the function as-is (defers to window.onerror).\n    return fn;\n  }\n\n    // It is important that `sentryWrapped` is not an arrow function to preserve the context of `this`\n  var sentryWrapped = function () {\n    var args = Array.prototype.slice.call(arguments);\n\n    try {\n      if (before && typeof before === 'function') {\n        before.apply(this, arguments);\n      }\n\n            var wrappedArguments = args.map((arg) => wrap(arg, options));\n\n      // Attempt to invoke user-land function\n      // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n      //       means the sentry.javascript SDK caught an error invoking your application code. This\n      //       is expected behavior and NOT indicative of a bug with sentry.javascript.\n      return fn.apply(this, wrappedArguments);\n    } catch (ex) {\n      ignoreNextOnError();\n\n      withScope((scope) => {\n        scope.addEventProcessor((event) => {\n          if (options.mechanism) {\n            addExceptionTypeValue(event, undefined, undefined);\n            addExceptionMechanism(event, options.mechanism);\n          }\n\n          event.extra = {\n            ...event.extra,\n            arguments: args,\n          };\n\n          return event;\n        });\n\n        captureException(ex);\n      });\n\n      throw ex;\n    }\n  };\n  \n  // Accessing some objects may throw\n  // ref: https://github.com/getsentry/sentry-javascript/issues/1168\n  try {\n    for (var property in fn) {\n      if (Object.prototype.hasOwnProperty.call(fn, property)) {\n        sentryWrapped[property] = fn[property];\n      }\n    }\n  } catch (_oO) {} \n  // Signal that this function has been wrapped/filled already\n  // for both debugging and to prevent it to being wrapped/filled twice\n  markFunctionWrapped(sentryWrapped, fn);\n\n  addNonEnumerableProperty(fn, '__sentry_wrapped__', sentryWrapped);\n\n  // Restore original function name (not all browsers allow that)\n  try {\n    var descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name') ;\n    if (descriptor.configurable) {\n      Object.defineProperty(sentryWrapped, 'name', {\n        get() {\n          return fn.name;\n        },\n      });\n    }\n      } catch (_oO) {}\n\n  return sentryWrapped;\n}\n\n/**\n * All properties the report dialog supports\n */\n\nexport { ignoreNextOnError, shouldIgnoreOnError, wrap };\n//# sourceMappingURL=helpers.js.map\n","import { getGlobalObject, fill, getFunctionName, getOriginalFunction } from '@sentry/utils';\nimport { wrap } from '../helpers.js';\n\nvar DEFAULT_EVENT_TARGET = [\n  'EventTarget',\n  'Window',\n  'Node',\n  'ApplicationCache',\n  'AudioTrackList',\n  'ChannelMergerNode',\n  'CryptoOperation',\n  'EventSource',\n  'FileReader',\n  'HTMLUnknownElement',\n  'IDBDatabase',\n  'IDBRequest',\n  'IDBTransaction',\n  'KeyOperation',\n  'MediaController',\n  'MessagePort',\n  'ModalWindow',\n  'Notification',\n  'SVGElementInstance',\n  'Screen',\n  'TextTrack',\n  'TextTrackCue',\n  'TextTrackList',\n  'WebSocket',\n  'WebSocketWorker',\n  'Worker',\n  'XMLHttpRequest',\n  'XMLHttpRequestEventTarget',\n  'XMLHttpRequestUpload',\n];\n\n/** Wrap timer functions and event targets to catch errors and provide better meta data */\nclass TryCatch  {\n  /**\n   * @inheritDoc\n   */\n   static __initStatic() {this.id = 'TryCatch';}\n\n  /**\n   * @inheritDoc\n   */\n   __init() {this.name = TryCatch.id;}\n\n  /** JSDoc */\n  \n\n  /**\n   * @inheritDoc\n   */\n   constructor(options) {;TryCatch.prototype.__init.call(this);\n    this._options = {\n      XMLHttpRequest: true,\n      eventTarget: true,\n      requestAnimationFrame: true,\n      setInterval: true,\n      setTimeout: true,\n      ...options,\n    };\n  }\n\n  /**\n   * Wrap timer functions and event targets to catch errors\n   * and provide better metadata.\n   */\n   setupOnce() {\n    var global = getGlobalObject();\n\n    if (this._options.setTimeout) {\n      fill(global, 'setTimeout', _wrapTimeFunction);\n    }\n\n    if (this._options.setInterval) {\n      fill(global, 'setInterval', _wrapTimeFunction);\n    }\n\n    if (this._options.requestAnimationFrame) {\n      fill(global, 'requestAnimationFrame', _wrapRAF);\n    }\n\n    if (this._options.XMLHttpRequest && 'XMLHttpRequest' in global) {\n      fill(XMLHttpRequest.prototype, 'send', _wrapXHR);\n    }\n\n    var eventTargetOption = this._options.eventTarget;\n    if (eventTargetOption) {\n      var eventTarget = Array.isArray(eventTargetOption) ? eventTargetOption : DEFAULT_EVENT_TARGET;\n      eventTarget.forEach(_wrapEventTarget);\n    }\n  }\n} TryCatch.__initStatic();\n\n/** JSDoc */\nfunction _wrapTimeFunction(original) {\n    return function ( ...args) {\n    var originalCallback = args[0];\n    args[0] = wrap(originalCallback, {\n      mechanism: {\n        data: { function: getFunctionName(original) },\n        handled: true,\n        type: 'instrument',\n      },\n    });\n    return original.apply(this, args);\n  };\n}\n\n/** JSDoc */\nfunction _wrapRAF(original) {\n    return function ( callback) {\n        return original.apply(this, [\n      wrap(callback, {\n        mechanism: {\n          data: {\n            function: 'requestAnimationFrame',\n            handler: getFunctionName(original),\n          },\n          handled: true,\n          type: 'instrument',\n        },\n      }),\n    ]);\n  };\n}\n\n/** JSDoc */\nfunction _wrapXHR(originalSend) {\n    return function ( ...args) {\n        var xhr = this;\n    var xmlHttpRequestProps = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];\n\n    xmlHttpRequestProps.forEach(prop => {\n      if (prop in xhr && typeof xhr[prop] === 'function') {\n                fill(xhr, prop, function (original) {\n          var wrapOptions = {\n            mechanism: {\n              data: {\n                function: prop,\n                handler: getFunctionName(original),\n              },\n              handled: true,\n              type: 'instrument',\n            },\n          };\n\n          // If Instrument integration has been called before TryCatch, get the name of original function\n          var originalFunction = getOriginalFunction(original);\n          if (originalFunction) {\n            wrapOptions.mechanism.data.handler = getFunctionName(originalFunction);\n          }\n\n          // Otherwise wrap directly\n          return wrap(original, wrapOptions);\n        });\n      }\n    });\n\n    return originalSend.apply(this, args);\n  };\n}\n\n/** JSDoc */\nfunction _wrapEventTarget(target) {\n    var global = getGlobalObject() ;\n    var proto = global[target] && global[target].prototype;\n\n    if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n    return;\n  }\n\n  fill(proto, 'addEventListener', function (original)\n\n {\n    return function (\n            \n      eventName,\n      fn,\n      options,\n    ) {\n      try {\n        if (typeof fn.handleEvent === 'function') {\n          // ESlint disable explanation:\n          //  First, it is generally safe to call `wrap` with an unbound function. Furthermore, using `.bind()` would\n          //  introduce a bug here, because bind returns a new function that doesn't have our\n          //  flags(like __sentry_original__) attached. `wrap` checks for those flags to avoid unnecessary wrapping.\n          //  Without those flags, every call to addEventListener wraps the function again, causing a memory leak.\n                    fn.handleEvent = wrap(fn.handleEvent, {\n            mechanism: {\n              data: {\n                function: 'handleEvent',\n                handler: getFunctionName(fn),\n                target,\n              },\n              handled: true,\n              type: 'instrument',\n            },\n          });\n        }\n      } catch (err) {\n        // can sometimes get 'Permission denied to access property \"handle Event'\n      }\n\n      return original.apply(this, [\n        eventName,\n                wrap(fn , {\n          mechanism: {\n            data: {\n              function: 'addEventListener',\n              handler: getFunctionName(fn),\n              target,\n            },\n            handled: true,\n            type: 'instrument',\n          },\n        }),\n        options,\n      ]);\n    };\n  });\n\n  fill(\n    proto,\n    'removeEventListener',\n    function (\n      originalRemoveEventListener,\n          ) {\n      return function (\n                \n        eventName,\n        fn,\n        options,\n      ) {\n        /**\n         * There are 2 possible scenarios here:\n         *\n         * 1. Someone passes a callback, which was attached prior to Sentry initialization, or by using unmodified\n         * method, eg. `document.addEventListener.call(el, name, handler). In this case, we treat this function\n         * as a pass-through, and call original `removeEventListener` with it.\n         *\n         * 2. Someone passes a callback, which was attached after Sentry was initialized, which means that it was using\n         * our wrapped version of `addEventListener`, which internally calls `wrap` helper.\n         * This helper \"wraps\" whole callback inside a try/catch statement, and attached appropriate metadata to it,\n         * in order for us to make a distinction between wrapped/non-wrapped functions possible.\n         * If a function was wrapped, it has additional property of `__sentry_wrapped__`, holding the handler.\n         *\n         * When someone adds a handler prior to initialization, and then do it again, but after,\n         * then we have to detach both of them. Otherwise, if we'd detach only wrapped one, it'd be impossible\n         * to get rid of the initial handler and it'd stick there forever.\n         */\n        var wrappedEventHandler = fn ;\n        try {\n          var originalEventHandler = wrappedEventHandler && wrappedEventHandler.__sentry_wrapped__;\n          if (originalEventHandler) {\n            originalRemoveEventListener.call(this, eventName, originalEventHandler, options);\n          }\n        } catch (e) {\n          // ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n        }\n        return originalRemoveEventListener.call(this, eventName, wrappedEventHandler, options);\n      };\n    },\n  );\n}\n\nexport { TryCatch };\n//# sourceMappingURL=trycatch.js.map\n","import { getCurrentHub } from '@sentry/core';\nimport { addInstrumentationHandler, isString, isPrimitive, isErrorEvent, getLocationHref, logger, addExceptionMechanism } from '@sentry/utils';\nimport { eventFromUnknownInput } from '../eventbuilder.js';\nimport { IS_DEBUG_BUILD } from '../flags.js';\nimport { shouldIgnoreOnError } from '../helpers.js';\n\n/** Global handlers */\nclass GlobalHandlers  {\n  /**\n   * @inheritDoc\n   */\n   static __initStatic() {this.id = 'GlobalHandlers';}\n\n  /**\n   * @inheritDoc\n   */\n   __init() {this.name = GlobalHandlers.id;}\n\n  /** JSDoc */\n  \n\n  /**\n   * Stores references functions to installing handlers. Will set to undefined\n   * after they have been run so that they are not used twice.\n   */\n   __init2() {this._installFunc = {\n    onerror: _installGlobalOnErrorHandler,\n    onunhandledrejection: _installGlobalOnUnhandledRejectionHandler,\n  };}\n\n  /** JSDoc */\n   constructor(options) {;GlobalHandlers.prototype.__init.call(this);GlobalHandlers.prototype.__init2.call(this);\n    this._options = {\n      onerror: true,\n      onunhandledrejection: true,\n      ...options,\n    };\n  }\n  /**\n   * @inheritDoc\n   */\n   setupOnce() {\n    Error.stackTraceLimit = 50;\n    var options = this._options;\n\n    // We can disable guard-for-in as we construct the options object above + do checks against\n    // `this._installFunc` for the property.\n        for (var key in options) {\n      var installFunc = this._installFunc[key ];\n      if (installFunc && options[key ]) {\n        globalHandlerLog(key);\n        installFunc();\n        this._installFunc[key ] = undefined;\n      }\n    }\n  }\n} GlobalHandlers.__initStatic();\n\n/** JSDoc */\nfunction _installGlobalOnErrorHandler() {\n  addInstrumentationHandler(\n    'error',\n        (data) => {\n      const [hub, stackParser, attachStacktrace] = getHubAndOptions();\n      if (!hub.getIntegration(GlobalHandlers)) {\n        return;\n      }\n      const { msg, url, line, column, error } = data;\n      if (shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {\n        return;\n      }\n\n      var event =\n        error === undefined && isString(msg)\n          ? _eventFromIncompleteOnError(msg, url, line, column)\n          : _enhanceEventWithInitialFrame(\n              eventFromUnknownInput(stackParser, error || msg, undefined, attachStacktrace, false),\n              url,\n              line,\n              column,\n            );\n\n      event.level = 'error';\n\n      addMechanismAndCapture(hub, error, event, 'onerror');\n    },\n  );\n}\n\n/** JSDoc */\nfunction _installGlobalOnUnhandledRejectionHandler() {\n  addInstrumentationHandler(\n    'unhandledrejection',\n        (e) => {\n      const [hub, stackParser, attachStacktrace] = getHubAndOptions();\n      if (!hub.getIntegration(GlobalHandlers)) {\n        return;\n      }\n      let error = e;\n\n      // dig the object of the rejection out of known event types\n      try {\n        // PromiseRejectionEvents store the object of the rejection under 'reason'\n        // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n        if ('reason' in e) {\n          error = e.reason;\n        }\n        // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents\n        // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into\n        // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec\n        // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and\n        // https://github.com/getsentry/sentry-javascript/issues/2380\n        else if ('detail' in e && 'reason' in e.detail) {\n          error = e.detail.reason;\n        }\n      } catch (_oO) {\n        // no-empty\n      }\n\n      if (shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {\n        return true;\n      }\n\n      var event = isPrimitive(error)\n        ? _eventFromRejectionWithPrimitive(error)\n        : eventFromUnknownInput(stackParser, error, undefined, attachStacktrace, true);\n\n      event.level = 'error';\n\n      addMechanismAndCapture(hub, error, event, 'onunhandledrejection');\n      return;\n    },\n  );\n}\n\n/**\n * Create an event from a promise rejection where the `reason` is a primitive.\n *\n * @param reason: The `reason` property of the promise rejection\n * @returns An Event object with an appropriate `exception` value\n */\nfunction _eventFromRejectionWithPrimitive(reason) {\n  return {\n    exception: {\n      values: [\n        {\n          type: 'UnhandledRejection',\n          // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)\n          value: `Non-Error promise rejection captured with value: ${String(reason)}`,\n        },\n      ],\n    },\n  };\n}\n\n/**\n * This function creates a stack from an old, error-less onerror handler.\n */\nfunction _eventFromIncompleteOnError(msg, url, line, column) {\n  var ERROR_TYPES_RE =\n    /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;\n\n  // If 'message' is ErrorEvent, get real message from inside\n  let message = isErrorEvent(msg) ? msg.message : msg;\n  let name = 'Error';\n\n  var groups = message.match(ERROR_TYPES_RE);\n  if (groups) {\n    name = groups[1];\n    message = groups[2];\n  }\n\n  var event = {\n    exception: {\n      values: [\n        {\n          type: name,\n          value: message,\n        },\n      ],\n    },\n  };\n\n  return _enhanceEventWithInitialFrame(event, url, line, column);\n}\n\n/** JSDoc */\nfunction _enhanceEventWithInitialFrame(event, url, line, column) {\n  // event.exception\n  var e = (event.exception = event.exception || {});\n  // event.exception.values\n  var ev = (e.values = e.values || []);\n  // event.exception.values[0]\n  var ev0 = (ev[0] = ev[0] || {});\n  // event.exception.values[0].stacktrace\n  var ev0s = (ev0.stacktrace = ev0.stacktrace || {});\n  // event.exception.values[0].stacktrace.frames\n  var ev0sf = (ev0s.frames = ev0s.frames || []);\n\n  var colno = isNaN(parseInt(column, 10)) ? undefined : column;\n  var lineno = isNaN(parseInt(line, 10)) ? undefined : line;\n  var filename = isString(url) && url.length > 0 ? url : getLocationHref();\n\n  // event.exception.values[0].stacktrace.frames\n  if (ev0sf.length === 0) {\n    ev0sf.push({\n      colno,\n      filename,\n      function: '?',\n      in_app: true,\n      lineno,\n    });\n  }\n\n  return event;\n}\n\nfunction globalHandlerLog(type) {\n  IS_DEBUG_BUILD && logger.log(`Global Handler attached: ${type}`);\n}\n\nfunction addMechanismAndCapture(hub, error, event, type) {\n  addExceptionMechanism(event, {\n    handled: false,\n    type,\n  });\n  hub.captureEvent(event, {\n    originalException: error,\n  });\n}\n\nfunction getHubAndOptions() {\n  var hub = getCurrentHub();\n  var client = hub.getClient();\n  var options = (client && client.getOptions()) || {\n    stackParser: () => [],\n    attachStacktrace: false,\n  };\n  return [hub, options.stackParser, options.attachStacktrace];\n}\n\nexport { GlobalHandlers };\n//# sourceMappingURL=globalhandlers.js.map\n","import { getCurrentHub, addGlobalEventProcessor } from '@sentry/core';\nimport { isInstanceOf } from '@sentry/utils';\nimport { exceptionFromError } from '../eventbuilder.js';\n\nvar DEFAULT_KEY = 'cause';\nvar DEFAULT_LIMIT = 5;\n\n/** Adds SDK info to an event. */\nclass LinkedErrors  {\n  /**\n   * @inheritDoc\n   */\n   static __initStatic() {this.id = 'LinkedErrors';}\n\n  /**\n   * @inheritDoc\n   */\n    __init() {this.name = LinkedErrors.id;}\n\n  /**\n   * @inheritDoc\n   */\n  \n\n  /**\n   * @inheritDoc\n   */\n  \n\n  /**\n   * @inheritDoc\n   */\n   constructor(options = {}) {;LinkedErrors.prototype.__init.call(this);\n    this._key = options.key || DEFAULT_KEY;\n    this._limit = options.limit || DEFAULT_LIMIT;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   setupOnce() {\n    var client = getCurrentHub().getClient();\n    if (!client) {\n      return;\n    }\n    addGlobalEventProcessor((event, hint) => {\n      var self = getCurrentHub().getIntegration(LinkedErrors);\n      return self ? _handler(client.getOptions().stackParser, self._key, self._limit, event, hint) : event;\n    });\n  }\n} LinkedErrors.__initStatic();\n\n/**\n * @inheritDoc\n */\nfunction _handler(\n  parser,\n  key,\n  limit,\n  event,\n  hint,\n) {\n  if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n    return event;\n  }\n  var linkedErrors = _walkErrorTree(parser, limit, hint.originalException , key);\n  event.exception.values = [...linkedErrors, ...event.exception.values];\n  return event;\n}\n\n/**\n * JSDOC\n */\nfunction _walkErrorTree(\n  parser,\n  limit,\n  error,\n  key,\n  stack = [],\n) {\n  if (!isInstanceOf(error[key], Error) || stack.length + 1 >= limit) {\n    return stack;\n  }\n  var exception = exceptionFromError(parser, error[key]);\n  return _walkErrorTree(parser, limit, error[key], key, [exception, ...stack]);\n}\n\nexport { LinkedErrors, _handler, _walkErrorTree };\n//# sourceMappingURL=linkederrors.js.map\n","import { logger } from '@sentry/utils';\nimport { IS_DEBUG_BUILD } from '../flags.js';\n\n/** Deduplication filter */\nclass Dedupe  {constructor() { Dedupe.prototype.__init.call(this); }\n  /**\n   * @inheritDoc\n   */\n   static __initStatic() {this.id = 'Dedupe';}\n\n  /**\n   * @inheritDoc\n   */\n   __init() {this.name = Dedupe.id;}\n\n  /**\n   * @inheritDoc\n   */\n  \n\n  /**\n   * @inheritDoc\n   */\n   setupOnce(addGlobalEventProcessor, getCurrentHub) {\n    var eventProcessor = currentEvent => {\n      var self = getCurrentHub().getIntegration(Dedupe);\n      if (self) {\n        // Juuust in case something goes wrong\n        try {\n          if (_shouldDropEvent(currentEvent, self._previousEvent)) {\n            IS_DEBUG_BUILD && logger.warn('Event dropped due to being a duplicate of previously captured event.');\n            return null;\n          }\n        } catch (_oO) {\n          return (self._previousEvent = currentEvent);\n        }\n\n        return (self._previousEvent = currentEvent);\n      }\n      return currentEvent;\n    };\n\n    eventProcessor.id = this.name;\n    addGlobalEventProcessor(eventProcessor);\n  }\n} Dedupe.__initStatic();\n\n/** JSDoc */\nfunction _shouldDropEvent(currentEvent, previousEvent) {\n  if (!previousEvent) {\n    return false;\n  }\n\n  if (_isSameMessageEvent(currentEvent, previousEvent)) {\n    return true;\n  }\n\n  if (_isSameExceptionEvent(currentEvent, previousEvent)) {\n    return true;\n  }\n\n  return false;\n}\n\n/** JSDoc */\nfunction _isSameMessageEvent(currentEvent, previousEvent) {\n  var currentMessage = currentEvent.message;\n  var previousMessage = previousEvent.message;\n\n  // If neither event has a message property, they were both exceptions, so bail out\n  if (!currentMessage && !previousMessage) {\n    return false;\n  }\n\n  // If only one event has a stacktrace, but not the other one, they are not the same\n  if ((currentMessage && !previousMessage) || (!currentMessage && previousMessage)) {\n    return false;\n  }\n\n  if (currentMessage !== previousMessage) {\n    return false;\n  }\n\n  if (!_isSameFingerprint(currentEvent, previousEvent)) {\n    return false;\n  }\n\n  if (!_isSameStacktrace(currentEvent, previousEvent)) {\n    return false;\n  }\n\n  return true;\n}\n\n/** JSDoc */\nfunction _isSameExceptionEvent(currentEvent, previousEvent) {\n  var previousException = _getExceptionFromEvent(previousEvent);\n  var currentException = _getExceptionFromEvent(currentEvent);\n\n  if (!previousException || !currentException) {\n    return false;\n  }\n\n  if (previousException.type !== currentException.type || previousException.value !== currentException.value) {\n    return false;\n  }\n\n  if (!_isSameFingerprint(currentEvent, previousEvent)) {\n    return false;\n  }\n\n  if (!_isSameStacktrace(currentEvent, previousEvent)) {\n    return false;\n  }\n\n  return true;\n}\n\n/** JSDoc */\nfunction _isSameStacktrace(currentEvent, previousEvent) {\n  let currentFrames = _getFramesFromEvent(currentEvent);\n  let previousFrames = _getFramesFromEvent(previousEvent);\n\n  // If neither event has a stacktrace, they are assumed to be the same\n  if (!currentFrames && !previousFrames) {\n    return true;\n  }\n\n  // If only one event has a stacktrace, but not the other one, they are not the same\n  if ((currentFrames && !previousFrames) || (!currentFrames && previousFrames)) {\n    return false;\n  }\n\n  currentFrames = currentFrames ;\n  previousFrames = previousFrames ;\n\n  // If number of frames differ, they are not the same\n  if (previousFrames.length !== currentFrames.length) {\n    return false;\n  }\n\n  // Otherwise, compare the two\n  for (let i = 0; i < previousFrames.length; i++) {\n    var frameA = previousFrames[i];\n    var frameB = currentFrames[i];\n\n    if (\n      frameA.filename !== frameB.filename ||\n      frameA.lineno !== frameB.lineno ||\n      frameA.colno !== frameB.colno ||\n      frameA.function !== frameB.function\n    ) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\n/** JSDoc */\nfunction _isSameFingerprint(currentEvent, previousEvent) {\n  let currentFingerprint = currentEvent.fingerprint;\n  let previousFingerprint = previousEvent.fingerprint;\n\n  // If neither event has a fingerprint, they are assumed to be the same\n  if (!currentFingerprint && !previousFingerprint) {\n    return true;\n  }\n\n  // If only one event has a fingerprint, but not the other one, they are not the same\n  if ((currentFingerprint && !previousFingerprint) || (!currentFingerprint && previousFingerprint)) {\n    return false;\n  }\n\n  currentFingerprint = currentFingerprint ;\n  previousFingerprint = previousFingerprint ;\n\n  // Otherwise, compare the two\n  try {\n    return !!(currentFingerprint.join('') === previousFingerprint.join(''));\n  } catch (_oO) {\n    return false;\n  }\n}\n\n/** JSDoc */\nfunction _getExceptionFromEvent(event) {\n  return event.exception && event.exception.values && event.exception.values[0];\n}\n\n/** JSDoc */\nfunction _getFramesFromEvent(event) {\n  var exception = event.exception;\n\n  if (exception) {\n    try {\n      // @ts-ignore Object could be undefined\n      return exception.values[0].stacktrace.frames;\n    } catch (_oO) {\n      return undefined;\n    }\n  }\n  return undefined;\n}\n\nexport { Dedupe };\n//# sourceMappingURL=dedupe.js.map\n","import { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { getGlobalObject } from '@sentry/utils';\n\nvar global = getGlobalObject();\n\n/** HttpContext integration collects information about HTTP request headers */\nclass HttpContext  {constructor() { HttpContext.prototype.__init.call(this); }\n  /**\n   * @inheritDoc\n   */\n   static __initStatic() {this.id = 'HttpContext';}\n\n  /**\n   * @inheritDoc\n   */\n   __init() {this.name = HttpContext.id;}\n\n  /**\n   * @inheritDoc\n   */\n   setupOnce() {\n    addGlobalEventProcessor((event) => {\n      if (getCurrentHub().getIntegration(HttpContext)) {\n        // if none of the information we want exists, don't bother\n        if (!global.navigator && !global.location && !global.document) {\n          return event;\n        }\n\n        // grab as much info as exists and add it to the event\n        var url = (event.request && event.request.url) || (global.location && global.location.href);\n        const { referrer } = global.document || {};\n        const { userAgent } = global.navigator || {};\n\n        var headers = {\n          ...(event.request && event.request.headers),\n          ...(referrer && { Referer: referrer }),\n          ...(userAgent && { 'User-Agent': userAgent }),\n        };\n        var request = { ...(url && { url }), headers };\n\n        return { ...event, request };\n      }\n      return event;\n    });\n  }\n} HttpContext.__initStatic();\n\nexport { HttpContext };\n//# sourceMappingURL=httpcontext.js.map\n","import { SentryError } from './error.js';\nimport { rejectedSyncPromise, SyncPromise, resolvedSyncPromise } from './syncpromise.js';\n\n/**\n * Creates an new PromiseBuffer object with the specified limit\n * @param limit max number of promises that can be stored in the buffer\n */\nfunction makePromiseBuffer(limit) {\n  var buffer = [];\n\n  function isReady() {\n    return limit === undefined || buffer.length < limit;\n  }\n\n  /**\n   * Remove a promise from the queue.\n   *\n   * @param task Can be any PromiseLike<T>\n   * @returns Removed promise.\n   */\n  function remove(task) {\n    return buffer.splice(buffer.indexOf(task), 1)[0];\n  }\n\n  /**\n   * Add a promise (representing an in-flight action) to the queue, and set it to remove itself on fulfillment.\n   *\n   * @param taskProducer A function producing any PromiseLike<T>; In previous versions this used to be `task:\n   *        PromiseLike<T>`, but under that model, Promises were instantly created on the call-site and their executor\n   *        functions therefore ran immediately. Thus, even if the buffer was full, the action still happened. By\n   *        requiring the promise to be wrapped in a function, we can defer promise creation until after the buffer\n   *        limit check.\n   * @returns The original promise.\n   */\n  function add(taskProducer) {\n    if (!isReady()) {\n      return rejectedSyncPromise(new SentryError('Not adding Promise due to buffer limit reached.'));\n    }\n\n    // start the task and add its promise to the queue\n    var task = taskProducer();\n    if (buffer.indexOf(task) === -1) {\n      buffer.push(task);\n    }\n    void task\n      .then(() => remove(task))\n      // Use `then(null, rejectionHandler)` rather than `catch(rejectionHandler)` so that we can use `PromiseLike`\n      // rather than `Promise`. `PromiseLike` doesn't have a `.catch` method, making its polyfill smaller. (ES5 didn't\n      // have promises, so TS has to polyfill when down-compiling.)\n      .then(null, () =>\n        remove(task).then(null, () => {\n          // We have to add another catch here because `remove()` starts a new promise chain.\n        }),\n      );\n    return task;\n  }\n\n  /**\n   * Wait for all promises in the queue to resolve or for timeout to expire, whichever comes first.\n   *\n   * @param timeout The time, in ms, after which to resolve to `false` if the queue is still non-empty. Passing `0` (or\n   * not passing anything) will make the promise wait as long as it takes for the queue to drain before resolving to\n   * `true`.\n   * @returns A promise which will resolve to `true` if the queue is already empty or drains before the timeout, and\n   * `false` otherwise\n   */\n  function drain(timeout) {\n    return new SyncPromise((resolve, reject) => {\n      let counter = buffer.length;\n\n      if (!counter) {\n        return resolve(true);\n      }\n\n      // wait for `timeout` ms and then resolve to `false` (if not cancelled first)\n      var capturedSetTimeout = setTimeout(() => {\n        if (timeout && timeout > 0) {\n          resolve(false);\n        }\n      }, timeout);\n\n      // if all promises resolve in time, cancel the timer and resolve to `true`\n      buffer.forEach(item => {\n        void resolvedSyncPromise(item).then(() => {\n                    if (!--counter) {\n            clearTimeout(capturedSetTimeout);\n            resolve(true);\n          }\n        }, reject);\n      });\n    });\n  }\n\n  return {\n    $: buffer,\n    add,\n    drain,\n  };\n}\n\nexport { makePromiseBuffer };\n//# sourceMappingURL=promisebuffer.js.map\n","// Intentionally keeping the key broad, as we don't know for sure what rate limit headers get returned from backend\n\nvar DEFAULT_RETRY_AFTER = 60 * 1000; // 60 seconds\n\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param header string representation of 'Retry-After' header\n * @param now current unix timestamp\n *\n */\nfunction parseRetryAfterHeader(header, now = Date.now()) {\n  var headerDelay = parseInt(`${header}`, 10);\n  if (!isNaN(headerDelay)) {\n    return headerDelay * 1000;\n  }\n\n  var headerDate = Date.parse(`${header}`);\n  if (!isNaN(headerDate)) {\n    return headerDate - now;\n  }\n\n  return DEFAULT_RETRY_AFTER;\n}\n\n/**\n * Gets the time that given category is disabled until for rate limiting\n */\nfunction disabledUntil(limits, category) {\n  return limits[category] || limits.all || 0;\n}\n\n/**\n * Checks if a category is rate limited\n */\nfunction isRateLimited(limits, category, now = Date.now()) {\n  return disabledUntil(limits, category) > now;\n}\n\n/**\n * Update ratelimits from incoming headers.\n * Returns true if headers contains a non-empty rate limiting header.\n */\nfunction updateRateLimits(\n  limits,\n  { statusCode, headers },\n  now = Date.now(),\n) {\n  var updatedRateLimits = {\n    ...limits,\n  };\n\n  // \"The name is case-insensitive.\"\n  // https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n  var rateLimitHeader = headers && headers['x-sentry-rate-limits'];\n  var retryAfterHeader = headers && headers['retry-after'];\n\n  if (rateLimitHeader) {\n    /**\n     * rate limit headers are of the form\n     *     <header>,<header>,..\n     * where each <header> is of the form\n     *     <retry_after>: <categories>: <scope>: <reason_code>\n     * where\n     *     <retry_after> is a delay in seconds\n     *     <categories> is the event type(s) (error, transaction, etc) being rate limited and is of the form\n     *         <category>;<category>;...\n     *     <scope> is what's being limited (org, project, or key) - ignored by SDK\n     *     <reason_code> is an arbitrary string like \"org_quota\" - ignored by SDK\n     */\n    for (var limit of rateLimitHeader.trim().split(',')) {\n      const [retryAfter, categories] = limit.split(':', 2);\n      var headerDelay = parseInt(retryAfter, 10);\n      var delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n      if (!categories) {\n        updatedRateLimits.all = now + delay;\n      } else {\n        for (var category of categories.split(';')) {\n          updatedRateLimits[category] = now + delay;\n        }\n      }\n    }\n  } else if (retryAfterHeader) {\n    updatedRateLimits.all = now + parseRetryAfterHeader(retryAfterHeader, now);\n  } else if (statusCode === 429) {\n    updatedRateLimits.all = now + 60 * 1000;\n  }\n\n  return updatedRateLimits;\n}\n\nexport { DEFAULT_RETRY_AFTER, disabledUntil, isRateLimited, parseRetryAfterHeader, updateRateLimits };\n//# sourceMappingURL=ratelimit.js.map\n","import { makePromiseBuffer, forEachEnvelopeItem, envelopeItemTypeToDataCategory, isRateLimited, resolvedSyncPromise, createEnvelope, serializeEnvelope, logger, updateRateLimits, SentryError } from '@sentry/utils';\nimport { IS_DEBUG_BUILD } from '../flags.js';\n\nvar DEFAULT_TRANSPORT_BUFFER_SIZE = 30;\n\n/**\n * Creates an instance of a Sentry `Transport`\n *\n * @param options\n * @param makeRequest\n */\nfunction createTransport(\n  options,\n  makeRequest,\n  buffer = makePromiseBuffer(options.bufferSize || DEFAULT_TRANSPORT_BUFFER_SIZE),\n) {\n  let rateLimits = {};\n\n  var flush = (timeout) => buffer.drain(timeout);\n\n  function send(envelope) {\n    var filteredEnvelopeItems = [];\n\n    // Drop rate limited items from envelope\n    forEachEnvelopeItem(envelope, (item, type) => {\n      var envelopeItemDataCategory = envelopeItemTypeToDataCategory(type);\n      if (isRateLimited(rateLimits, envelopeItemDataCategory)) {\n        options.recordDroppedEvent('ratelimit_backoff', envelopeItemDataCategory);\n      } else {\n        filteredEnvelopeItems.push(item);\n      }\n    });\n\n    // Skip sending if envelope is empty after filtering out rate limited events\n    if (filteredEnvelopeItems.length === 0) {\n      return resolvedSyncPromise();\n    }\n\n        var filteredEnvelope = createEnvelope(envelope[0], filteredEnvelopeItems );\n\n    // Creates client report for each item in an envelope\n    var recordEnvelopeLoss = (reason) => {\n      forEachEnvelopeItem(filteredEnvelope, (_, type) => {\n        options.recordDroppedEvent(reason, envelopeItemTypeToDataCategory(type));\n      });\n    };\n\n    var requestTask = () =>\n      makeRequest({ body: serializeEnvelope(filteredEnvelope, options.textEncoder) }).then(\n        response => {\n          // We don't want to throw on NOK responses, but we want to at least log them\n          if (response.statusCode !== undefined && (response.statusCode < 200 || response.statusCode >= 300)) {\n            IS_DEBUG_BUILD && logger.warn(`Sentry responded with status code ${response.statusCode} to sent event.`);\n          }\n\n          rateLimits = updateRateLimits(rateLimits, response);\n        },\n        error => {\n          IS_DEBUG_BUILD && logger.error('Failed while sending event:', error);\n          recordEnvelopeLoss('network_error');\n        },\n      );\n\n    return buffer.add(requestTask).then(\n      result => result,\n      error => {\n        if (error instanceof SentryError) {\n          IS_DEBUG_BUILD && logger.error('Skipped sending event due to full buffer');\n          recordEnvelopeLoss('queue_overflow');\n          return resolvedSyncPromise();\n        } else {\n          throw error;\n        }\n      },\n    );\n  }\n\n  return {\n    send,\n    flush,\n  };\n}\n\nexport { DEFAULT_TRANSPORT_BUFFER_SIZE, createTransport };\n//# sourceMappingURL=base.js.map\n","import { createTransport } from '@sentry/core';\nimport { getNativeFetchImplementation } from './utils.js';\n\n/**\n * Creates a Transport that uses the Fetch API to send events to Sentry.\n */\nfunction makeFetchTransport(\n  options,\n  nativeFetch = getNativeFetchImplementation(),\n) {\n  function makeRequest(request) {\n    var requestOptions = {\n      body: request.body,\n      method: 'POST',\n      referrerPolicy: 'origin',\n      headers: options.headers,\n      ...options.fetchOptions,\n    };\n\n    return nativeFetch(options.url, requestOptions).then(response => ({\n      statusCode: response.status,\n      headers: {\n        'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n        'retry-after': response.headers.get('Retry-After'),\n      },\n    }));\n  }\n\n  return createTransport(options, makeRequest);\n}\n\nexport { makeFetchTransport };\n//# sourceMappingURL=fetch.js.map\n","import { createTransport } from '@sentry/core';\nimport { SyncPromise } from '@sentry/utils';\n\n/**\n * The DONE ready state for XmlHttpRequest\n *\n * Defining it here as a constant b/c XMLHttpRequest.DONE is not always defined\n * (e.g. during testing, it is `undefined`)\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState}\n */\nvar XHR_READYSTATE_DONE = 4;\n\n/**\n * Creates a Transport that uses the XMLHttpRequest API to send events to Sentry.\n */\nfunction makeXHRTransport(options) {\n  function makeRequest(request) {\n    return new SyncPromise((resolve, reject) => {\n      var xhr = new XMLHttpRequest();\n\n      xhr.onerror = reject;\n\n      xhr.onreadystatechange = () => {\n        if (xhr.readyState === XHR_READYSTATE_DONE) {\n          resolve({\n            statusCode: xhr.status,\n            headers: {\n              'x-sentry-rate-limits': xhr.getResponseHeader('X-Sentry-Rate-Limits'),\n              'retry-after': xhr.getResponseHeader('Retry-After'),\n            },\n          });\n        }\n      };\n\n      xhr.open('POST', options.url);\n\n      for (var header in options.headers) {\n        if (Object.prototype.hasOwnProperty.call(options.headers, header)) {\n          xhr.setRequestHeader(header, options.headers[header]);\n        }\n      }\n\n      xhr.send(request.body);\n    });\n  }\n\n  return createTransport(options, makeRequest);\n}\n\nexport { makeXHRTransport };\n//# sourceMappingURL=xhr.js.map\n","import { Integrations, getIntegrationsToSetup, initAndBind, getCurrentHub, getReportDialogEndpoint } from '@sentry/core';\nimport { getGlobalObject, stackParserFromStackParserOptions, supportsFetch, logger, resolvedSyncPromise, addInstrumentationHandler } from '@sentry/utils';\nimport { BrowserClient } from './client.js';\nimport { IS_DEBUG_BUILD } from './flags.js';\nimport { wrap as wrap$1 } from './helpers.js';\nimport './integrations/index.js';\nimport { defaultStackParser } from './stack-parsers.js';\nimport './transports/index.js';\nimport { TryCatch } from './integrations/trycatch.js';\nimport { Breadcrumbs } from './integrations/breadcrumbs.js';\nimport { GlobalHandlers } from './integrations/globalhandlers.js';\nimport { LinkedErrors } from './integrations/linkederrors.js';\nimport { Dedupe } from './integrations/dedupe.js';\nimport { HttpContext } from './integrations/httpcontext.js';\nimport { makeFetchTransport } from './transports/fetch.js';\nimport { makeXHRTransport } from './transports/xhr.js';\n\nvar defaultIntegrations = [\n  new Integrations.InboundFilters(),\n  new Integrations.FunctionToString(),\n  new TryCatch(),\n  new Breadcrumbs(),\n  new GlobalHandlers(),\n  new LinkedErrors(),\n  new Dedupe(),\n  new HttpContext(),\n];\n\n/**\n * The Sentry Browser SDK Client.\n *\n * To use this SDK, call the {@link init} function as early as possible when\n * loading the web page. To set context information or send manual events, use\n * the provided methods.\n *\n * @example\n *\n * ```\n *\n * import { init } from '@sentry/browser';\n *\n * init({\n *   dsn: '__DSN__',\n *   // ...\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { configureScope } from '@sentry/browser';\n * configureScope((scope: Scope) => {\n *   scope.setExtra({ battery: 0.7 });\n *   scope.setTag({ user_mode: 'admin' });\n *   scope.setUser({ id: '4711' });\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { addBreadcrumb } from '@sentry/browser';\n * addBreadcrumb({\n *   message: 'My Breadcrumb',\n *   // ...\n * });\n * ```\n *\n * @example\n *\n * ```\n *\n * import * as Sentry from '@sentry/browser';\n * Sentry.captureMessage('Hello, world!');\n * Sentry.captureException(new Error('Good bye'));\n * Sentry.captureEvent({\n *   message: 'Manual',\n *   stacktrace: [\n *     // ...\n *   ],\n * });\n * ```\n *\n * @see {@link BrowserOptions} for documentation on configuration options.\n */\nfunction init(options = {}) {\n  if (options.defaultIntegrations === undefined) {\n    options.defaultIntegrations = defaultIntegrations;\n  }\n  if (options.release === undefined) {\n    var window = getGlobalObject();\n    // This supports the variable that sentry-webpack-plugin injects\n    if (window.SENTRY_RELEASE && window.SENTRY_RELEASE.id) {\n      options.release = window.SENTRY_RELEASE.id;\n    }\n  }\n  if (options.autoSessionTracking === undefined) {\n    options.autoSessionTracking = true;\n  }\n  if (options.sendClientReports === undefined) {\n    options.sendClientReports = true;\n  }\n\n  var clientOptions = {\n    ...options,\n    stackParser: stackParserFromStackParserOptions(options.stackParser || defaultStackParser),\n    integrations: getIntegrationsToSetup(options),\n    transport: options.transport || (supportsFetch() ? makeFetchTransport : makeXHRTransport),\n  };\n\n  initAndBind(BrowserClient, clientOptions);\n\n  if (options.autoSessionTracking) {\n    startSessionTracking();\n  }\n}\n\n/**\n * Present the user with a report dialog.\n *\n * @param options Everything is optional, we try to fetch all info need from the global scope.\n */\nfunction showReportDialog(options = {}, hub = getCurrentHub()) {\n  // doesn't work without a document (React Native)\n  var global = getGlobalObject();\n  if (!global.document) {\n    IS_DEBUG_BUILD && logger.error('Global document not defined in showReportDialog call');\n    return;\n  }\n\n  const { client, scope } = hub.getStackTop();\n  var dsn = options.dsn || (client && client.getDsn());\n  if (!dsn) {\n    IS_DEBUG_BUILD && logger.error('DSN not configured for showReportDialog call');\n    return;\n  }\n\n  if (scope) {\n    options.user = {\n      ...scope.getUser(),\n      ...options.user,\n    };\n  }\n\n  if (!options.eventId) {\n    options.eventId = hub.lastEventId();\n  }\n\n  var script = global.document.createElement('script');\n  script.async = true;\n  script.src = getReportDialogEndpoint(dsn, options);\n\n  if (options.onLoad) {\n        script.onload = options.onLoad;\n  }\n\n  var injectionPoint = global.document.head || global.document.body;\n  if (injectionPoint) {\n    injectionPoint.appendChild(script);\n  } else {\n    IS_DEBUG_BUILD && logger.error('Not injecting report dialog. No injection point found in HTML');\n  }\n}\n\n/**\n * This is the getter for lastEventId.\n *\n * @returns The last event id of a captured event.\n */\nfunction lastEventId() {\n  return getCurrentHub().lastEventId();\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nfunction forceLoad() {\n  // Noop\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nfunction onLoad(callback) {\n  callback();\n}\n\n/**\n * Call `flush()` on the current client, if there is one. See {@link Client.flush}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue. Omitting this parameter will cause\n * the client to wait until all events are sent before resolving the promise.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nfunction flush(timeout) {\n  var client = getCurrentHub().getClient();\n  if (client) {\n    return client.flush(timeout);\n  }\n  IS_DEBUG_BUILD && logger.warn('Cannot flush events. No client defined.');\n  return resolvedSyncPromise(false);\n}\n\n/**\n * Call `close()` on the current client, if there is one. See {@link Client.close}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue before shutting down. Omitting this\n * parameter will cause the client to wait until all events are sent before disabling itself.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nfunction close(timeout) {\n  var client = getCurrentHub().getClient();\n  if (client) {\n    return client.close(timeout);\n  }\n  IS_DEBUG_BUILD && logger.warn('Cannot flush events and disable SDK. No client defined.');\n  return resolvedSyncPromise(false);\n}\n\n/**\n * Wrap code within a try/catch block so the SDK is able to capture errors.\n *\n * @param fn A function to wrap.\n *\n * @returns The result of wrapped function call.\n */\nfunction wrap(fn) {\n  return wrap$1(fn)();\n}\n\nfunction startSessionOnHub(hub) {\n  hub.startSession({ ignoreDuration: true });\n  hub.captureSession();\n}\n\n/**\n * Enable automatic Session Tracking for the initial page load.\n */\nfunction startSessionTracking() {\n  var window = getGlobalObject();\n  var document = window.document;\n\n  if (typeof document === 'undefined') {\n    IS_DEBUG_BUILD && logger.warn('Session tracking in non-browser environment with @sentry/browser is not supported.');\n    return;\n  }\n\n  var hub = getCurrentHub();\n\n  // The only way for this to be false is for there to be a version mismatch between @sentry/browser (>= 6.0.0) and\n  // @sentry/hub (< 5.27.0). In the simple case, there won't ever be such a mismatch, because the two packages are\n  // pinned at the same version in package.json, but there are edge cases where it's possible. See\n  // https://github.com/getsentry/sentry-javascript/issues/3207 and\n  // https://github.com/getsentry/sentry-javascript/issues/3234 and\n  // https://github.com/getsentry/sentry-javascript/issues/3278.\n  if (!hub.captureSession) {\n    return;\n  }\n\n  // The session duration for browser sessions does not track a meaningful\n  // concept that can be used as a metric.\n  // Automatically captured sessions are akin to page views, and thus we\n  // discard their duration.\n  startSessionOnHub(hub);\n\n  // We want to create a session for every navigation as well\n  addInstrumentationHandler('history', ({ from, to }) => {\n    // Don't create an additional session for the initial route or if the location did not change\n    if (!(from === undefined || from === to)) {\n      startSessionOnHub(getCurrentHub());\n    }\n  });\n}\n\nexport { close, defaultIntegrations, flush, forceLoad, init, lastEventId, onLoad, showReportDialog, wrap };\n//# sourceMappingURL=sdk.js.map\n","import { getCurrentHub } from '@sentry/hub';\nimport { logger } from '@sentry/utils';\nimport { IS_DEBUG_BUILD } from './flags.js';\n\n/** A class object that can instantiate Client objects. */\n\n/**\n * Internal function to create a new SDK client instance. The client is\n * installed and then bound to the current scope.\n *\n * @param clientClass The client class to instantiate.\n * @param options Options to pass to the client.\n */\nfunction initAndBind(\n  clientClass,\n  options,\n) {\n  if (options.debug === true) {\n    if (IS_DEBUG_BUILD) {\n      logger.enable();\n    } else {\n      // use `console.warn` rather than `logger.warn` since by non-debug bundles have all `logger.x` statements stripped\n            console.warn('[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.');\n    }\n  }\n  var hub = getCurrentHub();\n  var scope = hub.getScope();\n  if (scope) {\n    scope.update(options.initialScope);\n  }\n\n  var client = new clientClass(options);\n  hub.bindClient(client);\n}\n\nexport { initAndBind };\n//# sourceMappingURL=sdk.js.map\n","var SDK_VERSION = '7.0.0';\n\nexport { SDK_VERSION };\n//# sourceMappingURL=version.js.map\n","import { getCurrentHub } from './hub.js';\n\n// Note: All functions in this file are typed with a return value of `ReturnType<Hub[HUB_FUNCTION]>`,\n// where HUB_FUNCTION is some method on the Hub class.\n//\n// This is done to make sure the top level SDK methods stay in sync with the hub methods.\n// Although every method here has an explicit return type, some of them (that map to void returns) do not\n// contain `return` keywords. This is done to save on bundle size, as `return` is not minifiable.\n\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception An exception-like object.\n * @param captureContext Additional scope data to apply to exception event.\n * @returns The generated eventId.\n */\nfunction captureException(exception, captureContext) {\n  return getCurrentHub().captureException(exception, { captureContext });\n}\n\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param message The message to send to Sentry.\n * @param Severity Define the level of the message.\n * @returns The generated eventId.\n */\nfunction captureMessage(\n  message,\n    captureContext,\n) {\n  // This is necessary to provide explicit scopes upgrade, without changing the original\n  // arity of the `captureMessage(message, level)` method.\n  var level = typeof captureContext === 'string' ? captureContext : undefined;\n  var context = typeof captureContext !== 'string' ? { captureContext } : undefined;\n  return getCurrentHub().captureMessage(message, level, context);\n}\n\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param event The event to send to Sentry.\n * @returns The generated eventId.\n */\nfunction captureEvent(event, hint) {\n  return getCurrentHub().captureEvent(event, hint);\n}\n\n/**\n * Callback to set context information onto the scope.\n * @param callback Callback function that receives Scope.\n */\nfunction configureScope(callback) {\n  getCurrentHub().configureScope(callback);\n}\n\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n *\n * @param breadcrumb The breadcrumb to record.\n */\nfunction addBreadcrumb(breadcrumb) {\n  getCurrentHub().addBreadcrumb(breadcrumb);\n}\n\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normalized.\n */\nfunction setContext(name, context) {\n  getCurrentHub().setContext(name, context);\n}\n\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\nfunction setExtras(extras) {\n  getCurrentHub().setExtras(extras);\n}\n\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normalized.\n */\nfunction setExtra(key, extra) {\n  getCurrentHub().setExtra(key, extra);\n}\n\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\nfunction setTags(tags) {\n  getCurrentHub().setTags(tags);\n}\n\n/**\n * Set key:value that will be sent as tags data with the event.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key String key of tag\n * @param value Value of tag\n */\nfunction setTag(key, value) {\n  getCurrentHub().setTag(key, value);\n}\n\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\nfunction setUser(user) {\n  getCurrentHub().setUser(user);\n}\n\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n *\n * This is essentially a convenience function for:\n *\n *     pushScope();\n *     callback();\n *     popScope();\n *\n * @param callback that will be enclosed into push/popScope.\n */\nfunction withScope(callback) {\n  getCurrentHub().withScope(callback);\n}\n\n/**\n * Starts a new `Transaction` and returns it. This is the entry point to manual tracing instrumentation.\n *\n * A tree structure can be built by adding child spans to the transaction, and child spans to other spans. To start a\n * new child span within the transaction or any span, call the respective `.startChild()` method.\n *\n * Every child span must be finished before the transaction is finished, otherwise the unfinished spans are discarded.\n *\n * The transaction must be finished with a call to its `.finish()` method, at which point the transaction with all its\n * finished child spans will be sent to Sentry.\n *\n * @param context Properties of the new `Transaction`.\n * @param customSamplingContext Information given to the transaction sampling function (along with context-dependent\n * default values). See {@link Options.tracesSampler}.\n *\n * @returns The transaction which was just started\n */\nfunction startTransaction(\n  context,\n  customSamplingContext,\n) {\n  return getCurrentHub().startTransaction({ ...context }, customSamplingContext);\n}\n\nexport { addBreadcrumb, captureEvent, captureException, captureMessage, configureScope, setContext, setExtra, setExtras, setTag, setTags, setUser, startTransaction, withScope };\n//# sourceMappingURL=exports.js.map\n","/*\n * This file defines flags and constants that can be modified during compile time in order to facilitate tree shaking\n * for users.\n *\n * Debug flags need to be declared in each package individually and must not be imported across package boundaries,\n * because some build tools have trouble tree-shaking imported guards.\n *\n * As a convention, we define debug flags in a `flags.ts` file in the root of a package's `src` folder.\n *\n * Debug flag files will contain \"magic strings\" like `__SENTRY_DEBUG__` that may get replaced with actual values during\n * our, or the user's build process. Take care when introducing new flags - they must not throw if they are not\n * replaced.\n */\n\n/** Flag that is true for debug builds, false otherwise. */\nvar IS_DEBUG_BUILD = typeof __SENTRY_DEBUG__ === 'undefined' ? true : __SENTRY_DEBUG__;\n\nexport { IS_DEBUG_BUILD };\n//# sourceMappingURL=flags.js.map\n","import { uuid4, dateTimestampInSeconds, consoleSandbox, logger, getGlobalObject, getGlobalSingleton, isNodeEnv } from '@sentry/utils';\nimport { IS_DEBUG_BUILD } from './flags.js';\nimport { Scope } from './scope.js';\nimport { closeSession, makeSession, updateSession } from './session.js';\n\n/**\n * API compatibility version of this hub.\n *\n * WARNING: This number should only be increased when the global interface\n * changes and new methods are introduced.\n *\n * @hidden\n */\nvar API_VERSION = 4;\n\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nvar DEFAULT_BREADCRUMBS = 100;\n\n/**\n * A layer in the process stack.\n * @hidden\n */\n\n/**\n * @inheritDoc\n */\nclass Hub  {\n  /** Is a {@link Layer}[] containing the client and scope */\n    __init() {this._stack = [{}];}\n\n  /** Contains the last event id of a captured event.  */\n  \n\n  /**\n   * Creates a new instance of the hub, will push one {@link Layer} into the\n   * internal stack on creation.\n   *\n   * @param client bound to the hub.\n   * @param scope bound to the hub.\n   * @param version number, higher number means higher priority.\n   */\n   constructor(client, scope = new Scope(),   _version = API_VERSION) {;this._version = _version;Hub.prototype.__init.call(this);\n    this.getStackTop().scope = scope;\n    if (client) {\n      this.bindClient(client);\n    }\n  }\n\n  /**\n   * @inheritDoc\n   */\n   isOlderThan(version) {\n    return this._version < version;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   bindClient(client) {\n    var top = this.getStackTop();\n    top.client = client;\n    if (client && client.setupIntegrations) {\n      client.setupIntegrations();\n    }\n  }\n\n  /**\n   * @inheritDoc\n   */\n   pushScope() {\n    // We want to clone the content of prev scope\n    var scope = Scope.clone(this.getScope());\n    this.getStack().push({\n      client: this.getClient(),\n      scope,\n    });\n    return scope;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   popScope() {\n    if (this.getStack().length <= 1) return false;\n    return !!this.getStack().pop();\n  }\n\n  /**\n   * @inheritDoc\n   */\n   withScope(callback) {\n    var scope = this.pushScope();\n    try {\n      callback(scope);\n    } finally {\n      this.popScope();\n    }\n  }\n\n  /**\n   * @inheritDoc\n   */\n   getClient() {\n    return this.getStackTop().client ;\n  }\n\n  /** Returns the scope of the top stack. */\n   getScope() {\n    return this.getStackTop().scope;\n  }\n\n  /** Returns the scope stack for domains or the process. */\n   getStack() {\n    return this._stack;\n  }\n\n  /** Returns the topmost scope layer in the order domain > local > process. */\n   getStackTop() {\n    return this._stack[this._stack.length - 1];\n  }\n\n  /**\n   * @inheritDoc\n   */\n     captureException(exception, hint) {\n    var eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n    var syntheticException = new Error('Sentry syntheticException');\n    this._withClient((client, scope) => {\n      client.captureException(\n        exception,\n        {\n          originalException: exception,\n          syntheticException,\n          ...hint,\n          event_id: eventId,\n        },\n        scope,\n      );\n    });\n    return eventId;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   captureMessage(\n    message,\n        level,\n    hint,\n  ) {\n    var eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n    var syntheticException = new Error(message);\n    this._withClient((client, scope) => {\n      client.captureMessage(\n        message,\n        level,\n        {\n          originalException: message,\n          syntheticException,\n          ...hint,\n          event_id: eventId,\n        },\n        scope,\n      );\n    });\n    return eventId;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   captureEvent(event, hint) {\n    var eventId = hint && hint.event_id ? hint.event_id : uuid4();\n    if (event.type !== 'transaction') {\n      this._lastEventId = eventId;\n    }\n\n    this._withClient((client, scope) => {\n      client.captureEvent(event, { ...hint, event_id: eventId }, scope);\n    });\n    return eventId;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   lastEventId() {\n    return this._lastEventId;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   addBreadcrumb(breadcrumb, hint) {\n    const { scope, client } = this.getStackTop();\n\n    if (!scope || !client) return;\n\n        const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } =\n      (client.getOptions && client.getOptions()) || {};\n\n    if (maxBreadcrumbs <= 0) return;\n\n    var timestamp = dateTimestampInSeconds();\n    var mergedBreadcrumb = { timestamp, ...breadcrumb };\n    var finalBreadcrumb = beforeBreadcrumb\n      ? (consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint)) )\n      : mergedBreadcrumb;\n\n    if (finalBreadcrumb === null) return;\n\n    scope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n  }\n\n  /**\n   * @inheritDoc\n   */\n   setUser(user) {\n    var scope = this.getScope();\n    if (scope) scope.setUser(user);\n  }\n\n  /**\n   * @inheritDoc\n   */\n   setTags(tags) {\n    var scope = this.getScope();\n    if (scope) scope.setTags(tags);\n  }\n\n  /**\n   * @inheritDoc\n   */\n   setExtras(extras) {\n    var scope = this.getScope();\n    if (scope) scope.setExtras(extras);\n  }\n\n  /**\n   * @inheritDoc\n   */\n   setTag(key, value) {\n    var scope = this.getScope();\n    if (scope) scope.setTag(key, value);\n  }\n\n  /**\n   * @inheritDoc\n   */\n   setExtra(key, extra) {\n    var scope = this.getScope();\n    if (scope) scope.setExtra(key, extra);\n  }\n\n  /**\n   * @inheritDoc\n   */\n     setContext(name, context) {\n    var scope = this.getScope();\n    if (scope) scope.setContext(name, context);\n  }\n\n  /**\n   * @inheritDoc\n   */\n   configureScope(callback) {\n    const { scope, client } = this.getStackTop();\n    if (scope && client) {\n      callback(scope);\n    }\n  }\n\n  /**\n   * @inheritDoc\n   */\n   run(callback) {\n    var oldHub = makeMain(this);\n    try {\n      callback(this);\n    } finally {\n      makeMain(oldHub);\n    }\n  }\n\n  /**\n   * @inheritDoc\n   */\n   getIntegration(integration) {\n    var client = this.getClient();\n    if (!client) return null;\n    try {\n      return client.getIntegration(integration);\n    } catch (_oO) {\n      IS_DEBUG_BUILD && logger.warn(`Cannot retrieve integration ${integration.id} from the current Hub`);\n      return null;\n    }\n  }\n\n  /**\n   * @inheritDoc\n   */\n   startTransaction(context, customSamplingContext) {\n    return this._callExtensionMethod('startTransaction', context, customSamplingContext);\n  }\n\n  /**\n   * @inheritDoc\n   */\n   traceHeaders() {\n    return this._callExtensionMethod('traceHeaders');\n  }\n\n  /**\n   * @inheritDoc\n   */\n   captureSession(endSession = false) {\n    // both send the update and pull the session from the scope\n    if (endSession) {\n      return this.endSession();\n    }\n\n    // only send the update\n    this._sendSessionUpdate();\n  }\n\n  /**\n   * @inheritDoc\n   */\n   endSession() {\n    var layer = this.getStackTop();\n    var scope = layer && layer.scope;\n    var session = scope && scope.getSession();\n    if (session) {\n      closeSession(session);\n    }\n    this._sendSessionUpdate();\n\n    // the session is over; take it off of the scope\n    if (scope) {\n      scope.setSession();\n    }\n  }\n\n  /**\n   * @inheritDoc\n   */\n   startSession(context) {\n    const { scope, client } = this.getStackTop();\n    const { release, environment } = (client && client.getOptions()) || {};\n\n    // Will fetch userAgent if called from browser sdk\n    var global = getGlobalObject();\n    const { userAgent } = global.navigator || {};\n\n    var session = makeSession({\n      release,\n      environment,\n      ...(scope && { user: scope.getUser() }),\n      ...(userAgent && { userAgent }),\n      ...context,\n    });\n\n    if (scope) {\n      // End existing session if there's one\n      var currentSession = scope.getSession && scope.getSession();\n      if (currentSession && currentSession.status === 'ok') {\n        updateSession(currentSession, { status: 'exited' });\n      }\n      this.endSession();\n\n      // Afterwards we set the new session on the scope\n      scope.setSession(session);\n    }\n\n    return session;\n  }\n\n  /**\n   * Sends the current Session on the scope\n   */\n   _sendSessionUpdate() {\n    const { scope, client } = this.getStackTop();\n    if (!scope) return;\n\n    var session = scope.getSession();\n    if (session) {\n      if (client && client.captureSession) {\n        client.captureSession(session);\n      }\n    }\n  }\n\n  /**\n   * Internal helper function to call a method on the top client if it exists.\n   *\n   * @param method The method to call on the client.\n   * @param args Arguments to pass to the client function.\n   */\n   _withClient(callback) {\n    const { scope, client } = this.getStackTop();\n    if (client) {\n      callback(client, scope);\n    }\n  }\n\n  /**\n   * Calls global extension method and binding current instance to the function call\n   */\n  // @ts-ignore Function lacks ending return statement and return type does not include 'undefined'. ts(2366)\n     _callExtensionMethod(method, ...args) {\n    var carrier = getMainCarrier();\n    var sentry = carrier.__SENTRY__;\n    if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n      return sentry.extensions[method].apply(this, args);\n    }\n    IS_DEBUG_BUILD && logger.warn(`Extension method ${method} couldn't be found, doing nothing.`);\n  }\n}\n\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nfunction getMainCarrier() {\n  var carrier = getGlobalObject();\n  carrier.__SENTRY__ = carrier.__SENTRY__ || {\n    extensions: {},\n    hub: undefined,\n  };\n  return carrier;\n}\n\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n */\nfunction makeMain(hub) {\n  var registry = getMainCarrier();\n  var oldHub = getHubFromCarrier(registry);\n  setHubOnCarrier(registry, hub);\n  return oldHub;\n}\n\n/**\n * Returns the default hub instance.\n *\n * If a hub is already registered in the global carrier but this module\n * contains a more recent version, it replaces the registered version.\n * Otherwise, the currently registered hub will be returned.\n */\nfunction getCurrentHub() {\n  // Get main carrier (global for every environment)\n  var registry = getMainCarrier();\n\n  // If there's no hub, or its an old API, assign a new one\n  if (!hasHubOnCarrier(registry) || getHubFromCarrier(registry).isOlderThan(API_VERSION)) {\n    setHubOnCarrier(registry, new Hub());\n  }\n\n  // Prefer domains over global if they are there (applicable only to Node environment)\n  if (isNodeEnv()) {\n    return getHubFromActiveDomain(registry);\n  }\n  // Return hub that lives on a global object\n  return getHubFromCarrier(registry);\n}\n\n/**\n * Try to read the hub from an active domain, and fallback to the registry if one doesn't exist\n * @returns discovered hub\n */\nfunction getHubFromActiveDomain(registry) {\n  try {\n    var sentry = getMainCarrier().__SENTRY__;\n    var activeDomain = sentry && sentry.extensions && sentry.extensions.domain && sentry.extensions.domain.active;\n\n    // If there's no active domain, just return global hub\n    if (!activeDomain) {\n      return getHubFromCarrier(registry);\n    }\n\n    // If there's no hub on current domain, or it's an old API, assign a new one\n    if (!hasHubOnCarrier(activeDomain) || getHubFromCarrier(activeDomain).isOlderThan(API_VERSION)) {\n      var registryHubTopStack = getHubFromCarrier(registry).getStackTop();\n      setHubOnCarrier(activeDomain, new Hub(registryHubTopStack.client, Scope.clone(registryHubTopStack.scope)));\n    }\n\n    // Return hub that lives on a domain\n    return getHubFromCarrier(activeDomain);\n  } catch (_Oo) {\n    // Return hub that lives on a global object\n    return getHubFromCarrier(registry);\n  }\n}\n\n/**\n * This will tell whether a carrier has a hub on it or not\n * @param carrier object\n */\nfunction hasHubOnCarrier(carrier) {\n  return !!(carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub);\n}\n\n/**\n * This will create a new {@link Hub} and add to the passed object on\n * __SENTRY__.hub.\n * @param carrier object\n * @hidden\n */\nfunction getHubFromCarrier(carrier) {\n  return getGlobalSingleton('hub', () => new Hub(), carrier);\n}\n\n/**\n * This will set passed {@link Hub} on the passed object's __SENTRY__.hub attribute\n * @param carrier object\n * @param hub Hub\n * @returns A boolean indicating success or failure\n */\nfunction setHubOnCarrier(carrier, hub) {\n  if (!carrier) return false;\n  var __SENTRY__ = (carrier.__SENTRY__ = carrier.__SENTRY__ || {});\n  __SENTRY__.hub = hub;\n  return true;\n}\n\nexport { API_VERSION, Hub, getCurrentHub, getHubFromCarrier, getMainCarrier, makeMain, setHubOnCarrier };\n//# sourceMappingURL=hub.js.map\n","import { isPlainObject, dateTimestampInSeconds, getGlobalSingleton, SyncPromise, logger, isThenable } from '@sentry/utils';\nimport { IS_DEBUG_BUILD } from './flags.js';\nimport { updateSession } from './session.js';\n\n/**\n * Absolute maximum number of breadcrumbs added to an event.\n * The `maxBreadcrumbs` option cannot be higher than this value.\n */\nvar MAX_BREADCRUMBS = 100;\n\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\nclass Scope  {constructor() { Scope.prototype.__init.call(this);Scope.prototype.__init2.call(this);Scope.prototype.__init3.call(this);Scope.prototype.__init4.call(this);Scope.prototype.__init5.call(this);Scope.prototype.__init6.call(this);Scope.prototype.__init7.call(this);Scope.prototype.__init8.call(this);Scope.prototype.__init9.call(this);Scope.prototype.__init10.call(this); }\n  /** Flag if notifying is happening. */\n   __init() {this._notifyingListeners = false;}\n\n  /** Callback for client to receive scope changes. */\n   __init2() {this._scopeListeners = [];}\n\n  /** Callback list that will be called after {@link applyToEvent}. */\n   __init3() {this._eventProcessors = [];}\n\n  /** Array of breadcrumbs. */\n   __init4() {this._breadcrumbs = [];}\n\n  /** User */\n   __init5() {this._user = {};}\n\n  /** Tags */\n   __init6() {this._tags = {};}\n\n  /** Extra */\n   __init7() {this._extra = {};}\n\n  /** Contexts */\n   __init8() {this._contexts = {};}\n\n  /** Fingerprint */\n  \n\n  /** Severity */\n    \n\n  /** Transaction Name */\n  \n\n  /** Span */\n  \n\n  /** Session */\n  \n\n  /** Request Mode Session Status */\n  \n\n  /** Attachments */\n   __init9() {this._attachments = [];}\n\n  /**\n   * A place to stash data which is needed at some point in the SDK's event processing pipeline but which shouldn't get\n   * sent to Sentry\n   */\n   __init10() {this._sdkProcessingMetadata = {};}\n\n  /**\n   * Inherit values from the parent scope.\n   * @param scope to clone.\n   */\n   static clone(scope) {\n    var newScope = new Scope();\n    if (scope) {\n      newScope._breadcrumbs = [...scope._breadcrumbs];\n      newScope._tags = { ...scope._tags };\n      newScope._extra = { ...scope._extra };\n      newScope._contexts = { ...scope._contexts };\n      newScope._user = scope._user;\n      newScope._level = scope._level;\n      newScope._span = scope._span;\n      newScope._session = scope._session;\n      newScope._transactionName = scope._transactionName;\n      newScope._fingerprint = scope._fingerprint;\n      newScope._eventProcessors = [...scope._eventProcessors];\n      newScope._requestSession = scope._requestSession;\n      newScope._attachments = [...scope._attachments];\n    }\n    return newScope;\n  }\n\n  /**\n   * Add internal on change listener. Used for sub SDKs that need to store the scope.\n   * @hidden\n   */\n   addScopeListener(callback) {\n    this._scopeListeners.push(callback);\n  }\n\n  /**\n   * @inheritDoc\n   */\n   addEventProcessor(callback) {\n    this._eventProcessors.push(callback);\n    return this;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   setUser(user) {\n    this._user = user || {};\n    if (this._session) {\n      updateSession(this._session, { user });\n    }\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   getUser() {\n    return this._user;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   getRequestSession() {\n    return this._requestSession;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   setRequestSession(requestSession) {\n    this._requestSession = requestSession;\n    return this;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   setTags(tags) {\n    this._tags = {\n      ...this._tags,\n      ...tags,\n    };\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   setTag(key, value) {\n    this._tags = { ...this._tags, [key]: value };\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   setExtras(extras) {\n    this._extra = {\n      ...this._extra,\n      ...extras,\n    };\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   setExtra(key, extra) {\n    this._extra = { ...this._extra, [key]: extra };\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   setFingerprint(fingerprint) {\n    this._fingerprint = fingerprint;\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   setLevel(\n        level,\n  ) {\n    this._level = level;\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   setTransactionName(name) {\n    this._transactionName = name;\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   setContext(key, context) {\n    if (context === null) {\n            delete this._contexts[key];\n    } else {\n      this._contexts = { ...this._contexts, [key]: context };\n    }\n\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   setSpan(span) {\n    this._span = span;\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   getSpan() {\n    return this._span;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   getTransaction() {\n    // Often, this span (if it exists at all) will be a transaction, but it's not guaranteed to be. Regardless, it will\n    // have a pointer to the currently-active transaction.\n    var span = this.getSpan();\n    return span && span.transaction;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   setSession(session) {\n    if (!session) {\n      delete this._session;\n    } else {\n      this._session = session;\n    }\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   getSession() {\n    return this._session;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   update(captureContext) {\n    if (!captureContext) {\n      return this;\n    }\n\n    if (typeof captureContext === 'function') {\n      var updatedScope = (captureContext )(this);\n      return updatedScope instanceof Scope ? updatedScope : this;\n    }\n\n    if (captureContext instanceof Scope) {\n      this._tags = { ...this._tags, ...captureContext._tags };\n      this._extra = { ...this._extra, ...captureContext._extra };\n      this._contexts = { ...this._contexts, ...captureContext._contexts };\n      if (captureContext._user && Object.keys(captureContext._user).length) {\n        this._user = captureContext._user;\n      }\n      if (captureContext._level) {\n        this._level = captureContext._level;\n      }\n      if (captureContext._fingerprint) {\n        this._fingerprint = captureContext._fingerprint;\n      }\n      if (captureContext._requestSession) {\n        this._requestSession = captureContext._requestSession;\n      }\n    } else if (isPlainObject(captureContext)) {\n            captureContext = captureContext ;\n      this._tags = { ...this._tags, ...captureContext.tags };\n      this._extra = { ...this._extra, ...captureContext.extra };\n      this._contexts = { ...this._contexts, ...captureContext.contexts };\n      if (captureContext.user) {\n        this._user = captureContext.user;\n      }\n      if (captureContext.level) {\n        this._level = captureContext.level;\n      }\n      if (captureContext.fingerprint) {\n        this._fingerprint = captureContext.fingerprint;\n      }\n      if (captureContext.requestSession) {\n        this._requestSession = captureContext.requestSession;\n      }\n    }\n\n    return this;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   clear() {\n    this._breadcrumbs = [];\n    this._tags = {};\n    this._extra = {};\n    this._user = {};\n    this._contexts = {};\n    this._level = undefined;\n    this._transactionName = undefined;\n    this._fingerprint = undefined;\n    this._requestSession = undefined;\n    this._span = undefined;\n    this._session = undefined;\n    this._notifyScopeListeners();\n    this._attachments = [];\n    return this;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   addBreadcrumb(breadcrumb, maxBreadcrumbs) {\n    var maxCrumbs = typeof maxBreadcrumbs === 'number' ? Math.min(maxBreadcrumbs, MAX_BREADCRUMBS) : MAX_BREADCRUMBS;\n\n    // No data has been changed, so don't notify scope listeners\n    if (maxCrumbs <= 0) {\n      return this;\n    }\n\n    var mergedBreadcrumb = {\n      timestamp: dateTimestampInSeconds(),\n      ...breadcrumb,\n    };\n    this._breadcrumbs = [...this._breadcrumbs, mergedBreadcrumb].slice(-maxCrumbs);\n    this._notifyScopeListeners();\n\n    return this;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   clearBreadcrumbs() {\n    this._breadcrumbs = [];\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   addAttachment(attachment) {\n    this._attachments.push(attachment);\n    return this;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   getAttachments() {\n    return this._attachments;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   clearAttachments() {\n    this._attachments = [];\n    return this;\n  }\n\n  /**\n   * Applies the current context and fingerprint to the event.\n   * Note that breadcrumbs will be added by the client.\n   * Also if the event has already breadcrumbs on it, we do not merge them.\n   * @param event Event\n   * @param hint May contain additional information about the original exception.\n   * @hidden\n   */\n   applyToEvent(event, hint = {}) {\n    if (this._extra && Object.keys(this._extra).length) {\n      event.extra = { ...this._extra, ...event.extra };\n    }\n    if (this._tags && Object.keys(this._tags).length) {\n      event.tags = { ...this._tags, ...event.tags };\n    }\n    if (this._user && Object.keys(this._user).length) {\n      event.user = { ...this._user, ...event.user };\n    }\n    if (this._contexts && Object.keys(this._contexts).length) {\n      event.contexts = { ...this._contexts, ...event.contexts };\n    }\n    if (this._level) {\n      event.level = this._level;\n    }\n    if (this._transactionName) {\n      event.transaction = this._transactionName;\n    }\n    // We want to set the trace context for normal events only if there isn't already\n    // a trace context on the event. There is a product feature in place where we link\n    // errors with transaction and it relies on that.\n    if (this._span) {\n      event.contexts = { trace: this._span.getTraceContext(), ...event.contexts };\n      var transactionName = this._span.transaction && this._span.transaction.name;\n      if (transactionName) {\n        event.tags = { transaction: transactionName, ...event.tags };\n      }\n    }\n\n    this._applyFingerprint(event);\n\n    event.breadcrumbs = [...(event.breadcrumbs || []), ...this._breadcrumbs];\n    event.breadcrumbs = event.breadcrumbs.length > 0 ? event.breadcrumbs : undefined;\n\n    event.sdkProcessingMetadata = this._sdkProcessingMetadata;\n\n    return this._notifyEventProcessors([...getGlobalEventProcessors(), ...this._eventProcessors], event, hint);\n  }\n\n  /**\n   * Add data which will be accessible during event processing but won't get sent to Sentry\n   */\n   setSDKProcessingMetadata(newData) {\n    this._sdkProcessingMetadata = { ...this._sdkProcessingMetadata, ...newData };\n\n    return this;\n  }\n\n  /**\n   * This will be called after {@link applyToEvent} is finished.\n   */\n   _notifyEventProcessors(\n    processors,\n    event,\n    hint,\n    index = 0,\n  ) {\n    return new SyncPromise((resolve, reject) => {\n      var processor = processors[index];\n      if (event === null || typeof processor !== 'function') {\n        resolve(event);\n      } else {\n        var result = processor({ ...event }, hint) ;\n\n        IS_DEBUG_BUILD &&\n          processor.id &&\n          result === null &&\n          logger.log(`Event processor \"${processor.id}\" dropped event`);\n\n        if (isThenable(result)) {\n          void result\n            .then(final => this._notifyEventProcessors(processors, final, hint, index + 1).then(resolve))\n            .then(null, reject);\n        } else {\n          void this._notifyEventProcessors(processors, result, hint, index + 1)\n            .then(resolve)\n            .then(null, reject);\n        }\n      }\n    });\n  }\n\n  /**\n   * This will be called on every set call.\n   */\n   _notifyScopeListeners() {\n    // We need this check for this._notifyingListeners to be able to work on scope during updates\n    // If this check is not here we'll produce endless recursion when something is done with the scope\n    // during the callback.\n    if (!this._notifyingListeners) {\n      this._notifyingListeners = true;\n      this._scopeListeners.forEach(callback => {\n        callback(this);\n      });\n      this._notifyingListeners = false;\n    }\n  }\n\n  /**\n   * Applies fingerprint from the scope to the event if there's one,\n   * uses message if there's one instead or get rid of empty fingerprint\n   */\n   _applyFingerprint(event) {\n    // Make sure it's an array first and we actually have something in place\n    event.fingerprint = event.fingerprint\n      ? Array.isArray(event.fingerprint)\n        ? event.fingerprint\n        : [event.fingerprint]\n      : [];\n\n    // If we have something on the scope, then merge it with event\n    if (this._fingerprint) {\n      event.fingerprint = event.fingerprint.concat(this._fingerprint);\n    }\n\n    // If we have no data at all, remove empty array default\n    if (event.fingerprint && !event.fingerprint.length) {\n      delete event.fingerprint;\n    }\n  }\n}\n\n/**\n * Returns the global event processors.\n */\nfunction getGlobalEventProcessors() {\n  return getGlobalSingleton('globalEventProcessors', () => []);\n}\n\n/**\n * Add a EventProcessor to be kept globally.\n * @param callback EventProcessor to add\n */\nfunction addGlobalEventProcessor(callback) {\n  getGlobalEventProcessors().push(callback);\n}\n\nexport { Scope, addGlobalEventProcessor };\n//# sourceMappingURL=scope.js.map\n","import { timestampInSeconds, uuid4, dropUndefinedKeys } from '@sentry/utils';\n\n/**\n * Creates a new `Session` object by setting certain default parameters. If optional @param context\n * is passed, the passed properties are applied to the session object.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns a new `Session` object\n */\nfunction makeSession(context) {\n  // Both timestamp and started are in seconds since the UNIX epoch.\n  var startingTime = timestampInSeconds();\n\n  var session = {\n    sid: uuid4(),\n    init: true,\n    timestamp: startingTime,\n    started: startingTime,\n    duration: 0,\n    status: 'ok',\n    errors: 0,\n    ignoreDuration: false,\n    toJSON: () => sessionToJSON(session),\n  };\n\n  if (context) {\n    updateSession(session, context);\n  }\n\n  return session;\n}\n\n/**\n * Updates a session object with the properties passed in the context.\n *\n * Note that this function mutates the passed object and returns void.\n * (Had to do this instead of returning a new and updated session because closing and sending a session\n * makes an update to the session after it was passed to the sending logic.\n * @see BaseClient.captureSession )\n *\n * @param session the `Session` to update\n * @param context the `SessionContext` holding the properties that should be updated in @param session\n */\nfunction updateSession(session, context = {}) {\n  if (context.user) {\n    if (!session.ipAddress && context.user.ip_address) {\n      session.ipAddress = context.user.ip_address;\n    }\n\n    if (!session.did && !context.did) {\n      session.did = context.user.id || context.user.email || context.user.username;\n    }\n  }\n\n  session.timestamp = context.timestamp || timestampInSeconds();\n\n  if (context.ignoreDuration) {\n    session.ignoreDuration = context.ignoreDuration;\n  }\n  if (context.sid) {\n    // Good enough uuid validation. — Kamil\n    session.sid = context.sid.length === 32 ? context.sid : uuid4();\n  }\n  if (context.init !== undefined) {\n    session.init = context.init;\n  }\n  if (!session.did && context.did) {\n    session.did = `${context.did}`;\n  }\n  if (typeof context.started === 'number') {\n    session.started = context.started;\n  }\n  if (session.ignoreDuration) {\n    session.duration = undefined;\n  } else if (typeof context.duration === 'number') {\n    session.duration = context.duration;\n  } else {\n    var duration = session.timestamp - session.started;\n    session.duration = duration >= 0 ? duration : 0;\n  }\n  if (context.release) {\n    session.release = context.release;\n  }\n  if (context.environment) {\n    session.environment = context.environment;\n  }\n  if (!session.ipAddress && context.ipAddress) {\n    session.ipAddress = context.ipAddress;\n  }\n  if (!session.userAgent && context.userAgent) {\n    session.userAgent = context.userAgent;\n  }\n  if (typeof context.errors === 'number') {\n    session.errors = context.errors;\n  }\n  if (context.status) {\n    session.status = context.status;\n  }\n}\n\n/**\n * Closes a session by setting its status and updating the session object with it.\n * Internally calls `updateSession` to update the passed session object.\n *\n * Note that this function mutates the passed session (@see updateSession for explanation).\n *\n * @param session the `Session` object to be closed\n * @param status the `SessionStatus` with which the session was closed. If you don't pass a status,\n *               this function will keep the previously set status, unless it was `'ok'` in which case\n *               it is changed to `'exited'`.\n */\nfunction closeSession(session, status) {\n  let context = {};\n  if (status) {\n    context = { status };\n  } else if (session.status === 'ok') {\n    context = { status: 'exited' };\n  }\n\n  updateSession(session, context);\n}\n\n/**\n * Serializes a passed session object to a JSON object with a slightly different structure.\n * This is necessary because the Sentry backend requires a slightly different schema of a session\n * than the one the JS SDKs use internally.\n *\n * @param session the session to be converted\n *\n * @returns a JSON object of the passed session\n */\nfunction sessionToJSON(session) {\n  return dropUndefinedKeys({\n    sid: `${session.sid}`,\n    init: session.init,\n    // Make sure that sec is converted to ms for date constructor\n    started: new Date(session.started * 1000).toISOString(),\n    timestamp: new Date(session.timestamp * 1000).toISOString(),\n    status: session.status,\n    errors: session.errors,\n    did: typeof session.did === 'number' || typeof session.did === 'string' ? `${session.did}` : undefined,\n    duration: session.duration,\n    attrs: {\n      release: session.release,\n      environment: session.environment,\n      ip_address: session.ipAddress,\n      user_agent: session.userAgent,\n    },\n  });\n}\n\nexport { closeSession, makeSession, updateSession };\n//# sourceMappingURL=session.js.map\n","/*\n * This file defines flags and constants that can be modified during compile time in order to facilitate tree shaking\n * for users.\n *\n * Debug flags need to be declared in each package individually and must not be imported across package boundaries,\n * because some build tools have trouble tree-shaking imported guards.\n *\n * As a convention, we define debug flags in a `flags.ts` file in the root of a package's `src` folder.\n *\n * Debug flag files will contain \"magic strings\" like `__SENTRY_DEBUG__` that may get replaced with actual values during\n * our, or the user's build process. Take care when introducing new flags - they must not throw if they are not\n * replaced.\n */\n\n/** Flag that is true for debug builds, false otherwise. */\nvar IS_DEBUG_BUILD = typeof __SENTRY_DEBUG__ === 'undefined' ? true : __SENTRY_DEBUG__;\n\nexport { IS_DEBUG_BUILD };\n//# sourceMappingURL=flags.js.map\n","import { addInstrumentationHandler, logger } from '@sentry/utils';\nimport { IS_DEBUG_BUILD } from './flags.js';\nimport { getActiveTransaction } from './utils.js';\n\n/**\n * Configures global error listeners\n */\nfunction registerErrorInstrumentation() {\n  addInstrumentationHandler('error', errorCallback);\n  addInstrumentationHandler('unhandledrejection', errorCallback);\n}\n\n/**\n * If an error or unhandled promise occurs, we mark the active transaction as failed\n */\nfunction errorCallback() {\n  var activeTransaction = getActiveTransaction();\n  if (activeTransaction) {\n    var status = 'internal_error';\n    IS_DEBUG_BUILD && logger.log(`[Tracing] Transaction: ${status} -> Global error occured`);\n    activeTransaction.setStatus(status);\n  }\n}\n\nexport { registerErrorInstrumentation };\n//# sourceMappingURL=errors.js.map\n","import { getMainCarrier } from '@sentry/hub';\nimport { logger, isNaN, dynamicRequire, loadModule, isNodeEnv } from '@sentry/utils';\nimport { registerErrorInstrumentation } from './errors.js';\nimport { IS_DEBUG_BUILD } from './flags.js';\nimport { IdleTransaction } from './idletransaction.js';\nimport { Transaction } from './transaction.js';\nimport { hasTracingEnabled } from './utils.js';\n\n/** Returns all trace headers that are currently on the top scope. */\nfunction traceHeaders() {\n  var scope = this.getScope();\n  if (scope) {\n    var span = scope.getSpan();\n    if (span) {\n      return {\n        'sentry-trace': span.toTraceparent(),\n      };\n    }\n  }\n  return {};\n}\n\n/**\n * Makes a sampling decision for the given transaction and stores it on the transaction.\n *\n * Called every time a transaction is created. Only transactions which emerge with a `sampled` value of `true` will be\n * sent to Sentry.\n *\n * @param transaction: The transaction needing a sampling decision\n * @param options: The current client's options, so we can access `tracesSampleRate` and/or `tracesSampler`\n * @param samplingContext: Default and user-provided data which may be used to help make the decision\n *\n * @returns The given transaction with its `sampled` value set\n */\nfunction sample(\n  transaction,\n  options,\n  samplingContext,\n) {\n  // nothing to do if tracing is not enabled\n  if (!hasTracingEnabled(options)) {\n    transaction.sampled = false;\n    return transaction;\n  }\n\n  // if the user has forced a sampling decision by passing a `sampled` value in their transaction context, go with that\n  if (transaction.sampled !== undefined) {\n    transaction.setMetadata({\n      transactionSampling: { method: 'explicitly_set' },\n    });\n    return transaction;\n  }\n\n  // we would have bailed already if neither `tracesSampler` nor `tracesSampleRate` were defined, so one of these should\n  // work; prefer the hook if so\n  let sampleRate;\n  if (typeof options.tracesSampler === 'function') {\n    sampleRate = options.tracesSampler(samplingContext);\n    transaction.setMetadata({\n      transactionSampling: {\n        method: 'client_sampler',\n        // cast to number in case it's a boolean\n        rate: Number(sampleRate),\n      },\n    });\n  } else if (samplingContext.parentSampled !== undefined) {\n    sampleRate = samplingContext.parentSampled;\n    transaction.setMetadata({\n      transactionSampling: { method: 'inheritance' },\n    });\n  } else {\n    sampleRate = options.tracesSampleRate;\n    transaction.setMetadata({\n      transactionSampling: {\n        method: 'client_rate',\n        // cast to number in case it's a boolean\n        rate: Number(sampleRate),\n      },\n    });\n  }\n\n  // Since this is coming from the user (or from a function provided by the user), who knows what we might get. (The\n  // only valid values are booleans or numbers between 0 and 1.)\n  if (!isValidSampleRate(sampleRate)) {\n    IS_DEBUG_BUILD && logger.warn('[Tracing] Discarding transaction because of invalid sample rate.');\n    transaction.sampled = false;\n    return transaction;\n  }\n\n  // if the function returned 0 (or false), or if `tracesSampleRate` is 0, it's a sign the transaction should be dropped\n  if (!sampleRate) {\n    IS_DEBUG_BUILD &&\n      logger.log(\n        `[Tracing] Discarding transaction because ${\n          typeof options.tracesSampler === 'function'\n            ? 'tracesSampler returned 0 or false'\n            : 'a negative sampling decision was inherited or tracesSampleRate is set to 0'\n        }`,\n      );\n    transaction.sampled = false;\n    return transaction;\n  }\n\n  // Now we roll the dice. Math.random is inclusive of 0, but not of 1, so strict < is safe here. In case sampleRate is\n  // a boolean, the < comparison will cause it to be automatically cast to 1 if it's true and 0 if it's false.\n  transaction.sampled = Math.random() < (sampleRate );\n\n  // if we're not going to keep it, we're done\n  if (!transaction.sampled) {\n    IS_DEBUG_BUILD &&\n      logger.log(\n        `[Tracing] Discarding transaction because it's not included in the random sample (sampling rate = ${Number(\n          sampleRate,\n        )})`,\n      );\n    return transaction;\n  }\n\n  IS_DEBUG_BUILD && logger.log(`[Tracing] starting ${transaction.op} transaction - ${transaction.name}`);\n  return transaction;\n}\n\n/**\n * Checks the given sample rate to make sure it is valid type and value (a boolean, or a number between 0 and 1).\n */\nfunction isValidSampleRate(rate) {\n  // we need to check NaN explicitly because it's of type 'number' and therefore wouldn't get caught by this typecheck\n    if (isNaN(rate) || !(typeof rate === 'number' || typeof rate === 'boolean')) {\n    IS_DEBUG_BUILD &&\n      logger.warn(\n        `[Tracing] Given sample rate is invalid. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(\n          rate,\n        )} of type ${JSON.stringify(typeof rate)}.`,\n      );\n    return false;\n  }\n\n  // in case sampleRate is a boolean, it will get automatically cast to 1 if it's true and 0 if it's false\n  if (rate < 0 || rate > 1) {\n    IS_DEBUG_BUILD &&\n      logger.warn(`[Tracing] Given sample rate is invalid. Sample rate must be between 0 and 1. Got ${rate}.`);\n    return false;\n  }\n  return true;\n}\n\n/**\n * Creates a new transaction and adds a sampling decision if it doesn't yet have one.\n *\n * The Hub.startTransaction method delegates to this method to do its work, passing the Hub instance in as `this`, as if\n * it had been called on the hub directly. Exists as a separate function so that it can be injected into the class as an\n * \"extension method.\"\n *\n * @param this: The Hub starting the transaction\n * @param transactionContext: Data used to configure the transaction\n * @param CustomSamplingContext: Optional data to be provided to the `tracesSampler` function (if any)\n *\n * @returns The new transaction\n *\n * @see {@link Hub.startTransaction}\n */\nfunction _startTransaction(\n  \n  transactionContext,\n  customSamplingContext,\n) {\n  var client = this.getClient();\n  var options = (client && client.getOptions()) || {};\n\n  let transaction = new Transaction(transactionContext, this);\n  transaction = sample(transaction, options, {\n    parentSampled: transactionContext.parentSampled,\n    transactionContext,\n    ...customSamplingContext,\n  });\n  if (transaction.sampled) {\n    transaction.initSpanRecorder(options._experiments && (options._experiments.maxSpans ));\n  }\n  return transaction;\n}\n\n/**\n * Create new idle transaction.\n */\nfunction startIdleTransaction(\n  hub,\n  transactionContext,\n  idleTimeout,\n  finalTimeout,\n  onScope,\n  customSamplingContext,\n) {\n  var client = hub.getClient();\n  var options = (client && client.getOptions()) || {};\n\n  let transaction = new IdleTransaction(transactionContext, hub, idleTimeout, finalTimeout, onScope);\n  transaction = sample(transaction, options, {\n    parentSampled: transactionContext.parentSampled,\n    transactionContext,\n    ...customSamplingContext,\n  });\n  if (transaction.sampled) {\n    transaction.initSpanRecorder(options._experiments && (options._experiments.maxSpans ));\n  }\n  return transaction;\n}\n\n/**\n * @private\n */\nfunction _addTracingExtensions() {\n  var carrier = getMainCarrier();\n  if (!carrier.__SENTRY__) {\n    return;\n  }\n  carrier.__SENTRY__.extensions = carrier.__SENTRY__.extensions || {};\n  if (!carrier.__SENTRY__.extensions.startTransaction) {\n    carrier.__SENTRY__.extensions.startTransaction = _startTransaction;\n  }\n  if (!carrier.__SENTRY__.extensions.traceHeaders) {\n    carrier.__SENTRY__.extensions.traceHeaders = traceHeaders;\n  }\n}\n\n/**\n * @private\n */\nfunction _autoloadDatabaseIntegrations() {\n  var carrier = getMainCarrier();\n  if (!carrier.__SENTRY__) {\n    return;\n  }\n\n  var packageToIntegrationMapping = {\n    mongodb() {\n      var integration = dynamicRequire(module, './integrations/node/mongo') \n\n;\n      return new integration.Mongo();\n    },\n    mongoose() {\n      var integration = dynamicRequire(module, './integrations/node/mongo') \n\n;\n      return new integration.Mongo({ mongoose: true });\n    },\n    mysql() {\n      var integration = dynamicRequire(module, './integrations/node/mysql') \n\n;\n      return new integration.Mysql();\n    },\n    pg() {\n      var integration = dynamicRequire(module, './integrations/node/postgres') \n\n;\n      return new integration.Postgres();\n    },\n  };\n\n  var mappedPackages = Object.keys(packageToIntegrationMapping)\n    .filter(moduleName => !!loadModule(moduleName))\n    .map(pkg => {\n      try {\n        return packageToIntegrationMapping[pkg]();\n      } catch (e) {\n        return undefined;\n      }\n    })\n    .filter(p => p) ;\n\n  if (mappedPackages.length > 0) {\n    carrier.__SENTRY__.integrations = [...(carrier.__SENTRY__.integrations || []), ...mappedPackages];\n  }\n}\n\n/**\n * This patches the global object and injects the Tracing extensions methods\n */\nfunction addExtensionMethods() {\n  _addTracingExtensions();\n\n  // Detect and automatically load specified integrations.\n  if (isNodeEnv()) {\n    _autoloadDatabaseIntegrations();\n  }\n\n  // If an error happens globally, we should make sure transaction status is set to error.\n  registerErrorInstrumentation();\n}\n\nexport { _addTracingExtensions, addExtensionMethods, startIdleTransaction };\n//# sourceMappingURL=hubextensions.js.map\n","import { timestampWithMs, logger } from '@sentry/utils';\nimport { IS_DEBUG_BUILD } from './flags.js';\nimport { SpanRecorder } from './span.js';\nimport { Transaction } from './transaction.js';\n\nvar DEFAULT_IDLE_TIMEOUT = 1000;\nvar DEFAULT_FINAL_TIMEOUT = 30000;\nvar HEARTBEAT_INTERVAL = 5000;\n\n/**\n * @inheritDoc\n */\nclass IdleTransactionSpanRecorder extends SpanRecorder {\n   constructor(\n      _pushActivity,\n      _popActivity,\n     transactionSpanId,\n    maxlen,\n  ) {\n    super(maxlen);this._pushActivity = _pushActivity;this._popActivity = _popActivity;this.transactionSpanId = transactionSpanId;;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   add(span) {\n    // We should make sure we do not push and pop activities for\n    // the transaction that this span recorder belongs to.\n    if (span.spanId !== this.transactionSpanId) {\n      // We patch span.finish() to pop an activity after setting an endTimestamp.\n      span.finish = (endTimestamp) => {\n        span.endTimestamp = typeof endTimestamp === 'number' ? endTimestamp : timestampWithMs();\n        this._popActivity(span.spanId);\n      };\n\n      // We should only push new activities if the span does not have an end timestamp.\n      if (span.endTimestamp === undefined) {\n        this._pushActivity(span.spanId);\n      }\n    }\n\n    super.add(span);\n  }\n}\n\n/**\n * An IdleTransaction is a transaction that automatically finishes. It does this by tracking child spans as activities.\n * You can have multiple IdleTransactions active, but if the `onScope` option is specified, the idle transaction will\n * put itself on the scope on creation.\n */\nclass IdleTransaction extends Transaction {\n  // Activities store a list of active spans\n   __init() {this.activities = {};}\n\n  // Track state of activities in previous heartbeat\n  \n\n  // Amount of times heartbeat has counted. Will cause transaction to finish after 3 beats.\n   __init2() {this._heartbeatCounter = 0;}\n\n  // We should not use heartbeat if we finished a transaction\n   __init3() {this._finished = false;}\n\n    __init4() {this._beforeFinishCallbacks = [];}\n\n  /**\n   * Timer that tracks Transaction idleTimeout\n   */\n  \n\n   constructor(\n    transactionContext,\n      _idleHub,\n    /**\n     * The time to wait in ms until the idle transaction will be finished. This timer is started each time\n     * there are no active spans on this transaction.\n     */\n      _idleTimeout = DEFAULT_IDLE_TIMEOUT,\n    /**\n     * The final value in ms that a transaction cannot exceed\n     */\n      _finalTimeout = DEFAULT_FINAL_TIMEOUT,\n    // Whether or not the transaction should put itself on the scope when it starts and pop itself off when it ends\n      _onScope = false,\n  ) {\n    super(transactionContext, _idleHub);this._idleHub = _idleHub;this._idleTimeout = _idleTimeout;this._finalTimeout = _finalTimeout;this._onScope = _onScope;IdleTransaction.prototype.__init.call(this);IdleTransaction.prototype.__init2.call(this);IdleTransaction.prototype.__init3.call(this);IdleTransaction.prototype.__init4.call(this);;\n\n    if (_onScope) {\n      // There should only be one active transaction on the scope\n      clearActiveTransaction(_idleHub);\n\n      // We set the transaction here on the scope so error events pick up the trace\n      // context and attach it to the error.\n      IS_DEBUG_BUILD && logger.log(`Setting idle transaction on scope. Span ID: ${this.spanId}`);\n      _idleHub.configureScope(scope => scope.setSpan(this));\n    }\n\n    this._startIdleTimeout();\n    setTimeout(() => {\n      if (!this._finished) {\n        this.setStatus('deadline_exceeded');\n        this.finish();\n      }\n    }, this._finalTimeout);\n  }\n\n  /** {@inheritDoc} */\n   finish(endTimestamp = timestampWithMs()) {\n    this._finished = true;\n    this.activities = {};\n\n    if (this.spanRecorder) {\n      IS_DEBUG_BUILD &&\n        logger.log('[Tracing] finishing IdleTransaction', new Date(endTimestamp * 1000).toISOString(), this.op);\n\n      for (var callback of this._beforeFinishCallbacks) {\n        callback(this, endTimestamp);\n      }\n\n      this.spanRecorder.spans = this.spanRecorder.spans.filter((span) => {\n        // If we are dealing with the transaction itself, we just return it\n        if (span.spanId === this.spanId) {\n          return true;\n        }\n\n        // We cancel all pending spans with status \"cancelled\" to indicate the idle transaction was finished early\n        if (!span.endTimestamp) {\n          span.endTimestamp = endTimestamp;\n          span.setStatus('cancelled');\n          IS_DEBUG_BUILD &&\n            logger.log('[Tracing] cancelling span since transaction ended early', JSON.stringify(span, undefined, 2));\n        }\n\n        var keepSpan = span.startTimestamp < endTimestamp;\n        if (!keepSpan) {\n          IS_DEBUG_BUILD &&\n            logger.log(\n              '[Tracing] discarding Span since it happened after Transaction was finished',\n              JSON.stringify(span, undefined, 2),\n            );\n        }\n        return keepSpan;\n      });\n\n      IS_DEBUG_BUILD && logger.log('[Tracing] flushing IdleTransaction');\n    } else {\n      IS_DEBUG_BUILD && logger.log('[Tracing] No active IdleTransaction');\n    }\n\n    // if `this._onScope` is `true`, the transaction put itself on the scope when it started\n    if (this._onScope) {\n      clearActiveTransaction(this._idleHub);\n    }\n\n    return super.finish(endTimestamp);\n  }\n\n  /**\n   * Register a callback function that gets excecuted before the transaction finishes.\n   * Useful for cleanup or if you want to add any additional spans based on current context.\n   *\n   * This is exposed because users have no other way of running something before an idle transaction\n   * finishes.\n   */\n   registerBeforeFinishCallback(callback) {\n    this._beforeFinishCallbacks.push(callback);\n  }\n\n  /**\n   * @inheritDoc\n   */\n   initSpanRecorder(maxlen) {\n    if (!this.spanRecorder) {\n      var pushActivity = (id) => {\n        if (this._finished) {\n          return;\n        }\n        this._pushActivity(id);\n      };\n      var popActivity = (id) => {\n        if (this._finished) {\n          return;\n        }\n        this._popActivity(id);\n      };\n\n      this.spanRecorder = new IdleTransactionSpanRecorder(pushActivity, popActivity, this.spanId, maxlen);\n\n      // Start heartbeat so that transactions do not run forever.\n      IS_DEBUG_BUILD && logger.log('Starting heartbeat');\n      this._pingHeartbeat();\n    }\n    this.spanRecorder.add(this);\n  }\n\n  /**\n   * Cancels the existing idletimeout, if there is one\n   */\n   _cancelIdleTimeout() {\n    if (this._idleTimeoutID) {\n      clearTimeout(this._idleTimeoutID);\n      this._idleTimeoutID = undefined;\n    }\n  }\n\n  /**\n   * Creates an idletimeout\n   */\n   _startIdleTimeout(endTimestamp) {\n    this._cancelIdleTimeout();\n    this._idleTimeoutID = setTimeout(() => {\n      if (!this._finished && Object.keys(this.activities).length === 0) {\n        this.finish(endTimestamp);\n      }\n    }, this._idleTimeout);\n  }\n\n  /**\n   * Start tracking a specific activity.\n   * @param spanId The span id that represents the activity\n   */\n   _pushActivity(spanId) {\n    this._cancelIdleTimeout();\n    IS_DEBUG_BUILD && logger.log(`[Tracing] pushActivity: ${spanId}`);\n    this.activities[spanId] = true;\n    IS_DEBUG_BUILD && logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n  }\n\n  /**\n   * Remove an activity from usage\n   * @param spanId The span id that represents the activity\n   */\n   _popActivity(spanId) {\n    if (this.activities[spanId]) {\n      IS_DEBUG_BUILD && logger.log(`[Tracing] popActivity ${spanId}`);\n            delete this.activities[spanId];\n      IS_DEBUG_BUILD && logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n    }\n\n    if (Object.keys(this.activities).length === 0) {\n      // We need to add the timeout here to have the real endtimestamp of the transaction\n      // Remember timestampWithMs is in seconds, timeout is in ms\n      var endTimestamp = timestampWithMs() + this._idleTimeout / 1000;\n      this._startIdleTimeout(endTimestamp);\n    }\n  }\n\n  /**\n   * Checks when entries of this.activities are not changing for 3 beats.\n   * If this occurs we finish the transaction.\n   */\n   _beat() {\n    // We should not be running heartbeat if the idle transaction is finished.\n    if (this._finished) {\n      return;\n    }\n\n    var heartbeatString = Object.keys(this.activities).join('');\n\n    if (heartbeatString === this._prevHeartbeatString) {\n      this._heartbeatCounter += 1;\n    } else {\n      this._heartbeatCounter = 1;\n    }\n\n    this._prevHeartbeatString = heartbeatString;\n\n    if (this._heartbeatCounter >= 3) {\n      IS_DEBUG_BUILD && logger.log('[Tracing] Transaction finished because of no change for 3 heart beats');\n      this.setStatus('deadline_exceeded');\n      this.finish();\n    } else {\n      this._pingHeartbeat();\n    }\n  }\n\n  /**\n   * Pings the heartbeat\n   */\n   _pingHeartbeat() {\n    IS_DEBUG_BUILD && logger.log(`pinging Heartbeat -> current counter: ${this._heartbeatCounter}`);\n    setTimeout(() => {\n      this._beat();\n    }, HEARTBEAT_INTERVAL);\n  }\n}\n\n/**\n * Reset transaction on scope to `undefined`\n */\nfunction clearActiveTransaction(hub) {\n  var scope = hub.getScope();\n  if (scope) {\n    var transaction = scope.getTransaction();\n    if (transaction) {\n      scope.setSpan(undefined);\n    }\n  }\n}\n\nexport { DEFAULT_FINAL_TIMEOUT, DEFAULT_IDLE_TIMEOUT, HEARTBEAT_INTERVAL, IdleTransaction, IdleTransactionSpanRecorder };\n//# sourceMappingURL=idletransaction.js.map\n","import { _nullishCoalesce } from '@sentry/utils/esm/buildPolyfills';\nimport { uuid4, timestampWithMs, dropUndefinedKeys } from '@sentry/utils';\n\n/**\n * Keeps track of finished spans for a given transaction\n * @internal\n * @hideconstructor\n * @hidden\n */\nclass SpanRecorder {\n   __init() {this.spans = [];}\n\n   constructor(maxlen = 1000) {;SpanRecorder.prototype.__init.call(this);\n    this._maxlen = maxlen;\n  }\n\n  /**\n   * This is just so that we don't run out of memory while recording a lot\n   * of spans. At some point we just stop and flush out the start of the\n   * trace tree (i.e.the first n spans with the smallest\n   * start_timestamp).\n   */\n   add(span) {\n    if (this.spans.length > this._maxlen) {\n      span.spanRecorder = undefined;\n    } else {\n      this.spans.push(span);\n    }\n  }\n}\n\n/**\n * Span contains all data about a span\n */\nclass Span  {\n  /**\n   * @inheritDoc\n   */\n   __init2() {this.traceId = uuid4();}\n\n  /**\n   * @inheritDoc\n   */\n   __init3() {this.spanId = uuid4().substring(16);}\n\n  /**\n   * @inheritDoc\n   */\n  \n\n  /**\n   * Internal keeper of the status\n   */\n  \n\n  /**\n   * @inheritDoc\n   */\n  \n\n  /**\n   * Timestamp in seconds when the span was created.\n   */\n   __init4() {this.startTimestamp = timestampWithMs();}\n\n  /**\n   * Timestamp in seconds when the span ended.\n   */\n  \n\n  /**\n   * @inheritDoc\n   */\n  \n\n  /**\n   * @inheritDoc\n   */\n  \n\n  /**\n   * @inheritDoc\n   */\n   __init5() {this.tags = {};}\n\n  /**\n   * @inheritDoc\n   */\n     __init6() {this.data = {};}\n\n  /**\n   * List of spans that were finalized\n   */\n  \n\n  /**\n   * @inheritDoc\n   */\n  \n\n  /**\n   * You should never call the constructor manually, always use `Sentry.startTransaction()`\n   * or call `startChild()` on an existing span.\n   * @internal\n   * @hideconstructor\n   * @hidden\n   */\n   constructor(spanContext) {;Span.prototype.__init2.call(this);Span.prototype.__init3.call(this);Span.prototype.__init4.call(this);Span.prototype.__init5.call(this);Span.prototype.__init6.call(this);\n    if (!spanContext) {\n      return this;\n    }\n    if (spanContext.traceId) {\n      this.traceId = spanContext.traceId;\n    }\n    if (spanContext.spanId) {\n      this.spanId = spanContext.spanId;\n    }\n    if (spanContext.parentSpanId) {\n      this.parentSpanId = spanContext.parentSpanId;\n    }\n    // We want to include booleans as well here\n    if ('sampled' in spanContext) {\n      this.sampled = spanContext.sampled;\n    }\n    if (spanContext.op) {\n      this.op = spanContext.op;\n    }\n    if (spanContext.description) {\n      this.description = spanContext.description;\n    }\n    if (spanContext.data) {\n      this.data = spanContext.data;\n    }\n    if (spanContext.tags) {\n      this.tags = spanContext.tags;\n    }\n    if (spanContext.status) {\n      this.status = spanContext.status;\n    }\n    if (spanContext.startTimestamp) {\n      this.startTimestamp = spanContext.startTimestamp;\n    }\n    if (spanContext.endTimestamp) {\n      this.endTimestamp = spanContext.endTimestamp;\n    }\n  }\n\n  /**\n   * @inheritDoc\n   */\n   startChild(\n    spanContext,\n  ) {\n    var childSpan = new Span({\n      ...spanContext,\n      parentSpanId: this.spanId,\n      sampled: this.sampled,\n      traceId: this.traceId,\n    });\n\n    childSpan.spanRecorder = this.spanRecorder;\n    if (childSpan.spanRecorder) {\n      childSpan.spanRecorder.add(childSpan);\n    }\n\n    childSpan.transaction = this.transaction;\n\n    return childSpan;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   setTag(key, value) {\n    this.tags = { ...this.tags, [key]: value };\n    return this;\n  }\n\n  /**\n   * @inheritDoc\n   */\n     setData(key, value) {\n    this.data = { ...this.data, [key]: value };\n    return this;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   setStatus(value) {\n    this.status = value;\n    return this;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   setHttpStatus(httpStatus) {\n    this.setTag('http.status_code', String(httpStatus));\n    var spanStatus = spanStatusfromHttpCode(httpStatus);\n    if (spanStatus !== 'unknown_error') {\n      this.setStatus(spanStatus);\n    }\n    return this;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   isSuccess() {\n    return this.status === 'ok';\n  }\n\n  /**\n   * @inheritDoc\n   */\n   finish(endTimestamp) {\n    this.endTimestamp = typeof endTimestamp === 'number' ? endTimestamp : timestampWithMs();\n  }\n\n  /**\n   * @inheritDoc\n   */\n   toTraceparent() {\n    let sampledString = '';\n    if (this.sampled !== undefined) {\n      sampledString = this.sampled ? '-1' : '-0';\n    }\n    return `${this.traceId}-${this.spanId}${sampledString}`;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   toContext() {\n    return dropUndefinedKeys({\n      data: this.data,\n      description: this.description,\n      endTimestamp: this.endTimestamp,\n      op: this.op,\n      parentSpanId: this.parentSpanId,\n      sampled: this.sampled,\n      spanId: this.spanId,\n      startTimestamp: this.startTimestamp,\n      status: this.status,\n      tags: this.tags,\n      traceId: this.traceId,\n    });\n  }\n\n  /**\n   * @inheritDoc\n   */\n   updateWithContext(spanContext) {\n    this.data = _nullishCoalesce(spanContext.data, () => ( {}));\n    this.description = spanContext.description;\n    this.endTimestamp = spanContext.endTimestamp;\n    this.op = spanContext.op;\n    this.parentSpanId = spanContext.parentSpanId;\n    this.sampled = spanContext.sampled;\n    this.spanId = _nullishCoalesce(spanContext.spanId, () => ( this.spanId));\n    this.startTimestamp = _nullishCoalesce(spanContext.startTimestamp, () => ( this.startTimestamp));\n    this.status = spanContext.status;\n    this.tags = _nullishCoalesce(spanContext.tags, () => ( {}));\n    this.traceId = _nullishCoalesce(spanContext.traceId, () => ( this.traceId));\n\n    return this;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   getTraceContext()\n\n {\n    return dropUndefinedKeys({\n      data: Object.keys(this.data).length > 0 ? this.data : undefined,\n      description: this.description,\n      op: this.op,\n      parent_span_id: this.parentSpanId,\n      span_id: this.spanId,\n      status: this.status,\n      tags: Object.keys(this.tags).length > 0 ? this.tags : undefined,\n      trace_id: this.traceId,\n    });\n  }\n\n  /**\n   * @inheritdoc\n   */\n   getBaggage() {\n    return this.transaction && this.transaction.metadata.baggage;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   toJSON()\n\n {\n    return dropUndefinedKeys({\n      data: Object.keys(this.data).length > 0 ? this.data : undefined,\n      description: this.description,\n      op: this.op,\n      parent_span_id: this.parentSpanId,\n      span_id: this.spanId,\n      start_timestamp: this.startTimestamp,\n      status: this.status,\n      tags: Object.keys(this.tags).length > 0 ? this.tags : undefined,\n      timestamp: this.endTimestamp,\n      trace_id: this.traceId,\n    });\n  }\n}\n\n/**\n * Converts a HTTP status code into a {@link SpanStatusType}.\n *\n * @param httpStatus The HTTP response status code.\n * @returns The span status or unknown_error.\n */\nfunction spanStatusfromHttpCode(httpStatus) {\n  if (httpStatus < 400 && httpStatus >= 100) {\n    return 'ok';\n  }\n\n  if (httpStatus >= 400 && httpStatus < 500) {\n    switch (httpStatus) {\n      case 401:\n        return 'unauthenticated';\n      case 403:\n        return 'permission_denied';\n      case 404:\n        return 'not_found';\n      case 409:\n        return 'already_exists';\n      case 413:\n        return 'failed_precondition';\n      case 429:\n        return 'resource_exhausted';\n      default:\n        return 'invalid_argument';\n    }\n  }\n\n  if (httpStatus >= 500 && httpStatus < 600) {\n    switch (httpStatus) {\n      case 501:\n        return 'unimplemented';\n      case 503:\n        return 'unavailable';\n      case 504:\n        return 'deadline_exceeded';\n      default:\n        return 'internal_error';\n    }\n  }\n\n  return 'unknown_error';\n}\n\nexport { Span, SpanRecorder, spanStatusfromHttpCode };\n//# sourceMappingURL=span.js.map\n","import { _nullishCoalesce } from '@sentry/utils/esm/buildPolyfills';\nimport { getCurrentHub } from '@sentry/hub';\nimport { logger, dropUndefinedKeys } from '@sentry/utils';\nimport { IS_DEBUG_BUILD } from './flags.js';\nimport { Span, SpanRecorder } from './span.js';\n\n/** JSDoc */\nclass Transaction extends Span  {\n  \n\n   __init() {this._measurements = {};}\n\n  /**\n   * The reference to the current hub.\n   */\n  \n\n  /**\n   * This constructor should never be called manually. Those instrumenting tracing should use\n   * `Sentry.startTransaction()`, and internal methods should use `hub.startTransaction()`.\n   * @internal\n   * @hideconstructor\n   * @hidden\n   */\n   constructor(transactionContext, hub) {\n    super(transactionContext);Transaction.prototype.__init.call(this);;\n\n    this._hub = hub || getCurrentHub();\n\n    this.name = transactionContext.name || '';\n\n    this.metadata = transactionContext.metadata || {};\n    this._trimEnd = transactionContext.trimEnd;\n\n    // this is because transactions are also spans, and spans have a transaction pointer\n    this.transaction = this;\n  }\n\n  /**\n   * JSDoc\n   */\n   setName(name) {\n    this.name = name;\n  }\n\n  /**\n   * Attaches SpanRecorder to the span itself\n   * @param maxlen maximum number of spans that can be recorded\n   */\n   initSpanRecorder(maxlen = 1000) {\n    if (!this.spanRecorder) {\n      this.spanRecorder = new SpanRecorder(maxlen);\n    }\n    this.spanRecorder.add(this);\n  }\n\n  /**\n   * @inheritDoc\n   */\n   setMeasurement(name, value, unit = '') {\n    this._measurements[name] = { value, unit };\n  }\n\n  /**\n   * Set metadata for this transaction.\n   * @hidden\n   */\n   setMetadata(newMetadata) {\n    this.metadata = { ...this.metadata, ...newMetadata };\n  }\n\n  /**\n   * @inheritDoc\n   */\n   finish(endTimestamp) {\n    // This transaction is already finished, so we should not flush it again.\n    if (this.endTimestamp !== undefined) {\n      return undefined;\n    }\n\n    if (!this.name) {\n      IS_DEBUG_BUILD && logger.warn('Transaction has no name, falling back to `<unlabeled transaction>`.');\n      this.name = '<unlabeled transaction>';\n    }\n\n    // just sets the end timestamp\n    super.finish(endTimestamp);\n\n    if (this.sampled !== true) {\n      // At this point if `sampled !== true` we want to discard the transaction.\n      IS_DEBUG_BUILD && logger.log('[Tracing] Discarding transaction because its trace was not chosen to be sampled.');\n\n      var client = this._hub.getClient();\n      if (client) {\n        client.recordDroppedEvent('sample_rate', 'transaction');\n      }\n\n      return undefined;\n    }\n\n    var finishedSpans = this.spanRecorder ? this.spanRecorder.spans.filter(s => s !== this && s.endTimestamp) : [];\n\n    if (this._trimEnd && finishedSpans.length > 0) {\n      this.endTimestamp = finishedSpans.reduce((prev, current) => {\n        if (prev.endTimestamp && current.endTimestamp) {\n          return prev.endTimestamp > current.endTimestamp ? prev : current;\n        }\n        return prev;\n      }).endTimestamp;\n    }\n\n    var transaction = {\n      contexts: {\n        trace: this.getTraceContext(),\n      },\n      spans: finishedSpans,\n      start_timestamp: this.startTimestamp,\n      tags: this.tags,\n      timestamp: this.endTimestamp,\n      transaction: this.name,\n      type: 'transaction',\n      sdkProcessingMetadata: this.metadata,\n    };\n\n    var hasMeasurements = Object.keys(this._measurements).length > 0;\n\n    if (hasMeasurements) {\n      IS_DEBUG_BUILD &&\n        logger.log(\n          '[Measurements] Adding measurements to transaction',\n          JSON.stringify(this._measurements, undefined, 2),\n        );\n      transaction.measurements = this._measurements;\n    }\n\n    IS_DEBUG_BUILD && logger.log(`[Tracing] Finishing ${this.op} transaction: ${this.name}.`);\n\n    return this._hub.captureEvent(transaction);\n  }\n\n  /**\n   * @inheritDoc\n   */\n   toContext() {\n    var spanContext = super.toContext();\n\n    return dropUndefinedKeys({\n      ...spanContext,\n      name: this.name,\n      trimEnd: this._trimEnd,\n    });\n  }\n\n  /**\n   * @inheritDoc\n   */\n   updateWithContext(transactionContext) {\n    super.updateWithContext(transactionContext);\n\n    this.name = _nullishCoalesce(transactionContext.name, () => ( ''));\n\n    this._trimEnd = transactionContext.trimEnd;\n\n    return this;\n  }\n}\n\nexport { Transaction };\n//# sourceMappingURL=transaction.js.map\n","import { getCurrentHub } from '@sentry/hub';\nexport { TRACEPARENT_REGEXP, extractTraceparentData, stripUrlQueryAndFragment } from '@sentry/utils';\n\n/**\n * Determines if tracing is currently enabled.\n *\n * Tracing is enabled when at least one of `tracesSampleRate` and `tracesSampler` is defined in the SDK config.\n */\nfunction hasTracingEnabled(\n  maybeOptions,\n) {\n  var client = getCurrentHub().getClient();\n  var options = maybeOptions || (client && client.getOptions());\n  return !!options && ('tracesSampleRate' in options || 'tracesSampler' in options);\n}\n\n/** Grabs active transaction off scope, if any */\nfunction getActiveTransaction(maybeHub) {\n  var hub = maybeHub || getCurrentHub();\n  var scope = hub.getScope();\n  return scope && (scope.getTransaction() );\n}\n\n/**\n * Converts from milliseconds to seconds\n * @param time time in ms\n */\nfunction msToSec(time) {\n  return time / 1000;\n}\n\n/**\n * Converts from seconds to milliseconds\n * @param time time in seconds\n */\nfunction secToMs(time) {\n  return time * 1000;\n}\n\nexport { getActiveTransaction, hasTracingEnabled, msToSec, secToMs };\n//# sourceMappingURL=utils.js.map\n","import { getGlobalObject } from './global.js';\nimport { isString } from './is.js';\n\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction htmlTreeAsString(elem, keyAttrs) {\n  \n\n  // try/catch both:\n  // - accessing event.target (see getsentry/raven-js#838, #768)\n  // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n  // - can throw an exception in some circumstances.\n  try {\n    let currentElem = elem ;\n    var MAX_TRAVERSE_HEIGHT = 5;\n    var MAX_OUTPUT_LEN = 80;\n    var out = [];\n    let height = 0;\n    let len = 0;\n    var separator = ' > ';\n    var sepLength = separator.length;\n    let nextStr;\n\n        while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n      nextStr = _htmlElementAsString(currentElem, keyAttrs);\n      // bail out if\n      // - nextStr is the 'html' element\n      // - the length of the string that would be created exceeds MAX_OUTPUT_LEN\n      //   (ignore this limit if we are on the first iteration)\n      if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= MAX_OUTPUT_LEN)) {\n        break;\n      }\n\n      out.push(nextStr);\n\n      len += nextStr.length;\n      currentElem = currentElem.parentNode;\n    }\n\n    return out.reverse().join(separator);\n  } catch (_oO) {\n    return '<unknown>';\n  }\n}\n\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el, keyAttrs) {\n  var elem = el \n\n;\n\n  var out = [];\n  let className;\n  let classes;\n  let key;\n  let attr;\n  let i;\n\n  if (!elem || !elem.tagName) {\n    return '';\n  }\n\n  out.push(elem.tagName.toLowerCase());\n\n  // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n  var keyAttrPairs =\n    keyAttrs && keyAttrs.length\n      ? keyAttrs.filter(keyAttr => elem.getAttribute(keyAttr)).map(keyAttr => [keyAttr, elem.getAttribute(keyAttr)])\n      : null;\n\n  if (keyAttrPairs && keyAttrPairs.length) {\n    keyAttrPairs.forEach(keyAttrPair => {\n      out.push(`[${keyAttrPair[0]}=\"${keyAttrPair[1]}\"]`);\n    });\n  } else {\n    if (elem.id) {\n      out.push(`#${elem.id}`);\n    }\n\n        className = elem.className;\n    if (className && isString(className)) {\n      classes = className.split(/\\s+/);\n      for (i = 0; i < classes.length; i++) {\n        out.push(`.${classes[i]}`);\n      }\n    }\n  }\n  var allowedAttrs = ['type', 'name', 'title', 'alt'];\n  for (i = 0; i < allowedAttrs.length; i++) {\n    key = allowedAttrs[i];\n    attr = elem.getAttribute(key);\n    if (attr) {\n      out.push(`[${key}=\"${attr}\"]`);\n    }\n  }\n  return out.join('');\n}\n\n/**\n * A safe form of location.href\n */\nfunction getLocationHref() {\n  var global = getGlobalObject();\n  try {\n    return global.document.location.href;\n  } catch (oO) {\n    return '';\n  }\n}\n\nexport { getLocationHref, htmlTreeAsString };\n//# sourceMappingURL=browser.js.map\n","/**\n * Polyfill for the nullish coalescing operator (`??`).\n *\n * Note that the RHS is wrapped in a function so that if it's a computed value, that evaluation won't happen unless the\n * LHS evaluates to a nullish value, to mimic the operator's short-circuiting behavior.\n *\n * Adapted from Sucrase (https://github.com/alangpierce/sucrase)\n *\n * @param lhs The value of the expression to the left of the `??`\n * @param rhsFn A function returning the value of the expression to the right of the `??`\n * @returns The LHS value, unless it's `null` or `undefined`, in which case, the RHS value\n */\nfunction _nullishCoalesce(lhs, rhsFn) {\n  // by checking for loose equality to `null`, we catch both `null` and `undefined`\n  return lhs != null ? lhs : rhsFn();\n}\n\n// Sucrase version:\n// function _nullishCoalesce(lhs, rhsFn) {\n//   if (lhs != null) {\n//     return lhs;\n//   } else {\n//     return rhsFn();\n//   }\n// }\n\nexport { _nullishCoalesce };\n//# sourceMappingURL=_nullishCoalesce.js.map\n","/*\n * This file defines flags and constants that can be modified during compile time in order to facilitate tree shaking\n * for users.\n *\n * Debug flags need to be declared in each package individually and must not be imported across package boundaries,\n * because some build tools have trouble tree-shaking imported guards.\n *\n * As a convention, we define debug flags in a `flags.ts` file in the root of a package's `src` folder.\n *\n * Debug flag files will contain \"magic strings\" like `__SENTRY_DEBUG__` that may get replaced with actual values during\n * our, or the user's build process. Take care when introducing new flags - they must not throw if they are not\n * replaced.\n */\n\n/** Flag that is true for debug builds, false otherwise. */\nvar IS_DEBUG_BUILD = typeof __SENTRY_DEBUG__ === 'undefined' ? true : __SENTRY_DEBUG__;\n\nexport { IS_DEBUG_BUILD };\n//# sourceMappingURL=flags.js.map\n","import { isNodeEnv } from './node.js';\n\n/** Internal */\n\nvar fallbackGlobalObject = {};\n\n/**\n * Safely get global scope object\n *\n * @returns Global scope object\n */\nfunction getGlobalObject() {\n  return (\n    isNodeEnv()\n      ? global\n      : typeof window !== 'undefined'       ? window       : typeof self !== 'undefined'\n      ? self\n      : fallbackGlobalObject\n  ) ;\n}\n\n/**\n * Returns a global singleton contained in the global `__SENTRY__` object.\n *\n * If the singleton doesn't already exist in `__SENTRY__`, it will be created using the given factory\n * function and added to the `__SENTRY__` object.\n *\n * @param name name of the global singleton on __SENTRY__\n * @param creator creator Factory function to create the singleton if it doesn't already exist on `__SENTRY__`\n * @param obj (Optional) The global object on which to look for `__SENTRY__`, if not `getGlobalObject`'s return value\n * @returns the singleton\n */\nfunction getGlobalSingleton(name, creator, obj) {\n  var global = (obj || getGlobalObject()) ;\n  var __SENTRY__ = (global.__SENTRY__ = global.__SENTRY__ || {});\n  var singleton = __SENTRY__[name] || (__SENTRY__[name] = creator());\n  return singleton;\n}\n\nexport { getGlobalObject, getGlobalSingleton };\n//# sourceMappingURL=global.js.map\n","import { IS_DEBUG_BUILD } from './flags.js';\nimport { getGlobalObject } from './global.js';\nimport { isInstanceOf, isString } from './is.js';\nimport { logger, CONSOLE_LEVELS } from './logger.js';\nimport { fill } from './object.js';\nimport { getFunctionName } from './stacktrace.js';\nimport { supportsNativeFetch, supportsHistory } from './supports.js';\n\nvar global = getGlobalObject();\n\n/**\n * Instrument native APIs to call handlers that can be used to create breadcrumbs, APM spans etc.\n *  - Console API\n *  - Fetch API\n *  - XHR API\n *  - History API\n *  - DOM API (click/typing)\n *  - Error API\n *  - UnhandledRejection API\n */\n\nvar handlers = {};\nvar instrumented = {};\n\n/** Instruments given API */\nfunction instrument(type) {\n  if (instrumented[type]) {\n    return;\n  }\n\n  instrumented[type] = true;\n\n  switch (type) {\n    case 'console':\n      instrumentConsole();\n      break;\n    case 'dom':\n      instrumentDOM();\n      break;\n    case 'xhr':\n      instrumentXHR();\n      break;\n    case 'fetch':\n      instrumentFetch();\n      break;\n    case 'history':\n      instrumentHistory();\n      break;\n    case 'error':\n      instrumentError();\n      break;\n    case 'unhandledrejection':\n      instrumentUnhandledRejection();\n      break;\n    default:\n      IS_DEBUG_BUILD && logger.warn('unknown instrumentation type:', type);\n      return;\n  }\n}\n\n/**\n * Add handler that will be called when given type of instrumentation triggers.\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addInstrumentationHandler(type, callback) {\n  handlers[type] = handlers[type] || [];\n  (handlers[type] ).push(callback);\n  instrument(type);\n}\n\n/** JSDoc */\nfunction triggerHandlers(type, data) {\n  if (!type || !handlers[type]) {\n    return;\n  }\n\n  for (var handler of handlers[type] || []) {\n    try {\n      handler(data);\n    } catch (e) {\n      IS_DEBUG_BUILD &&\n        logger.error(\n          `Error while triggering instrumentation handler.\\nType: ${type}\\nName: ${getFunctionName(handler)}\\nError:`,\n          e,\n        );\n    }\n  }\n}\n\n/** JSDoc */\nfunction instrumentConsole() {\n  if (!('console' in global)) {\n    return;\n  }\n\n  CONSOLE_LEVELS.forEach(function (level) {\n    if (!(level in global.console)) {\n      return;\n    }\n\n    fill(global.console, level, function (originalConsoleMethod) {\n      return function (...args) {\n        triggerHandlers('console', { args, level });\n\n        // this fails for some browsers. :(\n        if (originalConsoleMethod) {\n          originalConsoleMethod.apply(global.console, args);\n        }\n      };\n    });\n  });\n}\n\n/** JSDoc */\nfunction instrumentFetch() {\n  if (!supportsNativeFetch()) {\n    return;\n  }\n\n  fill(global, 'fetch', function (originalFetch) {\n    return function (...args) {\n      var handlerData = {\n        args,\n        fetchData: {\n          method: getFetchMethod(args),\n          url: getFetchUrl(args),\n        },\n        startTimestamp: Date.now(),\n      };\n\n      triggerHandlers('fetch', {\n        ...handlerData,\n      });\n\n            return originalFetch.apply(global, args).then(\n        (response) => {\n          triggerHandlers('fetch', {\n            ...handlerData,\n            endTimestamp: Date.now(),\n            response,\n          });\n          return response;\n        },\n        (error) => {\n          triggerHandlers('fetch', {\n            ...handlerData,\n            endTimestamp: Date.now(),\n            error,\n          });\n          // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n          //       it means the sentry.javascript SDK caught an error invoking your application code.\n          //       This is expected behavior and NOT indicative of a bug with sentry.javascript.\n          throw error;\n        },\n      );\n    };\n  });\n}\n\n/** Extract `method` from fetch call arguments */\nfunction getFetchMethod(fetchArgs = []) {\n  if ('Request' in global && isInstanceOf(fetchArgs[0], Request) && fetchArgs[0].method) {\n    return String(fetchArgs[0].method).toUpperCase();\n  }\n  if (fetchArgs[1] && fetchArgs[1].method) {\n    return String(fetchArgs[1].method).toUpperCase();\n  }\n  return 'GET';\n}\n\n/** Extract `url` from fetch call arguments */\nfunction getFetchUrl(fetchArgs = []) {\n  if (typeof fetchArgs[0] === 'string') {\n    return fetchArgs[0];\n  }\n  if ('Request' in global && isInstanceOf(fetchArgs[0], Request)) {\n    return fetchArgs[0].url;\n  }\n  return String(fetchArgs[0]);\n}\n\n/** JSDoc */\nfunction instrumentXHR() {\n  if (!('XMLHttpRequest' in global)) {\n    return;\n  }\n\n  var xhrproto = XMLHttpRequest.prototype;\n\n  fill(xhrproto, 'open', function (originalOpen) {\n    return function ( ...args) {\n            var xhr = this;\n      var url = args[1];\n      var xhrInfo = (xhr.__sentry_xhr__ = {\n                method: isString(args[0]) ? args[0].toUpperCase() : args[0],\n        url: args[1],\n      });\n\n      // if Sentry key appears in URL, don't capture it as a request\n            if (isString(url) && xhrInfo.method === 'POST' && url.match(/sentry_key/)) {\n        xhr.__sentry_own_request__ = true;\n      }\n\n      var onreadystatechangeHandler = function () {\n        if (xhr.readyState === 4) {\n          try {\n            // touching statusCode in some platforms throws\n            // an exception\n            xhrInfo.status_code = xhr.status;\n          } catch (e) {\n            /* do nothing */\n          }\n\n          triggerHandlers('xhr', {\n            args,\n            endTimestamp: Date.now(),\n            startTimestamp: Date.now(),\n            xhr,\n          });\n        }\n      };\n\n      if ('onreadystatechange' in xhr && typeof xhr.onreadystatechange === 'function') {\n        fill(xhr, 'onreadystatechange', function (original) {\n          return function (...readyStateArgs) {\n            onreadystatechangeHandler();\n            return original.apply(xhr, readyStateArgs);\n          };\n        });\n      } else {\n        xhr.addEventListener('readystatechange', onreadystatechangeHandler);\n      }\n\n      return originalOpen.apply(xhr, args);\n    };\n  });\n\n  fill(xhrproto, 'send', function (originalSend) {\n    return function ( ...args) {\n      if (this.__sentry_xhr__ && args[0] !== undefined) {\n        this.__sentry_xhr__.body = args[0];\n      }\n\n      triggerHandlers('xhr', {\n        args,\n        startTimestamp: Date.now(),\n        xhr: this,\n      });\n\n      return originalSend.apply(this, args);\n    };\n  });\n}\n\nlet lastHref;\n\n/** JSDoc */\nfunction instrumentHistory() {\n  if (!supportsHistory()) {\n    return;\n  }\n\n  var oldOnPopState = global.onpopstate;\n  global.onpopstate = function ( ...args) {\n    var to = global.location.href;\n    // keep track of the current URL state, as we always receive only the updated state\n    var from = lastHref;\n    lastHref = to;\n    triggerHandlers('history', {\n      from,\n      to,\n    });\n    if (oldOnPopState) {\n      // Apparently this can throw in Firefox when incorrectly implemented plugin is installed.\n      // https://github.com/getsentry/sentry-javascript/issues/3344\n      // https://github.com/bugsnag/bugsnag-js/issues/469\n      try {\n        return oldOnPopState.apply(this, args);\n      } catch (_oO) {\n        // no-empty\n      }\n    }\n  };\n\n  /** @hidden */\n  function historyReplacementFunction(originalHistoryFunction) {\n    return function ( ...args) {\n      var url = args.length > 2 ? args[2] : undefined;\n      if (url) {\n        // coerce to string (this is what pushState does)\n        var from = lastHref;\n        var to = String(url);\n        // keep track of the current URL state, as we always receive only the updated state\n        lastHref = to;\n        triggerHandlers('history', {\n          from,\n          to,\n        });\n      }\n      return originalHistoryFunction.apply(this, args);\n    };\n  }\n\n  fill(global.history, 'pushState', historyReplacementFunction);\n  fill(global.history, 'replaceState', historyReplacementFunction);\n}\n\nvar debounceDuration = 1000;\nlet debounceTimerID;\nlet lastCapturedEvent;\n\n/**\n * Decide whether the current event should finish the debounce of previously captured one.\n * @param previous previously captured event\n * @param current event to be captured\n */\nfunction shouldShortcircuitPreviousDebounce(previous, current) {\n  // If there was no previous event, it should always be swapped for the new one.\n  if (!previous) {\n    return true;\n  }\n\n  // If both events have different type, then user definitely performed two separate actions. e.g. click + keypress.\n  if (previous.type !== current.type) {\n    return true;\n  }\n\n  try {\n    // If both events have the same type, it's still possible that actions were performed on different targets.\n    // e.g. 2 clicks on different buttons.\n    if (previous.target !== current.target) {\n      return true;\n    }\n  } catch (e) {\n    // just accessing `target` property can throw an exception in some rare circumstances\n    // see: https://github.com/getsentry/sentry-javascript/issues/838\n  }\n\n  // If both events have the same type _and_ same `target` (an element which triggered an event, _not necessarily_\n  // to which an event listener was attached), we treat them as the same action, as we want to capture\n  // only one breadcrumb. e.g. multiple clicks on the same button, or typing inside a user input box.\n  return false;\n}\n\n/**\n * Decide whether an event should be captured.\n * @param event event to be captured\n */\nfunction shouldSkipDOMEvent(event) {\n  // We are only interested in filtering `keypress` events for now.\n  if (event.type !== 'keypress') {\n    return false;\n  }\n\n  try {\n    var target = event.target ;\n\n    if (!target || !target.tagName) {\n      return true;\n    }\n\n    // Only consider keypress events on actual input elements. This will disregard keypresses targeting body\n    // e.g.tabbing through elements, hotkeys, etc.\n    if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n      return false;\n    }\n  } catch (e) {\n    // just accessing `target` property can throw an exception in some rare circumstances\n    // see: https://github.com/getsentry/sentry-javascript/issues/838\n  }\n\n  return true;\n}\n\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n * @param handler function that will be triggered\n * @param globalListener indicates whether event was captured by the global event listener\n * @returns wrapped breadcrumb events handler\n * @hidden\n */\nfunction makeDOMEventHandler(handler, globalListener = false) {\n  return (event) => {\n    // It's possible this handler might trigger multiple times for the same\n    // event (e.g. event propagation through node ancestors).\n    // Ignore if we've already captured that event.\n    if (!event || lastCapturedEvent === event) {\n      return;\n    }\n\n    // We always want to skip _some_ events.\n    if (shouldSkipDOMEvent(event)) {\n      return;\n    }\n\n    var name = event.type === 'keypress' ? 'input' : event.type;\n\n    // If there is no debounce timer, it means that we can safely capture the new event and store it for future comparisons.\n    if (debounceTimerID === undefined) {\n      handler({\n        event: event,\n        name,\n        global: globalListener,\n      });\n      lastCapturedEvent = event;\n    }\n    // If there is a debounce awaiting, see if the new event is different enough to treat it as a unique one.\n    // If that's the case, emit the previous event and store locally the newly-captured DOM event.\n    else if (shouldShortcircuitPreviousDebounce(lastCapturedEvent, event)) {\n      handler({\n        event: event,\n        name,\n        global: globalListener,\n      });\n      lastCapturedEvent = event;\n    }\n\n    // Start a new debounce timer that will prevent us from capturing multiple events that should be grouped together.\n    clearTimeout(debounceTimerID);\n    debounceTimerID = global.setTimeout(() => {\n      debounceTimerID = undefined;\n    }, debounceDuration);\n  };\n}\n\n/** JSDoc */\nfunction instrumentDOM() {\n  if (!('document' in global)) {\n    return;\n  }\n\n  // Make it so that any click or keypress that is unhandled / bubbled up all the way to the document triggers our dom\n  // handlers. (Normally we have only one, which captures a breadcrumb for each click or keypress.) Do this before\n  // we instrument `addEventListener` so that we don't end up attaching this handler twice.\n  var triggerDOMHandler = triggerHandlers.bind(null, 'dom');\n  var globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);\n  global.document.addEventListener('click', globalDOMEventHandler, false);\n  global.document.addEventListener('keypress', globalDOMEventHandler, false);\n\n  // After hooking into click and keypress events bubbled up to `document`, we also hook into user-handled\n  // clicks & keypresses, by adding an event listener of our own to any element to which they add a listener. That\n  // way, whenever one of their handlers is triggered, ours will be, too. (This is needed because their handler\n  // could potentially prevent the event from bubbling up to our global listeners. This way, our handler are still\n  // guaranteed to fire at least once.)\n  ['EventTarget', 'Node'].forEach((target) => {\n        var proto = (global )[target] && (global )[target].prototype;\n        if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n      return;\n    }\n\n    fill(proto, 'addEventListener', function (originalAddEventListener) {\n      return function (\n        \n        type,\n        listener,\n        options,\n      ) {\n        if (type === 'click' || type == 'keypress') {\n          try {\n            var el = this ;\n            var handlers = (el.__sentry_instrumentation_handlers__ = el.__sentry_instrumentation_handlers__ || {});\n            var handlerForType = (handlers[type] = handlers[type] || { refCount: 0 });\n\n            if (!handlerForType.handler) {\n              var handler = makeDOMEventHandler(triggerDOMHandler);\n              handlerForType.handler = handler;\n              originalAddEventListener.call(this, type, handler, options);\n            }\n\n            handlerForType.refCount += 1;\n          } catch (e) {\n            // Accessing dom properties is always fragile.\n            // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n          }\n        }\n\n        return originalAddEventListener.call(this, type, listener, options);\n      };\n    });\n\n    fill(\n      proto,\n      'removeEventListener',\n      function (originalRemoveEventListener) {\n        return function (\n          \n          type,\n          listener,\n          options,\n        ) {\n          if (type === 'click' || type == 'keypress') {\n            try {\n              var el = this ;\n              var handlers = el.__sentry_instrumentation_handlers__ || {};\n              var handlerForType = handlers[type];\n\n              if (handlerForType) {\n                handlerForType.refCount -= 1;\n                // If there are no longer any custom handlers of the current type on this element, we can remove ours, too.\n                if (handlerForType.refCount <= 0) {\n                  originalRemoveEventListener.call(this, type, handlerForType.handler, options);\n                  handlerForType.handler = undefined;\n                  delete handlers[type];                 }\n\n                // If there are no longer any custom handlers of any type on this element, cleanup everything.\n                if (Object.keys(handlers).length === 0) {\n                  delete el.__sentry_instrumentation_handlers__;\n                }\n              }\n            } catch (e) {\n              // Accessing dom properties is always fragile.\n              // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n            }\n          }\n\n          return originalRemoveEventListener.call(this, type, listener, options);\n        };\n      },\n    );\n  });\n}\n\nlet _oldOnErrorHandler = null;\n/** JSDoc */\nfunction instrumentError() {\n  _oldOnErrorHandler = global.onerror;\n\n  global.onerror = function (msg, url, line, column, error) {\n    triggerHandlers('error', {\n      column,\n      error,\n      line,\n      msg,\n      url,\n    });\n\n    if (_oldOnErrorHandler) {\n            return _oldOnErrorHandler.apply(this, arguments);\n    }\n\n    return false;\n  };\n}\n\nlet _oldOnUnhandledRejectionHandler = null;\n/** JSDoc */\nfunction instrumentUnhandledRejection() {\n  _oldOnUnhandledRejectionHandler = global.onunhandledrejection;\n\n  global.onunhandledrejection = function (e) {\n    triggerHandlers('unhandledrejection', e);\n\n    if (_oldOnUnhandledRejectionHandler) {\n            return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n    }\n\n    return true;\n  };\n}\n\nexport { addInstrumentationHandler };\n//# sourceMappingURL=instrument.js.map\n","var objectToString = Object.prototype.toString;\n\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isError(wat) {\n  switch (objectToString.call(wat)) {\n    case '[object Error]':\n    case '[object Exception]':\n    case '[object DOMException]':\n      return true;\n    default:\n      return isInstanceOf(wat, Error);\n  }\n}\n\nfunction isBuiltin(wat, ty) {\n  return objectToString.call(wat) === `[object ${ty}]`;\n}\n\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isErrorEvent(wat) {\n  return isBuiltin(wat, 'ErrorEvent');\n}\n\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isDOMError(wat) {\n  return isBuiltin(wat, 'DOMError');\n}\n\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isDOMException(wat) {\n  return isBuiltin(wat, 'DOMException');\n}\n\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isString(wat) {\n  return isBuiltin(wat, 'String');\n}\n\n/**\n * Checks whether given value is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isPrimitive(wat) {\n  return wat === null || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n\n/**\n * Checks whether given value's type is an object literal\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isPlainObject(wat) {\n  return isBuiltin(wat, 'Object');\n}\n\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isEvent(wat) {\n  return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isElement(wat) {\n  return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isRegExp(wat) {\n  return isBuiltin(wat, 'RegExp');\n}\n\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nfunction isThenable(wat) {\n    return Boolean(wat && wat.then && typeof wat.then === 'function');\n}\n\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isSyntheticEvent(wat) {\n  return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n\n/**\n * Checks whether given value is NaN\n * {@link isNaN}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isNaN(wat) {\n  return typeof wat === 'number' && wat !== wat;\n}\n\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nfunction isInstanceOf(wat, base) {\n  try {\n    return wat instanceof base;\n  } catch (_e) {\n    return false;\n  }\n}\n\nexport { isDOMError, isDOMException, isElement, isError, isErrorEvent, isEvent, isInstanceOf, isNaN, isPlainObject, isPrimitive, isRegExp, isString, isSyntheticEvent, isThenable };\n//# sourceMappingURL=is.js.map\n","import { IS_DEBUG_BUILD } from './flags.js';\nimport { getGlobalObject, getGlobalSingleton } from './global.js';\n\n// TODO: Implement different loggers for different environments\nvar global = getGlobalObject();\n\n/** Prefix for logging strings */\nvar PREFIX = 'Sentry Logger ';\n\nvar CONSOLE_LEVELS = ['debug', 'info', 'warn', 'error', 'log', 'assert'] ;\n\n/**\n * Temporarily disable sentry console instrumentations.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\nfunction consoleSandbox(callback) {\n  var global = getGlobalObject();\n\n  if (!('console' in global)) {\n    return callback();\n  }\n\n  var originalConsole = global.console ;\n  var wrappedLevels = {};\n\n  // Restore all wrapped console methods\n  CONSOLE_LEVELS.forEach(level => {\n    // TODO(v7): Remove this check as it's only needed for Node 6\n    var originalWrappedFunc =\n      originalConsole[level] && (originalConsole[level] ).__sentry_original__;\n    if (level in global.console && originalWrappedFunc) {\n      wrappedLevels[level] = originalConsole[level] ;\n      originalConsole[level] = originalWrappedFunc ;\n    }\n  });\n\n  try {\n    return callback();\n  } finally {\n    // Revert restoration to wrapped state\n    Object.keys(wrappedLevels).forEach(level => {\n      originalConsole[level] = wrappedLevels[level ];\n    });\n  }\n}\n\nfunction makeLogger() {\n  let enabled = false;\n  var logger = {\n    enable: () => {\n      enabled = true;\n    },\n    disable: () => {\n      enabled = false;\n    },\n  };\n\n  if (IS_DEBUG_BUILD) {\n    CONSOLE_LEVELS.forEach(name => {\n            logger[name] = (...args) => {\n        if (enabled) {\n          consoleSandbox(() => {\n            global.console[name](`${PREFIX}[${name}]:`, ...args);\n          });\n        }\n      };\n    });\n  } else {\n    CONSOLE_LEVELS.forEach(name => {\n      logger[name] = () => undefined;\n    });\n  }\n\n  return logger ;\n}\n\n// Ensure we only have a single logger instance, even if multiple versions of @sentry/utils are being used\nlet logger;\nif (IS_DEBUG_BUILD) {\n  logger = getGlobalSingleton('logger', makeLogger);\n} else {\n  logger = makeLogger();\n}\n\nexport { CONSOLE_LEVELS, consoleSandbox, logger };\n//# sourceMappingURL=logger.js.map\n","/**\n * Helper to decycle json objects\n */\nfunction memoBuilder() {\n  var hasWeakSet = typeof WeakSet === 'function';\n  var inner = hasWeakSet ? new WeakSet() : [];\n  function memoize(obj) {\n    if (hasWeakSet) {\n      if (inner.has(obj)) {\n        return true;\n      }\n      inner.add(obj);\n      return false;\n    }\n        for (let i = 0; i < inner.length; i++) {\n      var value = inner[i];\n      if (value === obj) {\n        return true;\n      }\n    }\n    inner.push(obj);\n    return false;\n  }\n\n  function unmemoize(obj) {\n    if (hasWeakSet) {\n      inner.delete(obj);\n    } else {\n      for (let i = 0; i < inner.length; i++) {\n        if (inner[i] === obj) {\n          inner.splice(i, 1);\n          break;\n        }\n      }\n    }\n  }\n  return [memoize, unmemoize];\n}\n\nexport { memoBuilder };\n//# sourceMappingURL=memo.js.map\n","import { getGlobalObject } from './global.js';\nimport { addNonEnumerableProperty } from './object.js';\nimport { snipLine } from './string.js';\n\n/**\n * Extended Window interface that allows for Crypto API usage in IE browsers\n */\n\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nfunction uuid4() {\n  var global = getGlobalObject() ;\n  var crypto = global.crypto || global.msCrypto;\n\n  if (!(crypto === void 0) && crypto.getRandomValues) {\n    // Use window.crypto API if available\n    var arr = new Uint16Array(8);\n    crypto.getRandomValues(arr);\n\n    // set 4 in byte 7\n        arr[3] = (arr[3] & 0xfff) | 0x4000;\n    // set 2 most significant bits of byte 9 to '10'\n        arr[4] = (arr[4] & 0x3fff) | 0x8000;\n\n    var pad = (num) => {\n      let v = num.toString(16);\n      while (v.length < 4) {\n        v = `0${v}`;\n      }\n      return v;\n    };\n\n    return (\n      pad(arr[0]) + pad(arr[1]) + pad(arr[2]) + pad(arr[3]) + pad(arr[4]) + pad(arr[5]) + pad(arr[6]) + pad(arr[7])\n    );\n  }\n  // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n  return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, c => {\n        var r = (Math.random() * 16) | 0;\n        var v = c === 'x' ? r : (r & 0x3) | 0x8;\n    return v.toString(16);\n  });\n}\n\n/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not <a/> href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nfunction parseUrl(url)\n\n {\n  if (!url) {\n    return {};\n  }\n\n  var match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n\n  if (!match) {\n    return {};\n  }\n\n  // coerce to undefined values to empty string so we don't get 'undefined'\n  var query = match[6] || '';\n  var fragment = match[8] || '';\n  return {\n    host: match[4],\n    path: match[5],\n    protocol: match[2],\n    relative: match[5] + query + fragment, // everything minus origin\n  };\n}\n\nfunction getFirstException(event) {\n  return event.exception && event.exception.values ? event.exception.values[0] : undefined;\n}\n\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nfunction getEventDescription(event) {\n  const { message, event_id: eventId } = event;\n  if (message) {\n    return message;\n  }\n\n  var firstException = getFirstException(event);\n  if (firstException) {\n    if (firstException.type && firstException.value) {\n      return `${firstException.type}: ${firstException.value}`;\n    }\n    return firstException.type || firstException.value || eventId || '<unknown>';\n  }\n  return eventId || '<unknown>';\n}\n\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nfunction addExceptionTypeValue(event, value, type) {\n  var exception = (event.exception = event.exception || {});\n  var values = (exception.values = exception.values || []);\n  var firstException = (values[0] = values[0] || {});\n  if (!firstException.value) {\n    firstException.value = value || '';\n  }\n  if (!firstException.type) {\n    firstException.type = type || 'Error';\n  }\n}\n\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\nfunction addExceptionMechanism(event, newMechanism) {\n  var firstException = getFirstException(event);\n  if (!firstException) {\n    return;\n  }\n\n  var defaultMechanism = { type: 'generic', handled: true };\n  var currentMechanism = firstException.mechanism;\n  firstException.mechanism = { ...defaultMechanism, ...currentMechanism, ...newMechanism };\n\n  if (newMechanism && 'data' in newMechanism) {\n    var mergedData = { ...(currentMechanism && currentMechanism.data), ...newMechanism.data };\n    firstException.mechanism.data = mergedData;\n  }\n}\n\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nvar SEMVER_REGEXP =\n  /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n\n/**\n * Represents Semantic Versioning object\n */\n\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nfunction parseSemver(input) {\n  var match = input.match(SEMVER_REGEXP) || [];\n  var major = parseInt(match[1], 10);\n  var minor = parseInt(match[2], 10);\n  var patch = parseInt(match[3], 10);\n  return {\n    buildmetadata: match[5],\n    major: isNaN(major) ? undefined : major,\n    minor: isNaN(minor) ? undefined : minor,\n    patch: isNaN(patch) ? undefined : patch,\n    prerelease: match[4],\n  };\n}\n\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nfunction addContextToFrame(lines, frame, linesOfContext = 5) {\n  var lineno = frame.lineno || 0;\n  var maxLines = lines.length;\n  var sourceLine = Math.max(Math.min(maxLines, lineno - 1), 0);\n\n  frame.pre_context = lines\n    .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n    .map((line) => snipLine(line, 0));\n\n  frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n\n  frame.post_context = lines\n    .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n    .map((line) => snipLine(line, 0));\n}\n\n/**\n * Strip the query string and fragment off of a given URL or path (if present)\n *\n * @param urlPath Full URL or path, including possible query string and/or fragment\n * @returns URL or path without query string or fragment\n */\nfunction stripUrlQueryAndFragment(urlPath) {\n    return urlPath.split(/[\\?#]/, 1)[0];\n}\n\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\nfunction checkOrSetAlreadyCaught(exception) {\n    if (exception && (exception ).__sentry_captured__) {\n    return true;\n  }\n\n  try {\n    // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n    // `ExtraErrorData` integration\n    addNonEnumerableProperty(exception , '__sentry_captured__', true);\n  } catch (err) {\n    // `exception` is a primitive, so we can't mark it seen\n  }\n\n  return false;\n}\n\nexport { addContextToFrame, addExceptionMechanism, addExceptionTypeValue, checkOrSetAlreadyCaught, getEventDescription, parseSemver, parseUrl, stripUrlQueryAndFragment, uuid4 };\n//# sourceMappingURL=misc.js.map\n","import { isBrowserBundle } from './env.js';\n\n/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n */\n\n/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nfunction isNodeEnv() {\n  // explicitly check for browser bundles as those can be optimized statically\n  // by terser/rollup.\n  return (\n    !isBrowserBundle() &&\n    Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]'\n  );\n}\n\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param request The module path to resolve\n */\nfunction dynamicRequire(mod, request) {\n    return mod.require(request);\n}\n\n/**\n * Helper for dynamically loading module that should work with linked dependencies.\n * The problem is that we _should_ be using `require(require.resolve(moduleName, { paths: [cwd()] }))`\n * However it's _not possible_ to do that with Webpack, as it has to know all the dependencies during\n * build time. `require.resolve` is also not available in any other way, so we cannot create,\n * a fake helper like we do with `dynamicRequire`.\n *\n * We always prefer to use local package, thus the value is not returned early from each `try/catch` block.\n * That is to mimic the behavior of `require.resolve` exactly.\n *\n * @param moduleName module name to require\n * @returns possibly required module\n */\nfunction loadModule(moduleName) {\n  let mod;\n\n  try {\n    mod = dynamicRequire(module, moduleName);\n  } catch (e) {\n    // no-empty\n  }\n\n  try {\n    const { cwd } = dynamicRequire(module, 'process');\n    mod = dynamicRequire(module, `${cwd()}/node_modules/${moduleName}`) ;\n  } catch (e) {\n    // no-empty\n  }\n\n  return mod;\n}\n\nexport { dynamicRequire, isNodeEnv, loadModule };\n//# sourceMappingURL=node.js.map\n","/*\n * This module exists for optimizations in the build process through rollup and terser.  We define some global\n * constants, which can be overridden during build. By guarding certain pieces of code with functions that return these\n * constants, we can control whether or not they appear in the final bundle. (Any code guarded by a false condition will\n * never run, and will hence be dropped during treeshaking.) The two primary uses for this are stripping out calls to\n * `logger` and preventing node-related code from appearing in browser bundles.\n *\n * Attention:\n * This file should not be used to define constants/flags that are intended to be used for tree-shaking conducted by\n * users. These fags should live in their respective packages, as we identified user tooling (specifically webpack)\n * having issues tree-shaking these constants across package boundaries.\n * An example for this is the __SENTRY_DEBUG__ constant. It is declared in each package individually because we want\n * users to be able to shake away expressions that it guards.\n */\n\n/**\n * Figures out if we're building a browser bundle.\n *\n * @returns true if this is a browser bundle build.\n */\nfunction isBrowserBundle() {\n  return typeof __SENTRY_BROWSER_BUNDLE__ !== 'undefined' && !!__SENTRY_BROWSER_BUNDLE__;\n}\n\nexport { isBrowserBundle };\n//# sourceMappingURL=env.js.map\n","import { htmlTreeAsString } from './browser.js';\nimport { isError, isEvent, isInstanceOf, isElement, isPlainObject, isPrimitive } from './is.js';\nimport { memoBuilder } from './memo.js';\nimport { truncate } from './string.js';\n\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, <other\n * args>)` or `origMethod.apply(this, [<other args>])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nfunction fill(source, name, replacementFactory) {\n  if (!(name in source)) {\n    return;\n  }\n\n  var original = source[name] ;\n  var wrapped = replacementFactory(original) ;\n\n  // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n  // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n  if (typeof wrapped === 'function') {\n    try {\n      markFunctionWrapped(wrapped, original);\n    } catch (_Oo) {\n      // This can throw if multiple fill happens on a global object like XMLHttpRequest\n      // Fixes https://github.com/getsentry/sentry-javascript/issues/2043\n    }\n  }\n\n  source[name] = wrapped;\n}\n\n/**\n * Defines a non-enumerable property on the given object.\n *\n * @param obj The object on which to set the property\n * @param name The name of the property to be set\n * @param value The value to which to set the property\n */\nfunction addNonEnumerableProperty(obj, name, value) {\n  Object.defineProperty(obj, name, {\n    // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n    value: value,\n    writable: true,\n    configurable: true,\n  });\n}\n\n/**\n * Remembers the original function on the wrapped function and\n * patches up the prototype.\n *\n * @param wrapped the wrapper function\n * @param original the original function that gets wrapped\n */\nfunction markFunctionWrapped(wrapped, original) {\n  var proto = original.prototype || {};\n  wrapped.prototype = original.prototype = proto;\n  addNonEnumerableProperty(wrapped, '__sentry_original__', original);\n}\n\n/**\n * This extracts the original function if available.  See\n * `markFunctionWrapped` for more information.\n *\n * @param func the function to unwrap\n * @returns the unwrapped version of the function if available.\n */\nfunction getOriginalFunction(func) {\n  return func.__sentry_original__;\n}\n\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nfunction urlEncode(object) {\n  return Object.keys(object)\n    .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(object[key])}`)\n    .join('&');\n}\n\n/**\n * Transforms any `Error` or `Event` into a plain object with all of their enumerable properties, and some of their\n * non-enumerable properties attached.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n * @returns An Event or Error turned into an object - or the value argurment itself, when value is neither an Event nor\n *  an Error.\n */\nfunction convertToPlainObject(\n  value,\n)\n\n {\n  if (isError(value)) {\n    return {\n      message: value.message,\n      name: value.name,\n      stack: value.stack,\n      ...getOwnProperties(value),\n    };\n  } else if (isEvent(value)) {\n    var newObj\n\n = {\n      type: value.type,\n      target: serializeEventTarget(value.target),\n      currentTarget: serializeEventTarget(value.currentTarget),\n      ...getOwnProperties(value),\n    };\n\n    if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n      newObj.detail = value.detail;\n    }\n\n    return newObj;\n  } else {\n    return value;\n  }\n}\n\n/** Creates a string representation of the target of an `Event` object */\nfunction serializeEventTarget(target) {\n  try {\n    return isElement(target) ? htmlTreeAsString(target) : Object.prototype.toString.call(target);\n  } catch (_oO) {\n    return '<unknown>';\n  }\n}\n\n/** Filters out all but an object's own properties */\nfunction getOwnProperties(obj) {\n  if (typeof obj === 'object' && obj !== null) {\n    var extractedProps = {};\n    for (var property in obj) {\n      if (Object.prototype.hasOwnProperty.call(obj, property)) {\n        extractedProps[property] = (obj )[property];\n      }\n    }\n    return extractedProps;\n  } else {\n    return {};\n  }\n}\n\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\nfunction extractExceptionKeysForMessage(exception, maxLength = 40) {\n  var keys = Object.keys(convertToPlainObject(exception));\n  keys.sort();\n\n  if (!keys.length) {\n    return '[object has no keys]';\n  }\n\n  if (keys[0].length >= maxLength) {\n    return truncate(keys[0], maxLength);\n  }\n\n  for (let includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n    var serialized = keys.slice(0, includedKeys).join(', ');\n    if (serialized.length > maxLength) {\n      continue;\n    }\n    if (includedKeys === keys.length) {\n      return serialized;\n    }\n    return truncate(serialized, maxLength);\n  }\n\n  return '';\n}\n\n/**\n * Given any object, return the new object with removed keys that value was `undefined`.\n * Works recursively on objects and arrays.\n *\n * Attention: This function keeps circular references in the returned object.\n */\nfunction dropUndefinedKeys(val) {\n  // This function just proxies `_dropUndefinedKeys` to keep the `memoBuilder` out of this function's API\n  return _dropUndefinedKeys(val, memoBuilder());\n}\n\nfunction _dropUndefinedKeys(val, memo) {\n  const [memoize] = memo; // we don't need unmemoize because we don't need to visit nodes twice\n\n  if (isPlainObject(val)) {\n    if (memoize(val)) {\n      return val;\n    }\n    var rv = {};\n    for (var key of Object.keys(val)) {\n      if (typeof val[key] !== 'undefined') {\n        rv[key] = _dropUndefinedKeys(val[key], memo);\n      }\n    }\n    return rv ;\n  }\n\n  if (Array.isArray(val)) {\n    if (memoize(val)) {\n      return val;\n    }\n    return (val ).map(item => {\n      return _dropUndefinedKeys(item, memo);\n    }) ;\n  }\n\n  return val;\n}\n\n/**\n * Ensure that something is an object.\n *\n * Turns `undefined` and `null` into `String`s and all other primitives into instances of their respective wrapper\n * classes (String, Boolean, Number, etc.). Acts as the identity function on non-primitives.\n *\n * @param wat The subject of the objectification\n * @returns A version of `wat` which can safely be used with `Object` class methods\n */\nfunction objectify(wat) {\n  let objectified;\n  switch (true) {\n    case wat === undefined || wat === null:\n      objectified = new String(wat);\n      break;\n\n    // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n    // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n    // an object in order to wrap it.\n    case typeof wat === 'symbol' || typeof wat === 'bigint':\n      objectified = Object(wat);\n      break;\n\n    // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n    case isPrimitive(wat):\n            objectified = new (wat ).constructor(wat);\n      break;\n\n    // by process of elimination, at this point we know that `wat` must already be an object\n    default:\n      objectified = wat;\n      break;\n  }\n  return objectified;\n}\n\nexport { addNonEnumerableProperty, convertToPlainObject, dropUndefinedKeys, extractExceptionKeysForMessage, fill, getOriginalFunction, markFunctionWrapped, objectify, urlEncode };\n//# sourceMappingURL=object.js.map\n","var STACKTRACE_LIMIT = 50;\n\n/**\n * Creates a stack parser with the supplied line parsers\n *\n * StackFrames are returned in the correct order for Sentry Exception\n * frames and with Sentry SDK internal frames removed from the top and bottom\n *\n */\nfunction createStackParser(...parsers) {\n  var sortedParsers = parsers.sort((a, b) => a[0] - b[0]).map(p => p[1]);\n\n  return (stack, skipFirst = 0) => {\n    var frames = [];\n\n    for (var line of stack.split('\\n').slice(skipFirst)) {\n      for (var parser of sortedParsers) {\n        var frame = parser(line);\n\n        if (frame) {\n          frames.push(frame);\n          break;\n        }\n      }\n    }\n\n    return stripSentryFramesAndReverse(frames);\n  };\n}\n\n/**\n * Gets a stack parser implementation from Options.stackParser\n * @see Options\n *\n * If options contains an array of line parsers, it is converted into a parser\n */\nfunction stackParserFromStackParserOptions(stackParser) {\n  if (Array.isArray(stackParser)) {\n    return createStackParser(...stackParser);\n  }\n  return stackParser;\n}\n\n/**\n * @hidden\n */\nfunction stripSentryFramesAndReverse(stack) {\n  if (!stack.length) {\n    return [];\n  }\n\n  let localStack = stack;\n\n  var firstFrameFunction = localStack[0].function || '';\n  var lastFrameFunction = localStack[localStack.length - 1].function || '';\n\n  // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n  if (firstFrameFunction.indexOf('captureMessage') !== -1 || firstFrameFunction.indexOf('captureException') !== -1) {\n    localStack = localStack.slice(1);\n  }\n\n  // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n  if (lastFrameFunction.indexOf('sentryWrapped') !== -1) {\n    localStack = localStack.slice(0, -1);\n  }\n\n  // The frame where the crash happened, should be the last entry in the array\n  return localStack\n    .slice(0, STACKTRACE_LIMIT)\n    .map(frame => ({\n      ...frame,\n      filename: frame.filename || localStack[0].filename,\n      function: frame.function || '?',\n    }))\n    .reverse();\n}\n\nvar defaultFunctionName = '<anonymous>';\n\n/**\n * Safely extract function name from itself\n */\nfunction getFunctionName(fn) {\n  try {\n    if (!fn || typeof fn !== 'function') {\n      return defaultFunctionName;\n    }\n    return fn.name || defaultFunctionName;\n  } catch (e) {\n    // Just accessing custom props in some Selenium environments\n    // can cause a \"Permission denied\" exception (see raven-js#495).\n    return defaultFunctionName;\n  }\n}\n\nexport { createStackParser, getFunctionName, stackParserFromStackParserOptions, stripSentryFramesAndReverse };\n//# sourceMappingURL=stacktrace.js.map\n","import { isString, isRegExp } from './is.js';\n\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nfunction truncate(str, max = 0) {\n  if (typeof str !== 'string' || max === 0) {\n    return str;\n  }\n  return str.length <= max ? str : `${str.substr(0, max)}...`;\n}\n\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nfunction snipLine(line, colno) {\n  let newLine = line;\n  var lineLength = newLine.length;\n  if (lineLength <= 150) {\n    return newLine;\n  }\n  if (colno > lineLength) {\n        colno = lineLength;\n  }\n\n  let start = Math.max(colno - 60, 0);\n  if (start < 5) {\n    start = 0;\n  }\n\n  let end = Math.min(start + 140, lineLength);\n  if (end > lineLength - 5) {\n    end = lineLength;\n  }\n  if (end === lineLength) {\n    start = Math.max(end - 140, 0);\n  }\n\n  newLine = newLine.slice(start, end);\n  if (start > 0) {\n    newLine = `'{snip} ${newLine}`;\n  }\n  if (end < lineLength) {\n    newLine += ' {snip}';\n  }\n\n  return newLine;\n}\n\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\nfunction safeJoin(input, delimiter) {\n  if (!Array.isArray(input)) {\n    return '';\n  }\n\n  var output = [];\n    for (let i = 0; i < input.length; i++) {\n    var value = input[i];\n    try {\n      output.push(String(value));\n    } catch (e) {\n      output.push('[value cannot be serialized]');\n    }\n  }\n\n  return output.join(delimiter);\n}\n\n/**\n * Checks if the value matches a regex or includes the string\n * @param value The string value to be checked against\n * @param pattern Either a regex or a string that must be contained in value\n */\nfunction isMatchingPattern(value, pattern) {\n  if (!isString(value)) {\n    return false;\n  }\n\n  if (isRegExp(pattern)) {\n    return pattern.test(value);\n  }\n  if (typeof pattern === 'string') {\n    return value.indexOf(pattern) !== -1;\n  }\n  return false;\n}\n\n/**\n * Given a string, escape characters which have meaning in the regex grammar, such that the result is safe to feed to\n * `new RegExp()`.\n *\n * Based on https://github.com/sindresorhus/escape-string-regexp. Vendored to a) reduce the size by skipping the runtime\n * type-checking, and b) ensure it gets down-compiled for old versions of Node (the published package only supports Node\n * 12+).\n *\n * @param regexString The string to escape\n * @returns An version of the string with all special regex characters escaped\n */\nfunction escapeStringForRegex(regexString) {\n  // escape the hyphen separately so we can also replace it with a unicode literal hyphen, to avoid the problems\n  // discussed in https://github.com/sindresorhus/escape-string-regexp/issues/20.\n  return regexString.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&').replace(/-/g, '\\\\x2d');\n}\n\nexport { escapeStringForRegex, isMatchingPattern, safeJoin, snipLine, truncate };\n//# sourceMappingURL=string.js.map\n","import { IS_DEBUG_BUILD } from './flags.js';\nimport { getGlobalObject } from './global.js';\nimport { logger } from './logger.js';\n\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsErrorEvent() {\n  try {\n    new ErrorEvent('');\n    return true;\n  } catch (e) {\n    return false;\n  }\n}\n\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsDOMError() {\n  try {\n    // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n    // 1 argument required, but only 0 present.\n    // @ts-ignore It really needs 1 argument, not 0.\n    new DOMError('');\n    return true;\n  } catch (e) {\n    return false;\n  }\n}\n\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsDOMException() {\n  try {\n    new DOMException('');\n    return true;\n  } catch (e) {\n    return false;\n  }\n}\n\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsFetch() {\n  if (!('fetch' in getGlobalObject())) {\n    return false;\n  }\n\n  try {\n    new Headers();\n    new Request('');\n    new Response();\n    return true;\n  } catch (e) {\n    return false;\n  }\n}\n/**\n * isNativeFetch checks if the given function is a native implementation of fetch()\n */\nfunction isNativeFetch(func) {\n  return func && /^function fetch\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\n\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns true if `window.fetch` is natively implemented, false otherwise\n */\nfunction supportsNativeFetch() {\n  if (!supportsFetch()) {\n    return false;\n  }\n\n  var global = getGlobalObject();\n\n  // Fast path to avoid DOM I/O\n    if (isNativeFetch(global.fetch)) {\n    return true;\n  }\n\n  // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)\n  // so create a \"pure\" iframe to see if that has native fetch\n  let result = false;\n  var doc = global.document;\n    if (doc && typeof (doc.createElement ) === 'function') {\n    try {\n      var sandbox = doc.createElement('iframe');\n      sandbox.hidden = true;\n      doc.head.appendChild(sandbox);\n      if (sandbox.contentWindow && sandbox.contentWindow.fetch) {\n                result = isNativeFetch(sandbox.contentWindow.fetch);\n      }\n      doc.head.removeChild(sandbox);\n    } catch (err) {\n      IS_DEBUG_BUILD &&\n        logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n    }\n  }\n\n  return result;\n}\n\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsReportingObserver() {\n  return 'ReportingObserver' in getGlobalObject();\n}\n\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsReferrerPolicy() {\n  // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default'\n  // (see https://caniuse.com/#feat=referrer-policy),\n  // it doesn't. And it throws an exception instead of ignoring this parameter...\n  // REF: https://github.com/getsentry/raven-js/issues/1233\n\n  if (!supportsFetch()) {\n    return false;\n  }\n\n  try {\n    new Request('_', {\n      referrerPolicy: 'origin' ,\n    });\n    return true;\n  } catch (e) {\n    return false;\n  }\n}\n\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsHistory() {\n  // NOTE: in Chrome App environment, touching history.pushState, *even inside\n  //       a try/catch block*, will cause Chrome to output an error to console.error\n  // borrowed from: https://github.com/angular/angular.js/pull/13945/files\n  var global = getGlobalObject();\n      var chrome = (global ).chrome;\n  var isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n    var hasHistoryApi = 'history' in global && !!global.history.pushState && !!global.history.replaceState;\n\n  return !isChromePackagedApp && hasHistoryApi;\n}\n\nexport { isNativeFetch, supportsDOMError, supportsDOMException, supportsErrorEvent, supportsFetch, supportsHistory, supportsNativeFetch, supportsReferrerPolicy, supportsReportingObserver };\n//# sourceMappingURL=supports.js.map\n","import { isThenable } from './is.js';\n\n/** SyncPromise internal states */\nvar States; (function (States) {\n  /** Pending */\n  var PENDING = 0; States[States[\"PENDING\"] = PENDING] = \"PENDING\";\n  /** Resolved / OK */\n  var RESOLVED = 1; States[States[\"RESOLVED\"] = RESOLVED] = \"RESOLVED\";\n  /** Rejected / Error */\n  var REJECTED = 2; States[States[\"REJECTED\"] = REJECTED] = \"REJECTED\";\n})(States || (States = {}));\n\n// Overloads so we can call resolvedSyncPromise without arguments and generic argument\n\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\nfunction resolvedSyncPromise(value) {\n  return new SyncPromise(resolve => {\n    resolve(value);\n  });\n}\n\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\nfunction rejectedSyncPromise(reason) {\n  return new SyncPromise((_, reject) => {\n    reject(reason);\n  });\n}\n\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nclass SyncPromise {\n   __init() {this._state = States.PENDING;}\n   __init2() {this._handlers = [];}\n  \n\n   constructor(\n    executor,\n  ) {;SyncPromise.prototype.__init.call(this);SyncPromise.prototype.__init2.call(this);SyncPromise.prototype.__init3.call(this);SyncPromise.prototype.__init4.call(this);SyncPromise.prototype.__init5.call(this);SyncPromise.prototype.__init6.call(this);\n    try {\n      executor(this._resolve, this._reject);\n    } catch (e) {\n      this._reject(e);\n    }\n  }\n\n  /** JSDoc */\n   then(\n    onfulfilled,\n    onrejected,\n  ) {\n    return new SyncPromise((resolve, reject) => {\n      this._handlers.push([\n        false,\n        result => {\n          if (!onfulfilled) {\n            // TODO: ¯\\_(ツ)_/¯\n            // TODO: FIXME\n            resolve(result );\n          } else {\n            try {\n              resolve(onfulfilled(result));\n            } catch (e) {\n              reject(e);\n            }\n          }\n        },\n        reason => {\n          if (!onrejected) {\n            reject(reason);\n          } else {\n            try {\n              resolve(onrejected(reason));\n            } catch (e) {\n              reject(e);\n            }\n          }\n        },\n      ]);\n      this._executeHandlers();\n    });\n  }\n\n  /** JSDoc */\n   catch(\n    onrejected,\n  ) {\n    return this.then(val => val, onrejected);\n  }\n\n  /** JSDoc */\n   finally(onfinally) {\n    return new SyncPromise((resolve, reject) => {\n      let val;\n      let isRejected;\n\n      return this.then(\n        value => {\n          isRejected = false;\n          val = value;\n          if (onfinally) {\n            onfinally();\n          }\n        },\n        reason => {\n          isRejected = true;\n          val = reason;\n          if (onfinally) {\n            onfinally();\n          }\n        },\n      ).then(() => {\n        if (isRejected) {\n          reject(val);\n          return;\n        }\n\n        resolve(val );\n      });\n    });\n  }\n\n  /** JSDoc */\n    __init3() {this._resolve = (value) => {\n    this._setResult(States.RESOLVED, value);\n  };}\n\n  /** JSDoc */\n    __init4() {this._reject = (reason) => {\n    this._setResult(States.REJECTED, reason);\n  };}\n\n  /** JSDoc */\n    __init5() {this._setResult = (state, value) => {\n    if (this._state !== States.PENDING) {\n      return;\n    }\n\n    if (isThenable(value)) {\n      void (value ).then(this._resolve, this._reject);\n      return;\n    }\n\n    this._state = state;\n    this._value = value;\n\n    this._executeHandlers();\n  };}\n\n  /** JSDoc */\n    __init6() {this._executeHandlers = () => {\n    if (this._state === States.PENDING) {\n      return;\n    }\n\n    var cachedHandlers = this._handlers.slice();\n    this._handlers = [];\n\n    cachedHandlers.forEach(handler => {\n      if (handler[0]) {\n        return;\n      }\n\n      if (this._state === States.RESOLVED) {\n                handler[1](this._value );\n      }\n\n      if (this._state === States.REJECTED) {\n        handler[2](this._value);\n      }\n\n      handler[0] = true;\n    });\n  };}\n}\n\nexport { SyncPromise, rejectedSyncPromise, resolvedSyncPromise };\n//# sourceMappingURL=syncpromise.js.map\n","import { getGlobalObject } from './global.js';\nimport { dynamicRequire, isNodeEnv } from './node.js';\n\n/**\n * An object that can return the current timestamp in seconds since the UNIX epoch.\n */\n\n/**\n * A TimestampSource implementation for environments that do not support the Performance Web API natively.\n *\n * Note that this TimestampSource does not use a monotonic clock. A call to `nowSeconds` may return a timestamp earlier\n * than a previously returned value. We do not try to emulate a monotonic behavior in order to facilitate debugging. It\n * is more obvious to explain \"why does my span have negative duration\" than \"why my spans have zero duration\".\n */\nvar dateTimestampSource = {\n  nowSeconds: () => Date.now() / 1000,\n};\n\n/**\n * A partial definition of the [Performance Web API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Performance}\n * for accessing a high-resolution monotonic clock.\n */\n\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction getBrowserPerformance() {\n  const { performance } = getGlobalObject();\n  if (!performance || !performance.now) {\n    return undefined;\n  }\n\n  // Replace performance.timeOrigin with our own timeOrigin based on Date.now().\n  //\n  // This is a partial workaround for browsers reporting performance.timeOrigin such that performance.timeOrigin +\n  // performance.now() gives a date arbitrarily in the past.\n  //\n  // Additionally, computing timeOrigin in this way fills the gap for browsers where performance.timeOrigin is\n  // undefined.\n  //\n  // The assumption that performance.timeOrigin + performance.now() ~= Date.now() is flawed, but we depend on it to\n  // interact with data coming out of performance entries.\n  //\n  // Note that despite recommendations against it in the spec, browsers implement the Performance API with a clock that\n  // might stop when the computer is asleep (and perhaps under other circumstances). Such behavior causes\n  // performance.timeOrigin + performance.now() to have an arbitrary skew over Date.now(). In laptop computers, we have\n  // observed skews that can be as long as days, weeks or months.\n  //\n  // See https://github.com/getsentry/sentry-javascript/issues/2590.\n  //\n  // BUG: despite our best intentions, this workaround has its limitations. It mostly addresses timings of pageload\n  // transactions, but ignores the skew built up over time that can aversely affect timestamps of navigation\n  // transactions of long-lived web pages.\n  var timeOrigin = Date.now() - performance.now();\n\n  return {\n    now: () => performance.now(),\n    timeOrigin,\n  };\n}\n\n/**\n * Returns the native Performance API implementation from Node.js. Returns undefined in old Node.js versions that don't\n * implement the API.\n */\nfunction getNodePerformance() {\n  try {\n    var perfHooks = dynamicRequire(module, 'perf_hooks') ;\n    return perfHooks.performance;\n  } catch (_) {\n    return undefined;\n  }\n}\n\n/**\n * The Performance API implementation for the current platform, if available.\n */\nvar platformPerformance = isNodeEnv() ? getNodePerformance() : getBrowserPerformance();\n\nvar timestampSource =\n  platformPerformance === undefined\n    ? dateTimestampSource\n    : {\n        nowSeconds: () => (platformPerformance.timeOrigin + platformPerformance.now()) / 1000,\n      };\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n */\nvar dateTimestampInSeconds = dateTimestampSource.nowSeconds.bind(dateTimestampSource);\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * See `usingPerformanceAPI` to test whether the Performance API is used.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nvar timestampInSeconds = timestampSource.nowSeconds.bind(timestampSource);\n\n// Re-exported with an old name for backwards-compatibility.\nvar timestampWithMs = timestampInSeconds;\n\n/**\n * A boolean that is true when timestampInSeconds uses the Performance API to produce monotonic timestamps.\n */\nvar usingPerformanceAPI = platformPerformance !== undefined;\n\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n */\nlet _browserPerformanceTimeOriginMode;\n\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nvar browserPerformanceTimeOrigin = (() => {\n  // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n  // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n  // data as reliable if they are within a reasonable threshold of the current time.\n\n  const { performance } = getGlobalObject();\n  if (!performance || !performance.now) {\n    _browserPerformanceTimeOriginMode = 'none';\n    return undefined;\n  }\n\n  var threshold = 3600 * 1000;\n  var performanceNow = performance.now();\n  var dateNow = Date.now();\n\n  // if timeOrigin isn't available set delta to threshold so it isn't used\n  var timeOriginDelta = performance.timeOrigin\n    ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n    : threshold;\n  var timeOriginIsReliable = timeOriginDelta < threshold;\n\n  // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n  // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n  // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n  // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n  // Date API.\n    var navigationStart = performance.timing && performance.timing.navigationStart;\n  var hasNavigationStart = typeof navigationStart === 'number';\n  // if navigationStart isn't available set delta to threshold so it isn't used\n  var navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n  var navigationStartIsReliable = navigationStartDelta < threshold;\n\n  if (timeOriginIsReliable || navigationStartIsReliable) {\n    // Use the more reliable time origin\n    if (timeOriginDelta <= navigationStartDelta) {\n      _browserPerformanceTimeOriginMode = 'timeOrigin';\n      return performance.timeOrigin;\n    } else {\n      _browserPerformanceTimeOriginMode = 'navigationStart';\n      return navigationStart;\n    }\n  }\n\n  // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n  _browserPerformanceTimeOriginMode = 'dateNow';\n  return dateNow;\n})();\n\nexport { _browserPerformanceTimeOriginMode, browserPerformanceTimeOrigin, dateTimestampInSeconds, timestampInSeconds, timestampWithMs, usingPerformanceAPI };\n//# sourceMappingURL=time.js.map\n","var _global = (typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}); _global.SENTRY_RELEASE={id:\"yl8Ii1bMK_71KiIhhV6pB\"};\n      _global.SENTRY_RELEASES=_global.SENTRY_RELEASES || {};\n      _global.SENTRY_RELEASES[\"nextjs@biocodify\"]={id:\"yl8Ii1bMK_71KiIhhV6pB\"};\n      ","import * as React from 'react';\nimport { useMemo } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.js';\nimport { useConstant } from '../../utils/use-constant.js';\n\nvar presenceId = 0;\nfunction getPresenceId() {\n    var id = presenceId;\n    presenceId++;\n    return id;\n}\nvar PresenceChild = function (_a) {\n    var children = _a.children, initial = _a.initial, isPresent = _a.isPresent, onExitComplete = _a.onExitComplete, custom = _a.custom, presenceAffectsLayout = _a.presenceAffectsLayout;\n    var presenceChildren = useConstant(newChildrenMap);\n    var id = useConstant(getPresenceId);\n    var context = useMemo(function () { return ({\n        id: id,\n        initial: initial,\n        isPresent: isPresent,\n        custom: custom,\n        onExitComplete: function (childId) {\n            presenceChildren.set(childId, true);\n            var allComplete = true;\n            presenceChildren.forEach(function (isComplete) {\n                if (!isComplete)\n                    allComplete = false;\n            });\n            allComplete && (onExitComplete === null || onExitComplete === void 0 ? void 0 : onExitComplete());\n        },\n        register: function (childId) {\n            presenceChildren.set(childId, false);\n            return function () { return presenceChildren.delete(childId); };\n        },\n    }); }, \n    /**\n     * If the presence of a child affects the layout of the components around it,\n     * we want to make a new context value to ensure they get re-rendered\n     * so they can detect that layout change.\n     */\n    presenceAffectsLayout ? undefined : [isPresent]);\n    useMemo(function () {\n        presenceChildren.forEach(function (_, key) { return presenceChildren.set(key, false); });\n    }, [isPresent]);\n    /**\n     * If there's no `motion` components to fire exit animations, we want to remove this\n     * component immediately.\n     */\n    React.useEffect(function () {\n        !isPresent && !presenceChildren.size && (onExitComplete === null || onExitComplete === void 0 ? void 0 : onExitComplete());\n    }, [isPresent]);\n    return (React.createElement(PresenceContext.Provider, { value: context }, children));\n};\nfunction newChildrenMap() {\n    return new Map();\n}\n\nexport { PresenceChild };\n","import { __spreadArray, __read } from 'tslib';\nimport * as React from 'react';\nimport { useContext, useRef, cloneElement, Children, isValidElement } from 'react';\nimport { useForceUpdate } from '../../utils/use-force-update.js';\nimport { PresenceChild } from './PresenceChild.js';\nimport { SharedLayoutContext, isSharedLayout } from '../../context/SharedLayoutContext.js';\n\nfunction getChildKey(child) {\n    return child.key || \"\";\n}\nfunction updateChildLookup(children, allChildren) {\n    var seenChildren = process.env.NODE_ENV !== \"production\" ? new Set() : null;\n    children.forEach(function (child) {\n        var key = getChildKey(child);\n        if (process.env.NODE_ENV !== \"production\" && seenChildren) {\n            if (seenChildren.has(key)) {\n                console.warn(\"Children of AnimatePresence require unique keys. \\\"\" + key + \"\\\" is a duplicate.\");\n            }\n            seenChildren.add(key);\n        }\n        allChildren.set(key, child);\n    });\n}\nfunction onlyElements(children) {\n    var filtered = [];\n    // We use forEach here instead of map as map mutates the component key by preprending `.$`\n    Children.forEach(children, function (child) {\n        if (isValidElement(child))\n            filtered.push(child);\n    });\n    return filtered;\n}\n/**\n * `AnimatePresence` enables the animation of components that have been removed from the tree.\n *\n * When adding/removing more than a single child, every child **must** be given a unique `key` prop.\n *\n * @library\n *\n * Any `Frame` components that have an `exit` property defined will animate out when removed from\n * the tree.\n *\n * ```jsx\n * import { Frame, AnimatePresence } from 'framer'\n *\n * // As items are added and removed from `items`\n * export function Items({ items }) {\n *   return (\n *     <AnimatePresence>\n *       {items.map(item => (\n *         <Frame\n *           key={item.id}\n *           initial={{ opacity: 0 }}\n *           animate={{ opacity: 1 }}\n *           exit={{ opacity: 0 }}\n *         />\n *       ))}\n *     </AnimatePresence>\n *   )\n * }\n * ```\n *\n * You can sequence exit animations throughout a tree using variants.\n *\n * @motion\n *\n * Any `motion` components that have an `exit` property defined will animate out when removed from\n * the tree.\n *\n * ```jsx\n * import { motion, AnimatePresence } from 'framer-motion'\n *\n * export const Items = ({ items }) => (\n *   <AnimatePresence>\n *     {items.map(item => (\n *       <motion.div\n *         key={item.id}\n *         initial={{ opacity: 0 }}\n *         animate={{ opacity: 1 }}\n *         exit={{ opacity: 0 }}\n *       />\n *     ))}\n *   </AnimatePresence>\n * )\n * ```\n *\n * You can sequence exit animations throughout a tree using variants.\n *\n * If a child contains multiple `motion` components with `exit` props, it will only unmount the child\n * once all `motion` components have finished animating out. Likewise, any components using\n * `usePresence` all need to call `safeToRemove`.\n *\n * @public\n */\nvar AnimatePresence = function (_a) {\n    var children = _a.children, custom = _a.custom, _b = _a.initial, initial = _b === void 0 ? true : _b, onExitComplete = _a.onExitComplete, exitBeforeEnter = _a.exitBeforeEnter, _c = _a.presenceAffectsLayout, presenceAffectsLayout = _c === void 0 ? true : _c;\n    // We want to force a re-render once all exiting animations have finished. We\n    // either use a local forceRender function, or one from a parent context if it exists.\n    var forceRender = useForceUpdate();\n    var layoutContext = useContext(SharedLayoutContext);\n    if (isSharedLayout(layoutContext)) {\n        forceRender = layoutContext.forceUpdate;\n    }\n    var isInitialRender = useRef(true);\n    // Filter out any children that aren't ReactElements. We can only track ReactElements with a props.key\n    var filteredChildren = onlyElements(children);\n    // Keep a living record of the children we're actually rendering so we\n    // can diff to figure out which are entering and exiting\n    var presentChildren = useRef(filteredChildren);\n    // A lookup table to quickly reference components by key\n    var allChildren = useRef(new Map())\n        .current;\n    // A living record of all currently exiting components.\n    var exiting = useRef(new Set()).current;\n    updateChildLookup(filteredChildren, allChildren);\n    // If this is the initial component render, just deal with logic surrounding whether\n    // we play onMount animations or not.\n    if (isInitialRender.current) {\n        isInitialRender.current = false;\n        return (React.createElement(React.Fragment, null, filteredChildren.map(function (child) { return (React.createElement(PresenceChild, { key: getChildKey(child), isPresent: true, initial: initial ? undefined : false, presenceAffectsLayout: presenceAffectsLayout }, child)); })));\n    }\n    // If this is a subsequent render, deal with entering and exiting children\n    var childrenToRender = __spreadArray([], __read(filteredChildren));\n    // Diff the keys of the currently-present and target children to update our\n    // exiting list.\n    var presentKeys = presentChildren.current.map(getChildKey);\n    var targetKeys = filteredChildren.map(getChildKey);\n    // Diff the present children with our target children and mark those that are exiting\n    var numPresent = presentKeys.length;\n    for (var i = 0; i < numPresent; i++) {\n        var key = presentKeys[i];\n        if (targetKeys.indexOf(key) === -1) {\n            exiting.add(key);\n        }\n        else {\n            // In case this key has re-entered, remove from the exiting list\n            exiting.delete(key);\n        }\n    }\n    // If we currently have exiting children, and we're deferring rendering incoming children\n    // until after all current children have exiting, empty the childrenToRender array\n    if (exitBeforeEnter && exiting.size) {\n        childrenToRender = [];\n    }\n    // Loop through all currently exiting components and clone them to overwrite `animate`\n    // with any `exit` prop they might have defined.\n    exiting.forEach(function (key) {\n        // If this component is actually entering again, early return\n        if (targetKeys.indexOf(key) !== -1)\n            return;\n        var child = allChildren.get(key);\n        if (!child)\n            return;\n        var insertionIndex = presentKeys.indexOf(key);\n        var onExit = function () {\n            allChildren.delete(key);\n            exiting.delete(key);\n            // Remove this child from the present children\n            var removeIndex = presentChildren.current.findIndex(function (presentChild) { return presentChild.key === key; });\n            presentChildren.current.splice(removeIndex, 1);\n            // Defer re-rendering until all exiting children have indeed left\n            if (!exiting.size) {\n                presentChildren.current = filteredChildren;\n                forceRender();\n                onExitComplete && onExitComplete();\n            }\n        };\n        childrenToRender.splice(insertionIndex, 0, React.createElement(PresenceChild, { key: getChildKey(child), isPresent: false, onExitComplete: onExit, custom: custom, presenceAffectsLayout: presenceAffectsLayout }, child));\n    });\n    // Add `MotionContext` even to children that don't need it to ensure we're rendering\n    // the same tree between renders\n    childrenToRender = childrenToRender.map(function (child) {\n        var key = child.key;\n        return exiting.has(key) ? (child) : (React.createElement(PresenceChild, { key: getChildKey(child), isPresent: true, presenceAffectsLayout: presenceAffectsLayout }, child));\n    });\n    presentChildren.current = childrenToRender;\n    if (process.env.NODE_ENV !== \"production\" &&\n        exitBeforeEnter &&\n        childrenToRender.length > 1) {\n        console.warn(\"You're attempting to animate multiple children within AnimatePresence, but its exitBeforeEnter prop is set to true. This will lead to odd visual behaviour.\");\n    }\n    return (React.createElement(React.Fragment, null, exiting.size\n        ? childrenToRender\n        : childrenToRender.map(function (child) { return cloneElement(child); })));\n};\n\nexport { AnimatePresence };\n","import { __read } from 'tslib';\nimport { useCallback, useRef, useState } from 'react';\nimport { useUnmountEffect } from './use-unmount-effect.js';\n\nfunction useForceUpdate() {\n    var unloadingRef = useRef(false);\n    var _a = __read(useState(0), 2), forcedRenderCount = _a[0], setForcedRenderCount = _a[1];\n    useUnmountEffect(function () { return (unloadingRef.current = true); });\n    return useCallback(function () {\n        !unloadingRef.current && setForcedRenderCount(forcedRenderCount + 1);\n    }, [forcedRenderCount]);\n}\n\nexport { useForceUpdate };\n","import { useContext, useEffect } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.js';\nimport { useConstant } from '../../utils/use-constant.js';\n\n/**\n * When a component is the child of `AnimatePresence`, it can use `usePresence`\n * to access information about whether it's still present in the React tree.\n *\n * ```jsx\n * import { usePresence } from \"framer-motion\"\n *\n * export const Component = () => {\n *   const [isPresent, safeToRemove] = usePresence()\n *\n *   useEffect(() => {\n *     !isPresent && setTimeout(safeToRemove, 1000)\n *   }, [isPresent])\n *\n *   return <div />\n * }\n * ```\n *\n * If `isPresent` is `false`, it means that a component has been removed the tree, but\n * `AnimatePresence` won't really remove it until `safeToRemove` has been called.\n *\n * @public\n */\nfunction usePresence() {\n    var context = useContext(PresenceContext);\n    if (context === null)\n        return [true, null];\n    var isPresent = context.isPresent, onExitComplete = context.onExitComplete, register = context.register;\n    // It's safe to call the following hooks conditionally (after an early return) because the context will always\n    // either be null or non-null for the lifespan of the component.\n    // Replace with useOpaqueId when released in React\n    var id = useUniqueId();\n    useEffect(function () { return register(id); }, []);\n    var safeToRemove = function () { return onExitComplete === null || onExitComplete === void 0 ? void 0 : onExitComplete(id); };\n    return !isPresent && onExitComplete ? [false, safeToRemove] : [true];\n}\n/**\n * Similar to `usePresence`, except `useIsPresent` simply returns whether or not the component is present.\n * There is no `safeToRemove` function.\n *\n * ```jsx\n * import { useIsPresent } from \"framer-motion\"\n *\n * export const Component = () => {\n *   const isPresent = useIsPresent()\n *\n *   useEffect(() => {\n *     !isPresent && console.log(\"I've been removed!\")\n *   }, [isPresent])\n *\n *   return <div />\n * }\n * ```\n *\n * @public\n */\nfunction useIsPresent() {\n    return isPresent(useContext(PresenceContext));\n}\nfunction isPresent(context) {\n    return context === null ? true : context.isPresent;\n}\nvar counter = 0;\nvar incrementId = function () { return counter++; };\nvar useUniqueId = function () { return useConstant(incrementId); };\n\nexport { isPresent, useIsPresent, usePresence };\n","/**\n * @public\n */\nvar Presence;\n(function (Presence) {\n    Presence[Presence[\"Entering\"] = 0] = \"Entering\";\n    Presence[Presence[\"Present\"] = 1] = \"Present\";\n    Presence[Presence[\"Exiting\"] = 2] = \"Exiting\";\n})(Presence || (Presence = {}));\n/**\n * @public\n */\nvar VisibilityAction;\n(function (VisibilityAction) {\n    VisibilityAction[VisibilityAction[\"Hide\"] = 0] = \"Hide\";\n    VisibilityAction[VisibilityAction[\"Show\"] = 1] = \"Show\";\n})(VisibilityAction || (VisibilityAction = {}));\n\nexport { Presence, VisibilityAction };\n","import { createContext } from 'react';\n\n/**\n * @public\n */\nvar PresenceContext = createContext(null);\n\nexport { PresenceContext };\n","import { __spreadArray, __read } from 'tslib';\nimport sync, { flushSync } from 'framesync';\nimport { collectProjectingAncestors, updateLayoutMeasurement } from '../../../render/dom/projection/utils.js';\nimport { batchLayout, flushLayout } from '../../../render/dom/utils/batch-layout.js';\nimport { compareByDepth } from '../../../render/utils/compare-by-depth.js';\nimport { Presence } from '../types.js';\n\n/**\n * Default handlers for batching VisualElements\n */\nvar defaultHandler = {\n    layoutReady: function (child) { return child.notifyLayoutReady(); },\n};\n/**\n * Create a batcher to process VisualElements\n */\nfunction createBatcher() {\n    var queue = new Set();\n    return {\n        add: function (child) { return queue.add(child); },\n        flush: function (_a) {\n            var _b = _a === void 0 ? defaultHandler : _a, layoutReady = _b.layoutReady, parent = _b.parent;\n            batchLayout(function (read, write) {\n                var order = Array.from(queue).sort(compareByDepth);\n                var ancestors = parent\n                    ? collectProjectingAncestors(parent)\n                    : [];\n                write(function () {\n                    var allElements = __spreadArray(__spreadArray([], __read(ancestors)), __read(order));\n                    allElements.forEach(function (element) { return element.resetTransform(); });\n                });\n                read(function () {\n                    order.forEach(updateLayoutMeasurement);\n                });\n                write(function () {\n                    ancestors.forEach(function (element) { return element.restoreTransform(); });\n                    order.forEach(layoutReady);\n                });\n                read(function () {\n                    /**\n                     * After all children have started animating, ensure any Entering components are set to Present.\n                     * If we add deferred animations (set up all animations and then start them in two loops) this\n                     * could be moved to the start loop. But it needs to happen after all the animations configs\n                     * are generated in AnimateSharedLayout as this relies on presence data\n                     */\n                    order.forEach(function (child) {\n                        if (child.isPresent)\n                            child.presence = Presence.Present;\n                    });\n                });\n                write(function () {\n                    /**\n                     * Starting these animations will have queued jobs on the frame loop. In some situations,\n                     * like when removing an element, these will be processed too late after the DOM is manipulated,\n                     * leaving a flash of incorrectly-projected content. By manually flushing these jobs\n                     * we ensure there's no flash.\n                     */\n                    flushSync.preRender();\n                    flushSync.render();\n                });\n                read(function () {\n                    /**\n                     * Schedule a callback at the end of the following frame to assign the latest projection\n                     * box to the prevViewportBox snapshot. Once global batching is in place this could be run\n                     * synchronously. But for now it ensures that if any nested `AnimateSharedLayout` top-level\n                     * child attempts to calculate its previous relative position against a prevViewportBox\n                     * it will be against its latest projection box instead, as the snapshot is useless beyond this\n                     * render.\n                     */\n                    sync.postRender(function () {\n                        return order.forEach(assignProjectionToSnapshot);\n                    });\n                    queue.clear();\n                });\n            });\n            // TODO: Need to find a layout-synchronous way of flushing this\n            flushLayout();\n        },\n    };\n}\nfunction assignProjectionToSnapshot(child) {\n    child.prevViewportBox = child.projection.target;\n}\n\nexport { createBatcher };\n","import { createContext } from 'react';\nimport { createBatcher } from '../components/AnimateSharedLayout/utils/batcher.js';\n\nvar SharedLayoutContext = createContext(createBatcher());\n/**\n * @internal\n */\nvar FramerTreeLayoutContext = createContext(createBatcher());\nfunction isSharedLayout(context) {\n    return !!context.forceUpdate;\n}\n\nexport { FramerTreeLayoutContext, SharedLayoutContext, isSharedLayout };\n","var createDefinition = function (propNames) { return ({\n    isEnabled: function (props) { return propNames.some(function (name) { return !!props[name]; }); },\n}); };\nvar featureDefinitions = {\n    measureLayout: createDefinition([\n        \"layout\",\n        \"layoutId\",\n        \"drag\",\n        \"_layoutResetTransform\",\n    ]),\n    animation: createDefinition([\n        \"animate\",\n        \"exit\",\n        \"variants\",\n        \"whileHover\",\n        \"whileTap\",\n        \"whileFocus\",\n        \"whileDrag\",\n    ]),\n    exit: createDefinition([\"exit\"]),\n    drag: createDefinition([\"drag\", \"dragControls\"]),\n    focus: createDefinition([\"whileFocus\"]),\n    hover: createDefinition([\"whileHover\", \"onHoverStart\", \"onHoverEnd\"]),\n    tap: createDefinition([\"whileTap\", \"onTap\", \"onTapStart\", \"onTapCancel\"]),\n    pan: createDefinition([\n        \"onPan\",\n        \"onPanStart\",\n        \"onPanSessionStart\",\n        \"onPanEnd\",\n    ]),\n    layoutAnimation: createDefinition([\"layout\", \"layoutId\"]),\n};\nfunction loadFeatures(features) {\n    for (var key in features) {\n        var Component = features[key];\n        if (Component !== null)\n            featureDefinitions[key].Component = Component;\n    }\n}\n\nexport { featureDefinitions, loadFeatures };\n","import { createContext } from 'react';\n\nvar LazyContext = createContext({ strict: false });\n\nexport { LazyContext };\n","import { __assign } from 'tslib';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { featureDefinitions } from './definitions.js';\nimport { invariant } from 'hey-listen';\nimport { LazyContext } from '../../context/LazyContext.js';\n\nvar featureNames = Object.keys(featureDefinitions);\nvar numFeatures = featureNames.length;\n/**\n * Load features via renderless components based on the provided MotionProps.\n */\nfunction useFeatures(props, visualElement, preloadedFeatures) {\n    var features = [];\n    var lazyContext = useContext(LazyContext);\n    if (!visualElement)\n        return null;\n    /**\n     * If we're in development mode, check to make sure we're not rendering a motion component\n     * as a child of LazyMotion, as this will break the file-size benefits of using it.\n     */\n    if (process.env.NODE_ENV !== \"production\" &&\n        preloadedFeatures &&\n        lazyContext.strict) {\n        invariant(false, \"You have rendered a `motion` component within a `LazyMotion` component. This will break tree shaking. Import and render a `m` component instead.\");\n    }\n    for (var i = 0; i < numFeatures; i++) {\n        var name_1 = featureNames[i];\n        var _a = featureDefinitions[name_1], isEnabled = _a.isEnabled, Component = _a.Component;\n        /**\n         * It might be possible in the future to use this moment to\n         * dynamically request functionality. In initial tests this\n         * was producing a lot of duplication amongst bundles.\n         */\n        if (isEnabled(props) && Component) {\n            features.push(React.createElement(Component, __assign({ key: name_1 }, props, { visualElement: visualElement })));\n        }\n    }\n    return features;\n}\n\nexport { useFeatures };\n","import { createContext } from 'react';\n\n/**\n * @public\n */\nvar MotionConfigContext = createContext({\n    transformPagePoint: function (p) { return p; },\n    isStatic: false,\n});\n\nexport { MotionConfigContext };\n","import { useContext, createContext } from 'react';\n\nvar MotionContext = createContext({});\nfunction useVisualElementContext() {\n    return useContext(MotionContext).visualElement;\n}\n\nexport { MotionContext, useVisualElementContext };\n","import { createContext } from 'react';\n\n/**\n * @internal\n */\nvar LayoutGroupContext = createContext(null);\n\nexport { LayoutGroupContext };\n","var isBrowser = typeof window !== \"undefined\";\n\nexport { isBrowser };\n","import { useLayoutEffect, useEffect } from 'react';\nimport { isBrowser } from './is-browser.js';\n\nvar useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;\n\nexport { useIsomorphicLayoutEffect };\n","import { __assign } from 'tslib';\nimport { useContext, useRef, useEffect } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.js';\nimport { isPresent } from '../../components/AnimatePresence/use-presence.js';\nimport { LayoutGroupContext } from '../../context/LayoutGroupContext.js';\nimport { useVisualElementContext } from '../../context/MotionContext/index.js';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.js';\nimport { MotionConfigContext } from '../../context/MotionConfigContext.js';\nimport { LazyContext } from '../../context/LazyContext.js';\n\nfunction useLayoutId(_a) {\n    var layoutId = _a.layoutId;\n    var layoutGroupId = useContext(LayoutGroupContext);\n    return layoutGroupId && layoutId !== undefined\n        ? layoutGroupId + \"-\" + layoutId\n        : layoutId;\n}\nfunction useVisualElement(Component, visualState, props, createVisualElement) {\n    var config = useContext(MotionConfigContext);\n    var lazyContext = useContext(LazyContext);\n    var parent = useVisualElementContext();\n    var presenceContext = useContext(PresenceContext);\n    var layoutId = useLayoutId(props);\n    var visualElementRef = useRef(undefined);\n    /**\n     * If we haven't preloaded a renderer, check to see if we have one lazy-loaded\n     */\n    if (!createVisualElement)\n        createVisualElement = lazyContext.renderer;\n    if (!visualElementRef.current && createVisualElement) {\n        visualElementRef.current = createVisualElement(Component, {\n            visualState: visualState,\n            parent: parent,\n            props: __assign(__assign({}, props), { layoutId: layoutId }),\n            presenceId: presenceContext === null || presenceContext === void 0 ? void 0 : presenceContext.id,\n            blockInitialAnimation: (presenceContext === null || presenceContext === void 0 ? void 0 : presenceContext.initial) === false,\n        });\n    }\n    var visualElement = visualElementRef.current;\n    useIsomorphicLayoutEffect(function () {\n        if (!visualElement)\n            return;\n        visualElement.setProps(__assign(__assign(__assign({}, config), props), { layoutId: layoutId }));\n        visualElement.isPresent = isPresent(presenceContext);\n        visualElement.isPresenceRoot =\n            !parent || parent.presenceId !== (presenceContext === null || presenceContext === void 0 ? void 0 : presenceContext.id);\n        /**\n         * Fire a render to ensure the latest state is reflected on-screen.\n         */\n        visualElement.syncRender();\n    });\n    useEffect(function () {\n        var _a;\n        if (!visualElement)\n            return;\n        /**\n         * In a future refactor we can replace the features-as-components and\n         * have this loop through them all firing \"effect\" listeners\n         */\n        (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.animateChanges();\n    });\n    useIsomorphicLayoutEffect(function () { return function () { return visualElement === null || visualElement === void 0 ? void 0 : visualElement.notifyUnmount(); }; }, []);\n    return visualElement;\n}\n\nexport { useVisualElement };\n","function isRefObject(ref) {\n    return (typeof ref === \"object\" &&\n        Object.prototype.hasOwnProperty.call(ref, \"current\"));\n}\n\nexport { isRefObject };\n","/**\n * Decides if the supplied variable is an array of variant labels\n */\nfunction isVariantLabels(v) {\n    return Array.isArray(v);\n}\n/**\n * Decides if the supplied variable is variant label\n */\nfunction isVariantLabel(v) {\n    return typeof v === \"string\" || isVariantLabels(v);\n}\n/**\n * Creates an object containing the latest state of every MotionValue on a VisualElement\n */\nfunction getCurrent(visualElement) {\n    var current = {};\n    visualElement.forEachValue(function (value, key) { return (current[key] = value.get()); });\n    return current;\n}\n/**\n * Creates an object containing the latest velocity of every MotionValue on a VisualElement\n */\nfunction getVelocity(visualElement) {\n    var velocity = {};\n    visualElement.forEachValue(function (value, key) { return (velocity[key] = value.getVelocity()); });\n    return velocity;\n}\nfunction resolveVariantFromProps(props, definition, custom, currentValues, currentVelocity) {\n    var _a;\n    if (currentValues === void 0) { currentValues = {}; }\n    if (currentVelocity === void 0) { currentVelocity = {}; }\n    if (typeof definition === \"string\") {\n        definition = (_a = props.variants) === null || _a === void 0 ? void 0 : _a[definition];\n    }\n    return typeof definition === \"function\"\n        ? definition(custom !== null && custom !== void 0 ? custom : props.custom, currentValues, currentVelocity)\n        : definition;\n}\nfunction resolveVariant(visualElement, definition, custom) {\n    var props = visualElement.getProps();\n    return resolveVariantFromProps(props, definition, custom !== null && custom !== void 0 ? custom : props.custom, getCurrent(visualElement), getVelocity(visualElement));\n}\nfunction checkIfControllingVariants(props) {\n    var _a;\n    return (typeof ((_a = props.animate) === null || _a === void 0 ? void 0 : _a.start) === \"function\" ||\n        isVariantLabel(props.initial) ||\n        isVariantLabel(props.animate) ||\n        isVariantLabel(props.whileHover) ||\n        isVariantLabel(props.whileDrag) ||\n        isVariantLabel(props.whileTap) ||\n        isVariantLabel(props.whileFocus) ||\n        isVariantLabel(props.exit));\n}\nfunction checkIfVariantNode(props) {\n    return Boolean(checkIfControllingVariants(props) || props.variants);\n}\n\nexport { checkIfControllingVariants, checkIfVariantNode, isVariantLabel, isVariantLabels, resolveVariant, resolveVariantFromProps };\n","import { useMemo, useContext } from 'react';\nimport { MotionContext } from './index.js';\nimport { getCurrentTreeVariants } from './utils.js';\n\nfunction useCreateMotionContext(props, isStatic) {\n    var _a = getCurrentTreeVariants(props, useContext(MotionContext)), initial = _a.initial, animate = _a.animate;\n    return useMemo(function () { return ({ initial: initial, animate: animate }); }, \n    /**\n     * Only break memoisation in static mode\n     */\n    isStatic\n        ? [\n            variantLabelsAsDependency(initial),\n            variantLabelsAsDependency(animate),\n        ]\n        : []);\n}\nfunction variantLabelsAsDependency(prop) {\n    return Array.isArray(prop) ? prop.join(\" \") : prop;\n}\n\nexport { useCreateMotionContext };\n","import { checkIfControllingVariants, isVariantLabel } from '../../render/utils/variants.js';\n\nfunction getCurrentTreeVariants(props, context) {\n    if (checkIfControllingVariants(props)) {\n        var initial = props.initial, animate = props.animate;\n        return {\n            initial: initial === false || isVariantLabel(initial)\n                ? initial\n                : undefined,\n            animate: isVariantLabel(animate) ? animate : undefined,\n        };\n    }\n    return props.inherit !== false ? context : {};\n}\n\nexport { getCurrentTreeVariants };\n","import * as React from 'react';\nimport { forwardRef, useContext } from 'react';\nimport { useFeatures } from './features/use-features.js';\nimport { MotionConfigContext } from '../context/MotionConfigContext.js';\nimport { MotionContext } from '../context/MotionContext/index.js';\nimport { useVisualElement } from './utils/use-visual-element.js';\nimport { useMotionRef } from './utils/use-motion-ref.js';\nimport { useCreateMotionContext } from '../context/MotionContext/create.js';\nimport { loadFeatures } from './features/definitions.js';\nimport { isBrowser } from '../utils/is-browser.js';\n\n/**\n * Create a `motion` component.\n *\n * This function accepts a Component argument, which can be either a string (ie \"div\"\n * for `motion.div`), or an actual React component.\n *\n * Alongside this is a config option which provides a way of rendering the provided\n * component \"offline\", or outside the React render cycle.\n *\n * @internal\n */\nfunction createMotionComponent(_a) {\n    var preloadedFeatures = _a.preloadedFeatures, createVisualElement = _a.createVisualElement, useRender = _a.useRender, useVisualState = _a.useVisualState, Component = _a.Component;\n    preloadedFeatures && loadFeatures(preloadedFeatures);\n    function MotionComponent(props, externalRef) {\n        /**\n         * If we're rendering in a static environment, we only visually update the component\n         * as a result of a React-rerender rather than interactions or animations. This\n         * means we don't need to load additional memory structures like VisualElement,\n         * or any gesture/animation features.\n         */\n        var isStatic = useContext(MotionConfigContext).isStatic;\n        var features = null;\n        /**\n         * Create the tree context. This is memoized and will only trigger renders\n         * when the current tree variant changes in static mode.\n         */\n        var context = useCreateMotionContext(props, isStatic);\n        /**\n         *\n         */\n        var visualState = useVisualState(props, isStatic);\n        if (!isStatic && isBrowser) {\n            /**\n             * Create a VisualElement for this component. A VisualElement provides a common\n             * interface to renderer-specific APIs (ie DOM/Three.js etc) as well as\n             * providing a way of rendering to these APIs outside of the React render loop\n             * for more performant animations and interactions\n             */\n            context.visualElement = useVisualElement(Component, visualState, props, createVisualElement);\n            /**\n             * Load Motion gesture and animation features. These are rendered as renderless\n             * components so each feature can optionally make use of React lifecycle methods.\n             *\n             * TODO: The intention is to move these away from a React-centric to a\n             * VisualElement-centric lifecycle scheme.\n             */\n            features = useFeatures(props, context.visualElement, preloadedFeatures);\n        }\n        /**\n         * The mount order and hierarchy is specific to ensure our element ref\n         * is hydrated by the time features fire their effects.\n         */\n        return (React.createElement(React.Fragment, null,\n            React.createElement(MotionContext.Provider, { value: context }, useRender(Component, props, useMotionRef(visualState, context.visualElement, externalRef), visualState, isStatic)),\n            features));\n    }\n    return forwardRef(MotionComponent);\n}\n\nexport { createMotionComponent };\n","import { useCallback } from 'react';\nimport { isRefObject } from '../../utils/is-ref-object.js';\n\n/**\n * Creates a ref function that, when called, hydrates the provided\n * external ref and VisualElement.\n */\nfunction useMotionRef(visualState, visualElement, externalRef) {\n    return useCallback(function (instance) {\n        var _a;\n        instance && ((_a = visualState.mount) === null || _a === void 0 ? void 0 : _a.call(visualState, instance));\n        if (visualElement) {\n            instance\n                ? visualElement.mount(instance)\n                : visualElement.unmount();\n        }\n        if (externalRef) {\n            if (typeof externalRef === \"function\") {\n                externalRef(instance);\n            }\n            else if (isRefObject(externalRef)) {\n                externalRef.current = instance;\n            }\n        }\n    }, \n    /**\n     * Only pass a new ref callback to React if we've received a visual element\n     * factory. Otherwise we'll be mounting/remounting every time externalRef\n     * or other dependencies change.\n     */\n    [visualElement]);\n}\n\nexport { useMotionRef };\n","import { createMotionComponent } from '../../motion/index.js';\n\n/**\n * Convert any React component into a `motion` component. The provided component\n * **must** use `React.forwardRef` to the underlying DOM component you want to animate.\n *\n * ```jsx\n * const Component = React.forwardRef((props, ref) => {\n *   return <div ref={ref} />\n * })\n *\n * const MotionComponent = motion(Component)\n * ```\n *\n * @public\n */\nfunction createMotionProxy(createConfig) {\n    function custom(Component, customMotionComponentConfig) {\n        if (customMotionComponentConfig === void 0) { customMotionComponentConfig = {}; }\n        return createMotionComponent(createConfig(Component, customMotionComponentConfig));\n    }\n    /**\n     * A cache of generated `motion` components, e.g `motion.div`, `motion.input` etc.\n     * Rather than generating them anew every render.\n     */\n    var componentCache = new Map();\n    return new Proxy(custom, {\n        /**\n         * Called when `motion` is referenced with a prop: `motion.div`, `motion.input` etc.\n         * The prop name is passed through as `key` and we can use that to generate a `motion`\n         * DOM component with that name.\n         */\n        get: function (_target, key) {\n            /**\n             * If this element doesn't exist in the component cache, create it and cache.\n             */\n            if (!componentCache.has(key)) {\n                componentCache.set(key, custom(key));\n            }\n            return componentCache.get(key);\n        },\n    });\n}\n\nexport { createMotionProxy };\n","/**\n * We keep these listed seperately as we use the lowercase tag names as part\n * of the runtime bundle to detect SVG components\n */\nvar lowercaseSVGElements = [\n    \"animate\",\n    \"circle\",\n    \"defs\",\n    \"desc\",\n    \"ellipse\",\n    \"g\",\n    \"image\",\n    \"line\",\n    \"filter\",\n    \"marker\",\n    \"mask\",\n    \"metadata\",\n    \"path\",\n    \"pattern\",\n    \"polygon\",\n    \"polyline\",\n    \"rect\",\n    \"stop\",\n    \"svg\",\n    \"switch\",\n    \"symbol\",\n    \"text\",\n    \"tspan\",\n    \"use\",\n    \"view\",\n];\n\nexport { lowercaseSVGElements };\n","import { lowercaseSVGElements } from '../../svg/lowercase-elements.js';\n\nfunction isSVGComponent(Component) {\n    if (\n    /**\n     * If it's not a string, it's a custom React component. Currently we only support\n     * HTML custom React components.\n     */\n    typeof Component !== \"string\" ||\n        /**\n         * If it contains a dash, the element is a custom HTML webcomponent.\n         */\n        Component.includes(\"-\")) {\n        return false;\n    }\n    else if (\n    /**\n     * If it's in our list of lowercase SVG tags, it's an SVG component\n     */\n    lowercaseSVGElements.indexOf(Component) > -1 ||\n        /**\n         * If it contains a capital letter, it's an SVG component\n         */\n        /[A-Z]/.test(Component)) {\n        return true;\n    }\n    return false;\n}\n\nexport { isSVGComponent };\n","var valueScaleCorrection = {};\n/**\n * @internal\n */\nfunction addScaleCorrection(correctors) {\n    for (var key in correctors) {\n        valueScaleCorrection[key] = correctors[key];\n    }\n}\n\nexport { addScaleCorrection, valueScaleCorrection };\n","/**\n * A list of all transformable axes. We'll use this list to generated a version\n * of each axes for each transform.\n */\nvar transformAxes = [\"\", \"X\", \"Y\", \"Z\"];\n/**\n * An ordered array of each transformable value. By default, transform values\n * will be sorted to this order.\n */\nvar order = [\"translate\", \"scale\", \"rotate\", \"skew\"];\n/**\n * Generate a list of every possible transform key.\n */\nvar transformProps = [\"transformPerspective\", \"x\", \"y\", \"z\"];\norder.forEach(function (operationKey) {\n    return transformAxes.forEach(function (axesKey) {\n        return transformProps.push(operationKey + axesKey);\n    });\n});\n/**\n * A function to use with Array.sort to sort transform keys by their default order.\n */\nfunction sortTransformProps(a, b) {\n    return transformProps.indexOf(a) - transformProps.indexOf(b);\n}\n/**\n * A quick lookup for transform props.\n */\nvar transformPropSet = new Set(transformProps);\nfunction isTransformProp(key) {\n    return transformPropSet.has(key);\n}\n/**\n * A quick lookup for transform origin props\n */\nvar transformOriginProps = new Set([\"originX\", \"originY\", \"originZ\"]);\nfunction isTransformOriginProp(key) {\n    return transformOriginProps.has(key);\n}\n\nexport { isTransformOriginProp, isTransformProp, sortTransformProps, transformAxes, transformProps };\n","import { valueScaleCorrection } from '../../render/dom/projection/scale-correction.js';\nimport { isTransformProp, isTransformOriginProp } from '../../render/html/utils/transform.js';\n\nfunction isForcedMotionValue(key, _a) {\n    var layout = _a.layout, layoutId = _a.layoutId;\n    return (isTransformProp(key) ||\n        isTransformOriginProp(key) ||\n        ((layout || layoutId !== undefined) &&\n            (!!valueScaleCorrection[key] || key === \"opacity\")));\n}\n\nexport { isForcedMotionValue };\n","var isMotionValue = function (value) {\n    return value !== null && typeof value === \"object\" && value.getVelocity;\n};\n\nexport { isMotionValue };\n","import { sortTransformProps } from './transform.js';\n\nvar translateAlias = {\n    x: \"translateX\",\n    y: \"translateY\",\n    z: \"translateZ\",\n    transformPerspective: \"perspective\",\n};\n/**\n * Build a CSS transform style from individual x/y/scale etc properties.\n *\n * This outputs with a default order of transforms/scales/rotations, this can be customised by\n * providing a transformTemplate function.\n */\nfunction buildTransform(_a, _b, transformIsDefault, transformTemplate) {\n    var transform = _a.transform, transformKeys = _a.transformKeys;\n    var _c = _b.enableHardwareAcceleration, enableHardwareAcceleration = _c === void 0 ? true : _c, _d = _b.allowTransformNone, allowTransformNone = _d === void 0 ? true : _d;\n    // The transform string we're going to build into.\n    var transformString = \"\";\n    // Transform keys into their default order - this will determine the output order.\n    transformKeys.sort(sortTransformProps);\n    // Track whether the defined transform has a defined z so we don't add a\n    // second to enable hardware acceleration\n    var transformHasZ = false;\n    // Loop over each transform and build them into transformString\n    var numTransformKeys = transformKeys.length;\n    for (var i = 0; i < numTransformKeys; i++) {\n        var key = transformKeys[i];\n        transformString += (translateAlias[key] || key) + \"(\" + transform[key] + \") \";\n        if (key === \"z\")\n            transformHasZ = true;\n    }\n    if (!transformHasZ && enableHardwareAcceleration) {\n        transformString += \"translateZ(0)\";\n    }\n    else {\n        transformString = transformString.trim();\n    }\n    // If we have a custom `transform` template, pass our transform values and\n    // generated transformString to that before returning\n    if (transformTemplate) {\n        transformString = transformTemplate(transform, transformIsDefault ? \"\" : transformString);\n    }\n    else if (allowTransformNone && transformIsDefault) {\n        transformString = \"none\";\n    }\n    return transformString;\n}\n/**\n * Build a transformOrigin style. Uses the same defaults as the browser for\n * undefined origins.\n */\nfunction buildTransformOrigin(_a) {\n    var _b = _a.originX, originX = _b === void 0 ? \"50%\" : _b, _c = _a.originY, originY = _c === void 0 ? \"50%\" : _c, _d = _a.originZ, originZ = _d === void 0 ? 0 : _d;\n    return originX + \" \" + originY + \" \" + originZ;\n}\n\nexport { buildTransform, buildTransformOrigin };\n","/**\n * Returns true if the provided key is a CSS variable\n */\nfunction isCSSVariable(key) {\n    return key.startsWith(\"--\");\n}\n\nexport { isCSSVariable };\n","/**\n * Provided a value and a ValueType, returns the value as that value type.\n */\nvar getValueAsType = function (value, type) {\n    return type && typeof value === \"number\"\n        ? type.transform(value)\n        : value;\n};\n\nexport { getValueAsType };\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n    if (typeof b !== \"function\" && b !== null)\r\n        throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n        if (ar || !(i in from)) {\r\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n            ar[i] = from[i];\r\n        }\r\n    }\r\n    return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","var clamp = function (min, max) { return function (v) {\n    return Math.max(Math.min(v, max), min);\n}; };\nvar sanitize = function (v) { return (v % 1 ? Number(v.toFixed(5)) : v); };\nvar floatRegex = /(-)?([\\d]*\\.?[\\d])+/g;\nvar colorRegex = /(#[0-9a-f]{6}|#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\\((-?[\\d\\.]+%?[,\\s]+){2,3}\\s*\\/*\\s*[\\d\\.]+%?\\))/gi;\nvar singleColorRegex = /^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\\((-?[\\d\\.]+%?[,\\s]+){2,3}\\s*\\/*\\s*[\\d\\.]+%?\\))$/i;\nfunction isString(v) {\n    return typeof v === 'string';\n}\n\nexport { clamp, colorRegex, floatRegex, isString, sanitize, singleColorRegex };\n","import { __assign } from 'tslib';\nimport { isString } from '../utils.js';\n\nvar createUnitType = function (unit) { return ({\n    test: function (v) {\n        return isString(v) && v.endsWith(unit) && v.split(' ').length === 1;\n    },\n    parse: parseFloat,\n    transform: function (v) { return \"\" + v + unit; },\n}); };\nvar degrees = createUnitType('deg');\nvar percent = createUnitType('%');\nvar px = createUnitType('px');\nvar vh = createUnitType('vh');\nvar vw = createUnitType('vw');\nvar progressPercentage = __assign(__assign({}, percent), { parse: function (v) { return percent.parse(v) / 100; }, transform: function (v) { return percent.transform(v * 100); } });\n\nexport { degrees, percent, progressPercentage, px, vh, vw };\n","import { __assign } from 'tslib';\nimport { clamp } from '../utils.js';\n\nvar number = {\n    test: function (v) { return typeof v === 'number'; },\n    parse: parseFloat,\n    transform: function (v) { return v; },\n};\nvar alpha = __assign(__assign({}, number), { transform: clamp(0, 1) });\nvar scale = __assign(__assign({}, number), { default: 1 });\n\nexport { alpha, number, scale };\n","import { __assign } from 'tslib';\nimport { number } from 'style-value-types';\n\nvar int = __assign(__assign({}, number), { transform: Math.round });\n\nexport { int };\n","import { px, degrees, scale, alpha, progressPercentage } from 'style-value-types';\nimport { int } from './type-int.js';\n\nvar numberValueTypes = {\n    // Border props\n    borderWidth: px,\n    borderTopWidth: px,\n    borderRightWidth: px,\n    borderBottomWidth: px,\n    borderLeftWidth: px,\n    borderRadius: px,\n    radius: px,\n    borderTopLeftRadius: px,\n    borderTopRightRadius: px,\n    borderBottomRightRadius: px,\n    borderBottomLeftRadius: px,\n    // Positioning props\n    width: px,\n    maxWidth: px,\n    height: px,\n    maxHeight: px,\n    size: px,\n    top: px,\n    right: px,\n    bottom: px,\n    left: px,\n    // Spacing props\n    padding: px,\n    paddingTop: px,\n    paddingRight: px,\n    paddingBottom: px,\n    paddingLeft: px,\n    margin: px,\n    marginTop: px,\n    marginRight: px,\n    marginBottom: px,\n    marginLeft: px,\n    // Transform props\n    rotate: degrees,\n    rotateX: degrees,\n    rotateY: degrees,\n    rotateZ: degrees,\n    scale: scale,\n    scaleX: scale,\n    scaleY: scale,\n    scaleZ: scale,\n    skew: degrees,\n    skewX: degrees,\n    skewY: degrees,\n    distance: px,\n    translateX: px,\n    translateY: px,\n    translateZ: px,\n    x: px,\n    y: px,\n    z: px,\n    perspective: px,\n    transformPerspective: px,\n    opacity: alpha,\n    originX: progressPercentage,\n    originY: progressPercentage,\n    originZ: px,\n    // Misc\n    zIndex: int,\n    // SVG\n    fillOpacity: alpha,\n    strokeOpacity: alpha,\n    numOctaves: int,\n};\n\nexport { numberValueTypes };\n","import { valueScaleCorrection } from '../../dom/projection/scale-correction.js';\nimport { buildTransform, buildTransformOrigin } from './build-transform.js';\nimport { isCSSVariable } from '../../dom/utils/is-css-variable.js';\nimport { isTransformProp, isTransformOriginProp } from './transform.js';\nimport { getValueAsType } from '../../dom/value-types/get-as-type.js';\nimport { numberValueTypes } from '../../dom/value-types/number.js';\n\nfunction buildHTMLStyles(state, latestValues, projection, layoutState, options, transformTemplate, buildProjectionTransform, buildProjectionTransformOrigin) {\n    var _a;\n    var style = state.style, vars = state.vars, transform = state.transform, transformKeys = state.transformKeys, transformOrigin = state.transformOrigin;\n    // Empty the transformKeys array. As we're throwing out refs to its items\n    // this might not be as cheap as suspected. Maybe using the array as a buffer\n    // with a manual incrementation would be better.\n    transformKeys.length = 0;\n    // Track whether we encounter any transform or transformOrigin values.\n    var hasTransform = false;\n    var hasTransformOrigin = false;\n    // Does the calculated transform essentially equal \"none\"?\n    var transformIsNone = true;\n    /**\n     * Loop over all our latest animated values and decide whether to handle them\n     * as a style or CSS variable.\n     *\n     * Transforms and transform origins are kept seperately for further processing.\n     */\n    for (var key in latestValues) {\n        var value = latestValues[key];\n        /**\n         * If this is a CSS variable we don't do any further processing.\n         */\n        if (isCSSVariable(key)) {\n            vars[key] = value;\n            continue;\n        }\n        // Convert the value to its default value type, ie 0 -> \"0px\"\n        var valueType = numberValueTypes[key];\n        var valueAsType = getValueAsType(value, valueType);\n        if (isTransformProp(key)) {\n            // If this is a transform, flag to enable further transform processing\n            hasTransform = true;\n            transform[key] = valueAsType;\n            transformKeys.push(key);\n            // If we already know we have a non-default transform, early return\n            if (!transformIsNone)\n                continue;\n            // Otherwise check to see if this is a default transform\n            if (value !== ((_a = valueType.default) !== null && _a !== void 0 ? _a : 0))\n                transformIsNone = false;\n        }\n        else if (isTransformOriginProp(key)) {\n            transformOrigin[key] = valueAsType;\n            // If this is a transform origin, flag and enable further transform-origin processing\n            hasTransformOrigin = true;\n        }\n        else {\n            /**\n             * If layout projection is on, and we need to perform scale correction for this\n             * value type, perform it.\n             */\n            if ((projection === null || projection === void 0 ? void 0 : projection.isHydrated) &&\n                (layoutState === null || layoutState === void 0 ? void 0 : layoutState.isHydrated) &&\n                valueScaleCorrection[key]) {\n                var correctedValue = valueScaleCorrection[key].process(value, layoutState, projection);\n                /**\n                 * Scale-correctable values can define a number of other values to break\n                 * down into. For instance borderRadius needs applying to borderBottomLeftRadius etc\n                 */\n                var applyTo = valueScaleCorrection[key].applyTo;\n                if (applyTo) {\n                    var num = applyTo.length;\n                    for (var i = 0; i < num; i++) {\n                        style[applyTo[i]] = correctedValue;\n                    }\n                }\n                else {\n                    style[key] = correctedValue;\n                }\n            }\n            else {\n                style[key] = valueAsType;\n            }\n        }\n    }\n    if (layoutState &&\n        projection &&\n        buildProjectionTransform &&\n        buildProjectionTransformOrigin) {\n        style.transform = buildProjectionTransform(layoutState.deltaFinal, layoutState.treeScale, hasTransform ? transform : undefined);\n        if (transformTemplate) {\n            style.transform = transformTemplate(transform, style.transform);\n        }\n        style.transformOrigin = buildProjectionTransformOrigin(layoutState);\n    }\n    else {\n        if (hasTransform) {\n            style.transform = buildTransform(state, options, transformIsNone, transformTemplate);\n        }\n        if (hasTransformOrigin) {\n            style.transformOrigin = buildTransformOrigin(transformOrigin);\n        }\n    }\n}\n\nexport { buildHTMLStyles };\n","var createHtmlRenderState = function () { return ({\n    style: {},\n    transform: {},\n    transformKeys: [],\n    transformOrigin: {},\n    vars: {},\n}); };\n\nexport { createHtmlRenderState };\n","import { __assign } from 'tslib';\nimport { useMemo } from 'react';\nimport { isForcedMotionValue } from '../../motion/utils/is-forced-motion-value.js';\nimport { isMotionValue } from '../../value/utils/is-motion-value.js';\nimport { buildHTMLStyles } from './utils/build-styles.js';\nimport { createHtmlRenderState } from './utils/create-render-state.js';\n\nfunction copyRawValuesOnly(target, source, props) {\n    for (var key in source) {\n        if (!isMotionValue(source[key]) && !isForcedMotionValue(key, props)) {\n            target[key] = source[key];\n        }\n    }\n}\nfunction useInitialMotionValues(_a, visualState, isStatic) {\n    var transformTemplate = _a.transformTemplate;\n    return useMemo(function () {\n        var state = createHtmlRenderState();\n        buildHTMLStyles(state, visualState, undefined, undefined, { enableHardwareAcceleration: !isStatic }, transformTemplate);\n        var vars = state.vars, style = state.style;\n        return __assign(__assign({}, vars), style);\n    }, [visualState]);\n}\nfunction useStyle(props, visualState, isStatic) {\n    var styleProp = props.style || {};\n    var style = {};\n    /**\n     * Copy non-Motion Values straight into style\n     */\n    copyRawValuesOnly(style, styleProp, props);\n    Object.assign(style, useInitialMotionValues(props, visualState, isStatic));\n    if (props.transformValues) {\n        style = props.transformValues(style);\n    }\n    return style;\n}\nfunction useHTMLProps(props, visualState, isStatic) {\n    // The `any` isn't ideal but it is the type of createElement props argument\n    var htmlProps = {};\n    var style = useStyle(props, visualState, isStatic);\n    if (Boolean(props.drag)) {\n        // Disable the ghost element when a user drags\n        htmlProps.draggable = false;\n        // Disable text selection\n        style.userSelect = style.WebkitUserSelect = style.WebkitTouchCallout =\n            \"none\";\n        // Disable scrolling on the draggable direction\n        style.touchAction =\n            props.drag === true\n                ? \"none\"\n                : \"pan-\" + (props.drag === \"x\" ? \"y\" : \"x\");\n    }\n    htmlProps.style = style;\n    return htmlProps;\n}\n\nexport { copyRawValuesOnly, useHTMLProps, useStyle };\n","/**\n * A list of all valid MotionProps.\n *\n * @internalremarks\n * This doesn't throw if a `MotionProp` name is missing - it should.\n */\nvar validMotionProps = new Set([\n    \"initial\",\n    \"animate\",\n    \"exit\",\n    \"style\",\n    \"variants\",\n    \"transition\",\n    \"transformTemplate\",\n    \"transformValues\",\n    \"custom\",\n    \"inherit\",\n    \"layout\",\n    \"layoutId\",\n    \"_layoutResetTransform\",\n    \"onLayoutAnimationComplete\",\n    \"onViewportBoxUpdate\",\n    \"onLayoutMeasure\",\n    \"onBeforeLayoutMeasure\",\n    \"onAnimationStart\",\n    \"onAnimationComplete\",\n    \"onUpdate\",\n    \"onDragStart\",\n    \"onDrag\",\n    \"onDragEnd\",\n    \"onMeasureDragConstraints\",\n    \"onDirectionLock\",\n    \"onDragTransitionEnd\",\n    \"drag\",\n    \"dragControls\",\n    \"dragListener\",\n    \"dragConstraints\",\n    \"dragDirectionLock\",\n    \"_dragX\",\n    \"_dragY\",\n    \"dragElastic\",\n    \"dragMomentum\",\n    \"dragPropagation\",\n    \"dragTransition\",\n    \"whileDrag\",\n    \"onPan\",\n    \"onPanStart\",\n    \"onPanEnd\",\n    \"onPanSessionStart\",\n    \"onTap\",\n    \"onTapStart\",\n    \"onTapCancel\",\n    \"onHoverStart\",\n    \"onHoverEnd\",\n    \"whileFocus\",\n    \"whileTap\",\n    \"whileHover\",\n]);\n/**\n * Check whether a prop name is a valid `MotionProp` key.\n *\n * @param key - Name of the property to check\n * @returns `true` is key is a valid `MotionProp`.\n *\n * @public\n */\nfunction isValidMotionProp(key) {\n    return validMotionProps.has(key);\n}\n\nexport { isValidMotionProp };\n","import { isValidMotionProp } from '../../../motion/utils/valid-prop.js';\n\nvar shouldForward = function (key) { return !isValidMotionProp(key); };\n/**\n * Emotion and Styled Components both allow users to pass through arbitrary props to their components\n * to dynamically generate CSS. They both use the `@emotion/is-prop-valid` package to determine which\n * of these should be passed to the underlying DOM node.\n *\n * However, when styling a Motion component `styled(motion.div)`, both packages pass through *all* props\n * as it's seen as an arbitrary component rather than a DOM node. Motion only allows arbitrary props\n * passed through the `custom` prop so it doesn't *need* the payload or computational overhead of\n * `@emotion/is-prop-valid`, however to fix this problem we need to use it.\n *\n * By making it an optionalDependency we can offer this functionality only in the situations where it's\n * actually required.\n */\ntry {\n    var emotionIsPropValid_1 = require(\"@emotion/is-prop-valid\").default;\n    shouldForward = function (key) {\n        // Handle events explicitly as Emotion validates them all as true\n        if (key.startsWith(\"on\")) {\n            return !isValidMotionProp(key);\n        }\n        else {\n            return emotionIsPropValid_1(key);\n        }\n    };\n}\ncatch (_a) {\n    // We don't need to actually do anything here - the fallback is the existing `isPropValid`.\n}\nfunction filterProps(props, isDom, forwardMotionProps) {\n    var filteredProps = {};\n    for (var key in props) {\n        if (shouldForward(key) ||\n            (forwardMotionProps === true && isValidMotionProp(key)) ||\n            (!isDom && !isValidMotionProp(key))) {\n            filteredProps[key] = props[key];\n        }\n    }\n    return filteredProps;\n}\n\nexport { filterProps };\n","import { px } from 'style-value-types';\n\nfunction calcOrigin(origin, offset, size) {\n    return typeof origin === \"string\"\n        ? origin\n        : px.transform(offset + size * origin);\n}\n/**\n * The SVG transform origin defaults are different to CSS and is less intuitive,\n * so we use the measured dimensions of the SVG to reconcile these.\n */\nfunction calcSVGTransformOrigin(dimensions, originX, originY) {\n    var pxOriginX = calcOrigin(originX, dimensions.x, dimensions.width);\n    var pxOriginY = calcOrigin(originY, dimensions.y, dimensions.height);\n    return pxOriginX + \" \" + pxOriginY;\n}\n\nexport { calcSVGTransformOrigin };\n","import { px } from 'style-value-types';\n\n// Convert a progress 0-1 to a pixels value based on the provided length\nvar progressToPixels = function (progress, length) {\n    return px.transform(progress * length);\n};\nvar dashKeys = {\n    offset: \"stroke-dashoffset\",\n    array: \"stroke-dasharray\",\n};\nvar camelKeys = {\n    offset: \"strokeDashoffset\",\n    array: \"strokeDasharray\",\n};\n/**\n * Build SVG path properties. Uses the path's measured length to convert\n * our custom pathLength, pathSpacing and pathOffset into stroke-dashoffset\n * and stroke-dasharray attributes.\n *\n * This function is mutative to reduce per-frame GC.\n */\nfunction buildSVGPath(attrs, totalLength, length, spacing, offset, useDashCase) {\n    if (spacing === void 0) { spacing = 1; }\n    if (offset === void 0) { offset = 0; }\n    if (useDashCase === void 0) { useDashCase = true; }\n    // We use dash case when setting attributes directly to the DOM node and camel case\n    // when defining props on a React component.\n    var keys = useDashCase ? dashKeys : camelKeys;\n    // Build the dash offset\n    attrs[keys.offset] = progressToPixels(-offset, totalLength);\n    // Build the dash array\n    var pathLength = progressToPixels(length, totalLength);\n    var pathSpacing = progressToPixels(spacing, totalLength);\n    attrs[keys.array] = pathLength + \" \" + pathSpacing;\n}\n\nexport { buildSVGPath };\n","import { __rest } from 'tslib';\nimport { buildHTMLStyles } from '../../html/utils/build-styles.js';\nimport { calcSVGTransformOrigin } from './transform-origin.js';\nimport { buildSVGPath } from './path.js';\n\n/**\n * Build SVG visual attrbutes, like cx and style.transform\n */\nfunction buildSVGAttrs(state, _a, projection, layoutState, options, transformTemplate, buildProjectionTransform, buildProjectionTransformOrigin) {\n    var attrX = _a.attrX, attrY = _a.attrY, originX = _a.originX, originY = _a.originY, pathLength = _a.pathLength, _b = _a.pathSpacing, pathSpacing = _b === void 0 ? 1 : _b, _c = _a.pathOffset, pathOffset = _c === void 0 ? 0 : _c, \n    // This is object creation, which we try to avoid per-frame.\n    latest = __rest(_a, [\"attrX\", \"attrY\", \"originX\", \"originY\", \"pathLength\", \"pathSpacing\", \"pathOffset\"]);\n    buildHTMLStyles(state, latest, projection, layoutState, options, transformTemplate, buildProjectionTransform, buildProjectionTransformOrigin);\n    state.attrs = state.style;\n    state.style = {};\n    var attrs = state.attrs, style = state.style, dimensions = state.dimensions, totalPathLength = state.totalPathLength;\n    /**\n     * However, we apply transforms as CSS transforms. So if we detect a transform we take it from attrs\n     * and copy it into style.\n     */\n    if (attrs.transform) {\n        if (dimensions)\n            style.transform = attrs.transform;\n        delete attrs.transform;\n    }\n    // Parse transformOrigin\n    if (dimensions &&\n        (originX !== undefined || originY !== undefined || style.transform)) {\n        style.transformOrigin = calcSVGTransformOrigin(dimensions, originX !== undefined ? originX : 0.5, originY !== undefined ? originY : 0.5);\n    }\n    // Treat x/y not as shortcuts but as actual attributes\n    if (attrX !== undefined)\n        attrs.x = attrX;\n    if (attrY !== undefined)\n        attrs.y = attrY;\n    // Build SVG path if one has been measured\n    if (totalPathLength !== undefined && pathLength !== undefined) {\n        buildSVGPath(attrs, totalPathLength, pathLength, pathSpacing, pathOffset, false);\n    }\n}\n\nexport { buildSVGAttrs };\n","import { __assign } from 'tslib';\nimport { createHtmlRenderState } from '../../html/utils/create-render-state.js';\n\nvar createSvgRenderState = function () { return (__assign(__assign({}, createHtmlRenderState()), { attrs: {} })); };\n\nexport { createSvgRenderState };\n","import { __assign } from 'tslib';\nimport { useMemo } from 'react';\nimport { copyRawValuesOnly } from '../html/use-props.js';\nimport { buildSVGAttrs } from './utils/build-attrs.js';\nimport { createSvgRenderState } from './utils/create-render-state.js';\n\nfunction useSVGProps(props, visualState) {\n    var visualProps = useMemo(function () {\n        var state = createSvgRenderState();\n        buildSVGAttrs(state, visualState, undefined, undefined, { enableHardwareAcceleration: false }, props.transformTemplate);\n        return __assign(__assign({}, state.attrs), { style: __assign({}, state.style) });\n    }, [visualState]);\n    if (props.style) {\n        var rawStyles = {};\n        copyRawValuesOnly(rawStyles, props.style, props);\n        visualProps.style = __assign(__assign({}, rawStyles), visualProps.style);\n    }\n    return visualProps;\n}\n\nexport { useSVGProps };\n","import { __assign } from 'tslib';\nimport { createElement } from 'react';\nimport { useHTMLProps } from '../html/use-props.js';\nimport { filterProps } from './utils/filter-props.js';\nimport { isSVGComponent } from './utils/is-svg-component.js';\nimport { useSVGProps } from '../svg/use-props.js';\n\nfunction createUseRender(forwardMotionProps) {\n    if (forwardMotionProps === void 0) { forwardMotionProps = false; }\n    var useRender = function (Component, props, ref, _a, isStatic) {\n        var latestValues = _a.latestValues;\n        var useVisualProps = isSVGComponent(Component)\n            ? useSVGProps\n            : useHTMLProps;\n        var visualProps = useVisualProps(props, latestValues, isStatic);\n        var filteredProps = filterProps(props, typeof Component === \"string\", forwardMotionProps);\n        var elementProps = __assign(__assign(__assign({}, filteredProps), visualProps), { ref: ref });\n        return createElement(Component, elementProps);\n    };\n    return useRender;\n}\n\nexport { createUseRender };\n","var CAMEL_CASE_PATTERN = /([a-z])([A-Z])/g;\nvar REPLACE_TEMPLATE = \"$1-$2\";\n/**\n * Convert camelCase to dash-case properties.\n */\nvar camelToDash = function (str) {\n    return str.replace(CAMEL_CASE_PATTERN, REPLACE_TEMPLATE).toLowerCase();\n};\n\nexport { camelToDash };\n","function renderHTML(element, _a) {\n    var style = _a.style, vars = _a.vars;\n    // Directly assign style into the Element's style prop. In tests Object.assign is the\n    // fastest way to assign styles.\n    Object.assign(element.style, style);\n    // Loop over any CSS variables and assign those.\n    for (var key in vars) {\n        element.style.setProperty(key, vars[key]);\n    }\n}\n\nexport { renderHTML };\n","/**\n * A set of attribute names that are always read/written as camel case.\n */\nvar camelCaseAttributes = new Set([\n    \"baseFrequency\",\n    \"diffuseConstant\",\n    \"kernelMatrix\",\n    \"kernelUnitLength\",\n    \"keySplines\",\n    \"keyTimes\",\n    \"limitingConeAngle\",\n    \"markerHeight\",\n    \"markerWidth\",\n    \"numOctaves\",\n    \"targetX\",\n    \"targetY\",\n    \"surfaceScale\",\n    \"specularConstant\",\n    \"specularExponent\",\n    \"stdDeviation\",\n    \"tableValues\",\n    \"viewBox\",\n    \"gradientTransform\",\n]);\n\nexport { camelCaseAttributes };\n","import { camelToDash } from '../../dom/utils/camel-to-dash.js';\nimport { renderHTML } from '../../html/utils/render.js';\nimport { camelCaseAttributes } from './camel-case-attrs.js';\n\nfunction renderSVG(element, renderState) {\n    renderHTML(element, renderState);\n    for (var key in renderState.attrs) {\n        element.setAttribute(!camelCaseAttributes.has(key) ? camelToDash(key) : key, renderState.attrs[key]);\n    }\n}\n\nexport { renderSVG };\n","import { isForcedMotionValue } from '../../../motion/utils/is-forced-motion-value.js';\nimport { isMotionValue } from '../../../value/utils/is-motion-value.js';\n\nfunction scrapeMotionValuesFromProps(props) {\n    var style = props.style;\n    var newValues = {};\n    for (var key in style) {\n        if (isMotionValue(style[key]) || isForcedMotionValue(key, props)) {\n            newValues[key] = style[key];\n        }\n    }\n    return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };\n","import { isMotionValue } from '../../../value/utils/is-motion-value.js';\nimport { scrapeMotionValuesFromProps as scrapeMotionValuesFromProps$1 } from '../../html/utils/scrape-motion-values.js';\n\nfunction scrapeMotionValuesFromProps(props) {\n    var newValues = scrapeMotionValuesFromProps$1(props);\n    for (var key in props) {\n        if (isMotionValue(props[key])) {\n            var targetKey = key === \"x\" || key === \"y\" ? \"attr\" + key.toUpperCase() : key;\n            newValues[targetKey] = props[key];\n        }\n    }\n    return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };\n","function isAnimationControls(v) {\n    return typeof v === \"object\" && typeof v.start === \"function\";\n}\n\nexport { isAnimationControls };\n","var isKeyframesTarget = function (v) {\n    return Array.isArray(v);\n};\n\nexport { isKeyframesTarget };\n","import { isCustomValue } from '../../utils/resolve-value.js';\nimport { isMotionValue } from './is-motion-value.js';\n\n/**\n * If the provided value is a MotionValue, this returns the actual value, otherwise just the value itself\n *\n * TODO: Remove and move to library\n *\n * @internal\n */\nfunction resolveMotionValue(value) {\n    var unwrappedValue = isMotionValue(value) ? value.get() : value;\n    return isCustomValue(unwrappedValue)\n        ? unwrappedValue.toValue()\n        : unwrappedValue;\n}\n\nexport { resolveMotionValue };\n","import { isKeyframesTarget } from '../animation/utils/is-keyframes-target.js';\n\nvar isCustomValue = function (v) {\n    return Boolean(v && typeof v === \"object\" && v.mix && v.toValue);\n};\nvar resolveFinalValueInKeyframes = function (v) {\n    // TODO maybe throw if v.length - 1 is placeholder token?\n    return isKeyframesTarget(v) ? v[v.length - 1] || 0 : v;\n};\n\nexport { isCustomValue, resolveFinalValueInKeyframes };\n","import { __rest } from 'tslib';\nimport { useContext } from 'react';\nimport { isAnimationControls } from '../../animation/utils/is-animation-controls.js';\nimport { PresenceContext } from '../../context/PresenceContext.js';\nimport { checkIfControllingVariants, checkIfVariantNode, resolveVariantFromProps } from '../../render/utils/variants.js';\nimport { useConstant } from '../../utils/use-constant.js';\nimport { resolveMotionValue } from '../../value/utils/resolve-motion-value.js';\nimport { MotionContext } from '../../context/MotionContext/index.js';\n\nfunction makeState(_a, props, context, presenceContext) {\n    var scrapeMotionValuesFromProps = _a.scrapeMotionValuesFromProps, createRenderState = _a.createRenderState, onMount = _a.onMount;\n    var state = {\n        latestValues: makeLatestValues(props, context, presenceContext, scrapeMotionValuesFromProps),\n        renderState: createRenderState(),\n    };\n    if (onMount) {\n        state.mount = function (instance) { return onMount(props, instance, state); };\n    }\n    return state;\n}\nvar makeUseVisualState = function (config) { return function (props, isStatic) {\n    var context = useContext(MotionContext);\n    var presenceContext = useContext(PresenceContext);\n    return isStatic\n        ? makeState(config, props, context, presenceContext)\n        : useConstant(function () { return makeState(config, props, context, presenceContext); });\n}; };\nfunction makeLatestValues(props, context, presenceContext, scrapeMotionValues) {\n    var values = {};\n    var blockInitialAnimation = (presenceContext === null || presenceContext === void 0 ? void 0 : presenceContext.initial) === false;\n    var motionValues = scrapeMotionValues(props);\n    for (var key in motionValues) {\n        values[key] = resolveMotionValue(motionValues[key]);\n    }\n    var initial = props.initial, animate = props.animate;\n    var isControllingVariants = checkIfControllingVariants(props);\n    var isVariantNode = checkIfVariantNode(props);\n    if (context &&\n        isVariantNode &&\n        !isControllingVariants &&\n        props.inherit !== false) {\n        initial !== null && initial !== void 0 ? initial : (initial = context.initial);\n        animate !== null && animate !== void 0 ? animate : (animate = context.animate);\n    }\n    var variantToSet = blockInitialAnimation || initial === false ? animate : initial;\n    if (variantToSet &&\n        typeof variantToSet !== \"boolean\" &&\n        !isAnimationControls(variantToSet)) {\n        var list = Array.isArray(variantToSet) ? variantToSet : [variantToSet];\n        list.forEach(function (definition) {\n            var resolved = resolveVariantFromProps(props, definition);\n            if (!resolved)\n                return;\n            var transitionEnd = resolved.transitionEnd; resolved.transition; var target = __rest(resolved, [\"transitionEnd\", \"transition\"]);\n            for (var key in target)\n                values[key] = target[key];\n            for (var key in transitionEnd)\n                values[key] = transitionEnd[key];\n        });\n    }\n    return values;\n}\n\nexport { makeUseVisualState };\n","import { renderSVG } from './utils/render.js';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.js';\nimport { makeUseVisualState } from '../../motion/utils/use-visual-state.js';\nimport { createSvgRenderState } from './utils/create-render-state.js';\nimport { buildSVGAttrs } from './utils/build-attrs.js';\n\nvar svgMotionConfig = {\n    useVisualState: makeUseVisualState({\n        scrapeMotionValuesFromProps: scrapeMotionValuesFromProps,\n        createRenderState: createSvgRenderState,\n        onMount: function (props, instance, _a) {\n            var renderState = _a.renderState, latestValues = _a.latestValues;\n            try {\n                renderState.dimensions =\n                    typeof instance.getBBox ===\n                        \"function\"\n                        ? instance.getBBox()\n                        : instance.getBoundingClientRect();\n            }\n            catch (e) {\n                // Most likely trying to measure an unrendered element under Firefox\n                renderState.dimensions = {\n                    x: 0,\n                    y: 0,\n                    width: 0,\n                    height: 0,\n                };\n            }\n            if (isPath(instance)) {\n                renderState.totalPathLength = instance.getTotalLength();\n            }\n            buildSVGAttrs(renderState, latestValues, undefined, undefined, { enableHardwareAcceleration: false }, props.transformTemplate);\n            // TODO: Replace with direct assignment\n            renderSVG(instance, renderState);\n        },\n    }),\n};\nfunction isPath(element) {\n    return element.tagName === \"path\";\n}\n\nexport { svgMotionConfig };\n","import { makeUseVisualState } from '../../motion/utils/use-visual-state.js';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.js';\nimport { createHtmlRenderState } from './utils/create-render-state.js';\n\nvar htmlMotionConfig = {\n    useVisualState: makeUseVisualState({\n        scrapeMotionValuesFromProps: scrapeMotionValuesFromProps,\n        createRenderState: createHtmlRenderState,\n    }),\n};\n\nexport { htmlMotionConfig };\n","var AnimationType;\n(function (AnimationType) {\n    AnimationType[\"Animate\"] = \"animate\";\n    AnimationType[\"Hover\"] = \"whileHover\";\n    AnimationType[\"Tap\"] = \"whileTap\";\n    AnimationType[\"Drag\"] = \"whileDrag\";\n    AnimationType[\"Focus\"] = \"whileFocus\";\n    AnimationType[\"Exit\"] = \"exit\";\n})(AnimationType || (AnimationType = {}));\n\nexport { AnimationType };\n","import { useEffect } from 'react';\n\nfunction addDomEvent(target, eventName, handler, options) {\n    target.addEventListener(eventName, handler, options);\n    return function () { return target.removeEventListener(eventName, handler, options); };\n}\n/**\n * Attaches an event listener directly to the provided DOM element.\n *\n * Bypassing React's event system can be desirable, for instance when attaching non-passive\n * event handlers.\n *\n * ```jsx\n * const ref = useRef(null)\n *\n * useDomEvent(ref, 'wheel', onWheel, { passive: false })\n *\n * return <div ref={ref} />\n * ```\n *\n * @param ref - React.RefObject that's been provided to the element you want to bind the listener to.\n * @param eventName - Name of the event you want listen for.\n * @param handler - Function to fire when receiving the event.\n * @param options - Options to pass to `Event.addEventListener`.\n *\n * @public\n */\nfunction useDomEvent(ref, eventName, handler, options) {\n    useEffect(function () {\n        var element = ref.current;\n        if (handler && element) {\n            return addDomEvent(element, eventName, handler, options);\n        }\n    }, [ref, eventName, handler, options]);\n}\n\nexport { addDomEvent, useDomEvent };\n","function isMouseEvent(event) {\n    // PointerEvent inherits from MouseEvent so we can't use a straight instanceof check.\n    if (typeof PointerEvent !== \"undefined\" && event instanceof PointerEvent) {\n        return !!(event.pointerType === \"mouse\");\n    }\n    return event instanceof MouseEvent;\n}\nfunction isTouchEvent(event) {\n    var hasTouches = !!event.touches;\n    return hasTouches;\n}\n\nexport { isMouseEvent, isTouchEvent };\n","import { isTouchEvent } from '../gestures/utils/event-type.js';\n\n/**\n * Filters out events not attached to the primary pointer (currently left mouse button)\n * @param eventHandler\n */\nfunction filterPrimaryPointer(eventHandler) {\n    return function (event) {\n        var isMouseEvent = event instanceof MouseEvent;\n        var isPrimaryPointer = !isMouseEvent ||\n            (isMouseEvent && event.button === 0);\n        if (isPrimaryPointer) {\n            eventHandler(event);\n        }\n    };\n}\nvar defaultPagePoint = { pageX: 0, pageY: 0 };\nfunction pointFromTouch(e, pointType) {\n    if (pointType === void 0) { pointType = \"page\"; }\n    var primaryTouch = e.touches[0] || e.changedTouches[0];\n    var point = primaryTouch || defaultPagePoint;\n    return {\n        x: point[pointType + \"X\"],\n        y: point[pointType + \"Y\"],\n    };\n}\nfunction pointFromMouse(point, pointType) {\n    if (pointType === void 0) { pointType = \"page\"; }\n    return {\n        x: point[pointType + \"X\"],\n        y: point[pointType + \"Y\"],\n    };\n}\nfunction extractEventInfo(event, pointType) {\n    if (pointType === void 0) { pointType = \"page\"; }\n    return {\n        point: isTouchEvent(event)\n            ? pointFromTouch(event, pointType)\n            : pointFromMouse(event, pointType),\n    };\n}\nfunction getViewportPointFromEvent(event) {\n    return extractEventInfo(event, \"client\");\n}\nvar wrapHandler = function (handler, shouldFilterPrimaryPointer) {\n    if (shouldFilterPrimaryPointer === void 0) { shouldFilterPrimaryPointer = false; }\n    var listener = function (event) {\n        return handler(event, extractEventInfo(event));\n    };\n    return shouldFilterPrimaryPointer\n        ? filterPrimaryPointer(listener)\n        : listener;\n};\n\nexport { extractEventInfo, getViewportPointFromEvent, wrapHandler };\n","import { useDomEvent, addDomEvent } from './use-dom-event.js';\nimport { wrapHandler } from './event-info.js';\nimport { supportsPointerEvents, supportsTouchEvents, supportsMouseEvents } from './utils.js';\n\nvar mouseEventNames = {\n    pointerdown: \"mousedown\",\n    pointermove: \"mousemove\",\n    pointerup: \"mouseup\",\n    pointercancel: \"mousecancel\",\n    pointerover: \"mouseover\",\n    pointerout: \"mouseout\",\n    pointerenter: \"mouseenter\",\n    pointerleave: \"mouseleave\",\n};\nvar touchEventNames = {\n    pointerdown: \"touchstart\",\n    pointermove: \"touchmove\",\n    pointerup: \"touchend\",\n    pointercancel: \"touchcancel\",\n};\nfunction getPointerEventName(name) {\n    if (supportsPointerEvents()) {\n        return name;\n    }\n    else if (supportsTouchEvents()) {\n        return touchEventNames[name];\n    }\n    else if (supportsMouseEvents()) {\n        return mouseEventNames[name];\n    }\n    return name;\n}\nfunction addPointerEvent(target, eventName, handler, options) {\n    return addDomEvent(target, getPointerEventName(eventName), wrapHandler(handler, eventName === \"pointerdown\"), options);\n}\nfunction usePointerEvent(ref, eventName, handler, options) {\n    return useDomEvent(ref, getPointerEventName(eventName), handler && wrapHandler(handler, eventName === \"pointerdown\"), options);\n}\n\nexport { addPointerEvent, usePointerEvent };\n","import { isBrowser } from '../utils/is-browser.js';\n\n// We check for event support via functions in case they've been mocked by a testing suite.\nvar supportsPointerEvents = function () {\n    return isBrowser && window.onpointerdown === null;\n};\nvar supportsTouchEvents = function () {\n    return isBrowser && window.ontouchstart === null;\n};\nvar supportsMouseEvents = function () {\n    return isBrowser && window.onmousedown === null;\n};\n\nexport { supportsMouseEvents, supportsPointerEvents, supportsTouchEvents };\n","function createLock(name) {\n    var lock = null;\n    return function () {\n        var openLock = function () {\n            lock = null;\n        };\n        if (lock === null) {\n            lock = name;\n            return openLock;\n        }\n        return false;\n    };\n}\nvar globalHorizontalLock = createLock(\"dragHorizontal\");\nvar globalVerticalLock = createLock(\"dragVertical\");\nfunction getGlobalLock(drag) {\n    var lock = false;\n    if (drag === \"y\") {\n        lock = globalVerticalLock();\n    }\n    else if (drag === \"x\") {\n        lock = globalHorizontalLock();\n    }\n    else {\n        var openHorizontal_1 = globalHorizontalLock();\n        var openVertical_1 = globalVerticalLock();\n        if (openHorizontal_1 && openVertical_1) {\n            lock = function () {\n                openHorizontal_1();\n                openVertical_1();\n            };\n        }\n        else {\n            // Release the locks because we don't use them\n            if (openHorizontal_1)\n                openHorizontal_1();\n            if (openVertical_1)\n                openVertical_1();\n        }\n    }\n    return lock;\n}\nfunction isDragActive() {\n    // Check the gesture lock - if we get it, it means no drag gesture is active\n    // and we can safely fire the tap gesture.\n    var openGestureLock = getGlobalLock(true);\n    if (!openGestureLock)\n        return true;\n    openGestureLock();\n    return false;\n}\n\nexport { createLock, getGlobalLock, isDragActive };\n","import { isMouseEvent } from './utils/event-type.js';\nimport { AnimationType } from '../render/utils/types.js';\nimport { usePointerEvent } from '../events/use-pointer-event.js';\nimport { isDragActive } from './drag/utils/lock.js';\n\nfunction createHoverEvent(visualElement, isActive, callback) {\n    return function (event, info) {\n        var _a;\n        if (!isMouseEvent(event) || isDragActive())\n            return;\n        callback === null || callback === void 0 ? void 0 : callback(event, info);\n        (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Hover, isActive);\n    };\n}\nfunction useHoverGesture(_a) {\n    var onHoverStart = _a.onHoverStart, onHoverEnd = _a.onHoverEnd, whileHover = _a.whileHover, visualElement = _a.visualElement;\n    usePointerEvent(visualElement, \"pointerenter\", onHoverStart || whileHover\n        ? createHoverEvent(visualElement, true, onHoverStart)\n        : undefined);\n    usePointerEvent(visualElement, \"pointerleave\", onHoverEnd || whileHover\n        ? createHoverEvent(visualElement, false, onHoverEnd)\n        : undefined);\n}\n\nexport { useHoverGesture };\n","/**\n * Recursively traverse up the tree to check whether the provided child node\n * is the parent or a descendant of it.\n *\n * @param parent - Element to find\n * @param child - Element to test against parent\n */\nvar isNodeOrChild = function (parent, child) {\n    if (!child) {\n        return false;\n    }\n    else if (parent === child) {\n        return true;\n    }\n    else {\n        return isNodeOrChild(parent, child.parentElement);\n    }\n};\n\nexport { isNodeOrChild };\n","var combineFunctions = function (a, b) { return function (v) { return b(a(v)); }; };\nvar pipe = function () {\n    var transformers = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        transformers[_i] = arguments[_i];\n    }\n    return transformers.reduce(combineFunctions);\n};\n\nexport { pipe };\n","var makeRenderlessComponent = function (hook) { return function (props) {\n    hook(props);\n    return null;\n}; };\n\nexport { makeRenderlessComponent };\n","import { useFocusGesture } from '../../gestures/use-focus-gesture.js';\nimport { useHoverGesture } from '../../gestures/use-hover-gesture.js';\nimport { useTapGesture } from '../../gestures/use-tap-gesture.js';\nimport { makeRenderlessComponent } from '../utils/make-renderless-component.js';\n\nvar gestureAnimations = {\n    tap: makeRenderlessComponent(useTapGesture),\n    focus: makeRenderlessComponent(useFocusGesture),\n    hover: makeRenderlessComponent(useHoverGesture),\n};\n\nexport { gestureAnimations };\n","import { useRef } from 'react';\nimport { isNodeOrChild } from './utils/is-node-or-child.js';\nimport { usePointerEvent, addPointerEvent } from '../events/use-pointer-event.js';\nimport { useUnmountEffect } from '../utils/use-unmount-effect.js';\nimport { pipe } from 'popmotion';\nimport { AnimationType } from '../render/utils/types.js';\nimport { isDragActive } from './drag/utils/lock.js';\n\n/**\n * @param handlers -\n * @internal\n */\nfunction useTapGesture(_a) {\n    var onTap = _a.onTap, onTapStart = _a.onTapStart, onTapCancel = _a.onTapCancel, whileTap = _a.whileTap, visualElement = _a.visualElement;\n    var hasPressListeners = onTap || onTapStart || onTapCancel || whileTap;\n    var isPressing = useRef(false);\n    var cancelPointerEndListeners = useRef(null);\n    function removePointerEndListener() {\n        var _a;\n        (_a = cancelPointerEndListeners.current) === null || _a === void 0 ? void 0 : _a.call(cancelPointerEndListeners);\n        cancelPointerEndListeners.current = null;\n    }\n    function checkPointerEnd() {\n        var _a;\n        removePointerEndListener();\n        isPressing.current = false;\n        (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Tap, false);\n        return !isDragActive();\n    }\n    function onPointerUp(event, info) {\n        if (!checkPointerEnd())\n            return;\n        /**\n         * We only count this as a tap gesture if the event.target is the same\n         * as, or a child of, this component's element\n         */\n        !isNodeOrChild(visualElement.getInstance(), event.target)\n            ? onTapCancel === null || onTapCancel === void 0 ? void 0 : onTapCancel(event, info)\n            : onTap === null || onTap === void 0 ? void 0 : onTap(event, info);\n    }\n    function onPointerCancel(event, info) {\n        if (!checkPointerEnd())\n            return;\n        onTapCancel === null || onTapCancel === void 0 ? void 0 : onTapCancel(event, info);\n    }\n    function onPointerDown(event, info) {\n        var _a;\n        removePointerEndListener();\n        if (isPressing.current)\n            return;\n        isPressing.current = true;\n        cancelPointerEndListeners.current = pipe(addPointerEvent(window, \"pointerup\", onPointerUp), addPointerEvent(window, \"pointercancel\", onPointerCancel));\n        onTapStart === null || onTapStart === void 0 ? void 0 : onTapStart(event, info);\n        (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Tap, true);\n    }\n    usePointerEvent(visualElement, \"pointerdown\", hasPressListeners ? onPointerDown : undefined);\n    useUnmountEffect(removePointerEndListener);\n}\n\nexport { useTapGesture };\n","import { AnimationType } from '../render/utils/types.js';\nimport { useDomEvent } from '../events/use-dom-event.js';\n\n/**\n *\n * @param props\n * @param ref\n * @internal\n */\nfunction useFocusGesture(_a) {\n    var whileFocus = _a.whileFocus, visualElement = _a.visualElement;\n    var onFocus = function () {\n        var _a;\n        (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Focus, true);\n    };\n    var onBlur = function () {\n        var _a;\n        (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Focus, false);\n    };\n    useDomEvent(visualElement, \"focus\", whileFocus ? onFocus : undefined);\n    useDomEvent(visualElement, \"blur\", whileFocus ? onBlur : undefined);\n}\n\nexport { useFocusGesture };\n","function shallowCompare(next, prev) {\n    if (!Array.isArray(prev))\n        return false;\n    var prevLength = prev.length;\n    if (prevLength !== next.length)\n        return false;\n    for (var i = 0; i < prevLength; i++) {\n        if (prev[i] !== next[i])\n            return false;\n    }\n    return true;\n}\n\nexport { shallowCompare };\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n    if (typeof b !== \"function\" && b !== null)\r\n        throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n        if (ar || !(i in from)) {\r\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n            ar[i] = from[i];\r\n        }\r\n    }\r\n    return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","var clamp = function (min, max, v) {\n    return Math.min(Math.max(v, min), max);\n};\n\nexport { clamp };\n","import { warning } from 'hey-listen';\nimport { clamp } from '../../utils/clamp.js';\n\nvar safeMin = 0.001;\nvar minDuration = 0.01;\nvar maxDuration = 10.0;\nvar minDamping = 0.05;\nvar maxDamping = 1;\nfunction findSpring(_a) {\n    var _b = _a.duration, duration = _b === void 0 ? 800 : _b, _c = _a.bounce, bounce = _c === void 0 ? 0.25 : _c, _d = _a.velocity, velocity = _d === void 0 ? 0 : _d, _e = _a.mass, mass = _e === void 0 ? 1 : _e;\n    var envelope;\n    var derivative;\n    warning(duration <= maxDuration * 1000, \"Spring duration must be 10 seconds or less\");\n    var dampingRatio = 1 - bounce;\n    dampingRatio = clamp(minDamping, maxDamping, dampingRatio);\n    duration = clamp(minDuration, maxDuration, duration / 1000);\n    if (dampingRatio < 1) {\n        envelope = function (undampedFreq) {\n            var exponentialDecay = undampedFreq * dampingRatio;\n            var delta = exponentialDecay * duration;\n            var a = exponentialDecay - velocity;\n            var b = calcAngularFreq(undampedFreq, dampingRatio);\n            var c = Math.exp(-delta);\n            return safeMin - (a / b) * c;\n        };\n        derivative = function (undampedFreq) {\n            var exponentialDecay = undampedFreq * dampingRatio;\n            var delta = exponentialDecay * duration;\n            var d = delta * velocity + velocity;\n            var e = Math.pow(dampingRatio, 2) * Math.pow(undampedFreq, 2) * duration;\n            var f = Math.exp(-delta);\n            var g = calcAngularFreq(Math.pow(undampedFreq, 2), dampingRatio);\n            var factor = -envelope(undampedFreq) + safeMin > 0 ? -1 : 1;\n            return (factor * ((d - e) * f)) / g;\n        };\n    }\n    else {\n        envelope = function (undampedFreq) {\n            var a = Math.exp(-undampedFreq * duration);\n            var b = (undampedFreq - velocity) * duration + 1;\n            return -safeMin + a * b;\n        };\n        derivative = function (undampedFreq) {\n            var a = Math.exp(-undampedFreq * duration);\n            var b = (velocity - undampedFreq) * (duration * duration);\n            return a * b;\n        };\n    }\n    var initialGuess = 5 / duration;\n    var undampedFreq = approximateRoot(envelope, derivative, initialGuess);\n    duration = duration * 1000;\n    if (isNaN(undampedFreq)) {\n        return {\n            stiffness: 100,\n            damping: 10,\n            duration: duration,\n        };\n    }\n    else {\n        var stiffness = Math.pow(undampedFreq, 2) * mass;\n        return {\n            stiffness: stiffness,\n            damping: dampingRatio * 2 * Math.sqrt(mass * stiffness),\n            duration: duration,\n        };\n    }\n}\nvar rootIterations = 12;\nfunction approximateRoot(envelope, derivative, initialGuess) {\n    var result = initialGuess;\n    for (var i = 1; i < rootIterations; i++) {\n        result = result - envelope(result) / derivative(result);\n    }\n    return result;\n}\nfunction calcAngularFreq(undampedFreq, dampingRatio) {\n    return undampedFreq * Math.sqrt(1 - dampingRatio * dampingRatio);\n}\n\nexport { calcAngularFreq, findSpring, maxDamping, maxDuration, minDamping, minDuration };\n","import { __rest, __assign } from 'tslib';\nimport { findSpring, calcAngularFreq } from '../utils/find-spring.js';\n\nvar durationKeys = [\"duration\", \"bounce\"];\nvar physicsKeys = [\"stiffness\", \"damping\", \"mass\"];\nfunction isSpringType(options, keys) {\n    return keys.some(function (key) { return options[key] !== undefined; });\n}\nfunction getSpringOptions(options) {\n    var springOptions = __assign({ velocity: 0.0, stiffness: 100, damping: 10, mass: 1.0, isResolvedFromDuration: false }, options);\n    if (!isSpringType(options, physicsKeys) &&\n        isSpringType(options, durationKeys)) {\n        var derived = findSpring(options);\n        springOptions = __assign(__assign(__assign({}, springOptions), derived), { velocity: 0.0, mass: 1.0 });\n        springOptions.isResolvedFromDuration = true;\n    }\n    return springOptions;\n}\nfunction spring(_a) {\n    var _b = _a.from, from = _b === void 0 ? 0.0 : _b, _c = _a.to, to = _c === void 0 ? 1.0 : _c, _d = _a.restSpeed, restSpeed = _d === void 0 ? 2 : _d, restDelta = _a.restDelta, options = __rest(_a, [\"from\", \"to\", \"restSpeed\", \"restDelta\"]);\n    var state = { done: false, value: from };\n    var _e = getSpringOptions(options), stiffness = _e.stiffness, damping = _e.damping, mass = _e.mass, velocity = _e.velocity, duration = _e.duration, isResolvedFromDuration = _e.isResolvedFromDuration;\n    var resolveSpring = zero;\n    var resolveVelocity = zero;\n    function createSpring() {\n        var initialVelocity = velocity ? -(velocity / 1000) : 0.0;\n        var initialDelta = to - from;\n        var dampingRatio = damping / (2 * Math.sqrt(stiffness * mass));\n        var undampedAngularFreq = Math.sqrt(stiffness / mass) / 1000;\n        restDelta !== null && restDelta !== void 0 ? restDelta : (restDelta = Math.abs(to - from) <= 1 ? 0.01 : 0.4);\n        if (dampingRatio < 1) {\n            var angularFreq_1 = calcAngularFreq(undampedAngularFreq, dampingRatio);\n            resolveSpring = function (t) {\n                var envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n                return (to -\n                    envelope *\n                        (((initialVelocity +\n                            dampingRatio * undampedAngularFreq * initialDelta) /\n                            angularFreq_1) *\n                            Math.sin(angularFreq_1 * t) +\n                            initialDelta * Math.cos(angularFreq_1 * t)));\n            };\n            resolveVelocity = function (t) {\n                var envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n                return (dampingRatio *\n                    undampedAngularFreq *\n                    envelope *\n                    ((Math.sin(angularFreq_1 * t) *\n                        (initialVelocity +\n                            dampingRatio *\n                                undampedAngularFreq *\n                                initialDelta)) /\n                        angularFreq_1 +\n                        initialDelta * Math.cos(angularFreq_1 * t)) -\n                    envelope *\n                        (Math.cos(angularFreq_1 * t) *\n                            (initialVelocity +\n                                dampingRatio *\n                                    undampedAngularFreq *\n                                    initialDelta) -\n                            angularFreq_1 *\n                                initialDelta *\n                                Math.sin(angularFreq_1 * t)));\n            };\n        }\n        else if (dampingRatio === 1) {\n            resolveSpring = function (t) {\n                return to -\n                    Math.exp(-undampedAngularFreq * t) *\n                        (initialDelta +\n                            (initialVelocity + undampedAngularFreq * initialDelta) *\n                                t);\n            };\n        }\n        else {\n            var dampedAngularFreq_1 = undampedAngularFreq * Math.sqrt(dampingRatio * dampingRatio - 1);\n            resolveSpring = function (t) {\n                var envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n                var freqForT = Math.min(dampedAngularFreq_1 * t, 300);\n                return (to -\n                    (envelope *\n                        ((initialVelocity +\n                            dampingRatio * undampedAngularFreq * initialDelta) *\n                            Math.sinh(freqForT) +\n                            dampedAngularFreq_1 *\n                                initialDelta *\n                                Math.cosh(freqForT))) /\n                        dampedAngularFreq_1);\n            };\n        }\n    }\n    createSpring();\n    return {\n        next: function (t) {\n            var current = resolveSpring(t);\n            if (!isResolvedFromDuration) {\n                var currentVelocity = resolveVelocity(t) * 1000;\n                var isBelowVelocityThreshold = Math.abs(currentVelocity) <= restSpeed;\n                var isBelowDisplacementThreshold = Math.abs(to - current) <= restDelta;\n                state.done =\n                    isBelowVelocityThreshold && isBelowDisplacementThreshold;\n            }\n            else {\n                state.done = t >= duration;\n            }\n            state.value = state.done ? to : current;\n            return state;\n        },\n        flipTarget: function () {\n            var _a;\n            velocity = -velocity;\n            _a = [to, from], from = _a[0], to = _a[1];\n            createSpring();\n        },\n    };\n}\nspring.needsInterpolation = function (a, b) {\n    return typeof a === \"string\" || typeof b === \"string\";\n};\nvar zero = function (_t) { return 0; };\n\nexport { spring };\n","var progress = function (from, to, value) {\n    var toFromDifference = to - from;\n    return toFromDifference === 0 ? 1 : (value - from) / toFromDifference;\n};\n\nexport { progress };\n","var mix = function (from, to, progress) {\n    return -progress * from + progress * to + from;\n};\n\nexport { mix };\n","import { isString, singleColorRegex, floatRegex } from '../utils.js';\n\nvar isColorString = function (type, testProp) { return function (v) {\n    return Boolean((isString(v) && singleColorRegex.test(v) && v.startsWith(type)) ||\n        (testProp && Object.prototype.hasOwnProperty.call(v, testProp)));\n}; };\nvar splitColor = function (aName, bName, cName) { return function (v) {\n    var _a;\n    if (!isString(v))\n        return v;\n    var _b = v.match(floatRegex), a = _b[0], b = _b[1], c = _b[2], alpha = _b[3];\n    return _a = {},\n        _a[aName] = parseFloat(a),\n        _a[bName] = parseFloat(b),\n        _a[cName] = parseFloat(c),\n        _a.alpha = alpha !== undefined ? parseFloat(alpha) : 1,\n        _a;\n}; };\n\nexport { isColorString, splitColor };\n","import { __assign } from 'tslib';\nimport { number, alpha } from '../numbers/index.js';\nimport { sanitize, clamp } from '../utils.js';\nimport { isColorString, splitColor } from './utils.js';\n\nvar clampRgbUnit = clamp(0, 255);\nvar rgbUnit = __assign(__assign({}, number), { transform: function (v) { return Math.round(clampRgbUnit(v)); } });\nvar rgba = {\n    test: isColorString('rgb', 'red'),\n    parse: splitColor('red', 'green', 'blue'),\n    transform: function (_a) {\n        var red = _a.red, green = _a.green, blue = _a.blue, _b = _a.alpha, alpha$1 = _b === void 0 ? 1 : _b;\n        return 'rgba(' +\n            rgbUnit.transform(red) +\n            ', ' +\n            rgbUnit.transform(green) +\n            ', ' +\n            rgbUnit.transform(blue) +\n            ', ' +\n            sanitize(alpha.transform(alpha$1)) +\n            ')';\n    },\n};\n\nexport { rgbUnit, rgba };\n","import { rgba } from './rgba.js';\nimport { isColorString } from './utils.js';\n\nfunction parseHex(v) {\n    var r = '';\n    var g = '';\n    var b = '';\n    var a = '';\n    if (v.length > 5) {\n        r = v.substr(1, 2);\n        g = v.substr(3, 2);\n        b = v.substr(5, 2);\n        a = v.substr(7, 2);\n    }\n    else {\n        r = v.substr(1, 1);\n        g = v.substr(2, 1);\n        b = v.substr(3, 1);\n        a = v.substr(4, 1);\n        r += r;\n        g += g;\n        b += b;\n        a += a;\n    }\n    return {\n        red: parseInt(r, 16),\n        green: parseInt(g, 16),\n        blue: parseInt(b, 16),\n        alpha: a ? parseInt(a, 16) / 255 : 1,\n    };\n}\nvar hex = {\n    test: isColorString('#'),\n    parse: parseHex,\n    transform: rgba.transform,\n};\n\nexport { hex };\n","import { alpha } from '../numbers/index.js';\nimport { percent } from '../numbers/units.js';\nimport { sanitize } from '../utils.js';\nimport { isColorString, splitColor } from './utils.js';\n\nvar hsla = {\n    test: isColorString('hsl', 'hue'),\n    parse: splitColor('hue', 'saturation', 'lightness'),\n    transform: function (_a) {\n        var hue = _a.hue, saturation = _a.saturation, lightness = _a.lightness, _b = _a.alpha, alpha$1 = _b === void 0 ? 1 : _b;\n        return ('hsla(' +\n            Math.round(hue) +\n            ', ' +\n            percent.transform(sanitize(saturation)) +\n            ', ' +\n            percent.transform(sanitize(lightness)) +\n            ', ' +\n            sanitize(alpha.transform(alpha$1)) +\n            ')');\n    },\n};\n\nexport { hsla };\n","import { __assign } from 'tslib';\nimport { mix } from './mix.js';\nimport { hex, rgba, hsla } from 'style-value-types';\nimport { invariant } from 'hey-listen';\n\nvar mixLinearColor = function (from, to, v) {\n    var fromExpo = from * from;\n    var toExpo = to * to;\n    return Math.sqrt(Math.max(0, v * (toExpo - fromExpo) + fromExpo));\n};\nvar colorTypes = [hex, rgba, hsla];\nvar getColorType = function (v) {\n    return colorTypes.find(function (type) { return type.test(v); });\n};\nvar notAnimatable = function (color) {\n    return \"'\" + color + \"' is not an animatable color. Use the equivalent color code instead.\";\n};\nvar mixColor = function (from, to) {\n    var fromColorType = getColorType(from);\n    var toColorType = getColorType(to);\n    invariant(!!fromColorType, notAnimatable(from));\n    invariant(!!toColorType, notAnimatable(to));\n    invariant(fromColorType.transform === toColorType.transform, \"Both colors must be hex/RGBA, OR both must be HSLA.\");\n    var fromColor = fromColorType.parse(from);\n    var toColor = toColorType.parse(to);\n    var blended = __assign({}, fromColor);\n    var mixFunc = fromColorType === hsla ? mix : mixLinearColor;\n    return function (v) {\n        for (var key in blended) {\n            if (key !== \"alpha\") {\n                blended[key] = mixFunc(fromColor[key], toColor[key], v);\n            }\n        }\n        blended.alpha = mix(fromColor.alpha, toColor.alpha, v);\n        return fromColorType.transform(blended);\n    };\n};\n\nexport { mixColor, mixLinearColor };\n","import { isString } from '../utils.js';\nimport { hex } from './hex.js';\nimport { hsla } from './hsla.js';\nimport { rgba } from './rgba.js';\n\nvar color = {\n    test: function (v) { return rgba.test(v) || hex.test(v) || hsla.test(v); },\n    parse: function (v) {\n        if (rgba.test(v)) {\n            return rgba.parse(v);\n        }\n        else if (hsla.test(v)) {\n            return hsla.parse(v);\n        }\n        else {\n            return hex.parse(v);\n        }\n    },\n    transform: function (v) {\n        return isString(v)\n            ? v\n            : v.hasOwnProperty('red')\n                ? rgba.transform(v)\n                : hsla.transform(v);\n    },\n};\n\nexport { color };\n","import { color } from '../color/index.js';\nimport { number } from '../numbers/index.js';\nimport { isString, floatRegex, colorRegex, sanitize } from '../utils.js';\n\nvar colorToken = '${c}';\nvar numberToken = '${n}';\nfunction test(v) {\n    var _a, _b, _c, _d;\n    return (isNaN(v) &&\n        isString(v) &&\n        ((_b = (_a = v.match(floatRegex)) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) + ((_d = (_c = v.match(colorRegex)) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0) > 0);\n}\nfunction analyse(v) {\n    var values = [];\n    var numColors = 0;\n    var colors = v.match(colorRegex);\n    if (colors) {\n        numColors = colors.length;\n        v = v.replace(colorRegex, colorToken);\n        values.push.apply(values, colors.map(color.parse));\n    }\n    var numbers = v.match(floatRegex);\n    if (numbers) {\n        v = v.replace(floatRegex, numberToken);\n        values.push.apply(values, numbers.map(number.parse));\n    }\n    return { values: values, numColors: numColors, tokenised: v };\n}\nfunction parse(v) {\n    return analyse(v).values;\n}\nfunction createTransformer(v) {\n    var _a = analyse(v), values = _a.values, numColors = _a.numColors, tokenised = _a.tokenised;\n    var numValues = values.length;\n    return function (v) {\n        var output = tokenised;\n        for (var i = 0; i < numValues; i++) {\n            output = output.replace(i < numColors ? colorToken : numberToken, i < numColors ? color.transform(v[i]) : sanitize(v[i]));\n        }\n        return output;\n    };\n}\nvar convertNumbersToZero = function (v) {\n    return typeof v === 'number' ? 0 : v;\n};\nfunction getAnimatableNone(v) {\n    var parsed = parse(v);\n    var transformer = createTransformer(v);\n    return transformer(parsed.map(convertNumbersToZero));\n}\nvar complex = { test: test, parse: parse, createTransformer: createTransformer, getAnimatableNone: getAnimatableNone };\n\nexport { complex };\n","var zeroPoint = {\n    x: 0,\n    y: 0,\n    z: 0\n};\nvar isNum = function (v) { return typeof v === 'number'; };\n\nexport { isNum, zeroPoint };\n","import { __spreadArray, __assign } from 'tslib';\nimport { complex, color } from 'style-value-types';\nimport { mix } from './mix.js';\nimport { mixColor } from './mix-color.js';\nimport { isNum } from './inc.js';\nimport { pipe } from './pipe.js';\nimport { invariant } from 'hey-listen';\n\nfunction getMixer(origin, target) {\n    if (isNum(origin)) {\n        return function (v) { return mix(origin, target, v); };\n    }\n    else if (color.test(origin)) {\n        return mixColor(origin, target);\n    }\n    else {\n        return mixComplex(origin, target);\n    }\n}\nvar mixArray = function (from, to) {\n    var output = __spreadArray([], from);\n    var numValues = output.length;\n    var blendValue = from.map(function (fromThis, i) { return getMixer(fromThis, to[i]); });\n    return function (v) {\n        for (var i = 0; i < numValues; i++) {\n            output[i] = blendValue[i](v);\n        }\n        return output;\n    };\n};\nvar mixObject = function (origin, target) {\n    var output = __assign(__assign({}, origin), target);\n    var blendValue = {};\n    for (var key in output) {\n        if (origin[key] !== undefined && target[key] !== undefined) {\n            blendValue[key] = getMixer(origin[key], target[key]);\n        }\n    }\n    return function (v) {\n        for (var key in blendValue) {\n            output[key] = blendValue[key](v);\n        }\n        return output;\n    };\n};\nfunction analyse(value) {\n    var parsed = complex.parse(value);\n    var numValues = parsed.length;\n    var numNumbers = 0;\n    var numRGB = 0;\n    var numHSL = 0;\n    for (var i = 0; i < numValues; i++) {\n        if (numNumbers || typeof parsed[i] === \"number\") {\n            numNumbers++;\n        }\n        else {\n            if (parsed[i].hue !== undefined) {\n                numHSL++;\n            }\n            else {\n                numRGB++;\n            }\n        }\n    }\n    return { parsed: parsed, numNumbers: numNumbers, numRGB: numRGB, numHSL: numHSL };\n}\nvar mixComplex = function (origin, target) {\n    var template = complex.createTransformer(target);\n    var originStats = analyse(origin);\n    var targetStats = analyse(target);\n    invariant(originStats.numHSL === targetStats.numHSL &&\n        originStats.numRGB === targetStats.numRGB &&\n        originStats.numNumbers >= targetStats.numNumbers, \"Complex values '\" + origin + \"' and '\" + target + \"' too different to mix. Ensure all colors are of the same type.\");\n    return pipe(mixArray(originStats.parsed, targetStats.parsed), template);\n};\n\nexport { mixArray, mixComplex, mixObject };\n","import { progress } from './progress.js';\nimport { mix } from './mix.js';\nimport { mixColor } from './mix-color.js';\nimport { mixComplex, mixArray, mixObject } from './mix-complex.js';\nimport { color } from 'style-value-types';\nimport { clamp } from './clamp.js';\nimport { pipe } from './pipe.js';\nimport { invariant } from 'hey-listen';\n\nvar mixNumber = function (from, to) { return function (p) { return mix(from, to, p); }; };\nfunction detectMixerFactory(v) {\n    if (typeof v === 'number') {\n        return mixNumber;\n    }\n    else if (typeof v === 'string') {\n        if (color.test(v)) {\n            return mixColor;\n        }\n        else {\n            return mixComplex;\n        }\n    }\n    else if (Array.isArray(v)) {\n        return mixArray;\n    }\n    else if (typeof v === 'object') {\n        return mixObject;\n    }\n}\nfunction createMixers(output, ease, customMixer) {\n    var mixers = [];\n    var mixerFactory = customMixer || detectMixerFactory(output[0]);\n    var numMixers = output.length - 1;\n    for (var i = 0; i < numMixers; i++) {\n        var mixer = mixerFactory(output[i], output[i + 1]);\n        if (ease) {\n            var easingFunction = Array.isArray(ease) ? ease[i] : ease;\n            mixer = pipe(easingFunction, mixer);\n        }\n        mixers.push(mixer);\n    }\n    return mixers;\n}\nfunction fastInterpolate(_a, _b) {\n    var from = _a[0], to = _a[1];\n    var mixer = _b[0];\n    return function (v) { return mixer(progress(from, to, v)); };\n}\nfunction slowInterpolate(input, mixers) {\n    var inputLength = input.length;\n    var lastInputIndex = inputLength - 1;\n    return function (v) {\n        var mixerIndex = 0;\n        var foundMixerIndex = false;\n        if (v <= input[0]) {\n            foundMixerIndex = true;\n        }\n        else if (v >= input[lastInputIndex]) {\n            mixerIndex = lastInputIndex - 1;\n            foundMixerIndex = true;\n        }\n        if (!foundMixerIndex) {\n            var i = 1;\n            for (; i < inputLength; i++) {\n                if (input[i] > v || i === lastInputIndex) {\n                    break;\n                }\n            }\n            mixerIndex = i - 1;\n        }\n        var progressInRange = progress(input[mixerIndex], input[mixerIndex + 1], v);\n        return mixers[mixerIndex](progressInRange);\n    };\n}\nfunction interpolate(input, output, _a) {\n    var _b = _a === void 0 ? {} : _a, _c = _b.clamp, isClamp = _c === void 0 ? true : _c, ease = _b.ease, mixer = _b.mixer;\n    var inputLength = input.length;\n    invariant(inputLength === output.length, 'Both input and output ranges must be the same length');\n    invariant(!ease || !Array.isArray(ease) || ease.length === inputLength - 1, 'Array of easing functions must be of length `input.length - 1`, as it applies to the transitions **between** the defined values.');\n    if (input[0] > input[inputLength - 1]) {\n        input = [].concat(input);\n        output = [].concat(output);\n        input.reverse();\n        output.reverse();\n    }\n    var mixers = createMixers(output, ease, mixer);\n    var interpolator = inputLength === 2\n        ? fastInterpolate(input, mixers)\n        : slowInterpolate(input, mixers);\n    return isClamp\n        ? function (v) { return interpolator(clamp(input[0], input[inputLength - 1], v)); }\n        : interpolator;\n}\n\nexport { interpolate };\n","var reverseEasing = function (easing) { return function (p) { return 1 - easing(1 - p); }; };\nvar mirrorEasing = function (easing) { return function (p) {\n    return p <= 0.5 ? easing(2 * p) / 2 : (2 - easing(2 * (1 - p))) / 2;\n}; };\nvar createExpoIn = function (power) { return function (p) { return Math.pow(p, power); }; };\nvar createBackIn = function (power) { return function (p) {\n    return p * p * ((power + 1) * p - power);\n}; };\nvar createAnticipate = function (power) {\n    var backEasing = createBackIn(power);\n    return function (p) {\n        return (p *= 2) < 1\n            ? 0.5 * backEasing(p)\n            : 0.5 * (2 - Math.pow(2, -10 * (p - 1)));\n    };\n};\n\nexport { createAnticipate, createBackIn, createExpoIn, mirrorEasing, reverseEasing };\n","import { createExpoIn, reverseEasing, mirrorEasing, createBackIn, createAnticipate } from './utils.js';\n\nvar DEFAULT_OVERSHOOT_STRENGTH = 1.525;\nvar BOUNCE_FIRST_THRESHOLD = 4.0 / 11.0;\nvar BOUNCE_SECOND_THRESHOLD = 8.0 / 11.0;\nvar BOUNCE_THIRD_THRESHOLD = 9.0 / 10.0;\nvar linear = function (p) { return p; };\nvar easeIn = createExpoIn(2);\nvar easeOut = reverseEasing(easeIn);\nvar easeInOut = mirrorEasing(easeIn);\nvar circIn = function (p) { return 1 - Math.sin(Math.acos(p)); };\nvar circOut = reverseEasing(circIn);\nvar circInOut = mirrorEasing(circOut);\nvar backIn = createBackIn(DEFAULT_OVERSHOOT_STRENGTH);\nvar backOut = reverseEasing(backIn);\nvar backInOut = mirrorEasing(backIn);\nvar anticipate = createAnticipate(DEFAULT_OVERSHOOT_STRENGTH);\nvar ca = 4356.0 / 361.0;\nvar cb = 35442.0 / 1805.0;\nvar cc = 16061.0 / 1805.0;\nvar bounceOut = function (p) {\n    if (p === 1 || p === 0)\n        return p;\n    var p2 = p * p;\n    return p < BOUNCE_FIRST_THRESHOLD\n        ? 7.5625 * p2\n        : p < BOUNCE_SECOND_THRESHOLD\n            ? 9.075 * p2 - 9.9 * p + 3.4\n            : p < BOUNCE_THIRD_THRESHOLD\n                ? ca * p2 - cb * p + cc\n                : 10.8 * p * p - 20.52 * p + 10.72;\n};\nvar bounceIn = reverseEasing(bounceOut);\nvar bounceInOut = function (p) {\n    return p < 0.5\n        ? 0.5 * (1.0 - bounceOut(1.0 - p * 2.0))\n        : 0.5 * bounceOut(p * 2.0 - 1.0) + 0.5;\n};\n\nexport { anticipate, backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, easeIn, easeInOut, easeOut, linear };\n","import { interpolate } from '../../utils/interpolate.js';\nimport { easeInOut } from '../../easing/index.js';\n\nfunction defaultEasing(values, easing) {\n    return values.map(function () { return easing || easeInOut; }).splice(0, values.length - 1);\n}\nfunction defaultOffset(values) {\n    var numValues = values.length;\n    return values.map(function (_value, i) {\n        return i !== 0 ? i / (numValues - 1) : 0;\n    });\n}\nfunction convertOffsetToTimes(offset, duration) {\n    return offset.map(function (o) { return o * duration; });\n}\nfunction keyframes(_a) {\n    var _b = _a.from, from = _b === void 0 ? 0 : _b, _c = _a.to, to = _c === void 0 ? 1 : _c, ease = _a.ease, offset = _a.offset, _d = _a.duration, duration = _d === void 0 ? 300 : _d;\n    var state = { done: false, value: from };\n    var values = Array.isArray(to) ? to : [from, to];\n    var times = convertOffsetToTimes(offset && offset.length === values.length\n        ? offset\n        : defaultOffset(values), duration);\n    function createInterpolator() {\n        return interpolate(times, values, {\n            ease: Array.isArray(ease) ? ease : defaultEasing(values, ease),\n        });\n    }\n    var interpolator = createInterpolator();\n    return {\n        next: function (t) {\n            state.value = interpolator(t);\n            state.done = t >= duration;\n            return state;\n        },\n        flipTarget: function () {\n            values.reverse();\n            interpolator = createInterpolator();\n        },\n    };\n}\n\nexport { convertOffsetToTimes, defaultEasing, defaultOffset, keyframes };\n","import { spring } from '../generators/spring.js';\nimport { keyframes } from '../generators/keyframes.js';\nimport { decay } from '../generators/decay.js';\n\nvar types = { keyframes: keyframes, spring: spring, decay: decay };\nfunction detectAnimationFromOptions(config) {\n    if (Array.isArray(config.to)) {\n        return keyframes;\n    }\n    else if (types[config.type]) {\n        return types[config.type];\n    }\n    var keys = new Set(Object.keys(config));\n    if (keys.has(\"ease\") ||\n        (keys.has(\"duration\") && !keys.has(\"dampingRatio\"))) {\n        return keyframes;\n    }\n    else if (keys.has(\"dampingRatio\") ||\n        keys.has(\"stiffness\") ||\n        keys.has(\"mass\") ||\n        keys.has(\"damping\") ||\n        keys.has(\"restSpeed\") ||\n        keys.has(\"restDelta\")) {\n        return spring;\n    }\n    return keyframes;\n}\n\nexport { detectAnimationFromOptions };\n","function decay(_a) {\n    var _b = _a.velocity, velocity = _b === void 0 ? 0 : _b, _c = _a.from, from = _c === void 0 ? 0 : _c, _d = _a.power, power = _d === void 0 ? 0.8 : _d, _e = _a.timeConstant, timeConstant = _e === void 0 ? 350 : _e, _f = _a.restDelta, restDelta = _f === void 0 ? 0.5 : _f, modifyTarget = _a.modifyTarget;\n    var state = { done: false, value: from };\n    var amplitude = power * velocity;\n    var ideal = from + amplitude;\n    var target = modifyTarget === undefined ? ideal : modifyTarget(ideal);\n    if (target !== ideal)\n        amplitude = target - from;\n    return {\n        next: function (t) {\n            var delta = -amplitude * Math.exp(-t / timeConstant);\n            state.done = !(delta > restDelta || delta < -restDelta);\n            state.value = state.done ? target : target + delta;\n            return state;\n        },\n        flipTarget: function () { },\n    };\n}\n\nexport { decay };\n","function loopElapsed(elapsed, duration, delay) {\n    if (delay === void 0) { delay = 0; }\n    return elapsed - duration - delay;\n}\nfunction reverseElapsed(elapsed, duration, delay, isForwardPlayback) {\n    if (delay === void 0) { delay = 0; }\n    if (isForwardPlayback === void 0) { isForwardPlayback = true; }\n    return isForwardPlayback\n        ? loopElapsed(duration + -elapsed, duration, delay)\n        : duration - (elapsed - duration) + delay;\n}\nfunction hasRepeatDelayElapsed(elapsed, duration, delay, isForwardPlayback) {\n    return isForwardPlayback ? elapsed >= duration + delay : elapsed <= -delay;\n}\n\nexport { hasRepeatDelayElapsed, loopElapsed, reverseElapsed };\n","import { __rest, __assign } from 'tslib';\nimport { detectAnimationFromOptions } from './utils/detect-animation-from-options.js';\nimport sync, { cancelSync } from 'framesync';\nimport { interpolate } from '../utils/interpolate.js';\nimport { hasRepeatDelayElapsed, reverseElapsed, loopElapsed } from './utils/elapsed.js';\n\nvar framesync = function (update) {\n    var passTimestamp = function (_a) {\n        var delta = _a.delta;\n        return update(delta);\n    };\n    return {\n        start: function () { return sync.update(passTimestamp, true); },\n        stop: function () { return cancelSync.update(passTimestamp); },\n    };\n};\nfunction animate(_a) {\n    var _b, _c;\n    var from = _a.from, _d = _a.autoplay, autoplay = _d === void 0 ? true : _d, _e = _a.driver, driver = _e === void 0 ? framesync : _e, _f = _a.elapsed, elapsed = _f === void 0 ? 0 : _f, _g = _a.repeat, repeatMax = _g === void 0 ? 0 : _g, _h = _a.repeatType, repeatType = _h === void 0 ? \"loop\" : _h, _j = _a.repeatDelay, repeatDelay = _j === void 0 ? 0 : _j, onPlay = _a.onPlay, onStop = _a.onStop, onComplete = _a.onComplete, onRepeat = _a.onRepeat, onUpdate = _a.onUpdate, options = __rest(_a, [\"from\", \"autoplay\", \"driver\", \"elapsed\", \"repeat\", \"repeatType\", \"repeatDelay\", \"onPlay\", \"onStop\", \"onComplete\", \"onRepeat\", \"onUpdate\"]);\n    var to = options.to;\n    var driverControls;\n    var repeatCount = 0;\n    var computedDuration = options.duration;\n    var latest;\n    var isComplete = false;\n    var isForwardPlayback = true;\n    var interpolateFromNumber;\n    var animator = detectAnimationFromOptions(options);\n    if ((_c = (_b = animator).needsInterpolation) === null || _c === void 0 ? void 0 : _c.call(_b, from, to)) {\n        interpolateFromNumber = interpolate([0, 100], [from, to], {\n            clamp: false,\n        });\n        from = 0;\n        to = 100;\n    }\n    var animation = animator(__assign(__assign({}, options), { from: from, to: to }));\n    function repeat() {\n        repeatCount++;\n        if (repeatType === \"reverse\") {\n            isForwardPlayback = repeatCount % 2 === 0;\n            elapsed = reverseElapsed(elapsed, computedDuration, repeatDelay, isForwardPlayback);\n        }\n        else {\n            elapsed = loopElapsed(elapsed, computedDuration, repeatDelay);\n            if (repeatType === \"mirror\")\n                animation.flipTarget();\n        }\n        isComplete = false;\n        onRepeat && onRepeat();\n    }\n    function complete() {\n        driverControls.stop();\n        onComplete && onComplete();\n    }\n    function update(delta) {\n        if (!isForwardPlayback)\n            delta = -delta;\n        elapsed += delta;\n        if (!isComplete) {\n            var state = animation.next(Math.max(0, elapsed));\n            latest = state.value;\n            if (interpolateFromNumber)\n                latest = interpolateFromNumber(latest);\n            isComplete = isForwardPlayback ? state.done : elapsed <= 0;\n        }\n        onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate(latest);\n        if (isComplete) {\n            if (repeatCount === 0)\n                computedDuration !== null && computedDuration !== void 0 ? computedDuration : (computedDuration = elapsed);\n            if (repeatCount < repeatMax) {\n                hasRepeatDelayElapsed(elapsed, computedDuration, repeatDelay, isForwardPlayback) && repeat();\n            }\n            else {\n                complete();\n            }\n        }\n    }\n    function play() {\n        onPlay === null || onPlay === void 0 ? void 0 : onPlay();\n        driverControls = driver(update);\n        driverControls.start();\n    }\n    autoplay && play();\n    return {\n        stop: function () {\n            onStop === null || onStop === void 0 ? void 0 : onStop();\n            driverControls.stop();\n        },\n    };\n}\n\nexport { animate };\n","function velocityPerSecond(velocity, frameDuration) {\n    return frameDuration ? velocity * (1000 / frameDuration) : 0;\n}\n\nexport { velocityPerSecond };\n","/**\n * Converts seconds to milliseconds\n *\n * @param seconds - Time in seconds.\n * @return milliseconds - Converted time in milliseconds.\n */\nvar secondsToMilliseconds = function (seconds) { return seconds * 1000; };\n\nexport { secondsToMilliseconds };\n","import { linear } from './index.js';\n\nvar a = function (a1, a2) { return 1.0 - 3.0 * a2 + 3.0 * a1; };\nvar b = function (a1, a2) { return 3.0 * a2 - 6.0 * a1; };\nvar c = function (a1) { return 3.0 * a1; };\nvar calcBezier = function (t, a1, a2) {\n    return ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;\n};\nvar getSlope = function (t, a1, a2) {\n    return 3.0 * a(a1, a2) * t * t + 2.0 * b(a1, a2) * t + c(a1);\n};\nvar subdivisionPrecision = 0.0000001;\nvar subdivisionMaxIterations = 10;\nfunction binarySubdivide(aX, aA, aB, mX1, mX2) {\n    var currentX;\n    var currentT;\n    var i = 0;\n    do {\n        currentT = aA + (aB - aA) / 2.0;\n        currentX = calcBezier(currentT, mX1, mX2) - aX;\n        if (currentX > 0.0) {\n            aB = currentT;\n        }\n        else {\n            aA = currentT;\n        }\n    } while (Math.abs(currentX) > subdivisionPrecision &&\n        ++i < subdivisionMaxIterations);\n    return currentT;\n}\nvar newtonIterations = 8;\nvar newtonMinSlope = 0.001;\nfunction newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n    for (var i = 0; i < newtonIterations; ++i) {\n        var currentSlope = getSlope(aGuessT, mX1, mX2);\n        if (currentSlope === 0.0) {\n            return aGuessT;\n        }\n        var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n        aGuessT -= currentX / currentSlope;\n    }\n    return aGuessT;\n}\nvar kSplineTableSize = 11;\nvar kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\nfunction cubicBezier(mX1, mY1, mX2, mY2) {\n    if (mX1 === mY1 && mX2 === mY2)\n        return linear;\n    var sampleValues = new Float32Array(kSplineTableSize);\n    for (var i = 0; i < kSplineTableSize; ++i) {\n        sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n    }\n    function getTForX(aX) {\n        var intervalStart = 0.0;\n        var currentSample = 1;\n        var lastSample = kSplineTableSize - 1;\n        for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n            intervalStart += kSampleStepSize;\n        }\n        --currentSample;\n        var dist = (aX - sampleValues[currentSample]) /\n            (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n        var guessForT = intervalStart + dist * kSampleStepSize;\n        var initialSlope = getSlope(guessForT, mX1, mX2);\n        if (initialSlope >= newtonMinSlope) {\n            return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n        }\n        else if (initialSlope === 0.0) {\n            return guessForT;\n        }\n        else {\n            return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n        }\n    }\n    return function (t) {\n        return t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);\n    };\n}\n\nexport { cubicBezier };\n","import { __read } from 'tslib';\nimport { invariant } from 'hey-listen';\nimport { cubicBezier, linear, easeIn, easeInOut, easeOut, circIn, circInOut, circOut, backIn, backInOut, backOut, anticipate, bounceIn, bounceInOut, bounceOut } from 'popmotion';\n\nvar easingLookup = {\n    linear: linear,\n    easeIn: easeIn,\n    easeInOut: easeInOut,\n    easeOut: easeOut,\n    circIn: circIn,\n    circInOut: circInOut,\n    circOut: circOut,\n    backIn: backIn,\n    backInOut: backInOut,\n    backOut: backOut,\n    anticipate: anticipate,\n    bounceIn: bounceIn,\n    bounceInOut: bounceInOut,\n    bounceOut: bounceOut,\n};\nvar easingDefinitionToFunction = function (definition) {\n    if (Array.isArray(definition)) {\n        // If cubic bezier definition, create bezier curve\n        invariant(definition.length === 4, \"Cubic bezier arrays must contain four numerical values.\");\n        var _a = __read(definition, 4), x1 = _a[0], y1 = _a[1], x2 = _a[2], y2 = _a[3];\n        return cubicBezier(x1, y1, x2, y2);\n    }\n    else if (typeof definition === \"string\") {\n        // Else lookup from table\n        invariant(easingLookup[definition] !== undefined, \"Invalid easing type '\" + definition + \"'\");\n        return easingLookup[definition];\n    }\n    return definition;\n};\nvar isEasingArray = function (ease) {\n    return Array.isArray(ease) && typeof ease[0] !== \"number\";\n};\n\nexport { easingDefinitionToFunction, isEasingArray };\n","import { complex } from 'style-value-types';\n\n/**\n * Check if a value is animatable. Examples:\n *\n * ✅: 100, \"100px\", \"#fff\"\n * ❌: \"block\", \"url(2.jpg)\"\n * @param value\n *\n * @internal\n */\nvar isAnimatable = function (key, value) {\n    // If the list of keys tat might be non-animatable grows, replace with Set\n    if (key === \"zIndex\")\n        return false;\n    // If it's a number or a keyframes array, we can animate it. We might at some point\n    // need to do a deep isAnimatable check of keyframes, or let Popmotion handle this,\n    // but for now lets leave it like this for performance reasons\n    if (typeof value === \"number\" || Array.isArray(value))\n        return true;\n    if (typeof value === \"string\" && // It's animatable if we have a string\n        complex.test(value) && // And it contains numbers and/or colors\n        !value.startsWith(\"url(\") // Unless it starts with \"url(\"\n    ) {\n        return true;\n    }\n    return false;\n};\n\nexport { isAnimatable };\n","import { __assign } from 'tslib';\nimport { isKeyframesTarget } from './is-keyframes-target.js';\n\nvar underDampedSpring = function () { return ({\n    type: \"spring\",\n    stiffness: 500,\n    damping: 25,\n    restDelta: 0.5,\n    restSpeed: 10,\n}); };\nvar criticallyDampedSpring = function (to) { return ({\n    type: \"spring\",\n    stiffness: 550,\n    damping: to === 0 ? 2 * Math.sqrt(550) : 30,\n    restDelta: 0.01,\n    restSpeed: 10,\n}); };\nvar linearTween = function () { return ({\n    type: \"keyframes\",\n    ease: \"linear\",\n    duration: 0.3,\n}); };\nvar keyframes = function (values) { return ({\n    type: \"keyframes\",\n    duration: 0.8,\n    values: values,\n}); };\nvar defaultTransitions = {\n    x: underDampedSpring,\n    y: underDampedSpring,\n    z: underDampedSpring,\n    rotate: underDampedSpring,\n    rotateX: underDampedSpring,\n    rotateY: underDampedSpring,\n    rotateZ: underDampedSpring,\n    scaleX: criticallyDampedSpring,\n    scaleY: criticallyDampedSpring,\n    scale: criticallyDampedSpring,\n    opacity: linearTween,\n    backgroundColor: linearTween,\n    color: linearTween,\n    default: criticallyDampedSpring,\n};\nvar getDefaultTransition = function (valueKey, to) {\n    var transitionFactory;\n    if (isKeyframesTarget(to)) {\n        transitionFactory = keyframes;\n    }\n    else {\n        transitionFactory =\n            defaultTransitions[valueKey] || defaultTransitions.default;\n    }\n    return __assign({ to: to }, transitionFactory(to));\n};\n\nexport { criticallyDampedSpring, getDefaultTransition, linearTween, underDampedSpring };\n","import { __assign } from 'tslib';\nimport { complex } from './index.js';\nimport { floatRegex } from '../utils.js';\n\nvar maxDefaults = new Set(['brightness', 'contrast', 'saturate', 'opacity']);\nfunction applyDefaultFilter(v) {\n    var _a = v.slice(0, -1).split('('), name = _a[0], value = _a[1];\n    if (name === 'drop-shadow')\n        return v;\n    var number = (value.match(floatRegex) || [])[0];\n    if (!number)\n        return v;\n    var unit = value.replace(number, '');\n    var defaultValue = maxDefaults.has(name) ? 1 : 0;\n    if (number !== value)\n        defaultValue *= 100;\n    return name + '(' + defaultValue + unit + ')';\n}\nvar functionRegex = /([a-z-]*)\\(.*?\\)/g;\nvar filter = __assign(__assign({}, complex), { getAnimatableNone: function (v) {\n        var functions = v.match(functionRegex);\n        return functions ? functions.map(applyDefaultFilter).join(' ') : v;\n    } });\n\nexport { filter };\n","import { __assign } from 'tslib';\nimport { color, filter } from 'style-value-types';\nimport { numberValueTypes } from './number.js';\n\n/**\n * A map of default value types for common values\n */\nvar defaultValueTypes = __assign(__assign({}, numberValueTypes), { \n    // Color props\n    color: color, backgroundColor: color, outlineColor: color, fill: color, stroke: color, \n    // Border props\n    borderColor: color, borderTopColor: color, borderRightColor: color, borderBottomColor: color, borderLeftColor: color, filter: filter, WebkitFilter: filter });\n/**\n * Gets the default ValueType for the provided value key\n */\nvar getDefaultValueType = function (key) { return defaultValueTypes[key]; };\n\nexport { defaultValueTypes, getDefaultValueType };\n","import { filter, complex } from 'style-value-types';\nimport { getDefaultValueType } from './defaults.js';\n\nfunction getAnimatableNone(key, value) {\n    var _a;\n    var defaultValueType = getDefaultValueType(key);\n    if (defaultValueType !== filter)\n        defaultValueType = complex;\n    // If value is not recognised as animatable, ie \"none\", create an animatable version origin based on the target\n    return (_a = defaultValueType.getAnimatableNone) === null || _a === void 0 ? void 0 : _a.call(defaultValueType, value);\n}\n\nexport { getAnimatableNone };\n","import { __assign, __rest, __spreadArray, __read } from 'tslib';\nimport { inertia, animate } from 'popmotion';\nimport { secondsToMilliseconds } from '../../utils/time-conversion.js';\nimport { isEasingArray, easingDefinitionToFunction } from './easing.js';\nimport { isAnimatable } from './is-animatable.js';\nimport { getDefaultTransition } from './default-transitions.js';\nimport { warning } from 'hey-listen';\nimport { getAnimatableNone } from '../../render/dom/value-types/animatable-none.js';\n\n/**\n * Decide whether a transition is defined on a given Transition.\n * This filters out orchestration options and returns true\n * if any options are left.\n */\nfunction isTransitionDefined(_a) {\n    _a.when; _a.delay; _a.delayChildren; _a.staggerChildren; _a.staggerDirection; _a.repeat; _a.repeatType; _a.repeatDelay; _a.from; var transition = __rest(_a, [\"when\", \"delay\", \"delayChildren\", \"staggerChildren\", \"staggerDirection\", \"repeat\", \"repeatType\", \"repeatDelay\", \"from\"]);\n    return !!Object.keys(transition).length;\n}\nvar legacyRepeatWarning = false;\n/**\n * Convert Framer Motion's Transition type into Popmotion-compatible options.\n */\nfunction convertTransitionToAnimationOptions(_a) {\n    var ease = _a.ease, times = _a.times, yoyo = _a.yoyo, flip = _a.flip, loop = _a.loop, transition = __rest(_a, [\"ease\", \"times\", \"yoyo\", \"flip\", \"loop\"]);\n    var options = __assign({}, transition);\n    if (times)\n        options[\"offset\"] = times;\n    /**\n     * Convert any existing durations from seconds to milliseconds\n     */\n    if (transition.duration)\n        options[\"duration\"] = secondsToMilliseconds(transition.duration);\n    if (transition.repeatDelay)\n        options.repeatDelay = secondsToMilliseconds(transition.repeatDelay);\n    /**\n     * Map easing names to Popmotion's easing functions\n     */\n    if (ease) {\n        options[\"ease\"] = isEasingArray(ease)\n            ? ease.map(easingDefinitionToFunction)\n            : easingDefinitionToFunction(ease);\n    }\n    /**\n     * Support legacy transition API\n     */\n    if (transition.type === \"tween\")\n        options.type = \"keyframes\";\n    /**\n     * TODO: These options are officially removed from the API.\n     */\n    if (yoyo || loop || flip) {\n        warning(!legacyRepeatWarning, \"yoyo, loop and flip have been removed from the API. Replace with repeat and repeatType options.\");\n        legacyRepeatWarning = true;\n        if (yoyo) {\n            options.repeatType = \"reverse\";\n        }\n        else if (loop) {\n            options.repeatType = \"loop\";\n        }\n        else if (flip) {\n            options.repeatType = \"mirror\";\n        }\n        options.repeat = loop || yoyo || flip || transition.repeat;\n    }\n    /**\n     * TODO: Popmotion 9 has the ability to automatically detect whether to use\n     * a keyframes or spring animation, but does so by detecting velocity and other spring options.\n     * It'd be good to introduce a similar thing here.\n     */\n    if (transition.type !== \"spring\")\n        options.type = \"keyframes\";\n    return options;\n}\n/**\n * Get the delay for a value by checking Transition with decreasing specificity.\n */\nfunction getDelayFromTransition(transition, key) {\n    var _a;\n    var valueTransition = getValueTransition(transition, key) || {};\n    return (_a = valueTransition.delay) !== null && _a !== void 0 ? _a : 0;\n}\nfunction hydrateKeyframes(options) {\n    if (Array.isArray(options.to) && options.to[0] === null) {\n        options.to = __spreadArray([], __read(options.to));\n        options.to[0] = options.from;\n    }\n    return options;\n}\nfunction getPopmotionAnimationOptions(transition, options, key) {\n    var _a;\n    if (Array.isArray(options.to)) {\n        (_a = transition.duration) !== null && _a !== void 0 ? _a : (transition.duration = 0.8);\n    }\n    hydrateKeyframes(options);\n    /**\n     * Get a default transition if none is determined to be defined.\n     */\n    if (!isTransitionDefined(transition)) {\n        transition = __assign(__assign({}, transition), getDefaultTransition(key, options.to));\n    }\n    return __assign(__assign({}, options), convertTransitionToAnimationOptions(transition));\n}\n/**\n *\n */\nfunction getAnimation(key, value, target, transition, onComplete) {\n    var _a;\n    var valueTransition = getValueTransition(transition, key);\n    var origin = (_a = valueTransition.from) !== null && _a !== void 0 ? _a : value.get();\n    var isTargetAnimatable = isAnimatable(key, target);\n    if (origin === \"none\" && isTargetAnimatable && typeof target === \"string\") {\n        /**\n         * If we're trying to animate from \"none\", try and get an animatable version\n         * of the target. This could be improved to work both ways.\n         */\n        origin = getAnimatableNone(key, target);\n    }\n    else if (isZero(origin) && typeof target === \"string\") {\n        origin = getZeroUnit(target);\n    }\n    else if (!Array.isArray(target) &&\n        isZero(target) &&\n        typeof origin === \"string\") {\n        target = getZeroUnit(origin);\n    }\n    var isOriginAnimatable = isAnimatable(key, origin);\n    warning(isOriginAnimatable === isTargetAnimatable, \"You are trying to animate \" + key + \" from \\\"\" + origin + \"\\\" to \\\"\" + target + \"\\\". \" + origin + \" is not an animatable value - to enable this animation set \" + origin + \" to a value animatable to \" + target + \" via the `style` property.\");\n    function start() {\n        var options = {\n            from: origin,\n            to: target,\n            velocity: value.getVelocity(),\n            onComplete: onComplete,\n            onUpdate: function (v) { return value.set(v); },\n        };\n        return valueTransition.type === \"inertia\" ||\n            valueTransition.type === \"decay\"\n            ? inertia(__assign(__assign({}, options), valueTransition))\n            : animate(__assign(__assign({}, getPopmotionAnimationOptions(valueTransition, options, key)), { onUpdate: function (v) {\n                    var _a;\n                    options.onUpdate(v);\n                    (_a = valueTransition.onUpdate) === null || _a === void 0 ? void 0 : _a.call(valueTransition, v);\n                }, onComplete: function () {\n                    var _a;\n                    options.onComplete();\n                    (_a = valueTransition.onComplete) === null || _a === void 0 ? void 0 : _a.call(valueTransition);\n                } }));\n    }\n    function set() {\n        var _a;\n        value.set(target);\n        onComplete();\n        (_a = valueTransition === null || valueTransition === void 0 ? void 0 : valueTransition.onComplete) === null || _a === void 0 ? void 0 : _a.call(valueTransition);\n        return { stop: function () { } };\n    }\n    return !isOriginAnimatable ||\n        !isTargetAnimatable ||\n        valueTransition.type === false\n        ? set\n        : start;\n}\nfunction isZero(value) {\n    return (value === 0 ||\n        (typeof value === \"string\" &&\n            parseFloat(value) === 0 &&\n            value.indexOf(\" \") === -1));\n}\nfunction getZeroUnit(potentialUnitType) {\n    return typeof potentialUnitType === \"number\"\n        ? 0\n        : getAnimatableNone(\"\", potentialUnitType);\n}\nfunction getValueTransition(transition, key) {\n    return transition[key] || transition[\"default\"] || transition;\n}\n/**\n * Start animation on a MotionValue. This function is an interface between\n * Framer Motion and Popmotion\n *\n * @internal\n */\nfunction startAnimation(key, value, target, transition) {\n    if (transition === void 0) { transition = {}; }\n    return value.start(function (onComplete) {\n        var delayTimer;\n        var controls;\n        var animation = getAnimation(key, value, target, transition, onComplete);\n        var delay = getDelayFromTransition(transition, key);\n        var start = function () { return (controls = animation()); };\n        if (delay) {\n            delayTimer = setTimeout(start, secondsToMilliseconds(delay));\n        }\n        else {\n            start();\n        }\n        return function () {\n            clearTimeout(delayTimer);\n            controls === null || controls === void 0 ? void 0 : controls.stop();\n        };\n    });\n}\n\nexport { convertTransitionToAnimationOptions, getDelayFromTransition, getPopmotionAnimationOptions, getValueTransition, getZeroUnit, hydrateKeyframes, isTransitionDefined, isZero, startAnimation };\n","import { __assign } from 'tslib';\nimport { animate } from './index.js';\nimport { velocityPerSecond } from '../utils/velocity-per-second.js';\nimport { getFrameData } from 'framesync';\n\nfunction inertia(_a) {\n    var _b = _a.from, from = _b === void 0 ? 0 : _b, _c = _a.velocity, velocity = _c === void 0 ? 0 : _c, min = _a.min, max = _a.max, _d = _a.power, power = _d === void 0 ? 0.8 : _d, _e = _a.timeConstant, timeConstant = _e === void 0 ? 750 : _e, _f = _a.bounceStiffness, bounceStiffness = _f === void 0 ? 500 : _f, _g = _a.bounceDamping, bounceDamping = _g === void 0 ? 10 : _g, _h = _a.restDelta, restDelta = _h === void 0 ? 1 : _h, modifyTarget = _a.modifyTarget, driver = _a.driver, onUpdate = _a.onUpdate, onComplete = _a.onComplete;\n    var currentAnimation;\n    function isOutOfBounds(v) {\n        return (min !== undefined && v < min) || (max !== undefined && v > max);\n    }\n    function boundaryNearest(v) {\n        if (min === undefined)\n            return max;\n        if (max === undefined)\n            return min;\n        return Math.abs(min - v) < Math.abs(max - v) ? min : max;\n    }\n    function startAnimation(options) {\n        currentAnimation === null || currentAnimation === void 0 ? void 0 : currentAnimation.stop();\n        currentAnimation = animate(__assign(__assign({}, options), { driver: driver, onUpdate: function (v) {\n                var _a;\n                onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate(v);\n                (_a = options.onUpdate) === null || _a === void 0 ? void 0 : _a.call(options, v);\n            }, onComplete: onComplete }));\n    }\n    function startSpring(options) {\n        startAnimation(__assign({ type: \"spring\", stiffness: bounceStiffness, damping: bounceDamping, restDelta: restDelta }, options));\n    }\n    if (isOutOfBounds(from)) {\n        startSpring({ from: from, velocity: velocity, to: boundaryNearest(from) });\n    }\n    else {\n        var target = power * velocity + from;\n        if (typeof modifyTarget !== \"undefined\")\n            target = modifyTarget(target);\n        var boundary_1 = boundaryNearest(target);\n        var heading_1 = boundary_1 === min ? -1 : 1;\n        var prev_1;\n        var current_1;\n        var checkBoundary = function (v) {\n            prev_1 = current_1;\n            current_1 = v;\n            velocity = velocityPerSecond(v - prev_1, getFrameData().delta);\n            if ((heading_1 === 1 && v > boundary_1) ||\n                (heading_1 === -1 && v < boundary_1)) {\n                startSpring({ from: v, to: boundary_1, velocity: velocity });\n            }\n        };\n        startAnimation({\n            type: \"decay\",\n            from: from,\n            velocity: velocity,\n            timeConstant: timeConstant,\n            power: power,\n            restDelta: restDelta,\n            modifyTarget: modifyTarget,\n            onUpdate: isOutOfBounds(target) ? checkBoundary : undefined,\n        });\n    }\n    return {\n        stop: function () { return currentAnimation === null || currentAnimation === void 0 ? void 0 : currentAnimation.stop(); },\n    };\n}\n\nexport { inertia };\n","function addUniqueItem(arr, item) {\n    arr.indexOf(item) === -1 && arr.push(item);\n}\nfunction removeItem(arr, item) {\n    var index = arr.indexOf(item);\n    index > -1 && arr.splice(index, 1);\n}\n\nexport { addUniqueItem, removeItem };\n","import { addUniqueItem, removeItem } from './array.js';\n\nvar SubscriptionManager = /** @class */ (function () {\n    function SubscriptionManager() {\n        this.subscriptions = [];\n    }\n    SubscriptionManager.prototype.add = function (handler) {\n        var _this = this;\n        addUniqueItem(this.subscriptions, handler);\n        return function () { return removeItem(_this.subscriptions, handler); };\n    };\n    SubscriptionManager.prototype.notify = function (a, b, c) {\n        var numSubscriptions = this.subscriptions.length;\n        if (!numSubscriptions)\n            return;\n        if (numSubscriptions === 1) {\n            /**\n             * If there's only a single handler we can just call it without invoking a loop.\n             */\n            this.subscriptions[0](a, b, c);\n        }\n        else {\n            for (var i = 0; i < numSubscriptions; i++) {\n                /**\n                 * Check whether the handler exists before firing as it's possible\n                 * the subscriptions were modified during this loop running.\n                 */\n                var handler = this.subscriptions[i];\n                handler && handler(a, b, c);\n            }\n        }\n    };\n    SubscriptionManager.prototype.getSize = function () {\n        return this.subscriptions.length;\n    };\n    SubscriptionManager.prototype.clear = function () {\n        this.subscriptions.length = 0;\n    };\n    return SubscriptionManager;\n}());\n\nexport { SubscriptionManager };\n","import sync, { getFrameData } from 'framesync';\nimport { velocityPerSecond } from 'popmotion';\nimport { SubscriptionManager } from '../utils/subscription-manager.js';\n\nvar isFloat = function (value) {\n    return !isNaN(parseFloat(value));\n};\n/**\n * `MotionValue` is used to track the state and velocity of motion values.\n *\n * @public\n */\nvar MotionValue = /** @class */ (function () {\n    /**\n     * @param init - The initiating value\n     * @param config - Optional configuration options\n     *\n     * -  `transformer`: A function to transform incoming values with.\n     *\n     * @internal\n     */\n    function MotionValue(init) {\n        var _this = this;\n        /**\n         * Duration, in milliseconds, since last updating frame.\n         *\n         * @internal\n         */\n        this.timeDelta = 0;\n        /**\n         * Timestamp of the last time this `MotionValue` was updated.\n         *\n         * @internal\n         */\n        this.lastUpdated = 0;\n        /**\n         * Functions to notify when the `MotionValue` updates.\n         *\n         * @internal\n         */\n        this.updateSubscribers = new SubscriptionManager();\n        /**\n         * Functions to notify when the velocity updates.\n         *\n         * @internal\n         */\n        this.velocityUpdateSubscribers = new SubscriptionManager();\n        /**\n         * Functions to notify when the `MotionValue` updates and `render` is set to `true`.\n         *\n         * @internal\n         */\n        this.renderSubscribers = new SubscriptionManager();\n        /**\n         * Tracks whether this value can output a velocity. Currently this is only true\n         * if the value is numerical, but we might be able to widen the scope here and support\n         * other value types.\n         *\n         * @internal\n         */\n        this.canTrackVelocity = false;\n        this.updateAndNotify = function (v, render) {\n            if (render === void 0) { render = true; }\n            _this.prev = _this.current;\n            _this.current = v;\n            // Update timestamp\n            var _a = getFrameData(), delta = _a.delta, timestamp = _a.timestamp;\n            if (_this.lastUpdated !== timestamp) {\n                _this.timeDelta = delta;\n                _this.lastUpdated = timestamp;\n                sync.postRender(_this.scheduleVelocityCheck);\n            }\n            // Update update subscribers\n            if (_this.prev !== _this.current) {\n                _this.updateSubscribers.notify(_this.current);\n            }\n            // Update velocity subscribers\n            if (_this.velocityUpdateSubscribers.getSize()) {\n                _this.velocityUpdateSubscribers.notify(_this.getVelocity());\n            }\n            // Update render subscribers\n            if (render) {\n                _this.renderSubscribers.notify(_this.current);\n            }\n        };\n        /**\n         * Schedule a velocity check for the next frame.\n         *\n         * This is an instanced and bound function to prevent generating a new\n         * function once per frame.\n         *\n         * @internal\n         */\n        this.scheduleVelocityCheck = function () { return sync.postRender(_this.velocityCheck); };\n        /**\n         * Updates `prev` with `current` if the value hasn't been updated this frame.\n         * This ensures velocity calculations return `0`.\n         *\n         * This is an instanced and bound function to prevent generating a new\n         * function once per frame.\n         *\n         * @internal\n         */\n        this.velocityCheck = function (_a) {\n            var timestamp = _a.timestamp;\n            if (timestamp !== _this.lastUpdated) {\n                _this.prev = _this.current;\n                _this.velocityUpdateSubscribers.notify(_this.getVelocity());\n            }\n        };\n        this.hasAnimated = false;\n        this.prev = this.current = init;\n        this.canTrackVelocity = isFloat(this.current);\n    }\n    /**\n     * Adds a function that will be notified when the `MotionValue` is updated.\n     *\n     * It returns a function that, when called, will cancel the subscription.\n     *\n     * When calling `onChange` inside a React component, it should be wrapped with the\n     * `useEffect` hook. As it returns an unsubscribe function, this should be returned\n     * from the `useEffect` function to ensure you don't add duplicate subscribers..\n     *\n     * @library\n     *\n     * ```jsx\n     * function MyComponent() {\n     *   const x = useMotionValue(0)\n     *   const y = useMotionValue(0)\n     *   const opacity = useMotionValue(1)\n     *\n     *   useEffect(() => {\n     *     function updateOpacity() {\n     *       const maxXY = Math.max(x.get(), y.get())\n     *       const newOpacity = transform(maxXY, [0, 100], [1, 0])\n     *       opacity.set(newOpacity)\n     *     }\n     *\n     *     const unsubscribeX = x.onChange(updateOpacity)\n     *     const unsubscribeY = y.onChange(updateOpacity)\n     *\n     *     return () => {\n     *       unsubscribeX()\n     *       unsubscribeY()\n     *     }\n     *   }, [])\n     *\n     *   return <Frame x={x} />\n     * }\n     * ```\n     *\n     * @motion\n     *\n     * ```jsx\n     * export const MyComponent = () => {\n     *   const x = useMotionValue(0)\n     *   const y = useMotionValue(0)\n     *   const opacity = useMotionValue(1)\n     *\n     *   useEffect(() => {\n     *     function updateOpacity() {\n     *       const maxXY = Math.max(x.get(), y.get())\n     *       const newOpacity = transform(maxXY, [0, 100], [1, 0])\n     *       opacity.set(newOpacity)\n     *     }\n     *\n     *     const unsubscribeX = x.onChange(updateOpacity)\n     *     const unsubscribeY = y.onChange(updateOpacity)\n     *\n     *     return () => {\n     *       unsubscribeX()\n     *       unsubscribeY()\n     *     }\n     *   }, [])\n     *\n     *   return <motion.div style={{ x }} />\n     * }\n     * ```\n     *\n     * @internalremarks\n     *\n     * We could look into a `useOnChange` hook if the above lifecycle management proves confusing.\n     *\n     * ```jsx\n     * useOnChange(x, () => {})\n     * ```\n     *\n     * @param subscriber - A function that receives the latest value.\n     * @returns A function that, when called, will cancel this subscription.\n     *\n     * @public\n     */\n    MotionValue.prototype.onChange = function (subscription) {\n        return this.updateSubscribers.add(subscription);\n    };\n    MotionValue.prototype.clearListeners = function () {\n        this.updateSubscribers.clear();\n    };\n    /**\n     * Adds a function that will be notified when the `MotionValue` requests a render.\n     *\n     * @param subscriber - A function that's provided the latest value.\n     * @returns A function that, when called, will cancel this subscription.\n     *\n     * @internal\n     */\n    MotionValue.prototype.onRenderRequest = function (subscription) {\n        // Render immediately\n        subscription(this.get());\n        return this.renderSubscribers.add(subscription);\n    };\n    /**\n     * Attaches a passive effect to the `MotionValue`.\n     *\n     * @internal\n     */\n    MotionValue.prototype.attach = function (passiveEffect) {\n        this.passiveEffect = passiveEffect;\n    };\n    /**\n     * Sets the state of the `MotionValue`.\n     *\n     * @remarks\n     *\n     * ```jsx\n     * const x = useMotionValue(0)\n     * x.set(10)\n     * ```\n     *\n     * @param latest - Latest value to set.\n     * @param render - Whether to notify render subscribers. Defaults to `true`\n     *\n     * @public\n     */\n    MotionValue.prototype.set = function (v, render) {\n        if (render === void 0) { render = true; }\n        if (!render || !this.passiveEffect) {\n            this.updateAndNotify(v, render);\n        }\n        else {\n            this.passiveEffect(v, this.updateAndNotify);\n        }\n    };\n    /**\n     * Returns the latest state of `MotionValue`\n     *\n     * @returns - The latest state of `MotionValue`\n     *\n     * @public\n     */\n    MotionValue.prototype.get = function () {\n        return this.current;\n    };\n    /**\n     * @public\n     */\n    MotionValue.prototype.getPrevious = function () {\n        return this.prev;\n    };\n    /**\n     * Returns the latest velocity of `MotionValue`\n     *\n     * @returns - The latest velocity of `MotionValue`. Returns `0` if the state is non-numerical.\n     *\n     * @public\n     */\n    MotionValue.prototype.getVelocity = function () {\n        // This could be isFloat(this.prev) && isFloat(this.current), but that would be wasteful\n        return this.canTrackVelocity\n            ? // These casts could be avoided if parseFloat would be typed better\n                velocityPerSecond(parseFloat(this.current) -\n                    parseFloat(this.prev), this.timeDelta)\n            : 0;\n    };\n    /**\n     * Registers a new animation to control this `MotionValue`. Only one\n     * animation can drive a `MotionValue` at one time.\n     *\n     * ```jsx\n     * value.start()\n     * ```\n     *\n     * @param animation - A function that starts the provided animation\n     *\n     * @internal\n     */\n    MotionValue.prototype.start = function (animation) {\n        var _this = this;\n        this.stop();\n        return new Promise(function (resolve) {\n            _this.hasAnimated = true;\n            _this.stopAnimation = animation(resolve);\n        }).then(function () { return _this.clearAnimation(); });\n    };\n    /**\n     * Stop the currently active animation.\n     *\n     * @public\n     */\n    MotionValue.prototype.stop = function () {\n        if (this.stopAnimation)\n            this.stopAnimation();\n        this.clearAnimation();\n    };\n    /**\n     * Returns `true` if this value is currently animating.\n     *\n     * @public\n     */\n    MotionValue.prototype.isAnimating = function () {\n        return !!this.stopAnimation;\n    };\n    MotionValue.prototype.clearAnimation = function () {\n        this.stopAnimation = null;\n    };\n    /**\n     * Destroy and clean up subscribers to this `MotionValue`.\n     *\n     * The `MotionValue` hooks like `useMotionValue` and `useTransform` automatically\n     * handle the lifecycle of the returned `MotionValue`, so this method is only necessary if you've manually\n     * created a `MotionValue` via the `motionValue` function.\n     *\n     * @public\n     */\n    MotionValue.prototype.destroy = function () {\n        this.updateSubscribers.clear();\n        this.renderSubscribers.clear();\n        this.stop();\n    };\n    return MotionValue;\n}());\n/**\n * @internal\n */\nfunction motionValue(init) {\n    return new MotionValue(init);\n}\n\nexport { MotionValue, motionValue };\n","/**\n * Tests a provided value against a ValueType\n */\nvar testValueType = function (v) { return function (type) { return type.test(v); }; };\n\nexport { testValueType };\n","import { number, px, percent, degrees, vw, vh } from 'style-value-types';\nimport { testValueType } from './test.js';\nimport { auto } from './type-auto.js';\n\n/**\n * A list of value types commonly used for dimensions\n */\nvar dimensionValueTypes = [number, px, percent, degrees, vw, vh, auto];\n/**\n * Tests a dimensional value against the list of dimension ValueTypes\n */\nvar findDimensionValueType = function (v) {\n    return dimensionValueTypes.find(testValueType(v));\n};\n\nexport { dimensionValueTypes, findDimensionValueType };\n","/**\n * ValueType for \"auto\"\n */\nvar auto = {\n    test: function (v) { return v === \"auto\"; },\n    parse: function (v) { return v; },\n};\n\nexport { auto };\n","import { __spreadArray, __read } from 'tslib';\nimport { color, complex } from 'style-value-types';\nimport { dimensionValueTypes } from './dimensions.js';\nimport { testValueType } from './test.js';\n\n/**\n * A list of all ValueTypes\n */\nvar valueTypes = __spreadArray(__spreadArray([], __read(dimensionValueTypes)), [color, complex]);\n/**\n * Tests a value against the list of ValueTypes\n */\nvar findValueType = function (v) { return valueTypes.find(testValueType(v)); };\n\nexport { findValueType };\n","import { __rest, __assign, __spreadArray, __read } from 'tslib';\nimport { complex } from 'style-value-types';\nimport { isNumericalString } from '../../utils/is-numerical-string.js';\nimport { resolveFinalValueInKeyframes } from '../../utils/resolve-value.js';\nimport { motionValue } from '../../value/index.js';\nimport { getAnimatableNone } from '../dom/value-types/animatable-none.js';\nimport { findValueType } from '../dom/value-types/find.js';\nimport { resolveVariant } from './variants.js';\n\n/**\n * Set VisualElement's MotionValue, creating a new MotionValue for it if\n * it doesn't exist.\n */\nfunction setMotionValue(visualElement, key, value) {\n    if (visualElement.hasValue(key)) {\n        visualElement.getValue(key).set(value);\n    }\n    else {\n        visualElement.addValue(key, motionValue(value));\n    }\n}\nfunction setTarget(visualElement, definition) {\n    var resolved = resolveVariant(visualElement, definition);\n    var _a = resolved\n        ? visualElement.makeTargetAnimatable(resolved, false)\n        : {}, _b = _a.transitionEnd, transitionEnd = _b === void 0 ? {} : _b; _a.transition; var target = __rest(_a, [\"transitionEnd\", \"transition\"]);\n    target = __assign(__assign({}, target), transitionEnd);\n    for (var key in target) {\n        var value = resolveFinalValueInKeyframes(target[key]);\n        setMotionValue(visualElement, key, value);\n    }\n}\nfunction setVariants(visualElement, variantLabels) {\n    var reversedLabels = __spreadArray([], __read(variantLabels)).reverse();\n    reversedLabels.forEach(function (key) {\n        var _a;\n        var variant = visualElement.getVariant(key);\n        variant && setTarget(visualElement, variant);\n        (_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.forEach(function (child) {\n            setVariants(child, variantLabels);\n        });\n    });\n}\nfunction setValues(visualElement, definition) {\n    if (Array.isArray(definition)) {\n        return setVariants(visualElement, definition);\n    }\n    else if (typeof definition === \"string\") {\n        return setVariants(visualElement, [definition]);\n    }\n    else {\n        setTarget(visualElement, definition);\n    }\n}\nfunction checkTargetForNewValues(visualElement, target, origin) {\n    var _a, _b, _c;\n    var _d;\n    var newValueKeys = Object.keys(target).filter(function (key) { return !visualElement.hasValue(key); });\n    var numNewValues = newValueKeys.length;\n    if (!numNewValues)\n        return;\n    for (var i = 0; i < numNewValues; i++) {\n        var key = newValueKeys[i];\n        var targetValue = target[key];\n        var value = null;\n        /**\n         * If the target is a series of keyframes, we can use the first value\n         * in the array. If this first value is null, we'll still need to read from the DOM.\n         */\n        if (Array.isArray(targetValue)) {\n            value = targetValue[0];\n        }\n        /**\n         * If the target isn't keyframes, or the first keyframe was null, we need to\n         * first check if an origin value was explicitly defined in the transition as \"from\",\n         * if not read the value from the DOM. As an absolute fallback, take the defined target value.\n         */\n        if (value === null) {\n            value = (_b = (_a = origin[key]) !== null && _a !== void 0 ? _a : visualElement.readValue(key)) !== null && _b !== void 0 ? _b : target[key];\n        }\n        /**\n         * If value is still undefined or null, ignore it. Preferably this would throw,\n         * but this was causing issues in Framer.\n         */\n        if (value === undefined || value === null)\n            continue;\n        if (typeof value === \"string\" && isNumericalString(value)) {\n            // If this is a number read as a string, ie \"0\" or \"200\", convert it to a number\n            value = parseFloat(value);\n        }\n        else if (!findValueType(value) && complex.test(targetValue)) {\n            value = getAnimatableNone(key, targetValue);\n        }\n        visualElement.addValue(key, motionValue(value));\n        (_c = (_d = origin)[key]) !== null && _c !== void 0 ? _c : (_d[key] = value);\n        visualElement.setBaseTarget(key, value);\n    }\n}\nfunction getOriginFromTransition(key, transition) {\n    if (!transition)\n        return;\n    var valueTransition = transition[key] || transition[\"default\"] || transition;\n    return valueTransition.from;\n}\nfunction getOrigin(target, transition, visualElement) {\n    var _a, _b;\n    var origin = {};\n    for (var key in target) {\n        origin[key] =\n            (_a = getOriginFromTransition(key, transition)) !== null && _a !== void 0 ? _a : (_b = visualElement.getValue(key)) === null || _b === void 0 ? void 0 : _b.get();\n    }\n    return origin;\n}\n\nexport { checkTargetForNewValues, getOrigin, getOriginFromTransition, setTarget, setValues };\n","import { __read, __rest, __assign } from 'tslib';\nimport { startAnimation } from '../../animation/utils/transitions.js';\nimport { setTarget } from './setters.js';\nimport { resolveVariant } from './variants.js';\n\n/**\n * @internal\n */\nfunction animateVisualElement(visualElement, definition, options) {\n    if (options === void 0) { options = {}; }\n    visualElement.notifyAnimationStart();\n    var animation;\n    if (Array.isArray(definition)) {\n        var animations = definition.map(function (variant) {\n            return animateVariant(visualElement, variant, options);\n        });\n        animation = Promise.all(animations);\n    }\n    else if (typeof definition === \"string\") {\n        animation = animateVariant(visualElement, definition, options);\n    }\n    else {\n        var resolvedDefinition = typeof definition === \"function\"\n            ? resolveVariant(visualElement, definition, options.custom)\n            : definition;\n        animation = animateTarget(visualElement, resolvedDefinition, options);\n    }\n    return animation.then(function () {\n        return visualElement.notifyAnimationComplete(definition);\n    });\n}\nfunction animateVariant(visualElement, variant, options) {\n    var _a;\n    if (options === void 0) { options = {}; }\n    var resolved = resolveVariant(visualElement, variant, options.custom);\n    var _b = (resolved || {}).transition, transition = _b === void 0 ? visualElement.getDefaultTransition() || {} : _b;\n    if (options.transitionOverride) {\n        transition = options.transitionOverride;\n    }\n    /**\n     * If we have a variant, create a callback that runs it as an animation.\n     * Otherwise, we resolve a Promise immediately for a composable no-op.\n     */\n    var getAnimation = resolved\n        ? function () { return animateTarget(visualElement, resolved, options); }\n        : function () { return Promise.resolve(); };\n    /**\n     * If we have children, create a callback that runs all their animations.\n     * Otherwise, we resolve a Promise immediately for a composable no-op.\n     */\n    var getChildAnimations = ((_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.size)\n        ? function (forwardDelay) {\n            if (forwardDelay === void 0) { forwardDelay = 0; }\n            var _a = transition.delayChildren, delayChildren = _a === void 0 ? 0 : _a, staggerChildren = transition.staggerChildren, staggerDirection = transition.staggerDirection;\n            return animateChildren(visualElement, variant, delayChildren + forwardDelay, staggerChildren, staggerDirection, options);\n        }\n        : function () { return Promise.resolve(); };\n    /**\n     * If the transition explicitly defines a \"when\" option, we need to resolve either\n     * this animation or all children animations before playing the other.\n     */\n    var when = transition.when;\n    if (when) {\n        var _c = __read(when === \"beforeChildren\"\n            ? [getAnimation, getChildAnimations]\n            : [getChildAnimations, getAnimation], 2), first = _c[0], last = _c[1];\n        return first().then(last);\n    }\n    else {\n        return Promise.all([getAnimation(), getChildAnimations(options.delay)]);\n    }\n}\n/**\n * @internal\n */\nfunction animateTarget(visualElement, definition, _a) {\n    var _b;\n    var _c = _a === void 0 ? {} : _a, _d = _c.delay, delay = _d === void 0 ? 0 : _d, transitionOverride = _c.transitionOverride, type = _c.type;\n    var _e = visualElement.makeTargetAnimatable(definition), _f = _e.transition, transition = _f === void 0 ? visualElement.getDefaultTransition() : _f, transitionEnd = _e.transitionEnd, target = __rest(_e, [\"transition\", \"transitionEnd\"]);\n    if (transitionOverride)\n        transition = transitionOverride;\n    var animations = [];\n    var animationTypeState = type && ((_b = visualElement.animationState) === null || _b === void 0 ? void 0 : _b.getState()[type]);\n    for (var key in target) {\n        var value = visualElement.getValue(key);\n        var valueTarget = target[key];\n        if (!value ||\n            valueTarget === undefined ||\n            (animationTypeState &&\n                shouldBlockAnimation(animationTypeState, key))) {\n            continue;\n        }\n        var animation = startAnimation(key, value, valueTarget, __assign({ delay: delay }, transition));\n        animations.push(animation);\n    }\n    return Promise.all(animations).then(function () {\n        transitionEnd && setTarget(visualElement, transitionEnd);\n    });\n}\nfunction animateChildren(visualElement, variant, delayChildren, staggerChildren, staggerDirection, options) {\n    if (delayChildren === void 0) { delayChildren = 0; }\n    if (staggerChildren === void 0) { staggerChildren = 0; }\n    if (staggerDirection === void 0) { staggerDirection = 1; }\n    var animations = [];\n    var maxStaggerDuration = (visualElement.variantChildren.size - 1) * staggerChildren;\n    var generateStaggerDuration = staggerDirection === 1\n        ? function (i) {\n            if (i === void 0) { i = 0; }\n            return i * staggerChildren;\n        }\n        : function (i) {\n            if (i === void 0) { i = 0; }\n            return maxStaggerDuration - i * staggerChildren;\n        };\n    Array.from(visualElement.variantChildren)\n        .sort(sortByTreeOrder)\n        .forEach(function (child, i) {\n        animations.push(animateVariant(child, variant, __assign(__assign({}, options), { delay: delayChildren + generateStaggerDuration(i) })).then(function () { return child.notifyAnimationComplete(variant); }));\n    });\n    return Promise.all(animations);\n}\nfunction stopAnimation(visualElement) {\n    visualElement.forEachValue(function (value) { return value.stop(); });\n}\nfunction sortByTreeOrder(a, b) {\n    return a.sortNodePosition(b);\n}\n/**\n * Decide whether we should block this animation. Previously, we achieved this\n * just by checking whether the key was listed in protectedKeys, but this\n * posed problems if an animation was triggered by afterChildren and protectedKeys\n * had been set to true in the meantime.\n */\nfunction shouldBlockAnimation(_a, key) {\n    var protectedKeys = _a.protectedKeys, needsAnimating = _a.needsAnimating;\n    var shouldBlock = protectedKeys.hasOwnProperty(key) && needsAnimating[key] !== true;\n    needsAnimating[key] = false;\n    return shouldBlock;\n}\n\nexport { animateVisualElement, sortByTreeOrder, stopAnimation };\n","import { __spreadArray, __read, __assign, __rest } from 'tslib';\nimport { isAnimationControls } from '../../animation/utils/is-animation-controls.js';\nimport { isKeyframesTarget } from '../../animation/utils/is-keyframes-target.js';\nimport { shallowCompare } from '../../utils/shallow-compare.js';\nimport { animateVisualElement } from './animation.js';\nimport { AnimationType } from './types.js';\nimport { isVariantLabels, resolveVariant, isVariantLabel } from './variants.js';\n\nvar variantPriorityOrder = [\n    AnimationType.Animate,\n    AnimationType.Hover,\n    AnimationType.Tap,\n    AnimationType.Drag,\n    AnimationType.Focus,\n    AnimationType.Exit,\n];\nvar reversePriorityOrder = __spreadArray([], __read(variantPriorityOrder)).reverse();\nvar numAnimationTypes = variantPriorityOrder.length;\nfunction animateList(visualElement) {\n    return function (animations) {\n        return Promise.all(animations.map(function (_a) {\n            var animation = _a.animation, options = _a.options;\n            return animateVisualElement(visualElement, animation, options);\n        }));\n    };\n}\nfunction createAnimationState(visualElement) {\n    var animate = animateList(visualElement);\n    var state = createState();\n    var allAnimatedKeys = {};\n    var isInitialRender = true;\n    /**\n     * This function will be used to reduce the animation definitions for\n     * each active animation type into an object of resolved values for it.\n     */\n    var buildResolvedTypeValues = function (acc, definition) {\n        var resolved = resolveVariant(visualElement, definition);\n        if (resolved) {\n            resolved.transition; var transitionEnd = resolved.transitionEnd, target = __rest(resolved, [\"transition\", \"transitionEnd\"]);\n            acc = __assign(__assign(__assign({}, acc), target), transitionEnd);\n        }\n        return acc;\n    };\n    function isAnimated(key) {\n        return allAnimatedKeys[key] !== undefined;\n    }\n    /**\n     * This just allows us to inject mocked animation functions\n     * @internal\n     */\n    function setAnimateFunction(makeAnimator) {\n        animate = makeAnimator(visualElement);\n    }\n    /**\n     * When we receive new props, we need to:\n     * 1. Create a list of protected keys for each type. This is a directory of\n     *    value keys that are currently being \"handled\" by types of a higher priority\n     *    so that whenever an animation is played of a given type, these values are\n     *    protected from being animated.\n     * 2. Determine if an animation type needs animating.\n     * 3. Determine if any values have been removed from a type and figure out\n     *    what to animate those to.\n     */\n    function animateChanges(options, changedActiveType) {\n        var _a;\n        var props = visualElement.getProps();\n        var context = visualElement.getVariantContext(true) || {};\n        /**\n         * A list of animations that we'll build into as we iterate through the animation\n         * types. This will get executed at the end of the function.\n         */\n        var animations = [];\n        /**\n         * Keep track of which values have been removed. Then, as we hit lower priority\n         * animation types, we can check if they contain removed values and animate to that.\n         */\n        var removedKeys = new Set();\n        /**\n         * A dictionary of all encountered keys. This is an object to let us build into and\n         * copy it without iteration. Each time we hit an animation type we set its protected\n         * keys - the keys its not allowed to animate - to the latest version of this object.\n         */\n        var encounteredKeys = {};\n        /**\n         * If a variant has been removed at a given index, and this component is controlling\n         * variant animations, we want to ensure lower-priority variants are forced to animate.\n         */\n        var removedVariantIndex = Infinity;\n        var _loop_1 = function (i) {\n            var type = reversePriorityOrder[i];\n            var typeState = state[type];\n            var prop = (_a = props[type]) !== null && _a !== void 0 ? _a : context[type];\n            var propIsVariant = isVariantLabel(prop);\n            /**\n             * If this type has *just* changed isActive status, set activeDelta\n             * to that status. Otherwise set to null.\n             */\n            var activeDelta = type === changedActiveType ? typeState.isActive : null;\n            if (activeDelta === false)\n                removedVariantIndex = i;\n            /**\n             * If this prop is an inherited variant, rather than been set directly on the\n             * component itself, we want to make sure we allow the parent to trigger animations.\n             *\n             * TODO: Can probably change this to a !isControllingVariants check\n             */\n            var isInherited = prop === context[type] && prop !== props[type] && propIsVariant;\n            /**\n             *\n             */\n            if (isInherited &&\n                isInitialRender &&\n                visualElement.manuallyAnimateOnMount) {\n                isInherited = false;\n            }\n            /**\n             * Set all encountered keys so far as the protected keys for this type. This will\n             * be any key that has been animated or otherwise handled by active, higher-priortiy types.\n             */\n            typeState.protectedKeys = __assign({}, encounteredKeys);\n            // Check if we can skip analysing this prop early\n            if (\n            // If it isn't active and hasn't *just* been set as inactive\n            (!typeState.isActive && activeDelta === null) ||\n                // If we didn't and don't have any defined prop for this animation type\n                (!prop && !typeState.prevProp) ||\n                // Or if the prop doesn't define an animation\n                isAnimationControls(prop) ||\n                typeof prop === \"boolean\") {\n                return \"continue\";\n            }\n            /**\n             * As we go look through the values defined on this type, if we detect\n             * a changed value or a value that was removed in a higher priority, we set\n             * this to true and add this prop to the animation list.\n             */\n            var shouldAnimateType = variantsHaveChanged(typeState.prevProp, prop) ||\n                // If we're making this variant active, we want to always make it active\n                (type === changedActiveType &&\n                    typeState.isActive &&\n                    !isInherited &&\n                    propIsVariant) ||\n                // If we removed a higher-priority variant (i is in reverse order)\n                (i > removedVariantIndex && propIsVariant);\n            /**\n             * As animations can be set as variant lists, variants or target objects, we\n             * coerce everything to an array if it isn't one already\n             */\n            var definitionList = Array.isArray(prop) ? prop : [prop];\n            /**\n             * Build an object of all the resolved values. We'll use this in the subsequent\n             * animateChanges calls to determine whether a value has changed.\n             */\n            var resolvedValues = definitionList.reduce(buildResolvedTypeValues, {});\n            if (activeDelta === false)\n                resolvedValues = {};\n            /**\n             * Now we need to loop through all the keys in the prev prop and this prop,\n             * and decide:\n             * 1. If the value has changed, and needs animating\n             * 2. If it has been removed, and needs adding to the removedKeys set\n             * 3. If it has been removed in a higher priority type and needs animating\n             * 4. If it hasn't been removed in a higher priority but hasn't changed, and\n             *    needs adding to the type's protectedKeys list.\n             */\n            var _b = typeState.prevResolvedValues, prevResolvedValues = _b === void 0 ? {} : _b;\n            var allKeys = __assign(__assign({}, prevResolvedValues), resolvedValues);\n            var markToAnimate = function (key) {\n                shouldAnimateType = true;\n                removedKeys.delete(key);\n                typeState.needsAnimating[key] = true;\n            };\n            for (var key in allKeys) {\n                var next = resolvedValues[key];\n                var prev = prevResolvedValues[key];\n                // If we've already handled this we can just skip ahead\n                if (encounteredKeys.hasOwnProperty(key))\n                    continue;\n                /**\n                 * If the value has changed, we probably want to animate it.\n                 */\n                if (next !== prev) {\n                    /**\n                     * If both values are keyframes, we need to shallow compare them to\n                     * detect whether any value has changed. If it has, we animate it.\n                     */\n                    if (isKeyframesTarget(next) && isKeyframesTarget(prev)) {\n                        if (!shallowCompare(next, prev)) {\n                            markToAnimate(key);\n                        }\n                        else {\n                            /**\n                             * If it hasn't changed, we want to ensure it doesn't animate by\n                             * adding it to the list of protected keys.\n                             */\n                            typeState.protectedKeys[key] = true;\n                        }\n                    }\n                    else if (next !== undefined) {\n                        // If next is defined and doesn't equal prev, it needs animating\n                        markToAnimate(key);\n                    }\n                    else {\n                        // If it's undefined, it's been removed.\n                        removedKeys.add(key);\n                    }\n                }\n                else if (next !== undefined && removedKeys.has(key)) {\n                    /**\n                     * If next hasn't changed and it isn't undefined, we want to check if it's\n                     * been removed by a higher priority\n                     */\n                    markToAnimate(key);\n                }\n                else {\n                    /**\n                     * If it hasn't changed, we add it to the list of protected values\n                     * to ensure it doesn't get animated.\n                     */\n                    typeState.protectedKeys[key] = true;\n                }\n            }\n            /**\n             * Update the typeState so next time animateChanges is called we can compare the\n             * latest prop and resolvedValues to these.\n             */\n            typeState.prevProp = prop;\n            typeState.prevResolvedValues = resolvedValues;\n            /**\n             *\n             */\n            if (typeState.isActive) {\n                encounteredKeys = __assign(__assign({}, encounteredKeys), resolvedValues);\n            }\n            if (isInitialRender && visualElement.blockInitialAnimation) {\n                shouldAnimateType = false;\n            }\n            /**\n             * If this is an inherited prop we want to hard-block animations\n             * TODO: Test as this should probably still handle animations triggered\n             * by removed values?\n             */\n            if (shouldAnimateType && !isInherited) {\n                animations.push.apply(animations, __spreadArray([], __read(definitionList.map(function (animation) { return ({\n                    animation: animation,\n                    options: __assign({ type: type }, options),\n                }); }))));\n            }\n        };\n        /**\n         * Iterate through all animation types in reverse priority order. For each, we want to\n         * detect which values it's handling and whether or not they've changed (and therefore\n         * need to be animated). If any values have been removed, we want to detect those in\n         * lower priority props and flag for animation.\n         */\n        for (var i = 0; i < numAnimationTypes; i++) {\n            _loop_1(i);\n        }\n        allAnimatedKeys = __assign({}, encounteredKeys);\n        /**\n         * If there are some removed value that haven't been dealt with,\n         * we need to create a new animation that falls back either to the value\n         * defined in the style prop, or the last read value.\n         */\n        if (removedKeys.size) {\n            var fallbackAnimation_1 = {};\n            removedKeys.forEach(function (key) {\n                var fallbackTarget = visualElement.getBaseTarget(key);\n                if (fallbackTarget !== undefined) {\n                    fallbackAnimation_1[key] = fallbackTarget;\n                }\n            });\n            animations.push({ animation: fallbackAnimation_1 });\n        }\n        var shouldAnimate = Boolean(animations.length);\n        if (isInitialRender &&\n            props.initial === false &&\n            !visualElement.manuallyAnimateOnMount) {\n            shouldAnimate = false;\n        }\n        isInitialRender = false;\n        return shouldAnimate ? animate(animations) : Promise.resolve();\n    }\n    /**\n     * Change whether a certain animation type is active.\n     */\n    function setActive(type, isActive, options) {\n        var _a;\n        // If the active state hasn't changed, we can safely do nothing here\n        if (state[type].isActive === isActive)\n            return Promise.resolve();\n        // Propagate active change to children\n        (_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.forEach(function (child) { var _a; return (_a = child.animationState) === null || _a === void 0 ? void 0 : _a.setActive(type, isActive); });\n        state[type].isActive = isActive;\n        return animateChanges(options, type);\n    }\n    return {\n        isAnimated: isAnimated,\n        animateChanges: animateChanges,\n        setActive: setActive,\n        setAnimateFunction: setAnimateFunction,\n        getState: function () { return state; },\n    };\n}\nfunction variantsHaveChanged(prev, next) {\n    if (typeof next === \"string\") {\n        return next !== prev;\n    }\n    else if (isVariantLabels(next)) {\n        return !shallowCompare(next, prev);\n    }\n    return false;\n}\nfunction createTypeState(isActive) {\n    if (isActive === void 0) { isActive = false; }\n    return {\n        isActive: isActive,\n        protectedKeys: {},\n        needsAnimating: {},\n        prevResolvedValues: {},\n    };\n}\nfunction createState() {\n    var _a;\n    return _a = {},\n        _a[AnimationType.Animate] = createTypeState(true),\n        _a[AnimationType.Hover] = createTypeState(),\n        _a[AnimationType.Tap] = createTypeState(),\n        _a[AnimationType.Drag] = createTypeState(),\n        _a[AnimationType.Focus] = createTypeState(),\n        _a[AnimationType.Exit] = createTypeState(),\n        _a;\n}\n\nexport { createAnimationState, variantPriorityOrder, variantsHaveChanged };\n","import { __read } from 'tslib';\nimport { useEffect, useContext } from 'react';\nimport { isAnimationControls } from '../../animation/utils/is-animation-controls.js';\nimport { usePresence } from '../../components/AnimatePresence/use-presence.js';\nimport { PresenceContext } from '../../context/PresenceContext.js';\nimport { createAnimationState } from '../../render/utils/animation-state.js';\nimport { AnimationType } from '../../render/utils/types.js';\nimport { makeRenderlessComponent } from '../utils/make-renderless-component.js';\n\nvar animations = {\n    animation: makeRenderlessComponent(function (_a) {\n        var visualElement = _a.visualElement, animate = _a.animate;\n        /**\n         * We dynamically generate the AnimationState manager as it contains a reference\n         * to the underlying animation library. We only want to load that if we load this,\n         * so people can optionally code split it out using the `m` component.\n         */\n        visualElement.animationState || (visualElement.animationState = createAnimationState(visualElement));\n        /**\n         * Subscribe any provided AnimationControls to the component's VisualElement\n         */\n        if (isAnimationControls(animate)) {\n            useEffect(function () { return animate.subscribe(visualElement); }, [animate]);\n        }\n    }),\n    exit: makeRenderlessComponent(function (props) {\n        var custom = props.custom, visualElement = props.visualElement;\n        var _a = __read(usePresence(), 2), isPresent = _a[0], onExitComplete = _a[1];\n        var presenceContext = useContext(PresenceContext);\n        useEffect(function () {\n            var _a, _b;\n            var animation = (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Exit, !isPresent, { custom: (_b = presenceContext === null || presenceContext === void 0 ? void 0 : presenceContext.custom) !== null && _b !== void 0 ? _b : custom });\n            !isPresent && (animation === null || animation === void 0 ? void 0 : animation.then(onExitComplete));\n        }, [isPresent]);\n    }),\n};\n\nexport { animations };\n","var isPoint = function (point) {\n    return point.hasOwnProperty('x') && point.hasOwnProperty('y');\n};\n\nexport { isPoint };\n","import { isPoint } from './is-point.js';\n\nvar isPoint3D = function (point) {\n    return isPoint(point) && point.hasOwnProperty('z');\n};\n\nexport { isPoint3D };\n","import { isPoint } from './is-point.js';\nimport { isPoint3D } from './is-point-3d.js';\nimport { isNum } from './inc.js';\n\nvar distance1D = function (a, b) { return Math.abs(a - b); };\nfunction distance(a, b) {\n    if (isNum(a) && isNum(b)) {\n        return distance1D(a, b);\n    }\n    else if (isPoint(a) && isPoint(b)) {\n        var xDelta = distance1D(a.x, b.x);\n        var yDelta = distance1D(a.y, b.y);\n        var zDelta = isPoint3D(a) && isPoint3D(b) ? distance1D(a.z, b.z) : 0;\n        return Math.sqrt(Math.pow(xDelta, 2) + Math.pow(yDelta, 2) + Math.pow(zDelta, 2));\n    }\n}\n\nexport { distance };\n","import { __assign } from 'tslib';\nimport { isMouseEvent, isTouchEvent } from './utils/event-type.js';\nimport { extractEventInfo } from '../events/event-info.js';\nimport sync, { getFrameData, cancelSync } from 'framesync';\nimport { secondsToMilliseconds } from '../utils/time-conversion.js';\nimport { addPointerEvent } from '../events/use-pointer-event.js';\nimport { distance, pipe } from 'popmotion';\n\n/**\n * @internal\n */\nvar PanSession = /** @class */ (function () {\n    function PanSession(event, handlers, _a) {\n        var _this = this;\n        var _b = _a === void 0 ? {} : _a, transformPagePoint = _b.transformPagePoint;\n        /**\n         * @internal\n         */\n        this.startEvent = null;\n        /**\n         * @internal\n         */\n        this.lastMoveEvent = null;\n        /**\n         * @internal\n         */\n        this.lastMoveEventInfo = null;\n        /**\n         * @internal\n         */\n        this.handlers = {};\n        this.updatePoint = function () {\n            if (!(_this.lastMoveEvent && _this.lastMoveEventInfo))\n                return;\n            var info = getPanInfo(_this.lastMoveEventInfo, _this.history);\n            var isPanStarted = _this.startEvent !== null;\n            // Only start panning if the offset is larger than 3 pixels. If we make it\n            // any larger than this we'll want to reset the pointer history\n            // on the first update to avoid visual snapping to the cursoe.\n            var isDistancePastThreshold = distance(info.offset, { x: 0, y: 0 }) >= 3;\n            if (!isPanStarted && !isDistancePastThreshold)\n                return;\n            var point = info.point;\n            var timestamp = getFrameData().timestamp;\n            _this.history.push(__assign(__assign({}, point), { timestamp: timestamp }));\n            var _a = _this.handlers, onStart = _a.onStart, onMove = _a.onMove;\n            if (!isPanStarted) {\n                onStart && onStart(_this.lastMoveEvent, info);\n                _this.startEvent = _this.lastMoveEvent;\n            }\n            onMove && onMove(_this.lastMoveEvent, info);\n        };\n        this.handlePointerMove = function (event, info) {\n            _this.lastMoveEvent = event;\n            _this.lastMoveEventInfo = transformPoint(info, _this.transformPagePoint);\n            // Because Safari doesn't trigger mouseup events when it's above a `<select>`\n            if (isMouseEvent(event) && event.buttons === 0) {\n                _this.handlePointerUp(event, info);\n                return;\n            }\n            // Throttle mouse move event to once per frame\n            sync.update(_this.updatePoint, true);\n        };\n        this.handlePointerUp = function (event, info) {\n            _this.end();\n            var _a = _this.handlers, onEnd = _a.onEnd, onSessionEnd = _a.onSessionEnd;\n            var panInfo = getPanInfo(transformPoint(info, _this.transformPagePoint), _this.history);\n            if (_this.startEvent && onEnd) {\n                onEnd(event, panInfo);\n            }\n            onSessionEnd && onSessionEnd(event, panInfo);\n        };\n        // If we have more than one touch, don't start detecting this gesture\n        if (isTouchEvent(event) && event.touches.length > 1)\n            return;\n        this.handlers = handlers;\n        this.transformPagePoint = transformPagePoint;\n        var info = extractEventInfo(event);\n        var initialInfo = transformPoint(info, this.transformPagePoint);\n        var point = initialInfo.point;\n        var timestamp = getFrameData().timestamp;\n        this.history = [__assign(__assign({}, point), { timestamp: timestamp })];\n        var onSessionStart = handlers.onSessionStart;\n        onSessionStart &&\n            onSessionStart(event, getPanInfo(initialInfo, this.history));\n        this.removeListeners = pipe(addPointerEvent(window, \"pointermove\", this.handlePointerMove), addPointerEvent(window, \"pointerup\", this.handlePointerUp), addPointerEvent(window, \"pointercancel\", this.handlePointerUp));\n    }\n    PanSession.prototype.updateHandlers = function (handlers) {\n        this.handlers = handlers;\n    };\n    PanSession.prototype.end = function () {\n        this.removeListeners && this.removeListeners();\n        cancelSync.update(this.updatePoint);\n    };\n    return PanSession;\n}());\nfunction transformPoint(info, transformPagePoint) {\n    return transformPagePoint ? { point: transformPagePoint(info.point) } : info;\n}\nfunction subtractPoint(a, b) {\n    return { x: a.x - b.x, y: a.y - b.y };\n}\nfunction getPanInfo(_a, history) {\n    var point = _a.point;\n    return {\n        point: point,\n        delta: subtractPoint(point, lastDevicePoint(history)),\n        offset: subtractPoint(point, startDevicePoint(history)),\n        velocity: getVelocity(history, 0.1),\n    };\n}\nfunction startDevicePoint(history) {\n    return history[0];\n}\nfunction lastDevicePoint(history) {\n    return history[history.length - 1];\n}\nfunction getVelocity(history, timeDelta) {\n    if (history.length < 2) {\n        return { x: 0, y: 0 };\n    }\n    var i = history.length - 1;\n    var timestampedPoint = null;\n    var lastPoint = lastDevicePoint(history);\n    while (i >= 0) {\n        timestampedPoint = history[i];\n        if (lastPoint.timestamp - timestampedPoint.timestamp >\n            secondsToMilliseconds(timeDelta)) {\n            break;\n        }\n        i--;\n    }\n    if (!timestampedPoint) {\n        return { x: 0, y: 0 };\n    }\n    var time = (lastPoint.timestamp - timestampedPoint.timestamp) / 1000;\n    if (time === 0) {\n        return { x: 0, y: 0 };\n    }\n    var currentVelocity = {\n        x: (lastPoint.x - timestampedPoint.x) / time,\n        y: (lastPoint.y - timestampedPoint.y) / time,\n    };\n    if (currentVelocity.x === Infinity) {\n        currentVelocity.x = 0;\n    }\n    if (currentVelocity.y === Infinity) {\n        currentVelocity.y = 0;\n    }\n    return currentVelocity;\n}\n\nexport { PanSession };\n","// Call a handler once for each axis\nfunction eachAxis(handler) {\n    return [handler(\"x\"), handler(\"y\")];\n}\n\nexport { eachAxis };\n","import { __read } from 'tslib';\nimport { mix } from 'popmotion';\n\n/**\n * Apply constraints to a point. These constraints are both physical along an\n * axis, and an elastic factor that determines how much to constrain the point\n * by if it does lie outside the defined parameters.\n */\nfunction applyConstraints(point, _a, elastic) {\n    var min = _a.min, max = _a.max;\n    if (min !== undefined && point < min) {\n        // If we have a min point defined, and this is outside of that, constrain\n        point = elastic ? mix(min, point, elastic.min) : Math.max(point, min);\n    }\n    else if (max !== undefined && point > max) {\n        // If we have a max point defined, and this is outside of that, constrain\n        point = elastic ? mix(max, point, elastic.max) : Math.min(point, max);\n    }\n    return point;\n}\n/**\n * Calculates a min projection point based on a pointer, pointer progress\n * within the drag target, and constraints.\n *\n * For instance if an element was 100px width, we were dragging from 0.25\n * along this axis, the pointer is at 200px, and there were no constraints,\n * we would calculate a min projection point of 175px.\n */\nfunction calcConstrainedMinPoint(point, length, progress, constraints, elastic) {\n    // Calculate a min point for this axis and apply it to the current pointer\n    var min = point - length * progress;\n    return constraints ? applyConstraints(min, constraints, elastic) : min;\n}\n/**\n * Calculate constraints in terms of the viewport when defined relatively to the\n * measured axis. This is measured from the nearest edge, so a max constraint of 200\n * on an axis with a max value of 300 would return a constraint of 500 - axis length\n */\nfunction calcRelativeAxisConstraints(axis, min, max) {\n    return {\n        min: min !== undefined ? axis.min + min : undefined,\n        max: max !== undefined\n            ? axis.max + max - (axis.max - axis.min)\n            : undefined,\n    };\n}\n/**\n * Calculate constraints in terms of the viewport when\n * defined relatively to the measured bounding box.\n */\nfunction calcRelativeConstraints(layoutBox, _a) {\n    var top = _a.top, left = _a.left, bottom = _a.bottom, right = _a.right;\n    return {\n        x: calcRelativeAxisConstraints(layoutBox.x, left, right),\n        y: calcRelativeAxisConstraints(layoutBox.y, top, bottom),\n    };\n}\n/**\n * Calculate viewport constraints when defined as another viewport-relative axis\n */\nfunction calcViewportAxisConstraints(layoutAxis, constraintsAxis) {\n    var _a;\n    var min = constraintsAxis.min - layoutAxis.min;\n    var max = constraintsAxis.max - layoutAxis.max;\n    // If the constraints axis is actually smaller than the layout axis then we can\n    // flip the constraints\n    if (constraintsAxis.max - constraintsAxis.min <\n        layoutAxis.max - layoutAxis.min) {\n        _a = __read([max, min], 2), min = _a[0], max = _a[1];\n    }\n    return {\n        min: layoutAxis.min + min,\n        max: layoutAxis.min + max,\n    };\n}\n/**\n * Calculate viewport constraints when defined as another viewport-relative box\n */\nfunction calcViewportConstraints(layoutBox, constraintsBox) {\n    return {\n        x: calcViewportAxisConstraints(layoutBox.x, constraintsBox.x),\n        y: calcViewportAxisConstraints(layoutBox.y, constraintsBox.y),\n    };\n}\n/**\n * Calculate the an axis position based on two axes and a progress value.\n */\nfunction calcPositionFromProgress(axis, constraints, progress) {\n    var axisLength = axis.max - axis.min;\n    var min = mix(constraints.min, constraints.max - axisLength, progress);\n    return { min: min, max: min + axisLength };\n}\n/**\n * Rebase the calculated viewport constraints relative to the layout.min point.\n */\nfunction rebaseAxisConstraints(layout, constraints) {\n    var relativeConstraints = {};\n    if (constraints.min !== undefined) {\n        relativeConstraints.min = constraints.min - layout.min;\n    }\n    if (constraints.max !== undefined) {\n        relativeConstraints.max = constraints.max - layout.min;\n    }\n    return relativeConstraints;\n}\nvar defaultElastic = 0.35;\n/**\n * Accepts a dragElastic prop and returns resolved elastic values for each axis.\n */\nfunction resolveDragElastic(dragElastic) {\n    if (dragElastic === false) {\n        dragElastic = 0;\n    }\n    else if (dragElastic === true) {\n        dragElastic = defaultElastic;\n    }\n    return {\n        x: resolveAxisElastic(dragElastic, \"left\", \"right\"),\n        y: resolveAxisElastic(dragElastic, \"top\", \"bottom\"),\n    };\n}\nfunction resolveAxisElastic(dragElastic, minLabel, maxLabel) {\n    return {\n        min: resolvePointElastic(dragElastic, minLabel),\n        max: resolvePointElastic(dragElastic, maxLabel),\n    };\n}\nfunction resolvePointElastic(dragElastic, label) {\n    var _a;\n    return typeof dragElastic === \"number\"\n        ? dragElastic\n        : (_a = dragElastic[label]) !== null && _a !== void 0 ? _a : 0;\n}\n\nexport { applyConstraints, calcConstrainedMinPoint, calcPositionFromProgress, calcRelativeAxisConstraints, calcRelativeConstraints, calcViewportAxisConstraints, calcViewportConstraints, defaultElastic, rebaseAxisConstraints, resolveAxisElastic, resolveDragElastic, resolvePointElastic };\n","import { convertBoundingBoxToAxisBox, transformBoundingBox } from '../../../utils/geometry/index.js';\n\n/**\n * Measure and return the element bounding box.\n *\n * We convert the box into an AxisBox2D to make it easier to work with each axis\n * individually and programmatically.\n *\n * This function optionally accepts a transformPagePoint function which allows us to compensate\n * for, for instance, measuring the element within a scaled plane like a Framer devivce preview component.\n */\nfunction getBoundingBox(element, transformPagePoint) {\n    var box = element.getBoundingClientRect();\n    return convertBoundingBoxToAxisBox(transformBoundingBox(box, transformPagePoint));\n}\n\nexport { getBoundingBox };\n","import { mix, distance, clamp, progress } from 'popmotion';\n\nvar clampProgress = function (v) { return clamp(0, 1, v); };\n/**\n * Returns true if the provided value is within maxDistance of the provided target\n */\nfunction isNear(value, target, maxDistance) {\n    if (target === void 0) { target = 0; }\n    if (maxDistance === void 0) { maxDistance = 0.01; }\n    return distance(value, target) < maxDistance;\n}\nfunction calcLength(axis) {\n    return axis.max - axis.min;\n}\n/**\n * Calculate a transform origin relative to the source axis, between 0-1, that results\n * in an asthetically pleasing scale/transform needed to project from source to target.\n */\nfunction calcOrigin(source, target) {\n    var origin = 0.5;\n    var sourceLength = calcLength(source);\n    var targetLength = calcLength(target);\n    if (targetLength > sourceLength) {\n        origin = progress(target.min, target.max - sourceLength, source.min);\n    }\n    else if (sourceLength > targetLength) {\n        origin = progress(source.min, source.max - targetLength, target.min);\n    }\n    return clampProgress(origin);\n}\n/**\n * Update the AxisDelta with a transform that projects source into target.\n *\n * The transform `origin` is optional. If not provided, it'll be automatically\n * calculated based on the relative positions of the two bounding boxes.\n */\nfunction updateAxisDelta(delta, source, target, origin) {\n    if (origin === void 0) { origin = 0.5; }\n    delta.origin = origin;\n    delta.originPoint = mix(source.min, source.max, delta.origin);\n    delta.scale = calcLength(target) / calcLength(source);\n    if (isNear(delta.scale, 1, 0.0001))\n        delta.scale = 1;\n    delta.translate =\n        mix(target.min, target.max, delta.origin) - delta.originPoint;\n    if (isNear(delta.translate))\n        delta.translate = 0;\n}\n/**\n * Update the BoxDelta with a transform that projects the source into the target.\n *\n * The transform `origin` is optional. If not provided, it'll be automatically\n * calculated based on the relative positions of the two bounding boxes.\n */\nfunction updateBoxDelta(delta, source, target, origin) {\n    updateAxisDelta(delta.x, source.x, target.x, defaultOrigin(origin.originX));\n    updateAxisDelta(delta.y, source.y, target.y, defaultOrigin(origin.originY));\n}\n/**\n * Currently this only accepts numerical origins, measured as 0-1, but could\n * accept pixel values by comparing to the target axis.\n */\nfunction defaultOrigin(origin) {\n    return typeof origin === \"number\" ? origin : 0.5;\n}\nfunction calcRelativeAxis(target, relative, parent) {\n    target.min = parent.min + relative.min;\n    target.max = target.min + calcLength(relative);\n}\nfunction calcRelativeBox(projection, parentProjection) {\n    calcRelativeAxis(projection.target.x, projection.relativeTarget.x, parentProjection.target.x);\n    calcRelativeAxis(projection.target.y, projection.relativeTarget.y, parentProjection.target.y);\n}\n\nexport { calcOrigin, calcRelativeAxis, calcRelativeBox, isNear, updateAxisDelta, updateBoxDelta };\n","import { mix } from 'popmotion';\n\nfunction tweenAxis(target, prev, next, p) {\n    target.min = mix(prev.min, next.min, p);\n    target.max = mix(prev.max, next.max, p);\n}\nfunction calcRelativeOffsetAxis(parent, child) {\n    return {\n        min: child.min - parent.min,\n        max: child.max - parent.min,\n    };\n}\nfunction calcRelativeOffset(parent, child) {\n    return {\n        x: calcRelativeOffsetAxis(parent.x, child.x),\n        y: calcRelativeOffsetAxis(parent.y, child.y),\n    };\n}\nfunction checkIfParentHasChanged(prev, next) {\n    var prevId = prev.getLayoutId();\n    var nextId = next.getLayoutId();\n    return prevId !== nextId || (nextId === undefined && prev !== next);\n}\n\nexport { calcRelativeOffset, calcRelativeOffsetAxis, checkIfParentHasChanged, tweenAxis };\n","function isDraggable(visualElement) {\n    var _a = visualElement.getProps(), drag = _a.drag, _dragX = _a._dragX;\n    return drag && !_dragX;\n}\n\nexport { isDraggable };\n","import { __read } from 'tslib';\nimport { mix } from 'popmotion';\nimport { isDraggable } from '../../render/utils/is-draggable.js';\n\n/**\n * Reset an axis to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction resetAxis(axis, originAxis) {\n    axis.min = originAxis.min;\n    axis.max = originAxis.max;\n}\n/**\n * Reset a box to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction resetBox(box, originBox) {\n    resetAxis(box.x, originBox.x);\n    resetAxis(box.y, originBox.y);\n}\n/**\n * Scales a point based on a factor and an originPoint\n */\nfunction scalePoint(point, scale, originPoint) {\n    var distanceFromOrigin = point - originPoint;\n    var scaled = scale * distanceFromOrigin;\n    return originPoint + scaled;\n}\n/**\n * Applies a translate/scale delta to a point\n */\nfunction applyPointDelta(point, translate, scale, originPoint, boxScale) {\n    if (boxScale !== undefined) {\n        point = scalePoint(point, boxScale, originPoint);\n    }\n    return scalePoint(point, scale, originPoint) + translate;\n}\n/**\n * Applies a translate/scale delta to an axis\n */\nfunction applyAxisDelta(axis, translate, scale, originPoint, boxScale) {\n    if (translate === void 0) { translate = 0; }\n    if (scale === void 0) { scale = 1; }\n    axis.min = applyPointDelta(axis.min, translate, scale, originPoint, boxScale);\n    axis.max = applyPointDelta(axis.max, translate, scale, originPoint, boxScale);\n}\n/**\n * Applies a translate/scale delta to a box\n */\nfunction applyBoxDelta(box, _a) {\n    var x = _a.x, y = _a.y;\n    applyAxisDelta(box.x, x.translate, x.scale, x.originPoint);\n    applyAxisDelta(box.y, y.translate, y.scale, y.originPoint);\n}\n/**\n * Apply a transform to an axis from the latest resolved motion values.\n * This function basically acts as a bridge between a flat motion value map\n * and applyAxisDelta\n */\nfunction applyAxisTransforms(final, axis, transforms, _a) {\n    var _b = __read(_a, 3), key = _b[0], scaleKey = _b[1], originKey = _b[2];\n    // Copy the current axis to the final axis before mutation\n    final.min = axis.min;\n    final.max = axis.max;\n    var axisOrigin = transforms[originKey] !== undefined ? transforms[originKey] : 0.5;\n    var originPoint = mix(axis.min, axis.max, axisOrigin);\n    // Apply the axis delta to the final axis\n    applyAxisDelta(final, transforms[key], transforms[scaleKey], originPoint, transforms.scale);\n}\n/**\n * The names of the motion values we want to apply as translation, scale and origin.\n */\nvar xKeys = [\"x\", \"scaleX\", \"originX\"];\nvar yKeys = [\"y\", \"scaleY\", \"originY\"];\n/**\n * Apply a transform to a box from the latest resolved motion values.\n */\nfunction applyBoxTransforms(finalBox, box, transforms) {\n    applyAxisTransforms(finalBox.x, box.x, transforms, xKeys);\n    applyAxisTransforms(finalBox.y, box.y, transforms, yKeys);\n}\n/**\n * Remove a delta from a point. This is essentially the steps of applyPointDelta in reverse\n */\nfunction removePointDelta(point, translate, scale, originPoint, boxScale) {\n    point -= translate;\n    point = scalePoint(point, 1 / scale, originPoint);\n    if (boxScale !== undefined) {\n        point = scalePoint(point, 1 / boxScale, originPoint);\n    }\n    return point;\n}\n/**\n * Remove a delta from an axis. This is essentially the steps of applyAxisDelta in reverse\n */\nfunction removeAxisDelta(axis, translate, scale, origin, boxScale) {\n    if (translate === void 0) { translate = 0; }\n    if (scale === void 0) { scale = 1; }\n    if (origin === void 0) { origin = 0.5; }\n    var originPoint = mix(axis.min, axis.max, origin) - translate;\n    axis.min = removePointDelta(axis.min, translate, scale, originPoint, boxScale);\n    axis.max = removePointDelta(axis.max, translate, scale, originPoint, boxScale);\n}\n/**\n * Remove a transforms from an axis. This is essentially the steps of applyAxisTransforms in reverse\n * and acts as a bridge between motion values and removeAxisDelta\n */\nfunction removeAxisTransforms(axis, transforms, _a) {\n    var _b = __read(_a, 3), key = _b[0], scaleKey = _b[1], originKey = _b[2];\n    removeAxisDelta(axis, transforms[key], transforms[scaleKey], transforms[originKey], transforms.scale);\n}\n/**\n * Remove a transforms from an box. This is essentially the steps of applyAxisBox in reverse\n * and acts as a bridge between motion values and removeAxisDelta\n */\nfunction removeBoxTransforms(box, transforms) {\n    removeAxisTransforms(box.x, transforms, xKeys);\n    removeAxisTransforms(box.y, transforms, yKeys);\n}\n/**\n * Apply a tree of deltas to a box. We do this to calculate the effect of all the transforms\n * in a tree upon our box before then calculating how to project it into our desired viewport-relative box\n *\n * This is the final nested loop within updateLayoutDelta for future refactoring\n */\nfunction applyTreeDeltas(box, treeScale, treePath) {\n    var treeLength = treePath.length;\n    if (!treeLength)\n        return;\n    // Reset the treeScale\n    treeScale.x = treeScale.y = 1;\n    var node;\n    var delta;\n    for (var i = 0; i < treeLength; i++) {\n        node = treePath[i];\n        delta = node.getLayoutState().delta;\n        // Incoporate each ancestor's scale into a culmulative treeScale for this component\n        treeScale.x *= delta.x.scale;\n        treeScale.y *= delta.y.scale;\n        // Apply each ancestor's calculated delta into this component's recorded layout box\n        applyBoxDelta(box, delta);\n        // If this is a draggable ancestor, also incorporate the node's transform to the layout box\n        if (isDraggable(node)) {\n            applyBoxTransforms(box, box, node.getLatestValues());\n        }\n    }\n}\n\nexport { applyAxisDelta, applyAxisTransforms, applyBoxDelta, applyBoxTransforms, applyPointDelta, applyTreeDeltas, removeAxisDelta, removeAxisTransforms, removeBoxTransforms, removePointDelta, resetAxis, resetBox, scalePoint };\n","import { __rest, __assign, __spreadArray, __read } from 'tslib';\nimport { invariant } from 'hey-listen';\nimport { PanSession } from '../PanSession.js';\nimport { getGlobalLock } from './utils/lock.js';\nimport { isRefObject } from '../../utils/is-ref-object.js';\nimport { addPointerEvent } from '../../events/use-pointer-event.js';\nimport { addDomEvent } from '../../events/use-dom-event.js';\nimport { getViewportPointFromEvent } from '../../events/event-info.js';\nimport { axisBox, convertAxisBoxToBoundingBox, convertBoundingBoxToAxisBox } from '../../utils/geometry/index.js';\nimport { eachAxis } from '../../utils/each-axis.js';\nimport { calcRelativeConstraints, resolveDragElastic, rebaseAxisConstraints, calcViewportConstraints, applyConstraints, calcConstrainedMinPoint, calcPositionFromProgress, defaultElastic } from './utils/constraints.js';\nimport { getBoundingBox } from '../../render/dom/projection/measure.js';\nimport { calcOrigin } from '../../utils/geometry/delta-calc.js';\nimport { startAnimation } from '../../animation/utils/transitions.js';\nimport { AnimationType } from '../../render/utils/types.js';\nimport { collectProjectingAncestors, updateLayoutMeasurement, collectProjectingChildren } from '../../render/dom/projection/utils.js';\nimport { progress } from 'popmotion';\nimport { convertToRelativeProjection } from '../../render/dom/projection/convert-to-relative.js';\nimport { calcRelativeOffset } from '../../motion/features/layout/utils.js';\nimport { flushLayout, batchLayout } from '../../render/dom/utils/batch-layout.js';\nimport { flushSync } from 'framesync';\n\nvar elementDragControls = new WeakMap();\n/**\n *\n */\nvar lastPointerEvent;\nvar VisualElementDragControls = /** @class */ (function () {\n    function VisualElementDragControls(_a) {\n        var visualElement = _a.visualElement;\n        /**\n         * Track whether we're currently dragging.\n         *\n         * @internal\n         */\n        this.isDragging = false;\n        /**\n         * The current direction of drag, or `null` if both.\n         *\n         * @internal\n         */\n        this.currentDirection = null;\n        /**\n         * The permitted boundaries of travel, in pixels.\n         *\n         * @internal\n         */\n        this.constraints = false;\n        /**\n         * The per-axis resolved elastic values.\n         *\n         * @internal\n         */\n        this.elastic = axisBox();\n        /**\n         * A reference to the host component's latest props.\n         *\n         * @internal\n         */\n        this.props = {};\n        /**\n         * @internal\n         */\n        this.hasMutatedConstraints = false;\n        /**\n         * Track the initial position of the cursor relative to the dragging element\n         * when dragging starts as a value of 0-1 on each axis. We then use this to calculate\n         * an ideal bounding box for the VisualElement renderer to project into every frame.\n         *\n         * @internal\n         */\n        this.cursorProgress = {\n            x: 0.5,\n            y: 0.5,\n        };\n        // When updating _dragX, or _dragY instead of the VisualElement,\n        // persist their values between drag gestures.\n        this.originPoint = {};\n        // This is a reference to the global drag gesture lock, ensuring only one component\n        // can \"capture\" the drag of one or both axes.\n        // TODO: Look into moving this into pansession?\n        this.openGlobalLock = null;\n        /**\n         * @internal\n         */\n        this.panSession = null;\n        this.visualElement = visualElement;\n        this.visualElement.enableLayoutProjection();\n        elementDragControls.set(visualElement, this);\n    }\n    /**\n     * Instantiate a PanSession for the drag gesture\n     *\n     * @public\n     */\n    VisualElementDragControls.prototype.start = function (originEvent, _a) {\n        var _this = this;\n        var _b = _a === void 0 ? {} : _a, _c = _b.snapToCursor, snapToCursor = _c === void 0 ? false : _c, cursorProgress = _b.cursorProgress;\n        var onSessionStart = function (event) {\n            var _a;\n            // Stop any animations on both axis values immediately. This allows the user to throw and catch\n            // the component.\n            _this.stopMotion();\n            /**\n             * Save the initial point. We'll use this to calculate the pointer's position rather\n             * than the one we receive when the gesture actually starts. By then, the pointer will\n             * have already moved, and the perception will be of the pointer \"slipping\" across the element\n             */\n            var initialPoint = getViewportPointFromEvent(event).point;\n            (_a = _this.cancelLayout) === null || _a === void 0 ? void 0 : _a.call(_this);\n            _this.cancelLayout = batchLayout(function (read, write) {\n                var ancestors = collectProjectingAncestors(_this.visualElement);\n                var children = collectProjectingChildren(_this.visualElement);\n                var tree = __spreadArray(__spreadArray([], __read(ancestors)), __read(children));\n                var hasManuallySetCursorOrigin = false;\n                /**\n                 * Apply a simple lock to the projection target. This ensures no animations\n                 * can run on the projection box while this lock is active.\n                 */\n                _this.isLayoutDrag() && _this.visualElement.lockProjectionTarget();\n                write(function () {\n                    tree.forEach(function (element) { return element.resetTransform(); });\n                });\n                read(function () {\n                    updateLayoutMeasurement(_this.visualElement);\n                    children.forEach(updateLayoutMeasurement);\n                });\n                write(function () {\n                    tree.forEach(function (element) { return element.restoreTransform(); });\n                    if (snapToCursor) {\n                        hasManuallySetCursorOrigin = _this.snapToCursor(initialPoint);\n                    }\n                });\n                read(function () {\n                    var isRelativeDrag = Boolean(_this.getAxisMotionValue(\"x\") && !_this.isExternalDrag());\n                    if (!isRelativeDrag) {\n                        _this.visualElement.rebaseProjectionTarget(true, _this.visualElement.measureViewportBox(false));\n                    }\n                    _this.visualElement.scheduleUpdateLayoutProjection();\n                    /**\n                     * When dragging starts, we want to find where the cursor is relative to the bounding box\n                     * of the element. Every frame, we calculate a new bounding box using this relative position\n                     * and let the visualElement renderer figure out how to reproject the element into this bounding\n                     * box.\n                     *\n                     * By doing it this way, rather than applying an x/y transform directly to the element,\n                     * we can ensure the component always visually sticks to the cursor as we'd expect, even\n                     * if the DOM element itself changes layout as a result of React updates the user might\n                     * make based on the drag position.\n                     */\n                    var projection = _this.visualElement.projection;\n                    eachAxis(function (axis) {\n                        if (!hasManuallySetCursorOrigin) {\n                            var _a = projection.target[axis], min = _a.min, max = _a.max;\n                            _this.cursorProgress[axis] = cursorProgress\n                                ? cursorProgress[axis]\n                                : progress(min, max, initialPoint[axis]);\n                        }\n                        /**\n                         * If we have external drag MotionValues, record their origin point. On pointermove\n                         * we'll apply the pan gesture offset directly to this value.\n                         */\n                        var axisValue = _this.getAxisMotionValue(axis);\n                        if (axisValue) {\n                            _this.originPoint[axis] = axisValue.get();\n                        }\n                    });\n                });\n                write(function () {\n                    flushSync.update();\n                    flushSync.preRender();\n                    flushSync.render();\n                    flushSync.postRender();\n                });\n                read(function () { return _this.resolveDragConstraints(); });\n            });\n        };\n        var onStart = function (event, info) {\n            var _a, _b, _c;\n            // Attempt to grab the global drag gesture lock - maybe make this part of PanSession\n            var _d = _this.props, drag = _d.drag, dragPropagation = _d.dragPropagation;\n            if (drag && !dragPropagation) {\n                if (_this.openGlobalLock)\n                    _this.openGlobalLock();\n                _this.openGlobalLock = getGlobalLock(drag);\n                // If we don 't have the lock, don't start dragging\n                if (!_this.openGlobalLock)\n                    return;\n            }\n            flushLayout();\n            // Set current drag status\n            _this.isDragging = true;\n            _this.currentDirection = null;\n            // Fire onDragStart event\n            (_b = (_a = _this.props).onDragStart) === null || _b === void 0 ? void 0 : _b.call(_a, event, info);\n            (_c = _this.visualElement.animationState) === null || _c === void 0 ? void 0 : _c.setActive(AnimationType.Drag, true);\n        };\n        var onMove = function (event, info) {\n            var _a, _b, _c, _d;\n            var _e = _this.props, dragPropagation = _e.dragPropagation, dragDirectionLock = _e.dragDirectionLock;\n            // If we didn't successfully receive the gesture lock, early return.\n            if (!dragPropagation && !_this.openGlobalLock)\n                return;\n            var offset = info.offset;\n            // Attempt to detect drag direction if directionLock is true\n            if (dragDirectionLock && _this.currentDirection === null) {\n                _this.currentDirection = getCurrentDirection(offset);\n                // If we've successfully set a direction, notify listener\n                if (_this.currentDirection !== null) {\n                    (_b = (_a = _this.props).onDirectionLock) === null || _b === void 0 ? void 0 : _b.call(_a, _this.currentDirection);\n                }\n                return;\n            }\n            // Update each point with the latest position\n            _this.updateAxis(\"x\", info.point, offset);\n            _this.updateAxis(\"y\", info.point, offset);\n            // Fire onDrag event\n            (_d = (_c = _this.props).onDrag) === null || _d === void 0 ? void 0 : _d.call(_c, event, info);\n            // Update the last pointer event\n            lastPointerEvent = event;\n        };\n        var onSessionEnd = function (event, info) {\n            return _this.stop(event, info);\n        };\n        var transformPagePoint = this.props.transformPagePoint;\n        this.panSession = new PanSession(originEvent, {\n            onSessionStart: onSessionStart,\n            onStart: onStart,\n            onMove: onMove,\n            onSessionEnd: onSessionEnd,\n        }, { transformPagePoint: transformPagePoint });\n    };\n    VisualElementDragControls.prototype.resolveDragConstraints = function () {\n        var _this = this;\n        var _a = this.props, dragConstraints = _a.dragConstraints, dragElastic = _a.dragElastic;\n        var layout = this.visualElement.getLayoutState().layoutCorrected;\n        if (dragConstraints) {\n            this.constraints = isRefObject(dragConstraints)\n                ? this.resolveRefConstraints(layout, dragConstraints)\n                : calcRelativeConstraints(layout, dragConstraints);\n        }\n        else {\n            this.constraints = false;\n        }\n        this.elastic = resolveDragElastic(dragElastic);\n        /**\n         * If we're outputting to external MotionValues, we want to rebase the measured constraints\n         * from viewport-relative to component-relative.\n         */\n        if (this.constraints && !this.hasMutatedConstraints) {\n            eachAxis(function (axis) {\n                if (_this.getAxisMotionValue(axis)) {\n                    _this.constraints[axis] = rebaseAxisConstraints(layout[axis], _this.constraints[axis]);\n                }\n            });\n        }\n    };\n    VisualElementDragControls.prototype.resolveRefConstraints = function (layoutBox, constraints) {\n        var _a = this.props, onMeasureDragConstraints = _a.onMeasureDragConstraints, transformPagePoint = _a.transformPagePoint;\n        var constraintsElement = constraints.current;\n        invariant(constraintsElement !== null, \"If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.\");\n        this.constraintsBox = getBoundingBox(constraintsElement, transformPagePoint);\n        var measuredConstraints = calcViewportConstraints(layoutBox, this.constraintsBox);\n        /**\n         * If there's an onMeasureDragConstraints listener we call it and\n         * if different constraints are returned, set constraints to that\n         */\n        if (onMeasureDragConstraints) {\n            var userConstraints = onMeasureDragConstraints(convertAxisBoxToBoundingBox(measuredConstraints));\n            this.hasMutatedConstraints = !!userConstraints;\n            if (userConstraints) {\n                measuredConstraints = convertBoundingBoxToAxisBox(userConstraints);\n            }\n        }\n        return measuredConstraints;\n    };\n    VisualElementDragControls.prototype.cancelDrag = function () {\n        var _a, _b;\n        this.visualElement.unlockProjectionTarget();\n        (_a = this.cancelLayout) === null || _a === void 0 ? void 0 : _a.call(this);\n        this.isDragging = false;\n        this.panSession && this.panSession.end();\n        this.panSession = null;\n        if (!this.props.dragPropagation && this.openGlobalLock) {\n            this.openGlobalLock();\n            this.openGlobalLock = null;\n        }\n        (_b = this.visualElement.animationState) === null || _b === void 0 ? void 0 : _b.setActive(AnimationType.Drag, false);\n    };\n    VisualElementDragControls.prototype.stop = function (event, info) {\n        var _a, _b, _c;\n        (_a = this.panSession) === null || _a === void 0 ? void 0 : _a.end();\n        this.panSession = null;\n        var isDragging = this.isDragging;\n        this.cancelDrag();\n        if (!isDragging)\n            return;\n        var velocity = info.velocity;\n        this.animateDragEnd(velocity);\n        (_c = (_b = this.props).onDragEnd) === null || _c === void 0 ? void 0 : _c.call(_b, event, info);\n    };\n    VisualElementDragControls.prototype.snapToCursor = function (point) {\n        var _this = this;\n        return eachAxis(function (axis) {\n            var drag = _this.props.drag;\n            // If we're not dragging this axis, do an early return.\n            if (!shouldDrag(axis, drag, _this.currentDirection))\n                return;\n            var axisValue = _this.getAxisMotionValue(axis);\n            if (axisValue) {\n                var box = _this.visualElement.getLayoutState().layout;\n                var length_1 = box[axis].max - box[axis].min;\n                var center = box[axis].min + length_1 / 2;\n                var offset = point[axis] - center;\n                _this.originPoint[axis] = point[axis];\n                axisValue.set(offset);\n            }\n            else {\n                _this.cursorProgress[axis] = 0.5;\n                return true;\n            }\n        }).includes(true);\n    };\n    /**\n     * Update the specified axis with the latest pointer information.\n     */\n    VisualElementDragControls.prototype.updateAxis = function (axis, point, offset) {\n        var drag = this.props.drag;\n        // If we're not dragging this axis, do an early return.\n        if (!shouldDrag(axis, drag, this.currentDirection))\n            return;\n        return this.getAxisMotionValue(axis)\n            ? this.updateAxisMotionValue(axis, offset)\n            : this.updateVisualElementAxis(axis, point);\n    };\n    VisualElementDragControls.prototype.updateAxisMotionValue = function (axis, offset) {\n        var axisValue = this.getAxisMotionValue(axis);\n        if (!offset || !axisValue)\n            return;\n        var nextValue = this.originPoint[axis] + offset[axis];\n        var update = this.constraints\n            ? applyConstraints(nextValue, this.constraints[axis], this.elastic[axis])\n            : nextValue;\n        axisValue.set(update);\n    };\n    VisualElementDragControls.prototype.updateVisualElementAxis = function (axis, point) {\n        var _a;\n        // Get the actual layout bounding box of the element\n        var axisLayout = this.visualElement.getLayoutState().layout[axis];\n        // Calculate its current length. In the future we might want to lerp this to animate\n        // between lengths if the layout changes as we change the DOM\n        var axisLength = axisLayout.max - axisLayout.min;\n        // Get the initial progress that the pointer sat on this axis on gesture start.\n        var axisProgress = this.cursorProgress[axis];\n        // Calculate a new min point based on the latest pointer position, constraints and elastic\n        var min = calcConstrainedMinPoint(point[axis], axisLength, axisProgress, (_a = this.constraints) === null || _a === void 0 ? void 0 : _a[axis], this.elastic[axis]);\n        // Update the axis viewport target with this new min and the length\n        this.visualElement.setProjectionTargetAxis(axis, min, min + axisLength);\n    };\n    VisualElementDragControls.prototype.setProps = function (_a) {\n        var _b = _a.drag, drag = _b === void 0 ? false : _b, _c = _a.dragDirectionLock, dragDirectionLock = _c === void 0 ? false : _c, _d = _a.dragPropagation, dragPropagation = _d === void 0 ? false : _d, _e = _a.dragConstraints, dragConstraints = _e === void 0 ? false : _e, _f = _a.dragElastic, dragElastic = _f === void 0 ? defaultElastic : _f, _g = _a.dragMomentum, dragMomentum = _g === void 0 ? true : _g, remainingProps = __rest(_a, [\"drag\", \"dragDirectionLock\", \"dragPropagation\", \"dragConstraints\", \"dragElastic\", \"dragMomentum\"]);\n        this.props = __assign({ drag: drag,\n            dragDirectionLock: dragDirectionLock,\n            dragPropagation: dragPropagation,\n            dragConstraints: dragConstraints,\n            dragElastic: dragElastic,\n            dragMomentum: dragMomentum }, remainingProps);\n    };\n    /**\n     * Drag works differently depending on which props are provided.\n     *\n     * - If _dragX and _dragY are provided, we output the gesture delta directly to those motion values.\n     * - If the component will perform layout animations, we output the gesture to the component's\n     *      visual bounding box\n     * - Otherwise, we apply the delta to the x/y motion values.\n     */\n    VisualElementDragControls.prototype.getAxisMotionValue = function (axis) {\n        var _a = this.props, layout = _a.layout, layoutId = _a.layoutId;\n        var dragKey = \"_drag\" + axis.toUpperCase();\n        if (this.props[dragKey]) {\n            return this.props[dragKey];\n        }\n        else if (!layout && layoutId === undefined) {\n            return this.visualElement.getValue(axis, 0);\n        }\n    };\n    VisualElementDragControls.prototype.isLayoutDrag = function () {\n        return !this.getAxisMotionValue(\"x\");\n    };\n    VisualElementDragControls.prototype.isExternalDrag = function () {\n        var _a = this.props, _dragX = _a._dragX, _dragY = _a._dragY;\n        return _dragX || _dragY;\n    };\n    VisualElementDragControls.prototype.animateDragEnd = function (velocity) {\n        var _this = this;\n        var _a = this.props, drag = _a.drag, dragMomentum = _a.dragMomentum, dragElastic = _a.dragElastic, dragTransition = _a.dragTransition;\n        /**\n         * Everything beyond the drag gesture should be performed with\n         * relative projection so children stay in sync with their parent element.\n         */\n        var isRelative = convertToRelativeProjection(this.visualElement, this.isLayoutDrag() && !this.isExternalDrag());\n        /**\n         * If we had previously resolved constraints relative to the viewport,\n         * we need to also convert those to a relative coordinate space for the animation\n         */\n        var constraints = this.constraints || {};\n        if (isRelative &&\n            Object.keys(constraints).length &&\n            this.isLayoutDrag()) {\n            var projectionParent = this.visualElement.getProjectionParent();\n            if (projectionParent) {\n                var relativeConstraints_1 = calcRelativeOffset(projectionParent.projection.targetFinal, constraints);\n                eachAxis(function (axis) {\n                    var _a = relativeConstraints_1[axis], min = _a.min, max = _a.max;\n                    constraints[axis] = {\n                        min: isNaN(min) ? undefined : min,\n                        max: isNaN(max) ? undefined : max,\n                    };\n                });\n            }\n        }\n        var momentumAnimations = eachAxis(function (axis) {\n            var _a;\n            if (!shouldDrag(axis, drag, _this.currentDirection)) {\n                return;\n            }\n            var transition = (_a = constraints === null || constraints === void 0 ? void 0 : constraints[axis]) !== null && _a !== void 0 ? _a : {};\n            /**\n             * Overdamp the boundary spring if `dragElastic` is disabled. There's still a frame\n             * of spring animations so we should look into adding a disable spring option to `inertia`.\n             * We could do something here where we affect the `bounceStiffness` and `bounceDamping`\n             * using the value of `dragElastic`.\n             */\n            var bounceStiffness = dragElastic ? 200 : 1000000;\n            var bounceDamping = dragElastic ? 40 : 10000000;\n            var inertia = __assign(__assign({ type: \"inertia\", velocity: dragMomentum ? velocity[axis] : 0, bounceStiffness: bounceStiffness,\n                bounceDamping: bounceDamping, timeConstant: 750, restDelta: 1, restSpeed: 10 }, dragTransition), transition);\n            // If we're not animating on an externally-provided `MotionValue` we can use the\n            // component's animation controls which will handle interactions with whileHover (etc),\n            // otherwise we just have to animate the `MotionValue` itself.\n            return _this.getAxisMotionValue(axis)\n                ? _this.startAxisValueAnimation(axis, inertia)\n                : _this.visualElement.startLayoutAnimation(axis, inertia, isRelative);\n        });\n        // Run all animations and then resolve the new drag constraints.\n        return Promise.all(momentumAnimations).then(function () {\n            var _a, _b;\n            (_b = (_a = _this.props).onDragTransitionEnd) === null || _b === void 0 ? void 0 : _b.call(_a);\n        });\n    };\n    VisualElementDragControls.prototype.stopMotion = function () {\n        var _this = this;\n        eachAxis(function (axis) {\n            var axisValue = _this.getAxisMotionValue(axis);\n            axisValue\n                ? axisValue.stop()\n                : _this.visualElement.stopLayoutAnimation();\n        });\n    };\n    VisualElementDragControls.prototype.startAxisValueAnimation = function (axis, transition) {\n        var axisValue = this.getAxisMotionValue(axis);\n        if (!axisValue)\n            return;\n        var currentValue = axisValue.get();\n        axisValue.set(currentValue);\n        axisValue.set(currentValue); // Set twice to hard-reset velocity\n        return startAnimation(axis, axisValue, 0, transition);\n    };\n    VisualElementDragControls.prototype.scalePoint = function () {\n        var _this = this;\n        var _a = this.props, drag = _a.drag, dragConstraints = _a.dragConstraints;\n        if (!isRefObject(dragConstraints) || !this.constraintsBox)\n            return;\n        // Stop any current animations as there can be some visual glitching if we resize mid animation\n        this.stopMotion();\n        // Record the relative progress of the targetBox relative to the constraintsBox\n        var boxProgress = { x: 0, y: 0 };\n        eachAxis(function (axis) {\n            boxProgress[axis] = calcOrigin(_this.visualElement.projection.target[axis], _this.constraintsBox[axis]);\n        });\n        /**\n         * For each axis, calculate the current progress of the layout axis within the constraints.\n         * Then, using the latest layout and constraints measurements, reposition the new layout axis\n         * proportionally within the constraints.\n         */\n        this.updateConstraints(function () {\n            eachAxis(function (axis) {\n                if (!shouldDrag(axis, drag, null))\n                    return;\n                // Calculate the position of the targetBox relative to the constraintsBox using the\n                // previously calculated progress\n                var _a = calcPositionFromProgress(_this.visualElement.projection.target[axis], _this.constraintsBox[axis], boxProgress[axis]), min = _a.min, max = _a.max;\n                _this.visualElement.setProjectionTargetAxis(axis, min, max);\n            });\n        });\n        /**\n         * If any other draggable components are queuing the same tasks synchronously\n         * this will wait until they've all been scheduled before flushing.\n         */\n        setTimeout(flushLayout, 1);\n    };\n    VisualElementDragControls.prototype.updateConstraints = function (onReady) {\n        var _this = this;\n        this.cancelLayout = batchLayout(function (read, write) {\n            var ancestors = collectProjectingAncestors(_this.visualElement);\n            write(function () {\n                return ancestors.forEach(function (element) { return element.resetTransform(); });\n            });\n            read(function () { return updateLayoutMeasurement(_this.visualElement); });\n            write(function () {\n                return ancestors.forEach(function (element) { return element.restoreTransform(); });\n            });\n            read(function () {\n                _this.resolveDragConstraints();\n            });\n            if (onReady)\n                write(onReady);\n        });\n    };\n    VisualElementDragControls.prototype.mount = function (visualElement) {\n        var _this = this;\n        var element = visualElement.getInstance();\n        /**\n         * Attach a pointerdown event listener on this DOM element to initiate drag tracking.\n         */\n        var stopPointerListener = addPointerEvent(element, \"pointerdown\", function (event) {\n            var _a = _this.props, drag = _a.drag, _b = _a.dragListener, dragListener = _b === void 0 ? true : _b;\n            drag && dragListener && _this.start(event);\n        });\n        /**\n         * Attach a window resize listener to scale the draggable target within its defined\n         * constraints as the window resizes.\n         */\n        var stopResizeListener = addDomEvent(window, \"resize\", function () {\n            _this.scalePoint();\n        });\n        /**\n         * Ensure drag constraints are resolved correctly relative to the dragging element\n         * whenever its layout changes.\n         */\n        var stopLayoutUpdateListener = visualElement.onLayoutUpdate(function () {\n            if (_this.isDragging) {\n                _this.resolveDragConstraints();\n            }\n        });\n        /**\n         * If the previous component with this same layoutId was dragging at the time\n         * it was unmounted, we want to continue the same gesture on this component.\n         */\n        var prevDragCursor = visualElement.prevDragCursor;\n        if (prevDragCursor) {\n            this.start(lastPointerEvent, { cursorProgress: prevDragCursor });\n        }\n        /**\n         * Return a function that will teardown the drag gesture\n         */\n        return function () {\n            stopPointerListener === null || stopPointerListener === void 0 ? void 0 : stopPointerListener();\n            stopResizeListener === null || stopResizeListener === void 0 ? void 0 : stopResizeListener();\n            stopLayoutUpdateListener === null || stopLayoutUpdateListener === void 0 ? void 0 : stopLayoutUpdateListener();\n            _this.cancelDrag();\n        };\n    };\n    return VisualElementDragControls;\n}());\nfunction shouldDrag(direction, drag, currentDirection) {\n    return ((drag === true || drag === direction) &&\n        (currentDirection === null || currentDirection === direction));\n}\n/**\n * Based on an x/y offset determine the current drag direction. If both axis' offsets are lower\n * than the provided threshold, return `null`.\n *\n * @param offset - The x/y offset from origin.\n * @param lockThreshold - (Optional) - the minimum absolute offset before we can determine a drag direction.\n */\nfunction getCurrentDirection(offset, lockThreshold) {\n    if (lockThreshold === void 0) { lockThreshold = 10; }\n    var direction = null;\n    if (Math.abs(offset.y) > lockThreshold) {\n        direction = \"y\";\n    }\n    else if (Math.abs(offset.x) > lockThreshold) {\n        direction = \"x\";\n    }\n    return direction;\n}\n\nexport { VisualElementDragControls, elementDragControls };\n","import { calcRelativeOffset } from '../../../motion/features/layout/utils.js';\nimport { eachAxis } from '../../../utils/each-axis.js';\nimport { removeBoxTransforms } from '../../../utils/geometry/delta-apply.js';\n\n/**\n * Returns a boolean stating whether or not we converted the projection\n * to relative projection.\n */\nfunction convertToRelativeProjection(visualElement, isLayoutDrag) {\n    if (isLayoutDrag === void 0) { isLayoutDrag = true; }\n    var projectionParent = visualElement.getProjectionParent();\n    if (!projectionParent)\n        return false;\n    var offset;\n    if (isLayoutDrag) {\n        offset = calcRelativeOffset(projectionParent.projection.target, visualElement.projection.target);\n        removeBoxTransforms(offset, projectionParent.getLatestValues());\n    }\n    else {\n        offset = calcRelativeOffset(projectionParent.getLayoutState().layout, visualElement.getLayoutState().layout);\n    }\n    eachAxis(function (axis) {\n        return visualElement.setProjectionTargetAxis(axis, offset[axis].min, offset[axis].max, true);\n    });\n    return true;\n}\n\nexport { convertToRelativeProjection };\n","import { useDrag } from '../../gestures/drag/use-drag.js';\nimport { usePanGesture } from '../../gestures/use-pan-gesture.js';\nimport { makeRenderlessComponent } from '../utils/make-renderless-component.js';\n\nvar drag = {\n    pan: makeRenderlessComponent(usePanGesture),\n    drag: makeRenderlessComponent(useDrag),\n};\n\nexport { drag };\n","import { useRef, useContext, useEffect } from 'react';\nimport { MotionConfigContext } from '../context/MotionConfigContext.js';\nimport { useUnmountEffect } from '../utils/use-unmount-effect.js';\nimport { usePointerEvent } from '../events/use-pointer-event.js';\nimport { PanSession } from './PanSession.js';\n\n/**\n *\n * @param handlers -\n * @param ref -\n *\n * @internalremarks\n * Currently this sets new pan gesture functions every render. The memo route has been explored\n * in the past but ultimately we're still creating new functions every render. An optimisation\n * to explore is creating the pan gestures and loading them into a `ref`.\n *\n * @internal\n */\nfunction usePanGesture(_a) {\n    var onPan = _a.onPan, onPanStart = _a.onPanStart, onPanEnd = _a.onPanEnd, onPanSessionStart = _a.onPanSessionStart, visualElement = _a.visualElement;\n    var hasPanEvents = onPan || onPanStart || onPanEnd || onPanSessionStart;\n    var panSession = useRef(null);\n    var transformPagePoint = useContext(MotionConfigContext).transformPagePoint;\n    var handlers = {\n        onSessionStart: onPanSessionStart,\n        onStart: onPanStart,\n        onMove: onPan,\n        onEnd: function (event, info) {\n            panSession.current = null;\n            onPanEnd && onPanEnd(event, info);\n        },\n    };\n    useEffect(function () {\n        if (panSession.current !== null) {\n            panSession.current.updateHandlers(handlers);\n        }\n    });\n    function onPointerDown(event) {\n        panSession.current = new PanSession(event, handlers, {\n            transformPagePoint: transformPagePoint,\n        });\n    }\n    usePointerEvent(visualElement, \"pointerdown\", hasPanEvents && onPointerDown);\n    useUnmountEffect(function () { return panSession.current && panSession.current.end(); });\n}\n\nexport { usePanGesture };\n","import { __assign } from 'tslib';\nimport { useContext, useEffect } from 'react';\nimport { MotionConfigContext } from '../../context/MotionConfigContext.js';\nimport { VisualElementDragControls } from './VisualElementDragControls.js';\nimport { useConstant } from '../../utils/use-constant.js';\n\n/**\n * A hook that allows an element to be dragged.\n *\n * @internal\n */\nfunction useDrag(props) {\n    var groupDragControls = props.dragControls, visualElement = props.visualElement;\n    var transformPagePoint = useContext(MotionConfigContext).transformPagePoint;\n    var dragControls = useConstant(function () {\n        return new VisualElementDragControls({\n            visualElement: visualElement,\n        });\n    });\n    dragControls.setProps(__assign(__assign({}, props), { transformPagePoint: transformPagePoint }));\n    // If we've been provided a DragControls for manual control over the drag gesture,\n    // subscribe this component to it on mount.\n    useEffect(function () { return groupDragControls && groupDragControls.subscribe(dragControls); }, [dragControls]);\n    // Mount the drag controls with the visualElement\n    useEffect(function () { return dragControls.mount(visualElement); }, []);\n}\n\nexport { useDrag };\n","import { __rest, __assign, __read } from 'tslib';\nimport { invariant } from 'hey-listen';\n\nfunction isCSSVariable(value) {\n    return typeof value === \"string\" && value.startsWith(\"var(--\");\n}\n/**\n * Parse Framer's special CSS variable format into a CSS token and a fallback.\n *\n * ```\n * `var(--foo, #fff)` => [`--foo`, '#fff']\n * ```\n *\n * @param current\n */\nvar cssVariableRegex = /var\\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\\)/;\nfunction parseCSSVariable(current) {\n    var match = cssVariableRegex.exec(current);\n    if (!match)\n        return [,];\n    var _a = __read(match, 3), token = _a[1], fallback = _a[2];\n    return [token, fallback];\n}\nvar maxDepth = 4;\nfunction getVariableValue(current, element, depth) {\n    if (depth === void 0) { depth = 1; }\n    invariant(depth <= maxDepth, \"Max CSS variable fallback depth detected in property \\\"\" + current + \"\\\". This may indicate a circular fallback dependency.\");\n    var _a = __read(parseCSSVariable(current), 2), token = _a[0], fallback = _a[1];\n    // No CSS variable detected\n    if (!token)\n        return;\n    // Attempt to read this CSS variable off the element\n    var resolved = window.getComputedStyle(element).getPropertyValue(token);\n    if (resolved) {\n        return resolved.trim();\n    }\n    else if (isCSSVariable(fallback)) {\n        // The fallback might itself be a CSS variable, in which case we attempt to resolve it too.\n        return getVariableValue(fallback, element, depth + 1);\n    }\n    else {\n        return fallback;\n    }\n}\n/**\n * Resolve CSS variables from\n *\n * @internal\n */\nfunction resolveCSSVariables(visualElement, _a, transitionEnd) {\n    var _b;\n    var target = __rest(_a, []);\n    var element = visualElement.getInstance();\n    if (!(element instanceof HTMLElement))\n        return { target: target, transitionEnd: transitionEnd };\n    // If `transitionEnd` isn't `undefined`, clone it. We could clone `target` and `transitionEnd`\n    // only if they change but I think this reads clearer and this isn't a performance-critical path.\n    if (transitionEnd) {\n        transitionEnd = __assign({}, transitionEnd);\n    }\n    // Go through existing `MotionValue`s and ensure any existing CSS variables are resolved\n    visualElement.forEachValue(function (value) {\n        var current = value.get();\n        if (!isCSSVariable(current))\n            return;\n        var resolved = getVariableValue(current, element);\n        if (resolved)\n            value.set(resolved);\n    });\n    // Cycle through every target property and resolve CSS variables. Currently\n    // we only read single-var properties like `var(--foo)`, not `calc(var(--foo) + 20px)`\n    for (var key in target) {\n        var current = target[key];\n        if (!isCSSVariable(current))\n            continue;\n        var resolved = getVariableValue(current, element);\n        if (!resolved)\n            continue;\n        // Clone target if it hasn't already been\n        target[key] = resolved;\n        // If the user hasn't already set this key on `transitionEnd`, set it to the unresolved\n        // CSS variable. This will ensure that after the animation the component will reflect\n        // changes in the value of the CSS variable.\n        if (transitionEnd)\n            (_b = transitionEnd[key]) !== null && _b !== void 0 ? _b : (transitionEnd[key] = current);\n    }\n    return { target: target, transitionEnd: transitionEnd };\n}\n\nexport { cssVariableRegex, parseCSSVariable, resolveCSSVariables };\n","import { __assign } from 'tslib';\nimport { complex, px } from 'style-value-types';\nimport { mix } from 'popmotion';\nimport { cssVariableRegex } from '../utils/css-variables-conversion.js';\n\nfunction pixelsToPercent(pixels, axis) {\n    return (pixels / (axis.max - axis.min)) * 100;\n}\n/**\n * We always correct borderRadius as a percentage rather than pixels to reduce paints.\n * For example, if you are projecting a box that is 100px wide with a 10px borderRadius\n * into a box that is 200px wide with a 20px borderRadius, that is actually a 10%\n * borderRadius in both states. If we animate between the two in pixels that will trigger\n * a paint each time. If we animate between the two in percentage we'll avoid a paint.\n */\nfunction correctBorderRadius(latest, _layoutState, _a) {\n    var target = _a.target;\n    /**\n     * If latest is a string, if it's a percentage we can return immediately as it's\n     * going to be stretched appropriately. Otherwise, if it's a pixel, convert it to a number.\n     */\n    if (typeof latest === \"string\") {\n        if (px.test(latest)) {\n            latest = parseFloat(latest);\n        }\n        else {\n            return latest;\n        }\n    }\n    /**\n     * If latest is a number, it's a pixel value. We use the current viewportBox to calculate that\n     * pixel value as a percentage of each axis\n     */\n    var x = pixelsToPercent(latest, target.x);\n    var y = pixelsToPercent(latest, target.y);\n    return x + \"% \" + y + \"%\";\n}\nvar varToken = \"_$css\";\nfunction correctBoxShadow(latest, _a) {\n    var delta = _a.delta, treeScale = _a.treeScale;\n    var original = latest;\n    /**\n     * We need to first strip and store CSS variables from the string.\n     */\n    var containsCSSVariables = latest.includes(\"var(\");\n    var cssVariables = [];\n    if (containsCSSVariables) {\n        latest = latest.replace(cssVariableRegex, function (match) {\n            cssVariables.push(match);\n            return varToken;\n        });\n    }\n    var shadow = complex.parse(latest);\n    // TODO: Doesn't support multiple shadows\n    if (shadow.length > 5)\n        return original;\n    var template = complex.createTransformer(latest);\n    var offset = typeof shadow[0] !== \"number\" ? 1 : 0;\n    // Calculate the overall context scale\n    var xScale = delta.x.scale * treeScale.x;\n    var yScale = delta.y.scale * treeScale.y;\n    shadow[0 + offset] /= xScale;\n    shadow[1 + offset] /= yScale;\n    /**\n     * Ideally we'd correct x and y scales individually, but because blur and\n     * spread apply to both we have to take a scale average and apply that instead.\n     * We could potentially improve the outcome of this by incorporating the ratio between\n     * the two scales.\n     */\n    var averageScale = mix(xScale, yScale, 0.5);\n    // Blur\n    if (typeof shadow[2 + offset] === \"number\")\n        shadow[2 + offset] /= averageScale;\n    // Spread\n    if (typeof shadow[3 + offset] === \"number\")\n        shadow[3 + offset] /= averageScale;\n    var output = template(shadow);\n    if (containsCSSVariables) {\n        var i_1 = 0;\n        output = output.replace(varToken, function () {\n            var cssVariable = cssVariables[i_1];\n            i_1++;\n            return cssVariable;\n        });\n    }\n    return output;\n}\nvar borderCorrectionDefinition = {\n    process: correctBorderRadius,\n};\nvar defaultScaleCorrectors = {\n    borderRadius: __assign(__assign({}, borderCorrectionDefinition), { applyTo: [\n            \"borderTopLeftRadius\",\n            \"borderTopRightRadius\",\n            \"borderBottomLeftRadius\",\n            \"borderBottomRightRadius\",\n        ] }),\n    borderTopLeftRadius: borderCorrectionDefinition,\n    borderTopRightRadius: borderCorrectionDefinition,\n    borderBottomLeftRadius: borderCorrectionDefinition,\n    borderBottomRightRadius: borderCorrectionDefinition,\n    boxShadow: {\n        process: correctBoxShadow,\n    },\n};\n\nexport { correctBorderRadius, correctBoxShadow, defaultScaleCorrectors, pixelsToPercent };\n","import { __extends, __rest, __assign, __read } from 'tslib';\nimport * as React from 'react';\nimport { eachAxis } from '../../../utils/each-axis.js';\nimport { startAnimation, getValueTransition } from '../../../animation/utils/transitions.js';\nimport { checkIfParentHasChanged, calcRelativeOffset, tweenAxis } from './utils.js';\nimport { VisibilityAction } from '../../../components/AnimateSharedLayout/types.js';\nimport { usePresence } from '../../../components/AnimatePresence/use-presence.js';\nimport { axisBox } from '../../../utils/geometry/index.js';\nimport { addScaleCorrection } from '../../../render/dom/projection/scale-correction.js';\nimport { defaultScaleCorrectors } from '../../../render/dom/projection/default-scale-correctors.js';\n\nvar progressTarget = 1000;\nvar Animate = /** @class */ (function (_super) {\n    __extends(Animate, _super);\n    function Animate() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        /**\n         * A mutable object that tracks the target viewport box\n         * for the current animation frame.\n         */\n        _this.frameTarget = axisBox();\n        /**\n         * The current animation target, we use this to check whether to start\n         * a new animation or continue the existing one.\n         */\n        _this.currentAnimationTarget = axisBox();\n        /**\n         * Track whether we're animating this axis.\n         */\n        _this.isAnimating = {\n            x: false,\n            y: false,\n        };\n        _this.stopAxisAnimation = {\n            x: undefined,\n            y: undefined,\n        };\n        _this.isAnimatingTree = false;\n        _this.animate = function (target, origin, _a) {\n            if (_a === void 0) { _a = {}; }\n            var originBox = _a.originBox, targetBox = _a.targetBox, visibilityAction = _a.visibilityAction, shouldStackAnimate = _a.shouldStackAnimate, onComplete = _a.onComplete, prevParent = _a.prevParent, config = __rest(_a, [\"originBox\", \"targetBox\", \"visibilityAction\", \"shouldStackAnimate\", \"onComplete\", \"prevParent\"]);\n            var _b = _this.props, visualElement = _b.visualElement, layout = _b.layout;\n            /**\n             * Early return if we've been instructed not to animate this render.\n             */\n            if (shouldStackAnimate === false) {\n                _this.isAnimatingTree = false;\n                return _this.safeToRemove();\n            }\n            /**\n             * Prioritise tree animations\n             */\n            if (_this.isAnimatingTree && shouldStackAnimate !== true) {\n                return;\n            }\n            else if (shouldStackAnimate) {\n                _this.isAnimatingTree = true;\n            }\n            /**\n             * Allow the measured origin (prev bounding box) and target (actual layout) to be\n             * overridden by the provided config.\n             */\n            origin = originBox || origin;\n            target = targetBox || target;\n            /**\n             * If this element has a projecting parent, there's an opportunity to animate\n             * it relatively to that parent rather than relatively to the viewport. This\n             * allows us to add orchestrated animations.\n             */\n            var isRelative = false;\n            var projectionParent = visualElement.getProjectionParent();\n            if (projectionParent) {\n                var prevParentViewportBox = projectionParent.prevViewportBox;\n                var parentLayout = projectionParent.getLayoutState().layout;\n                /**\n                 * If we're being provided a previous parent VisualElement by AnimateSharedLayout\n                 */\n                if (prevParent) {\n                    /**\n                     * If we've been provided an explicit target box it means we're animating back\n                     * to this previous parent. So we can make a relative box by comparing to the previous\n                     * parent's layout\n                     */\n                    if (targetBox) {\n                        parentLayout = prevParent.getLayoutState().layout;\n                    }\n                    /**\n                     * Likewise if we've been provided an explicit origin box it means we're\n                     * animating out from a different element. So we should figure out where that was\n                     * on screen relative to the new parent element.\n                     */\n                    if (originBox &&\n                        !checkIfParentHasChanged(prevParent, projectionParent) &&\n                        prevParent.prevViewportBox) {\n                        prevParentViewportBox = prevParent.prevViewportBox;\n                    }\n                }\n                if (prevParentViewportBox &&\n                    isProvidedCorrectDataForRelativeSharedLayout(prevParent, originBox, targetBox)) {\n                    isRelative = true;\n                    origin = calcRelativeOffset(prevParentViewportBox, origin);\n                    target = calcRelativeOffset(parentLayout, target);\n                }\n            }\n            var boxHasMoved = hasMoved(origin, target);\n            var animations = eachAxis(function (axis) {\n                var _a, _b;\n                /**\n                 * If layout is set to \"position\", we can resize the origin box based on the target\n                 * box and only animate its position.\n                 */\n                if (layout === \"position\") {\n                    var targetLength = target[axis].max - target[axis].min;\n                    origin[axis].max = origin[axis].min + targetLength;\n                }\n                if (visualElement.projection.isTargetLocked) {\n                    return;\n                }\n                else if (visibilityAction !== undefined) {\n                    visualElement.setVisibility(visibilityAction === VisibilityAction.Show);\n                }\n                else if (boxHasMoved) {\n                    // If the box has moved, animate between it's current visual state and its\n                    // final state\n                    return _this.animateAxis(axis, target[axis], origin[axis], __assign(__assign({}, config), { isRelative: isRelative }));\n                }\n                else {\n                    (_b = (_a = _this.stopAxisAnimation)[axis]) === null || _b === void 0 ? void 0 : _b.call(_a);\n                    // If the box has remained in the same place, immediately set the axis target\n                    // to the final desired state\n                    return visualElement.setProjectionTargetAxis(axis, target[axis].min, target[axis].max, isRelative);\n                }\n            });\n            // Force a render to ensure there's no flash of uncorrected bounding box.\n            visualElement.syncRender();\n            /**\n             * If this visualElement isn't present (ie it's been removed from the tree by the user but\n             * kept in by the tree by AnimatePresence) then call safeToRemove when all axis animations\n             * have successfully finished.\n             */\n            return Promise.all(animations).then(function () {\n                _this.isAnimatingTree = false;\n                onComplete && onComplete();\n                visualElement.notifyLayoutAnimationComplete();\n            });\n        };\n        return _this;\n    }\n    Animate.prototype.componentDidMount = function () {\n        var _this = this;\n        var visualElement = this.props.visualElement;\n        visualElement.animateMotionValue = startAnimation;\n        visualElement.enableLayoutProjection();\n        this.unsubLayoutReady = visualElement.onLayoutUpdate(this.animate);\n        visualElement.layoutSafeToRemove = function () { return _this.safeToRemove(); };\n        addScaleCorrection(defaultScaleCorrectors);\n    };\n    Animate.prototype.componentWillUnmount = function () {\n        var _this = this;\n        this.unsubLayoutReady();\n        eachAxis(function (axis) { var _a, _b; return (_b = (_a = _this.stopAxisAnimation)[axis]) === null || _b === void 0 ? void 0 : _b.call(_a); });\n    };\n    /**\n     * TODO: This manually performs animations on the visualElement's layout progress\n     * values. It'd be preferable to amend the startLayoutAxisAnimation\n     * API to accept more custom animations like this.\n     */\n    Animate.prototype.animateAxis = function (axis, target, origin, _a) {\n        var _this = this;\n        var _b, _c;\n        var _d = _a === void 0 ? {} : _a, transition = _d.transition, isRelative = _d.isRelative;\n        /**\n         * If we're not animating to a new target, don't run this animation\n         */\n        if (this.isAnimating[axis] &&\n            axisIsEqual(target, this.currentAnimationTarget[axis])) {\n            return;\n        }\n        (_c = (_b = this.stopAxisAnimation)[axis]) === null || _c === void 0 ? void 0 : _c.call(_b);\n        this.isAnimating[axis] = true;\n        var visualElement = this.props.visualElement;\n        var frameTarget = this.frameTarget[axis];\n        var layoutProgress = visualElement.getProjectionAnimationProgress()[axis];\n        /**\n         * Set layout progress back to 0. We set it twice to hard-reset any velocity that might\n         * be re-incoporated into a subsequent spring animation.\n         */\n        layoutProgress.clearListeners();\n        layoutProgress.set(0);\n        layoutProgress.set(0);\n        /**\n         * Create an animation function to run once per frame. This will tween the visual bounding box from\n         * origin to target using the latest progress value.\n         */\n        var frame = function () {\n            // Convert the latest layoutProgress, which is a value from 0-1000, into a 0-1 progress\n            var p = layoutProgress.get() / progressTarget;\n            // Tween the axis and update the visualElement with the latest values\n            tweenAxis(frameTarget, origin, target, p);\n            visualElement.setProjectionTargetAxis(axis, frameTarget.min, frameTarget.max, isRelative);\n        };\n        // Synchronously run a frame to ensure there's no flash of the uncorrected bounding box.\n        frame();\n        // Create a function to stop animation on this specific axis\n        var unsubscribeProgress = layoutProgress.onChange(frame);\n        this.stopAxisAnimation[axis] = function () {\n            _this.isAnimating[axis] = false;\n            layoutProgress.stop();\n            unsubscribeProgress();\n        };\n        this.currentAnimationTarget[axis] = target;\n        var layoutTransition = transition ||\n            visualElement.getDefaultTransition() ||\n            defaultLayoutTransition;\n        // Start the animation on this axis\n        var animation = startAnimation(axis === \"x\" ? \"layoutX\" : \"layoutY\", layoutProgress, progressTarget, layoutTransition && getValueTransition(layoutTransition, \"layout\")).then(this.stopAxisAnimation[axis]);\n        return animation;\n    };\n    Animate.prototype.safeToRemove = function () {\n        var _a, _b;\n        (_b = (_a = this.props).safeToRemove) === null || _b === void 0 ? void 0 : _b.call(_a);\n    };\n    Animate.prototype.render = function () {\n        return null;\n    };\n    return Animate;\n}(React.Component));\nfunction AnimateLayoutContextProvider(props) {\n    var _a = __read(usePresence(), 2), safeToRemove = _a[1];\n    return React.createElement(Animate, __assign({}, props, { safeToRemove: safeToRemove }));\n}\nfunction hasMoved(a, b) {\n    return (!isZeroBox(a) &&\n        !isZeroBox(b) &&\n        (!axisIsEqual(a.x, b.x) || !axisIsEqual(a.y, b.y)));\n}\nvar zeroAxis = { min: 0, max: 0 };\nfunction isZeroBox(a) {\n    return axisIsEqual(a.x, zeroAxis) && axisIsEqual(a.y, zeroAxis);\n}\nfunction axisIsEqual(a, b) {\n    return a.min === b.min && a.max === b.max;\n}\nvar defaultLayoutTransition = {\n    duration: 0.45,\n    ease: [0.4, 0, 0.1, 1],\n};\nfunction isProvidedCorrectDataForRelativeSharedLayout(prevParent, originBox, targetBox) {\n    return prevParent || (!prevParent && !(originBox || targetBox));\n}\n\nexport { AnimateLayoutContextProvider };\n","import { __extends, __assign } from 'tslib';\nimport React__default, { useContext } from 'react';\nimport { isSharedLayout, SharedLayoutContext, FramerTreeLayoutContext } from '../../../context/SharedLayoutContext.js';\nimport { snapshotViewportBox } from '../../../render/dom/projection/utils.js';\n\n/**\n * This component is responsible for scheduling the measuring of the motion component\n */\nvar Measure = /** @class */ (function (_super) {\n    __extends(Measure, _super);\n    function Measure() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /**\n     * If this is a child of a SyncContext, register the VisualElement with it on mount.\n     */\n    Measure.prototype.componentDidMount = function () {\n        var _a = this.props, syncLayout = _a.syncLayout, framerSyncLayout = _a.framerSyncLayout, visualElement = _a.visualElement;\n        isSharedLayout(syncLayout) && syncLayout.register(visualElement);\n        isSharedLayout(framerSyncLayout) &&\n            framerSyncLayout.register(visualElement);\n        visualElement.onUnmount(function () {\n            if (isSharedLayout(syncLayout)) {\n                syncLayout.remove(visualElement);\n            }\n            if (isSharedLayout(framerSyncLayout)) {\n                framerSyncLayout.remove(visualElement);\n            }\n        });\n    };\n    /**\n     * If this is a child of a SyncContext, notify it that it needs to re-render. It will then\n     * handle the snapshotting.\n     *\n     * If it is stand-alone component, add it to the batcher.\n     */\n    Measure.prototype.getSnapshotBeforeUpdate = function () {\n        var _a = this.props, syncLayout = _a.syncLayout, visualElement = _a.visualElement;\n        if (isSharedLayout(syncLayout)) {\n            syncLayout.syncUpdate();\n        }\n        else {\n            snapshotViewportBox(visualElement);\n            syncLayout.add(visualElement);\n        }\n        return null;\n    };\n    Measure.prototype.componentDidUpdate = function () {\n        var syncLayout = this.props.syncLayout;\n        if (!isSharedLayout(syncLayout))\n            syncLayout.flush();\n    };\n    Measure.prototype.render = function () {\n        return null;\n    };\n    return Measure;\n}(React__default.Component));\nfunction MeasureContextProvider(props) {\n    var syncLayout = useContext(SharedLayoutContext);\n    var framerSyncLayout = useContext(FramerTreeLayoutContext);\n    return (React__default.createElement(Measure, __assign({}, props, { syncLayout: syncLayout, framerSyncLayout: framerSyncLayout })));\n}\n\nexport { MeasureContextProvider };\n","import { AnimateLayoutContextProvider } from './Animate.js';\nimport { MeasureContextProvider } from './Measure.js';\n\nvar layoutAnimations = {\n    measureLayout: MeasureContextProvider,\n    layoutAnimation: AnimateLayoutContextProvider,\n};\n\nexport { layoutAnimations };\n","import { axisBox, delta } from '../../utils/geometry/index.js';\n\nvar createProjectionState = function () { return ({\n    isEnabled: false,\n    isHydrated: false,\n    isTargetLocked: false,\n    target: axisBox(),\n    targetFinal: axisBox(),\n}); };\nfunction createLayoutState() {\n    return {\n        isHydrated: false,\n        layout: axisBox(),\n        layoutCorrected: axisBox(),\n        treeScale: { x: 1, y: 1 },\n        delta: delta(),\n        deltaFinal: delta(),\n        deltaTransform: \"\",\n    };\n}\nvar zeroLayout = createLayoutState();\n\nexport { createLayoutState, createProjectionState, zeroLayout };\n","import { zeroLayout } from '../../utils/state.js';\n\n/**\n * Build a transform style that takes a calculated delta between the element's current\n * space on screen and projects it into the desired space.\n */\nfunction buildLayoutProjectionTransform(_a, treeScale, latestTransform) {\n    var x = _a.x, y = _a.y;\n    /**\n     * The translations we use to calculate are always relative to the viewport coordinate space.\n     * But when we apply scales, we also scale the coordinate space of an element and its children.\n     * For instance if we have a treeScale (the culmination of all parent scales) of 0.5 and we need\n     * to move an element 100 pixels, we actually need to move it 200 in within that scaled space.\n     */\n    var xTranslate = x.translate / treeScale.x;\n    var yTranslate = y.translate / treeScale.y;\n    var transform = \"translate3d(\" + xTranslate + \"px, \" + yTranslate + \"px, 0) \";\n    if (latestTransform) {\n        var rotate = latestTransform.rotate, rotateX = latestTransform.rotateX, rotateY = latestTransform.rotateY;\n        if (rotate)\n            transform += \"rotate(\" + rotate + \") \";\n        if (rotateX)\n            transform += \"rotateX(\" + rotateX + \") \";\n        if (rotateY)\n            transform += \"rotateY(\" + rotateY + \") \";\n    }\n    transform += \"scale(\" + x.scale + \", \" + y.scale + \")\";\n    return !latestTransform && transform === identityProjection ? \"\" : transform;\n}\n/**\n * Take the calculated delta origin and apply it as a transform string.\n */\nfunction buildLayoutProjectionTransformOrigin(_a) {\n    var deltaFinal = _a.deltaFinal;\n    return deltaFinal.x.origin * 100 + \"% \" + deltaFinal.y.origin * 100 + \"% 0\";\n}\nvar identityProjection = buildLayoutProjectionTransform(zeroLayout.delta, zeroLayout.treeScale, { x: 1, y: 1 });\n\nexport { buildLayoutProjectionTransform, buildLayoutProjectionTransformOrigin, identityProjection };\n","import { __spreadArray, __read } from 'tslib';\nimport { SubscriptionManager } from '../../utils/subscription-manager.js';\n\nvar names = [\n    \"LayoutMeasure\",\n    \"BeforeLayoutMeasure\",\n    \"LayoutUpdate\",\n    \"ViewportBoxUpdate\",\n    \"Update\",\n    \"Render\",\n    \"AnimationComplete\",\n    \"LayoutAnimationComplete\",\n    \"AnimationStart\",\n    \"SetAxisTarget\",\n    \"Unmount\",\n];\nfunction createLifecycles() {\n    var managers = names.map(function () { return new SubscriptionManager(); });\n    var propSubscriptions = {};\n    var lifecycles = {\n        clearAllListeners: function () { return managers.forEach(function (manager) { return manager.clear(); }); },\n        updatePropListeners: function (props) {\n            return names.forEach(function (name) {\n                var _a;\n                (_a = propSubscriptions[name]) === null || _a === void 0 ? void 0 : _a.call(propSubscriptions);\n                var on = \"on\" + name;\n                var propListener = props[on];\n                if (propListener) {\n                    propSubscriptions[name] = lifecycles[on](propListener);\n                }\n            });\n        },\n    };\n    managers.forEach(function (manager, i) {\n        lifecycles[\"on\" + names[i]] = function (handler) { return manager.add(handler); };\n        lifecycles[\"notify\" + names[i]] = function () {\n            var args = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                args[_i] = arguments[_i];\n            }\n            return manager.notify.apply(manager, __spreadArray([], __read(args)));\n        };\n    });\n    return lifecycles;\n}\n\nexport { createLifecycles };\n","import { resetBox, applyTreeDeltas } from '../../utils/geometry/delta-apply.js';\nimport { updateBoxDelta } from '../../utils/geometry/delta-calc.js';\n\nfunction updateLayoutDeltas(_a, _b, treePath, transformOrigin) {\n    var delta = _a.delta, layout = _a.layout, layoutCorrected = _a.layoutCorrected, treeScale = _a.treeScale;\n    var target = _b.target;\n    /**\n     * Reset the corrected box with the latest values from box, as we're then going\n     * to perform mutative operations on it.\n     */\n    resetBox(layoutCorrected, layout);\n    /**\n     * Apply all the parent deltas to this box to produce the corrected box. This\n     * is the layout box, as it will appear on screen as a result of the transforms of its parents.\n     */\n    applyTreeDeltas(layoutCorrected, treeScale, treePath);\n    /**\n     * Update the delta between the corrected box and the target box before user-set transforms were applied.\n     * This will allow us to calculate the corrected borderRadius and boxShadow to compensate\n     * for our layout reprojection, but still allow them to be scaled correctly by the user.\n     * It might be that to simplify this we may want to accept that user-set scale is also corrected\n     * and we wouldn't have to keep and calc both deltas, OR we could support a user setting\n     * to allow people to choose whether these styles are corrected based on just the\n     * layout reprojection or the final bounding box.\n     */\n    updateBoxDelta(delta, layoutCorrected, target, transformOrigin);\n}\n\nexport { updateLayoutDeltas };\n","import { addUniqueItem, removeItem } from '../../utils/array.js';\nimport { compareByDepth } from './compare-by-depth.js';\n\nvar FlatTree = /** @class */ (function () {\n    function FlatTree() {\n        this.children = [];\n        this.isDirty = false;\n    }\n    FlatTree.prototype.add = function (child) {\n        addUniqueItem(this.children, child);\n        this.isDirty = true;\n    };\n    FlatTree.prototype.remove = function (child) {\n        removeItem(this.children, child);\n        this.isDirty = true;\n    };\n    FlatTree.prototype.forEach = function (callback) {\n        this.isDirty && this.children.sort(compareByDepth);\n        this.isDirty = false;\n        this.children.forEach(callback);\n    };\n    return FlatTree;\n}());\n\nexport { FlatTree };\n","import { __assign, __spreadArray, __read } from 'tslib';\nimport sync, { cancelSync } from 'framesync';\nimport { pipe } from 'popmotion';\nimport { Presence } from '../components/AnimateSharedLayout/types.js';\nimport { eachAxis } from '../utils/each-axis.js';\nimport { axisBox } from '../utils/geometry/index.js';\nimport { removeBoxTransforms, applyBoxTransforms } from '../utils/geometry/delta-apply.js';\nimport { calcRelativeBox, updateBoxDelta } from '../utils/geometry/delta-calc.js';\nimport { motionValue } from '../value/index.js';\nimport { isMotionValue } from '../value/utils/is-motion-value.js';\nimport { buildLayoutProjectionTransform } from './html/utils/build-projection-transform.js';\nimport { variantPriorityOrder } from './utils/animation-state.js';\nimport { createLifecycles } from './utils/lifecycles.js';\nimport { updateMotionValuesFromProps } from './utils/motion-values.js';\nimport { updateLayoutDeltas } from './utils/projection.js';\nimport { createLayoutState, createProjectionState } from './utils/state.js';\nimport { FlatTree } from './utils/flat-tree.js';\nimport { checkIfControllingVariants, checkIfVariantNode, isVariantLabel } from './utils/variants.js';\nimport { setCurrentViewportBox } from './dom/projection/relative-set.js';\nimport { isDraggable } from './utils/is-draggable.js';\n\nvar visualElement = function (_a) {\n    var _b = _a.treeType, treeType = _b === void 0 ? \"\" : _b, build = _a.build, getBaseTarget = _a.getBaseTarget, makeTargetAnimatable = _a.makeTargetAnimatable, measureViewportBox = _a.measureViewportBox, renderInstance = _a.render, readValueFromInstance = _a.readValueFromInstance, resetTransform = _a.resetTransform, restoreTransform = _a.restoreTransform, removeValueFromRenderState = _a.removeValueFromRenderState, sortNodePosition = _a.sortNodePosition, scrapeMotionValuesFromProps = _a.scrapeMotionValuesFromProps;\n    return function (_a, options) {\n        var parent = _a.parent, props = _a.props, presenceId = _a.presenceId, blockInitialAnimation = _a.blockInitialAnimation, visualState = _a.visualState;\n        if (options === void 0) { options = {}; }\n        var latestValues = visualState.latestValues, renderState = visualState.renderState;\n        /**\n         * The instance of the render-specific node that will be hydrated by the\n         * exposed React ref. So for example, this visual element can host a\n         * HTMLElement, plain object, or Three.js object. The functions provided\n         * in VisualElementConfig allow us to interface with this instance.\n         */\n        var instance;\n        /**\n         * Manages the subscriptions for a visual element's lifecycle, for instance\n         * onRender and onViewportBoxUpdate.\n         */\n        var lifecycles = createLifecycles();\n        /**\n         *\n         */\n        var projection = createProjectionState();\n        /**\n         * A reference to the nearest projecting parent. This is either\n         * undefined if we haven't looked for the nearest projecting parent,\n         * false if there is no parent performing layout projection, or a reference\n         * to the projecting parent.\n         */\n        var projectionParent;\n        /**\n         * This is a reference to the visual state of the \"lead\" visual element.\n         * Usually, this will be this visual element. But if it shares a layoutId\n         * with other visual elements, only one of them will be designated lead by\n         * AnimateSharedLayout. All the other visual elements will take on the visual\n         * appearance of the lead while they crossfade to it.\n         */\n        var leadProjection = projection;\n        var leadLatestValues = latestValues;\n        var unsubscribeFromLeadVisualElement;\n        /**\n         * The latest layout measurements and calculated projections. This\n         * is seperate from the target projection data in visualState as\n         * many visual elements might point to the same piece of visualState as\n         * a target, whereas they might each have different layouts and thus\n         * projection calculations needed to project into the same viewport box.\n         */\n        var layoutState = createLayoutState();\n        /**\n         *\n         */\n        var crossfader;\n        /**\n         * Keep track of whether the viewport box has been updated since the\n         * last time the layout projection was re-calculated.\n         */\n        var hasViewportBoxUpdated = false;\n        /**\n         * A map of all motion values attached to this visual element. Motion\n         * values are source of truth for any given animated value. A motion\n         * value might be provided externally by the component via props.\n         */\n        var values = new Map();\n        /**\n         * A map of every subscription that binds the provided or generated\n         * motion values onChange listeners to this visual element.\n         */\n        var valueSubscriptions = new Map();\n        /**\n         * A reference to the previously-provided motion values as returned\n         * from scrapeMotionValuesFromProps. We use the keys in here to determine\n         * if any motion values need to be removed after props are updated.\n         */\n        var prevMotionValues = {};\n        /**\n         * x/y motion values that track the progress of initiated layout\n         * animations.\n         *\n         * TODO: Target for removal\n         */\n        var projectionTargetProgress;\n        /**\n         * When values are removed from all animation props we need to search\n         * for a fallback value to animate to. These values are tracked in baseTarget.\n         */\n        var baseTarget = __assign({}, latestValues);\n        // Internal methods ========================\n        /**\n         * On mount, this will be hydrated with a callback to disconnect\n         * this visual element from its parent on unmount.\n         */\n        var removeFromVariantTree;\n        /**\n         *\n         */\n        function render() {\n            if (!instance)\n                return;\n            if (element.isProjectionReady()) {\n                /**\n                 * Apply the latest user-set transforms to the targetBox to produce the targetBoxFinal.\n                 * This is the final box that we will then project into by calculating a transform delta and\n                 * applying it to the corrected box.\n                 */\n                applyBoxTransforms(leadProjection.targetFinal, leadProjection.target, leadLatestValues);\n                /**\n                 * Update the delta between the corrected box and the final target box, after\n                 * user-set transforms are applied to it. This will be used by the renderer to\n                 * create a transform style that will reproject the element from its actual layout\n                 * into the desired bounding box.\n                 */\n                updateBoxDelta(layoutState.deltaFinal, layoutState.layoutCorrected, leadProjection.targetFinal, latestValues);\n            }\n            triggerBuild();\n            renderInstance(instance, renderState);\n        }\n        function triggerBuild() {\n            var valuesToRender = latestValues;\n            if (crossfader && crossfader.isActive()) {\n                var crossfadedValues = crossfader.getCrossfadeState(element);\n                if (crossfadedValues)\n                    valuesToRender = crossfadedValues;\n            }\n            build(element, renderState, valuesToRender, leadProjection, layoutState, options, props);\n        }\n        function update() {\n            lifecycles.notifyUpdate(latestValues);\n        }\n        function updateLayoutProjection() {\n            if (!element.isProjectionReady())\n                return;\n            var delta = layoutState.delta, treeScale = layoutState.treeScale;\n            var prevTreeScaleX = treeScale.x;\n            var prevTreeScaleY = treeScale.y;\n            var prevDeltaTransform = layoutState.deltaTransform;\n            updateLayoutDeltas(layoutState, leadProjection, element.path, latestValues);\n            hasViewportBoxUpdated &&\n                element.notifyViewportBoxUpdate(leadProjection.target, delta);\n            hasViewportBoxUpdated = false;\n            var deltaTransform = buildLayoutProjectionTransform(delta, treeScale);\n            if (deltaTransform !== prevDeltaTransform ||\n                // Also compare calculated treeScale, for values that rely on this only for scale correction\n                prevTreeScaleX !== treeScale.x ||\n                prevTreeScaleY !== treeScale.y) {\n                element.scheduleRender();\n            }\n            layoutState.deltaTransform = deltaTransform;\n        }\n        function updateTreeLayoutProjection() {\n            element.layoutTree.forEach(fireUpdateLayoutProjection);\n        }\n        /**\n         *\n         */\n        function bindToMotionValue(key, value) {\n            var removeOnChange = value.onChange(function (latestValue) {\n                latestValues[key] = latestValue;\n                props.onUpdate && sync.update(update, false, true);\n            });\n            var removeOnRenderRequest = value.onRenderRequest(element.scheduleRender);\n            valueSubscriptions.set(key, function () {\n                removeOnChange();\n                removeOnRenderRequest();\n            });\n        }\n        /**\n         * Any motion values that are provided to the element when created\n         * aren't yet bound to the element, as this would technically be impure.\n         * However, we iterate through the motion values and set them to the\n         * initial values for this component.\n         *\n         * TODO: This is impure and we should look at changing this to run on mount.\n         * Doing so will break some tests but this isn't neccessarily a breaking change,\n         * more a reflection of the test.\n         */\n        var initialMotionValues = scrapeMotionValuesFromProps(props);\n        for (var key in initialMotionValues) {\n            var value = initialMotionValues[key];\n            if (latestValues[key] !== undefined && isMotionValue(value)) {\n                value.set(latestValues[key], false);\n            }\n        }\n        /**\n         * Determine what role this visual element should take in the variant tree.\n         */\n        var isControllingVariants = checkIfControllingVariants(props);\n        var isVariantNode = checkIfVariantNode(props);\n        var element = __assign(__assign({ treeType: treeType, \n            /**\n             * This is a mirror of the internal instance prop, which keeps\n             * VisualElement type-compatible with React's RefObject.\n             */\n            current: null, \n            /**\n             * The depth of this visual element within the visual element tree.\n             */\n            depth: parent ? parent.depth + 1 : 0, parent: parent, children: new Set(), \n            /**\n             * An ancestor path back to the root visual element. This is used\n             * by layout projection to quickly recurse back up the tree.\n             */\n            path: parent ? __spreadArray(__spreadArray([], __read(parent.path)), [parent]) : [], layoutTree: parent ? parent.layoutTree : new FlatTree(), \n            /**\n             *\n             */\n            presenceId: presenceId,\n            projection: projection, \n            /**\n             * If this component is part of the variant tree, it should track\n             * any children that are also part of the tree. This is essentially\n             * a shadow tree to simplify logic around how to stagger over children.\n             */\n            variantChildren: isVariantNode ? new Set() : undefined, \n            /**\n             * Whether this instance is visible. This can be changed imperatively\n             * by AnimateSharedLayout, is analogous to CSS's visibility in that\n             * hidden elements should take up layout, and needs enacting by the configured\n             * render function.\n             */\n            isVisible: undefined, \n            /**\n             * Normally, if a component is controlled by a parent's variants, it can\n             * rely on that ancestor to trigger animations further down the tree.\n             * However, if a component is created after its parent is mounted, the parent\n             * won't trigger that mount animation so the child needs to.\n             *\n             * TODO: This might be better replaced with a method isParentMounted\n             */\n            manuallyAnimateOnMount: Boolean(parent === null || parent === void 0 ? void 0 : parent.isMounted()), \n            /**\n             * This can be set by AnimatePresence to force components that mount\n             * at the same time as it to mount as if they have initial={false} set.\n             */\n            blockInitialAnimation: blockInitialAnimation, \n            /**\n             * Determine whether this component has mounted yet. This is mostly used\n             * by variant children to determine whether they need to trigger their\n             * own animations on mount.\n             */\n            isMounted: function () { return Boolean(instance); }, mount: function (newInstance) {\n                instance = element.current = newInstance;\n                element.pointTo(element);\n                if (isVariantNode && parent && !isControllingVariants) {\n                    removeFromVariantTree = parent === null || parent === void 0 ? void 0 : parent.addVariantChild(element);\n                }\n                parent === null || parent === void 0 ? void 0 : parent.children.add(element);\n            },\n            /**\n             *\n             */\n            unmount: function () {\n                cancelSync.update(update);\n                cancelSync.render(render);\n                cancelSync.preRender(element.updateLayoutProjection);\n                valueSubscriptions.forEach(function (remove) { return remove(); });\n                element.stopLayoutAnimation();\n                element.layoutTree.remove(element);\n                removeFromVariantTree === null || removeFromVariantTree === void 0 ? void 0 : removeFromVariantTree();\n                parent === null || parent === void 0 ? void 0 : parent.children.delete(element);\n                unsubscribeFromLeadVisualElement === null || unsubscribeFromLeadVisualElement === void 0 ? void 0 : unsubscribeFromLeadVisualElement();\n                lifecycles.clearAllListeners();\n            },\n            /**\n             * Add a child visual element to our set of children.\n             */\n            addVariantChild: function (child) {\n                var _a;\n                var closestVariantNode = element.getClosestVariantNode();\n                if (closestVariantNode) {\n                    (_a = closestVariantNode.variantChildren) === null || _a === void 0 ? void 0 : _a.add(child);\n                    return function () { return closestVariantNode.variantChildren.delete(child); };\n                }\n            },\n            sortNodePosition: function (other) {\n                /**\n                 * If these nodes aren't even of the same type we can't compare their depth.\n                 */\n                if (!sortNodePosition || treeType !== other.treeType)\n                    return 0;\n                return sortNodePosition(element.getInstance(), other.getInstance());\n            }, \n            /**\n             * Returns the closest variant node in the tree starting from\n             * this visual element.\n             */\n            getClosestVariantNode: function () {\n                return isVariantNode ? element : parent === null || parent === void 0 ? void 0 : parent.getClosestVariantNode();\n            }, \n            /**\n             * A method that schedules an update to layout projections throughout\n             * the tree. We inherit from the parent so there's only ever one\n             * job scheduled on the next frame - that of the root visual element.\n             */\n            scheduleUpdateLayoutProjection: parent\n                ? parent.scheduleUpdateLayoutProjection\n                : function () {\n                    return sync.preRender(element.updateTreeLayoutProjection, false, true);\n                }, \n            /**\n             * Expose the latest layoutId prop.\n             */\n            getLayoutId: function () { return props.layoutId; }, \n            /**\n             * Returns the current instance.\n             */\n            getInstance: function () { return instance; }, \n            /**\n             * Get/set the latest static values.\n             */\n            getStaticValue: function (key) { return latestValues[key]; }, setStaticValue: function (key, value) { return (latestValues[key] = value); }, \n            /**\n             * Returns the latest motion value state. Currently only used to take\n             * a snapshot of the visual element - perhaps this can return the whole\n             * visual state\n             */\n            getLatestValues: function () { return latestValues; }, \n            /**\n             * Set the visiblity of the visual element. If it's changed, schedule\n             * a render to reflect these changes.\n             */\n            setVisibility: function (visibility) {\n                if (element.isVisible === visibility)\n                    return;\n                element.isVisible = visibility;\n                element.scheduleRender();\n            },\n            /**\n             * Make a target animatable by Popmotion. For instance, if we're\n             * trying to animate width from 100px to 100vw we need to measure 100vw\n             * in pixels to determine what we really need to animate to. This is also\n             * pluggable to support Framer's custom value types like Color,\n             * and CSS variables.\n             */\n            makeTargetAnimatable: function (target, canMutate) {\n                if (canMutate === void 0) { canMutate = true; }\n                return makeTargetAnimatable(element, target, props, canMutate);\n            },\n            // Motion values ========================\n            /**\n             * Add a motion value and bind it to this visual element.\n             */\n            addValue: function (key, value) {\n                // Remove existing value if it exists\n                if (element.hasValue(key))\n                    element.removeValue(key);\n                values.set(key, value);\n                latestValues[key] = value.get();\n                bindToMotionValue(key, value);\n            },\n            /**\n             * Remove a motion value and unbind any active subscriptions.\n             */\n            removeValue: function (key) {\n                var _a;\n                values.delete(key);\n                (_a = valueSubscriptions.get(key)) === null || _a === void 0 ? void 0 : _a();\n                valueSubscriptions.delete(key);\n                delete latestValues[key];\n                removeValueFromRenderState(key, renderState);\n            }, \n            /**\n             * Check whether we have a motion value for this key\n             */\n            hasValue: function (key) { return values.has(key); }, \n            /**\n             * Get a motion value for this key. If called with a default\n             * value, we'll create one if none exists.\n             */\n            getValue: function (key, defaultValue) {\n                var value = values.get(key);\n                if (value === undefined && defaultValue !== undefined) {\n                    value = motionValue(defaultValue);\n                    element.addValue(key, value);\n                }\n                return value;\n            }, \n            /**\n             * Iterate over our motion values.\n             */\n            forEachValue: function (callback) { return values.forEach(callback); }, \n            /**\n             * If we're trying to animate to a previously unencountered value,\n             * we need to check for it in our state and as a last resort read it\n             * directly from the instance (which might have performance implications).\n             */\n            readValue: function (key) { var _a; return (_a = latestValues[key]) !== null && _a !== void 0 ? _a : readValueFromInstance(instance, key, options); }, \n            /**\n             * Set the base target to later animate back to. This is currently\n             * only hydrated on creation and when we first read a value.\n             */\n            setBaseTarget: function (key, value) {\n                baseTarget[key] = value;\n            },\n            /**\n             * Find the base target for a value thats been removed from all animation\n             * props.\n             */\n            getBaseTarget: function (key) {\n                if (getBaseTarget) {\n                    var target = getBaseTarget(props, key);\n                    if (target !== undefined && !isMotionValue(target))\n                        return target;\n                }\n                return baseTarget[key];\n            } }, lifecycles), { \n            /**\n             * Build the renderer state based on the latest visual state.\n             */\n            build: function () {\n                triggerBuild();\n                return renderState;\n            },\n            /**\n             * Schedule a render on the next animation frame.\n             */\n            scheduleRender: function () {\n                sync.render(render, false, true);\n            }, \n            /**\n             * Synchronously fire render. It's prefered that we batch renders but\n             * in many circumstances, like layout measurement, we need to run this\n             * synchronously. However in those instances other measures should be taken\n             * to batch reads/writes.\n             */\n            syncRender: render, \n            /**\n             * Update the provided props. Ensure any newly-added motion values are\n             * added to our map, old ones removed, and listeners updated.\n             */\n            setProps: function (newProps) {\n                props = newProps;\n                lifecycles.updatePropListeners(newProps);\n                prevMotionValues = updateMotionValuesFromProps(element, scrapeMotionValuesFromProps(props), prevMotionValues);\n            }, getProps: function () { return props; }, \n            // Variants ==============================\n            /**\n             * Returns the variant definition with a given name.\n             */\n            getVariant: function (name) { var _a; return (_a = props.variants) === null || _a === void 0 ? void 0 : _a[name]; }, \n            /**\n             * Returns the defined default transition on this component.\n             */\n            getDefaultTransition: function () { return props.transition; }, \n            /**\n             * Used by child variant nodes to get the closest ancestor variant props.\n             */\n            getVariantContext: function (startAtParent) {\n                if (startAtParent === void 0) { startAtParent = false; }\n                if (startAtParent)\n                    return parent === null || parent === void 0 ? void 0 : parent.getVariantContext();\n                if (!isControllingVariants) {\n                    var context_1 = (parent === null || parent === void 0 ? void 0 : parent.getVariantContext()) || {};\n                    if (props.initial !== undefined) {\n                        context_1.initial = props.initial;\n                    }\n                    return context_1;\n                }\n                var context = {};\n                for (var i = 0; i < numVariantProps; i++) {\n                    var name_1 = variantProps[i];\n                    var prop = props[name_1];\n                    if (isVariantLabel(prop) || prop === false) {\n                        context[name_1] = prop;\n                    }\n                }\n                return context;\n            },\n            // Layout projection ==============================\n            /**\n             * Enable layout projection for this visual element. Won't actually\n             * occur until we also have hydrated layout measurements.\n             */\n            enableLayoutProjection: function () {\n                projection.isEnabled = true;\n                element.layoutTree.add(element);\n            },\n            /**\n             * Lock the projection target, for instance when dragging, so\n             * nothing else can try and animate it.\n             */\n            lockProjectionTarget: function () {\n                projection.isTargetLocked = true;\n            },\n            unlockProjectionTarget: function () {\n                element.stopLayoutAnimation();\n                projection.isTargetLocked = false;\n            }, getLayoutState: function () { return layoutState; }, setCrossfader: function (newCrossfader) {\n                crossfader = newCrossfader;\n            }, isProjectionReady: function () {\n                return projection.isEnabled &&\n                    projection.isHydrated &&\n                    layoutState.isHydrated;\n            }, \n            /**\n             * Start a layout animation on a given axis.\n             */\n            startLayoutAnimation: function (axis, transition, isRelative) {\n                if (isRelative === void 0) { isRelative = false; }\n                var progress = element.getProjectionAnimationProgress()[axis];\n                var _a = isRelative\n                    ? projection.relativeTarget[axis]\n                    : projection.target[axis], min = _a.min, max = _a.max;\n                var length = max - min;\n                progress.clearListeners();\n                progress.set(min);\n                progress.set(min); // Set twice to hard-reset velocity\n                progress.onChange(function (v) {\n                    element.setProjectionTargetAxis(axis, v, v + length, isRelative);\n                });\n                return element.animateMotionValue(axis, progress, 0, transition);\n            },\n            /**\n             * Stop layout animations.\n             */\n            stopLayoutAnimation: function () {\n                eachAxis(function (axis) {\n                    return element.getProjectionAnimationProgress()[axis].stop();\n                });\n            },\n            /**\n             * Measure the current viewport box with or without transforms.\n             * Only measures axis-aligned boxes, rotate and skew must be manually\n             * removed with a re-render to work.\n             */\n            measureViewportBox: function (withTransform) {\n                if (withTransform === void 0) { withTransform = true; }\n                var viewportBox = measureViewportBox(instance, options);\n                if (!withTransform)\n                    removeBoxTransforms(viewportBox, latestValues);\n                return viewportBox;\n            },\n            /**\n             * Get the motion values tracking the layout animations on each\n             * axis. Lazy init if not already created.\n             */\n            getProjectionAnimationProgress: function () {\n                projectionTargetProgress || (projectionTargetProgress = {\n                    x: motionValue(0),\n                    y: motionValue(0),\n                });\n                return projectionTargetProgress;\n            },\n            /**\n             * Update the projection of a single axis. Schedule an update to\n             * the tree layout projection.\n             */\n            setProjectionTargetAxis: function (axis, min, max, isRelative) {\n                if (isRelative === void 0) { isRelative = false; }\n                var target;\n                if (isRelative) {\n                    if (!projection.relativeTarget) {\n                        projection.relativeTarget = axisBox();\n                    }\n                    target = projection.relativeTarget[axis];\n                }\n                else {\n                    projection.relativeTarget = undefined;\n                    target = projection.target[axis];\n                }\n                projection.isHydrated = true;\n                target.min = min;\n                target.max = max;\n                // Flag that we want to fire the onViewportBoxUpdate event handler\n                hasViewportBoxUpdated = true;\n                lifecycles.notifySetAxisTarget();\n            },\n            /**\n             * Rebase the projection target on top of the provided viewport box\n             * or the measured layout. This ensures that non-animating elements\n             * don't fall out of sync differences in measurements vs projections\n             * after a page scroll or other relayout.\n             */\n            rebaseProjectionTarget: function (force, box) {\n                if (box === void 0) { box = layoutState.layout; }\n                var _a = element.getProjectionAnimationProgress(), x = _a.x, y = _a.y;\n                var shouldRebase = !projection.relativeTarget &&\n                    !projection.isTargetLocked &&\n                    !x.isAnimating() &&\n                    !y.isAnimating();\n                if (force || shouldRebase) {\n                    eachAxis(function (axis) {\n                        var _a = box[axis], min = _a.min, max = _a.max;\n                        element.setProjectionTargetAxis(axis, min, max);\n                    });\n                }\n            },\n            /**\n             * Notify the visual element that its layout is up-to-date.\n             * Currently Animate.tsx uses this to check whether a layout animation\n             * needs to be performed.\n             */\n            notifyLayoutReady: function (config) {\n                setCurrentViewportBox(element);\n                element.notifyLayoutUpdate(layoutState.layout, element.prevViewportBox || layoutState.layout, config);\n            }, \n            /**\n             * Temporarily reset the transform of the instance.\n             */\n            resetTransform: function () { return resetTransform(element, instance, props); }, restoreTransform: function () { return restoreTransform(instance, renderState); }, updateLayoutProjection: updateLayoutProjection,\n            updateTreeLayoutProjection: function () {\n                element.layoutTree.forEach(fireResolveRelativeTargetBox);\n                /**\n                 * Schedule the projection updates at the end of the current preRender\n                 * step. This will ensure that all layout trees will first resolve\n                 * relative projection boxes into viewport boxes, and *then*\n                 * update projections.\n                 */\n                sync.preRender(updateTreeLayoutProjection, false, true);\n                // sync.postRender(() => element.scheduleUpdateLayoutProjection())\n            },\n            getProjectionParent: function () {\n                if (projectionParent === undefined) {\n                    var foundParent = false;\n                    // Search backwards through the tree path\n                    for (var i = element.path.length - 1; i >= 0; i--) {\n                        var ancestor = element.path[i];\n                        if (ancestor.projection.isEnabled) {\n                            foundParent = ancestor;\n                            break;\n                        }\n                    }\n                    projectionParent = foundParent;\n                }\n                return projectionParent;\n            },\n            resolveRelativeTargetBox: function () {\n                var relativeParent = element.getProjectionParent();\n                if (!projection.relativeTarget || !relativeParent)\n                    return;\n                calcRelativeBox(projection, relativeParent.projection);\n                if (isDraggable(relativeParent)) {\n                    var target = projection.target;\n                    applyBoxTransforms(target, target, relativeParent.getLatestValues());\n                }\n            },\n            shouldResetTransform: function () {\n                return Boolean(props._layoutResetTransform);\n            },\n            /**\n             *\n             */\n            pointTo: function (newLead) {\n                leadProjection = newLead.projection;\n                leadLatestValues = newLead.getLatestValues();\n                /**\n                 * Subscribe to lead component's layout animations\n                 */\n                unsubscribeFromLeadVisualElement === null || unsubscribeFromLeadVisualElement === void 0 ? void 0 : unsubscribeFromLeadVisualElement();\n                unsubscribeFromLeadVisualElement = pipe(newLead.onSetAxisTarget(element.scheduleUpdateLayoutProjection), newLead.onLayoutAnimationComplete(function () {\n                    var _a;\n                    if (element.isPresent) {\n                        element.presence = Presence.Present;\n                    }\n                    else {\n                        (_a = element.layoutSafeToRemove) === null || _a === void 0 ? void 0 : _a.call(element);\n                    }\n                }));\n            }, \n            // TODO: Clean this up\n            isPresent: true, presence: Presence.Entering });\n        return element;\n    };\n};\nfunction fireResolveRelativeTargetBox(child) {\n    child.resolveRelativeTargetBox();\n}\nfunction fireUpdateLayoutProjection(child) {\n    child.updateLayoutProjection();\n}\nvar variantProps = __spreadArray([\"initial\"], __read(variantPriorityOrder));\nvar numVariantProps = variantProps.length;\n\nexport { visualElement };\n","import { motionValue } from '../../value/index.js';\nimport { isMotionValue } from '../../value/utils/is-motion-value.js';\n\nfunction updateMotionValuesFromProps(element, next, prev) {\n    var _a;\n    for (var key in next) {\n        var nextValue = next[key];\n        var prevValue = prev[key];\n        if (isMotionValue(nextValue)) {\n            /**\n             * If this is a motion value found in props or style, we want to add it\n             * to our visual element's motion value map.\n             */\n            element.addValue(key, nextValue);\n        }\n        else if (isMotionValue(prevValue)) {\n            /**\n             * If we're swapping to a new motion value, create a new motion value\n             * from that\n             */\n            element.addValue(key, motionValue(nextValue));\n        }\n        else if (prevValue !== nextValue) {\n            /**\n             * If this is a flat value that has changed, update the motion value\n             * or create one if it doesn't exist. We only want to do this if we're\n             * not handling the value with our animation state.\n             */\n            if (element.hasValue(key)) {\n                var existingValue = element.getValue(key);\n                // TODO: Only update values that aren't being animated or even looked at\n                !existingValue.hasAnimated && existingValue.set(nextValue);\n            }\n            else {\n                element.addValue(key, motionValue((_a = element.getStaticValue(key)) !== null && _a !== void 0 ? _a : nextValue));\n            }\n        }\n    }\n    // Handle removed values\n    for (var key in prev) {\n        if (next[key] === undefined)\n            element.removeValue(key);\n    }\n    return next;\n}\n\nexport { updateMotionValuesFromProps };\n","import { calcRelativeOffset } from '../../../motion/features/layout/utils.js';\nimport { eachAxis } from '../../../utils/each-axis.js';\n\nfunction setCurrentViewportBox(visualElement) {\n    var projectionParent = visualElement.getProjectionParent();\n    if (!projectionParent) {\n        visualElement.rebaseProjectionTarget();\n        return;\n    }\n    var relativeOffset = calcRelativeOffset(projectionParent.getLayoutState().layout, visualElement.getLayoutState().layout);\n    eachAxis(function (axis) {\n        visualElement.setProjectionTargetAxis(axis, relativeOffset[axis].min, relativeOffset[axis].max, true);\n    });\n}\n\nexport { setCurrentViewportBox };\n","import { __assign, __read } from 'tslib';\nimport { number, px } from 'style-value-types';\nimport { isKeyframesTarget } from '../../../animation/utils/is-keyframes-target.js';\nimport { invariant } from 'hey-listen';\nimport { transformProps } from '../../html/utils/transform.js';\nimport { findDimensionValueType } from '../value-types/dimensions.js';\n\nvar positionalKeys = new Set([\n    \"width\",\n    \"height\",\n    \"top\",\n    \"left\",\n    \"right\",\n    \"bottom\",\n    \"x\",\n    \"y\",\n]);\nvar isPositionalKey = function (key) { return positionalKeys.has(key); };\nvar hasPositionalKey = function (target) {\n    return Object.keys(target).some(isPositionalKey);\n};\nvar setAndResetVelocity = function (value, to) {\n    // Looks odd but setting it twice doesn't render, it'll just\n    // set both prev and current to the latest value\n    value.set(to, false);\n    value.set(to);\n};\nvar isNumOrPxType = function (v) {\n    return v === number || v === px;\n};\nvar BoundingBoxDimension;\n(function (BoundingBoxDimension) {\n    BoundingBoxDimension[\"width\"] = \"width\";\n    BoundingBoxDimension[\"height\"] = \"height\";\n    BoundingBoxDimension[\"left\"] = \"left\";\n    BoundingBoxDimension[\"right\"] = \"right\";\n    BoundingBoxDimension[\"top\"] = \"top\";\n    BoundingBoxDimension[\"bottom\"] = \"bottom\";\n})(BoundingBoxDimension || (BoundingBoxDimension = {}));\nvar getPosFromMatrix = function (matrix, pos) {\n    return parseFloat(matrix.split(\", \")[pos]);\n};\nvar getTranslateFromMatrix = function (pos2, pos3) { return function (_bbox, _a) {\n    var transform = _a.transform;\n    if (transform === \"none\" || !transform)\n        return 0;\n    var matrix3d = transform.match(/^matrix3d\\((.+)\\)$/);\n    if (matrix3d) {\n        return getPosFromMatrix(matrix3d[1], pos3);\n    }\n    else {\n        var matrix = transform.match(/^matrix\\((.+)\\)$/);\n        if (matrix) {\n            return getPosFromMatrix(matrix[1], pos2);\n        }\n        else {\n            return 0;\n        }\n    }\n}; };\nvar transformKeys = new Set([\"x\", \"y\", \"z\"]);\nvar nonTranslationalTransformKeys = transformProps.filter(function (key) { return !transformKeys.has(key); });\nfunction removeNonTranslationalTransform(visualElement) {\n    var removedTransforms = [];\n    nonTranslationalTransformKeys.forEach(function (key) {\n        var value = visualElement.getValue(key);\n        if (value !== undefined) {\n            removedTransforms.push([key, value.get()]);\n            value.set(key.startsWith(\"scale\") ? 1 : 0);\n        }\n    });\n    // Apply changes to element before measurement\n    if (removedTransforms.length)\n        visualElement.syncRender();\n    return removedTransforms;\n}\nvar positionalValues = {\n    // Dimensions\n    width: function (_a) {\n        var x = _a.x;\n        return x.max - x.min;\n    },\n    height: function (_a) {\n        var y = _a.y;\n        return y.max - y.min;\n    },\n    top: function (_bbox, _a) {\n        var top = _a.top;\n        return parseFloat(top);\n    },\n    left: function (_bbox, _a) {\n        var left = _a.left;\n        return parseFloat(left);\n    },\n    bottom: function (_a, _b) {\n        var y = _a.y;\n        var top = _b.top;\n        return parseFloat(top) + (y.max - y.min);\n    },\n    right: function (_a, _b) {\n        var x = _a.x;\n        var left = _b.left;\n        return parseFloat(left) + (x.max - x.min);\n    },\n    // Transform\n    x: getTranslateFromMatrix(4, 13),\n    y: getTranslateFromMatrix(5, 14),\n};\nvar convertChangedValueTypes = function (target, visualElement, changedKeys) {\n    var originBbox = visualElement.measureViewportBox();\n    var element = visualElement.getInstance();\n    var elementComputedStyle = getComputedStyle(element);\n    var display = elementComputedStyle.display, top = elementComputedStyle.top, left = elementComputedStyle.left, bottom = elementComputedStyle.bottom, right = elementComputedStyle.right, transform = elementComputedStyle.transform;\n    var originComputedStyle = { top: top, left: left, bottom: bottom, right: right, transform: transform };\n    // If the element is currently set to display: \"none\", make it visible before\n    // measuring the target bounding box\n    if (display === \"none\") {\n        visualElement.setStaticValue(\"display\", target.display || \"block\");\n    }\n    // Apply the latest values (as set in checkAndConvertChangedValueTypes)\n    visualElement.syncRender();\n    var targetBbox = visualElement.measureViewportBox();\n    changedKeys.forEach(function (key) {\n        // Restore styles to their **calculated computed style**, not their actual\n        // originally set style. This allows us to animate between equivalent pixel units.\n        var value = visualElement.getValue(key);\n        setAndResetVelocity(value, positionalValues[key](originBbox, originComputedStyle));\n        target[key] = positionalValues[key](targetBbox, elementComputedStyle);\n    });\n    return target;\n};\nvar checkAndConvertChangedValueTypes = function (visualElement, target, origin, transitionEnd) {\n    if (origin === void 0) { origin = {}; }\n    if (transitionEnd === void 0) { transitionEnd = {}; }\n    target = __assign({}, target);\n    transitionEnd = __assign({}, transitionEnd);\n    var targetPositionalKeys = Object.keys(target).filter(isPositionalKey);\n    // We want to remove any transform values that could affect the element's bounding box before\n    // it's measured. We'll reapply these later.\n    var removedTransformValues = [];\n    var hasAttemptedToRemoveTransformValues = false;\n    var changedValueTypeKeys = [];\n    targetPositionalKeys.forEach(function (key) {\n        var value = visualElement.getValue(key);\n        if (!visualElement.hasValue(key))\n            return;\n        var from = origin[key];\n        var to = target[key];\n        var fromType = findDimensionValueType(from);\n        var toType;\n        // TODO: The current implementation of this basically throws an error\n        // if you try and do value conversion via keyframes. There's probably\n        // a way of doing this but the performance implications would need greater scrutiny,\n        // as it'd be doing multiple resize-remeasure operations.\n        if (isKeyframesTarget(to)) {\n            var numKeyframes = to.length;\n            for (var i = to[0] === null ? 1 : 0; i < numKeyframes; i++) {\n                if (!toType) {\n                    toType = findDimensionValueType(to[i]);\n                    invariant(toType === fromType ||\n                        (isNumOrPxType(fromType) && isNumOrPxType(toType)), \"Keyframes must be of the same dimension as the current value\");\n                }\n                else {\n                    invariant(findDimensionValueType(to[i]) === toType, \"All keyframes must be of the same type\");\n                }\n            }\n        }\n        else {\n            toType = findDimensionValueType(to);\n        }\n        if (fromType !== toType) {\n            // If they're both just number or px, convert them both to numbers rather than\n            // relying on resize/remeasure to convert (which is wasteful in this situation)\n            if (isNumOrPxType(fromType) && isNumOrPxType(toType)) {\n                var current = value.get();\n                if (typeof current === \"string\") {\n                    value.set(parseFloat(current));\n                }\n                if (typeof to === \"string\") {\n                    target[key] = parseFloat(to);\n                }\n                else if (Array.isArray(to) && toType === px) {\n                    target[key] = to.map(parseFloat);\n                }\n            }\n            else if ((fromType === null || fromType === void 0 ? void 0 : fromType.transform) &&\n                (toType === null || toType === void 0 ? void 0 : toType.transform) &&\n                (from === 0 || to === 0)) {\n                // If one or the other value is 0, it's safe to coerce it to the\n                // type of the other without measurement\n                if (from === 0) {\n                    value.set(toType.transform(from));\n                }\n                else {\n                    target[key] = fromType.transform(to);\n                }\n            }\n            else {\n                // If we're going to do value conversion via DOM measurements, we first\n                // need to remove non-positional transform values that could affect the bbox measurements.\n                if (!hasAttemptedToRemoveTransformValues) {\n                    removedTransformValues = removeNonTranslationalTransform(visualElement);\n                    hasAttemptedToRemoveTransformValues = true;\n                }\n                changedValueTypeKeys.push(key);\n                transitionEnd[key] =\n                    transitionEnd[key] !== undefined\n                        ? transitionEnd[key]\n                        : target[key];\n                setAndResetVelocity(value, to);\n            }\n        }\n    });\n    if (changedValueTypeKeys.length) {\n        var convertedTarget = convertChangedValueTypes(target, visualElement, changedValueTypeKeys);\n        // If we removed transform values, reapply them before the next render\n        if (removedTransformValues.length) {\n            removedTransformValues.forEach(function (_a) {\n                var _b = __read(_a, 2), key = _b[0], value = _b[1];\n                visualElement.getValue(key).set(value);\n            });\n        }\n        // Reapply original values\n        visualElement.syncRender();\n        return { target: convertedTarget, transitionEnd: transitionEnd };\n    }\n    else {\n        return { target: target, transitionEnd: transitionEnd };\n    }\n};\n/**\n * Convert value types for x/y/width/height/top/left/bottom/right\n *\n * Allows animation between `'auto'` -> `'100%'` or `0` -> `'calc(50% - 10vw)'`\n *\n * @internal\n */\nfunction unitConversion(visualElement, target, origin, transitionEnd) {\n    return hasPositionalKey(target)\n        ? checkAndConvertChangedValueTypes(visualElement, target, origin, transitionEnd)\n        : { target: target, transitionEnd: transitionEnd };\n}\n\nexport { BoundingBoxDimension, unitConversion };\n","import { resolveCSSVariables } from './css-variables-conversion.js';\nimport { unitConversion } from './unit-conversion.js';\n\n/**\n * Parse a DOM variant to make it animatable. This involves resolving CSS variables\n * and ensuring animations like \"20%\" => \"calc(50vw)\" are performed in pixels.\n */\nvar parseDomVariant = function (visualElement, target, origin, transitionEnd) {\n    var resolved = resolveCSSVariables(visualElement, target, transitionEnd);\n    target = resolved.target;\n    transitionEnd = resolved.transitionEnd;\n    return unitConversion(visualElement, target, origin, transitionEnd);\n};\n\nexport { parseDomVariant };\n","import { __rest, __assign } from 'tslib';\nimport { visualElement } from '../index.js';\nimport { getOrigin, checkTargetForNewValues } from '../utils/setters.js';\nimport { getBoundingBox } from '../dom/projection/measure.js';\nimport { buildHTMLStyles } from './utils/build-styles.js';\nimport { isCSSVariable } from '../dom/utils/is-css-variable.js';\nimport { parseDomVariant } from '../dom/utils/parse-dom-variant.js';\nimport { isTransformProp } from './utils/transform.js';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.js';\nimport { renderHTML } from './utils/render.js';\nimport { getDefaultValueType } from '../dom/value-types/defaults.js';\nimport { buildLayoutProjectionTransformOrigin, buildLayoutProjectionTransform } from './utils/build-projection-transform.js';\n\nfunction getComputedStyle(element) {\n    return window.getComputedStyle(element);\n}\nvar htmlConfig = {\n    treeType: \"dom\",\n    readValueFromInstance: function (domElement, key) {\n        if (isTransformProp(key)) {\n            var defaultType = getDefaultValueType(key);\n            return defaultType ? defaultType.default || 0 : 0;\n        }\n        else {\n            var computedStyle = getComputedStyle(domElement);\n            return ((isCSSVariable(key)\n                ? computedStyle.getPropertyValue(key)\n                : computedStyle[key]) || 0);\n        }\n    },\n    sortNodePosition: function (a, b) {\n        /**\n         * compareDocumentPosition returns a bitmask, by using the bitwise &\n         * we're returning true if 2 in that bitmask is set to true. 2 is set\n         * to true if b preceeds a.\n         */\n        return a.compareDocumentPosition(b) & 2 ? 1 : -1;\n    },\n    getBaseTarget: function (props, key) {\n        var _a;\n        return (_a = props.style) === null || _a === void 0 ? void 0 : _a[key];\n    },\n    measureViewportBox: function (element, _a) {\n        var transformPagePoint = _a.transformPagePoint;\n        return getBoundingBox(element, transformPagePoint);\n    },\n    /**\n     * Reset the transform on the current Element. This is called as part\n     * of a batched process across the entire layout tree. To remove this write\n     * cycle it'd be interesting to see if it's possible to \"undo\" all the current\n     * layout transforms up the tree in the same way this.getBoundingBoxWithoutTransforms\n     * works\n     */\n    resetTransform: function (element, domElement, props) {\n        var transformTemplate = props.transformTemplate;\n        domElement.style.transform = transformTemplate\n            ? transformTemplate({}, \"\")\n            : \"none\";\n        // Ensure that whatever happens next, we restore our transform on the next frame\n        element.scheduleRender();\n    },\n    restoreTransform: function (instance, mutableState) {\n        instance.style.transform = mutableState.style.transform;\n    },\n    removeValueFromRenderState: function (key, _a) {\n        var vars = _a.vars, style = _a.style;\n        delete vars[key];\n        delete style[key];\n    },\n    /**\n     * Ensure that HTML and Framer-specific value types like `px`->`%` and `Color`\n     * can be animated by Motion.\n     */\n    makeTargetAnimatable: function (element, _a, _b, isMounted) {\n        var transformValues = _b.transformValues;\n        if (isMounted === void 0) { isMounted = true; }\n        var transition = _a.transition, transitionEnd = _a.transitionEnd, target = __rest(_a, [\"transition\", \"transitionEnd\"]);\n        var origin = getOrigin(target, transition || {}, element);\n        /**\n         * If Framer has provided a function to convert `Color` etc value types, convert them\n         */\n        if (transformValues) {\n            if (transitionEnd)\n                transitionEnd = transformValues(transitionEnd);\n            if (target)\n                target = transformValues(target);\n            if (origin)\n                origin = transformValues(origin);\n        }\n        if (isMounted) {\n            checkTargetForNewValues(element, target, origin);\n            var parsed = parseDomVariant(element, target, origin, transitionEnd);\n            transitionEnd = parsed.transitionEnd;\n            target = parsed.target;\n        }\n        return __assign({ transition: transition,\n            transitionEnd: transitionEnd }, target);\n    },\n    scrapeMotionValuesFromProps: scrapeMotionValuesFromProps,\n    build: function (element, renderState, latestValues, projection, layoutState, options, props) {\n        if (element.isVisible !== undefined) {\n            renderState.style.visibility = element.isVisible\n                ? \"visible\"\n                : \"hidden\";\n        }\n        var isProjectionTranform = projection.isEnabled && layoutState.isHydrated;\n        buildHTMLStyles(renderState, latestValues, projection, layoutState, options, props.transformTemplate, isProjectionTranform ? buildLayoutProjectionTransform : undefined, isProjectionTranform\n            ? buildLayoutProjectionTransformOrigin\n            : undefined);\n    },\n    render: renderHTML,\n};\nvar htmlVisualElement = visualElement(htmlConfig);\n\nexport { getComputedStyle, htmlConfig, htmlVisualElement };\n","/**\n * Check if value is a numerical string, ie a string that is purely a number eg \"100\" or \"-100.1\"\n */\nvar isNumericalString = function (v) { return /^\\-?\\d*\\.?\\d+$/.test(v); };\n\nexport { isNumericalString };\n","import { __assign } from 'tslib';\nimport { visualElement } from '../index.js';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.js';\nimport { htmlConfig } from '../html/visual-element.js';\nimport { buildSVGAttrs } from './utils/build-attrs.js';\nimport { camelToDash } from '../dom/utils/camel-to-dash.js';\nimport { camelCaseAttributes } from './utils/camel-case-attrs.js';\nimport { isTransformProp } from '../html/utils/transform.js';\nimport { renderSVG } from './utils/render.js';\nimport { getDefaultValueType } from '../dom/value-types/defaults.js';\nimport { buildLayoutProjectionTransformOrigin, buildLayoutProjectionTransform } from '../html/utils/build-projection-transform.js';\n\nvar svgVisualElement = visualElement(__assign(__assign({}, htmlConfig), { getBaseTarget: function (props, key) {\n        return props[key];\n    },\n    readValueFromInstance: function (domElement, key) {\n        var _a;\n        if (isTransformProp(key)) {\n            return ((_a = getDefaultValueType(key)) === null || _a === void 0 ? void 0 : _a.default) || 0;\n        }\n        key = !camelCaseAttributes.has(key) ? camelToDash(key) : key;\n        return domElement.getAttribute(key);\n    },\n    scrapeMotionValuesFromProps: scrapeMotionValuesFromProps,\n    build: function (_element, renderState, latestValues, projection, layoutState, options, props) {\n        var isProjectionTranform = projection.isEnabled && layoutState.isHydrated;\n        buildSVGAttrs(renderState, latestValues, projection, layoutState, options, props.transformTemplate, isProjectionTranform ? buildLayoutProjectionTransform : undefined, isProjectionTranform\n            ? buildLayoutProjectionTransformOrigin\n            : undefined);\n    }, render: renderSVG }));\n\nexport { svgVisualElement };\n","import { htmlVisualElement } from '../html/visual-element.js';\nimport { svgVisualElement } from '../svg/visual-element.js';\nimport { isSVGComponent } from './utils/is-svg-component.js';\n\nvar createDomVisualElement = function (Component, options) {\n    return isSVGComponent(Component)\n        ? svgVisualElement(options, { enableHardwareAcceleration: false })\n        : htmlVisualElement(options, { enableHardwareAcceleration: true });\n};\n\nexport { createDomVisualElement };\n","import { __assign } from 'tslib';\nimport { createMotionComponent } from '../../motion/index.js';\nimport { createMotionProxy } from './motion-proxy.js';\nimport { createDomMotionConfig } from './utils/create-config.js';\nimport { gestureAnimations } from '../../motion/features/gestures.js';\nimport { animations } from '../../motion/features/animations.js';\nimport { drag } from '../../motion/features/drag.js';\nimport { layoutAnimations } from '../../motion/features/layout/index.js';\nimport { createDomVisualElement } from './create-visual-element.js';\n\nvar featureBundle = __assign(__assign(__assign(__assign({}, animations), gestureAnimations), drag), layoutAnimations);\n/**\n * HTML & SVG components, optimised for use with gestures and animation. These can be used as\n * drop-in replacements for any HTML & SVG component, all CSS & SVG properties are supported.\n *\n * @public\n */\nvar motion = /*@__PURE__*/ createMotionProxy(function (Component, config) {\n    return createDomMotionConfig(Component, config, featureBundle, createDomVisualElement);\n});\n/**\n * Create a DOM `motion` component with the provided string. This is primarily intended\n * as a full alternative to `motion` for consumers who have to support environments that don't\n * support `Proxy`.\n *\n * ```javascript\n * import { createDomMotionComponent } from \"framer-motion\"\n *\n * const motion = {\n *   div: createDomMotionComponent('div')\n * }\n * ```\n *\n * @public\n */\nfunction createDomMotionComponent(key) {\n    return createMotionComponent(createDomMotionConfig(key, { forwardMotionProps: false }, featureBundle, createDomVisualElement));\n}\n\nexport { createDomMotionComponent, motion };\n","import { __assign } from 'tslib';\nimport { isSVGComponent } from './is-svg-component.js';\nimport { createUseRender } from '../use-render.js';\nimport { svgMotionConfig } from '../../svg/config-motion.js';\nimport { htmlMotionConfig } from '../../html/config-motion.js';\n\nfunction createDomMotionConfig(Component, _a, preloadedFeatures, createVisualElement) {\n    var _b = _a.forwardMotionProps, forwardMotionProps = _b === void 0 ? false : _b;\n    var baseConfig = isSVGComponent(Component)\n        ? svgMotionConfig\n        : htmlMotionConfig;\n    return __assign(__assign({}, baseConfig), { preloadedFeatures: preloadedFeatures, useRender: createUseRender(forwardMotionProps), createVisualElement: createVisualElement,\n        Component: Component });\n}\n\nexport { createDomMotionConfig };\n","import sync from 'framesync';\nimport { copyAxisBox } from '../../../utils/geometry/index.js';\nimport { compareByDepth } from '../../utils/compare-by-depth.js';\n\nfunction isProjecting(visualElement) {\n    var isEnabled = visualElement.projection.isEnabled;\n    return isEnabled || visualElement.shouldResetTransform();\n}\nfunction collectProjectingAncestors(visualElement, ancestors) {\n    if (ancestors === void 0) { ancestors = []; }\n    var parent = visualElement.parent;\n    if (parent)\n        collectProjectingAncestors(parent, ancestors);\n    if (isProjecting(visualElement))\n        ancestors.push(visualElement);\n    return ancestors;\n}\nfunction collectProjectingChildren(visualElement) {\n    var children = [];\n    var addChild = function (child) {\n        if (isProjecting(child))\n            children.push(child);\n        child.children.forEach(addChild);\n    };\n    visualElement.children.forEach(addChild);\n    return children.sort(compareByDepth);\n}\n/**\n * Update the layoutState by measuring the DOM layout. This\n * should be called after resetting any layout-affecting transforms.\n */\nfunction updateLayoutMeasurement(visualElement) {\n    if (visualElement.shouldResetTransform())\n        return;\n    var layoutState = visualElement.getLayoutState();\n    visualElement.notifyBeforeLayoutMeasure(layoutState.layout);\n    layoutState.isHydrated = true;\n    layoutState.layout = visualElement.measureViewportBox();\n    layoutState.layoutCorrected = copyAxisBox(layoutState.layout);\n    visualElement.notifyLayoutMeasure(layoutState.layout, visualElement.prevViewportBox || layoutState.layout);\n    sync.update(function () { return visualElement.rebaseProjectionTarget(); });\n}\n/**\n * Record the viewport box as it was before an expected mutation/re-render\n */\nfunction snapshotViewportBox(visualElement) {\n    if (visualElement.shouldResetTransform())\n        return;\n    visualElement.prevViewportBox = visualElement.measureViewportBox(false);\n    /**\n     * Update targetBox to match the prevViewportBox. This is just to ensure\n     * that targetBox is affected by scroll in the same way as the measured box\n     */\n    visualElement.rebaseProjectionTarget(false, visualElement.prevViewportBox);\n}\n\nexport { collectProjectingAncestors, collectProjectingChildren, snapshotViewportBox, updateLayoutMeasurement };\n","var unresolvedJobs = new Set();\nfunction pushJob(stack, job, pointer) {\n    if (!stack[pointer])\n        stack[pointer] = [];\n    stack[pointer].push(job);\n}\nfunction batchLayout(callback) {\n    unresolvedJobs.add(callback);\n    return function () { return unresolvedJobs.delete(callback); };\n}\nfunction flushLayout() {\n    if (!unresolvedJobs.size)\n        return;\n    var pointer = 0;\n    var reads = [[]];\n    var writes = [];\n    var setRead = function (job) { return pushJob(reads, job, pointer); };\n    var setWrite = function (job) {\n        pushJob(writes, job, pointer);\n        pointer++;\n    };\n    /**\n     * Resolve jobs into their array stacks\n     */\n    unresolvedJobs.forEach(function (callback) {\n        callback(setRead, setWrite);\n        pointer = 0;\n    });\n    unresolvedJobs.clear();\n    /**\n     * Execute jobs\n     */\n    var numStacks = writes.length;\n    for (var i = 0; i <= numStacks; i++) {\n        reads[i] && reads[i].forEach(executeJob);\n        writes[i] && writes[i].forEach(executeJob);\n    }\n}\nvar executeJob = function (job) { return job(); };\n\nexport { batchLayout, flushLayout };\n","var compareByDepth = function (a, b) {\n    return a.depth - b.depth;\n};\n\nexport { compareByDepth };\n","function noop(any) {\n    return any;\n}\n\nexport { noop };\n","import { __assign } from 'tslib';\nimport { noop } from '../noop.js';\n\n/**\n * Bounding boxes tend to be defined as top, left, right, bottom. For various operations\n * it's easier to consider each axis individually. This function returns a bounding box\n * as a map of single-axis min/max values.\n */\nfunction convertBoundingBoxToAxisBox(_a) {\n    var top = _a.top, left = _a.left, right = _a.right, bottom = _a.bottom;\n    return {\n        x: { min: left, max: right },\n        y: { min: top, max: bottom },\n    };\n}\nfunction convertAxisBoxToBoundingBox(_a) {\n    var x = _a.x, y = _a.y;\n    return {\n        top: y.min,\n        bottom: y.max,\n        left: x.min,\n        right: x.max,\n    };\n}\n/**\n * Applies a TransformPoint function to a bounding box. TransformPoint is usually a function\n * provided by Framer to allow measured points to be corrected for device scaling. This is used\n * when measuring DOM elements and DOM event points.\n */\nfunction transformBoundingBox(_a, transformPoint) {\n    var top = _a.top, left = _a.left, bottom = _a.bottom, right = _a.right;\n    if (transformPoint === void 0) { transformPoint = noop; }\n    var topLeft = transformPoint({ x: left, y: top });\n    var bottomRight = transformPoint({ x: right, y: bottom });\n    return {\n        top: topLeft.y,\n        left: topLeft.x,\n        bottom: bottomRight.y,\n        right: bottomRight.x,\n    };\n}\n/**\n * Create an empty axis box of zero size\n */\nfunction axisBox() {\n    return { x: { min: 0, max: 1 }, y: { min: 0, max: 1 } };\n}\nfunction copyAxisBox(box) {\n    return {\n        x: __assign({}, box.x),\n        y: __assign({}, box.y),\n    };\n}\n/**\n * Create an empty box delta\n */\nvar zeroDelta = {\n    translate: 0,\n    scale: 1,\n    origin: 0,\n    originPoint: 0,\n};\nfunction delta() {\n    return {\n        x: __assign({}, zeroDelta),\n        y: __assign({}, zeroDelta),\n    };\n}\n\nexport { axisBox, convertAxisBoxToBoundingBox, convertBoundingBoxToAxisBox, copyAxisBox, delta, transformBoundingBox };\n","import { useRef } from 'react';\n\n/**\n * Creates a constant value over the lifecycle of a component.\n *\n * Even if `useMemo` is provided an empty array as its final argument, it doesn't offer\n * a guarantee that it won't re-run for performance reasons later on. By using `useConstant`\n * you can ensure that initialisers don't execute twice or more.\n */\nfunction useConstant(init) {\n    var ref = useRef(null);\n    if (ref.current === null) {\n        ref.current = init();\n    }\n    return ref.current;\n}\n\nexport { useConstant };\n","import { useEffect } from 'react';\n\nfunction useUnmountEffect(callback) {\n    return useEffect(function () { return function () { return callback(); }; }, []);\n}\n\nexport { useUnmountEffect };\n","function memoize(fn) {\n  var cache = {};\n  return function (arg) {\n    if (cache[arg] === undefined) cache[arg] = fn(arg);\n    return cache[arg];\n  };\n}\n\nexport default memoize;\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|inert|itemProp|itemScope|itemType|itemID|itemRef|on|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar index = memoize(function (prop) {\n  return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n  /* o */\n  && prop.charCodeAt(1) === 110\n  /* n */\n  && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default index;\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n    if (typeof b !== \"function\" && b !== null)\r\n        throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n        if (ar || !(i in from)) {\r\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n            ar[i] = from[i];\r\n        }\r\n    }\r\n    return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","var defaultTimestep = (1 / 60) * 1000;\nvar getCurrentTime = typeof performance !== \"undefined\"\n    ? function () { return performance.now(); }\n    : function () { return Date.now(); };\nvar onNextFrame = typeof window !== \"undefined\"\n    ? function (callback) {\n        return window.requestAnimationFrame(callback);\n    }\n    : function (callback) {\n        return setTimeout(function () { return callback(getCurrentTime()); }, defaultTimestep);\n    };\n\nexport { defaultTimestep, onNextFrame };\n","import { onNextFrame, defaultTimestep } from './on-next-frame.js';\nimport { createRenderStep } from './create-render-step.js';\n\nvar maxElapsed = 40;\nvar useDefaultElapsed = true;\nvar runNextFrame = false;\nvar isProcessing = false;\nvar frame = {\n    delta: 0,\n    timestamp: 0\n};\nvar stepsOrder = [\"read\", \"update\", \"preRender\", \"render\", \"postRender\"];\nvar steps = /*#__PURE__*/stepsOrder.reduce(function (acc, key) {\n    acc[key] = createRenderStep(function () {\n        return runNextFrame = true;\n    });\n    return acc;\n}, {});\nvar sync = /*#__PURE__*/stepsOrder.reduce(function (acc, key) {\n    var step = steps[key];\n    acc[key] = function (process, keepAlive, immediate) {\n        if (keepAlive === void 0) {\n            keepAlive = false;\n        }\n        if (immediate === void 0) {\n            immediate = false;\n        }\n        if (!runNextFrame) startLoop();\n        return step.schedule(process, keepAlive, immediate);\n    };\n    return acc;\n}, {});\nvar cancelSync = /*#__PURE__*/stepsOrder.reduce(function (acc, key) {\n    acc[key] = steps[key].cancel;\n    return acc;\n}, {});\nvar flushSync = /*#__PURE__*/stepsOrder.reduce(function (acc, key) {\n    acc[key] = function () {\n        return steps[key].process(frame);\n    };\n    return acc;\n}, {});\nvar processStep = function (stepId) {\n    return steps[stepId].process(frame);\n};\nvar processFrame = function (timestamp) {\n    runNextFrame = false;\n    frame.delta = useDefaultElapsed ? defaultTimestep : Math.max(Math.min(timestamp - frame.timestamp, maxElapsed), 1);\n    frame.timestamp = timestamp;\n    isProcessing = true;\n    stepsOrder.forEach(processStep);\n    isProcessing = false;\n    if (runNextFrame) {\n        useDefaultElapsed = false;\n        onNextFrame(processFrame);\n    }\n};\nvar startLoop = function () {\n    runNextFrame = true;\n    useDefaultElapsed = true;\n    if (!isProcessing) onNextFrame(processFrame);\n};\nvar getFrameData = function () {\n    return frame;\n};\n\nexport default sync;\nexport { cancelSync, flushSync, getFrameData };\n","function createRenderStep(runNextFrame) {\n    var toRun = [];\n    var toRunNextFrame = [];\n    var numToRun = 0;\n    var isProcessing = false;\n    var toKeepAlive = new WeakSet();\n    var step = {\n        schedule: function (callback, keepAlive, immediate) {\n            if (keepAlive === void 0) { keepAlive = false; }\n            if (immediate === void 0) { immediate = false; }\n            var addToCurrentFrame = immediate && isProcessing;\n            var buffer = addToCurrentFrame ? toRun : toRunNextFrame;\n            if (keepAlive)\n                toKeepAlive.add(callback);\n            if (buffer.indexOf(callback) === -1) {\n                buffer.push(callback);\n                if (addToCurrentFrame && isProcessing)\n                    numToRun = toRun.length;\n            }\n            return callback;\n        },\n        cancel: function (callback) {\n            var index = toRunNextFrame.indexOf(callback);\n            if (index !== -1)\n                toRunNextFrame.splice(index, 1);\n            toKeepAlive.delete(callback);\n        },\n        process: function (frameData) {\n            var _a;\n            isProcessing = true;\n            _a = [toRunNextFrame, toRun], toRun = _a[0], toRunNextFrame = _a[1];\n            toRunNextFrame.length = 0;\n            numToRun = toRun.length;\n            if (numToRun) {\n                for (var i = 0; i < numToRun; i++) {\n                    var callback = toRun[i];\n                    callback(frameData);\n                    if (toKeepAlive.has(callback)) {\n                        step.schedule(callback);\n                        runNextFrame();\n                    }\n                }\n            }\n            isProcessing = false;\n        },\n    };\n    return step;\n}\n\nexport { createRenderStep };\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n  childContextTypes: true,\n  contextType: true,\n  contextTypes: true,\n  defaultProps: true,\n  displayName: true,\n  getDefaultProps: true,\n  getDerivedStateFromError: true,\n  getDerivedStateFromProps: true,\n  mixins: true,\n  propTypes: true,\n  type: true\n};\nvar KNOWN_STATICS = {\n  name: true,\n  length: true,\n  prototype: true,\n  caller: true,\n  callee: true,\n  arguments: true,\n  arity: true\n};\nvar FORWARD_REF_STATICS = {\n  '$$typeof': true,\n  render: true,\n  defaultProps: true,\n  displayName: true,\n  propTypes: true\n};\nvar MEMO_STATICS = {\n  '$$typeof': true,\n  compare: true,\n  defaultProps: true,\n  displayName: true,\n  propTypes: true,\n  type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n  // React v16.11 and below\n  if (reactIs.isMemo(component)) {\n    return MEMO_STATICS;\n  } // React v16.12 and above\n\n\n  return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n  if (typeof sourceComponent !== 'string') {\n    // don't hoist over string (html) components\n    if (objectPrototype) {\n      var inheritedComponent = getPrototypeOf(sourceComponent);\n\n      if (inheritedComponent && inheritedComponent !== objectPrototype) {\n        hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n      }\n    }\n\n    var keys = getOwnPropertyNames(sourceComponent);\n\n    if (getOwnPropertySymbols) {\n      keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n    }\n\n    var targetStatics = getStatics(targetComponent);\n    var sourceStatics = getStatics(sourceComponent);\n\n    for (var i = 0; i < keys.length; ++i) {\n      var key = keys[i];\n\n      if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n        var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n        try {\n          // Avoid failures from read-only properties\n          defineProperty(targetComponent, key, descriptor);\n        } catch (e) {}\n      }\n    }\n  }\n\n  return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/** @license React v16.13.1\n * react-is.production.min.js\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'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react-is.production.min.js');\n} else {\n  module.exports = require('./cjs/react-is.development.js');\n}\n","/**\n * Lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n    HOT_SPAN = 16;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n    arrayTag = '[object Array]',\n    asyncTag = '[object AsyncFunction]',\n    boolTag = '[object Boolean]',\n    dateTag = '[object Date]',\n    errorTag = '[object Error]',\n    funcTag = '[object Function]',\n    genTag = '[object GeneratorFunction]',\n    mapTag = '[object Map]',\n    numberTag = '[object Number]',\n    nullTag = '[object Null]',\n    objectTag = '[object Object]',\n    proxyTag = '[object Proxy]',\n    regexpTag = '[object RegExp]',\n    setTag = '[object Set]',\n    stringTag = '[object String]',\n    undefinedTag = '[object Undefined]',\n    weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n    dataViewTag = '[object DataView]',\n    float32Tag = '[object Float32Array]',\n    float64Tag = '[object Float64Array]',\n    int8Tag = '[object Int8Array]',\n    int16Tag = '[object Int16Array]',\n    int32Tag = '[object Int32Array]',\n    uint8Tag = '[object Uint8Array]',\n    uint8ClampedTag = '[object Uint8ClampedArray]',\n    uint16Tag = '[object Uint16Array]',\n    uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n  try {\n    // Use `util.types` for Node.js 10+.\n    var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n    if (types) {\n      return types;\n    }\n\n    // Legacy `process.binding('util')` for Node.js < 10.\n    return freeProcess && freeProcess.binding && freeProcess.binding('util');\n  } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n  switch (args.length) {\n    case 0: return func.call(thisArg);\n    case 1: return func.call(thisArg, args[0]);\n    case 2: return func.call(thisArg, args[0], args[1]);\n    case 3: return func.call(thisArg, args[0], args[1], args[2]);\n  }\n  return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n  var index = -1,\n      result = Array(n);\n\n  while (++index < n) {\n    result[index] = iteratee(index);\n  }\n  return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n  return function(value) {\n    return func(value);\n  };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n  return object == null ? undefined : object[key];\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n  return function(arg) {\n    return func(transform(arg));\n  };\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n    funcProto = Function.prototype,\n    objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n  var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n  return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n  funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n  .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n    Symbol = root.Symbol,\n    Uint8Array = root.Uint8Array,\n    allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n    getPrototype = overArg(Object.getPrototypeOf, Object),\n    objectCreate = Object.create,\n    propertyIsEnumerable = objectProto.propertyIsEnumerable,\n    splice = arrayProto.splice,\n    symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\nvar defineProperty = (function() {\n  try {\n    var func = getNative(Object, 'defineProperty');\n    func({}, '', {});\n    return func;\n  } catch (e) {}\n}());\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n    nativeMax = Math.max,\n    nativeNow = Date.now;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n    nativeCreate = getNative(Object, 'create');\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n  function object() {}\n  return function(proto) {\n    if (!isObject(proto)) {\n      return {};\n    }\n    if (objectCreate) {\n      return objectCreate(proto);\n    }\n    object.prototype = proto;\n    var result = new object;\n    object.prototype = undefined;\n    return result;\n  };\n}());\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n  this.__data__ = nativeCreate ? nativeCreate(null) : {};\n  this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n  var result = this.has(key) && delete this.__data__[key];\n  this.size -= result ? 1 : 0;\n  return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n  var data = this.__data__;\n  if (nativeCreate) {\n    var result = data[key];\n    return result === HASH_UNDEFINED ? undefined : result;\n  }\n  return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n  var data = this.__data__;\n  return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n  var data = this.__data__;\n  this.size += this.has(key) ? 0 : 1;\n  data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n  return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n  this.__data__ = [];\n  this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  if (index < 0) {\n    return false;\n  }\n  var lastIndex = data.length - 1;\n  if (index == lastIndex) {\n    data.pop();\n  } else {\n    splice.call(data, index, 1);\n  }\n  --this.size;\n  return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n  return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  if (index < 0) {\n    ++this.size;\n    data.push([key, value]);\n  } else {\n    data[index][1] = value;\n  }\n  return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n  this.size = 0;\n  this.__data__ = {\n    'hash': new Hash,\n    'map': new (Map || ListCache),\n    'string': new Hash\n  };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n  var result = getMapData(this, key)['delete'](key);\n  this.size -= result ? 1 : 0;\n  return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n  return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n  return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n  var data = getMapData(this, key),\n      size = data.size;\n\n  data.set(key, value);\n  this.size += data.size == size ? 0 : 1;\n  return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n  var data = this.__data__ = new ListCache(entries);\n  this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n  this.__data__ = new ListCache;\n  this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n  var data = this.__data__,\n      result = data['delete'](key);\n\n  this.size = data.size;\n  return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n  return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n  return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n  var data = this.__data__;\n  if (data instanceof ListCache) {\n    var pairs = data.__data__;\n    if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n      pairs.push([key, value]);\n      this.size = ++data.size;\n      return this;\n    }\n    data = this.__data__ = new MapCache(pairs);\n  }\n  data.set(key, value);\n  this.size = data.size;\n  return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n  var isArr = isArray(value),\n      isArg = !isArr && isArguments(value),\n      isBuff = !isArr && !isArg && isBuffer(value),\n      isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n      skipIndexes = isArr || isArg || isBuff || isType,\n      result = skipIndexes ? baseTimes(value.length, String) : [],\n      length = result.length;\n\n  for (var key in value) {\n    if ((inherited || hasOwnProperty.call(value, key)) &&\n        !(skipIndexes && (\n           // Safari 9 has enumerable `arguments.length` in strict mode.\n           key == 'length' ||\n           // Node.js 0.10 has enumerable non-index properties on buffers.\n           (isBuff && (key == 'offset' || key == 'parent')) ||\n           // PhantomJS 2 has enumerable non-index properties on typed arrays.\n           (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n           // Skip index properties.\n           isIndex(key, length)\n        ))) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n  if ((value !== undefined && !eq(object[key], value)) ||\n      (value === undefined && !(key in object))) {\n    baseAssignValue(object, key, value);\n  }\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n  var objValue = object[key];\n  if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n      (value === undefined && !(key in object))) {\n    baseAssignValue(object, key, value);\n  }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n  var length = array.length;\n  while (length--) {\n    if (eq(array[length][0], key)) {\n      return length;\n    }\n  }\n  return -1;\n}\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n  if (key == '__proto__' && defineProperty) {\n    defineProperty(object, key, {\n      'configurable': true,\n      'enumerable': true,\n      'value': value,\n      'writable': true\n    });\n  } else {\n    object[key] = value;\n  }\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n  if (value == null) {\n    return value === undefined ? undefinedTag : nullTag;\n  }\n  return (symToStringTag && symToStringTag in Object(value))\n    ? getRawTag(value)\n    : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n  return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n *  else `false`.\n */\nfunction baseIsNative(value) {\n  if (!isObject(value) || isMasked(value)) {\n    return false;\n  }\n  var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n  return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n  return isObjectLike(value) &&\n    isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n  if (!isObject(object)) {\n    return nativeKeysIn(object);\n  }\n  var isProto = isPrototype(object),\n      result = [];\n\n  for (var key in object) {\n    if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n *  counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n  if (object === source) {\n    return;\n  }\n  baseFor(source, function(srcValue, key) {\n    stack || (stack = new Stack);\n    if (isObject(srcValue)) {\n      baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n    }\n    else {\n      var newValue = customizer\n        ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n        : undefined;\n\n      if (newValue === undefined) {\n        newValue = srcValue;\n      }\n      assignMergeValue(object, key, newValue);\n    }\n  }, keysIn);\n}\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n *  counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n  var objValue = safeGet(object, key),\n      srcValue = safeGet(source, key),\n      stacked = stack.get(srcValue);\n\n  if (stacked) {\n    assignMergeValue(object, key, stacked);\n    return;\n  }\n  var newValue = customizer\n    ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n    : undefined;\n\n  var isCommon = newValue === undefined;\n\n  if (isCommon) {\n    var isArr = isArray(srcValue),\n        isBuff = !isArr && isBuffer(srcValue),\n        isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n    newValue = srcValue;\n    if (isArr || isBuff || isTyped) {\n      if (isArray(objValue)) {\n        newValue = objValue;\n      }\n      else if (isArrayLikeObject(objValue)) {\n        newValue = copyArray(objValue);\n      }\n      else if (isBuff) {\n        isCommon = false;\n        newValue = cloneBuffer(srcValue, true);\n      }\n      else if (isTyped) {\n        isCommon = false;\n        newValue = cloneTypedArray(srcValue, true);\n      }\n      else {\n        newValue = [];\n      }\n    }\n    else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n      newValue = objValue;\n      if (isArguments(objValue)) {\n        newValue = toPlainObject(objValue);\n      }\n      else if (!isObject(objValue) || isFunction(objValue)) {\n        newValue = initCloneObject(srcValue);\n      }\n    }\n    else {\n      isCommon = false;\n    }\n  }\n  if (isCommon) {\n    // Recursively merge objects and arrays (susceptible to call stack limits).\n    stack.set(srcValue, newValue);\n    mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n    stack['delete'](srcValue);\n  }\n  assignMergeValue(object, key, newValue);\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n  return setToString(overRest(func, start, identity), func + '');\n}\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n  return defineProperty(func, 'toString', {\n    'configurable': true,\n    'enumerable': false,\n    'value': constant(string),\n    'writable': true\n  });\n};\n\n/**\n * Creates a clone of  `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n  if (isDeep) {\n    return buffer.slice();\n  }\n  var length = buffer.length,\n      result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n  buffer.copy(result);\n  return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n  var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n  new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n  return result;\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n  var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n  return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n  var index = -1,\n      length = source.length;\n\n  array || (array = Array(length));\n  while (++index < length) {\n    array[index] = source[index];\n  }\n  return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n  var isNew = !object;\n  object || (object = {});\n\n  var index = -1,\n      length = props.length;\n\n  while (++index < length) {\n    var key = props[index];\n\n    var newValue = customizer\n      ? customizer(object[key], source[key], key, object, source)\n      : undefined;\n\n    if (newValue === undefined) {\n      newValue = source[key];\n    }\n    if (isNew) {\n      baseAssignValue(object, key, newValue);\n    } else {\n      assignValue(object, key, newValue);\n    }\n  }\n  return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n  return baseRest(function(object, sources) {\n    var index = -1,\n        length = sources.length,\n        customizer = length > 1 ? sources[length - 1] : undefined,\n        guard = length > 2 ? sources[2] : undefined;\n\n    customizer = (assigner.length > 3 && typeof customizer == 'function')\n      ? (length--, customizer)\n      : undefined;\n\n    if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n      customizer = length < 3 ? undefined : customizer;\n      length = 1;\n    }\n    object = Object(object);\n    while (++index < length) {\n      var source = sources[index];\n      if (source) {\n        assigner(object, source, index, customizer);\n      }\n    }\n    return object;\n  });\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n  return function(object, iteratee, keysFunc) {\n    var index = -1,\n        iterable = Object(object),\n        props = keysFunc(object),\n        length = props.length;\n\n    while (length--) {\n      var key = props[fromRight ? length : ++index];\n      if (iteratee(iterable[key], key, iterable) === false) {\n        break;\n      }\n    }\n    return object;\n  };\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n  var data = map.__data__;\n  return isKeyable(key)\n    ? data[typeof key == 'string' ? 'string' : 'hash']\n    : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n  var value = getValue(object, key);\n  return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n  var isOwn = hasOwnProperty.call(value, symToStringTag),\n      tag = value[symToStringTag];\n\n  try {\n    value[symToStringTag] = undefined;\n    var unmasked = true;\n  } catch (e) {}\n\n  var result = nativeObjectToString.call(value);\n  if (unmasked) {\n    if (isOwn) {\n      value[symToStringTag] = tag;\n    } else {\n      delete value[symToStringTag];\n    }\n  }\n  return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n  return (typeof object.constructor == 'function' && !isPrototype(object))\n    ? baseCreate(getPrototype(object))\n    : {};\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n  var type = typeof value;\n  length = length == null ? MAX_SAFE_INTEGER : length;\n\n  return !!length &&\n    (type == 'number' ||\n      (type != 'symbol' && reIsUint.test(value))) &&\n        (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n *  else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n  if (!isObject(object)) {\n    return false;\n  }\n  var type = typeof index;\n  if (type == 'number'\n        ? (isArrayLike(object) && isIndex(index, object.length))\n        : (type == 'string' && index in object)\n      ) {\n    return eq(object[index], value);\n  }\n  return false;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n  var type = typeof value;\n  return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n    ? (value !== '__proto__')\n    : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n  return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n  var Ctor = value && value.constructor,\n      proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n  return value === proto;\n}\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n  var result = [];\n  if (object != null) {\n    for (var key in Object(object)) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n  return nativeObjectToString.call(value);\n}\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n  start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n  return function() {\n    var args = arguments,\n        index = -1,\n        length = nativeMax(args.length - start, 0),\n        array = Array(length);\n\n    while (++index < length) {\n      array[index] = args[start + index];\n    }\n    index = -1;\n    var otherArgs = Array(start + 1);\n    while (++index < start) {\n      otherArgs[index] = args[index];\n    }\n    otherArgs[start] = transform(array);\n    return apply(func, this, otherArgs);\n  };\n}\n\n/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n  if (key === 'constructor' && typeof object[key] === 'function') {\n    return;\n  }\n\n  if (key == '__proto__') {\n    return;\n  }\n\n  return object[key];\n}\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n  var count = 0,\n      lastCalled = 0;\n\n  return function() {\n    var stamp = nativeNow(),\n        remaining = HOT_SPAN - (stamp - lastCalled);\n\n    lastCalled = stamp;\n    if (remaining > 0) {\n      if (++count >= HOT_COUNT) {\n        return arguments[0];\n      }\n    } else {\n      count = 0;\n    }\n    return func.apply(undefined, arguments);\n  };\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n  if (func != null) {\n    try {\n      return funcToString.call(func);\n    } catch (e) {}\n    try {\n      return (func + '');\n    } catch (e) {}\n  }\n  return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n  return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n *  else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n  return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n    !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n  return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n *  else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n  return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n  if (!isObject(value)) {\n    return false;\n  }\n  // The use of `Object#toString` avoids issues with the `typeof` operator\n  // in Safari 9 which returns 'object' for typed arrays and other constructors.\n  var tag = baseGetTag(value);\n  return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n  return typeof value == 'number' &&\n    value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n  var type = typeof value;\n  return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n  return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n  if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n    return false;\n  }\n  var proto = getPrototype(value);\n  if (proto === null) {\n    return true;\n  }\n  var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n  return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n    funcToString.call(Ctor) == objectCtorString;\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n  return copyObject(value, keysIn(value));\n}\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n  return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n *   if (_.isArray(objValue)) {\n *     return objValue.concat(srcValue);\n *   }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\nvar mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n  baseMerge(object, source, srcIndex, customizer);\n});\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n  return function() {\n    return value;\n  };\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n  return value;\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n  return false;\n}\n\nmodule.exports = mergeWith;\n","\"use strict\";\nvar ref, ref1;\nmodule.exports = ((ref = global.process) === null || ref === void 0 ? void 0 : ref.env) && typeof ((ref1 = global.process) === null || ref1 === void 0 ? void 0 : ref1.env) === 'object' ? global.process : require('../../compiled/process');\n\n//# sourceMappingURL=process.js.map","\n    (window.__NEXT_P = window.__NEXT_P || []).push([\n      \"/_app\",\n      function () {\n        return require(\"private-next-pages/_app.js\");\n      }\n    ]);\n    if(module.hot) {\n      module.hot.dispose(function () {\n        window.__NEXT_P.push([\"/_app\"])\n      });\n    }\n  ","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n    value: true\n});\nexports.noSSR = noSSR;\nexports.default = dynamic;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _loadable = _interopRequireDefault(require(\"./loadable\"));\nfunction _interopRequireDefault(obj) {\n    return obj && obj.__esModule ? obj : {\n        default: obj\n    };\n}\nconst isServerSide = typeof window === 'undefined';\nfunction noSSR(LoadableInitializer, loadableOptions) {\n    // Removing webpack and modules means react-loadable won't try preloading\n    delete loadableOptions.webpack;\n    delete loadableOptions.modules;\n    // This check is necessary to prevent react-loadable from initializing on the server\n    if (!isServerSide) {\n        return LoadableInitializer(loadableOptions);\n    }\n    const Loading = loadableOptions.loading;\n    // This will only be rendered on the server side\n    return ()=>/*#__PURE__*/ _react.default.createElement(Loading, {\n            error: null,\n            isLoading: true,\n            pastDelay: false,\n            timedOut: false\n        })\n    ;\n}\nfunction dynamic(dynamicOptions, options) {\n    let loadableFn = _loadable.default;\n    let loadableOptions = {\n        // A loading component is not required, so we default it\n        loading: ({ error , isLoading , pastDelay  })=>{\n            if (!pastDelay) return null;\n            if (process.env.NODE_ENV === 'development') {\n                if (isLoading) {\n                    return null;\n                }\n                if (error) {\n                    return(/*#__PURE__*/ _react.default.createElement(\"p\", null, error.message, /*#__PURE__*/ _react.default.createElement(\"br\", null), error.stack));\n                }\n            }\n            return null;\n        }\n    };\n    // Support for direct import(), eg: dynamic(import('../hello-world'))\n    // Note that this is only kept for the edge case where someone is passing in a promise as first argument\n    // The react-loadable babel plugin will turn dynamic(import('../hello-world')) into dynamic(() => import('../hello-world'))\n    // To make sure we don't execute the import without rendering first\n    if (dynamicOptions instanceof Promise) {\n        loadableOptions.loader = ()=>dynamicOptions\n        ;\n    // Support for having import as a function, eg: dynamic(() => import('../hello-world'))\n    } else if (typeof dynamicOptions === 'function') {\n        loadableOptions.loader = dynamicOptions;\n    // Support for having first argument being options, eg: dynamic({loader: import('../hello-world')})\n    } else if (typeof dynamicOptions === 'object') {\n        loadableOptions = {\n            ...loadableOptions,\n            ...dynamicOptions\n        };\n    }\n    // Support for passing options, eg: dynamic(import('../hello-world'), {loading: () => <p>Loading something</p>})\n    loadableOptions = {\n        ...loadableOptions,\n        ...options\n    };\n    const suspenseOptions = loadableOptions;\n    if (!process.env.__NEXT_CONCURRENT_FEATURES) {\n        // Error if react root is not enabled and `suspense` option is set to true\n        if (!process.env.__NEXT_REACT_ROOT && suspenseOptions.suspense) {\n            // TODO: add error doc when this feature is stable\n            throw new Error(`Invalid suspense option usage in next/dynamic. Read more: https://nextjs.org/docs/messages/invalid-dynamic-suspense`);\n        }\n    }\n    if (suspenseOptions.suspense) {\n        return loadableFn(suspenseOptions);\n    }\n    // coming from build/babel/plugins/react-loadable-plugin.js\n    if (loadableOptions.loadableGenerated) {\n        loadableOptions = {\n            ...loadableOptions,\n            ...loadableOptions.loadableGenerated\n        };\n        delete loadableOptions.loadableGenerated;\n    }\n    // support for disabling server side rendering, eg: dynamic(import('../hello-world'), {ssr: false})\n    if (typeof loadableOptions.ssr === 'boolean') {\n        if (!loadableOptions.ssr) {\n            delete loadableOptions.ssr;\n            return noSSR(loadableFn, loadableOptions);\n        }\n        delete loadableOptions.ssr;\n    }\n    return loadableFn(loadableOptions);\n}\n\n//# sourceMappingURL=dynamic.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n    value: true\n});\nexports.LoadableContext = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nfunction _interopRequireDefault(obj) {\n    return obj && obj.__esModule ? obj : {\n        default: obj\n    };\n}\nconst LoadableContext = _react.default.createContext(null);\nexports.LoadableContext = LoadableContext;\nif (process.env.NODE_ENV !== 'production') {\n    LoadableContext.displayName = 'LoadableContext';\n}\n\n//# sourceMappingURL=loadable-context.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n    value: true\n});\nexports.default = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _useSubscription = require(\"use-subscription\");\nvar _loadableContext = require(\"./loadable-context\");\nfunction _interopRequireDefault(obj) {\n    return obj && obj.__esModule ? obj : {\n        default: obj\n    };\n}\nconst ALL_INITIALIZERS = [];\nconst READY_INITIALIZERS = [];\nlet initialized = false;\nfunction load(loader) {\n    let promise = loader();\n    let state = {\n        loading: true,\n        loaded: null,\n        error: null\n    };\n    state.promise = promise.then((loaded)=>{\n        state.loading = false;\n        state.loaded = loaded;\n        return loaded;\n    }).catch((err)=>{\n        state.loading = false;\n        state.error = err;\n        throw err;\n    });\n    return state;\n}\nfunction resolve(obj) {\n    return obj && obj.__esModule ? obj.default : obj;\n}\nfunction createLoadableComponent(loadFn, options) {\n    let opts = Object.assign({\n        loader: null,\n        loading: null,\n        delay: 200,\n        timeout: null,\n        webpack: null,\n        modules: null,\n        suspense: false\n    }, options);\n    if (opts.suspense) {\n        opts.lazy = _react.default.lazy(opts.loader);\n    }\n    let subscription = null;\n    function init() {\n        if (!subscription) {\n            const sub = new LoadableSubscription(loadFn, opts);\n            subscription = {\n                getCurrentValue: sub.getCurrentValue.bind(sub),\n                subscribe: sub.subscribe.bind(sub),\n                retry: sub.retry.bind(sub),\n                promise: sub.promise.bind(sub)\n            };\n        }\n        return subscription.promise();\n    }\n    // Server only\n    if (typeof window === 'undefined' && !opts.suspense) {\n        ALL_INITIALIZERS.push(init);\n    }\n    // Client only\n    if (!initialized && typeof window !== 'undefined' && !opts.suspense) {\n        // require.resolveWeak check is needed for environments that don't have it available like Jest\n        const moduleIds = opts.webpack && typeof require.resolveWeak === 'function' ? opts.webpack() : opts.modules;\n        if (moduleIds) {\n            READY_INITIALIZERS.push((ids)=>{\n                for (const moduleId of moduleIds){\n                    if (ids.indexOf(moduleId) !== -1) {\n                        return init();\n                    }\n                }\n            });\n        }\n    }\n    function LoadableImpl(props, ref) {\n        init();\n        const context = _react.default.useContext(_loadableContext.LoadableContext);\n        const state = (0, _useSubscription).useSubscription(subscription);\n        _react.default.useImperativeHandle(ref, ()=>({\n                retry: subscription.retry\n            })\n        , []);\n        if (context && Array.isArray(opts.modules)) {\n            opts.modules.forEach((moduleName)=>{\n                context(moduleName);\n            });\n        }\n        return _react.default.useMemo(()=>{\n            if (state.loading || state.error) {\n                return _react.default.createElement(opts.loading, {\n                    isLoading: state.loading,\n                    pastDelay: state.pastDelay,\n                    timedOut: state.timedOut,\n                    error: state.error,\n                    retry: subscription.retry\n                });\n            } else if (state.loaded) {\n                return _react.default.createElement(resolve(state.loaded), props);\n            } else {\n                return null;\n            }\n        }, [\n            props,\n            state\n        ]);\n    }\n    function LazyImpl(props, ref) {\n        return _react.default.createElement(opts.lazy, {\n            ...props,\n            ref\n        });\n    }\n    const LoadableComponent = opts.suspense ? LazyImpl : LoadableImpl;\n    LoadableComponent.preload = ()=>!opts.suspense && init()\n    ;\n    LoadableComponent.displayName = 'LoadableComponent';\n    return _react.default.forwardRef(LoadableComponent);\n}\nclass LoadableSubscription {\n    constructor(loadFn, opts){\n        this._loadFn = loadFn;\n        this._opts = opts;\n        this._callbacks = new Set();\n        this._delay = null;\n        this._timeout = null;\n        this.retry();\n    }\n    promise() {\n        return this._res.promise;\n    }\n    retry() {\n        this._clearTimeouts();\n        this._res = this._loadFn(this._opts.loader);\n        this._state = {\n            pastDelay: false,\n            timedOut: false\n        };\n        const { _res: res , _opts: opts  } = this;\n        if (res.loading) {\n            if (typeof opts.delay === 'number') {\n                if (opts.delay === 0) {\n                    this._state.pastDelay = true;\n                } else {\n                    this._delay = setTimeout(()=>{\n                        this._update({\n                            pastDelay: true\n                        });\n                    }, opts.delay);\n                }\n            }\n            if (typeof opts.timeout === 'number') {\n                this._timeout = setTimeout(()=>{\n                    this._update({\n                        timedOut: true\n                    });\n                }, opts.timeout);\n            }\n        }\n        this._res.promise.then(()=>{\n            this._update({\n            });\n            this._clearTimeouts();\n        }).catch((_err)=>{\n            this._update({\n            });\n            this._clearTimeouts();\n        });\n        this._update({\n        });\n    }\n    _update(partial) {\n        this._state = {\n            ...this._state,\n            error: this._res.error,\n            loaded: this._res.loaded,\n            loading: this._res.loading,\n            ...partial\n        };\n        this._callbacks.forEach((callback)=>callback()\n        );\n    }\n    _clearTimeouts() {\n        clearTimeout(this._delay);\n        clearTimeout(this._timeout);\n    }\n    getCurrentValue() {\n        return this._state;\n    }\n    subscribe(callback) {\n        this._callbacks.add(callback);\n        return ()=>{\n            this._callbacks.delete(callback);\n        };\n    }\n}\nfunction Loadable(opts) {\n    return createLoadableComponent(load, opts);\n}\nfunction flushInitializers(initializers, ids) {\n    let promises = [];\n    while(initializers.length){\n        let init = initializers.pop();\n        promises.push(init(ids));\n    }\n    return Promise.all(promises).then(()=>{\n        if (initializers.length) {\n            return flushInitializers(initializers, ids);\n        }\n    });\n}\nLoadable.preloadAll = ()=>{\n    return new Promise((resolveInitializers, reject)=>{\n        flushInitializers(ALL_INITIALIZERS).then(resolveInitializers, reject);\n    });\n};\nLoadable.preloadReady = (ids = [])=>{\n    return new Promise((resolvePreload)=>{\n        const res = ()=>{\n            initialized = true;\n            return resolvePreload();\n        };\n        // We always will resolve, errors should be handled within loading UIs.\n        flushInitializers(READY_INITIALIZERS, ids).then(res, res);\n    });\n};\nif (typeof window !== 'undefined') {\n    window.__NEXT_PRELOADREADY = Loadable.preloadReady;\n}\nvar _default = Loadable;\nexports.default = _default;\n\n//# sourceMappingURL=loadable.js.map","import { Global } from \"@emotion/react\";\nimport * as React from \"react\";\nexport var CSSReset = () => /*#__PURE__*/React.createElement(Global, {\n  styles: \"\\n      html {\\n        line-height: 1.5;\\n        -webkit-text-size-adjust: 100%;\\n        font-family: system-ui, sans-serif;\\n        -webkit-font-smoothing: antialiased;\\n        text-rendering: optimizeLegibility;      \\n        -moz-osx-font-smoothing: grayscale; \\n        touch-action: manipulation; \\n      }\\n\\n      body {\\n        position: relative;\\n        min-height: 100%;\\n        font-feature-settings: 'kern';\\n      }\\n\\n      *,\\n      *::before,\\n      *::after {\\n        border-width: 0;\\n        border-style: solid;\\n        box-sizing: border-box;\\n      }\\n\\n      main {\\n        display: block;\\n      }\\n\\n      hr {\\n        border-top-width: 1px;\\n        box-sizing: content-box;\\n        height: 0;\\n        overflow: visible;\\n      }\\n\\n      pre,\\n      code,\\n      kbd,\\n      samp {\\n        font-family: SFMono-Regular,  Menlo, Monaco, Consolas, monospace;\\n        font-size: 1em;\\n      }\\n\\n      a {\\n        background-color: transparent;\\n        color: inherit;\\n        text-decoration: inherit;\\n      }\\n\\n      abbr[title] {\\n        border-bottom: none;\\n        text-decoration: underline;\\n        -webkit-text-decoration: underline dotted;\\n        text-decoration: underline dotted;\\n      }\\n\\n      b,\\n      strong {\\n        font-weight: bold;\\n      }\\n\\n      small {\\n        font-size: 80%;\\n      }\\n\\n      sub,\\n      sup {\\n        font-size: 75%;\\n        line-height: 0;\\n        position: relative;\\n        vertical-align: baseline;\\n      }\\n\\n      sub {\\n        bottom: -0.25em;\\n      }\\n\\n      sup {\\n        top: -0.5em;\\n      }\\n\\n      img {\\n        border-style: none;\\n      }\\n\\n      button,\\n      input,\\n      optgroup,\\n      select,\\n      textarea {\\n        font-family: inherit;\\n        font-size: 100%;\\n        line-height: 1.15;\\n        margin: 0;\\n      }\\n\\n      button,\\n      input {\\n        overflow: visible;\\n      }\\n\\n      button,\\n      select {\\n        text-transform: none;\\n      }\\n\\n      button::-moz-focus-inner,\\n      [type=\\\"button\\\"]::-moz-focus-inner,\\n      [type=\\\"reset\\\"]::-moz-focus-inner,\\n      [type=\\\"submit\\\"]::-moz-focus-inner {\\n        border-style: none;\\n        padding: 0;\\n      }\\n\\n      fieldset {\\n        padding: 0.35em 0.75em 0.625em;\\n      }\\n\\n      legend {\\n        box-sizing: border-box;\\n        color: inherit;\\n        display: table;\\n        max-width: 100%;\\n        padding: 0;\\n        white-space: normal;\\n      }\\n\\n      progress {\\n        vertical-align: baseline;\\n      }\\n\\n      textarea {\\n        overflow: auto;\\n      }\\n\\n      [type=\\\"checkbox\\\"],\\n      [type=\\\"radio\\\"] {\\n        box-sizing: border-box;\\n        padding: 0;\\n      }\\n\\n      [type=\\\"number\\\"]::-webkit-inner-spin-button,\\n      [type=\\\"number\\\"]::-webkit-outer-spin-button {\\n        -webkit-appearance: none !important;\\n      }\\n\\n      input[type=\\\"number\\\"] {\\n        -moz-appearance: textfield;\\n      }\\n\\n      [type=\\\"search\\\"] {\\n        -webkit-appearance: textfield;\\n        outline-offset: -2px;\\n      }\\n\\n      [type=\\\"search\\\"]::-webkit-search-decoration {\\n        -webkit-appearance: none !important;\\n      }\\n\\n      ::-webkit-file-upload-button {\\n        -webkit-appearance: button;\\n        font: inherit;\\n      }\\n\\n      details {\\n        display: block;\\n      }\\n\\n      summary {\\n        display: list-item;\\n      }\\n\\n      template {\\n        display: none;\\n      }\\n\\n      [hidden] {\\n        display: none !important;\\n      }\\n\\n      body,\\n      blockquote,\\n      dl,\\n      dd,\\n      h1,\\n      h2,\\n      h3,\\n      h4,\\n      h5,\\n      h6,\\n      hr,\\n      figure,\\n      p,\\n      pre {\\n        margin: 0;\\n      }\\n\\n      button {\\n        background: transparent;\\n        padding: 0;\\n      }\\n\\n      fieldset {\\n        margin: 0;\\n        padding: 0;\\n      }\\n\\n      ol,\\n      ul {\\n        margin: 0;\\n        padding: 0;\\n      }\\n\\n      textarea {\\n        resize: vertical;\\n      }\\n\\n      button,\\n      [role=\\\"button\\\"] {\\n        cursor: pointer;\\n      }\\n\\n      button::-moz-focus-inner {\\n        border: 0 !important;\\n      }\\n\\n      table {\\n        border-collapse: collapse;\\n      }\\n\\n      h1,\\n      h2,\\n      h3,\\n      h4,\\n      h5,\\n      h6 {\\n        font-size: inherit;\\n        font-weight: inherit;\\n      }\\n\\n      button,\\n      input,\\n      optgroup,\\n      select,\\n      textarea {\\n        padding: 0;\\n        line-height: inherit;\\n        color: inherit;\\n      }\\n\\n      img,\\n      svg,\\n      video,\\n      canvas,\\n      audio,\\n      iframe,\\n      embed,\\n      object {\\n        display: block;\\n        vertical-align: middle;\\n      }\\n\\n      img,\\n      video {\\n        max-width: 100%;\\n        height: auto;\\n      }\\n\\n      [data-js-focus-visible] :focus:not([data-focus-visible-added]) {\\n        outline: none;\\n        box-shadow: none;\\n      }\\n\\n      select::-ms-expand {\\n        display: none;\\n      }\\n    \"\n});\nexport default CSSReset;\n//# sourceMappingURL=css-reset.js.map","var doc = {\n  body: {\n    classList: {\n      add() {},\n\n      remove() {}\n\n    }\n  },\n\n  addEventListener() {},\n\n  removeEventListener() {},\n\n  activeElement: {\n    blur() {},\n\n    nodeName: \"\"\n  },\n\n  querySelector() {\n    return null;\n  },\n\n  querySelectorAll() {\n    return [];\n  },\n\n  getElementById() {\n    return null;\n  },\n\n  createEvent() {\n    return {\n      initEvent() {}\n\n    };\n  },\n\n  createElement() {\n    return {\n      children: [],\n      childNodes: [],\n      style: {},\n\n      setAttribute() {},\n\n      getElementsByTagName() {\n        return [];\n      }\n\n    };\n  }\n\n};\nexport var ssrDocument = doc;\n//# sourceMappingURL=mock-document.js.map","import { ssrDocument } from \"./mock-document\";\n\nvar noop = () => {};\n\nvar win = {\n  document: ssrDocument,\n  navigator: {\n    userAgent: \"\"\n  },\n  CustomEvent: function CustomEvent() {\n    return this;\n  },\n  addEventListener: noop,\n  removeEventListener: noop,\n\n  getComputedStyle() {\n    return {\n      getPropertyValue() {\n        return \"\";\n      }\n\n    };\n  },\n\n  matchMedia() {\n    return {\n      matches: false,\n      addListener: noop,\n      removeListener: noop\n    };\n  },\n\n  requestAnimationFrame(callback) {\n    if (typeof setTimeout === \"undefined\") {\n      callback();\n      return null;\n    }\n\n    return setTimeout(callback, 0);\n  },\n\n  cancelAnimationFrame(id) {\n    if (typeof setTimeout === \"undefined\") return;\n    clearTimeout(id);\n  },\n\n  setTimeout: () => 0,\n  clearTimeout: noop,\n  setInterval: () => 0,\n  clearInterval: noop\n};\nexport var ssrWindow = win;\n//# sourceMappingURL=mock-window.js.map","import { isBrowser, __DEV__ } from \"@chakra-ui/utils\";\nimport React, { createContext, useContext, useMemo, useState } from \"react\";\nimport { ssrDocument } from \"./mock-document\";\nimport { ssrWindow } from \"./mock-window\";\nvar mockEnv = {\n  window: ssrWindow,\n  document: ssrDocument\n};\nvar defaultEnv = isBrowser ? {\n  window,\n  document\n} : mockEnv;\nvar EnvironmentContext = /*#__PURE__*/createContext(defaultEnv);\n\nif (__DEV__) {\n  EnvironmentContext.displayName = \"EnvironmentContext\";\n}\n\nexport function useEnvironment() {\n  return useContext(EnvironmentContext);\n}\nexport function EnvironmentProvider(props) {\n  var {\n    children,\n    environment: environmentProp\n  } = props;\n  var [node, setNode] = useState(null);\n  var context = useMemo(() => {\n    var _ref;\n\n    var doc = node == null ? void 0 : node.ownerDocument;\n    var win = node == null ? void 0 : node.ownerDocument.defaultView;\n    var nodeEnv = doc ? {\n      document: doc,\n      window: win\n    } : undefined;\n    var env = (_ref = environmentProp != null ? environmentProp : nodeEnv) != null ? _ref : defaultEnv;\n    return env;\n  }, [node, environmentProp]);\n  var showEnvGetter = !node && !environmentProp;\n  return /*#__PURE__*/React.createElement(EnvironmentContext.Provider, {\n    value: context\n  }, children, showEnvGetter && /*#__PURE__*/React.createElement(\"span\", {\n    ref: el => {\n      if (el) setNode(el);\n    }\n  }));\n}\n\nif (__DEV__) {\n  EnvironmentProvider.displayName = \"EnvironmentProvider\";\n}\n//# sourceMappingURL=env.js.map","import { ChakraProvider as BaseChakraProvider } from \"@chakra-ui/provider\";\nimport defaultTheme from \"@chakra-ui/theme\";\nexport var ChakraProvider = BaseChakraProvider;\nChakraProvider.defaultProps = {\n  theme: defaultTheme\n};\n//# sourceMappingURL=chakra-provider.js.map","import CSSReset from \"@chakra-ui/css-reset\";\nimport { PortalManager } from \"@chakra-ui/portal\";\nimport { ColorModeProvider, GlobalStyle, ThemeProvider } from \"@chakra-ui/system\";\nimport { EnvironmentProvider } from \"@chakra-ui/react-env\";\nimport * as React from \"react\";\nimport { IdProvider } from \"@chakra-ui/hooks\";\n\n/**\n * The global provider that must be added to make all Chakra components\n * work correctly\n */\nexport var ChakraProvider = props => {\n  var {\n    children,\n    colorModeManager,\n    portalZIndex,\n    resetCSS = true,\n    theme = {},\n    environment,\n    cssVarsRoot\n  } = props;\n\n  var _children = /*#__PURE__*/React.createElement(EnvironmentProvider, {\n    environment: environment\n  }, children);\n\n  return /*#__PURE__*/React.createElement(IdProvider, null, /*#__PURE__*/React.createElement(ThemeProvider, {\n    theme: theme,\n    cssVarsRoot: cssVarsRoot\n  }, /*#__PURE__*/React.createElement(ColorModeProvider, {\n    colorModeManager: colorModeManager,\n    options: theme.config\n  }, resetCSS && /*#__PURE__*/React.createElement(CSSReset, null), /*#__PURE__*/React.createElement(GlobalStyle, null), portalZIndex ? /*#__PURE__*/React.createElement(PortalManager, {\n    zIndex: portalZIndex\n  }, _children) : _children)));\n};\n//# sourceMappingURL=chakra-provider.js.map","import { isObject } from \"@chakra-ui/utils\";\nexport var requiredChakraThemeKeys = [\"borders\", \"breakpoints\", \"colors\", \"components\", \"config\", \"direction\", \"fonts\", \"fontSizes\", \"fontWeights\", \"letterSpacings\", \"lineHeights\", \"radii\", \"shadows\", \"sizes\", \"space\", \"styles\", \"transition\", \"zIndices\"];\nexport function isChakraTheme(unit) {\n  if (!isObject(unit)) {\n    return false;\n  }\n\n  return requiredChakraThemeKeys.every(propertyName => Object.prototype.hasOwnProperty.call(unit, propertyName));\n}\n//# sourceMappingURL=utils.js.map","import defaultTheme, { isChakraTheme } from \"@chakra-ui/theme\";\nimport { isFunction, mergeWith, pipe } from \"@chakra-ui/utils\";\n\n/**\n * NOTE: This got too complex to manage and it's not worth the extra complexity.\n * We'll re-evaluate this API in the future releases.\n *\n * Function to override or customize the Chakra UI theme conveniently.\n * First extension overrides the baseTheme and following extensions override the preceding extensions.\n *\n * @example:\n * import { theme as baseTheme, extendTheme, withDefaultColorScheme } from '@chakra-ui/react'\n *\n * const customTheme = extendTheme(\n *   {\n *     colors: {\n *       brand: {\n *         500: \"#b4d455\",\n *       },\n *     },\n *   },\n *   withDefaultColorScheme({ colorScheme: \"red\" }),\n *   baseTheme // optional\n * )\n */\nexport function extendTheme() {\n  for (var _len = arguments.length, extensions = new Array(_len), _key = 0; _key < _len; _key++) {\n    extensions[_key] = arguments[_key];\n  }\n\n  var overrides = [...extensions];\n  var baseTheme = extensions[extensions.length - 1];\n\n  if (isChakraTheme(baseTheme) && // this ensures backward compatibility\n  // previously only `extendTheme(override, baseTheme?)` was allowed\n  overrides.length > 1) {\n    overrides = overrides.slice(0, overrides.length - 1);\n  } else {\n    baseTheme = defaultTheme;\n  }\n\n  return pipe(...overrides.map(extension => prevTheme => isFunction(extension) ? extension(prevTheme) : mergeThemeOverride(prevTheme, extension)))(baseTheme);\n}\nexport function mergeThemeOverride() {\n  for (var _len2 = arguments.length, overrides = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n    overrides[_key2] = arguments[_key2];\n  }\n\n  return mergeWith({}, ...overrides, mergeThemeCustomizer);\n}\n\nfunction mergeThemeCustomizer(source, override, key, object) {\n  if ((isFunction(source) || isFunction(override)) && Object.prototype.hasOwnProperty.call(object, key)) {\n    return function () {\n      var sourceValue = isFunction(source) ? source(...arguments) : source;\n      var overrideValue = isFunction(override) ? override(...arguments) : override;\n      return mergeWith({}, sourceValue, overrideValue, mergeThemeCustomizer);\n    };\n  } // fallback to default behaviour\n\n\n  return undefined;\n}\n//# sourceMappingURL=extend-theme.js.map","import { extendTheme, useStyleConfig } from \"@chakra-ui/react\"\nimport { theme as chakraTheme } from \"@chakra-ui/react\"\nimport { createBreakpoints, mode } from \"@chakra-ui/theme-tools\"\n\nconst fonts = {\n    ...chakraTheme.fonts,\n    heading: 'Inter, sans-serif',\n    body: 'Inter, sans-serif',\n}\n\nconst Menu = {\n  parts: ['menu', 'list','item'],\n  baseStyle: {\n    menu: {\n    //   boxShadow: 'lg',\n    //   flexDirection: 'column',\n    //   py: '2',\n    },\n    list: {\n      // background: props.colorMode === 'dark' ? 'red.300' : 'red.500',\n      // bg: mode('white', 'blue.800')(props),\n      // borderColor: \"green.500\"\n    },\n    item: {\n      // fontWeight: 'medium',\n      // lineHeight: 'normal',\n      // fontSize: '14',\n      // color: 'gray.200',\n      // // background: 'red',\n      // _hover: { \n      //   // background: 'blue' \n      // }\n    },\n  }\n}\n\nconst breakpoints = createBreakpoints({\n    sm: \"40em\",\n    md: \"52em\",\n    lg: \"64em\",\n})\n\nconst overrides = {\n    ...chakraTheme,\n    fonts,\n    breakpoints,\n    fontWeights: {\n        thin: 100,\n        extralight: 200,\n        light: 300,\n        regular: 400,\n        medium: 500,\n        semibold: 600,\n        bold: 700,\n        extraBold: 800,\n        black: 900\n    },\n    fontSizes: {\n        xs: \"12px\",\n        sm: \"14px\",\n        md: \"16px\",\n        lg: \"18px\",\n        xl: \"20px\",\n        \"2xl\": \"24px\",\n        \"3xl\": \"28px\",\n        \"4xl\": \"36px\",\n        \"5xl\": \"48px\",\n        \"6xl\": \"64px\",\n    },\n    colors: {\n      error: {\n        500: \"#F31147\"\n      },\n      // success: {\n\n      // }\n      brand: {\n        100: \"#f7fafc\",\n        // ...\n        900: \"red\",\n      },\n        neutral: {\n          1000: \"#24292E\",\n          900: \"#383F45\",\n        },\n        darkGray: {\n          900: '#15181C',\n          800: '#1B1E1F',\n          500: '#727A81'\n        }\n      },\n\n      baseStyle: {\n        fontWeight: \"normal\",\n      },\n      components: {\n        Menu\n      }\n}\n\nconst customTheme = extendTheme(overrides)\n\n// function CustomMenu2(props) {\n//   const { size, variant, ...rest } = props\n//   const styles = useStyleConfig('CustomMenu', { size, variant })\n//   return <Menu as='span' sx={styles} {...rest} />\n// }\n\nexport default customTheme","export const GA_TRACKING_ID = process.env.NEXT_PUBLIC_GA_ID\n\n// https://developers.google.com/analytics/devguides/collection/gtagjs/pages\nexport const pageview = (url) => {\n  window.gtag('config', GA_TRACKING_ID, {\n    page_path: url,\n  })\n}\n\n// https://developers.google.com/analytics/devguides/collection/gtagjs/events\nexport const event = ({ action, category, label, value }) => {\n  window.gtag('event', action, {\n    event_category: category,\n    event_label: label,\n    value: value,\n  })\n}","import { useState, useEffect  } from 'react';\nimport { useSession, useUser } from \"@clerk/nextjs\";\n\nconst Crisp = () => {\n    const { session } = useSession();\n    // const { isLoaded, userId, sessionId, getToken } = useAuth();\n    const { user } = useUser()\n    const [sessionReset, setSessionReset] = useState()\n    const [emailSet, setEmailSet] = useState()\n\n    async function setTokenId() {\n      const res = await fetch('/api/user/getCrispToken')\n      const result = await res.json()\n\n      if (window.CRISP_TOKEN_ID != result.token) {    \n        window.CRISP_TOKEN_ID = result.token\n        \n        // console.log(`${session.user.primaryEmailAddress.emailAddress}`);\n        // window.$crisp.push([\"set\", \"user:email\", [`${session.user.primaryEmailAddress.emailAddress}`]]);\n        // window.$crisp.push([\"set\", \"user:nickname\", [`${session.user.primaryEmailAddress.emailAddress.split('@')[0]}`]])\n        setSessionReset(true)\n        setEmailSet(false)\n      }\n    }\n  \n    useEffect(()=> {\n      if (session && window.CRISP_TOKEN_ID == undefined) {\n        setTokenId()\n      }\n      if (session && emailSet == false) {\n        // console.log(\"EMAIL:\");\n        // console.log(`${session.user.primaryEmailAddress.emailAddress}`);\n        window.$crisp.push([\"set\", \"user:email\", [`${session.user.primaryEmailAddress.emailAddress}`]]);\n        window.$crisp.push([\"set\", \"user:nickname\", [`${session.user.primaryEmailAddress.emailAddress.split('@')[0]}`]])\n        setEmailSet(true)\n      }\n      if (sessionReset) {\n        // console.log(\"sessionreset triggered\");\n        window.$crisp.push([\"do\", \"session:reset\"]);\n        setSessionReset(false)\n        \n      }\n    })\n\n      return null;\n  }\n  export default Crisp\n  ","// import '../styles/globals.css'\n// import 'tailwindcss/tailwind.css'\nimport NProgress from 'nprogress'\nimport Router from 'next/router'\nimport Head from 'next/head'\nimport { ChakraProvider, ColorModeProvider, useColorMode } from \"@chakra-ui/react\"\nimport customTheme from '../styles/theme'\nimport { Global, css } from '@emotion/react'\nimport { useEffect, useState} from 'react'\nimport Script from 'next/script'\nimport { useRouter } from 'next/router'\nimport * as gtag from '../lib/gtag'\nimport { ClerkProvider, SignedIn, ClerkLoading } from '@clerk/nextjs';\nimport '@fontsource/poppins/300.css'\nimport '@fontsource/poppins/400.css'\nimport '@fontsource/poppins/500.css'\nimport '@fontsource/poppins/600.css'\nimport '@fontsource/poppins/700.css'\nimport '@fontsource/poppins/800.css'\nimport '@fontsource/poppins/900.css'\nimport '@fontsource/inter/100.css'\nimport '@fontsource/inter/200.css'\nimport '@fontsource/inter/300.css'\nimport '@fontsource/inter/400.css'\nimport '@fontsource/inter/500.css'\nimport '@fontsource/inter/600.css'\nimport '@fontsource/inter/700.css'\nimport '@fontsource/inter/800.css'\nimport '@fontsource/inter/900.css'\nimport dynamic from 'next/dynamic'\nimport Crisp from '../components/crisp'\n\nNProgress.configure({ showSpinner: false });\nRouter.events.on('routeChangeStart', (url) => {\n  // console.log(`Loading: ${url}`)\n  NProgress.start()\n})\nRouter.events.on('routeChangeComplete', () => NProgress.done())\nRouter.events.on('routeChangeError', () => NProgress.done())\n\n// const CrispWithNoSSR = dynamic(\n//   () => import('../components/crisp'),\n//   { ssr: false }\n// )\n\nconst GlobalStyle = ({ children }) => {\n  const { colorMode } = useColorMode()\n\n  return (\n    <>\n      <Global\n        styles={css`\n          ::selection {\n            background-color: #90CDF4;\n            color: #fefefe;\n          }\n          ::-moz-selection {\n            background: #ffb7b7;\n            color: #fefefe;\n          }\n          html {\n            min-width: 356px;\n            scroll-behavior: smooth;\n          }\n          #__next {\n            display: flex;\n            flex-direction: column;\n            min-height: 100vh;\n            background: ${colorMode === 'light' ? 'white' : '#15181C'};\n          }\n        `}\n      />\n      {children}\n    </>\n  )\n}\n\nfunction MyApp({ Component, pageProps: { session, ...pageProps }, err }) {\n  const router = useRouter()\n\n  return (\n      <>\n      <Script\n      id=\"crisp-widget\"\n      strategy=\"afterInteractive\"\n      dangerouslySetInnerHTML={{\n        __html: `\n          window.$crisp=[];\n          window.CRISP_WEBSITE_ID=\"${process.env.NEXT_PUBLIC_CRISP_WEBSITE_ID}\";\n          (function(){\n\n            const d = document;\n            const s = d.createElement(\"script\");\n            s.src = \"https://client.crisp.chat/l.js\";\n            s.async = 1;\n            d.getElementsByTagName(\"head\")[0].appendChild(s);\n          })();`,\n      }}\n    />\n       <Script\n        strategy=\"afterInteractive\"\n        src={`https://www.googletagmanager.com/gtag/js?id=${gtag.GA_TRACKING_ID}`}\n      />\n      <Script\n        id=\"gtag-init\"\n        strategy=\"afterInteractive\"\n        dangerouslySetInnerHTML={{\n          __html: `\n            window.dataLayer = window.dataLayer || [];\n            function gtag(){dataLayer.push(arguments);}\n            gtag('js', new Date());\n            gtag('config', '${gtag.GA_TRACKING_ID}', {\n              page_path: window.location.pathname,\n            });\n          `,\n        }}\n      />\n\n    {/* <SessionProvider session={session}> */}\n    <ClerkProvider {...pageProps} >\n        <ChakraProvider resetCSS theme={customTheme}>\n          <ColorModeProvider\n            options={{\n              initialColorMode: \"light\",\n              useSystemColorMode: true,\n              }}\n            >\n            <Head>\n            </Head>\n            <GlobalStyle>\n            {/* <CrispWithNoSSR /> */}\n            <Crisp />\n              <Component {...pageProps} err={err}/>\n            </GlobalStyle>\n          </ColorModeProvider>\n        </ChakraProvider>\n        </ClerkProvider>\n        {/* </SessionProvider> */}\n        \n      </>\n  )\n}\n\nexport default MyApp\n","var TRACEPARENT_REGEXP = new RegExp(\n  '^[ \\\\t]*' + // whitespace\n    '([0-9a-f]{32})?' + // trace_id\n    '-?([0-9a-f]{16})?' + // span_id\n    '-?([01])?' + // sampled\n    '[ \\\\t]*$', // whitespace\n);\n\n/**\n * Extract transaction context data from a `sentry-trace` header.\n *\n * @param traceparent Traceparent string\n *\n * @returns Object containing data from the header, or undefined if traceparent string is malformed\n */\nfunction extractTraceparentData(traceparent) {\n  var matches = traceparent.match(TRACEPARENT_REGEXP);\n  if (matches) {\n    let parentSampled;\n    if (matches[3] === '1') {\n      parentSampled = true;\n    } else if (matches[3] === '0') {\n      parentSampled = false;\n    }\n    return {\n      traceId: matches[1],\n      parentSampled,\n      parentSpanId: matches[2],\n    };\n  }\n  return undefined;\n}\n\nexport { TRACEPARENT_REGEXP, extractTraceparentData };\n//# sourceMappingURL=tracing.js.map\n","import { IS_DEBUG_BUILD } from './flags.js';\nimport { logger } from './logger.js';\n\nvar BAGGAGE_HEADER_NAME = 'baggage';\n\nvar SENTRY_BAGGAGE_KEY_PREFIX = 'sentry-';\n\nvar SENTRY_BAGGAGE_KEY_PREFIX_REGEX = /^sentry-/;\n\n/**\n * Max length of a serialized baggage string\n *\n * https://www.w3.org/TR/baggage/#limits\n */\nvar MAX_BAGGAGE_STRING_LENGTH = 8192;\n\n/** Create an instance of Baggage */\nfunction createBaggage(initItems, baggageString = '') {\n  return [{ ...initItems }, baggageString];\n}\n\n/** Get a value from baggage */\nfunction getBaggageValue(baggage, key) {\n  return baggage[0][key];\n}\n\n/** Add a value to baggage */\nfunction setBaggageValue(baggage, key, value) {\n  baggage[0][key] = value;\n}\n\n/** Check if the baggage object (i.e. the first element in the tuple) is empty */\nfunction isBaggageEmpty(baggage) {\n  return Object.keys(baggage[0]).length === 0;\n}\n\n/** Returns Sentry specific baggage values */\nfunction getSentryBaggageItems(baggage) {\n  return baggage[0];\n}\n\n/**\n * Returns 3rd party baggage string of @param baggage\n * @param baggage\n */\nfunction getThirdPartyBaggage(baggage) {\n  return baggage[1];\n}\n\n/** Serialize a baggage object */\nfunction serializeBaggage(baggage) {\n  return Object.keys(baggage[0]).reduce((prev, key) => {\n    var val = baggage[0][key] ;\n    var baggageEntry = `${SENTRY_BAGGAGE_KEY_PREFIX}${encodeURIComponent(key)}=${encodeURIComponent(val)}`;\n    var newVal = prev === '' ? baggageEntry : `${prev},${baggageEntry}`;\n    if (newVal.length > MAX_BAGGAGE_STRING_LENGTH) {\n      IS_DEBUG_BUILD &&\n        logger.warn(`Not adding key: ${key} with val: ${val} to baggage due to exceeding baggage size limits.`);\n      return prev;\n    } else {\n      return newVal;\n    }\n  }, baggage[1]);\n}\n\n/** Parse a baggage header to a string */\nfunction parseBaggageString(inputBaggageString) {\n  return inputBaggageString.split(',').reduce(\n    ([baggageObj, baggageString], curr) => {\n      const [key, val] = curr.split('=');\n      if (SENTRY_BAGGAGE_KEY_PREFIX_REGEX.test(key)) {\n        var baggageKey = decodeURIComponent(key.split('-')[1]);\n        return [\n          {\n            ...baggageObj,\n            [baggageKey]: decodeURIComponent(val),\n          },\n          baggageString,\n        ];\n      } else {\n        return [baggageObj, baggageString === '' ? curr : `${baggageString},${curr}`];\n      }\n    },\n    [{}, ''],\n  );\n}\n\n/**\n * Merges the baggage header we saved from the incoming request (or meta tag) with\n * a possibly created or modified baggage header by a third party that's been added\n * to the outgoing request header.\n *\n * In case @param headerBaggageString exists, we can safely add the the 3rd party part of @param headerBaggage\n * with our @param incomingBaggage. This is possible because if we modified anything beforehand,\n * it would only affect parts of the sentry baggage (@see Baggage interface).\n *\n * @param incomingBaggage the baggage header of the incoming request that might contain sentry entries\n * @param headerBaggageString possibly existing baggage header string added from a third party to request headers\n *\n * @return a merged and serialized baggage string to be propagated with the outgoing request\n */\nfunction mergeAndSerializeBaggage(incomingBaggage, headerBaggageString) {\n  if (!incomingBaggage && !headerBaggageString) {\n    return '';\n  }\n\n  var headerBaggage = (headerBaggageString && parseBaggageString(headerBaggageString)) || undefined;\n  var thirdPartyHeaderBaggage = headerBaggage && getThirdPartyBaggage(headerBaggage);\n\n  var finalBaggage = createBaggage(\n    (incomingBaggage && incomingBaggage[0]) || {},\n    thirdPartyHeaderBaggage || (incomingBaggage && incomingBaggage[1]) || '',\n  );\n  return serializeBaggage(finalBaggage);\n}\n\nexport { BAGGAGE_HEADER_NAME, MAX_BAGGAGE_STRING_LENGTH, SENTRY_BAGGAGE_KEY_PREFIX, SENTRY_BAGGAGE_KEY_PREFIX_REGEX, createBaggage, getBaggageValue, getSentryBaggageItems, getThirdPartyBaggage, isBaggageEmpty, mergeAndSerializeBaggage, parseBaggageString, serializeBaggage, setBaggageValue };\n//# sourceMappingURL=baggage.js.map\n","import { getGlobalObject, logger } from '@sentry/utils';\nimport { IS_DEBUG_BUILD } from '../flags.js';\nimport { getActiveTransaction } from '../utils.js';\n\nvar global = getGlobalObject();\n\n/**\n * Add a listener that cancels and finishes a transaction when the global\n * document is hidden.\n */\nfunction registerBackgroundTabDetection() {\n  if (global && global.document) {\n    global.document.addEventListener('visibilitychange', () => {\n      var activeTransaction = getActiveTransaction() ;\n      if (global.document.hidden && activeTransaction) {\n        var statusType = 'cancelled';\n\n        IS_DEBUG_BUILD &&\n          logger.log(\n            `[Tracing] Transaction: ${statusType} -> since tab moved to the background, op: ${activeTransaction.op}`,\n          );\n        // We should not set status if it is already set, this prevent important statuses like\n        // error or data loss from being overwritten on transaction.\n        if (!activeTransaction.status) {\n          activeTransaction.setStatus(statusType);\n        }\n        activeTransaction.setTag('visibilitychange', 'document.hidden');\n        activeTransaction.finish();\n      }\n    });\n  } else {\n    IS_DEBUG_BUILD && logger.warn('[Tracing] Could not set up background tab detection due to lack of global document');\n  }\n}\n\nexport { registerBackgroundTabDetection };\n//# sourceMappingURL=backgroundtab.js.map\n","var bindReporter = (\n  callback,\n  metric,\n  reportAllChanges,\n) => {\n  let prevValue;\n  return (forceReport) => {\n    if (metric.value >= 0) {\n      if (forceReport || reportAllChanges) {\n        metric.delta = metric.value - (prevValue || 0);\n\n        // Report the metric if there's a non-zero delta or if no previous\n        // value exists (which can happen in the case of the document becoming\n        // hidden when the metric value is 0).\n        // See: https://github.com/GoogleChrome/web-vitals/issues/14\n        if (metric.delta || prevValue === undefined) {\n          prevValue = metric.value;\n          callback(metric);\n        }\n      }\n    }\n  };\n};\n\nexport { bindReporter };\n//# sourceMappingURL=bindReporter.js.map\n","import { _nullishCoalesce } from '@sentry/utils/esm/buildPolyfills';\nimport { generateUniqueID } from './generateUniqueID.js';\n\nvar initMetric = (name, value) => {\n  return {\n    name,\n    value: _nullishCoalesce(value, () => ( -1)),\n    delta: 0,\n    entries: [],\n    id: generateUniqueID(),\n  };\n};\n\nexport { initMetric };\n//# sourceMappingURL=initMetric.js.map\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Performantly generate a unique, 30-char string by combining a version\n * number, the current timestamp with a 13-digit number integer.\n * @return {string}\n */\nvar generateUniqueID = () => {\n  return `v2-${Date.now()}-${Math.floor(Math.random() * (9e12 - 1)) + 1e12}`;\n};\n\nexport { generateUniqueID };\n//# sourceMappingURL=generateUniqueID.js.map\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Takes a performance entry type and a callback function, and creates a\n * `PerformanceObserver` instance that will observe the specified entry type\n * with buffering enabled and call the callback _for each entry_.\n *\n * This function also feature-detects entry support and wraps the logic in a\n * try/catch to avoid errors in unsupporting browsers.\n */\nvar observe = (type, callback) => {\n  try {\n    if (PerformanceObserver.supportedEntryTypes.includes(type)) {\n      // More extensive feature detect needed for Firefox due to:\n      // https://github.com/GoogleChrome/web-vitals/issues/142\n      if (type === 'first-input' && !('PerformanceEventTiming' in self)) {\n        return;\n      }\n\n      var po = new PerformanceObserver(l => l.getEntries().map(callback));\n\n      po.observe({ type, buffered: true });\n      return po;\n    }\n  } catch (e) {\n    // Do nothing.\n  }\n  return;\n};\n\nexport { observe };\n//# sourceMappingURL=observe.js.map\n","import { getGlobalObject } from '@sentry/utils';\n\n/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar onHidden = (cb, once) => {\n  var onHiddenOrPageHide = (event) => {\n    if (event.type === 'pagehide' || getGlobalObject().document.visibilityState === 'hidden') {\n      cb(event);\n      if (once) {\n        removeEventListener('visibilitychange', onHiddenOrPageHide, true);\n        removeEventListener('pagehide', onHiddenOrPageHide, true);\n      }\n    }\n  };\n  addEventListener('visibilitychange', onHiddenOrPageHide, true);\n  // Some browsers have buggy implementations of visibilitychange,\n  // so we use pagehide in addition, just to be safe.\n  addEventListener('pagehide', onHiddenOrPageHide, true);\n};\n\nexport { onHidden };\n//# sourceMappingURL=onHidden.js.map\n","import { getGlobalObject } from '@sentry/utils';\nimport { onHidden } from './onHidden.js';\n\n/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nlet firstHiddenTime = -1;\n\nvar initHiddenTime = () => {\n  return getGlobalObject().document.visibilityState === 'hidden' ? 0 : Infinity;\n};\n\nvar trackChanges = () => {\n  // Update the time if/when the document becomes hidden.\n  onHidden(({ timeStamp }) => {\n    firstHiddenTime = timeStamp;\n  }, true);\n};\n\nvar getVisibilityWatcher = (\n\n) => {\n  if (firstHiddenTime < 0) {\n    // If the document is hidden when this code runs, assume it was hidden\n    // since navigation start. This isn't a perfect heuristic, but it's the\n    // best we can do until an API is available to support querying past\n    // visibilityState.\n    firstHiddenTime = initHiddenTime();\n    trackChanges();\n  }\n  return {\n    get firstHiddenTime() {\n      return firstHiddenTime;\n    },\n  };\n};\n\nexport { getVisibilityWatcher };\n//# sourceMappingURL=getVisibilityWatcher.js.map\n","import { bindReporter } from './lib/bindReporter.js';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher.js';\nimport { initMetric } from './lib/initMetric.js';\nimport { observe } from './lib/observe.js';\nimport { onHidden } from './lib/onHidden.js';\n\n/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// https://wicg.github.io/largest-contentful-paint/#sec-largest-contentful-paint-interface\n\nvar reportedMetricIDs = {};\n\nvar getLCP = (onReport, reportAllChanges) => {\n  var visibilityWatcher = getVisibilityWatcher();\n  var metric = initMetric('LCP');\n  let report;\n\n  var entryHandler = (entry) => {\n    // The startTime attribute returns the value of the renderTime if it is not 0,\n    // and the value of the loadTime otherwise.\n    var value = entry.startTime;\n\n    // If the page was hidden prior to paint time of the entry,\n    // ignore it and mark the metric as final, otherwise add the entry.\n    if (value < visibilityWatcher.firstHiddenTime) {\n      metric.value = value;\n      metric.entries.push(entry);\n    }\n\n    if (report) {\n      report();\n    }\n  };\n\n  var po = observe('largest-contentful-paint', entryHandler);\n\n  if (po) {\n    report = bindReporter(onReport, metric, reportAllChanges);\n\n    var stopListening = () => {\n      if (!reportedMetricIDs[metric.id]) {\n        po.takeRecords().map(entryHandler );\n        po.disconnect();\n        reportedMetricIDs[metric.id] = true;\n        report(true);\n      }\n    };\n\n    // Stop listening after input. Note: while scrolling is an input that\n    // stop LCP observation, it's unreliable since it can be programmatically\n    // generated. See: https://github.com/GoogleChrome/web-vitals/issues/75\n    ['keydown', 'click'].forEach(type => {\n      addEventListener(type, stopListening, { once: true, capture: true });\n    });\n\n    onHidden(stopListening, true);\n  }\n};\n\nexport { getLCP };\n//# sourceMappingURL=getLCP.js.map\n","/**\n * Checks if a given value is a valid measurement value.\n */\nfunction isMeasurementValue(value) {\n  return typeof value === 'number' && isFinite(value);\n}\n\n/**\n * Helper function to start child on transactions. This function will make sure that the transaction will\n * use the start timestamp of the created child span if it is earlier than the transactions actual\n * start timestamp.\n */\nfunction _startChild(transaction, { startTimestamp, ...ctx }) {\n  if (startTimestamp && transaction.startTimestamp > startTimestamp) {\n    transaction.startTimestamp = startTimestamp;\n  }\n\n  return transaction.startChild({\n    startTimestamp,\n    ...ctx,\n  });\n}\n\nexport { _startChild, isMeasurementValue };\n//# sourceMappingURL=utils.js.map\n","import { _nullishCoalesce } from '@sentry/utils/esm/buildPolyfills';\nimport { getGlobalObject, isNodeEnv, browserPerformanceTimeOrigin, logger, htmlTreeAsString } from '@sentry/utils';\nimport { IS_DEBUG_BUILD } from '../../flags.js';\nimport { msToSec } from '../../utils.js';\nimport { getCLS } from '../web-vitals/getCLS.js';\nimport { getFID } from '../web-vitals/getFID.js';\nimport { getLCP } from '../web-vitals/getLCP.js';\nimport { getVisibilityWatcher } from '../web-vitals/lib/getVisibilityWatcher.js';\nimport { _startChild, isMeasurementValue } from './utils.js';\n\nvar global = getGlobalObject();\n\nfunction getBrowserPerformanceAPI() {\n  return !isNodeEnv() && global && global.document && global.performance;\n}\n\nlet _performanceCursor = 0;\n\nlet _measurements = {};\nlet _lcpEntry;\nlet _clsEntry;\n\n/**\n * Start tracking web vitals\n */\nfunction startTrackingWebVitals(reportAllChanges = false) {\n  var performance = getBrowserPerformanceAPI();\n  if (performance && browserPerformanceTimeOrigin) {\n    if (performance.mark) {\n      global.performance.mark('sentry-tracing-init');\n    }\n    _trackCLS();\n    _trackLCP(reportAllChanges);\n    _trackFID();\n  }\n}\n\n/** Starts tracking the Cumulative Layout Shift on the current page. */\nfunction _trackCLS() {\n  // See:\n  // https://web.dev/evolving-cls/\n  // https://web.dev/cls-web-tooling/\n  getCLS(metric => {\n    var entry = metric.entries.pop();\n    if (!entry) {\n      return;\n    }\n\n    IS_DEBUG_BUILD && logger.log('[Measurements] Adding CLS');\n    _measurements['cls'] = { value: metric.value, unit: 'millisecond' };\n    _clsEntry = entry ;\n  });\n}\n\n/** Starts tracking the Largest Contentful Paint on the current page. */\nfunction _trackLCP(reportAllChanges) {\n  getLCP(metric => {\n    var entry = metric.entries.pop();\n    if (!entry) {\n      return;\n    }\n\n    var timeOrigin = msToSec(browserPerformanceTimeOrigin );\n    var startTime = msToSec(entry.startTime);\n    IS_DEBUG_BUILD && logger.log('[Measurements] Adding LCP');\n    _measurements['lcp'] = { value: metric.value, unit: 'millisecond' };\n    _measurements['mark.lcp'] = { value: timeOrigin + startTime, unit: 'second' };\n    _lcpEntry = entry ;\n  }, reportAllChanges);\n}\n\n/** Starts tracking the First Input Delay on the current page. */\nfunction _trackFID() {\n  getFID(metric => {\n    var entry = metric.entries.pop();\n    if (!entry) {\n      return;\n    }\n\n    var timeOrigin = msToSec(browserPerformanceTimeOrigin );\n    var startTime = msToSec(entry.startTime);\n    IS_DEBUG_BUILD && logger.log('[Measurements] Adding FID');\n    _measurements['fid'] = { value: metric.value, unit: 'millisecond' };\n    _measurements['mark.fid'] = { value: timeOrigin + startTime, unit: 'second' };\n  });\n}\n\n/** Add performance related spans to a transaction */\nfunction addPerformanceEntries(transaction) {\n  var performance = getBrowserPerformanceAPI();\n  if (!performance || !global.performance.getEntries || !browserPerformanceTimeOrigin) {\n    // Gatekeeper if performance API not available\n    return;\n  }\n\n  IS_DEBUG_BUILD && logger.log('[Tracing] Adding & adjusting spans using Performance API');\n  var timeOrigin = msToSec(browserPerformanceTimeOrigin);\n\n  var performanceEntries = performance.getEntries();\n\n  let responseStartTimestamp;\n  let requestStartTimestamp;\n\n    performanceEntries.slice(_performanceCursor).forEach((entry) => {\n    var startTime = msToSec(entry.startTime);\n    var duration = msToSec(entry.duration);\n\n    if (transaction.op === 'navigation' && timeOrigin + startTime < transaction.startTimestamp) {\n      return;\n    }\n\n    switch (entry.entryType) {\n      case 'navigation': {\n        _addNavigationSpans(transaction, entry, timeOrigin);\n        responseStartTimestamp = timeOrigin + msToSec(entry.responseStart);\n        requestStartTimestamp = timeOrigin + msToSec(entry.requestStart);\n        break;\n      }\n      case 'mark':\n      case 'paint':\n      case 'measure': {\n        var startTimestamp = _addMeasureSpans(transaction, entry, startTime, duration, timeOrigin);\n\n        // capture web vitals\n        var firstHidden = getVisibilityWatcher();\n        // Only report if the page wasn't hidden prior to the web vital.\n        var shouldRecord = entry.startTime < firstHidden.firstHiddenTime;\n\n        if (entry.name === 'first-paint' && shouldRecord) {\n          IS_DEBUG_BUILD && logger.log('[Measurements] Adding FP');\n          _measurements['fp'] = { value: entry.startTime, unit: 'millisecond' };\n          _measurements['mark.fp'] = { value: startTimestamp, unit: 'second' };\n        }\n        if (entry.name === 'first-contentful-paint' && shouldRecord) {\n          IS_DEBUG_BUILD && logger.log('[Measurements] Adding FCP');\n          _measurements['fcp'] = { value: entry.startTime, unit: 'millisecond' };\n          _measurements['mark.fcp'] = { value: startTimestamp, unit: 'second' };\n        }\n        break;\n      }\n      case 'resource': {\n        var resourceName = (entry.name ).replace(global.location.origin, '');\n        _addResourceSpans(transaction, entry, resourceName, startTime, duration, timeOrigin);\n        break;\n      }\n      default:\n      // Ignore other entry types.\n    }\n  });\n\n  _performanceCursor = Math.max(performanceEntries.length - 1, 0);\n\n  _trackNavigator(transaction);\n\n  // Measurements are only available for pageload transactions\n  if (transaction.op === 'pageload') {\n    // Generate TTFB (Time to First Byte), which measured as the time between the beginning of the transaction and the\n    // start of the response in milliseconds\n    if (typeof responseStartTimestamp === 'number') {\n      IS_DEBUG_BUILD && logger.log('[Measurements] Adding TTFB');\n      _measurements['ttfb'] = {\n        value: (responseStartTimestamp - transaction.startTimestamp) * 1000,\n        unit: 'millisecond',\n      };\n\n      if (typeof requestStartTimestamp === 'number' && requestStartTimestamp <= responseStartTimestamp) {\n        // Capture the time spent making the request and receiving the first byte of the response.\n        // This is the time between the start of the request and the start of the response in milliseconds.\n        _measurements['ttfb.requestTime'] = {\n          value: (responseStartTimestamp - requestStartTimestamp) * 1000,\n          unit: 'second',\n        };\n      }\n    }\n\n    ['fcp', 'fp', 'lcp'].forEach(name => {\n      if (!_measurements[name] || timeOrigin >= transaction.startTimestamp) {\n        return;\n      }\n      // The web vitals, fcp, fp, lcp, and ttfb, all measure relative to timeOrigin.\n      // Unfortunately, timeOrigin is not captured within the transaction span data, so these web vitals will need\n      // to be adjusted to be relative to transaction.startTimestamp.\n      var oldValue = _measurements[name].value;\n      var measurementTimestamp = timeOrigin + msToSec(oldValue);\n\n      // normalizedValue should be in milliseconds\n      var normalizedValue = Math.abs((measurementTimestamp - transaction.startTimestamp) * 1000);\n      var delta = normalizedValue - oldValue;\n\n      IS_DEBUG_BUILD &&\n        logger.log(`[Measurements] Normalized ${name} from ${oldValue} to ${normalizedValue} (${delta})`);\n      _measurements[name].value = normalizedValue;\n    });\n\n    if (_measurements['mark.fid'] && _measurements['fid']) {\n      // create span for FID\n      _startChild(transaction, {\n        description: 'first input delay',\n        endTimestamp: _measurements['mark.fid'].value + msToSec(_measurements['fid'].value),\n        op: 'web.vitals',\n        startTimestamp: _measurements['mark.fid'].value,\n      });\n    }\n\n    // If FCP is not recorded we should not record the cls value\n    // according to the new definition of CLS.\n    if (!('fcp' in _measurements)) {\n      delete _measurements.cls;\n    }\n\n    Object.keys(_measurements).forEach(measurementName => {\n      transaction.setMeasurement(\n        measurementName,\n        _measurements[measurementName].value,\n        _measurements[measurementName].unit,\n      );\n    });\n\n    _tagMetricInfo(transaction);\n  }\n\n  _lcpEntry = undefined;\n  _clsEntry = undefined;\n  _measurements = {};\n}\n\n/** Create measure related spans */\nfunction _addMeasureSpans(\n  transaction,\n    entry,\n  startTime,\n  duration,\n  timeOrigin,\n) {\n  var measureStartTimestamp = timeOrigin + startTime;\n  var measureEndTimestamp = measureStartTimestamp + duration;\n\n  _startChild(transaction, {\n    description: entry.name ,\n    endTimestamp: measureEndTimestamp,\n    op: entry.entryType ,\n    startTimestamp: measureStartTimestamp,\n  });\n\n  return measureStartTimestamp;\n}\n\n/** Instrument navigation entries */\nfunction _addNavigationSpans(transaction, entry, timeOrigin) {\n  ['unloadEvent', 'redirect', 'domContentLoadedEvent', 'loadEvent', 'connect'].forEach(event => {\n    _addPerformanceNavigationTiming(transaction, entry, event, timeOrigin);\n  });\n  _addPerformanceNavigationTiming(transaction, entry, 'secureConnection', timeOrigin, 'TLS/SSL', 'connectEnd');\n  _addPerformanceNavigationTiming(transaction, entry, 'fetch', timeOrigin, 'cache', 'domainLookupStart');\n  _addPerformanceNavigationTiming(transaction, entry, 'domainLookup', timeOrigin, 'DNS');\n  _addRequest(transaction, entry, timeOrigin);\n}\n\n/** Create performance navigation related spans */\nfunction _addPerformanceNavigationTiming(\n  transaction,\n    entry,\n  event,\n  timeOrigin,\n  description,\n  eventEnd,\n) {\n  var end = eventEnd ? (entry[eventEnd] ) : (entry[`${event}End`] );\n  var start = entry[`${event}Start`] ;\n  if (!start || !end) {\n    return;\n  }\n  _startChild(transaction, {\n    op: 'browser',\n    description: _nullishCoalesce(description, () => ( event)),\n    startTimestamp: timeOrigin + msToSec(start),\n    endTimestamp: timeOrigin + msToSec(end),\n  });\n}\n\n/** Create request and response related spans */\nfunction _addRequest(transaction, entry, timeOrigin) {\n  _startChild(transaction, {\n    op: 'browser',\n    description: 'request',\n    startTimestamp: timeOrigin + msToSec(entry.requestStart ),\n    endTimestamp: timeOrigin + msToSec(entry.responseEnd ),\n  });\n\n  _startChild(transaction, {\n    op: 'browser',\n    description: 'response',\n    startTimestamp: timeOrigin + msToSec(entry.responseStart ),\n    endTimestamp: timeOrigin + msToSec(entry.responseEnd ),\n  });\n}\n\n/** Create resource-related spans */\nfunction _addResourceSpans(\n  transaction,\n  entry,\n  resourceName,\n  startTime,\n  duration,\n  timeOrigin,\n) {\n  // we already instrument based on fetch and xhr, so we don't need to\n  // duplicate spans here.\n  if (entry.initiatorType === 'xmlhttprequest' || entry.initiatorType === 'fetch') {\n    return;\n  }\n\n    var data = {};\n  if ('transferSize' in entry) {\n    data['Transfer Size'] = entry.transferSize;\n  }\n  if ('encodedBodySize' in entry) {\n    data['Encoded Body Size'] = entry.encodedBodySize;\n  }\n  if ('decodedBodySize' in entry) {\n    data['Decoded Body Size'] = entry.decodedBodySize;\n  }\n\n  var startTimestamp = timeOrigin + startTime;\n  var endTimestamp = startTimestamp + duration;\n\n  _startChild(transaction, {\n    description: resourceName,\n    endTimestamp,\n    op: entry.initiatorType ? `resource.${entry.initiatorType}` : 'resource',\n    startTimestamp,\n    data,\n  });\n}\n\n/**\n * Capture the information of the user agent.\n */\nfunction _trackNavigator(transaction) {\n  var navigator = global.navigator ;\n  if (!navigator) {\n    return;\n  }\n\n  // track network connectivity\n  var connection = navigator.connection;\n  if (connection) {\n    if (connection.effectiveType) {\n      transaction.setTag('effectiveConnectionType', connection.effectiveType);\n    }\n\n    if (connection.type) {\n      transaction.setTag('connectionType', connection.type);\n    }\n\n    if (isMeasurementValue(connection.rtt)) {\n      _measurements['connection.rtt'] = { value: connection.rtt, unit: 'millisecond' };\n    }\n\n    if (isMeasurementValue(connection.downlink)) {\n      _measurements['connection.downlink'] = { value: connection.downlink, unit: '' }; // unit is empty string for now, while relay doesn't support download speed units\n    }\n  }\n\n  if (isMeasurementValue(navigator.deviceMemory)) {\n    transaction.setTag('deviceMemory', `${navigator.deviceMemory} GB`);\n  }\n\n  if (isMeasurementValue(navigator.hardwareConcurrency)) {\n    transaction.setTag('hardwareConcurrency', String(navigator.hardwareConcurrency));\n  }\n}\n\n/** Add LCP / CLS data to transaction to allow debugging */\nfunction _tagMetricInfo(transaction) {\n  if (_lcpEntry) {\n    IS_DEBUG_BUILD && logger.log('[Measurements] Adding LCP Data');\n\n    // Capture Properties of the LCP element that contributes to the LCP.\n\n    if (_lcpEntry.element) {\n      transaction.setTag('lcp.element', htmlTreeAsString(_lcpEntry.element));\n    }\n\n    if (_lcpEntry.id) {\n      transaction.setTag('lcp.id', _lcpEntry.id);\n    }\n\n    if (_lcpEntry.url) {\n      // Trim URL to the first 200 characters.\n      transaction.setTag('lcp.url', _lcpEntry.url.trim().slice(0, 200));\n    }\n\n    transaction.setTag('lcp.size', _lcpEntry.size);\n  }\n\n  // See: https://developer.mozilla.org/en-US/docs/Web/API/LayoutShift\n  if (_clsEntry && _clsEntry.sources) {\n    IS_DEBUG_BUILD && logger.log('[Measurements] Adding CLS Data');\n    _clsEntry.sources.forEach((source, index) =>\n      transaction.setTag(`cls.source.${index + 1}`, htmlTreeAsString(source.node)),\n    );\n  }\n}\n\nexport { _addMeasureSpans, _addResourceSpans, addPerformanceEntries, startTrackingWebVitals };\n//# sourceMappingURL=index.js.map\n","import { bindReporter } from './lib/bindReporter.js';\nimport { initMetric } from './lib/initMetric.js';\nimport { observe } from './lib/observe.js';\nimport { onHidden } from './lib/onHidden.js';\n\n/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// https://wicg.github.io/layout-instability/#sec-layout-shift\n\nvar getCLS = (onReport, reportAllChanges) => {\n  var metric = initMetric('CLS', 0);\n  let report;\n\n  let sessionValue = 0;\n  let sessionEntries = [];\n\n  var entryHandler = (entry) => {\n    // Only count layout shifts without recent user input.\n    // TODO: Figure out why entry can be undefined\n    if (entry && !entry.hadRecentInput) {\n      var firstSessionEntry = sessionEntries[0];\n      var lastSessionEntry = sessionEntries[sessionEntries.length - 1];\n\n      // If the entry occurred less than 1 second after the previous entry and\n      // less than 5 seconds after the first entry in the session, include the\n      // entry in the current session. Otherwise, start a new session.\n      if (\n        sessionValue &&\n        sessionEntries.length !== 0 &&\n        entry.startTime - lastSessionEntry.startTime < 1000 &&\n        entry.startTime - firstSessionEntry.startTime < 5000\n      ) {\n        sessionValue += entry.value;\n        sessionEntries.push(entry);\n      } else {\n        sessionValue = entry.value;\n        sessionEntries = [entry];\n      }\n\n      // If the current session value is larger than the current CLS value,\n      // update CLS and the entries contributing to it.\n      if (sessionValue > metric.value) {\n        metric.value = sessionValue;\n        metric.entries = sessionEntries;\n        if (report) {\n          report();\n        }\n      }\n    }\n  };\n\n  var po = observe('layout-shift', entryHandler );\n  if (po) {\n    report = bindReporter(onReport, metric, reportAllChanges);\n\n    onHidden(() => {\n      po.takeRecords().map(entryHandler );\n      report(true);\n    });\n  }\n};\n\nexport { getCLS };\n//# sourceMappingURL=getCLS.js.map\n","import { bindReporter } from './lib/bindReporter.js';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher.js';\nimport { initMetric } from './lib/initMetric.js';\nimport { observe } from './lib/observe.js';\nimport { onHidden } from './lib/onHidden.js';\n\n/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar getFID = (onReport, reportAllChanges) => {\n  var visibilityWatcher = getVisibilityWatcher();\n  var metric = initMetric('FID');\n  let report;\n\n  var entryHandler = (entry) => {\n    // Only report if the page wasn't hidden prior to the first input.\n    if (report && entry.startTime < visibilityWatcher.firstHiddenTime) {\n      metric.value = entry.processingStart - entry.startTime;\n      metric.entries.push(entry);\n      report(true);\n    }\n  };\n\n  var po = observe('first-input', entryHandler );\n  if (po) {\n    report = bindReporter(onReport, metric, reportAllChanges);\n    onHidden(() => {\n      po.takeRecords().map(entryHandler );\n      po.disconnect();\n    }, true);\n  }\n};\n\nexport { getFID };\n//# sourceMappingURL=getFID.js.map\n","import { isMatchingPattern, addInstrumentationHandler, isInstanceOf, BAGGAGE_HEADER_NAME, mergeAndSerializeBaggage } from '@sentry/utils';\nimport { hasTracingEnabled, getActiveTransaction } from '../utils.js';\n\nvar DEFAULT_TRACING_ORIGINS = ['localhost', /^\\//];\n\n/** Options for Request Instrumentation */\n\nvar defaultRequestInstrumentationOptions = {\n  traceFetch: true,\n  traceXHR: true,\n  tracingOrigins: DEFAULT_TRACING_ORIGINS,\n};\n\n/** Registers span creators for xhr and fetch requests  */\nfunction instrumentOutgoingRequests(_options) {\n    const { traceFetch, traceXHR, tracingOrigins, shouldCreateSpanForRequest } = {\n    ...defaultRequestInstrumentationOptions,\n    ..._options,\n  };\n\n  // We should cache url -> decision so that we don't have to compute\n  // regexp everytime we create a request.\n  var urlMap = {};\n\n  var defaultShouldCreateSpan = (url) => {\n    if (urlMap[url]) {\n      return urlMap[url];\n    }\n    var origins = tracingOrigins;\n    urlMap[url] =\n      origins.some((origin) => isMatchingPattern(url, origin)) &&\n      !isMatchingPattern(url, 'sentry_key');\n    return urlMap[url];\n  };\n\n  // We want that our users don't have to re-implement shouldCreateSpanForRequest themselves\n  // That's why we filter out already unwanted Spans from tracingOrigins\n  let shouldCreateSpan = defaultShouldCreateSpan;\n  if (typeof shouldCreateSpanForRequest === 'function') {\n    shouldCreateSpan = (url) => {\n      return defaultShouldCreateSpan(url) && shouldCreateSpanForRequest(url);\n    };\n  }\n\n  var spans = {};\n\n  if (traceFetch) {\n    addInstrumentationHandler('fetch', (handlerData) => {\n      fetchCallback(handlerData, shouldCreateSpan, spans);\n    });\n  }\n\n  if (traceXHR) {\n    addInstrumentationHandler('xhr', (handlerData) => {\n      xhrCallback(handlerData, shouldCreateSpan, spans);\n    });\n  }\n}\n\n/**\n * Create and track fetch request spans\n */\nfunction fetchCallback(\n  handlerData,\n  shouldCreateSpan,\n  spans,\n) {\n  if (!hasTracingEnabled() || !(handlerData.fetchData && shouldCreateSpan(handlerData.fetchData.url))) {\n    return;\n  }\n\n  if (handlerData.endTimestamp) {\n    var spanId = handlerData.fetchData.__span;\n    if (!spanId) return;\n\n    var span = spans[spanId];\n    if (span) {\n      if (handlerData.response) {\n        // TODO (kmclb) remove this once types PR goes through\n                span.setHttpStatus(handlerData.response.status);\n      } else if (handlerData.error) {\n        span.setStatus('internal_error');\n      }\n      span.finish();\n\n            delete spans[spanId];\n    }\n    return;\n  }\n\n  var activeTransaction = getActiveTransaction();\n  if (activeTransaction) {\n    var span = activeTransaction.startChild({\n      data: {\n        ...handlerData.fetchData,\n        type: 'fetch',\n      },\n      description: `${handlerData.fetchData.method} ${handlerData.fetchData.url}`,\n      op: 'http.client',\n    });\n\n    handlerData.fetchData.__span = span.spanId;\n    spans[span.spanId] = span;\n\n    var request = (handlerData.args[0] = handlerData.args[0] );\n        var options = (handlerData.args[1] = (handlerData.args[1] ) || {});\n    options.headers = addTracingHeaders(request, span, options);\n  }\n}\n\nfunction addTracingHeaders(\n  request,\n  span,\n  options,\n) {\n  let headers = options.headers;\n\n  if (isInstanceOf(request, Request)) {\n    headers = (request ).headers;\n  }\n  var incomingBaggage = span.getBaggage();\n\n  if (headers) {\n        if (typeof headers.append === 'function') {\n            headers.append('sentry-trace', span.toTraceparent());\n            headers.append(BAGGAGE_HEADER_NAME, mergeAndSerializeBaggage(incomingBaggage, headers.get(BAGGAGE_HEADER_NAME)));\n    } else if (Array.isArray(headers)) {\n      const [, headerBaggageString] = headers.find(([key, _]) => key === BAGGAGE_HEADER_NAME);\n      headers = [\n        ...headers,\n        ['sentry-trace', span.toTraceparent()],\n        [BAGGAGE_HEADER_NAME, mergeAndSerializeBaggage(incomingBaggage, headerBaggageString)],\n      ];\n    } else {\n      headers = {\n        ...headers,\n        'sentry-trace': span.toTraceparent(),\n                baggage: mergeAndSerializeBaggage(incomingBaggage, headers.baggage),\n      };\n    }\n  } else {\n    headers = { 'sentry-trace': span.toTraceparent(), baggage: mergeAndSerializeBaggage(incomingBaggage) };\n  }\n  return headers;\n}\n\n/**\n * Create and track xhr request spans\n */\nfunction xhrCallback(\n  handlerData,\n  shouldCreateSpan,\n  spans,\n) {\n  if (\n    !hasTracingEnabled() ||\n    (handlerData.xhr && handlerData.xhr.__sentry_own_request__) ||\n    !(handlerData.xhr && handlerData.xhr.__sentry_xhr__ && shouldCreateSpan(handlerData.xhr.__sentry_xhr__.url))\n  ) {\n    return;\n  }\n\n  var xhr = handlerData.xhr.__sentry_xhr__;\n\n  // check first if the request has finished and is tracked by an existing span which should now end\n  if (handlerData.endTimestamp) {\n    var spanId = handlerData.xhr.__sentry_xhr_span_id__;\n    if (!spanId) return;\n\n    var span = spans[spanId];\n    if (span) {\n      span.setHttpStatus(xhr.status_code);\n      span.finish();\n\n            delete spans[spanId];\n    }\n    return;\n  }\n\n  // if not, create a new span to track it\n  var activeTransaction = getActiveTransaction();\n  if (activeTransaction) {\n    var span = activeTransaction.startChild({\n      data: {\n        ...xhr.data,\n        type: 'xhr',\n        method: xhr.method,\n        url: xhr.url,\n      },\n      description: `${xhr.method} ${xhr.url}`,\n      op: 'http.client',\n    });\n\n    handlerData.xhr.__sentry_xhr_span_id__ = span.spanId;\n    spans[handlerData.xhr.__sentry_xhr_span_id__] = span;\n\n    if (handlerData.xhr.setRequestHeader) {\n      try {\n        handlerData.xhr.setRequestHeader('sentry-trace', span.toTraceparent());\n\n        var headerBaggageString =\n          handlerData.xhr.getRequestHeader && handlerData.xhr.getRequestHeader(BAGGAGE_HEADER_NAME);\n\n        handlerData.xhr.setRequestHeader(\n          BAGGAGE_HEADER_NAME,\n          mergeAndSerializeBaggage(span.getBaggage(), headerBaggageString),\n        );\n      } catch (_) {\n        // Error: InvalidStateError: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': The object's state must be OPENED.\n      }\n    }\n  }\n}\n\nexport { DEFAULT_TRACING_ORIGINS, defaultRequestInstrumentationOptions, fetchCallback, instrumentOutgoingRequests, xhrCallback };\n//# sourceMappingURL=request.js.map\n","import { getGlobalObject, logger, addInstrumentationHandler } from '@sentry/utils';\nimport { IS_DEBUG_BUILD } from '../flags.js';\n\nvar global = getGlobalObject();\n\n/**\n * Default function implementing pageload and navigation transactions\n */\nfunction instrumentRoutingWithDefaults(\n  customStartTransaction,\n  startTransactionOnPageLoad = true,\n  startTransactionOnLocationChange = true,\n) {\n  if (!global || !global.location) {\n    IS_DEBUG_BUILD && logger.warn('Could not initialize routing instrumentation due to invalid location');\n    return;\n  }\n\n  let startingUrl = global.location.href;\n\n  let activeTransaction;\n  if (startTransactionOnPageLoad) {\n    activeTransaction = customStartTransaction({ name: global.location.pathname, op: 'pageload' });\n  }\n\n  if (startTransactionOnLocationChange) {\n    addInstrumentationHandler('history', ({ to, from }) => {\n      /**\n       * This early return is there to account for some cases where a navigation transaction starts right after\n       * long-running pageload. We make sure that if `from` is undefined and a valid `startingURL` exists, we don't\n       * create an uneccessary navigation transaction.\n       *\n       * This was hard to duplicate, but this behavior stopped as soon as this fix was applied. This issue might also\n       * only be caused in certain development environments where the usage of a hot module reloader is causing\n       * errors.\n       */\n      if (from === undefined && startingUrl && startingUrl.indexOf(to) !== -1) {\n        startingUrl = undefined;\n        return;\n      }\n\n      if (from !== to) {\n        startingUrl = undefined;\n        if (activeTransaction) {\n          IS_DEBUG_BUILD && logger.log(`[Tracing] Finishing current transaction with op: ${activeTransaction.op}`);\n          // If there's an open transaction on the scope, we need to finish it before creating an new one.\n          activeTransaction.finish();\n        }\n        activeTransaction = customStartTransaction({ name: global.location.pathname, op: 'navigation' });\n      }\n    });\n  }\n}\n\nexport { instrumentRoutingWithDefaults };\n//# sourceMappingURL=router.js.map\n","import { logger, getGlobalObject, extractTraceparentData, parseBaggageString } from '@sentry/utils';\nimport { IS_DEBUG_BUILD } from '../flags.js';\nimport { startIdleTransaction } from '../hubextensions.js';\nimport { DEFAULT_IDLE_TIMEOUT, DEFAULT_FINAL_TIMEOUT } from '../idletransaction.js';\nimport '../utils.js';\nimport { registerBackgroundTabDetection } from './backgroundtab.js';\nimport { startTrackingWebVitals, addPerformanceEntries } from './metrics/index.js';\nimport { defaultRequestInstrumentationOptions, instrumentOutgoingRequests } from './request.js';\nimport { instrumentRoutingWithDefaults } from './router.js';\n\nvar BROWSER_TRACING_INTEGRATION_ID = 'BrowserTracing';\n\n/** Options for Browser Tracing integration */\n\nvar DEFAULT_BROWSER_TRACING_OPTIONS = {\n  idleTimeout: DEFAULT_IDLE_TIMEOUT,\n  finalTimeout: DEFAULT_FINAL_TIMEOUT,\n  markBackgroundTransactions: true,\n  routingInstrumentation: instrumentRoutingWithDefaults,\n  startTransactionOnLocationChange: true,\n  startTransactionOnPageLoad: true,\n  ...defaultRequestInstrumentationOptions,\n};\n\n/**\n * The Browser Tracing integration automatically instruments browser pageload/navigation\n * actions as transactions, and captures requests, metrics and errors as spans.\n *\n * The integration can be configured with a variety of options, and can be extended to use\n * any routing library. This integration uses {@see IdleTransaction} to create transactions.\n */\nclass BrowserTracing  {\n  // This class currently doesn't have a static `id` field like the other integration classes, because it prevented\n  // @sentry/tracing from being treeshaken. Tree shakers do not like static fields, because they behave like side effects.\n  // TODO: Come up with a better plan, than using static fields on integration classes, and use that plan on all\n  // integrations.\n\n  /** Browser Tracing integration options */\n  \n\n  /**\n   * @inheritDoc\n   */\n   __init() {this.name = BROWSER_TRACING_INTEGRATION_ID;}\n\n   constructor(_options) {;BrowserTracing.prototype.__init.call(this);\n    let tracingOrigins = defaultRequestInstrumentationOptions.tracingOrigins;\n    // NOTE: Logger doesn't work in constructors, as it's initialized after integrations instances\n    if (_options) {\n      if (_options.tracingOrigins && Array.isArray(_options.tracingOrigins) && _options.tracingOrigins.length !== 0) {\n        tracingOrigins = _options.tracingOrigins;\n      } else {\n        IS_DEBUG_BUILD && (this._emitOptionsWarning = true);\n      }\n    }\n\n    this.options = {\n      ...DEFAULT_BROWSER_TRACING_OPTIONS,\n      ..._options,\n      tracingOrigins,\n    };\n\n    const { _metricOptions } = this.options;\n    startTrackingWebVitals(_metricOptions && _metricOptions._reportAllChanges);\n  }\n\n  /**\n   * @inheritDoc\n   */\n   setupOnce(_, getCurrentHub) {\n    this._getCurrentHub = getCurrentHub;\n\n    if (this._emitOptionsWarning) {\n      IS_DEBUG_BUILD &&\n        logger.warn(\n          '[Tracing] You need to define `tracingOrigins` in the options. Set an array of urls or patterns to trace.',\n        );\n      IS_DEBUG_BUILD &&\n        logger.warn(\n          `[Tracing] We added a reasonable default for you: ${defaultRequestInstrumentationOptions.tracingOrigins}`,\n        );\n    }\n\n        const {\n      routingInstrumentation: instrumentRouting,\n      startTransactionOnLocationChange,\n      startTransactionOnPageLoad,\n      markBackgroundTransactions,\n      traceFetch,\n      traceXHR,\n      tracingOrigins,\n      shouldCreateSpanForRequest,\n    } = this.options;\n\n    instrumentRouting(\n      (context) => this._createRouteTransaction(context),\n      startTransactionOnPageLoad,\n      startTransactionOnLocationChange,\n    );\n\n    if (markBackgroundTransactions) {\n      registerBackgroundTabDetection();\n    }\n\n    instrumentOutgoingRequests({ traceFetch, traceXHR, tracingOrigins, shouldCreateSpanForRequest });\n  }\n\n  /** Create routing idle transaction. */\n   _createRouteTransaction(context) {\n    if (!this._getCurrentHub) {\n      IS_DEBUG_BUILD &&\n        logger.warn(`[Tracing] Did not create ${context.op} transaction because _getCurrentHub is invalid.`);\n      return undefined;\n    }\n\n        const { beforeNavigate, idleTimeout, finalTimeout } = this.options;\n\n    var parentContextFromHeader = context.op === 'pageload' ? extractTraceDataFromMetaTags() : undefined;\n\n    var expandedContext = {\n      ...context,\n      ...parentContextFromHeader,\n      trimEnd: true,\n    };\n    var modifiedContext = typeof beforeNavigate === 'function' ? beforeNavigate(expandedContext) : expandedContext;\n\n    // For backwards compatibility reasons, beforeNavigate can return undefined to \"drop\" the transaction (prevent it\n    // from being sent to Sentry).\n    var finalContext = modifiedContext === undefined ? { ...expandedContext, sampled: false } : modifiedContext;\n\n    if (finalContext.sampled === false) {\n      IS_DEBUG_BUILD && logger.log(`[Tracing] Will not send ${finalContext.op} transaction because of beforeNavigate.`);\n    }\n\n    IS_DEBUG_BUILD && logger.log(`[Tracing] Starting ${finalContext.op} transaction on scope`);\n\n    var hub = this._getCurrentHub();\n    const { location } = getGlobalObject() ;\n\n    var idleTransaction = startIdleTransaction(\n      hub,\n      finalContext,\n      idleTimeout,\n      finalTimeout,\n      true,\n      { location }, // for use in the tracesSampler\n    );\n    idleTransaction.registerBeforeFinishCallback(transaction => {\n      addPerformanceEntries(transaction);\n      transaction.setTag(\n        'sentry_reportAllChanges',\n        Boolean(this.options._metricOptions && this.options._metricOptions._reportAllChanges),\n      );\n    });\n\n    return idleTransaction ;\n  }\n}\n\n/**\n * Gets transaction context data from `sentry-trace` and `baggage` <meta> tags.\n * @returns Transaction context data or undefined neither tag exists or has valid data\n */\nfunction extractTraceDataFromMetaTags() {\n  var sentrytraceValue = getMetaContent('sentry-trace');\n  var baggageValue = getMetaContent('baggage');\n\n  var sentrytraceData = sentrytraceValue ? extractTraceparentData(sentrytraceValue) : undefined;\n  var baggage = baggageValue ? parseBaggageString(baggageValue) : undefined;\n\n  // TODO more extensive checks for baggage validity/emptyness?\n  if (sentrytraceData || baggage) {\n    return {\n      ...(sentrytraceData && sentrytraceData),\n      ...(baggage && { metadata: { baggage } }),\n    };\n  }\n\n  return undefined;\n}\n\n/** Returns the value of a meta tag */\nfunction getMetaContent(metaName) {\n  var globalObject = getGlobalObject();\n\n  // DOM/querySelector is not available in all environments\n  if (globalObject.document && globalObject.document.querySelector) {\n    var el = globalObject.document.querySelector(`meta[name=${metaName}]`);\n    return el ? el.getAttribute('content') : null;\n  } else {\n    return null;\n  }\n}\n\nexport { BROWSER_TRACING_INTEGRATION_ID, BrowserTracing, extractTraceDataFromMetaTags, getMetaContent };\n//# sourceMappingURL=browsertracing.js.map\n","import { addExtensionMethods } from './hubextensions.js';\nexport { addExtensionMethods, startIdleTransaction } from './hubextensions.js';\nimport * as index from './integrations/index.js';\nexport { index as Integrations };\nimport './browser/index.js';\nexport { Span, spanStatusfromHttpCode } from './span.js';\nexport { SpanStatus } from './spanstatus.js';\nexport { Transaction } from './transaction.js';\nexport { IdleTransaction } from './idletransaction.js';\nexport { getActiveTransaction, hasTracingEnabled } from './utils.js';\nexport { BROWSER_TRACING_INTEGRATION_ID, BrowserTracing } from './browser/browsertracing.js';\nexport { defaultRequestInstrumentationOptions, instrumentOutgoingRequests } from './browser/request.js';\nexport { TRACEPARENT_REGEXP, extractTraceparentData, stripUrlQueryAndFragment } from '@sentry/utils';\n\n;\n;\n\n// Treeshakable guard to remove all code related to tracing\n\n// Guard for tree\nif (typeof __SENTRY_TRACING__ === 'undefined' || __SENTRY_TRACING__) {\n  // We are patching the global object with our hub extension methods\n  addExtensionMethods();\n}\n//# sourceMappingURL=index.js.map\n","import { getGlobalObject, stripUrlQueryAndFragment, fill } from '@sentry/utils';\nimport Router from 'next/router';\n\nvar global = getGlobalObject();\n\nvar DEFAULT_TAGS = {\n  'routing.instrumentation': 'next-router',\n} ;\n\nlet activeTransaction = undefined;\nlet prevTransactionName = undefined;\nlet startTransaction = undefined;\n\n/**\n * Creates routing instrumention for Next Router. Only supported for\n * client side routing. Works for Next >= 10.\n *\n * Leverages the SingletonRouter from the `next/router` to\n * generate pageload/navigation transactions and parameterize\n * transaction names.\n */\nfunction nextRouterInstrumentation(\n  startTransactionCb,\n  startTransactionOnPageLoad = true,\n  startTransactionOnLocationChange = true,\n) {\n  startTransaction = startTransactionCb;\n  Router.ready(() => {\n    // We can only start the pageload transaction when we have access to the parameterized\n    // route name. Setting the transaction name after the transaction is started could lead\n    // to possible race conditions with the router, so this approach was taken.\n    if (startTransactionOnPageLoad) {\n      prevTransactionName = Router.route !== null ? stripUrlQueryAndFragment(Router.route) : global.location.pathname;\n      activeTransaction = startTransactionCb({\n        name: prevTransactionName,\n        op: 'pageload',\n        tags: DEFAULT_TAGS,\n      });\n    }\n\n    // Spans that aren't attached to any transaction are lost; so if transactions aren't\n    // created (besides potentially the onpageload transaction), no need to wrap the router.\n    if (!startTransactionOnLocationChange) return;\n\n    // `withRouter` uses `useRouter` underneath:\n    // https://github.com/vercel/next.js/blob/de42719619ae69fbd88e445100f15701f6e1e100/packages/next/client/with-router.tsx#L21\n    // Router events also use the router:\n    // https://github.com/vercel/next.js/blob/de42719619ae69fbd88e445100f15701f6e1e100/packages/next/client/router.ts#L92\n    // `Router.changeState` handles the router state changes, so it may be enough to only wrap it\n    // (instead of wrapping all of the Router's functions).\n    var routerPrototype = Object.getPrototypeOf(Router.router);\n    fill(routerPrototype, 'changeState', changeStateWrapper);\n  });\n}\n\n/**\n * Wraps Router.changeState()\n * https://github.com/vercel/next.js/blob/da97a18dafc7799e63aa7985adc95f213c2bf5f3/packages/next/next-server/lib/router/router.ts#L1204\n * Start a navigation transaction every time the router changes state.\n */\nfunction changeStateWrapper(originalChangeStateWrapper) {\n  var wrapper = function (\n    \n    method,\n    // The parameterized url, ex. posts/[id]/[comment]\n    url,\n    // The actual url, ex. posts/85/my-comment\n    as,\n    options,\n    // At the moment there are no additional arguments (meaning the rest parameter is empty).\n    // This is meant to protect from future additions to Next.js API, especially since this is an\n    // internal API.\n    ...args\n  ) {\n    var newTransactionName = stripUrlQueryAndFragment(url);\n    // do not start a transaction if it's from the same page\n    if (startTransaction !== undefined && prevTransactionName !== newTransactionName) {\n      if (activeTransaction) {\n        activeTransaction.finish();\n      }\n      var tags = {\n        ...DEFAULT_TAGS,\n        method,\n        ...options,\n      };\n      if (prevTransactionName) {\n        tags.from = prevTransactionName;\n      }\n      prevTransactionName = newTransactionName;\n      activeTransaction = startTransaction({\n        name: prevTransactionName,\n        op: 'navigation',\n        tags,\n      });\n    }\n    return originalChangeStateWrapper.call(this, method, url, as, options, ...args);\n  };\n  return wrapper;\n}\n\nexport { nextRouterInstrumentation };\n//# sourceMappingURL=client.js.map\n","/**\n * Recursively traverses an object to update an existing nested key.\n * Note: The provided key path must include existing properties,\n * the function will not create objects while traversing.\n *\n * @param obj An object to update\n * @param value The value to update the nested key with\n * @param keyPath The path to the key to update ex. fizz.buzz.foo\n */\nfunction setNestedKey(obj, keyPath, value) {\n  // Ex. foo.bar.zoop will extract foo and bar.zoop\n  var match = keyPath.match(/([a-z]+)\\.(.*)/i);\n  if (match === null) {\n    obj[keyPath] = value;\n  } else {\n    setNestedKey(obj[match[1]], match[2], value);\n  }\n}\n\n/**\n * Retrieves the patched integrations with the provided integration.\n *\n * The integration must be present in the final user integrations, and they are compared\n * by integration name. If the user has defined one, there's nothing to patch; if not,\n * the provided integration is added.\n *\n * @param integration The integration to patch, if necessary.\n * @param userIntegrations Integrations defined by the user.\n * @param options options to update for a particular integration\n * @returns Final integrations, patched if necessary.\n */\nfunction addIntegration(\n  integration,\n  userIntegrations,\n  options = {},\n) {\n  if (Array.isArray(userIntegrations)) {\n    return addIntegrationToArray(integration, userIntegrations, options);\n  } else {\n    return addIntegrationToFunction(integration, userIntegrations, options);\n  }\n}\n\nfunction addIntegrationToArray(\n  integration,\n  userIntegrations,\n  options,\n) {\n  let includesName = false;\n    for (let x = 0; x < userIntegrations.length; x++) {\n    if (userIntegrations[x].name === integration.name) {\n      includesName = true;\n    }\n\n    var op = options[userIntegrations[x].name];\n    if (op) {\n      setNestedKey(userIntegrations[x], op.keyPath, op.value);\n    }\n  }\n\n  if (includesName) {\n    return userIntegrations;\n  }\n  return [...userIntegrations, integration];\n}\n\nfunction addIntegrationToFunction(\n  integration,\n  userIntegrationsFunc,\n  options,\n) {\n  var wrapper = defaultIntegrations => {\n    var userFinalIntegrations = userIntegrationsFunc(defaultIntegrations);\n    return addIntegrationToArray(integration, userFinalIntegrations, options);\n  };\n  return wrapper;\n}\n\nexport { addIntegration };\n//# sourceMappingURL=userIntegrations.js.map\n","import { init as init$1, configureScope } from '@sentry/react';\nexport * from '@sentry/react';\nexport { Integrations } from '@sentry/react';\nimport { BrowserTracing, defaultRequestInstrumentationOptions } from '@sentry/tracing';\nexport { BrowserTracing } from '@sentry/tracing';\nimport { nextRouterInstrumentation } from './performance/client.js';\nexport { nextRouterInstrumentation } from './performance/client.js';\nimport { buildMetadata } from './utils/metadata.js';\nimport { addIntegration } from './utils/userIntegrations.js';\n\n// Treeshakable guard to remove all code related to tracing\n\n/** Inits the Sentry NextJS SDK on the browser with the React SDK. */\nfunction init(options) {\n  buildMetadata(options, ['nextjs', 'react']);\n  options.environment = options.environment || process.env.NODE_ENV;\n\n  let integrations = options.integrations;\n\n  // Guard below evaluates to true unless __SENTRY_TRACING__ is text-replaced with \"false\"\n  if (typeof __SENTRY_TRACING__ === 'undefined' || __SENTRY_TRACING__) {\n    // Only add BrowserTracing if a tracesSampleRate or tracesSampler is set\n    if (options.tracesSampleRate !== undefined || options.tracesSampler !== undefined) {\n      integrations = createClientIntegrations(options.integrations);\n    }\n  }\n\n  init$1({\n    ...options,\n    integrations,\n  });\n\n  configureScope(scope => {\n    scope.setTag('runtime', 'browser');\n    var filterTransactions = event =>\n      event.type === 'transaction' && event.transaction === '/404' ? null : event;\n    filterTransactions.id = 'NextClient404Filter';\n    scope.addEventProcessor(filterTransactions);\n  });\n}\n\nfunction createClientIntegrations(integrations) {\n  var defaultBrowserTracingIntegration = new BrowserTracing({\n    tracingOrigins: [...defaultRequestInstrumentationOptions.tracingOrigins, /^(api\\/)/],\n    routingInstrumentation: nextRouterInstrumentation,\n  });\n\n  if (integrations) {\n    return addIntegration(defaultBrowserTracingIntegration, integrations, {\n      BrowserTracing: { keyPath: 'options.routingInstrumentation', value: nextRouterInstrumentation },\n    });\n  } else {\n    return [defaultBrowserTracingIntegration];\n  }\n}\n\nexport { init };\n//# sourceMappingURL=index.client.js.map\n","import { SDK_VERSION } from '@sentry/core';\n\nvar PACKAGE_NAME_PREFIX = 'npm:@sentry/';\n\n/**\n * A builder for the SDK metadata in the options for the SDK initialization.\n * @param options sdk options object that gets mutated\n * @param names list of package names\n */\nfunction buildMetadata(options, names) {\n  options._metadata = options._metadata || {};\n  options._metadata.sdk =\n    options._metadata.sdk ||\n    ({\n      name: 'sentry.javascript.nextjs',\n      packages: names.map(name => ({\n        name: `${PACKAGE_NAME_PREFIX}${name}`,\n        version: SDK_VERSION,\n      })),\n      version: SDK_VERSION,\n    } );\n}\n\nexport { buildMetadata };\n//# sourceMappingURL=metadata.js.map\n","import { SDK_VERSION, init as init$1 } from '@sentry/browser';\n\n/**\n * Inits the React SDK\n */\nfunction init(options) {\n  options._metadata = options._metadata || {};\n  options._metadata.sdk = options._metadata.sdk || {\n    name: 'sentry.javascript.react',\n    packages: [\n      {\n        name: 'npm:@sentry/react',\n        version: SDK_VERSION,\n      },\n    ],\n    version: SDK_VERSION,\n  };\n  init$1(options);\n}\n\nexport { init };\n//# sourceMappingURL=sdk.js.map\n","// This file configures the initialization of Sentry on the browser.\n// The config you add here will be used whenever a page is visited.\n// https://docs.sentry.io/platforms/javascript/guides/nextjs/\n\nimport * as Sentry from '@sentry/nextjs';\n\nconst SENTRY_DSN = process.env.SENTRY_DSN || process.env.NEXT_PUBLIC_SENTRY_DSN;\n\nSentry.init({\n  dsn: SENTRY_DSN,\n  // Adjust this value in production, or use tracesSampler for greater control\n  tracesSampleRate: 1.0,\n  environment: process.env.NODE_ENV,\n  // ...\n  // Note: if you want to override the automatic release value, do not set a\n  // `release` value here - use the environment variable `SENTRY_RELEASE`, so\n  // that it will also get attached to your source maps\n});\n","(function(){var e={162:function(e){var t=e.exports={};var r;var n;function defaultSetTimout(){throw new Error(\"setTimeout has not been defined\")}function defaultClearTimeout(){throw new Error(\"clearTimeout has not been defined\")}(function(){try{if(typeof setTimeout===\"function\"){r=setTimeout}else{r=defaultSetTimout}}catch(e){r=defaultSetTimout}try{if(typeof clearTimeout===\"function\"){n=clearTimeout}else{n=defaultClearTimeout}}catch(e){n=defaultClearTimeout}})();function runTimeout(e){if(r===setTimeout){return setTimeout(e,0)}if((r===defaultSetTimout||!r)&&setTimeout){r=setTimeout;return setTimeout(e,0)}try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}function runClearTimeout(e){if(n===clearTimeout){return clearTimeout(e)}if((n===defaultClearTimeout||!n)&&clearTimeout){n=clearTimeout;return clearTimeout(e)}try{return n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}var i=[];var o=false;var u;var a=-1;function cleanUpNextTick(){if(!o||!u){return}o=false;if(u.length){i=u.concat(i)}else{a=-1}if(i.length){drainQueue()}}function drainQueue(){if(o){return}var e=runTimeout(cleanUpNextTick);o=true;var t=i.length;while(t){u=i;i=[];while(++a<t){if(u){u[a].run()}}a=-1;t=i.length}u=null;o=false;runClearTimeout(e)}t.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1){for(var r=1;r<arguments.length;r++){t[r-1]=arguments[r]}}i.push(new Item(e,t));if(i.length===1&&!o){runTimeout(drainQueue)}};function Item(e,t){this.fun=e;this.array=t}Item.prototype.run=function(){this.fun.apply(null,this.array)};t.title=\"browser\";t.browser=true;t.env={};t.argv=[];t.version=\"\";t.versions={};function noop(){}t.on=noop;t.addListener=noop;t.once=noop;t.off=noop;t.removeListener=noop;t.removeAllListeners=noop;t.emit=noop;t.prependListener=noop;t.prependOnceListener=noop;t.listeners=function(e){return[]};t.binding=function(e){throw new Error(\"process.binding is not supported\")};t.cwd=function(){return\"/\"};t.chdir=function(e){throw new Error(\"process.chdir is not supported\")};t.umask=function(){return 0}}};var t={};function __nccwpck_require__(r){var n=t[r];if(n!==undefined){return n.exports}var i=t[r]={exports:{}};var o=true;try{e[r](i,i.exports,__nccwpck_require__);o=false}finally{if(o)delete t[r]}return i.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var r=__nccwpck_require__(162);module.exports=r})();","module.exports = require('./dist/shared/lib/dynamic')\n","module.exports = require('./dist/shared/lib/head')\n","module.exports = require('./dist/client/router')\n","module.exports = require('./dist/client/script')\n","/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress\n * @license MIT */\n\n;(function(root, factory) {\n\n  if (typeof define === 'function' && define.amd) {\n    define(factory);\n  } else if (typeof exports === 'object') {\n    module.exports = factory();\n  } else {\n    root.NProgress = factory();\n  }\n\n})(this, function() {\n  var NProgress = {};\n\n  NProgress.version = '0.2.0';\n\n  var Settings = NProgress.settings = {\n    minimum: 0.08,\n    easing: 'ease',\n    positionUsing: '',\n    speed: 200,\n    trickle: true,\n    trickleRate: 0.02,\n    trickleSpeed: 800,\n    showSpinner: true,\n    barSelector: '[role=\"bar\"]',\n    spinnerSelector: '[role=\"spinner\"]',\n    parent: 'body',\n    template: '<div class=\"bar\" role=\"bar\"><div class=\"peg\"></div></div><div class=\"spinner\" role=\"spinner\"><div class=\"spinner-icon\"></div></div>'\n  };\n\n  /**\n   * Updates configuration.\n   *\n   *     NProgress.configure({\n   *       minimum: 0.1\n   *     });\n   */\n  NProgress.configure = function(options) {\n    var key, value;\n    for (key in options) {\n      value = options[key];\n      if (value !== undefined && options.hasOwnProperty(key)) Settings[key] = value;\n    }\n\n    return this;\n  };\n\n  /**\n   * Last number.\n   */\n\n  NProgress.status = null;\n\n  /**\n   * Sets the progress bar status, where `n` is a number from `0.0` to `1.0`.\n   *\n   *     NProgress.set(0.4);\n   *     NProgress.set(1.0);\n   */\n\n  NProgress.set = function(n) {\n    var started = NProgress.isStarted();\n\n    n = clamp(n, Settings.minimum, 1);\n    NProgress.status = (n === 1 ? null : n);\n\n    var progress = NProgress.render(!started),\n        bar      = progress.querySelector(Settings.barSelector),\n        speed    = Settings.speed,\n        ease     = Settings.easing;\n\n    progress.offsetWidth; /* Repaint */\n\n    queue(function(next) {\n      // Set positionUsing if it hasn't already been set\n      if (Settings.positionUsing === '') Settings.positionUsing = NProgress.getPositioningCSS();\n\n      // Add transition\n      css(bar, barPositionCSS(n, speed, ease));\n\n      if (n === 1) {\n        // Fade out\n        css(progress, { \n          transition: 'none', \n          opacity: 1 \n        });\n        progress.offsetWidth; /* Repaint */\n\n        setTimeout(function() {\n          css(progress, { \n            transition: 'all ' + speed + 'ms linear', \n            opacity: 0 \n          });\n          setTimeout(function() {\n            NProgress.remove();\n            next();\n          }, speed);\n        }, speed);\n      } else {\n        setTimeout(next, speed);\n      }\n    });\n\n    return this;\n  };\n\n  NProgress.isStarted = function() {\n    return typeof NProgress.status === 'number';\n  };\n\n  /**\n   * Shows the progress bar.\n   * This is the same as setting the status to 0%, except that it doesn't go backwards.\n   *\n   *     NProgress.start();\n   *\n   */\n  NProgress.start = function() {\n    if (!NProgress.status) NProgress.set(0);\n\n    var work = function() {\n      setTimeout(function() {\n        if (!NProgress.status) return;\n        NProgress.trickle();\n        work();\n      }, Settings.trickleSpeed);\n    };\n\n    if (Settings.trickle) work();\n\n    return this;\n  };\n\n  /**\n   * Hides the progress bar.\n   * This is the *sort of* the same as setting the status to 100%, with the\n   * difference being `done()` makes some placebo effect of some realistic motion.\n   *\n   *     NProgress.done();\n   *\n   * If `true` is passed, it will show the progress bar even if its hidden.\n   *\n   *     NProgress.done(true);\n   */\n\n  NProgress.done = function(force) {\n    if (!force && !NProgress.status) return this;\n\n    return NProgress.inc(0.3 + 0.5 * Math.random()).set(1);\n  };\n\n  /**\n   * Increments by a random amount.\n   */\n\n  NProgress.inc = function(amount) {\n    var n = NProgress.status;\n\n    if (!n) {\n      return NProgress.start();\n    } else {\n      if (typeof amount !== 'number') {\n        amount = (1 - n) * clamp(Math.random() * n, 0.1, 0.95);\n      }\n\n      n = clamp(n + amount, 0, 0.994);\n      return NProgress.set(n);\n    }\n  };\n\n  NProgress.trickle = function() {\n    return NProgress.inc(Math.random() * Settings.trickleRate);\n  };\n\n  /**\n   * Waits for all supplied jQuery promises and\n   * increases the progress as the promises resolve.\n   *\n   * @param $promise jQUery Promise\n   */\n  (function() {\n    var initial = 0, current = 0;\n\n    NProgress.promise = function($promise) {\n      if (!$promise || $promise.state() === \"resolved\") {\n        return this;\n      }\n\n      if (current === 0) {\n        NProgress.start();\n      }\n\n      initial++;\n      current++;\n\n      $promise.always(function() {\n        current--;\n        if (current === 0) {\n            initial = 0;\n            NProgress.done();\n        } else {\n            NProgress.set((initial - current) / initial);\n        }\n      });\n\n      return this;\n    };\n\n  })();\n\n  /**\n   * (Internal) renders the progress bar markup based on the `template`\n   * setting.\n   */\n\n  NProgress.render = function(fromStart) {\n    if (NProgress.isRendered()) return document.getElementById('nprogress');\n\n    addClass(document.documentElement, 'nprogress-busy');\n    \n    var progress = document.createElement('div');\n    progress.id = 'nprogress';\n    progress.innerHTML = Settings.template;\n\n    var bar      = progress.querySelector(Settings.barSelector),\n        perc     = fromStart ? '-100' : toBarPerc(NProgress.status || 0),\n        parent   = document.querySelector(Settings.parent),\n        spinner;\n    \n    css(bar, {\n      transition: 'all 0 linear',\n      transform: 'translate3d(' + perc + '%,0,0)'\n    });\n\n    if (!Settings.showSpinner) {\n      spinner = progress.querySelector(Settings.spinnerSelector);\n      spinner && removeElement(spinner);\n    }\n\n    if (parent != document.body) {\n      addClass(parent, 'nprogress-custom-parent');\n    }\n\n    parent.appendChild(progress);\n    return progress;\n  };\n\n  /**\n   * Removes the element. Opposite of render().\n   */\n\n  NProgress.remove = function() {\n    removeClass(document.documentElement, 'nprogress-busy');\n    removeClass(document.querySelector(Settings.parent), 'nprogress-custom-parent');\n    var progress = document.getElementById('nprogress');\n    progress && removeElement(progress);\n  };\n\n  /**\n   * Checks if the progress bar is rendered.\n   */\n\n  NProgress.isRendered = function() {\n    return !!document.getElementById('nprogress');\n  };\n\n  /**\n   * Determine which positioning CSS rule to use.\n   */\n\n  NProgress.getPositioningCSS = function() {\n    // Sniff on document.body.style\n    var bodyStyle = document.body.style;\n\n    // Sniff prefixes\n    var vendorPrefix = ('WebkitTransform' in bodyStyle) ? 'Webkit' :\n                       ('MozTransform' in bodyStyle) ? 'Moz' :\n                       ('msTransform' in bodyStyle) ? 'ms' :\n                       ('OTransform' in bodyStyle) ? 'O' : '';\n\n    if (vendorPrefix + 'Perspective' in bodyStyle) {\n      // Modern browsers with 3D support, e.g. Webkit, IE10\n      return 'translate3d';\n    } else if (vendorPrefix + 'Transform' in bodyStyle) {\n      // Browsers without 3D support, e.g. IE9\n      return 'translate';\n    } else {\n      // Browsers without translate() support, e.g. IE7-8\n      return 'margin';\n    }\n  };\n\n  /**\n   * Helpers\n   */\n\n  function clamp(n, min, max) {\n    if (n < min) return min;\n    if (n > max) return max;\n    return n;\n  }\n\n  /**\n   * (Internal) converts a percentage (`0..1`) to a bar translateX\n   * percentage (`-100%..0%`).\n   */\n\n  function toBarPerc(n) {\n    return (-1 + n) * 100;\n  }\n\n\n  /**\n   * (Internal) returns the correct CSS for changing the bar's\n   * position given an n percentage, and speed and ease from Settings\n   */\n\n  function barPositionCSS(n, speed, ease) {\n    var barCSS;\n\n    if (Settings.positionUsing === 'translate3d') {\n      barCSS = { transform: 'translate3d('+toBarPerc(n)+'%,0,0)' };\n    } else if (Settings.positionUsing === 'translate') {\n      barCSS = { transform: 'translate('+toBarPerc(n)+'%,0)' };\n    } else {\n      barCSS = { 'margin-left': toBarPerc(n)+'%' };\n    }\n\n    barCSS.transition = 'all '+speed+'ms '+ease;\n\n    return barCSS;\n  }\n\n  /**\n   * (Internal) Queues a function to be executed.\n   */\n\n  var queue = (function() {\n    var pending = [];\n    \n    function next() {\n      var fn = pending.shift();\n      if (fn) {\n        fn(next);\n      }\n    }\n\n    return function(fn) {\n      pending.push(fn);\n      if (pending.length == 1) next();\n    };\n  })();\n\n  /**\n   * (Internal) Applies css properties to an element, similar to the jQuery \n   * css method.\n   *\n   * While this helper does assist with vendor prefixed property names, it \n   * does not perform any manipulation of values prior to setting styles.\n   */\n\n  var css = (function() {\n    var cssPrefixes = [ 'Webkit', 'O', 'Moz', 'ms' ],\n        cssProps    = {};\n\n    function camelCase(string) {\n      return string.replace(/^-ms-/, 'ms-').replace(/-([\\da-z])/gi, function(match, letter) {\n        return letter.toUpperCase();\n      });\n    }\n\n    function getVendorProp(name) {\n      var style = document.body.style;\n      if (name in style) return name;\n\n      var i = cssPrefixes.length,\n          capName = name.charAt(0).toUpperCase() + name.slice(1),\n          vendorName;\n      while (i--) {\n        vendorName = cssPrefixes[i] + capName;\n        if (vendorName in style) return vendorName;\n      }\n\n      return name;\n    }\n\n    function getStyleProp(name) {\n      name = camelCase(name);\n      return cssProps[name] || (cssProps[name] = getVendorProp(name));\n    }\n\n    function applyCss(element, prop, value) {\n      prop = getStyleProp(prop);\n      element.style[prop] = value;\n    }\n\n    return function(element, properties) {\n      var args = arguments,\n          prop, \n          value;\n\n      if (args.length == 2) {\n        for (prop in properties) {\n          value = properties[prop];\n          if (value !== undefined && properties.hasOwnProperty(prop)) applyCss(element, prop, value);\n        }\n      } else {\n        applyCss(element, args[1], args[2]);\n      }\n    }\n  })();\n\n  /**\n   * (Internal) Determines if an element or space separated list of class names contains a class name.\n   */\n\n  function hasClass(element, name) {\n    var list = typeof element == 'string' ? element : classList(element);\n    return list.indexOf(' ' + name + ' ') >= 0;\n  }\n\n  /**\n   * (Internal) Adds a class to an element.\n   */\n\n  function addClass(element, name) {\n    var oldList = classList(element),\n        newList = oldList + name;\n\n    if (hasClass(oldList, name)) return; \n\n    // Trim the opening space.\n    element.className = newList.substring(1);\n  }\n\n  /**\n   * (Internal) Removes a class from an element.\n   */\n\n  function removeClass(element, name) {\n    var oldList = classList(element),\n        newList;\n\n    if (!hasClass(element, name)) return;\n\n    // Replace the class name.\n    newList = oldList.replace(' ' + name + ' ', ' ');\n\n    // Trim the opening and closing spaces.\n    element.className = newList.substring(1, newList.length - 1);\n  }\n\n  /**\n   * (Internal) Gets a space separated list of the class names on the element. \n   * The list is wrapped with a single space on each end to facilitate finding \n   * matches within the list.\n   */\n\n  function classList(element) {\n    return (' ' + (element.className || '') + ' ').replace(/\\s+/gi, ' ');\n  }\n\n  /**\n   * (Internal) Removes an element from the DOM.\n   */\n\n  function removeElement(element) {\n    element && element.parentNode && element.parentNode.removeChild(element);\n  }\n\n  return NProgress;\n});\n\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n  function shim(props, propName, componentName, location, propFullName, secret) {\n    if (secret === ReactPropTypesSecret) {\n      // It is still safe when called from React.\n      return;\n    }\n    var err = new Error(\n      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n      'Use PropTypes.checkPropTypes() to call them. ' +\n      'Read more at http://fb.me/use-check-prop-types'\n    );\n    err.name = 'Invariant Violation';\n    throw err;\n  };\n  shim.isRequired = shim;\n  function getShim() {\n    return shim;\n  };\n  // Important!\n  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n  var ReactPropTypes = {\n    array: shim,\n    bool: shim,\n    func: shim,\n    number: shim,\n    object: shim,\n    string: shim,\n    symbol: shim,\n\n    any: shim,\n    arrayOf: getShim,\n    element: shim,\n    elementType: shim,\n    instanceOf: getShim,\n    node: shim,\n    objectOf: getShim,\n    oneOf: getShim,\n    oneOfType: getShim,\n    shape: getShim,\n    exact: getShim,\n\n    checkPropTypes: emptyFunctionWithReset,\n    resetWarningCache: emptyFunction\n  };\n\n  ReactPropTypes.PropTypes = ReactPropTypes;\n\n  return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\nif (process.env.NODE_ENV !== 'production') {\n  var ReactIs = require('react-is');\n\n  // By explicitly using `prop-types` you are opting into new development behavior.\n  // http://fb.me/prop-types-in-prod\n  var throwOnDirectAccess = true;\n  module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n  // By explicitly using `prop-types` you are opting into new production behavior.\n  // http://fb.me/prop-types-in-prod\n  module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","// TinyColor v1.4.2\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\n(function(Math) {\n\nvar trimLeft = /^\\s+/,\n    trimRight = /\\s+$/,\n    tinyCounter = 0,\n    mathRound = Math.round,\n    mathMin = Math.min,\n    mathMax = Math.max,\n    mathRandom = Math.random;\n\nfunction tinycolor (color, opts) {\n\n    color = (color) ? color : '';\n    opts = opts || { };\n\n    // If input is already a tinycolor, return itself\n    if (color instanceof tinycolor) {\n       return color;\n    }\n    // If we are called as a function, call using new instead\n    if (!(this instanceof tinycolor)) {\n        return new tinycolor(color, opts);\n    }\n\n    var rgb = inputToRGB(color);\n    this._originalInput = color,\n    this._r = rgb.r,\n    this._g = rgb.g,\n    this._b = rgb.b,\n    this._a = rgb.a,\n    this._roundA = mathRound(100*this._a) / 100,\n    this._format = opts.format || rgb.format;\n    this._gradientType = opts.gradientType;\n\n    // Don't let the range of [0,255] come back in [0,1].\n    // Potentially lose a little bit of precision here, but will fix issues where\n    // .5 gets interpreted as half of the total, instead of half of 1\n    // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n    if (this._r < 1) { this._r = mathRound(this._r); }\n    if (this._g < 1) { this._g = mathRound(this._g); }\n    if (this._b < 1) { this._b = mathRound(this._b); }\n\n    this._ok = rgb.ok;\n    this._tc_id = tinyCounter++;\n}\n\ntinycolor.prototype = {\n    isDark: function() {\n        return this.getBrightness() < 128;\n    },\n    isLight: function() {\n        return !this.isDark();\n    },\n    isValid: function() {\n        return this._ok;\n    },\n    getOriginalInput: function() {\n      return this._originalInput;\n    },\n    getFormat: function() {\n        return this._format;\n    },\n    getAlpha: function() {\n        return this._a;\n    },\n    getBrightness: function() {\n        //http://www.w3.org/TR/AERT#color-contrast\n        var rgb = this.toRgb();\n        return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n    },\n    getLuminance: function() {\n        //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n        var rgb = this.toRgb();\n        var RsRGB, GsRGB, BsRGB, R, G, B;\n        RsRGB = rgb.r/255;\n        GsRGB = rgb.g/255;\n        BsRGB = rgb.b/255;\n\n        if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}\n        if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}\n        if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}\n        return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);\n    },\n    setAlpha: function(value) {\n        this._a = boundAlpha(value);\n        this._roundA = mathRound(100*this._a) / 100;\n        return this;\n    },\n    toHsv: function() {\n        var hsv = rgbToHsv(this._r, this._g, this._b);\n        return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n    },\n    toHsvString: function() {\n        var hsv = rgbToHsv(this._r, this._g, this._b);\n        var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n        return (this._a == 1) ?\n          \"hsv(\"  + h + \", \" + s + \"%, \" + v + \"%)\" :\n          \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \"+ this._roundA + \")\";\n    },\n    toHsl: function() {\n        var hsl = rgbToHsl(this._r, this._g, this._b);\n        return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n    },\n    toHslString: function() {\n        var hsl = rgbToHsl(this._r, this._g, this._b);\n        var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);\n        return (this._a == 1) ?\n          \"hsl(\"  + h + \", \" + s + \"%, \" + l + \"%)\" :\n          \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \"+ this._roundA + \")\";\n    },\n    toHex: function(allow3Char) {\n        return rgbToHex(this._r, this._g, this._b, allow3Char);\n    },\n    toHexString: function(allow3Char) {\n        return '#' + this.toHex(allow3Char);\n    },\n    toHex8: function(allow4Char) {\n        return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n    },\n    toHex8String: function(allow4Char) {\n        return '#' + this.toHex8(allow4Char);\n    },\n    toRgb: function() {\n        return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };\n    },\n    toRgbString: function() {\n        return (this._a == 1) ?\n          \"rgb(\"  + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" :\n          \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n    },\n    toPercentageRgb: function() {\n        return { r: mathRound(bound01(this._r, 255) * 100) + \"%\", g: mathRound(bound01(this._g, 255) * 100) + \"%\", b: mathRound(bound01(this._b, 255) * 100) + \"%\", a: this._a };\n    },\n    toPercentageRgbString: function() {\n        return (this._a == 1) ?\n          \"rgb(\"  + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" :\n          \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n    },\n    toName: function() {\n        if (this._a === 0) {\n            return \"transparent\";\n        }\n\n        if (this._a < 1) {\n            return false;\n        }\n\n        return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n    },\n    toFilter: function(secondColor) {\n        var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n        var secondHex8String = hex8String;\n        var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n        if (secondColor) {\n            var s = tinycolor(secondColor);\n            secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n        }\n\n        return \"progid:DXImageTransform.Microsoft.gradient(\"+gradientType+\"startColorstr=\"+hex8String+\",endColorstr=\"+secondHex8String+\")\";\n    },\n    toString: function(format) {\n        var formatSet = !!format;\n        format = format || this._format;\n\n        var formattedString = false;\n        var hasAlpha = this._a < 1 && this._a >= 0;\n        var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n        if (needsAlphaFormat) {\n            // Special case for \"transparent\", all other non-alpha formats\n            // will return rgba when there is transparency.\n            if (format === \"name\" && this._a === 0) {\n                return this.toName();\n            }\n            return this.toRgbString();\n        }\n        if (format === \"rgb\") {\n            formattedString = this.toRgbString();\n        }\n        if (format === \"prgb\") {\n            formattedString = this.toPercentageRgbString();\n        }\n        if (format === \"hex\" || format === \"hex6\") {\n            formattedString = this.toHexString();\n        }\n        if (format === \"hex3\") {\n            formattedString = this.toHexString(true);\n        }\n        if (format === \"hex4\") {\n            formattedString = this.toHex8String(true);\n        }\n        if (format === \"hex8\") {\n            formattedString = this.toHex8String();\n        }\n        if (format === \"name\") {\n            formattedString = this.toName();\n        }\n        if (format === \"hsl\") {\n            formattedString = this.toHslString();\n        }\n        if (format === \"hsv\") {\n            formattedString = this.toHsvString();\n        }\n\n        return formattedString || this.toHexString();\n    },\n    clone: function() {\n        return tinycolor(this.toString());\n    },\n\n    _applyModification: function(fn, args) {\n        var color = fn.apply(null, [this].concat([].slice.call(args)));\n        this._r = color._r;\n        this._g = color._g;\n        this._b = color._b;\n        this.setAlpha(color._a);\n        return this;\n    },\n    lighten: function() {\n        return this._applyModification(lighten, arguments);\n    },\n    brighten: function() {\n        return this._applyModification(brighten, arguments);\n    },\n    darken: function() {\n        return this._applyModification(darken, arguments);\n    },\n    desaturate: function() {\n        return this._applyModification(desaturate, arguments);\n    },\n    saturate: function() {\n        return this._applyModification(saturate, arguments);\n    },\n    greyscale: function() {\n        return this._applyModification(greyscale, arguments);\n    },\n    spin: function() {\n        return this._applyModification(spin, arguments);\n    },\n\n    _applyCombination: function(fn, args) {\n        return fn.apply(null, [this].concat([].slice.call(args)));\n    },\n    analogous: function() {\n        return this._applyCombination(analogous, arguments);\n    },\n    complement: function() {\n        return this._applyCombination(complement, arguments);\n    },\n    monochromatic: function() {\n        return this._applyCombination(monochromatic, arguments);\n    },\n    splitcomplement: function() {\n        return this._applyCombination(splitcomplement, arguments);\n    },\n    triad: function() {\n        return this._applyCombination(triad, arguments);\n    },\n    tetrad: function() {\n        return this._applyCombination(tetrad, arguments);\n    }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function(color, opts) {\n    if (typeof color == \"object\") {\n        var newColor = {};\n        for (var i in color) {\n            if (color.hasOwnProperty(i)) {\n                if (i === \"a\") {\n                    newColor[i] = color[i];\n                }\n                else {\n                    newColor[i] = convertToPercentage(color[i]);\n                }\n            }\n        }\n        color = newColor;\n    }\n\n    return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n//     \"red\"\n//     \"#f00\" or \"f00\"\n//     \"#ff0000\" or \"ff0000\"\n//     \"#ff000000\" or \"ff000000\"\n//     \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n//     \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n//     \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n//     \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n//     \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n//     \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n//     \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n\n    var rgb = { r: 0, g: 0, b: 0 };\n    var a = 1;\n    var s = null;\n    var v = null;\n    var l = null;\n    var ok = false;\n    var format = false;\n\n    if (typeof color == \"string\") {\n        color = stringInputToObject(color);\n    }\n\n    if (typeof color == \"object\") {\n        if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n            rgb = rgbToRgb(color.r, color.g, color.b);\n            ok = true;\n            format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n        }\n        else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n            s = convertToPercentage(color.s);\n            v = convertToPercentage(color.v);\n            rgb = hsvToRgb(color.h, s, v);\n            ok = true;\n            format = \"hsv\";\n        }\n        else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n            s = convertToPercentage(color.s);\n            l = convertToPercentage(color.l);\n            rgb = hslToRgb(color.h, s, l);\n            ok = true;\n            format = \"hsl\";\n        }\n\n        if (color.hasOwnProperty(\"a\")) {\n            a = color.a;\n        }\n    }\n\n    a = boundAlpha(a);\n\n    return {\n        ok: ok,\n        format: color.format || format,\n        r: mathMin(255, mathMax(rgb.r, 0)),\n        g: mathMin(255, mathMax(rgb.g, 0)),\n        b: mathMin(255, mathMax(rgb.b, 0)),\n        a: a\n    };\n}\n\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// <http://www.w3.org/TR/css3-color/>\n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b){\n    return {\n        r: bound01(r, 255) * 255,\n        g: bound01(g, 255) * 255,\n        b: bound01(b, 255) * 255\n    };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n\n    r = bound01(r, 255);\n    g = bound01(g, 255);\n    b = bound01(b, 255);\n\n    var max = mathMax(r, g, b), min = mathMin(r, g, b);\n    var h, s, l = (max + min) / 2;\n\n    if(max == min) {\n        h = s = 0; // achromatic\n    }\n    else {\n        var d = max - min;\n        s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n        switch(max) {\n            case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n            case g: h = (b - r) / d + 2; break;\n            case b: h = (r - g) / d + 4; break;\n        }\n\n        h /= 6;\n    }\n\n    return { h: h, s: s, l: l };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n    var r, g, b;\n\n    h = bound01(h, 360);\n    s = bound01(s, 100);\n    l = bound01(l, 100);\n\n    function hue2rgb(p, q, t) {\n        if(t < 0) t += 1;\n        if(t > 1) t -= 1;\n        if(t < 1/6) return p + (q - p) * 6 * t;\n        if(t < 1/2) return q;\n        if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n        return p;\n    }\n\n    if(s === 0) {\n        r = g = b = l; // achromatic\n    }\n    else {\n        var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n        var p = 2 * l - q;\n        r = hue2rgb(p, q, h + 1/3);\n        g = hue2rgb(p, q, h);\n        b = hue2rgb(p, q, h - 1/3);\n    }\n\n    return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n\n    r = bound01(r, 255);\n    g = bound01(g, 255);\n    b = bound01(b, 255);\n\n    var max = mathMax(r, g, b), min = mathMin(r, g, b);\n    var h, s, v = max;\n\n    var d = max - min;\n    s = max === 0 ? 0 : d / max;\n\n    if(max == min) {\n        h = 0; // achromatic\n    }\n    else {\n        switch(max) {\n            case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n            case g: h = (b - r) / d + 2; break;\n            case b: h = (r - g) / d + 4; break;\n        }\n        h /= 6;\n    }\n    return { h: h, s: s, v: v };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n    h = bound01(h, 360) * 6;\n    s = bound01(s, 100);\n    v = bound01(v, 100);\n\n    var i = Math.floor(h),\n        f = h - i,\n        p = v * (1 - s),\n        q = v * (1 - f * s),\n        t = v * (1 - (1 - f) * s),\n        mod = i % 6,\n        r = [v, q, p, p, t, v][mod],\n        g = [t, v, v, q, p, p][mod],\n        b = [p, p, t, v, v, q][mod];\n\n    return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n\n    var hex = [\n        pad2(mathRound(r).toString(16)),\n        pad2(mathRound(g).toString(16)),\n        pad2(mathRound(b).toString(16))\n    ];\n\n    // Return a 3 character hex if possible\n    if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n        return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n    }\n\n    return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n\n    var hex = [\n        pad2(mathRound(r).toString(16)),\n        pad2(mathRound(g).toString(16)),\n        pad2(mathRound(b).toString(16)),\n        pad2(convertDecimalToHex(a))\n    ];\n\n    // Return a 4 character hex if possible\n    if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n        return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n    }\n\n    return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n\n    var hex = [\n        pad2(convertDecimalToHex(a)),\n        pad2(mathRound(r).toString(16)),\n        pad2(mathRound(g).toString(16)),\n        pad2(mathRound(b).toString(16))\n    ];\n\n    return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n    if (!color1 || !color2) { return false; }\n    return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\n\ntinycolor.random = function() {\n    return tinycolor.fromRatio({\n        r: mathRandom(),\n        g: mathRandom(),\n        b: mathRandom()\n    });\n};\n\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// <https://github.com/cloudhead/less.js/blob/master/lib/less/functions.js>\n\nfunction desaturate(color, amount) {\n    amount = (amount === 0) ? 0 : (amount || 10);\n    var hsl = tinycolor(color).toHsl();\n    hsl.s -= amount / 100;\n    hsl.s = clamp01(hsl.s);\n    return tinycolor(hsl);\n}\n\nfunction saturate(color, amount) {\n    amount = (amount === 0) ? 0 : (amount || 10);\n    var hsl = tinycolor(color).toHsl();\n    hsl.s += amount / 100;\n    hsl.s = clamp01(hsl.s);\n    return tinycolor(hsl);\n}\n\nfunction greyscale(color) {\n    return tinycolor(color).desaturate(100);\n}\n\nfunction lighten (color, amount) {\n    amount = (amount === 0) ? 0 : (amount || 10);\n    var hsl = tinycolor(color).toHsl();\n    hsl.l += amount / 100;\n    hsl.l = clamp01(hsl.l);\n    return tinycolor(hsl);\n}\n\nfunction brighten(color, amount) {\n    amount = (amount === 0) ? 0 : (amount || 10);\n    var rgb = tinycolor(color).toRgb();\n    rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n    rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n    rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n    return tinycolor(rgb);\n}\n\nfunction darken (color, amount) {\n    amount = (amount === 0) ? 0 : (amount || 10);\n    var hsl = tinycolor(color).toHsl();\n    hsl.l -= amount / 100;\n    hsl.l = clamp01(hsl.l);\n    return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction spin(color, amount) {\n    var hsl = tinycolor(color).toHsl();\n    var hue = (hsl.h + amount) % 360;\n    hsl.h = hue < 0 ? 360 + hue : hue;\n    return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// <https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js>\n\nfunction complement(color) {\n    var hsl = tinycolor(color).toHsl();\n    hsl.h = (hsl.h + 180) % 360;\n    return tinycolor(hsl);\n}\n\nfunction triad(color) {\n    var hsl = tinycolor(color).toHsl();\n    var h = hsl.h;\n    return [\n        tinycolor(color),\n        tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n        tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n    ];\n}\n\nfunction tetrad(color) {\n    var hsl = tinycolor(color).toHsl();\n    var h = hsl.h;\n    return [\n        tinycolor(color),\n        tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n        tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n        tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n    ];\n}\n\nfunction splitcomplement(color) {\n    var hsl = tinycolor(color).toHsl();\n    var h = hsl.h;\n    return [\n        tinycolor(color),\n        tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n        tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n    ];\n}\n\nfunction analogous(color, results, slices) {\n    results = results || 6;\n    slices = slices || 30;\n\n    var hsl = tinycolor(color).toHsl();\n    var part = 360 / slices;\n    var ret = [tinycolor(color)];\n\n    for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n        hsl.h = (hsl.h + part) % 360;\n        ret.push(tinycolor(hsl));\n    }\n    return ret;\n}\n\nfunction monochromatic(color, results) {\n    results = results || 6;\n    var hsv = tinycolor(color).toHsv();\n    var h = hsv.h, s = hsv.s, v = hsv.v;\n    var ret = [];\n    var modification = 1 / results;\n\n    while (results--) {\n        ret.push(tinycolor({ h: h, s: s, v: v}));\n        v = (v + modification) % 1;\n    }\n\n    return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function(color1, color2, amount) {\n    amount = (amount === 0) ? 0 : (amount || 50);\n\n    var rgb1 = tinycolor(color1).toRgb();\n    var rgb2 = tinycolor(color2).toRgb();\n\n    var p = amount / 100;\n\n    var rgba = {\n        r: ((rgb2.r - rgb1.r) * p) + rgb1.r,\n        g: ((rgb2.g - rgb1.g) * p) + rgb1.g,\n        b: ((rgb2.b - rgb1.b) * p) + rgb1.b,\n        a: ((rgb2.a - rgb1.a) * p) + rgb1.a\n    };\n\n    return tinycolor(rgba);\n};\n\n\n// Readability Functions\n// ---------------------\n// <http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef (WCAG Version 2)\n\n// `contrast`\n// Analyze the 2 colors and returns the color contrast defined by (WCAG Version 2)\ntinycolor.readability = function(color1, color2) {\n    var c1 = tinycolor(color1);\n    var c2 = tinycolor(color2);\n    return (Math.max(c1.getLuminance(),c2.getLuminance())+0.05) / (Math.min(c1.getLuminance(),c2.getLuminance())+0.05);\n};\n\n// `isReadable`\n// Ensure that foreground and background color combinations meet WCAG2 guidelines.\n// The third argument is an optional Object.\n//      the 'level' property states 'AA' or 'AAA' - if missing or invalid, it defaults to 'AA';\n//      the 'size' property states 'large' or 'small' - if missing or invalid, it defaults to 'small'.\n// If the entire object is absent, isReadable defaults to {level:\"AA\",size:\"small\"}.\n\n// *Example*\n//    tinycolor.isReadable(\"#000\", \"#111\") => false\n//    tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function(color1, color2, wcag2) {\n    var readability = tinycolor.readability(color1, color2);\n    var wcag2Parms, out;\n\n    out = false;\n\n    wcag2Parms = validateWCAG2Parms(wcag2);\n    switch (wcag2Parms.level + wcag2Parms.size) {\n        case \"AAsmall\":\n        case \"AAAlarge\":\n            out = readability >= 4.5;\n            break;\n        case \"AAlarge\":\n            out = readability >= 3;\n            break;\n        case \"AAAsmall\":\n            out = readability >= 7;\n            break;\n    }\n    return out;\n\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n//    tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n//    tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString();  // \"#ffffff\"\n//    tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n//    tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function(baseColor, colorList, args) {\n    var bestColor = null;\n    var bestScore = 0;\n    var readability;\n    var includeFallbackColors, level, size ;\n    args = args || {};\n    includeFallbackColors = args.includeFallbackColors ;\n    level = args.level;\n    size = args.size;\n\n    for (var i= 0; i < colorList.length ; i++) {\n        readability = tinycolor.readability(baseColor, colorList[i]);\n        if (readability > bestScore) {\n            bestScore = readability;\n            bestColor = tinycolor(colorList[i]);\n        }\n    }\n\n    if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n        return bestColor;\n    }\n    else {\n        args.includeFallbackColors=false;\n        return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n    }\n};\n\n\n// Big List of Colors\n// ------------------\n// <http://www.w3.org/TR/css3-color/#svg-color>\nvar names = tinycolor.names = {\n    aliceblue: \"f0f8ff\",\n    antiquewhite: \"faebd7\",\n    aqua: \"0ff\",\n    aquamarine: \"7fffd4\",\n    azure: \"f0ffff\",\n    beige: \"f5f5dc\",\n    bisque: \"ffe4c4\",\n    black: \"000\",\n    blanchedalmond: \"ffebcd\",\n    blue: \"00f\",\n    blueviolet: \"8a2be2\",\n    brown: \"a52a2a\",\n    burlywood: \"deb887\",\n    burntsienna: \"ea7e5d\",\n    cadetblue: \"5f9ea0\",\n    chartreuse: \"7fff00\",\n    chocolate: \"d2691e\",\n    coral: \"ff7f50\",\n    cornflowerblue: \"6495ed\",\n    cornsilk: \"fff8dc\",\n    crimson: \"dc143c\",\n    cyan: \"0ff\",\n    darkblue: \"00008b\",\n    darkcyan: \"008b8b\",\n    darkgoldenrod: \"b8860b\",\n    darkgray: \"a9a9a9\",\n    darkgreen: \"006400\",\n    darkgrey: \"a9a9a9\",\n    darkkhaki: \"bdb76b\",\n    darkmagenta: \"8b008b\",\n    darkolivegreen: \"556b2f\",\n    darkorange: \"ff8c00\",\n    darkorchid: \"9932cc\",\n    darkred: \"8b0000\",\n    darksalmon: \"e9967a\",\n    darkseagreen: \"8fbc8f\",\n    darkslateblue: \"483d8b\",\n    darkslategray: \"2f4f4f\",\n    darkslategrey: \"2f4f4f\",\n    darkturquoise: \"00ced1\",\n    darkviolet: \"9400d3\",\n    deeppink: \"ff1493\",\n    deepskyblue: \"00bfff\",\n    dimgray: \"696969\",\n    dimgrey: \"696969\",\n    dodgerblue: \"1e90ff\",\n    firebrick: \"b22222\",\n    floralwhite: \"fffaf0\",\n    forestgreen: \"228b22\",\n    fuchsia: \"f0f\",\n    gainsboro: \"dcdcdc\",\n    ghostwhite: \"f8f8ff\",\n    gold: \"ffd700\",\n    goldenrod: \"daa520\",\n    gray: \"808080\",\n    green: \"008000\",\n    greenyellow: \"adff2f\",\n    grey: \"808080\",\n    honeydew: \"f0fff0\",\n    hotpink: \"ff69b4\",\n    indianred: \"cd5c5c\",\n    indigo: \"4b0082\",\n    ivory: \"fffff0\",\n    khaki: \"f0e68c\",\n    lavender: \"e6e6fa\",\n    lavenderblush: \"fff0f5\",\n    lawngreen: \"7cfc00\",\n    lemonchiffon: \"fffacd\",\n    lightblue: \"add8e6\",\n    lightcoral: \"f08080\",\n    lightcyan: \"e0ffff\",\n    lightgoldenrodyellow: \"fafad2\",\n    lightgray: \"d3d3d3\",\n    lightgreen: \"90ee90\",\n    lightgrey: \"d3d3d3\",\n    lightpink: \"ffb6c1\",\n    lightsalmon: \"ffa07a\",\n    lightseagreen: \"20b2aa\",\n    lightskyblue: \"87cefa\",\n    lightslategray: \"789\",\n    lightslategrey: \"789\",\n    lightsteelblue: \"b0c4de\",\n    lightyellow: \"ffffe0\",\n    lime: \"0f0\",\n    limegreen: \"32cd32\",\n    linen: \"faf0e6\",\n    magenta: \"f0f\",\n    maroon: \"800000\",\n    mediumaquamarine: \"66cdaa\",\n    mediumblue: \"0000cd\",\n    mediumorchid: \"ba55d3\",\n    mediumpurple: \"9370db\",\n    mediumseagreen: \"3cb371\",\n    mediumslateblue: \"7b68ee\",\n    mediumspringgreen: \"00fa9a\",\n    mediumturquoise: \"48d1cc\",\n    mediumvioletred: \"c71585\",\n    midnightblue: \"191970\",\n    mintcream: \"f5fffa\",\n    mistyrose: \"ffe4e1\",\n    moccasin: \"ffe4b5\",\n    navajowhite: \"ffdead\",\n    navy: \"000080\",\n    oldlace: \"fdf5e6\",\n    olive: \"808000\",\n    olivedrab: \"6b8e23\",\n    orange: \"ffa500\",\n    orangered: \"ff4500\",\n    orchid: \"da70d6\",\n    palegoldenrod: \"eee8aa\",\n    palegreen: \"98fb98\",\n    paleturquoise: \"afeeee\",\n    palevioletred: \"db7093\",\n    papayawhip: \"ffefd5\",\n    peachpuff: \"ffdab9\",\n    peru: \"cd853f\",\n    pink: \"ffc0cb\",\n    plum: \"dda0dd\",\n    powderblue: \"b0e0e6\",\n    purple: \"800080\",\n    rebeccapurple: \"663399\",\n    red: \"f00\",\n    rosybrown: \"bc8f8f\",\n    royalblue: \"4169e1\",\n    saddlebrown: \"8b4513\",\n    salmon: \"fa8072\",\n    sandybrown: \"f4a460\",\n    seagreen: \"2e8b57\",\n    seashell: \"fff5ee\",\n    sienna: \"a0522d\",\n    silver: \"c0c0c0\",\n    skyblue: \"87ceeb\",\n    slateblue: \"6a5acd\",\n    slategray: \"708090\",\n    slategrey: \"708090\",\n    snow: \"fffafa\",\n    springgreen: \"00ff7f\",\n    steelblue: \"4682b4\",\n    tan: \"d2b48c\",\n    teal: \"008080\",\n    thistle: \"d8bfd8\",\n    tomato: \"ff6347\",\n    turquoise: \"40e0d0\",\n    violet: \"ee82ee\",\n    wheat: \"f5deb3\",\n    white: \"fff\",\n    whitesmoke: \"f5f5f5\",\n    yellow: \"ff0\",\n    yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n    var flipped = { };\n    for (var i in o) {\n        if (o.hasOwnProperty(i)) {\n            flipped[o[i]] = i;\n        }\n    }\n    return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n    a = parseFloat(a);\n\n    if (isNaN(a) || a < 0 || a > 1) {\n        a = 1;\n    }\n\n    return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n    if (isOnePointZero(n)) { n = \"100%\"; }\n\n    var processPercent = isPercentage(n);\n    n = mathMin(max, mathMax(0, parseFloat(n)));\n\n    // Automatically convert percentage into number\n    if (processPercent) {\n        n = parseInt(n * max, 10) / 100;\n    }\n\n    // Handle floating point rounding errors\n    if ((Math.abs(n - max) < 0.000001)) {\n        return 1;\n    }\n\n    // Convert into [0, 1] range if it isn't already\n    return (n % max) / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n    return mathMin(1, mathMax(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n    return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\nfunction isOnePointZero(n) {\n    return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n    return typeof n === \"string\" && n.indexOf('%') != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n    return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n    if (n <= 1) {\n        n = (n * 100) + \"%\";\n    }\n\n    return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n    return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n    return (parseIntFromHex(h) / 255);\n}\n\nvar matchers = (function() {\n\n    // <http://www.w3.org/TR/css3-values/#integers>\n    var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n    // <http://www.w3.org/TR/css3-values/#number-value>\n    var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n    // Allow positive/negative integer/number.  Don't capture the either/or, just the entire outcome.\n    var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n    // Actual matching.\n    // Parentheses and commas are optional, but not required.\n    // Whitespace can take the place of commas or opening paren\n    var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n    var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n    return {\n        CSS_UNIT: new RegExp(CSS_UNIT),\n        rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n        rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n        hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n        hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n        hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n        hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n        hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n        hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n        hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n        hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n    };\n})();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n    return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing.  Take in a number of formats, and output an object\n// based on detected format.  Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n\n    color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();\n    var named = false;\n    if (names[color]) {\n        color = names[color];\n        named = true;\n    }\n    else if (color == 'transparent') {\n        return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n    }\n\n    // Try to match string input using regular expressions.\n    // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n    // Just return an object and let the conversion functions handle that.\n    // This way the result will be the same whether the tinycolor is initialized with string or object.\n    var match;\n    if ((match = matchers.rgb.exec(color))) {\n        return { r: match[1], g: match[2], b: match[3] };\n    }\n    if ((match = matchers.rgba.exec(color))) {\n        return { r: match[1], g: match[2], b: match[3], a: match[4] };\n    }\n    if ((match = matchers.hsl.exec(color))) {\n        return { h: match[1], s: match[2], l: match[3] };\n    }\n    if ((match = matchers.hsla.exec(color))) {\n        return { h: match[1], s: match[2], l: match[3], a: match[4] };\n    }\n    if ((match = matchers.hsv.exec(color))) {\n        return { h: match[1], s: match[2], v: match[3] };\n    }\n    if ((match = matchers.hsva.exec(color))) {\n        return { h: match[1], s: match[2], v: match[3], a: match[4] };\n    }\n    if ((match = matchers.hex8.exec(color))) {\n        return {\n            r: parseIntFromHex(match[1]),\n            g: parseIntFromHex(match[2]),\n            b: parseIntFromHex(match[3]),\n            a: convertHexToDecimal(match[4]),\n            format: named ? \"name\" : \"hex8\"\n        };\n    }\n    if ((match = matchers.hex6.exec(color))) {\n        return {\n            r: parseIntFromHex(match[1]),\n            g: parseIntFromHex(match[2]),\n            b: parseIntFromHex(match[3]),\n            format: named ? \"name\" : \"hex\"\n        };\n    }\n    if ((match = matchers.hex4.exec(color))) {\n        return {\n            r: parseIntFromHex(match[1] + '' + match[1]),\n            g: parseIntFromHex(match[2] + '' + match[2]),\n            b: parseIntFromHex(match[3] + '' + match[3]),\n            a: convertHexToDecimal(match[4] + '' + match[4]),\n            format: named ? \"name\" : \"hex8\"\n        };\n    }\n    if ((match = matchers.hex3.exec(color))) {\n        return {\n            r: parseIntFromHex(match[1] + '' + match[1]),\n            g: parseIntFromHex(match[2] + '' + match[2]),\n            b: parseIntFromHex(match[3] + '' + match[3]),\n            format: named ? \"name\" : \"hex\"\n        };\n    }\n\n    return false;\n}\n\nfunction validateWCAG2Parms(parms) {\n    // return valid WCAG2 parms for isReadable.\n    // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n    var level, size;\n    parms = parms || {\"level\":\"AA\", \"size\":\"small\"};\n    level = (parms.level || \"AA\").toUpperCase();\n    size = (parms.size || \"small\").toLowerCase();\n    if (level !== \"AA\" && level !== \"AAA\") {\n        level = \"AA\";\n    }\n    if (size !== \"small\" && size !== \"large\") {\n        size = \"small\";\n    }\n    return {\"level\":level, \"size\":size};\n}\n\n// Node: Export function\nif (typeof module !== \"undefined\" && module.exports) {\n    module.exports = tinycolor;\n}\n// AMD/requirejs: Define the module\nelse if (typeof define === 'function' && define.amd) {\n    define(function () {return tinycolor;});\n}\n// Browser: Expose to window\nelse {\n    window.tinycolor = tinycolor;\n}\n\n})(Math);\n","/** @license React vundefined\n * use-subscription.production.min.js\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'use strict';var e=require(\"object-assign\"),g=require(\"react\");\nexports.useSubscription=function(a){var c=a.getCurrentValue,d=a.subscribe,b=g.useState(function(){return{getCurrentValue:c,subscribe:d,value:c()}});a=b[0];var f=b[1];b=a.value;if(a.getCurrentValue!==c||a.subscribe!==d)b=c(),f({getCurrentValue:c,subscribe:d,value:b});g.useDebugValue(b);g.useEffect(function(){function b(){if(!a){var b=c();f(function(a){return a.getCurrentValue!==c||a.subscribe!==d||a.value===b?a:e({},a,{value:b})})}}var a=!1,h=d(b);b();return function(){a=!0;h()}},[c,d]);return b};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/use-subscription.production.min.js');\n} else {\n  module.exports = require('./cjs/use-subscription.development.js');\n}\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\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'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n  var printWarning = function printWarning(format, args) {\n    var len = arguments.length;\n    args = new Array(len > 1 ? len - 1 : 0);\n    for (var key = 1; key < len; key++) {\n      args[key - 1] = arguments[key];\n    }\n    var argIndex = 0;\n    var message = 'Warning: ' +\n      format.replace(/%s/g, function() {\n        return args[argIndex++];\n      });\n    if (typeof console !== 'undefined') {\n      console.error(message);\n    }\n    try {\n      // --- Welcome to debugging React ---\n      // This error was thrown as a convenience so that you can use this stack\n      // to find the callsite that caused this warning to fire.\n      throw new Error(message);\n    } catch (x) {}\n  }\n\n  warning = function(condition, format, args) {\n    var len = arguments.length;\n    args = new Array(len > 2 ? len - 2 : 0);\n    for (var key = 2; key < len; key++) {\n      args[key - 2] = arguments[key];\n    }\n    if (format === undefined) {\n      throw new Error(\n          '`warning(condition, format, ...args)` requires a warning ' +\n          'message argument'\n      );\n    }\n    if (!condition) {\n      printWarning.apply(null, [format].concat(args));\n    }\n  };\n}\n\nmodule.exports = warning;\n","export default function _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}"],"names":["_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","WarningIcon","props","viewBox","fill","d","STATUSES","info","icon","colorScheme","warning","success","error","AlertProvider","useAlertContext","name","errorMessage","Alert","ref","_props$colorScheme","_omitThemingProps","status","rest","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","styles","alertStyles","width","display","alignItems","position","overflow","container","value","role","className","cx","__css","AlertTitle","title","AlertDescription","descriptionStyles","description","AlertIcon","BaseIcon","w","h","CloseIcon","focusable","CloseButton","children","isDisabled","type","disabled","outline","justifyContent","flexShrink","height","displayName","classNames","mockBody","classList","add","remove","syncBodyClassName","isDark","body","document","queries","getColorScheme","fallback","_getMediaQuery","query","mediaQueryList","window","matchMedia","media","matches","getMediaQuery","root","documentElement","style","getPropertyValue","mode","setProperty","hasSupport","Storage","storageKey","localStorageManager","get","init","_value","localStorage","getItem","console","log","set","setItem","ColorModeContext","useColorMode","context","undefined","Error","ColorModeProvider","options","useSystemColorMode","initialColorMode","colorModeManager","colorMode","rawSetColorMode","setColorMode","toggleColorMode","removeListener","fn","listener","addListener","Provider","useColorModeValue","light","dark","ControlBox","_hover","_invalid","_disabled","_focus","_checked","_child","opacity","_checkedAndChild","_checkedAndDisabled","_checkedAndFocus","_checkedAndHover","checkedAndDisabled","checkedAndHover","checkedAndFocus","focus","hover","checked","invalid","child","transitionProperty","transitionDuration","useCallbackRef","deps","current","_len","args","Array","_key","defaultIdContext","prefix","Math","round","random","IdContext","IdProvider","_ref","currentContext","isRoot","useId","idProp","filter","Boolean","join","useIds","prefixes","id","map","useSafeLayoutEffect","useUpdateEffect","effect","mounted","fallbackIcon","path","stroke","strokeWidth","strokeLinecap","strokeMiterlimit","cy","r","Icon","as","element","color","shared","lineHeight","_viewBox","_path","verticalAlign","PortalManagerContextProvider","usePortalManager","strict","PortalManager","zIndex","createContext","Context","useContext","captureStackTrace","toConfig","scale","transform","property","result","getRtl","rtl","ltr","theme","direction","transformTemplate","filterTemplate","backdropFilterTemplate","backdropFilter","flexDirectionTemplate","space","divide","owlSelector","spaceXTemplate","marginInlineStart","marginInlineEnd","spaceYTemplate","marginTop","marginBottom","_wrapRegExp","re","groups","BabelRegExp","_RegExp","_wrapNativeSuper","RegExp","_super","_groups","WeakMap","flags","_this","buildGroups","g","reduce","create","_inherits","exec","str","Symbol","replace","substitution","_","push","subClass","superClass","TypeError","constructor","writable","configurable","_setPrototypeOf","Class","_cache","Map","Function","toString","has","Wrapper","_construct","_getPrototypeOf","enumerable","Parent","_isNativeReflectConstruct","Reflect","construct","a","instance","bind","sham","Proxy","Date","e","o","p","setPrototypeOf","__proto__","getPrototypeOf","directionMap","valueSet","Set","values","globalSet","trimSpace","trim","isCSSFunction","includes","wrap","transformFunctions","ring","boxShadow","getRingTemplate","px","bgClip","backgroundClip","unitless","num","parseFloat","unit","String","analyzeCSSValue","fraction","float","left","right","degree","endsWith","gradient","_regex$exec$groups","_regex$exec","regex","_type","maybeDirection","stops","split","unshift","_values","stop","firstStop","_color","_stop","substr","_stopOrFunc","__cssMap","varRef","parseGradient","blur","brightness","contrast","dropShadow","grayscale","hueRotate","invert","saturate","sepia","bgImage","isNoneOrZero","outlineOffset","flexDirection","_flexDirectionTemplat","t","borderWidths","borderStyles","colors","borders","radii","spaceT","degreeT","prop","propT","sizes","sizesT","shadows","logical","compose","background","backgroundColor","backgroundImage","backgroundSize","backgroundPosition","backgroundRepeat","backgroundAttachment","bgSize","bgPosition","bg","bgColor","bgPos","bgRepeat","bgAttachment","bgGradient","bgImg","border","borderWidth","borderStyle","borderColor","borderRadius","borderTop","borderBlockStart","borderTopLeftRadius","borderStartStartRadius","borderEndStartRadius","borderTopRightRadius","borderStartEndRadius","borderEndEndRadius","borderRight","borderInlineEnd","borderBottom","borderBlockEnd","borderBottomLeftRadius","borderBottomRightRadius","borderLeft","borderInlineStart","borderInlineStartRadius","borderInlineEndRadius","borderX","borderInline","borderY","borderBlock","borderTopWidth","borderBlockStartWidth","borderTopColor","borderBlockStartColor","borderTopStyle","borderBlockStartStyle","borderBottomWidth","borderBlockEndWidth","borderBottomColor","borderBlockEndColor","borderBottomStyle","borderBlockEndStyle","borderLeftWidth","borderInlineStartWidth","borderLeftColor","borderInlineStartColor","borderLeftStyle","borderInlineStartStyle","borderRightWidth","borderInlineEndWidth","borderRightColor","borderInlineEndColor","borderRightStyle","borderInlineEndStyle","borderTopRadius","borderBottomRadius","borderLeftRadius","borderRightRadius","rounded","roundedTop","roundedTopLeft","roundedTopRight","roundedTopStart","roundedTopEnd","roundedBottom","roundedBottomLeft","roundedBottomRight","roundedBottomStart","roundedBottomEnd","roundedLeft","roundedRight","roundedStart","roundedEnd","borderStart","borderEnd","borderTopStartRadius","borderTopEndRadius","borderBottomStartRadius","borderBottomEndRadius","borderStartRadius","borderEndRadius","borderStartWidth","borderEndWidth","borderStartColor","borderEndColor","borderStartStyle","borderEndStyle","textColor","mixBlendMode","blendMode","backgroundBlendMode","bgBlendMode","shadow","backdropBlur","backdropBrightness","backdropContrast","backdropHueRotate","backdropInvert","backdropSaturate","flexbox","alignContent","justifyItems","flexWrap","experimental_spaceX","static","experimental_spaceY","flex","flexFlow","flexGrow","flexBasis","justifySelf","alignSelf","order","placeItems","placeContent","placeSelf","flexDir","grid","gridGap","gridColumnGap","gridRowGap","gridColumn","gridRow","gridAutoFlow","gridAutoColumns","gridColumnStart","gridColumnEnd","gridRowStart","gridRowEnd","gridAutoRows","gridTemplate","gridTemplateColumns","gridTemplateRows","gridTemplateAreas","gridArea","interactivity","appearance","cursor","resize","userSelect","pointerEvents","outlineColor","layout","inlineSize","blockSize","boxSize","minWidth","minInlineSize","minHeight","minBlockSize","maxWidth","maxInlineSize","maxHeight","maxBlockSize","overflowX","overflowY","overscrollBehavior","overscrollBehaviorX","overscrollBehaviorY","boxSizing","boxDecorationBreak","objectFit","objectPosition","visibility","isolation","minW","maxW","minH","maxH","overscroll","overscrollX","overscrollY","list","listStyleType","listStylePosition","listStylePos","listStyleImage","listStyleImg","srOnly","clip","margin","padding","whiteSpace","srFocusable","getWithPriority","obj","others","layerStyle","processResult","textStyle","pos","inset","insetX","insetInline","insetY","insetBlock","top","insetBlockStart","bottom","insetBlockEnd","insetInlineStart","insetInlineEnd","insetStart","insetEnd","ringColor","ringOffset","ringOffsetColor","ringInset","marginBlockStart","marginRight","marginBlockEnd","marginLeft","marginX","marginInline","marginY","marginBlock","paddingTop","paddingBlockStart","paddingRight","paddingBottom","paddingBlockEnd","paddingLeft","paddingInlineStart","paddingInlineEnd","paddingX","paddingInline","paddingY","paddingBlock","m","mt","mr","me","marginEnd","mb","ml","ms","marginStart","mx","my","pt","py","pb","pl","ps","paddingStart","pr","pe","paddingEnd","textDecoration","textDecorationColor","textDecor","textDecorationLine","textDecorationStyle","textDecorationThickness","textUnderlineOffset","textShadow","clipPath","transformOrigin","translateX","translateY","skewX","skewY","scaleX","scaleY","rotate","transition","transitionDelay","animation","willChange","transitionTimingFunction","typography","fontFamily","fontSize","fontWeight","letterSpacing","textAlign","fontStyle","wordBreak","overflowWrap","textOverflow","textTransform","noOfLines","WebkitBoxOrient","WebkitLineClamp","isTruncated","resolveReference","operand","reference","toExpression","operator","operands","_add","_len2","_key2","_subtract","_len3","_key3","_multiply","_len4","_key4","_divide","_len5","_key5","_negate","x","Number","isNaN","startsWith","slice","calc","_len6","_key6","subtract","_len7","_key7","multiply","_len8","_key8","_len9","_key9","negate","valueStr","replaceValue","replaceWhiteSpace","isInteger","toVarReference","toVarDefinition","addPrefix","cssVar","cssVarPrefix","cssVariable","variable","createThemeVars","cssMap","cssVars","predicate","inner","item","index","fromEntries","entries","walkObject","_tokenHandlerMap$firs","firstKey","handler","tokenHandlerMap","defaultHandler","properties","referenceKeys","negativeLookupKey","negativeVarKey","negativeValue","var","lookupKey","varKey","tokens","extractTokens","_tokens","omitVars","rawTheme","toCSSVar","_theme$config","config","__cssVars","__breakpoints","breakpoints","isCSSVariableTokenValue","resolveTokenValue","_getVar2","getVar","val","_theme$__cssMap","_theme$__cssMap$val","getValue","_getVar","valueSplit","v","tokenValue","fallbackValue","getCss","configs","pseudos","css","stylesOrFn","nested","_styles","isResponsive","toArrayValue","medias","computedStyles","isArray","expandResponsive","_config$transform","_config","_config2","_config3","_config4","valueOrFn","_computedStyles$key","rawValue","configProperty","staticStyles","system","cssFn","group","selector","toGroup","merge","selectors","pseudoSelectors","_active","_highlighted","_focusWithin","_focusVisible","_readOnly","_before","_after","_empty","_expanded","_grabbed","_pressed","_valid","_loading","_selected","_hidden","_autofill","_even","_odd","_first","_last","_notFirst","_notLast","_visited","_activeLink","_activeStep","_indeterminate","_groupHover","_groupFocus","_groupActive","_groupDisabled","_groupInvalid","_groupChecked","_placeholder","_fullScreen","_selection","_rtl","_mediaDark","_dark","_light","pseudoPropNames","systemProps","layoutSystem","layoutPropNames","propNames","styleProps","isStyleProp","tokenToCSSVar","createTransform","_transform","forwardRef","component","useChakra","ThemeProvider","cssVarsRoot","computedTheme","useTheme","T","StylesProvider","useStyles","GlobalStyle","styleObjectOrFn","globalStyles","allPropNames","validHTMLProps","shouldForwardProp","chakra","_ref2","baseStyle","styledOptions","styleObject","cssProp","sx","object","finalBaseStyle","finalStyles","computedCSS","toCSSObject","tag","domElements","omitThemingProps","useStyleConfig","themeKey","opts","_styleConfig$defaultP","styleConfig","styleConfigProp","themeStyleConfig","mergedProps","defaultProps","stylesRef","useRef","_styleConfig$baseStyl","_styleConfig$variants","_styleConfig$variants2","_styleConfig$sizes$me","_styleConfig$sizes","_opts","baseStyles","variants","variant","size","isMultiPart","parts","forEach","part","_styles$part","useMultiStyleConfig","hasElementType","Element","hasMap","hasSet","hasArrayBuffer","ArrayBuffer","isView","equal","b","it","next","done","valueOf","$$typeof","module","exports","message","match","warn","orient","orientation","vertical","horizontal","createBreakpoints","condition","base","_defineProperty","defineProperty","Anatomy","called","assert","toPart","anatomy","accordionAnatomy","extend","alertAnatomy","avatarAnatomy","breadcrumbAnatomy","checkboxAnatomy","drawerAnatomy","editableAnatomy","formAnatomy","formErrorAnatomy","inputAnatomy","listAnatomy","menuAnatomy","modalAnatomy","numberInputAnatomy","popoverAnatomy","progressAnatomy","radioAnatomy","selectAnatomy","sliderAnatomy","statAnatomy","switchAnatomy","tableAnatomy","tabsAnatomy","tagAnatomy","button","panel","getColor","hex","isValid","tone","transparentize","raw","setAlpha","toRgbString","generateStripe","randomColor","toHexString","string","charCodeAt","randomColorFromList","hash","j","randomColorFromString","floor","randomFromList","getBg","c","lightBg","darkBg","subtle","solid","baseStyleBadge","baseStyleExcessLabel","isBgDark","getSize","themeSize","excessLabel","label","xs","sm","md","lg","xl","full","badge","darkColor","lightColor","link","variantGhost","darkHoverBg","darkActiveBg","accessibleColorMap","yellow","hoverBg","activeBg","cyan","ghost","_accessibleColorMap$c","_bg","unstyled","baseStyleControl","baseStyleLabel","control","isDecimal","toVarRef","toVar","getFallback","$size","dashed","dialog","baseStyleOverlay","baseStyleDialogContainer","baseStyleDialog","isFullHeight","baseStyleHeader","baseStyleCloseButton","baseStyleBody","baseStyleFooter","overlay","dialogContainer","header","closeButton","footer","preview","input","baseStyleRequiredIndicator","baseStyleHelperText","requiredIndicator","helperText","field","addon","getDefaults","focusBorderColor","fc","errorBorderColor","ec","filled","flushed","baseStyleList","baseStyleItem","baseStyleGroupTitle","baseStyleCommand","baseStyleDivider","groupTitle","command","divider","isCentered","scrollBehavior","toRef","_Input$baseStyle$fiel","_Input$baseStyle","toExpr","$stepperWidth","$inputPadding","inputPaddingValue","baseStyleRoot","baseStyleField","baseStyleStepperGroup","baseStyleStepper","_sizeStyle$field$font","_sizeStyle$field","sizeStyle","radius","_fontSize","stepper","_Input$variants$unsty","stepperGroup","_Input$variants$outli","_Input$variants$flush","_Input$variants$fille","$popperBg","$arrowBg","$arrowShadowColor","baseStylePopper","baseStyleContent","shadowColor","popper","content","arrow","baseStyleTrack","baseStyleFilledTrack","isIndeterminate","hasStripe","stripeStyle","filledStyle","track","filledTrack","fade","startColor","endColor","from","to","defaultStartColor","defaultEndColor","speed","start","end","baseStyleThumb","thumbOrientation","thumb","helpText","number","$width","$height","$diff","diffValue","$translateX","_Input$sizes$xs$field","_Input$sizes$sm$field","_Input$sizes$md$field","_Input$sizes$lg$field","numericStyles","simple","th","td","caption","tfoot","tr","striped","tbody","table","fontVariantNumeric","borderCollapse","baseStyleTab","isFitted","baseStyleTablist","align","center","baseStyleTabpanel","line","borderProp","tablist","tab","enclosed","tabpanel","$bg","baseStyleText","text","Accordion","Avatar","Badge","Breadcrumb","Button","Checkbox","Code","Container","Divider","Drawer","Editable","Form","FormLabel","Heading","Input","Kbd","Link","List","Menu","Modal","NumberInput","PinInput","Popover","Progress","Radio","Select","Skeleton","SkipLink","Slider","Spinner","Stat","Switch","Table","Tabs","Tag","Textarea","Tooltip","FormError","none","transparent","black","white","whiteAlpha","blackAlpha","gray","red","orange","green","teal","blue","purple","pink","linkedin","facebook","messenger","whatsapp","twitter","telegram","common","dimensions","easing","duration","faster","fast","normal","slow","slower","zIndices","hide","auto","docked","dropdown","sticky","banner","modal","popover","skipLink","toast","tooltip","spacing","max","min","letterSpacings","tighter","tight","wide","wider","widest","lineHeights","shorter","short","tall","taller","fontWeights","hairline","thin","medium","semibold","bold","extrabold","fonts","heading","mono","fontSizes","components","global","wordWrap","VisuallyHidden","_ref$as","Comp","_ref$style","createElement","canUseDOM","useLayoutEffect","useEffect","self","assignRef","isFunction","forwardRefWithAs","render","getOwnerDocument","ownerDocument","renderTimer","polite","assertive","liveRegions","forwardedRef","_ref$type","regionType","ownRef","refs","useMemo","every","node","concat","useForkedRef","prevType","usePrevious","mirror","unmount","createMirror","mount","update","useMirrorEffects","doc","renderAlerts","setAttribute","appendChild","clearTimeout","setTimeout","elementType","cloneElement","findToast","toasts","getToastPosition","findIndex","_Object$values$flat$f","flat","find","toastMotionVariants","initial","dir","factor","animate","y","ease","exit","Toast","onCloseComplete","onRequestRemove","requestClose","delay","setDelay","isPresent","close","callback","timeoutId","useTimeout","getToastStyle","motion","onHoverStart","onHoverEnd","custom","onClose","ToastManager","super","createToast","setState","prevToasts","prevState","nextState","_temp","positions","prev","acc","_options$id","_options$position","counter","removeToast","state","methods","notify","closeAll","closeToast","updateToast","isActive","isVisible","getStyle","AnimatePresence","portalId","removeAll","isToastActive","_this$closeToast","_this$removeAll","_this$isToastActive","portal","existingPortal","getElementById","_document$body","div","bindFunctions","isClosable","onClick","defaultStandaloneParam","defaultOptions","useToast","renderWithProviders","toastImpl","createStandaloneToast","getLastItem","array","addItem","removeItem","eachItem","getNextItemFromSearch","items","searchString","itemToString","currentItem","toLowerCase","nextIndex","matchingItems","isNumber","isUndefined","isObject","isEmptyObject","isNull","isString","isCssVar","test","__DEV__","isRefObject","isInputEvent","sortByBreakpointValue","parseInt","sortBps","sort","normalize","sorted","queryString","analyzeBreakpoints","_breakpoints$base","normalized","entry","_entry","breakpoint","_px","maxWQuery","minWQuery","minMaxQuery","_keys","_keysArr","asObject","asArray","details","bp","_test$bp","pop","toObjectValue","isElement","el","nodeType","Node","ELEMENT_NODE","isHTMLElement","_el$ownerDocument$def","defaultView","HTMLElement","_node$ownerDocument","getEventWindow","event","_view","view","isBrowser","dataAttr","ariaAttr","getActiveElement","activeElement","contains","parent","normalizeEventKey","keyCode","getRelatedTarget","_event$target","_event$relatedTarget","currentTarget","originalTarget","nativeEvent","explicitOriginalTarget","relatedTarget","isRightClick","runIfFn","callAllHandlers","fns","some","defaultPrevented","callAll","arg","once","noop","pipe","omit","pick","picked","omitted","memoizedGet","cache","memoize","objectFilter","filterUndefined","objectKeys","carry","SignInButton","tslib_1","react_1","__importDefault","utils_1","withClerk_1","withClerk","_a","clerk","__rest","afterSignInUrl","afterSignUpUrl","redirectUrl","normalizeWithDefaultValue","assertSingleChild","childProps","async","safeExecute","openSignIn","redirectToSignIn","clickHandler","default","SignInWithMetamaskButton","authenticateWithMetamask","authenticate","SignOutButton","signOutCallback","signOutOptions","signOut","SignUpButton","openSignUp","redirectToSignUp","MultisessionAppSupport","AuthenticateWithRedirectCallback","RedirectToUserProfile","RedirectToSignUp","RedirectToSignIn","ClerkLoading","ClerkLoaded","SignedOut","SignedIn","AuthContext_1","IsomorphicClerkContext_1","SessionContext_1","StructureContext_1","userId","useAuthContext","Fragment","useIsomorphicClerkContext","loaded","LoadedGuarantee","client","session","__unstable__environment","hasActiveSessions","activeSessions","afterSignOutOneUrl","displayConfig","navigate","redirectToUserProfile","handleRedirectCallbackParams","handleRedirectCallback","useSessionContext","UserButton","UserProfile","SignIn","SignUp","uiComponents_1","controlComponents_1","__exportStar","Portal","PureComponent","portalRef","createRef","componentDidMount","componentWillUnmount","mountSignIn","unmountSignIn","mountSignUp","unmountSignUp","mountUserProfile","unmountUserProfile","mountUserButton","unmountUserButton","WithClerk","errors_1","Component","HOC","hocChildrenNotAFunctionError","WithSession","withSession","WithUser","withUser","UserContext_1","user","useUserContext","AuthContext","makeContextAndHook","ClerkContextProvider","isomorphicClerk_1","ClientContext_1","isomorphicClerkOptions","initialState","isomorphicClerk","clerkLoaded","useLoadedIsomorphicClerk","useState","derivedState","sessionId","deriveState","clerkCtx","clientCtx","authCtx","userCtx","sessionCtx","IsomorphicClerkContext","ClientContext","SessionContext","UserContext","setLoaded","getOrCreateInstance","addOnLoaded","ClerkProvider","ClerkContextProvider_1","withMaxAllowedInstancesGuard","Clerk","frontendApi","StructureContext","StructureContextStates","noGuarantees","multipleClerkProvidersError","useClientContext","assertHelpers_1","freeze","guaranteedLoaded","structureCtx","assertWrappedByClerkProvider","useStructureContext","assertClerkLoadedGuarantee","contextVal","noClerkProviderError","guarantee","hookName","noGuaranteedLoadedError","ClerkProvider_1","invalidStateError","isMagicLinkError","MagicLinkErrorCode","multipleChildrenInButtonComponent","noGuaranteedUserError","noFrontendApiError","Expired","Failed","err","code","useAuth","getToken","createGetToken","createSignOut","isLoaded","isSignedIn","useClerk","useMagicLink","resource","startMagicLinkFlow","cancelMagicLinkFlow","createMagicLinkFlow","useOrganizations","createOrganization","getOrganizationMemberships","getOrganization","useSession","useSessionList","sessions","setSession","useSignIn","signIn","useSignUp","signUp","useUser","Promise","resolve","useMagicLink_1","LIB_NAME","LIB_VERSION","_IsomorphicClerk_loaded","_IsomorphicClerk_instance","IsomorphicClerk","params","clerkjs","preopenSignIn","preopenSignUp","premountSignInNodes","premountSignUpNodes","premountUserProfileNodes","premountUserButtonNodes","premountMethodCalls","loadedListeners","cb","emitLoaded","hydrateClerkJS","__classPrivateFieldSet","beforeEmit","reject","__classPrivateFieldGet","closeSignIn","closeSignUp","delete","userButtonProps","_b","handleMagicLinkVerification","organizationId","signOutCallbackOrOptions","inClientSide","loadClerkJS","throwError","isConstructor","load","isReady","loadScript","scriptUrl","clerkJSUrl","scriptVariant","clerkJSVariant","errorMsg","version","Children","only","defaultText","f","assertCtxFn","Ctx","ctx","info_1","UNSTABLE_RELEASE_TAGS","getScriptSrc","getUrlForTag","forceStagingReleaseForClerkFapi","nonStableTag","packageVersion","extractNonStableTag","script","src","addEventListener","useMaxAllowedInstancesGuard","counts","maxCount","count","WrappedComponent","Hoc","extendStatics","__extends","__","__assign","s","n","getOwnPropertySymbols","propertyIsEnumerable","__decorate","decorators","desc","getOwnPropertyDescriptor","decorate","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","metadata","__awaiter","thisArg","_arguments","P","generator","fulfilled","step","rejected","then","__generator","sent","trys","ops","verb","iterator","op","__createBinding","k","k2","__esModule","__values","__read","ar","__spread","__spreadArrays","il","jl","__spreadArray","pack","l","__await","__asyncGenerator","asyncIterator","q","resume","fulfill","settle","shift","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","__setModuleDefault","__importStar","mod","receiver","kind","__classPrivateFieldIn","clerk_react_1","router_1","__clerk_ssr_state","restProps","useRouter","process","env","NEXT_PUBLIC_CLERK_JS","abs","fromCharCode","pattern","replacement","indexof","search","begin","column","character","characters","return","copy","peek","caret","token","alloc","dealloc","delimit","delimiter","whitespace","escaping","commenter","identifier","MS","MOZ","WEBKIT","COMMENT","DECLARATION","serialize","output","stringify","compile","parse","rule","rules","rulesets","pseudo","points","declarations","offset","atrule","previous","scanning","ampersand","comment","declaration","ruleset","post","z","getRules","parsed","toRules","fixedElements","compat","isImplicitRule","parentRules","removeLabel","defaultStylisPlugins","ssrStyles","querySelectorAll","getAttribute","head","stylisPlugins","_insert","inserted","nodesToHydrate","attrib","currentSheet","finalizingPlugins","insert","serializer","collection","middleware","serialized","sheet","shouldCache","nonce","speedy","prepend","registered","hydrate","func","ret","EmotionCacheContext","CacheProvider","withEmotionCache","ThemeContext","createCacheWithTheme","outerTheme","getTheme","typePropName","createEmotionProps","newProps","Emotion","registeredStyles","jsx","argsLength","createElementArgArray","E","Global","sheetRef","isSpeedy","rehydrating","querySelector","tags","before","flush","sheetRefCurrent","nextElementSibling","keyframes","insertable","anim","classnames","len","cls","toAdd","rawClassName","ClassNames","ele","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flexPositive","flexNegative","flexOrder","gridRowSpan","gridColumnSpan","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","orphans","tabSize","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeOpacity","hyphenateRegex","animationRegex","isCustomProperty","isProcessableValue","processStyleName","styleName","processStyleValue","p1","p2","handleInterpolation","interpolation","__emotion_styles","interpolated","_i","createStringFromObject","previousCursor","cached","labelPattern","serializeStyles","stringMode","strings","lastIndex","identifierName","StyleSheet","_insertTag","firstChild","nextSibling","insertBefore","ctr","_proto","nodes","createTextNode","createStyleElement","styleSheets","ownerNode","sheetForTag","insertRule","cssRules","parentNode","removeChild","reactPropsRegex","testOmitPropsOnStringTag","testOmitPropsOnComponent","getDefaultShouldForwardProp","composeShouldForwardProps","isReal","optionsShouldForwardProp","__emotion_forwardProp","propName","createStyled","targetClassName","__emotion_real","baseTag","__emotion_base","defaultShouldForwardProp","shouldUseAs","Styled","finalTag","classInterpolations","finalShouldForwardProp","withComponent","nextTag","nextOptions","newStyled","tagName","getRegisteredStyles","insertStyles","isStringTag","__SENTRY_DEBUG__","installedIntegrations","filterDuplicates","integrations","accIntegration","getIntegrationsToSetup","defaultIntegrations","userIntegrations","userIntegration","integrationsNames","alwaysLastToRun","splice","DEFAULT_IGNORE_ERRORS","InboundFilters","__init","_options","setupOnce","addGlobalEventProcessor","getCurrentHub","eventProcess","hub","getIntegration","getClient","clientOptions","getOptions","internalOptions","allowUrls","denyUrls","ignoreErrors","ignoreInternal","_mergeOptions","exception","_isSentryError","oO","_getPossibleEventMessages","_isIgnoredError","url","_getEventFilterUrl","_isDeniedUrl","_isAllowedUrl","_shouldDropEvent","frames","stacktrace","frame","filename","_getLastValidUrl","__initStatic","originalFunctionToString","FunctionToString","_optionalChain","lastAccessLHS","SentryError","DSN_REGEX","dsn","withPassword","host","pass","port","projectId","protocol","publicKey","dsnFromString","lastPath","projectMatch","dsnFromComponents","isValidProtocol","validateDsn","createEnvelope","headers","addItemToEnvelope","envelope","newItem","forEachEnvelopeItem","envelopeItem","envelopeItemType","encodeUTF8","textEncoder","TextEncoder","encode","serializeEnvelope","envHeaders","JSON","append","itemHeaders","payload","Uint8Array","buffers","totalLength","buf","merged","buffer","concatBuffers","createAttachmentEnvelopeItem","attachment","data","content_type","contentType","attachment_type","attachmentType","ITEM_TYPE_TO_DATA_CATEGORY_MAP","transaction","client_report","user_report","envelopeItemTypeToDataCategory","depth","Infinity","maxProperties","visit","ERROR","normalizeToSize","maxSize","encodeURI","utf8Length","memo","unmemoize","valueWithToJSON","toJSON","is","stringified","_events","stringifyValue","numAdded","visitable","visitKey","visitValue","getBaseApiEndpoint","getEnvelopeEndpointWithUrlEncodedAuth","tunnel","_getIngestEndpoint","sentry_key","sentry_version","_encodedAuth","getSdkMetadataForEnvelopeHeader","sdk","createEventEnvelope","sdkInfo","eventType","transactionSampling","sdkProcessingMetadata","method","samplingMethod","rate","sampleRate","packages","enhanceEventWithSdkInfo","extra","baseClientNormalized","skippedNormalization","normalizeDepth","envelopeHeaders","event_id","sent_at","toISOString","contexts","trace","trace_id","environment","release","segment","public_key","createEventEnvelopeHeaders","sample_rates","ALREADY_SEEN_ERROR","BaseClient","_integrations","__init2","_integrationsInitialized","__init3","_numProcessing","__init4","_outcomes","_dsn","_transport","transport","recordDroppedEvent","transportOptions","captureException","hint","scope","eventId","_process","eventFromException","_captureEvent","captureMessage","level","promisedEvent","eventFromMessage","captureEvent","originalException","captureSession","_isEnabled","sendSession","getDsn","getTransport","timeout","_isClientDoneProcessing","clientFinished","transportFlushed","enabled","setupIntegrations","integrationIndex","integration","getIntegrationById","integrationId","_oO","sendEvent","_metadata","attachments","_2","_3","_sendEnvelope","createSessionEnvelope","reason","category","sendClientReports","_updateSessionFromEvent","crashed","errored","exceptions","ex","mechanism","handled","sessionNonTerminal","errors","ticked","interval","setInterval","clearInterval","_prepareEvent","normalizeMaxBreadth","prepared","timestamp","_applyClientOptions","_applyIntegrationsMetadata","finalScope","captureContext","getAttachments","applyToEvent","evt","_normalizeEvent","maxBreadth","breadcrumbs","dist","maxValueLength","request","integrationsArray","_processEvent","finalEvent","beforeSend","isTransaction","__sentry__","rv","nullErr","_ensureBeforeSendRv","processedEvent","getSession","promise","send","_clearOutcomes","outcomes","quantity","exceptionFromError","stackParser","parseStackFrames","extractMessage","eventFromError","stack","popSize","framesToPop","reactMinifiedRegexp","getPopSize","eventFromUnknownInput","syntheticException","attachStacktrace","isUnhandledRejection","domException","eventFromString","__serialized__","eventFromPlainObject","synthetic","validSeverityLevels","severityLevelFromString","BREADCRUMB_INTEGRATION_ID","Breadcrumbs","dom","fetch","history","sentry","xhr","_consoleBreadcrumb","_innerDomBreadcrumb","handlerData","keyAttrs","serializeAttribute","addBreadcrumb","_domBreadcrumb","_xhrBreadcrumb","_fetchBreadcrumb","_historyBreadcrumb","breadcrumb","logger","endTimestamp","__sentry_own_request__","status_code","__sentry_xhr__","fetchData","response","parsedLoc","location","href","parsedFrom","parsedTo","relative","cachedFetchImpl","getNativeFetchImplementation","fetchImpl","sandbox","hidden","contentWindow","globalObject","BrowserClient","visibilityState","_flushOutcomes","breadcrumbIntegration","platform","discarded_events","navigator","sendBeacon","supports","credentials","keepalive","sendReport","UNKNOWN_FUNCTION","createFrame","lineno","colno","function","in_app","chromeRegex","chromeEvalRegex","geckoREgex","geckoEvalRegex","winjsRegex","defaultStackLineParsers","subMatch","extractSafariExtensionDetails","defaultStackParser","isSafariExtension","isSafariWebExtension","ignoreOnError","shouldIgnoreOnError","ignoreNextOnError","wrapper","__sentry_wrapped__","sentryWrapped","wrappedArguments","addEventProcessor","DEFAULT_EVENT_TARGET","TryCatch","XMLHttpRequest","eventTarget","requestAnimationFrame","_wrapTimeFunction","_wrapRAF","_wrapXHR","eventTargetOption","_wrapEventTarget","original","originalCallback","originalSend","wrapOptions","originalFunction","proto","eventName","handleEvent","originalRemoveEventListener","wrappedEventHandler","originalEventHandler","GlobalHandlers","_installFunc","onerror","_installGlobalOnErrorHandler","onunhandledrejection","_installGlobalOnUnhandledRejectionHandler","stackTraceLimit","installFunc","getHubAndOptions","msg","ERROR_TYPES_RE","_enhanceEventWithInitialFrame","_eventFromIncompleteOnError","addMechanismAndCapture","detail","ev","ev0","ev0s","ev0sf","LinkedErrors","_limit","limit","parser","linkedErrors","_walkErrorTree","_handler","Dedupe","eventProcessor","currentEvent","previousEvent","currentMessage","previousMessage","_isSameFingerprint","_isSameStacktrace","_isSameMessageEvent","previousException","_getExceptionFromEvent","currentException","_isSameExceptionEvent","_previousEvent","currentFrames","_getFramesFromEvent","previousFrames","frameA","frameB","currentFingerprint","fingerprint","previousFingerprint","HttpContext","referrer","userAgent","Referer","makePromiseBuffer","task","$","taskProducer","drain","capturedSetTimeout","updateRateLimits","limits","statusCode","now","updatedRateLimits","rateLimitHeader","retryAfterHeader","retryAfter","categories","headerDelay","all","headerDate","parseRetryAfterHeader","createTransport","makeRequest","bufferSize","rateLimits","filteredEnvelopeItems","envelopeItemDataCategory","disabledUntil","isRateLimited","filteredEnvelope","recordEnvelopeLoss","makeFetchTransport","nativeFetch","requestOptions","referrerPolicy","fetchOptions","makeXHRTransport","onreadystatechange","readyState","getResponseHeader","open","setRequestHeader","SENTRY_RELEASE","autoSessionTracking","clientClass","debug","getScope","initialScope","bindClient","initAndBind","startSessionOnHub","startSessionTracking","startSession","ignoreDuration","SDK_VERSION","configureScope","withScope","IS_DEBUG_BUILD","DEFAULT_BREADCRUMBS","Hub","_stack","_version","getStackTop","isOlderThan","pushScope","getStack","popScope","_lastEventId","_withClient","lastEventId","beforeBreadcrumb","maxBreadcrumbs","mergedBreadcrumb","finalBreadcrumb","setUser","setTags","setExtras","extras","setTag","setExtra","setContext","run","oldHub","makeMain","startTransaction","customSamplingContext","_callExtensionMethod","traceHeaders","endSession","_sendSessionUpdate","layer","getUser","currentSession","getMainCarrier","__SENTRY__","extensions","carrier","registry","getHubFromCarrier","setHubOnCarrier","hasHubOnCarrier","activeDomain","domain","active","registryHubTopStack","_Oo","getHubFromActiveDomain","Scope","__init5","__init6","__init7","__init8","__init9","__init10","_notifyingListeners","_scopeListeners","_eventProcessors","_breadcrumbs","_user","_tags","_extra","_contexts","_attachments","_sdkProcessingMetadata","newScope","_level","_span","_session","_transactionName","_fingerprint","_requestSession","addScopeListener","_notifyScopeListeners","getRequestSession","setRequestSession","requestSession","setFingerprint","setLevel","setTransactionName","setSpan","span","getSpan","getTransaction","updatedScope","clear","maxCrumbs","clearBreadcrumbs","addAttachment","clearAttachments","getTraceContext","transactionName","_applyFingerprint","_notifyEventProcessors","getGlobalEventProcessors","setSDKProcessingMetadata","newData","processors","processor","final","makeSession","startingTime","sid","started","did","attrs","ip_address","ipAddress","user_agent","sessionToJSON","updateSession","email","username","closeSession","errorCallback","activeTransaction","setStatus","toTraceparent","sample","samplingContext","sampled","setMetadata","tracesSampler","parentSampled","tracesSampleRate","isValidSampleRate","_startTransaction","transactionContext","initSpanRecorder","_experiments","startIdleTransaction","idleTimeout","finalTimeout","onScope","addExtensionMethods","_addTracingExtensions","packageToIntegrationMapping","mongodb","Mongo","mongoose","mysql","Mysql","pg","Postgres","mappedPackages","moduleName","pkg","_autoloadDatabaseIntegrations","DEFAULT_IDLE_TIMEOUT","DEFAULT_FINAL_TIMEOUT","IdleTransactionSpanRecorder","_pushActivity","_popActivity","transactionSpanId","maxlen","spanId","finish","IdleTransaction","activities","_heartbeatCounter","_finished","_beforeFinishCallbacks","_idleHub","_idleTimeout","_finalTimeout","_onScope","clearActiveTransaction","_startIdleTimeout","spanRecorder","spans","keepSpan","startTimestamp","registerBeforeFinishCallback","_pingHeartbeat","_cancelIdleTimeout","_idleTimeoutID","_beat","heartbeatString","_prevHeartbeatString","SpanRecorder","_maxlen","Span","traceId","substring","spanContext","parentSpanId","startChild","childSpan","setData","setHttpStatus","httpStatus","spanStatus","spanStatusfromHttpCode","isSuccess","sampledString","toContext","updateWithContext","parent_span_id","span_id","getBaggage","baggage","start_timestamp","Transaction","_measurements","_hub","_trimEnd","trimEnd","setName","setMeasurement","newMetadata","finishedSpans","measurements","hasTracingEnabled","maybeOptions","getActiveTransaction","maybeHub","msToSec","time","htmlTreeAsString","elem","currentElem","out","sepLength","nextStr","_htmlElementAsString","reverse","classes","attr","keyAttrPairs","keyAttr","keyAttrPair","allowedAttrs","getLocationHref","_nullishCoalesce","lhs","rhsFn","fallbackGlobalObject","getGlobalObject","getGlobalSingleton","creator","handlers","instrumented","instrument","originalConsoleMethod","triggerHandlers","instrumentConsole","triggerDOMHandler","globalDOMEventHandler","makeDOMEventHandler","originalAddEventListener","__sentry_instrumentation_handlers__","handlerForType","refCount","instrumentDOM","xhrproto","originalOpen","xhrInfo","toUpperCase","onreadystatechangeHandler","readyStateArgs","instrumentXHR","originalFetch","getFetchMethod","getFetchUrl","instrumentFetch","oldOnPopState","onpopstate","historyReplacementFunction","originalHistoryFunction","lastHref","instrumentHistory","_oldOnErrorHandler","_oldOnUnhandledRejectionHandler","addInstrumentationHandler","fetchArgs","Request","debounceTimerID","lastCapturedEvent","globalListener","isContentEditable","shouldSkipDOMEvent","shouldShortcircuitPreviousDebounce","objectToString","isError","wat","isInstanceOf","isBuiltin","ty","isErrorEvent","isDOMError","isDOMException","isPrimitive","isPlainObject","isEvent","Event","isRegExp","isThenable","isSyntheticEvent","_e","CONSOLE_LEVELS","consoleSandbox","originalConsole","wrappedLevels","originalWrappedFunc","__sentry_original__","makeLogger","enable","disable","memoBuilder","hasWeakSet","WeakSet","uuid4","crypto","msCrypto","getRandomValues","arr","Uint16Array","pad","parseUrl","fragment","getFirstException","getEventDescription","firstException","addExceptionTypeValue","addExceptionMechanism","newMechanism","currentMechanism","mergedData","stripUrlQueryAndFragment","urlPath","checkOrSetAlreadyCaught","__sentry_captured__","isNodeEnv","__SENTRY_BROWSER_BUNDLE__","dynamicRequire","require","loadModule","cwd","replacementFactory","wrapped","markFunctionWrapped","addNonEnumerableProperty","getOriginalFunction","urlEncode","encodeURIComponent","convertToPlainObject","getOwnProperties","newObj","serializeEventTarget","CustomEvent","extractedProps","extractExceptionKeysForMessage","maxLength","includedKeys","dropUndefinedKeys","_dropUndefinedKeys","createStackParser","parsers","sortedParsers","skipFirst","localStack","firstFrameFunction","lastFrameFunction","stripSentryFramesAndReverse","stackParserFromStackParserOptions","defaultFunctionName","getFunctionName","truncate","safeJoin","isMatchingPattern","supportsFetch","Headers","Response","isNativeFetch","supportsNativeFetch","supportsHistory","chrome","isChromePackagedApp","app","runtime","hasHistoryApi","pushState","replaceState","States","resolvedSyncPromise","SyncPromise","rejectedSyncPromise","_state","PENDING","_handlers","executor","_resolve","_reject","onfulfilled","onrejected","_executeHandlers","catch","finally","onfinally","isRejected","_setResult","RESOLVED","REJECTED","cachedHandlers","dateTimestampSource","nowSeconds","platformPerformance","performance","getNodePerformance","timeOrigin","getBrowserPerformance","timestampSource","dateTimestampInSeconds","timestampInSeconds","timestampWithMs","_browserPerformanceTimeOriginMode","browserPerformanceTimeOrigin","threshold","performanceNow","dateNow","timeOriginDelta","timeOriginIsReliable","navigationStart","timing","navigationStartDelta","_global","SENTRY_RELEASES","presenceId","getPresenceId","PresenceChild","onExitComplete","presenceAffectsLayout","presenceChildren","newChildrenMap","childId","allComplete","isComplete","register","PresenceContext","getChildKey","exitBeforeEnter","_c","forceRender","unloadingRef","forcedRenderCount","setForcedRenderCount","useCallback","useForceUpdate","layoutContext","SharedLayoutContext","forceUpdate","isInitialRender","filteredChildren","filtered","isValidElement","onlyElements","presentChildren","allChildren","exiting","updateChildLookup","childrenToRender","presentKeys","targetKeys","numPresent","insertionIndex","removeIndex","presentChild","usePresence","useUniqueId","useIsPresent","incrementId","Presence","VisibilityAction","layoutReady","notifyLayoutReady","createBatcher","queue","read","write","ancestors","resetTransform","restoreTransform","presence","assignProjectionToSnapshot","prevViewportBox","projection","FramerTreeLayoutContext","isSharedLayout","createDefinition","isEnabled","featureDefinitions","measureLayout","drag","tap","pan","layoutAnimation","LazyContext","featureNames","numFeatures","MotionConfigContext","transformPagePoint","isStatic","MotionContext","LayoutGroupContext","useIsomorphicLayoutEffect","useVisualElement","visualState","createVisualElement","lazyContext","visualElement","presenceContext","layoutId","layoutGroupId","useLayoutId","visualElementRef","renderer","blockInitialAnimation","setProps","isPresenceRoot","syncRender","animationState","animateChanges","notifyUnmount","isVariantLabels","isVariantLabel","resolveVariantFromProps","definition","currentValues","currentVelocity","resolveVariant","getProps","forEachValue","getCurrent","velocity","getVelocity","checkIfControllingVariants","whileHover","whileDrag","whileTap","whileFocus","checkIfVariantNode","useCreateMotionContext","inherit","getCurrentTreeVariants","variantLabelsAsDependency","preloadedFeatures","useRender","useVisualState","features","loadFeatures","externalRef","name_1","useFeatures","useMotionRef","createMotionProxy","createConfig","customMotionComponentConfig","componentCache","_target","lowercaseSVGElements","isSVGComponent","valueScaleCorrection","transformAxes","transformProps","sortTransformProps","operationKey","axesKey","transformPropSet","isTransformProp","transformOriginProps","isTransformOriginProp","isForcedMotionValue","isMotionValue","translateAlias","transformPerspective","isCSSVariable","getValueAsType","clamp","sanitize","toFixed","floatRegex","colorRegex","singleColorRegex","createUnitType","degrees","percent","vh","vw","progressPercentage","alpha","numberValueTypes","rotateX","rotateY","rotateZ","scaleZ","skew","distance","translateZ","perspective","originX","originY","originZ","numOctaves","buildHTMLStyles","latestValues","layoutState","buildProjectionTransform","buildProjectionTransformOrigin","vars","transformKeys","hasTransform","hasTransformOrigin","transformIsNone","valueType","valueAsType","isHydrated","correctedValue","applyTo","deltaFinal","treeScale","transformIsDefault","enableHardwareAcceleration","_d","allowTransformNone","transformString","transformHasZ","numTransformKeys","buildTransform","buildTransformOrigin","createHtmlRenderState","copyRawValuesOnly","useStyle","useInitialMotionValues","transformValues","useHTMLProps","htmlProps","draggable","WebkitUserSelect","WebkitTouchCallout","touchAction","validMotionProps","isValidMotionProp","shouldForward","emotionIsPropValid_1","calcOrigin","origin","progressToPixels","progress","dashKeys","camelKeys","buildSVGAttrs","attrX","attrY","pathLength","pathSpacing","pathOffset","totalPathLength","calcSVGTransformOrigin","useDashCase","buildSVGPath","createSvgRenderState","useSVGProps","visualProps","rawStyles","createUseRender","forwardMotionProps","filteredProps","isDom","filterProps","elementProps","CAMEL_CASE_PATTERN","camelToDash","renderHTML","camelCaseAttributes","renderSVG","renderState","scrapeMotionValuesFromProps","newValues","isAnimationControls","isKeyframesTarget","resolveMotionValue","unwrappedValue","mix","toValue","makeState","createRenderState","onMount","makeLatestValues","makeUseVisualState","scrapeMotionValues","motionValues","isControllingVariants","isVariantNode","variantToSet","resolved","transitionEnd","svgMotionConfig","getBBox","getBoundingClientRect","getTotalLength","AnimationType","htmlMotionConfig","addDomEvent","removeEventListener","useDomEvent","isMouseEvent","PointerEvent","pointerType","MouseEvent","isTouchEvent","touches","defaultPagePoint","pageX","pageY","pointFromTouch","pointType","point","changedTouches","pointFromMouse","extractEventInfo","wrapHandler","shouldFilterPrimaryPointer","eventHandler","mouseEventNames","pointerdown","pointermove","pointerup","pointercancel","pointerover","pointerout","pointerenter","pointerleave","touchEventNames","getPointerEventName","onpointerdown","ontouchstart","onmousedown","addPointerEvent","usePointerEvent","createLock","lock","globalHorizontalLock","globalVerticalLock","getGlobalLock","openHorizontal_1","openVertical_1","isDragActive","openGestureLock","createHoverEvent","setActive","Hover","isNodeOrChild","parentElement","combineFunctions","transformers","makeRenderlessComponent","hook","gestureAnimations","onTap","onTapStart","onTapCancel","hasPressListeners","isPressing","cancelPointerEndListeners","removePointerEndListener","checkPointerEnd","Tap","onPointerUp","getInstance","onPointerCancel","Focus","shallowCompare","prevLength","safeMin","findSpring","derivative","bounce","mass","dampingRatio","undampedFreq","exponentialDecay","delta","calcAngularFreq","exp","pow","initialGuess","approximateRoot","stiffness","damping","sqrt","durationKeys","physicsKeys","isSpringType","spring","restSpeed","restDelta","springOptions","isResolvedFromDuration","derived","getSpringOptions","resolveSpring","zero","resolveVelocity","createSpring","initialVelocity","initialDelta","undampedAngularFreq","angularFreq_1","sin","cos","dampedAngularFreq_1","freqForT","sinh","cosh","isBelowVelocityThreshold","isBelowDisplacementThreshold","flipTarget","needsInterpolation","_t","toFromDifference","isColorString","testProp","splitColor","aName","bName","cName","clampRgbUnit","rgbUnit","rgba","alpha$1","hsla","hue","saturation","lightness","mixLinearColor","fromExpo","toExpo","colorTypes","getColorType","notAnimatable","mixColor","fromColorType","toColorType","fromColor","toColor","blended","mixFunc","colorToken","numberToken","analyse","numColors","numbers","tokenised","createTransformer","numValues","convertNumbersToZero","complex","getAnimatableNone","transformer","isNum","getMixer","mixComplex","mixArray","blendValue","fromThis","mixObject","numNumbers","numRGB","numHSL","template","originStats","targetStats","mixNumber","createMixers","customMixer","mixers","mixerFactory","numMixers","mixer","easingFunction","interpolate","isClamp","inputLength","interpolator","fastInterpolate","lastInputIndex","mixerIndex","foundMixerIndex","progressInRange","slowInterpolate","power","reverseEasing","mirrorEasing","createBackIn","linear","easeIn","easeOut","easeInOut","circIn","acos","circOut","circInOut","backIn","backOut","backInOut","anticipate","backEasing","createAnticipate","bounceOut","bounceIn","defaultEasing","times","convertOffsetToTimes","defaultOffset","createInterpolator","types","decay","timeConstant","_f","modifyTarget","amplitude","ideal","loopElapsed","elapsed","framesync","passTimestamp","driverControls","latest","interpolateFromNumber","autoplay","driver","_g","repeat","repeatMax","_h","repeatType","_j","repeatDelay","onPlay","onStop","onComplete","onRepeat","onUpdate","repeatCount","computedDuration","isForwardPlayback","animator","detectAnimationFromOptions","reverseElapsed","hasRepeatDelayElapsed","velocityPerSecond","frameDuration","secondsToMilliseconds","seconds","a1","a2","calcBezier","getSlope","kSampleStepSize","cubicBezier","mX1","mY1","mX2","mY2","sampleValues","Float32Array","getTForX","aX","intervalStart","currentSample","kSplineTableSize","guessForT","initialSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","binarySubdivide","easingLookup","bounceInOut","easingDefinitionToFunction","isAnimatable","underDampedSpring","criticallyDampedSpring","linearTween","defaultTransitions","maxDefaults","applyDefaultFilter","defaultValue","functionRegex","functions","defaultValueTypes","WebkitFilter","getDefaultValueType","defaultValueType","convertTransitionToAnimationOptions","yoyo","flip","loop","isEasingArray","getPopmotionAnimationOptions","hydrateKeyframes","when","delayChildren","staggerChildren","staggerDirection","isTransitionDefined","valueKey","transitionFactory","getDefaultTransition","getAnimation","valueTransition","getValueTransition","isTargetAnimatable","isZero","getZeroUnit","isOriginAnimatable","currentAnimation","bounceStiffness","bounceDamping","isOutOfBounds","boundaryNearest","startAnimation","startSpring","prev_1","current_1","boundary_1","heading_1","inertia","potentialUnitType","delayTimer","controls","getDelayFromTransition","addUniqueItem","SubscriptionManager","subscriptions","numSubscriptions","MotionValue","timeDelta","lastUpdated","updateSubscribers","velocityUpdateSubscribers","renderSubscribers","canTrackVelocity","updateAndNotify","scheduleVelocityCheck","velocityCheck","hasAnimated","onChange","subscription","clearListeners","onRenderRequest","attach","passiveEffect","getPrevious","stopAnimation","clearAnimation","isAnimating","destroy","motionValue","testValueType","dimensionValueTypes","findDimensionValueType","valueTypes","findValueType","setMotionValue","hasValue","addValue","setTarget","makeTargetAnimatable","getOriginFromTransition","animateVariant","transitionOverride","animateTarget","getChildAnimations","variantChildren","forwardDelay","animations","maxStaggerDuration","generateStaggerDuration","sortByTreeOrder","notifyAnimationComplete","animateChildren","first","last","animationTypeState","getState","valueTarget","shouldBlockAnimation","sortNodePosition","protectedKeys","needsAnimating","shouldBlock","variantPriorityOrder","Animate","Drag","Exit","reversePriorityOrder","numAnimationTypes","animateList","notifyAnimationStart","resolvedDefinition","animateVisualElement","createAnimationState","createTypeState","createState","allAnimatedKeys","buildResolvedTypeValues","changedActiveType","getVariantContext","removedKeys","encounteredKeys","removedVariantIndex","_loop_1","typeState","propIsVariant","activeDelta","isInherited","manuallyAnimateOnMount","prevProp","shouldAnimateType","variantsHaveChanged","definitionList","resolvedValues","prevResolvedValues","allKeys","markToAnimate","fallbackAnimation_1","fallbackTarget","getBaseTarget","shouldAnimate","isAnimated","setAnimateFunction","makeAnimator","subscribe","isPoint","isPoint3D","distance1D","xDelta","yDelta","zDelta","PanSession","startEvent","lastMoveEvent","lastMoveEventInfo","updatePoint","getPanInfo","isPanStarted","isDistancePastThreshold","onStart","onMove","handlePointerMove","transformPoint","buttons","handlePointerUp","onEnd","onSessionEnd","panInfo","initialInfo","onSessionStart","removeListeners","updateHandlers","subtractPoint","lastDevicePoint","startDevicePoint","timestampedPoint","lastPoint","eachAxis","applyConstraints","elastic","calcRelativeAxisConstraints","axis","calcViewportAxisConstraints","layoutAxis","constraintsAxis","resolveAxisElastic","dragElastic","minLabel","maxLabel","resolvePointElastic","getBoundingBox","box","isNear","maxDistance","calcLength","sourceLength","targetLength","updateAxisDelta","originPoint","translate","updateBoxDelta","defaultOrigin","calcRelativeAxis","calcRelativeOffsetAxis","calcRelativeOffset","checkIfParentHasChanged","prevId","getLayoutId","nextId","isDraggable","_dragX","resetAxis","originAxis","scalePoint","applyPointDelta","boxScale","applyAxisDelta","applyBoxDelta","applyAxisTransforms","transforms","scaleKey","originKey","axisOrigin","xKeys","yKeys","applyBoxTransforms","finalBox","removePointDelta","removeAxisTransforms","removeAxisDelta","removeBoxTransforms","lastPointerEvent","elementDragControls","VisualElementDragControls","isDragging","currentDirection","constraints","hasMutatedConstraints","cursorProgress","openGlobalLock","panSession","enableLayoutProjection","originEvent","snapToCursor","stopMotion","initialPoint","getViewportPointFromEvent","cancelLayout","tree","hasManuallySetCursorOrigin","isLayoutDrag","lockProjectionTarget","getAxisMotionValue","isExternalDrag","rebaseProjectionTarget","measureViewportBox","scheduleUpdateLayoutProjection","axisValue","resolveDragConstraints","dragPropagation","onDragStart","dragDirectionLock","lockThreshold","getCurrentDirection","onDirectionLock","updateAxis","onDrag","dragConstraints","getLayoutState","layoutCorrected","resolveRefConstraints","layoutBox","calcRelativeConstraints","resolveDragElastic","relativeConstraints","rebaseAxisConstraints","onMeasureDragConstraints","constraintsElement","constraintsBox","measuredConstraints","calcViewportConstraints","userConstraints","cancelDrag","unlockProjectionTarget","animateDragEnd","onDragEnd","shouldDrag","length_1","updateAxisMotionValue","updateVisualElementAxis","nextValue","axisLayout","axisLength","axisProgress","calcConstrainedMinPoint","setProjectionTargetAxis","dragMomentum","remainingProps","dragKey","_dragY","dragTransition","isRelative","projectionParent","getProjectionParent","getLatestValues","convertToRelativeProjection","relativeConstraints_1","targetFinal","momentumAnimations","startAxisValueAnimation","startLayoutAnimation","onDragTransitionEnd","stopLayoutAnimation","currentValue","boxProgress","updateConstraints","calcPositionFromProgress","onReady","stopPointerListener","dragListener","stopResizeListener","stopLayoutUpdateListener","onLayoutUpdate","prevDragCursor","onPan","onPanStart","onPanEnd","onPanSessionStart","hasPanEvents","groupDragControls","dragControls","cssVariableRegex","getVariableValue","parseCSSVariable","getComputedStyle","pixelsToPercent","pixels","varToken","borderCorrectionDefinition","_layoutState","defaultScaleCorrectors","containsCSSVariables","cssVariables","xScale","yScale","averageScale","i_1","frameTarget","currentAnimationTarget","stopAxisAnimation","isAnimatingTree","originBox","targetBox","visibilityAction","shouldStackAnimate","prevParent","safeToRemove","prevParentViewportBox","parentLayout","isProvidedCorrectDataForRelativeSharedLayout","boxHasMoved","hasMoved","isTargetLocked","animateAxis","setVisibility","notifyLayoutAnimationComplete","animateMotionValue","unsubLayoutReady","layoutSafeToRemove","correctors","addScaleCorrection","axisIsEqual","layoutProgress","getProjectionAnimationProgress","tweenAxis","unsubscribeProgress","layoutTransition","defaultLayoutTransition","isZeroBox","zeroAxis","Measure","syncLayout","framerSyncLayout","onUnmount","getSnapshotBeforeUpdate","syncUpdate","componentDidUpdate","layoutAnimations","createLayoutState","deltaTransform","zeroLayout","buildLayoutProjectionTransform","latestTransform","identityProjection","buildLayoutProjectionTransformOrigin","names","updateLayoutDeltas","treePath","treeLength","applyTreeDeltas","FlatTree","isDirty","treeType","build","renderInstance","readValueFromInstance","removeValueFromRenderState","unsubscribeFromLeadVisualElement","crossfader","projectionTargetProgress","removeFromVariantTree","lifecycles","managers","propSubscriptions","clearAllListeners","manager","updatePropListeners","on","propListener","createLifecycles","leadProjection","leadLatestValues","hasViewportBoxUpdated","valueSubscriptions","prevMotionValues","baseTarget","isProjectionReady","triggerBuild","valuesToRender","crossfadedValues","getCrossfadeState","notifyUpdate","updateTreeLayoutProjection","layoutTree","fireUpdateLayoutProjection","initialMotionValues","isMounted","newInstance","pointTo","addVariantChild","updateLayoutProjection","closestVariantNode","getClosestVariantNode","other","getStaticValue","setStaticValue","scheduleRender","canMutate","removeValue","removeOnChange","latestValue","removeOnRenderRequest","bindToMotionValue","readValue","setBaseTarget","prevValue","existingValue","updateMotionValuesFromProps","getVariant","startAtParent","context_1","numVariantProps","variantProps","setCrossfader","newCrossfader","relativeTarget","withTransform","viewportBox","notifySetAxisTarget","force","shouldRebase","relativeOffset","setCurrentViewportBox","notifyLayoutUpdate","prevTreeScaleX","prevTreeScaleY","prevDeltaTransform","notifyViewportBoxUpdate","fireResolveRelativeTargetBox","foundParent","ancestor","resolveRelativeTargetBox","relativeParent","parentProjection","calcRelativeBox","shouldResetTransform","_layoutResetTransform","newLead","onSetAxisTarget","onLayoutAnimationComplete","BoundingBoxDimension","positionalKeys","isPositionalKey","setAndResetVelocity","isNumOrPxType","getPosFromMatrix","matrix","getTranslateFromMatrix","pos2","pos3","_bbox","matrix3d","nonTranslationalTransformKeys","positionalValues","checkAndConvertChangedValueTypes","targetPositionalKeys","removedTransformValues","hasAttemptedToRemoveTransformValues","changedValueTypeKeys","toType","fromType","numKeyframes","removedTransforms","removeNonTranslationalTransform","convertedTarget","changedKeys","originBbox","elementComputedStyle","originComputedStyle","targetBbox","convertChangedValueTypes","unitConversion","hasPositionalKey","parseDomVariant","resolveCSSVariables","htmlConfig","domElement","defaultType","computedStyle","compareDocumentPosition","mutableState","getOrigin","newValueKeys","numNewValues","targetValue","checkTargetForNewValues","isProjectionTranform","htmlVisualElement","svgVisualElement","_element","featureBundle","baseConfig","isProjecting","collectProjectingAncestors","collectProjectingChildren","addChild","updateLayoutMeasurement","notifyBeforeLayoutMeasure","notifyLayoutMeasure","snapshotViewportBox","unresolvedJobs","pushJob","job","pointer","batchLayout","flushLayout","reads","writes","setRead","setWrite","numStacks","executeJob","compareByDepth","any","convertBoundingBoxToAxisBox","convertAxisBoxToBoundingBox","transformBoundingBox","topLeft","bottomRight","axisBox","copyAxisBox","zeroDelta","useConstant","useUnmountEffect","defaultTimestep","getCurrentTime","onNextFrame","useDefaultElapsed","runNextFrame","isProcessing","stepsOrder","steps","toRun","toRunNextFrame","numToRun","toKeepAlive","schedule","keepAlive","immediate","addToCurrentFrame","cancel","frameData","createRenderStep","sync","startLoop","cancelSync","flushSync","processStep","stepId","processFrame","getFrameData","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","getOwnPropertyNames","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","descriptor","for","u","A","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Lazy","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","HASH_UNDEFINED","MAX_SAFE_INTEGER","argsTag","funcTag","objectTag","reIsHostCtor","reIsUint","typedArrayTags","freeGlobal","freeSelf","freeExports","freeModule","moduleExports","freeProcess","nodeUtil","binding","nodeIsTypedArray","isTypedArray","arrayProto","funcProto","objectProto","coreJsData","funcToString","maskSrcKey","uid","IE_PROTO","nativeObjectToString","objectCtorString","reIsNative","Buffer","allocUnsafe","getPrototype","objectCreate","symToStringTag","toStringTag","getNative","nativeIsBuffer","isBuffer","nativeMax","nativeNow","nativeCreate","baseCreate","Hash","ListCache","MapCache","Stack","__data__","arrayLikeKeys","inherited","isArr","isArg","isArguments","isBuff","isType","skipIndexes","iteratee","baseTimes","isIndex","assignMergeValue","eq","baseAssignValue","assignValue","objValue","assocIndexOf","getMapData","pairs","LARGE_ARRAY_SIZE","fromRight","baseFor","keysFunc","iterable","baseGetTag","isOwn","unmasked","getRawTag","baseIsArguments","isObjectLike","baseIsNative","isMasked","toSource","baseKeysIn","nativeKeysIn","isProto","isPrototype","baseMerge","srcIndex","customizer","srcValue","mergeFunc","safeGet","stacked","newValue","isCommon","isTyped","isArrayLike","copyArray","isDeep","cloneBuffer","typedArray","arrayBuffer","byteLength","cloneArrayBuffer","byteOffset","cloneTypedArray","Ctor","isNew","copyObject","keysIn","toPlainObject","initCloneObject","baseMergeDeep","baseRest","setToString","otherArgs","overRest","identity","baseSetToString","isKeyable","lastCalled","stamp","remaining","shortOut","isLength","baseUnary","assigner","mergeWith","sources","guard","isIterateeCall","ref1","__NEXT_P","_interopRequireDefault","_loadable","noSSR","LoadableInitializer","loadableOptions","webpack","modules","LoadableContext","_react","_useSubscription","_loadableContext","ALL_INITIALIZERS","READY_INITIALIZERS","initialized","loader","loading","LoadableSubscription","loadFn","_loadFn","_callbacks","_delay","_timeout","retry","_res","_clearTimeouts","pastDelay","timedOut","res","_update","_err","partial","getCurrentValue","Loadable","sub","suspense","lazy","moduleIds","ids","moduleId","LoadableComponent","useSubscription","useImperativeHandle","isLoading","preload","createLoadableComponent","flushInitializers","initializers","promises","preloadAll","resolveInitializers","preloadReady","resolvePreload","__NEXT_PRELOADREADY","_default","nodeName","createEvent","initEvent","childNodes","getElementsByTagName","mockEnv","cancelAnimationFrame","defaultEnv","EnvironmentContext","EnvironmentProvider","environmentProp","setNode","win","showEnvGetter","portalZIndex","resetCSS","_children","requiredChakraThemeKeys","isChakraTheme","propertyName","mergeThemeOverride","overrides","mergeThemeCustomizer","override","sourceValue","overrideValue","chakraTheme","customTheme","baseTheme","extension","prevTheme","extendTheme","extralight","regular","extraBold","brand","neutral","darkGray","menu","GA_TRACKING_ID","sessionReset","setSessionReset","emailSet","setEmailSet","setTokenId","json","CRISP_TOKEN_ID","$crisp","primaryEmailAddress","emailAddress","NProgress","showSpinner","Router","pageProps","Script","strategy","dangerouslySetInnerHTML","__html","gtag","ChakraProvider","Head","Crisp","TRACEPARENT_REGEXP","BAGGAGE_HEADER_NAME","SENTRY_BAGGAGE_KEY_PREFIX_REGEX","parseBaggageString","inputBaggageString","baggageObj","baggageString","curr","baggageKey","decodeURIComponent","mergeAndSerializeBaggage","incomingBaggage","headerBaggageString","headerBaggage","thirdPartyHeaderBaggage","baggageEntry","newVal","serializeBaggage","initItems","createBaggage","bindReporter","metric","reportAllChanges","forceReport","initMetric","observe","PerformanceObserver","supportedEntryTypes","po","getEntries","buffered","onHidden","onHiddenOrPageHide","firstHiddenTime","getVisibilityWatcher","timeStamp","reportedMetricIDs","isMeasurementValue","isFinite","_startChild","getBrowserPerformanceAPI","_lcpEntry","_clsEntry","_performanceCursor","startTrackingWebVitals","mark","onReport","report","sessionValue","sessionEntries","entryHandler","hadRecentInput","firstSessionEntry","lastSessionEntry","startTime","takeRecords","getCLS","visibilityWatcher","stopListening","disconnect","capture","getLCP","_trackLCP","processingStart","getFID","addPerformanceEntries","performanceEntries","responseStartTimestamp","requestStartTimestamp","entryType","_addPerformanceNavigationTiming","requestStart","responseEnd","responseStart","_addRequest","_addNavigationSpans","measureStartTimestamp","measureEndTimestamp","_addMeasureSpans","firstHidden","shouldRecord","resourceName","initiatorType","transferSize","encodedBodySize","decodedBodySize","_addResourceSpans","connection","effectiveType","rtt","downlink","deviceMemory","hardwareConcurrency","_trackNavigator","oldValue","measurementTimestamp","normalizedValue","measurementName","_tagMetricInfo","eventEnd","defaultRequestInstrumentationOptions","traceFetch","traceXHR","tracingOrigins","instrumentOutgoingRequests","shouldCreateSpanForRequest","urlMap","defaultShouldCreateSpan","origins","shouldCreateSpan","__span","addTracingHeaders","fetchCallback","__sentry_xhr_span_id__","getRequestHeader","xhrCallback","DEFAULT_BROWSER_TRACING_OPTIONS","markBackgroundTransactions","routingInstrumentation","customStartTransaction","startTransactionOnPageLoad","startTransactionOnLocationChange","startingUrl","pathname","BrowserTracing","_emitOptionsWarning","_metricOptions","_reportAllChanges","_getCurrentHub","instrumentRouting","_createRouteTransaction","statusType","beforeNavigate","parentContextFromHeader","sentrytraceValue","getMetaContent","baggageValue","sentrytraceData","traceparent","extractTraceparentData","extractTraceDataFromMetaTags","expandedContext","modifiedContext","finalContext","idleTransaction","metaName","__SENTRY_TRACING__","DEFAULT_TAGS","prevTransactionName","nextRouterInstrumentation","startTransactionCb","routerPrototype","changeStateWrapper","originalChangeStateWrapper","newTransactionName","setNestedKey","keyPath","addIntegration","addIntegrationToArray","userIntegrationsFunc","userFinalIntegrations","addIntegrationToFunction","includesName","buildMetadata","defaultBrowserTracingIntegration","createClientIntegrations","filterTransactions","Sentry","SENTRY_DSN","NEXT_PUBLIC_SENTRY_DSN","defaultSetTimout","defaultClearTimeout","runTimeout","cleanUpNextTick","drainQueue","runClearTimeout","Item","fun","nextTick","browser","argv","versions","off","removeAllListeners","emit","prependListener","prependOnceListener","listeners","chdir","umask","__nccwpck_require__","ab","__dirname","Settings","settings","minimum","positionUsing","trickle","trickleRate","trickleSpeed","barSelector","spinnerSelector","toBarPerc","barPositionCSS","barCSS","configure","isStarted","bar","offsetWidth","getPositioningCSS","work","inc","amount","$promise","always","fromStart","isRendered","addClass","innerHTML","spinner","perc","removeElement","removeClass","bodyStyle","vendorPrefix","pending","cssPrefixes","cssProps","camelCase","letter","getVendorProp","vendorName","capName","charAt","getStyleProp","applyCss","hasClass","oldList","newList","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","bool","symbol","arrayOf","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","trimLeft","trimRight","tinyCounter","mathRound","mathMin","mathMax","mathRandom","tinycolor","rgb","ok","format","named","matchers","hsl","hsv","hsva","hex8","parseIntFromHex","convertHexToDecimal","hex6","hex4","hex3","stringInputToObject","isValidCSSUnit","bound01","convertToPercentage","hsvToRgb","hue2rgb","hslToRgb","boundAlpha","inputToRGB","_originalInput","_r","_roundA","_format","_gradientType","gradientType","_ok","_tc_id","rgbToHsl","rgbToHsv","rgbToHex","allow3Char","pad2","rgbaToArgbHex","convertDecimalToHex","desaturate","toHsl","clamp01","greyscale","lighten","brighten","toRgb","darken","spin","complement","triad","tetrad","splitcomplement","analogous","results","slices","monochromatic","toHsv","modification","getBrightness","isLight","getOriginalInput","getFormat","getAlpha","getLuminance","RsRGB","GsRGB","BsRGB","toHsvString","toHslString","toHex","toHex8","allow4Char","rgbaToHex","toHex8String","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","clone","_applyModification","_applyCombination","fromRatio","newColor","equals","color1","color2","rgb1","rgb2","readability","c1","c2","isReadable","wcag2","wcag2Parms","parms","validateWCAG2Parms","mostReadable","baseColor","colorList","includeFallbackColors","bestColor","bestScore","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","blanchedalmond","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","plum","powderblue","rebeccapurple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","thistle","tomato","turquoise","violet","wheat","whitesmoke","yellowgreen","flipped","isOnePointZero","processPercent","isPercentage","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","useDebugValue"],"sourceRoot":""}