1!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="000f98f8-3022-4bec-a50e-6f203abc4430",e._sentryDebugIdIdentifier="sentry-dbid-000f98f8-3022-4bec-a50e-6f203abc4430")}catch(e){}}(),(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7177,25840],{2870:(e,t,r)=>{"use strict";r.d(t,{D:()=>l,N:()=>o});var n=r(95155),i=r(12115);let a=(0,i.createContext)(void 0);function s(){try{let e=localStorage.getItem("theme");return"light"===e||"dark"===e||"gray"===e?e:null}catch(e){return null}}function o(e){let{children:t,forcedTheme:r,persistTheme:o=!0}=e,[l,d]=(0,i.useState)(()=>{if(r)return r;let e=document.documentElement.classList;if(e.contains("dark"))return e.contains("theme-gray")?"gray":"dark";let t=s();return t||"light"}),[u,c]=(0,i.useState)(!1),m="light"===l?"light":"dark";return(0,i.useEffect)(()=>{c(!0)},[]),(0,i.useEffect)(()=>{var e;if(u){if(r)return void d(r);d(null!=(e=s())?e:"light")}},[r,u]),(0,i.useEffect)(()=>{if(u)try{let e=document.documentElement;e.classList.toggle("dark","light"!==l),e.classList.toggle("theme-gray","gray"===l),o&&!r&&localStorage.setItem("theme",l)}catch(e){console.warn("Failed to apply theme or save to localStorage:",e)}},[l,u,o,r]),(0,n.jsx)(a.Provider,{value:{theme:m,preference:l,toggleTheme:()=>{d(e=>"light"===e?"dark":"light")},setTheme:e=>{d(e)},setPreference:e=>{d(e)}},children:t})}function l(){let e=(0,i.useContext)(a);if(void 0===e)throw Error("useTheme must be used within a ThemeProvider");return e}},7713:(e,t,r)=>{"use strict";r.d(t,{default:()=>A});var n=r(12115),i=r(20063),a=r(47165),s=r(84426),o=r(67921);let l=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,d=e=>{try{window.$crisp=window.$crisp||[],window.$crisp.push(e)}catch(e){}},u=e=>{(e=>"string"==typeof e&&l.test(e.trim()))(e.email)&&d(["set","user:email",[e.email.trim()]]),d(["set","user:nickname",[e.nickname]]),d(["set","session:data",["user_id",e.userId]]),d(["set","session:data",["campaigns_count",e.campaignsCount]]),d(["set","session:data",["campaigns_active_count",e.campaignsActiveCount]]),d(["set","session:data",["nextjs","yes"]]),d(["set","session:data",["phone_number",e.phoneNumber]]),d(["set","session:data",["stripe_customer_id",e.stripeCustomerId]])},c={email:"",nickname:"",userId:"",campaignsCount:"",campaignsActiveCount:"",phoneNumber:"",stripeCustomerId:""},m="https://client.crisp.chat/l.js",p=null,f=e=>null==e?"":String(e).trim(),E=async()=>{var e;let{authenticated:t,user:r}=await s.y.initializeAuth();if(!t||!(null==r?void 0:r.id))return null;let n=await fetch("/api/campaigns?page=1&pageSize=1&view=counts",{headers:{"Content-Type":"application/json"},credentials:"include"}),i=n.ok?await n.json().catch(()=>null):null,a=null!=(e=null==i?void 0:i.tabCounts)?e:{};return{email:f(r.email),nickname:(0,o.Mn)(r)||f(r.email),userId:f(r.id),campaignsCount:f(a.all),campaignsActiveCount:f(a.active),phoneNumber:f(r.phoneNumber),stripeCustomerId:f(r.stripeCustomerId)}},h=()=>{p=null,u(c)},g=async()=>{let e=await (0,a.fetchWithCsrf)("/api/user/crisp-migration-bootstrap",{method:"POST",headers:{"Content-Type":"application/json"}});return e.ok?await e.json().catch(()=>null):null};function A(){let e=(0,i.usePathname)();return(0,n.useEffect)(()=>{let e="f95ff634-2bd4-43ad-bd99-294f68cf87fe";if(!e)return void console.warn("NEXT_PUBLIC_CRISP_WEBSITE_ID is not defined");if(window.$crisp=window.$crisp||[],window.CRISP_WEBSITE_ID=e,!document.querySelector('script[src="'.concat(m,'"]'))){let e=document.createElement("script");e.src=m,e.async=!0,document.head.appendChild(e)}},[]),(0,n.useEffect)(()=>{if((null==e?void 0:e.startsWith("/sms"))||(null==e?void 0:e.startsWith("/dashboard/sms")))return void d(["do","chat:hide"]);d(["do","chat:show"])},[e]),(0,n.useEffect)(()=>{let e=!1;return(async()=>{try{let r=await E();if(e)return;if(!r)return void h();if(u(r),r.userId&&p!==r.userId){let n=await g();if(e)return;if(null==n?void 0:n.success){var t;p=r.userId,n.shouldApply&&n.migrationDate&&(t=n.migrationDate,d(["set","session:data",["migrated_to_v2","yes"]]),d(["set","session:data",["migration_date",t]]),d(["set","session:event",[[["migration:started"]]]]))}}}catch(t){e||h()}})(),()=>{e=!0}},[e]),(0,n.useEffect)(()=>{let e=!1;return(async()=>{try{var t,r;let{authenticated:n,user:i}=await s.y.initializeAuth();if(e||!n||!(null==i?void 0:i.id))return;let a=window;a.mlabsFeedback=a.mlabsFeedback||[],a.mlabsFeedback.push(["identify",{userId:f(i.id),email:f(i.email),plan:null==(r=i.subscription)||null==(t=r.plan)?void 0:t.name}])}catch(e){}})(),()=>{e=!0}},[e]),null}},11526:(e,t,r)=>{"use strict";r.r(t),r.d(t,{EVENTS:()=>i,PROPERTY_NAMES:()=>a,createAlias:()=>n.createAlias,ensureMixpanelReady:()=>n.ensureMixpanelReady,getBrowserDeviceId:()=>n.getBrowserDeviceId,getDeviceId:()=>n.getDeviceId,getSessionRecordingProperties:()=>n.getSessionRecordingProperties,getSessionReplayUrl:()=>n.getSessionReplayUrl,identifyUser:()=>n.identifyUser,identifyUserServerSide:()=>d,incrementUserProperty:()=>n.incrementUserProperty,initMixpanel:()=>n.initMixpanel,isMixpanelEnabled:()=>n.isMixpanelEnabled,isSessionRecordingActive:()=>n.isSessionRecordingActive,optInToAnalytics:()=>n.optInToAnalytics,optOutOfAnalytics:()=>n.optOutOfAnalytics,resetUser:()=>n.resetUser,setGroup:()=>n.setGroup,setUserProperties:()=>n.setUserProperties,startSessionRecording:()=>n.startSessionRecording,stopSessionRecording:()=>n.stopSessionRecording,timeEvent:()=>n.timeEvent,track:()=>n.track,trackError:()=>o,trackFormSubmit:()=>s,trackPageView:()=>n.trackPageView,trackRevenue:()=>n.trackRevenue,trackServerSide:()=>l});var n=r(63252);let i={SIGNUP_STARTED:"Signup Started",SIGNUP_COMPLETED:"Signup Completed",LOGIN_ATTEMPTED:"Login Attempted",LOGIN_SUCCEEDED:"Login Succeeded",LOGIN_FAILED:"Login Failed",
1LOGOUT:"Logout",EMAIL_VERIFIED:"Email Verified",PASSWORD_RESET_REQUESTED:"Password Reset Requested",PASSWORD_RESET_COMPLETED:"Password Reset Completed",ONBOARDING_STARTED:"Onboarding Started",ONBOARDING_STEP_COMPLETED:"Onboarding Step Completed",ONBOARDING_COMPLETED:"Onboarding Completed",ONBOARDING_ABANDONED:"Onboarding Abandoned",WELCOME_MODAL_SHOWN:"Welcome Modal Shown",WELCOME_MODAL_CTA_CLICKED:"Welcome Modal CTA Clicked",WELCOME_MODAL_DISMISSED:"Welcome Modal Dismissed",SETUP_VIDEO_PLAYED:"Setup Video Played",CAMPAIGN_WIZARD_OPENED:"Campaign Wizard Opened",CAMPAIGN_WIZARD_STEP_COMPLETED:"Campaign Wizard Step Completed",CAMPAIGN_WIZARD_ABANDONED:"Campaign Wizard Abandoned",CAMPAIGN_CREATED:"Campaign Created",CAMPAIGN_LAUNCHED:"Campaign Launched",CAMPAIGN_PAUSED:"Campaign Paused",CAMPAIGN_RESUMED:"Campaign Resumed",CAMPAIGN_DELETED:"Campaign Deleted",CAMPAIGN_SETTINGS_UPDATED:"Campaign Settings Updated",CAMPAIGN_CSV_UPLOADED:"Campaign Contacts Uploaded",VOICE_CLONE_STARTED:"Voice Clone Creation Started",VOICE_CLONE_RECORDING_UPLOADED:"Voice Clone Recording Uploaded",VOICE_CLONE_CREATED:"Voice Clone Created",VOICE_CLONE_DELETED:"Voice Clone Deleted",PREMADE_VOICE_SELECTED:"Premade Voice Selected",PHONE_NUMBER_VERIFICATION_STARTED:"Phone Number Verification Started",PHONE_NUMBER_VERIFIED:"Phone Number Verified",PHONE_NUMBER_VERIFICATION_FAILED:"Phone Number Verification Failed",PHONE_NUMBER_PURCHASED:"Phone Number Purchased",PHONE_NUMBER_DELET
1ED:"Phone Number Deleted",TRIAL_PAGE_VIEWED:"Trial Page Viewed",EXPERIMENT_VIEWED:"Experiment Viewed",TRIAL_STARTED:"Trial Started",TRIAL_CONVERTED:"Trial Converted to Paid",SUBSCRIPTION_CREATED:"Subscription Created",SUBSCRIPTION_UPGRADED:"Subscription Upgraded",SUBSCRIPTION_DOWNGRADED:"Subscription Downgraded",SUBSCRIPTION_CANCELLED:"Subscription Cancelled",PAYMENT_METHOD_ADDED:"Payment Method Added",PAYMENT_METHOD_UPDATED:"Payment Method Updated",PAYMENT_SUCCEEDED:"Payment Succeeded",PAYMENT_FAILED:"Payment Failed",CREDITS_PURCHASED:"Voice Units Purchased",ORGANIZATION_CREATED:"Organization Created",TEAM_MEMBER_INVITED:"Team Member Invited",TEAM_INVITATION_ACCEPTED:"Team Invitation Accepted",TEAM_INVITATION_RESENT:"Team Invitation Resent",TEAM_INVITATION_CANCELLED:"Team Invitation Cancelled",TEAM_MEMBER_REMOVED:"Team Member Removed",DNC_LIST_UPLOADED:"DNC List Uploaded",DNC_NUMBER_ADDED:"DNC Number Added",DNC_VALIDATION_COMPLETED:"DNC Validation Completed",FEATURE_USED:"Feature Used",DASHBOARD_VIEWED:"Dashboard Viewed",LIBRARY_ACCESSED:"Library Accessed",ANALYTICS_VIEWED:"Analytics Vie
1wed",SETTINGS_CHANGED:"Settings Changed",EXPORT_DOWNLOADED:"Export Downloaded",INTEGRATION_CONNECTED:"Integration Connected",ERROR_OCCURRED:"Error Occurred",API_ERROR:"API Error",RATE_LIMIT_HIT:"Rate Limit Hit",PAGE_VIEWED:"Page Viewed"},a={USER_ID:"user_id",EMAIL:"email",TIMESTAMP:"timestamp",DURATION_MS:"duration_ms",SUCCESS:"success",SOURCE:"source",PAGE:"page",ORGANIZATION_ID:"organization_id",CAMPAIGN_ID:"campaign_id",VOICE_CLONE_ID:"voice_clone_id",PHONE_NUMBER:"phone_number",PLAN_NAME:"plan_name",AMOUNT:"amount",ERROR_MESSAGE:"error_message"};async function s(e,t,n){(await Promise.resolve().then(r.bind(r,63252))).track({name:"Form Submitted",properties:{form_name:e,success:n,form_fields:Object.keys(t),field_count:Object.keys(t).length}})}async function o(e,t){(await Promise.resolve().then(r.bind(r,63252))).track({name:i.ERROR_OCCURRED,properties:{error_message:e instanceof Error?e.message:e,error_stack:e instanceof Error?e.stack:void 0,error_context:t,page_url:window.location.href}})}async function l(e){console.warn("trackServerSide called on client - use track() instead")}async function d(e,t,r){console.warn("identifyUserServerSide called on client - use identifyUser() instead")}},12357:(e,t,r)=>{"use strict";r.d(t,{CsrfProvider:()=>s});var n=r(95155),i=r(12115),a=r(47165);function s(e){let{children:t}=e;return(0,i.useEffect)(()=>{(0,a.Z1)()},[]),(0,n.jsx)(n.Fragment,{children:t})}},20063:(e,t,r)=>{"use strict";var n=r(47260);r.o(n,"useParams")&&r.d(t,{useParams:function(){return n.useParams}}),r.o(n,"usePathname")&&r.d(t,{usePathname:function(){return n.usePathname}}),r.o(n,"useRouter")&&r.d(t,{useRouter:function(){return n.useRouter}}),r.o(n,"useSearchParams")&&r.d(t,{useSearchParams:function(){return n.useSearchParams}})},28530:(e,t,r)=>{Promise.resolve().then(r.bind(r,7713)),Promise.resolve().then(r.bind(r,12357)),Promise.resolve().then(r.bind(r,39611)),Promise.resolve().then(r.bind(r,51527)),Promise.resolve().then(r.bind(r,85263)),Promise.resolve().then(r.t.bind(r,68464,23)),Promise.resolve().then(r.t.bind(r,73677,23))},39611:(e,t,r)=>{"use strict";r.d(t,{default:()=>o});var n=r(95155),i=r(22663),a=r(12115);function s(e){let{maxVisible:t=5}=e,{toasts:r}=(0,i.Nk)();return(0,a.useEffect)(()=>{if(!Array.isArray(r)||0===r.length)return;let e=r.filter(e=>e.visible&&!e.dismissed);e.length<=t||e.slice(t).forEach(e=>i.Ay.dismiss(e.id))},[r,t]),null}function o(){return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s,{maxVisible:5}),(0,n.jsx)(i.l$,{position:"top-right",containerStyle:{zIndex:99999},toastOptions:{duration:8e3,style:{background:"#ffffff",color:"#111827",border:"1px solid #e5e7eb",borderRadius:"0.5rem",boxShadow:"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)",maxWidth:"min(520px, calc(100vw - 32px))",overflowWrap:"anywhere",whiteSpace:"normal",wordBreak:"break-word"},success:{style:{border:"1px solid #22c55e",background:"#f0fdf4",color:"#166534"},iconTheme:{primary:"#22c55e",secondary:"#166534"}},error:{style:{border:"1px solid #ef4444",background:"#fef2f2",color:"#991b1b"},iconTheme:{primary:"#ef4444",secondary:"#991b1b"}}},children:e=>(0,n.jsx)(i.bv,{toast:e,children:t=>{let{icon:r,message:a}=t;return(0,n.jsxs)("div",{className:"flex max-w-full items-start gap-3",children:[(0,n.jsx)("div",{className:"mt-0.5 flex-shrink-0",children:r}),(0,n.jsx)("div",{className:"min-w-0 flex-1 whitespace-normal break-words [overflow-wrap:anywhere]",children:a}),(0,n.jsx)("button",{type:"button",onClick:()=>i.Ay.dismiss(e.id),className:"ml-2 -mr-1 flex-shrink-0 rounded p-1 text-gray-500 hover:bg-gray-100 hover:text-gray-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-[#6c60f0]","aria-label":"Dismiss notification",children:(0,n.jsx)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"h-4 w-4","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M6 18L18 6M6 6l12 12"})})})]})}})})]})}},47165:(e,t,r)=>{"use strict";r.d(t,{Qm:()=>o,Z1:()=>c,f$:()=>m,fetchWithCsrf:()=>d,setCsrfTokenCache:()=>l,vL:()=>u});var n=r(71704);let i=null,a=null;function s(e){if("undefined"==typeof document)return null;let t=document.cookie.match(RegExp("(^| )"+e+"=([^;]+)"));
1return t&&t[2]?decodeURIComponent(t[2]):null}function o(){if(i)return i;let e="__Host-csrf",t=s(e)||s(e)||s("csrfToken");return t&&(i=t),t}function l(e){i=e}async function d(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=(t.method||"GET").toUpperCase(),n="POST"===r||"PUT"===r||"PATCH"===r||"DELETE"===r,i=new Headers(t.headers||{});if(n){let e=o();e||(e=await c()),e?i.set("x-csrf-token",e):console.warn("CSRF token not found. Request may be rejected.")}let a=await fetch(e,{...t,headers:i,credentials:t.credentials||"include"});if(403===a.status)try{var s,l,d;let r=await a.clone().json().catch(()=>({}));if("INSUFFICIENT_PERMISSIONS"===r.code)return window.dispatchEvent(new CustomEvent("permission-denied",{detail:{feature:r.feature,required:r.required,url:"string"==typeof e?e:e.url}})),a;if(n&&("SESSION_EXPIRED"===r.code||(null==(s=r.error)?void 0:s.toLowerCase().includes("csrf"))||(null==(l=r.error)?void 0:l.toLowerCase().includes("session"))||(null==(d=r.error)?void 0:d.toLowerCase().includes("expired")))){m();let r=await c();if(r){let n=new Headers(i);n.set("x-csrf-token",r);let a={...t,headers:n},s=await fetch(e,{...a,credentials:t.credentials||"include"});if(s.ok||403!==s.status)return s}}}catch(e){console.error("Error handling 403 response:",e)}return a}
1async function u(e){try{let t=await e.json();return(0,n.J)(t,e.status)}catch(t){return(0,n.J)({},e.status)}}async function c(){return a||(a=(async()=>{try{let e=await fetch("/api/auth/csrf",{credentials:"include"});if(!e.ok)return console.error("CSRF bootstrap failed with status:",e.status),null;let t=(await e.json()).csrfToken||null;return t&&(i=t),t}catch(e){return console.error("Failed to bootstrap CSRF token:",e),null}finally{a=null}})())}function m(){i=null}},49675:(e,t,r)=>{"use strict";let n;r.d(t,{A:()=>o});let i={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)},a=new Uint8Array(16),s=[];for(let e=0;e<256;++e)s.push((e+256).toString(16).slice(1));let o=function(e,t,r){if(i.randomUUID&&!t&&!e)return i.randomUUID();var o=e,l=r;let d=(o=o||{}).random??o.rng?.()??function(){if(!n){if("undefined"==typeof crypto||!crypto.getRandomValues)throw Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");n=crypto.getRandomValues.bind(crypto)}return n(a)}();if(d.length<16)throw Error("Random bytes length must be >= 16");if(d[6]=15&d[6]|64,d[8]=63&d[8]|128,t){if((l=l||0)<0||l+16>t.length)throw RangeError(`UUID byte range ${l}:${l+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[l+e]=d[e];return t}return function(e,t=0){return(s[e[t+0]]+s[e[t+1]]+s[e[t+2]]+s[e[t+3]]+"-"+s[e[t+4]]+s[e[t+5]]+"-"+s[e[t+6]]+s[e[t+7]]+"-"+s[e[t+8]]+s[e[t+9]]+"-"+s[e[t+10]]+s[e[t+11]]+s[e[t+12]]+s[e[t+13]]+s[e[t+14]]+s[e[t+15]]).toLowerCase()}(d)}},51527:(e,t,r)=>{"use strict";r.d(t,{default:()=>l});var n=r(95155),i=r(12115),a=r(20063),s=r(11526);function o(){let e=(0,a.usePathname)(),t=(0,a.useSearchParams)(),r=(0,i.useRef)("");return(0,i.useEffect)(()=>{(0,s.initMixpanel)()},[]),(0,i.useEffect)(()=>{var n;let i=null!=e?e:"",a=null!=(n=null==t?void 0:t.toString())?n:"",o=i+(a?"?".concat(a):"");o!==r.current&&(r.current=o,(0,s.trackPageView)(i||"/",{path:i,search:a,full_url:o}))},[e,t]),null}function l(){return(0,s.isMixpanelEnabled)()?(0,n.jsx)(i.Suspense,{fallback:null,children:(0,n.jsx)(o,{})}):null}},67921:(e,t,r)=>{"use strict";r.d(t,{MO:()=>n,Mn:()=>o,_m:()=>l,fI:()=>a,gM:()=>i,wV:()=>s});let n=e=>(null==e?void 0:e.status)==="past_due"||(null==e?void 0:e.status)==="unpaid",i=e=>(null==e?void 0:e.isPaused)===!0,a=e=>(null==e?void 0:e.lastFailedPayment)?{amount:e.lastFailedPayment.amount,failedDate:e.lastFailedPayment.failedAt,subscriptionName:e.plan.displayName,billingHold:e.billingHold,paymentMethod:e.lastFailedPayment.paymentMethod,subscription:{lastFailedPayment:e.lastFailedPayment}}:null,s=e=>{var t;return(null==e?void 0:e.isPaused)?{subscriptionName:e.plan.displayName,subscriptionAmount:e.plan.monthlyPrice,resumesAt:(null==(t=e.pauseDetails)?void 0:t.resumesAt)||null,subscriptionId:e.id}:null},o=e=>{var t,r,n;if(!e)return"User";if(null==(t=e.companyName)?void 0:t.trim())return e.companyName.trim();let i=(null==(r=e.firstName)?void 0:r.trim())||"",a=(null==(n=e.lastName)?void 0:n.trim())||"";return i&&a?"".concat(i," ").concat(a):i?i:a?a:e.email||"User"},l=e=>{var t;if(!e)return"";if(null==(t=e.companyWebsite)?void 0:t.trim()){let t=e.companyWebsite.trim();return(t=t.replace(/^https?:\/\//,"")).replace(/\/$/,"")}return e.email||""}},68464:e=>{e.exports={style:{fontFamily:"'Inter', 'Inter Fallback'",fontStyle:"normal"},className:"__className_f367f3",variable:"__variable_f367f3"}},71704:(e,t,r)=>{"use strict";function n(e,t){if("string"==typeof e)return i(e);if(403===t||403===e.status){var r,n,a;return"SESSION_EXPIRED"===e.code||(null==(r=e.error)?void 0:r.toLowerCase().includes("csrf"))||(null==(n=e.error)?void 0:n.toLowerCase().includes("session"))||(null==(a=e.error)?void 0:a.toLowerCase().includes("token"))?"Your session has expired. Please refresh the page and try again.":"You don't have permission to perform this action."}return 401===t||401===e.status?"Please log in to continue.":400===t||400===e.status?e.error||"Please check your input and try again.":429===t||429===e.status?"Too many requests. Please wait a moment and try again.":t&&t>=500?"Something went wrong on our end. Please try again in a moment.":i(e.error||"An unexpected error occurred. Please try again.")}function i(e){if(!e)return"An unexpected error occurred. Please try again.";let t=e.toLowerCase();if(t.includes("api request failed")||t.includes("request failed:")||t.match(/\d{3}\s*\{/)){let t=e.match(/\{[\s\S]*\}/);if(t)try{let r=JSON.parse(t[0]);return i(r.error||r.message||e)}catch(e){}let r=e.match(/.*?:\s*\d{3}\s*/);if(r){let t=e.replace(r[0],"").trim();if(t)return i(t)}}if(t.includes("csrf")||t.includes("token")&&t.includes("invalid"))return"Your session has expired. Please refresh the page and try again.";if(t.includes("database")||t.includes("sql")||t.includes("query")||t.includes("prisma")||t.includes("redis")||t.includes("cache"))return"A temporary issue occurred. Please try again.";if(/\b\d{3}\b/.test(e)){let t=e.match(/\b(\d{3})\b/);if(t&&t[1]&&["400","401","403","404","429","500","502","503","504"].includes(t[1]))return"An unexpected error occurred. Please try again."}return t.includes("at ")&&(t.includes(".ts")||t.includes(".js"))?"An unexpected error occurred. Please try again.":e}r.d(t,{J:()=>n})},73677:()=>{},84426:(e,t,r)=>{"use strict";r.d(t,{f:()=>d,y:()=>c});let n=null,i=null,a=null,s=null,o=null,l=null;function d(){n=null,i=null,a=null,s=null,o=null,l=null}class u{async checkAuthStatus(){let e=Date.now();return n&&n.expiresAt>e?n.result:i||(i=this.checkAuthStatusRaw().then(e=>(n={expiresAt:Date.now()+5e3,result:e},i=null,e)).catch(e=>{throw i=null,e}))}async checkAuthStatusRaw(){try{let e=await fetch("/api/auth/check",{headers:{"Content-Type":"application/json"},credentials:"include"});if(e.ok)return{authenticated:(await e.json()).authenticated||!1};return{authenticated:!1}}catch(e){return console.error("Auth check error:",e),{authenticated:!1}}}async fetchUserProfile(){let e=Date.now();return a&&a.expiresAt>e?a.user:s||(s=this.fetchUserProfileRaw().then(e=>(a={expiresAt:Date.now()+5e3,user:e},s=null,e)).catch(e=>{throw s=null,e}))}async fetchUserProfileRaw(){try{let e=await fetch("/api/auth/me",{headers:{"Content-Type":"application/json"},credentials:"include"});if(e.ok){let t=await e.json();if(t.success&&t.user)return this.transformUserData(t.user)}return null}catch(e){return console.error("Fetch user profile error:",e),null}}async initializeAuth(){let e=Date.now();return o&&o.expiresAt>e?o.result:l||(l=this.initializeAuthRaw().then(e=>(o={expiresAt:Date.now()+5e3,result:e},l=null,e)).catch(e=>{throw l=null,e}))}async initializeAuthRaw(){return(await this.checkAuthStatus()).authenticated?{authenticated:!0,user:await this.fetchUserProfile()}:{authenticated:!1,user:null}}transformUserData(e){return{id:e.id,email:e.email,firstName:e.firstName||"",lastName:e.lastName||"",createdAt:new Date,updatedAt:new Date,isAdmin:e.systemAdmin||!1,systemAdmin:e.systemAdmin||!1,banned:e.banned||!1,organizationId:e.organizationId,isSubUser:"boolean"==typeof e.isSubUser?e.isSubUser:void 0,onboardingCampaignsComplete:"boolean"==typeof e.onboardingCampaignsComplete?e.onboardingCampaignsComplete:void 0,onboardingDismissed:"boolean"==typeof e.onboardingDismissed?e.onboardingDismissed:void 0,onboardingWelcomeSeen:"boolean"==typeof e.onboardingWelcomeSeen?e.onboardingWelcomeSeen:void 0,onboardingSnoozedUntil:"string"==typeof e.onboardingSnoozedUntil?e.onboardingSnoozedUntil:null,companyName:e.companyName||void 0,companyWebsite:e.companyWebsite||void 0,phoneNumber:e.phoneNumber||void 0,stripeCustomerId:e.stripeCustomerId||void 0,scheduleMeetingOverride:"boolean"==typeof e.scheduleMeetingOverride?e.scheduleMeetingOverride:void 0,dashAccessWithoutSubscription:"boolean"==typeof e.dashAccessWithoutSubscription?e.dashAccessWithoutSubscription:void 0,hasPassword:"boolean"==typeof e.hasPassword?e.hasPassword:void 0,hasGoogleId:"boolean"==typeof e.hasGoogleId?e.hasGoogleId:void 0,sales
1DemoAllowed:"boolean"==typeof e.salesDemoAllowed?e.salesDemoAllowed:void 0}}}let c=new u},85263:(e,t,r)=>{"use strict";r.d(t,{default:()=>s});var n=r(95155),i=r(2870),a=r(20063);function s(e){let{children:t}=e,r=(0,a.usePathname)(),s="/signup"===r,o=!!(null==r?void 0:r.startsWith("/admin"));return(0,n.jsx)(i.N,{forcedTheme:s?"dark":o?"light":void 0,persistTheme:!s&&!o,children:t})}}},e=>{e.O(0,[1742,26138,89933,15376,22663,63252,29793,28441,55857,77358],()=>e(e.s=28530)),_N_E=e.O()}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.