1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5373],{77475:function(e,t,r){r.r(t),r.d(t,{ThemeProvider:function(){return ThemeProvider},useTheme:function(){return useTheme}});var a=r(57437),o=r(2265);let n=(0,o.createContext)(void 0);function ThemeProvider(e){let{children:t}=e,[r,s]=(0,o.useState)(()=>{{let e=localStorage.getItem("paido-theme");return"light"===e||"dark"===e?e:"dark"}});(0,o.useEffect)(()=>{applyTheme(r)},[]);let applyTheme=e=>{let t=document.documentElement;"dark"===e?t.classList.add("dark"):t.classList.remove("dark")},i=(0,o.useCallback)(e=>{s(e),localStorage.setItem("paido-theme",e),applyTheme(e)},[]),l=(0,o.useCallback)(()=>{s(e=>{let t="dark"===e?"light":"dark";return localStorage.setItem("paido-theme",t),applyTheme(t),t})},[]);return(0,a.jsx)(n.Provider,{value:{theme:r,setTheme:i,toggleTheme:l},children:t})}function useTheme(){let e=(0,o.useContext)(n);if(!e)throw Error("useTheme must be used within a ThemeProvider");return e}},23611:function(e,t,r){r.d(t,{d:function(){return l},z:function(){return d}});var a=r(57437),o=r(2265),n=r(67256),s=r(96061),i=r(81628);let l=(0,s.j)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-full text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{primary:"bg-primary text-primary-foreground hover:bg-primary/90",default:"bg-primary text-primary-foreground hover:bg-primary/90",secondary:"bg-primary/10 text-primary border border-primary/30 hover:bg-primary/15",outline:"bg-transparent text-txt border border-bdr hover:border-primary hover:text-primary",ghost:"text-txt hover:bg-page-bg-deep hover:text-txt",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",link:"h-auto px-0 text-primary underline-offset-4 hover:underline rounded-none"},size:{sm:"h-9 px-4 text-xs",default:"h-10 px-6",lg:"h-11 px-7 text-base",icon:"h-10 w-10"}},defaultVariants:{variant:"primary",size:"default"}}),d=o.forwardRef((e,t)=>{let{className:r,variant:o,size:s,asChild:d=!1,...u}=e,c=d?n.g7:"button";return(0,a.jsx)(c,{className:(0,i.cn)(l({variant:o,size:s,className:r})),ref:t,...u})});d.displayName="Button"},62031:function(e,t,r){r.d(t,{$N:function(){return p},Be:function(){return m},Vq:function(){return l},cN:function(){return DialogFooter},cZ:function(){return f},fK:function(){return DialogHeader},hg:function(){return d}});var a=r(57437),o=r(2265),n=r(28712),s=r(82549),i=r(81628);let l=n.fC,d=n.xz,u=n.h_;n.x8;let c=o.forwardRef((e,t)=>{let{className:r,...o}=e;return(0,a.jsx)(n.aV,{ref:t,className:(0,i.cn)("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",r),...o})});c.displayName=n.aV.displayName;let f=o.forwardRef((e,t)=>{let{className:r,overlayClassName:o,children:l,...d}=e;return(0,a.jsxs)(u,{children:[(0,a.jsx)(c,{className:o}),(0,a.jsxs)(n.VY,{ref:t,className:(0,i.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] rounded-2xl",r),...d,children:[l,(0,a.jsxs)(n.x8,{className:"absolute right-4 top-4 roun
1ded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[(0,a.jsx)(s.Z,{className:"h-4 w-4"}),(0,a.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})});f.displayName=n.VY.displayName;let DialogHeader=e=>{let{className:t,...r}=e;return(0,a.jsx)("div",{className:(0,i.cn)("flex flex-col space-y-1.5 text-center sm:text-left",t),...r})};DialogHeader.displayName="DialogHeader";let DialogFooter=e=>{let{className:t,...r}=e;return(0,a.jsx)("div",{className:(0,i.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...r})};DialogFooter.displayName="DialogFooter";let p=o.forwardRef((e,t)=>{let{className:r,...o}=e;return(0,a.jsx)(n.Dx,{ref:t,className:(0,i.cn)("text-lg font-semibold leading-none tracking-tight",r),...o})});p.displayName=n.Dx.displayName;let m=o.forwardRef((e,t)=>{let{className:r,...o}=e;return(0,a.jsx)(n.dk,{ref:t,className:(0,i.cn)("text-sm text-muted-foreground",r),...o})});m.displayName=n.dk.displayName},50446:function(e,t,r){r.d(t,{Am:function(){return toast},pm:function(){return useToast}});var a=r(2265);let o=0,n=new Map,addToRemoveQueue=e=>{if(n.has(e))return;let t=setTimeout(()=>{n.delete(e),dispatch({type:"REMOVE_TOAST",toastId:e})},1e6);n.set(e,t)},reducer=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,1)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(e=>e.id===t.toast.id?{...e,...t.toast}:e)};case"DISMISS_TOAST":{let{toastId:r}=t;return r?addToRemoveQueue(r):e.toasts.forEach(e=>{addToRemoveQueue(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===r||void 0===r?{...e,open:!1}:e)}}case"REMOVE_TOAST":if(void 0===t.toastId)return{...e,toasts:[]};return{...e,toasts:e.toasts.filter(e=>e.id!==t.toastId)}}},s=[],i={toasts:[]};function dispatch(e){i=reducer(i,e),s.forEach(e=>{e(i)})}function toast(e){let{...t}=e,r=(o=(o+1)%Number.MAX_SAFE_INTEGER).toString(),dismiss=()=>dispatch({type:"DISMISS_TOAST",toastId:r});return dispatch({type:"ADD_TOAST",toast:{...t,id:r,open:!0,onOpenChange:e=>{e||dismiss()}}}),{id:r,dismiss,update:e=>dispatch({type:"UPDATE_TOAST",toast:{...e,id:r}})}}function useToast(){let[e,t]=a.useState(i);return a.useEffect(()=>(s.push(t),()=>{let e=s.indexOf(t);e>-1&&s.splice(e,1)}),[e]),{...e,toast,dismiss:e=>dispatch({type:"DISMISS_TOAST",toastId:e})}}},86471:function(e,t,r){r.d(t,{a:function(){return useAuth}});var a=r(2265),o=r(11490),n=r(2061),s=r(50446);let useAuth=()=>{let[e,t]=(0,a.useState)(null),[r,i]=(0,a.useState)(!0),l=(0,a.useRef)(),{toast:d}=(0,s.pm)(),checkTokenAndUser=async()=>{try{let r=o.default.get("token");if(!r)return;let a=(0,n.getUserFromToken)(r);if(!a)return;let s=Date.now()/1e3,i=a.exp?a.exp-s:0;if(i<300){let a=await fetch("".concat("https://paido.ai","/refreshToken"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:r})});if(a.ok){let{token:r}=await a.json();o.default.set("token",r);let s=(0,n.getUserFromToken)(r);s&&(e&&s.role!==e.role?(t(s),d({title:"Role Updated",description:"Your role has been changed from ".concat(e.role," to ").concat(s.role),variant:"default"})):t(s))}}}catch(e){console.error("Error checking token:",e)}},initializeAuth=()=>{try{let e=o.default.get("token");if(e){let r=(0,n.getUserFromToken)(e);t(r),startRoleValidation()}else t(null)}catch(e){console.error("Auth initialization failed:",e),o.default.remove("token"),t(null)}finally{i(!1)}},startRoleValidation=()=>{l.current&&clearInterval(l.current),l.current=setInterval(checkTokenAndUser,1e4)},stopRoleValidation=()=>{l.current&&clearInterval(l.current)};return(0,a.useEffect)(()=>(initializeAuth(),()=>{stopRoleValidation()}),[]),(0,a.useEffect)(()=>{let handleStorageChange=()=>{initializeAuth()};return window.addEventListener("storage",handleStorageChange),()=>window.removeEventListener("storage",handleStorageChange)},[]),(0,a.useEffect)(()=>{let handleFocus=()=>{e&&checkTokenAndUser()};return window.addEventListener("focus",handleFocus),()=>window.removeEventListener("focus",handleFocus)},[e]),{user:e,loading:r,logout:()=>{stopRoleValidation(),o.default.remove("token");try{localStorage.removeItem("paido_token")}catch(e){}t(null),window.location.href="/"},setUser:t}}},81628:function(e,t,r){r.d(t,{cn:function(){return cn}});var a=r(57042),o=r(74769);function cn(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return(0,o.m6)((0,a.W)(t))}},2061:function(e,t,r){r.d(t,{bW:function(){return getAuthToken},g0:function(){return getAuthHeaders},getUserFromToken:function(){return getUserFromToken},zc:function(){return getAuthHeadersForFileUpload}});let getUserFromToken=e=>{try{let t=e.split(".")[1],r=t.replace(/-/g,"+").replace(/_/g,"/"),a=decodeURIComponent(atob(r).split("").map(function(e){return"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2)}).join("")),o=JSON.parse(a);return o}catch(e){return console.error("Error decoding token:",e),null}},isTokenAlive=e=>{try{let t=JSON.parse(atob(e.split(".")[1]||""));return!!t.exp&&1e3*t.exp>Date.now()}catch(e){return!1}},getAuthToken=()=>{{var e;let t=null===(e=document.cookie.split("; ").find(e=>e.startsWith("token=")))||void 0===e?void 0:e.split("=")[1];if(t){if(isTokenAlive(t))return t;document.cookie="token=; path=/; max-age=0";try{localStorage.removeItem("paido_token")}catch(e){}return null}try{let e=localStorage.getItem("paido_token");if(e){let t=JSON.parse(atob(e.split(".")[1]||""));if(t.exp&&1e3*t.exp>Date.now())return document.cookie="token=".concat(e,"; path=/; max-age=2592000; secure; samesite=lax"),e;localStorage.removeItem("paido_token")}}catch(e){}return}},getAuthHeaders=()=>{let e=getAuthToken();return{"Content-Type":"application/json",...e&&{Authorization:"Bearer ".concat(e)}}},getAuthHeadersForFileUpload=()=>{let e=getAuthToken();return{...e&&{Authorization:"Bearer ".concat(e)}}}}}]);
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.