{"version":3,"file":"static/chunks/app/layout-eb13a31ede5a1aba.js","mappings":"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","sources":["webpack://_N_E/?c105","webpack://_N_E/./src/config/amplify.ts","webpack://_N_E/./src/layers/presentation/components/common/FeedbackButton.tsx","webpack://_N_E/./src/layers/presentation/components/utils/ConfigureAmplifyClientSide.ts","webpack://_N_E/./src/layers/presentation/components/utils/FadeEffect.tsx","webpack://_N_E/./src/layers/presentation/components/utils/PageTransition.tsx","webpack://_N_E/./src/layers/presentation/utils/profileUtils.ts","webpack://_N_E/./src/layers/presentation/context/AuthContext.tsx","webpack://_N_E/./src/layers/presentation/components/utils/NotificationBoundary.tsx","webpack://_N_E/./src/layers/presentation/i18n/config.common.ts","webpack://_N_E/./src/layers/presentation/i18n/config.client.ts","webpack://_N_E/./src/layers/presentation/i18n/provider.tsx","webpack://_N_E/./src/layers/presentation/providers/AmplifyProvider.tsx","webpack://_N_E/./src/layers/presentation/providers/SubscriptionModalProvider.tsx","webpack://_N_E/./src/layers/presentation/components/utils/Analytics.tsx","webpack://_N_E/./src/layers/presentation/providers/providers.tsx","webpack://_N_E/./src/layers/presentation/styles/globals.css"],"sourcesContent":["import(/* webpackMode: \"eager\" */ \"/codebuild/output/src2150190915/src/right2hope/node_modules/.pnpm/@aws-amplify+ui-react@6.1.12_@types+react@18.3.3_aws-amplify@6.4.0_react-dom@18.3.1_react@18._x7i63pq5ny5z3b2l7hy6s3aw2y/node_modules/@aws-amplify/ui-react/dist/styles.css\");\n;\nimport(/* webpackMode: \"eager\" */ \"/codebuild/output/src2150190915/src/right2hope/node_modules/.pnpm/react-toastify@10.0.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-toastify/dist/ReactToastify.css\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/codebuild/output/src2150190915/src/right2hope/src/layers/presentation/components/common/FeedbackButton.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/codebuild/output/src2150190915/src/right2hope/src/layers/presentation/components/utils/ConfigureAmplifyClientSide.ts\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/codebuild/output/src2150190915/src/right2hope/src/layers/presentation/components/utils/PageTransition.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"Providers\"] */ \"/codebuild/output/src2150190915/src/right2hope/src/layers/presentation/providers/providers.tsx\");\n;\nimport(/* webpackMode: \"eager\" */ \"/codebuild/output/src2150190915/src/right2hope/src/layers/presentation/styles/globals.css\");\n","export const PUBLIC_EMAIL_DOMAINS: readonly string[] = [\n // Google\n 'gmail.com',\n 'googlemail.com',\n\n // Microsoft\n 'hotmail.com',\n 'outlook.com',\n 'live.com',\n 'msn.com',\n 'passport.com',\n\n // Yahoo\n 'yahoo.com',\n 'yahoo.co.uk',\n 'yahoo.co.jp',\n 'yahoo.fr',\n 'yahoo.de',\n 'yahoo.it',\n 'yahoo.es',\n 'yahoo.ca',\n\n // Apple\n 'icloud.com',\n 'me.com',\n 'mac.com',\n\n // Other major providers\n 'aol.com',\n 'protonmail.com',\n 'proton.me',\n 'mail.com',\n 'zoho.com',\n 'yandex.com',\n 'yandex.ru',\n\n // Popular international\n 'qq.com', // China\n '163.com', // China\n 'sina.com', // China\n 'mail.ru', // Russia\n 'rambler.ru', // Russia\n 'web.de', // Germany\n 'gmx.de', // Germany\n 'gmx.net',\n 'gmx.com',\n 'libero.it', // Italy\n 'seznam.cz', // Czech Republic\n\n // Other free services\n 'fastmail.com',\n 'tutanota.com',\n 'tutanota.de',\n 'mailbox.org',\n 'disroot.org',\n 'riseup.net',\n] as const;\n\nexport const amplifyConfig = {\n Auth: {\n Cognito: {\n userPoolId: process.env.NEXT_PUBLIC_COGNITO_USER_POOL_ID!,\n userPoolClientId: process.env.NEXT_PUBLIC_COGNITO_CLIENT_ID!,\n },\n },\n};\n","'use client';\n\nimport React, { useState, useEffect, useRef } from 'react';\nimport { useIntercom } from '@/layers/presentation/context/IntercomContext';\nimport { Button } from '@nextui-org/react';\nimport logger from '@/layers/support/monitoring/logger';\n\nconst LOG_MODULE = '[Presentation / Components / FeedbackButton]';\n\nconst FeedbackButton: React.FC = () => {\n const { triggerFeedback } = useIntercom();\n const [isSelecting, setIsSelecting] = useState(false);\n const [isConfirmed, setIsConfirmed] = useState(false);\n const buttonRef = useRef(null);\n const selectedElementRef = useRef(null);\n\n useEffect(() => {\n if (isSelecting) {\n document.body.style.cursor = 'crosshair';\n document.addEventListener('click', handleElementClick, true);\n document.addEventListener('keydown', handleKeyDown);\n } else {\n document.body.style.cursor = 'default';\n document.removeEventListener('click', handleElementClick, true);\n document.removeEventListener('keydown', handleKeyDown);\n if (selectedElementRef.current) {\n selectedElementRef.current.style.outline = '';\n }\n }\n\n return () => {\n document.body.style.cursor = 'default';\n document.removeEventListener('click', handleElementClick, true);\n document.removeEventListener('keydown', handleKeyDown);\n if (selectedElementRef.current) {\n selectedElementRef.current.style.outline = '';\n }\n };\n }, [isSelecting]);\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n setIsSelecting(false);\n setIsConfirmed(false);\n if (selectedElementRef.current) {\n selectedElementRef.current.style.outline = '';\n selectedElementRef.current = null;\n }\n }\n };\n\n const handleElementClick = async (e: MouseEvent) => {\n if (buttonRef.current && buttonRef.current.contains(e.target as Node)) {\n return;\n }\n\n e.preventDefault();\n e.stopPropagation();\n\n if (selectedElementRef.current) {\n selectedElementRef.current.style.outline = '';\n }\n\n const element = e.target as HTMLElement;\n element.style.outline = '2px solid red';\n\n selectedElementRef.current = element;\n setIsConfirmed(true);\n };\n\n const handleButtonClick = () => {\n if (!isSelecting && !isConfirmed) {\n setIsSelecting(true);\n if (selectedElementRef.current) {\n selectedElementRef.current.style.outline = '';\n selectedElementRef.current = null;\n }\n setIsConfirmed(false);\n } else if (isConfirmed) {\n if (selectedElementRef.current) {\n const elementInfo = {\n tag: selectedElementRef.current.tagName,\n id: selectedElementRef.current.id,\n classes: selectedElementRef.current.className,\n text: selectedElementRef.current.innerText,\n };\n\n triggerFeedback({\n feedback_type: 'user_feedback',\n elementInfo,\n page_url: window.location.href,\n timestamp: new Date().toISOString(),\n });\n\n setIsSelecting(false);\n setIsConfirmed(false);\n if (selectedElementRef.current) {\n selectedElementRef.current.style.outline = '';\n selectedElementRef.current = null;\n }\n } else {\n logger.error(`${LOG_MODULE} No element selected to confirm.`);\n }\n }\n };\n\n return (\n \n {isConfirmed\n ? 'Confirm or Select Other'\n : isSelecting\n ? 'Select Element to Report'\n : 'Report an Issue'}\n \n );\n};\n\nexport default FeedbackButton;\n","'use client';\n\nimport { Amplify } from 'aws-amplify';\nimport { amplifyConfig } from '@/config/amplify';\n\nAmplify.configure(amplifyConfig, { ssr: true });\n\nexport default function ConfigureAmplifyClientSide() {\n return null;\n}\n","'use client';\n\nimport { motion } from 'framer-motion';\nimport { usePathname } from 'next/navigation';\nimport { useState, useEffect } from 'react';\n\nconst FadeEffect = () => {\n const pathname = usePathname();\n const [isAnimating, setIsAnimating] = useState(false);\n\n useEffect(() => {\n setIsAnimating(true);\n const timer = setTimeout(() => setIsAnimating(false), 300); // Match this with your transition duration\n return () => clearTimeout(timer);\n }, [pathname]);\n\n return (\n \n );\n};\n\nexport default FadeEffect;\n","'use client';\n\nimport { motion } from 'framer-motion';\nimport { usePathname } from 'next/navigation';\nimport { ReactNode } from 'react';\nimport FadeEffect from './FadeEffect';\n\ninterface PageTransitionProps {\n children: ReactNode;\n}\n\nconst PageTransition: React.FC = ({ children }) => {\n const pathname = usePathname();\n\n return (\n <>\n \n \n {children}\n \n \n );\n};\n\nexport default PageTransition;\n","import logger from '@/layers/support/monitoring/logger';\nimport { ProviderProfile } from '@/types/models';\n\nconst LOG_MODULE = 'FE [Presentation / Utils / profileUtils]';\n\n/**\n * Checks if a provider profile requires completion\n * @param providerProfile The provider profile to check\n * @returns Boolean indicating if profile needs completion\n */\nexport function providerProfileNeedsCompletion(providerProfile: ProviderProfile | null): boolean {\n if (!providerProfile) {\n return false;\n }\n\n // Check both regular fields (for backward compatibility) and meta fields\n const hasNpi = !!providerProfile.npi || !!providerProfile.meta?.npi;\n const hasAcknowledgement = !!providerProfile.meta?.acknowledgement;\n\n const needsCompletion = !hasNpi || !hasAcknowledgement;\n\n logger.debug(`${LOG_MODULE} Provider profile completion check`, {\n needsCompletion,\n hasNpi,\n hasAcknowledgement,\n usesMetaFields: {\n npi: !!providerProfile.meta?.npi,\n acknowledgement: !!providerProfile.meta?.acknowledgement,\n },\n });\n\n return needsCompletion;\n}\n","'use client';\nimport logger from '@/layers/support/monitoring/logger';\nimport { UserGender, UserType } from '@/types/modelEnums';\nimport { ProviderProfile, User } from '@/types/models';\nimport { Authenticator, useAuthenticator } from '@aws-amplify/ui-react';\nimport { fetchUserAttributes } from 'aws-amplify/auth';\nimport {\n createContext,\n ReactNode,\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport { getProfile } from '../services/users';\nimport { providerProfileNeedsCompletion } from '../utils/profileUtils';\nimport { useGlobalState } from './GlobalStateContext';\n\nconst LOG_MODULE = 'FE [Presentation / Context / AuthContext]';\n\n// Storage keys\nconst AUTH_CACHE_KEY = 'r2h_auth_cache';\n\ninterface AuthCache {\n user: User | null;\n timestamp: number;\n // We don't cache full profile for security reasons, just user basic info\n}\n\ninterface AuthContextType {\n isProfileLoading: boolean;\n refreshProfile: () => Promise;\n refreshUserAttributes: () => Promise;\n userRole: string | null;\n needsProviderProfileCompletion: boolean;\n}\n\ninterface AuthProviderProps {\n children: ReactNode;\n}\n\nconst AuthContext = createContext(undefined);\n\n// Helper to load cached user data with type safety\nconst loadCachedAuthState = (): AuthCache | null => {\n if (typeof window === 'undefined') return null;\n try {\n const cachedData = localStorage.getItem(AUTH_CACHE_KEY);\n if (!cachedData) return null;\n\n const parsed = JSON.parse(cachedData) as AuthCache;\n // Check if cache is too old (24 hours)\n const cacheAge = Date.now() - parsed.timestamp;\n if (cacheAge > 24 * 60 * 60 * 1000) {\n localStorage.removeItem(AUTH_CACHE_KEY);\n return null;\n }\n return parsed;\n } catch (e) {\n console.error('Error loading cached auth state', e);\n return null;\n }\n};\n\n// Helper to save cache\nconst saveAuthCache = (user: User | null) => {\n if (typeof window === 'undefined') return;\n try {\n if (!user) {\n localStorage.removeItem(AUTH_CACHE_KEY);\n return;\n }\n\n const cache: AuthCache = {\n user,\n timestamp: Date.now(),\n };\n localStorage.setItem(AUTH_CACHE_KEY, JSON.stringify(cache));\n } catch (e) {\n console.error('Error saving auth cache', e);\n }\n};\n\nexport const AuthProvider: React.FC = ({ children }) => {\n const { user: globalUser, profile: globalProfile, setUser, setProfile } = useGlobalState();\n const { user, authStatus } = useAuthenticator(context => [context.user, context.authStatus]);\n const [isProfileLoading, setIsProfileLoading] = useState(false);\n const [userAttributes, setUserAttributes] = useState(null);\n const [userRole, setUserRole] = useState(null);\n const [needsProviderProfileCompletion, setNeedsProviderProfileCompletion] =\n useState(false);\n const profileFetchedRef = useRef(false);\n const cacheInitializedRef = useRef(false);\n\n // Initialize from cache on mount - exactly once\n useEffect(() => {\n if (cacheInitializedRef.current || globalUser) return;\n\n const cachedState = loadCachedAuthState();\n if (cachedState?.user && !globalUser) {\n logger.debug(`${LOG_MODULE} Initializing from cache`, cachedState);\n setUser(cachedState.user);\n // We'll set userRole from the cached user\n if (cachedState.user.role) {\n setUserRole(cachedState.user.role);\n }\n }\n\n cacheInitializedRef.current = true;\n }, [globalUser, setUser]);\n\n logger.debug(`${LOG_MODULE}`, {\n isProfileLoading,\n globalUser,\n globalProfile,\n user,\n authStatus,\n userAttributes,\n userRole,\n fromCache: cacheInitializedRef.current,\n });\n\n const fetchProfile = useCallback(\n async (userId: string, userType: UserType) => {\n if (profileFetchedRef.current) return;\n setIsProfileLoading(true);\n try {\n const fetchedProfile = await getProfile(userId, userType);\n setProfile(fetchedProfile);\n profileFetchedRef.current = true;\n } catch (error) {\n console.error('Error fetching profile:', error);\n } finally {\n setIsProfileLoading(false);\n }\n },\n [setProfile],\n );\n\n const refreshProfile = useCallback(async () => {\n if (globalUser) {\n profileFetchedRef.current = false;\n await fetchProfile(globalUser.id, globalUser.type);\n }\n }, [globalUser, fetchProfile]);\n\n // Add a function to manually refresh user attributes when needed\n const refreshUserAttributes = useCallback(async () => {\n if (user) {\n try {\n const attributes = await fetchUserAttributes();\n setUserAttributes(attributes);\n logger.debug(`${LOG_MODULE} Refreshed user attributes`, attributes);\n } catch (error) {\n logger.error(`${LOG_MODULE} Error refreshing user attributes`, error);\n }\n }\n }, [user]);\n\n // Clear global state when user signs out\n useEffect(() => {\n // When authStatus changes to 'unauthenticated' (logged out), clear global state\n if (authStatus === 'unauthenticated' && (globalUser || globalProfile)) {\n logger.debug(`${LOG_MODULE} Detected sign out, clearing global state`);\n setUser(null);\n setProfile(null);\n setUserAttributes(null);\n setUserRole(null);\n profileFetchedRef.current = false;\n saveAuthCache(null); // Clear cache on sign out\n }\n }, [authStatus, globalUser, globalProfile, setUser, setProfile]);\n\n useEffect(() => {\n const fetchAttributes = async () => {\n if (user && !userAttributes) {\n try {\n const attributes = await fetchUserAttributes();\n setUserAttributes(attributes);\n const role = attributes['custom:role']?.toLowerCase() || null;\n setUserRole(role);\n } catch (error) {\n // This can happen during logout, so we handle it gracefully\n logger.debug(\n `${LOG_MODULE} Error fetching user attributes, user may be logging out`,\n error,\n );\n setUserAttributes(null);\n setUserRole(null);\n }\n }\n };\n fetchAttributes();\n }, [user, userAttributes]);\n\n useEffect(() => {\n if (user && userAttributes) {\n const currentUser: User = {\n id: user.userId,\n type: userAttributes['custom:type'] as UserType,\n role: userAttributes['custom:role']?.toLowerCase(),\n };\n currentUser.personal_info = {\n email: userAttributes['email'] as string,\n first_name: userAttributes['custom:first_name'] as string,\n last_name: userAttributes['custom:last_name'] as string,\n gender: (userAttributes['custom:gender'] as UserGender) || undefined,\n age: userAttributes['custom:age']\n ? Number(userAttributes['custom:age'])\n : undefined,\n institution: userAttributes['custom:institution'] as string,\n };\n\n // Log for debugging\n logger.debug(`${LOG_MODULE} Setting user with attributes`, {\n currentUser,\n attributesPresent: !!userAttributes['custom:first_name'],\n });\n\n setUser(currentUser);\n\n // Update cache when we get fresh user data\n saveAuthCache(currentUser);\n }\n }, [user, userAttributes, setUser]);\n\n useEffect(() => {\n if (globalUser && !globalProfile && !profileFetchedRef.current) {\n fetchProfile(globalUser.id, globalUser.type);\n }\n }, [globalUser, globalProfile, fetchProfile]);\n\n // Check if provider profile is complete\n useEffect(() => {\n if (globalUser?.type === UserType.PROVIDER && globalProfile) {\n const providerProfile = globalProfile as ProviderProfile;\n const needsCompletion = providerProfileNeedsCompletion(providerProfile);\n\n setNeedsProviderProfileCompletion(needsCompletion);\n } else {\n setNeedsProviderProfileCompletion(false);\n }\n }, [globalUser, globalProfile]);\n\n const value = {\n isProfileLoading,\n refreshProfile,\n refreshUserAttributes,\n userRole,\n needsProviderProfileCompletion,\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport const useAuth = () => {\n const context = useContext(AuthContext);\n if (context === undefined) {\n throw new Error('useAuth must be used within an AuthProvider');\n }\n return context;\n};\n","import React, { Component, ReactNode } from 'react';\nimport { useNotification } from '@/layers/presentation/context/NotificationContext';\nimport { NotificationType } from '@/types/modelEnums';\n\ninterface NotificationBoundaryProps {\n children: ReactNode;\n onNotification?: (error: Error, errorInfo: React.ErrorInfo) => void;\n}\n\ninterface NotificationBoundaryState {\n hasError: boolean;\n}\n\nclass NotificationBoundaryWithoutHook extends Component<\n NotificationBoundaryProps,\n NotificationBoundaryState\n> {\n constructor(props: NotificationBoundaryProps) {\n super(props);\n this.state = { hasError: false };\n }\n\n static getDerivedStateFromError() {\n return { hasError: true };\n }\n\n componentDidCatch(error: Error, errorInfo: React.ErrorInfo) {\n // Access the notification handling context\n if (this.props.onNotification) {\n this.props.onNotification(error, errorInfo);\n }\n }\n\n render() {\n if (this.state.hasError) {\n // Render fallback UI\n return

Something went wrong.

;\n }\n\n return this.props.children;\n }\n}\n\ninterface NotificationBoundaryWithHookProps extends NotificationBoundaryProps {}\n\nconst NotificationBoundary: React.FC = ({ children }) => {\n const { handleNotification } = useNotification();\n\n return (\n \n handleNotification(NotificationType.Error, error.message, { errorInfo })\n }\n >\n {children}\n \n );\n};\n\nexport default NotificationBoundary;\n","// src/layers/presentation/i18n/config.common.ts\n\nimport { Resource } from 'i18next';\n\n// Import all namespace translations\nimport common from './locales/en/common.json';\nimport about from './locales/en/about.json';\nimport components from './locales/en/components.json';\nimport provider from './locales/en/provider.json';\nimport sponsor from './locales/en/sponsor.json';\nimport patient from './locales/en/patient.json';\nimport users from './locales/en/users.json';\nimport blog from './locales/en/blog.json';\n\n/**\n * Shared i18n resources and configurations.\n */\nexport const resources: Resource = {\n en: {\n common,\n about,\n components,\n provider,\n sponsor,\n patient,\n users,\n blog,\n },\n};\n\nexport const defaultNS = 'common';\n\nexport const supportedLngs = ['en'];\n\nexport const fallbackLng = 'en';\n\nexport const namespaces = [\n 'common',\n 'about',\n 'components',\n 'provider',\n 'sponsor',\n 'patient',\n 'users',\n 'blog',\n];\n\nexport const i18nConfig = {\n resources,\n supportedLngs,\n fallbackLng,\n lng: fallbackLng,\n defaultNS,\n ns: namespaces,\n};\n","// src/layers/presentation/i18n/config.client.ts\n\nimport { createInstance, i18n as I18nInstance } from 'i18next';\nimport { initReactI18next } from 'react-i18next';\nimport { i18nConfig } from './config.common';\n\n/**\n * Initializes the i18n instance with translations preloaded for client-side usage.\n */\nexport const initializeI18n = (): I18nInstance => {\n const i18nInstance = createInstance();\n\n i18nInstance.use(initReactI18next).init({\n ...i18nConfig,\n react: {\n useSuspense: false, // Disable suspense for SSR compatibility\n },\n });\n\n return i18nInstance;\n};\n","'use client';\n\nimport React, { useMemo } from 'react';\nimport { I18nextProvider } from 'react-i18next';\nimport { initializeI18n } from './config.client';\nimport { i18n as I18nInstance } from 'i18next';\n\ninterface I18nProviderProps {\n lng: string;\n children: React.ReactNode;\n}\n\n/**\n * I18nProvider initializes the i18n instance and provides it to the app.\n */\nexport const I18nProvider: React.FC = ({ lng, children }) => {\n const i18nInstance: I18nInstance = useMemo(() => {\n const instance = initializeI18n();\n instance.changeLanguage(lng);\n return instance;\n }, [lng]);\n\n return {children};\n};\n","'use client';\n\nimport { Amplify } from 'aws-amplify';\nimport { Authenticator } from '@aws-amplify/ui-react';\nimport { ReactNode } from 'react';\nimport { amplifyConfig } from '@/config/amplify';\n\nAmplify.configure(amplifyConfig);\n\ninterface AmplifyProviderProps {\n children: ReactNode;\n}\n\nexport function AmplifyProvider({ children }: AmplifyProviderProps) {\n return {children};\n}\n","'use client';\n\nimport { SubscriptionModalProvider as ModalProvider } from '@/layers/presentation/components/ui/SubscriptionPrompt';\nimport React from 'react';\n\nexport function SubscriptionModalProvider({ children }: { children: React.ReactNode }) {\n return {children};\n}\n","import { useEffect } from 'react';\n\nconst GA_TRACKING_ID = 'G-BSPZ9609MG';\nconst CLARITY_TRACKING_ID = 'p42ru6l7pq';\n\ndeclare global {\n interface Window {\n dataLayer: any[];\n gtag: (...args: any[]) => void;\n }\n}\n\n/**\n * Analytics component to integrate Google Clarity and GA4 scripts.\n * Loads necessary analytics scripts asynchronously.\n */\nconst Analytics = () => {\n useEffect(() => {\n // Google Analytics (GA4) Initialization\n const gaScript = document.createElement('script');\n gaScript.async = true;\n gaScript.src = `https://www.googletagmanager.com/gtag/js?id=${GA_TRACKING_ID}`;\n document.head.appendChild(gaScript);\n\n window.dataLayer = window.dataLayer || [];\n function gtag(...args: any[]) {\n window.dataLayer.push(args);\n }\n window.gtag = gtag;\n gtag('js', new Date());\n gtag('config', GA_TRACKING_ID);\n\n // Microsoft Clarity Initialization\n const clarityScript = document.createElement('script');\n clarityScript.type = 'text/javascript';\n clarityScript.async = true;\n clarityScript.innerHTML = `\n (function(c,l,a,r,i,t,y){\n c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};\n t=l.createElement(r);t.async=1;t.src=\"https://www.clarity.ms/tag/\"+i;\n y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);\n })(window, document, \"clarity\", \"script\", \"${CLARITY_TRACKING_ID}\");\n `;\n document.head.appendChild(clarityScript);\n }, []);\n\n return null;\n};\n\nexport default Analytics;\n","'use client';\n\nimport { NextUIProvider } from '@nextui-org/react';\n\nimport NotificationBoundary from '@/layers/presentation/components/utils/NotificationBoundary';\nimport { AuthProvider } from '@/layers/presentation/context/AuthContext';\nimport { GlobalStateProvider } from '@/layers/presentation/context/GlobalStateContext';\nimport { IntercomProvider } from '@/layers/presentation/context/IntercomContext';\nimport { NotificationProvider } from '@/layers/presentation/context/NotificationContext';\nimport { I18nProvider } from '@/layers/presentation/i18n/provider';\nimport { AmplifyProvider } from '@/layers/presentation/providers/AmplifyProvider';\nimport { SubscriptionModalProvider } from '@/layers/presentation/providers/SubscriptionModalProvider';\nimport Analytics from '../components/utils/Analytics';\n\nexport function Providers({ children }: { children: React.ReactNode }) {\n return (\n \n \n \n \n \n \n \n \n \n \n {children}\n \n \n \n \n \n \n \n \n \n );\n}\n","// extracted by mini-css-extract-plugin"],"names":["Promise","resolve","then","__webpack_require__","t","bind","PUBLIC_EMAIL_DOMAINS","amplifyConfig","Auth","Cognito","userPoolId","process","userPoolClientId","__webpack_exports__","triggerFeedback","useIntercom","isSelecting","setIsSelecting","useState","isConfirmed","setIsConfirmed","buttonRef","useRef","selectedElementRef","useEffect","document","body","style","cursor","addEventListener","handleElementClick","handleKeyDown","removeEventListener","current","outline","e","key","contains","target","preventDefault","stopPropagation","element","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsx","Button","ref","onPress","feedback_type","elementInfo","tag","tagName","id","classes","className","text","innerText","page_url","window","location","href","timestamp","Date","toISOString","logger","error","concat","color","title","ConfigureAmplifyClientSide","Amplify","configure","ssr","utils_FadeEffect","pathname","usePathname","isAnimating","setIsAnimating","timer","setTimeout","clearTimeout","jsx_runtime","motion","div","animate","opacity","backgroundColor","transition","duration","utils_PageTransition","children","param","jsxs","Fragment","FadeEffect","initial","exit","LOG_MODULE","AUTH_CACHE_KEY","AuthContext","createContext","undefined","loadCachedAuthState","cachedData","localStorage","getItem","parsed","JSON","parse","cacheAge","now","removeItem","console","saveAuthCache","user","cache","setItem","stringify","AuthProvider","globalUser","profile","globalProfile","setUser","setProfile","useGlobalState","authStatus","useAuthenticator","context","isProfileLoading","setIsProfileLoading","userAttributes","setUserAttributes","userRole","setUserRole","needsProviderProfileCompletion","setNeedsProviderProfileCompletion","profileFetchedRef","cacheInitializedRef","cachedState","debug","role","fromCache","fetchProfile","useCallback","userId","userType","fetchedProfile","getProfile","refreshProfile","type","refreshUserAttributes","attributes","fetchUserAttributes","fetchAttributes","toLowerCase","currentUser","personal_info","email","first_name","last_name","gender","age","Number","institution","attributesPresent","UserType","PROVIDER","providerProfileNeedsCompletion","providerProfile","hasNpi","npi","meta","hasAcknowledgement","acknowledgement","needsCompletion","usesMetaFields","Authenticator","Provider","value","useAuth","useContext","NotificationBoundaryWithoutHook","Component","getDerivedStateFromError","hasError","componentDidCatch","errorInfo","props","onNotification","render","state","h1","constructor","utils_NotificationBoundary","handleNotification","useNotification","NotificationType","Error","message","i18nConfig","resources","en","common","about","components","provider","sponsor","patient","users","blog","supportedLngs","fallbackLng","lng","defaultNS","ns","initializeI18n","i18nInstance","createInstance","use","initReactI18next","init","react","useSuspense","I18nProvider","useMemo","instance","changeLanguage","I18nextProvider","i18n","AmplifyProvider","SubscriptionModalProvider","ModalProvider","GA_TRACKING_ID","utils_Analytics","gaScript","createElement","gtag","_len","arguments","length","args","_key","dataLayer","push","async","src","head","appendChild","clarityScript","innerHTML","Providers","GlobalStateProvider","NextUIProvider","NotificationProvider","NotificationBoundary","IntercomProvider","Analytics"],"sourceRoot":""}