diff --git a/build/assets/conclusionApi-BZ5VorhU.js b/build/assets/conclusionApi-B8GrXg3V.js similarity index 90% rename from build/assets/conclusionApi-BZ5VorhU.js rename to build/assets/conclusionApi-B8GrXg3V.js index 3ede6bf..78c42f5 100644 --- a/build/assets/conclusionApi-BZ5VorhU.js +++ b/build/assets/conclusionApi-B8GrXg3V.js @@ -1 +1 @@ -import{a as s}from"./index-CPucVe9U.js";import"./radix-vendor-CLtqm-Ae.js";import"./charts-vendor-CmYZJIYl.js";import"./utils-vendor-BTBPSQfW.js";import"./ui-vendor-DgwXkk2Y.js";import"./socket-vendor-TjCxX7sJ.js";import"./redux-vendor-tbZCm13o.js";import"./router-vendor-HW_ujxKo.js";async function m(n){return(await s.post(`/conclusions/${n}/generate`)).data.data}async function f(n,t){return(await s.post(`/conclusions/${n}/finalize`,{finalRemark:t})).data.data}async function d(n){var t;try{return(await s.get(`/conclusions/${n}`)).data.data}catch(o){if(((t=o.response)==null?void 0:t.status)===404)return null;throw o}}export{f as finalizeConclusion,m as generateConclusion,d as getConclusion}; +import{a as s}from"./index-CMYYGiJ3.js";import"./radix-vendor-CLtqm-Ae.js";import"./charts-vendor-CmYZJIYl.js";import"./utils-vendor-BTBPSQfW.js";import"./ui-vendor-DgwXkk2Y.js";import"./socket-vendor-TjCxX7sJ.js";import"./redux-vendor-tbZCm13o.js";import"./router-vendor-HW_ujxKo.js";async function m(n){return(await s.post(`/conclusions/${n}/generate`)).data.data}async function f(n,t){return(await s.post(`/conclusions/${n}/finalize`,{finalRemark:t})).data.data}async function d(n){var t;try{return(await s.get(`/conclusions/${n}`)).data.data}catch(o){if(((t=o.response)==null?void 0:t.status)===404)return null;throw o}}export{f as finalizeConclusion,m as generateConclusion,d as getConclusion}; diff --git a/build/assets/index-CPucVe9U.js b/build/assets/index-CMYYGiJ3.js similarity index 74% rename from build/assets/index-CPucVe9U.js rename to build/assets/index-CMYYGiJ3.js index 8570b1f..a11d08d 100644 --- a/build/assets/index-CPucVe9U.js +++ b/build/assets/index-CMYYGiJ3.js @@ -1,15 +1,15 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/conclusionApi-BZ5VorhU.js","assets/radix-vendor-CLtqm-Ae.js","assets/charts-vendor-CmYZJIYl.js","assets/utils-vendor-BTBPSQfW.js","assets/ui-vendor-DgwXkk2Y.js","assets/socket-vendor-TjCxX7sJ.js","assets/redux-vendor-tbZCm13o.js","assets/router-vendor-HW_ujxKo.js"])))=>i.map(i=>d[i]); -var Xf=Object.defineProperty;var Zf=(t,s,a)=>s in t?Xf(t,s,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[s]=a;var Ll=(t,s,a)=>Zf(t,typeof s!="symbol"?s+"":s,a);import{j as e,S as Ih,R as Ph,I as Eh,F as _h,a as Jf,T as qf,P as eb,C as tb,b as sb,O as Mh,c as Lh,d as ab,e as rb,f as nb,D as ib,g as lb,A as ob,h as cb,i as db,k as mb,l as ub,m as xb,n as hb,V as pb,o as gb,p as fb,q as bb,r as jb,s as yb,t as vb,u as Nb,v as wb,w as Cb,x as Sb,y as Ab,z as Tb,B as kb,E as Db,G as Rb,H as Fb,J as Ib,K as Pb,L as Eb,M as _b,N as Mb,Q as mc,U as uc,W as Lb,X as Oh,Y as $h,Z as Uh,_ as Bh,$ as Ob,a0 as $b,a1 as Ub,a2 as Bb,a3 as Vb,a4 as zb,a5 as Hb,a6 as Gb,a7 as Wb,a8 as cn,a9 as gr,aa as Zn,ab as Yb,ac as Qb,ad as Kb,ae as Xb}from"./radix-vendor-CLtqm-Ae.js";import{a as Zb,r as x,d as Vh,e as dn,B as Io,C as Yi,X as Qi,Y as Ki,T as mn,L as Xi,f as Ea,P as zh,g as Hh,h as Gh,i as Jb,j as cu,k as cl,l as dl,b as qb}from"./charts-vendor-CmYZJIYl.js";import{a as ml,f as Wh,s as ma,e as xc,b as du,c as ej,d as Oa,g as Jn,i as hc,h as Yh,j as ea,k as oa,l as Ol,m as Qa,n as tj,o as Po,p as sj,q as st,r as Eo,t as aj,u as rj,v as nj,w as ij,x as $l,y as mu,z as lj,A as Qh,B as Kh,C as pc,D as gc,E as oj,F as cj,G as Xh,H as Jr,I as Ul,J as dj,K as mj,L as uj}from"./utils-vendor-BTBPSQfW.js";import{u as W,A as js,S as fs,C as Je,a as ps,L as ze,X as yt,H as xj,b as Zh,U as Ht,F as Fe,c as Be,d as bn,R as Mt,e as jn,f as Ka,P as ms,g as hj,h as pj,B as _s,i as dr,j as Bl,k as fc,l as $a,m as ul,n as pn,o as ft,p as Ua,q as Et,I as Hr,T as ts,r as it,s as Ia,t as gj,v as ss,M as Ys,w as xl,x as Bt,y as _o,D as Tt,Z as hl,z as qt,E as fj,G as bj,J as jj,K as yj,N as vj,O as Nj,Q as wj,V as Cj,W as Sj,Y as Jh,_ as Aj,$ as Tj,a0 as qh,a1 as va,a2 as oi,a3 as mr,a4 as Zi,a5 as uu,a6 as wi,a7 as Ji,a8 as ep,a9 as St,aa as kj,ab as Qs,ac as bc,ad as ws,ae as pl,af as tp,ag as Nt,ah as Dj,ai as Rj,aj as sp,ak as gl,al as ap,am as Fj,an as jc,ao as ys,ap as Da,aq as rp,ar as fl,as as bl,at as Zt,au as Ij,av as Pj,aw as np,ax as ip,ay as Mi,az as or,aA as yc,aB as jl,aC as qn,aD as lp,aE as op,aF as vc,aG as yl,aH as vl,aI as Mo,aJ as Ej,aK as Vs,aL as cp,aM as qi,aN as _j,aO as Mj,aP as Lj,aQ as Nl,aR as wl,aS as Nc,aT as Oj,aU as xu,aV as Ba,aW as Gr,aX as $j,aY as sn,aZ as hu,a_ as Uj,a$ as Bj,b0 as dp,b1 as pu,b2 as mp,b3 as Vj,b4 as zj,b5 as Hj,b6 as Gj,b7 as up,b8 as Wj,b9 as Yj,ba as Qj,bb as Cl,bc as Kj,bd as Xj,be as Zj,bf as Jj}from"./ui-vendor-DgwXkk2Y.js";import{l as qj}from"./socket-vendor-TjCxX7sJ.js";import{c as yn,a as ey}from"./redux-vendor-tbZCm13o.js";import{u as Cs,a as Va,b as xp,c as ty,B as sy,R as ay,d as kt,O as ry}from"./router-vendor-HW_ujxKo.js";(function(){const s=document.createElement("link").relList;if(s&&s.supports&&s.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))r(n);new MutationObserver(n=>{for(const i of n)if(i.type==="childList")for(const l of i.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&r(l)}).observe(document,{childList:!0,subtree:!0});function a(n){const i={};return n.integrity&&(i.integrity=n.integrity),n.referrerPolicy&&(i.referrerPolicy=n.referrerPolicy),n.crossOrigin==="use-credentials"?i.credentials="include":n.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(n){if(n.ep)return;n.ep=!0;const i=a(n);fetch(n.href,i)}})();var Lo={},gu=Zb;Lo.createRoot=gu.createRoot,Lo.hydrateRoot=gu.hydrateRoot;var hp={exports:{}},pp={};var ci=x;function ny(t,s){return t===s&&(t!==0||1/t===1/s)||t!==t&&s!==s}var iy=typeof Object.is=="function"?Object.is:ny,ly=ci.useSyncExternalStore,oy=ci.useRef,cy=ci.useEffect,dy=ci.useMemo,my=ci.useDebugValue;pp.useSyncExternalStoreWithSelector=function(t,s,a,r,n){var i=oy(null);if(i.current===null){var l={hasValue:!1,value:null};i.current=l}else l=i.current;i=dy(function(){function c(h){if(!d){if(d=!0,m=h,h=r(h),n!==void 0&&l.hasValue){var g=l.value;if(n(g,h))return p=g}return p=h}if(g=p,iy(m,h))return g;var f=r(h);return n!==void 0&&n(g,f)?(m=h,g):(m=h,p=f)}var d=!1,m,p,u=a===void 0?null:a;return[function(){return c(s())},u===null?void 0:function(){return c(u())}]},[s,a,r,n]);var o=ly(t,i[0],i[1]);return cy(function(){l.hasValue=!0,l.value=o},[o]),my(o),o};hp.exports=pp;var uy=hp.exports;function xy(t){t()}function hy(){let t=null,s=null;return{clear(){t=null,s=null},notify(){xy(()=>{let a=t;for(;a;)a.callback(),a=a.next})},get(){const a=[];let r=t;for(;r;)a.push(r),r=r.next;return a},subscribe(a){let r=!0;const n=s={callback:a,next:null,prev:s};return n.prev?n.prev.next=n:t=n,function(){!r||t===null||(r=!1,n.next?n.next.prev=n.prev:s=n.prev,n.prev?n.prev.next=n.next:t=n.next)}}}}var fu={notify(){},get:()=>[]};function py(t,s){let a,r=fu,n=0,i=!1;function l(f){m();const b=r.subscribe(f);let j=!1;return()=>{j||(j=!0,b(),p())}}function o(){r.notify()}function c(){g.onStateChange&&g.onStateChange()}function d(){return i}function m(){n++,a||(a=t.subscribe(c),r=hy())}function p(){n--,a&&n===0&&(a(),a=void 0,r.clear(),r=fu)}function u(){i||(i=!0,m())}function h(){i&&(i=!1,p())}const g={addNestedSub:l,notifyNestedSubs:o,handleChangeWrapper:c,isSubscribed:d,trySubscribe:u,tryUnsubscribe:h,getListeners:()=>r};return g}var gy=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",fy=gy(),by=()=>typeof navigator<"u"&&navigator.product==="ReactNative",jy=by(),yy=()=>fy||jy?x.useLayoutEffect:x.useEffect,vy=yy(),Vl=Symbol.for("react-redux-context"),zl=typeof globalThis<"u"?globalThis:{};function Ny(){if(!x.createContext)return{};const t=zl[Vl]??(zl[Vl]=new Map);let s=t.get(x.createContext);return s||(s=x.createContext(null),t.set(x.createContext,s)),s}var ur=Ny();function wy(t){const{children:s,context:a,serverState:r,store:n}=t,i=x.useMemo(()=>{const c=py(n);return{store:n,subscription:c,getServerState:r?()=>r:void 0}},[n,r]),l=x.useMemo(()=>n.getState(),[n]);vy(()=>{const{subscription:c}=i;return c.onStateChange=c.notifyNestedSubs,c.trySubscribe(),l!==n.getState()&&c.notifyNestedSubs(),()=>{c.tryUnsubscribe(),c.onStateChange=void 0}},[i,l]);const o=a||ur;return x.createElement(o.Provider,{value:i},s)}var Cy=wy;function wc(t=ur){return function(){return x.useContext(t)}}var gp=wc();function fp(t=ur){const s=t===ur?gp:wc(t),a=()=>{const{store:r}=s();return r};return Object.assign(a,{withTypes:()=>a}),a}var Sy=fp();function Ay(t=ur){const s=t===ur?Sy:fp(t),a=()=>s().dispatch;return Object.assign(a,{withTypes:()=>a}),a}var Ty=Ay(),ky=(t,s)=>t===s;function Dy(t=ur){const s=t===ur?gp:wc(t),a=(r,n={})=>{const{equalityFn:i=ky}=typeof n=="function"?{equalityFn:n}:n,l=s(),{store:o,subscription:c,getServerState:d}=l;x.useRef(!0);const m=x.useCallback({[r.name](u){return r(u)}}[r.name],[r]),p=uy.useSyncExternalStoreWithSelector(c.addNestedSub,o.getState,d||o.getState,m,i);return x.useDebugValue(p),p};return Object.assign(a,{withTypes:()=>a}),a}var Ry=Dy(),Oo=function(t,s){return Oo=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,r){a.__proto__=r}||function(a,r){for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(a[n]=r[n])},Oo(t,s)};function Fy(t,s){if(typeof s!="function"&&s!==null)throw new TypeError("Class extends value "+String(s)+" is not a constructor or null");Oo(t,s);function a(){this.constructor=t}t.prototype=s===null?Object.create(s):(a.prototype=s.prototype,new a)}var el=function(){return el=Object.assign||function(s){for(var a,r=1,n=arguments.length;r0&&g[g.length-1])||S[0]!==6&&S[0]!==2)){b=0;continue}if(S[0]===3&&(!g||S[1]>g[0]&&S[1]0?setTimeout(h,N):h(null)}}window.addEventListener("storage",j),m.addToWaiting(j);var y=setTimeout(j,Math.max(0,p-Date.now()))})];case 1:return u.sent(),[2]}})})},m.addToWaiting=function(p){this.removeFromWaiting(p),m.waiters!==void 0&&m.waiters.push(p)},m.removeFromWaiting=function(p){m.waiters!==void 0&&(m.waiters=m.waiters.filter(function(u){return u!==p}))},m.notifyWaiters=function(){m.waiters!==void 0&&m.waiters.slice().forEach(function(p){return p()})},m.prototype.releaseLock=function(p){return a(this,void 0,void 0,function(){return r(this,function(u){switch(u.label){case 0:return[4,this.releaseLock__private__(p)];case 1:return[2,u.sent()]}})})},m.prototype.releaseLock__private__=function(p){return a(this,void 0,void 0,function(){var u,h,g,f;return r(this,function(b){switch(b.label){case 0:return u=this.storageHandler===void 0?l:this.storageHandler,h=i+"-"+p,(g=u.getItemSync(h))===null?[2]:(f=JSON.parse(g)).id!==this.id?[3,2]:[4,kr.default().lock(f.iat)];case 1:b.sent(),this.acquiredIatSet.delete(f.iat),u.removeItemSync(h),kr.default().unlock(f.iat),m.notifyWaiters(),b.label=2;case 2:return[2]}})})},m.lockCorrector=function(p){for(var u=Date.now()-5e3,h=p,g=[],f=0;;){var b=h.keySync(f);if(b===null)break;g.push(b),f++}for(var j=!1,y=0;y.")},Ey=el(el({},Py),{buildAuthorizeUrl:Zs,buildLogoutUrl:Zs,getAccessTokenSilently:Zs,getAccessTokenWithPopup:Zs,getIdTokenClaims:Zs,loginWithRedirect:Zs,loginWithPopup:Zs,connectAccountWithRedirect:Zs,logout:Zs,handleRedirectCallback:Zs,getDpopNonce:Zs,setDpopNonce:Zs,generateDpopProof:Zs,createFetcher:Zs}),_y=x.createContext(Ey);(function(t){Fy(s,t);function s(a,r){var n=t.call(this,r??a)||this;return n.error=a,n.error_description=r,Object.setPrototypeOf(n,s.prototype),n}return s})(Error);var My=function(t){return t===void 0&&(t=_y),x.useContext(t)};const Hl="idToken",Gl="userData",Ly=()=>!0;class tt{static setAccessToken(s){}static getAccessToken(){return null}static setRefreshToken(s){}static getRefreshToken(){return null}static setIdToken(s){sessionStorage.setItem(Hl,s)}static getIdToken(){return sessionStorage.getItem(Hl)}static setUserData(s){localStorage.setItem(Gl,JSON.stringify(s))}static getUserData(){const s=localStorage.getItem(Gl);if(!s)return null;try{return JSON.parse(s)}catch{return null}}static clearAll(){try{sessionStorage.setItem("__logout_in_progress__","true"),sessionStorage.setItem("__force_logout__","true")}catch(s){console.warn("Could not set logout flags:",s)}try{localStorage.removeItem(Gl),sessionStorage.removeItem(Hl)}catch(s){console.warn("Error clearing user data:",s)}{try{sessionStorage.setItem("__logout_in_progress__","true"),sessionStorage.setItem("__force_logout__","true")}catch{}return}}static hasAccessToken(){return!!this.getUserData()}static hasRefreshToken(){return!!this.getUserData()}static isLocalhost(){return window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"||window.location.hostname===""}static isProduction(){return Ly()}static setAuthError(s){s?sessionStorage.setItem("__auth_error__",s):sessionStorage.removeItem("__auth_error__")}static getAuthError(){return sessionStorage.getItem("__auth_error__")}}function Ci(t,s=5){if(!t)return!0;try{const a=t.split(".");if(a.length!==3||!a[1])return!0;const n=JSON.parse(atob(a[1])).exp*1e3,i=Date.now(),l=s*60*1e3;return n-i{if(t.data instanceof FormData){const s=t.headers;delete s["Content-Type"],s.common&&typeof s.common=="object"&&delete s.common["Content-Type"],s.post&&typeof s.post=="object"&&delete s.post["Content-Type"]}return t},t=>Promise.reject(t));ve.interceptors.response.use(t=>t,async t=>{var a,r,n,i;const s=t.config;if(t.code==="ERR_NETWORK"||t.code==="ECONNREFUSED"||(a=t.message)!=null&&a.includes("ERR_CONNECTION_REFUSED"),((r=t.response)==null?void 0:r.status)===401){if(((i=(n=t.response)==null?void 0:n.data)==null?void 0:i.errorCode)==="SESSION_SUPERSEDED"){const l=tt.getIdToken(),o=sessionStorage.getItem("auth_provider")||(l!=null&&l.includes("tanflow")?"tanflow":"okta");return tt.setAuthError("SESSION_SUPERSEDED"),W.error("You have been logged out because an active session was detected from another device.",{duration:2e3,id:"session-superseded-toast"}),setTimeout(async()=>{sessionStorage.setItem("__logout_in_progress__","true"),sessionStorage.setItem("__force_logout__","true"),o==="tanflow"&&l?vp(l):Np(l||void 0)},1e3),Promise.reject(t)}if(!s._retry){s._retry=!0;const l=!0;try{const o=tt.getRefreshToken(),c=await ml.post(`${Ac}/auth/refresh`,l?{}:{refreshToken:o},{withCredentials:!0}),m=(c.data.data||c.data).accessToken;return ve(s)}catch(o){return tt.clearAll(),window.location.href="/",Promise.reject(o)}}}return Promise.reject(t)});async function zy(t,s){const r=(await ve.post("/auth/login",{username:t,password:s},{withCredentials:!0})).data,n=r.data||r;return n.user&&tt.setUserData(n.user),n.accessToken&&n.refreshToken&&(tt.setAccessToken(n.accessToken),tt.setRefreshToken(n.refreshToken)),n}async function Hy(t,s){var a,r;try{const n=await ve.post("/auth/token-exchange",{code:t,redirectUri:s},{responseType:"json",headers:{"Content-Type":"application/json",Accept:"application/json"}});if(Array.isArray(n.data))throw console.error("❌ Response is an array (buffer issue):",{arrayLength:n.data.length,firstFew:n.data.slice(0,10),rawResponse:n}),new Error("Invalid response format: received array instead of JSON. Check Content-Type header.");const i=n.data,l=i.data||i;return l.user&&tt.setUserData(l.user),l.idToken&&tt.setIdToken(l.idToken),l.accessToken&&l.refreshToken&&(tt.setAccessToken(l.accessToken),tt.setRefreshToken(l.refreshToken)),l}catch(n){throw console.error("❌ Token exchange failed:",{message:n.message,response:(a=n.response)==null?void 0:a.data,status:(r=n.response)==null?void 0:r.status,code:t?`${t.substring(0,10)}...`:"MISSING",redirectUri:s}),n}}async function Gy(){var r;const t={},a=(await ve.post("/auth/refresh",t)).data;if((r=a.data)!=null&&r.accessToken||a.accessToken,a.success!==!1)return"cookie-based-auth";throw new Error("Failed to refresh token")}async function Bn(){const s=(await ve.get("/auth/me")).data;return s.data||s}async function Wy(){var t,s;try{await ml.post(`${Ac}/auth/logout`,{},{withCredentials:!0})}catch(a){console.error("📡 Logout API error:",a),console.error("📡 Error details:",{message:a.message,status:(t=a.response)==null?void 0:t.status,data:(s=a.response)==null?void 0:s.data})}}let Sr=null;function Yy(){return"https://reflow-uat.royalenfield.com"}function Vr(t){const s=Yy();return Sr||(Sr=qj(s,{withCredentials:!0,transports:["websocket","polling"],path:"/socket.io",reconnection:!0,reconnectionDelay:1e3,reconnectionAttempts:5}),Sr.on("connect",()=>{}),Sr.on("connect_error",a=>{console.error("[Socket] Connection error:",a.message)}),Sr.on("disconnect",a=>{}),Sr)}function $o(t,s,a){a?t.emit("join:request",{requestId:s,userId:a}):t.emit("join:request",s)}function wp(t,s){t.emit("leave:request",s)}function Tc(t,s){t.emit("join:user",{userId:s})}const Qy=/^(localhost|127\.0\.0\.1)$/i;function Ky(){return typeof window>"u"?"":window.location.hostname||""}function Cp(){return Qy.test(Ky())}function Fn(){return!Cp()}function rr(t){return String(t||"").trim()}function Xy(t){const s=(t||"").toLowerCase();return s.includes("uat")||s.includes("dev")}function Zy(){const t=typeof window<"u"?window.location.hostname:"",s=Cp(),a=!s&&Xy(t),r=rr("https://royalenfield.okta.com"),n=rr("0oa18b98aari6I6eo2p8"),i=rr(void 0),l=rr(void 0),o=rr(void 0),c=rr(void 0),d=rr(void 0),m=rr(void 0);return s?{domain:i||r,clientId:l||n}:a?{domain:o||r,clientId:c||n}:{domain:d||r,clientId:m||n}}const Sp=x.createContext(void 0);function Jy({children:t}){const[s,a]=x.useState(!1),[r,n]=x.useState(!0),[i,l]=x.useState(null),[o,c]=x.useState(null),[d,m]=x.useState(!1),p=()=>{const A="https://reflow-uat.royalenfield.com".trim(),w="".trim(),I="".trim(),D=window.location.origin,T=window.location.hostname,v=/^(localhost|127\.0\.0\.1)$/i.test(T);return v&&I?I:w||(v?`${D}/login/callback`:/localhost|127\.0\.0\.1/i.test(A)?`${D}/login/callback`:`${(A||D).replace(/\/$/,"")}/login/callback`)};x.useEffect(()=>{const A=sessionStorage.getItem("__logout_in_progress__"),w=sessionStorage.getItem("__force_logout__");if(A==="true"||w==="true"){sessionStorage.removeItem("__logout_in_progress__"),sessionStorage.removeItem("__force_logout__"),tt.clearAll();try{localStorage.clear(),sessionStorage.clear()}catch(L){console.error("Error clearing storage:",L)}a(!1),l(null),n(!1),c(null);return}const I=new URLSearchParams(window.location.search),D=I.has("code"),T=sessionStorage.getItem("__logout_type__");if((I.has("logout")||I.has("okta_logged_out")||I.has("tanflow_logged_out")||T)&&!D){console.log("🚪 Logout parameter detected in URL, clearing all tokens and backend session"),Wy().catch(L=>console.warn("🚪 Final backend logout cleanup failed:",L)),tt.clearAll(),sessionStorage.removeItem("__logout_type__"),sessionStorage.removeItem("auth_provider"),sessionStorage.removeItem("tanflow_auth_state"),sessionStorage.removeItem("__logout_in_progress__"),sessionStorage.removeItem("__force_logout__"),sessionStorage.removeItem("tanflow_logged_out"),localStorage.clear(),a(!1),l(null),n(!1);try{sessionStorage.setItem("__force_reauth_after_logout__","true")}catch(L){console.warn("Could not set force reauth flag:",L)}window.history.replaceState({},document.title,"/");return}if(window.location.pathname==="/login/callback"||window.location.pathname==="/login/tanflow/callback")return;const M=tt.getAccessToken(),P=tt.getRefreshToken(),B=tt.getUserData(),k=M||P||B;if(Fn())d?n(!1):g();else{if(!k){a(!1),l(null),n(!1);return}d?n(!1):g()}},[d]),x.useEffect(()=>{if(!s)return;const A=Fn(),w=async()=>{if(A)try{await N()}catch(T){console.error("Silent refresh failed:",T)}else{const T=tt.getAccessToken();if(T&&Ci(T,5))try{await N()}catch(v){console.error("Silent refresh failed:",v)}}},I=A?10*60*1e3:5*60*1e3,D=setInterval(w,I);return()=>clearInterval(D)},[s]),x.useEffect(()=>{if(!s||!(i!=null&&i.userId))return;const A=Vr();Tc(A,i.userId);const w=I=>{console.log("📡 [Socket] Session superseded event received:",I),tt.setAuthError("SESSION_SUPERSEDED"),W.error("Session Expired",{description:"You have been logged out because another session was started on a different device.",duration:4e3,id:"session-superseded-socket"}),setTimeout(()=>{j()},1e3)};return A.on("SESSION_SUPERSEDED",w),()=>{A.off("SESSION_SUPERSEDED",w)}},[s,i==null?void 0:i.userId]);const u=x.useRef(!1),h=x.useRef(null);x.useEffect(()=>{if(u.current||window.location.pathname!=="/login/callback")return;(async()=>{var B,k,_,L;const w=new URLSearchParams(window.location.search);if(sessionStorage.getItem("auth_provider")==="tanflow")return;const D=sessionStorage.getItem("__logout_type__");if((w.has("logout")||w.has("tanflow_logged_out")||w.has("okta_logged_out")||D)&&!w.get("code")){console.log("🚪 Logout redirect detected in callback, redirecting to home");const R=new URLSearchParams;(w.has("tanflow_logged_out")||D==="tanflow")&&R.set("tanflow_logged_out","true"),(w.has("okta_logged_out")||D==="okta")&&R.set("okta_logged_out","true"),w.has("logout")&&R.set("logout",w.get("logout")||Date.now().toString());const C=R.toString()?`/?${R.toString()}`:"/?logout="+Date.now();window.location.replace(C);return}u.current=!0;const v=w.get("code"),M=w.get("error");if(window.history.replaceState({},document.title,"/login/callback"),M){c(new Error(`Authentication error: ${M}`)),n(!1),sessionStorage.removeItem("auth_provider");return}if(!v){n(!1),sessionStorage.removeItem("auth_provider");return}const P=sessionStorage.getItem("__okta_auth_code_consumed__");if(P&&P===v){c(new Error("Authorization code already used. Please login again.")),n(!1),sessionStorage.removeItem("auth_provider");return}if(h.current!==v){h.current=v,sessionStorage.setItem("__okta_auth_code_consumed__",v);try{n(!0),a(!1),c(null);const R=p(),C=await Hy(v,R);l(C.user),a(!0),c(null),sessionStorage.removeItem("auth_provider"),window.history.replaceState({},document.title,"/")}catch(R){console.error("❌ Token exchange error in AuthContext:",R);const C=String(((k=(B=R==null?void 0:R.response)==null?void 0:B.data)==null?void 0:k.error)||"").toUpperCase(),G=String(((L=(_=R==null?void 0:R.response)==null?void 0:_.data)==null?void 0:L.message)||(R==null?void 0:R.message)||"").toLowerCase();if(C==="RELOGIN_REQUIRED"||G.includes("invalid or has expired")||G.includes("invalid_grant")||G.includes("authorization code already used")){a(!1),l(null),c(new Error("Login session expired. Please sign in again.")),sessionStorage.removeItem("auth_provider"),window.location.replace("/?relogin_required=1");return}c(R),a(!1),l(null),sessionStorage.removeItem("auth_provider"),u.current=!1}finally{n(!1)}}})()},[]);const g=async()=>{var w;if(d){n(!1);return}const A=Fn();try{if(n(!0),A){const T=tt.getUserData();try{const v=await Bn();l(v),tt.setUserData(v),a(!0)}catch(v){if(((w=v==null?void 0:v.response)==null?void 0:w.status)===401)try{await N();const M=await Bn();l(M),tt.setUserData(M),a(!0)}catch{tt.clearAll(),a(!1),l(null)}else v!=null&&v.isConnectionError?T?(l(T),a(!0)):(a(!1),l(null)):(tt.clearAll(),a(!1),l(null))}return}const I=tt.getAccessToken(),D=tt.getUserData();if(!I){a(!1),l(null),n(!1);return}if(Ci(I))try{await N();const T=tt.getAccessToken();if(T&&!Ci(T)){const v=tt.getUserData();if(v)l(v),a(!0);else try{const M=await Bn();l(M),tt.setUserData(M),a(!0)}catch{tt.clearAll(),a(!1),l(null)}}else tt.clearAll(),a(!1),l(null)}catch{tt.clearAll(),a(!1),l(null)}else if(D)l(D),a(!0);else try{const T=await Bn();l(T),tt.setUserData(T),a(!0)}catch{tt.clearAll(),a(!1),l(null)}}catch(I){console.error("Error checking auth status:",I),c(I),tt.clearAll(),a(!1),l(null)}finally{n(!1)}},f=async()=>{try{c(null);const{domain:A,clientId:w}=Zy();if(!A||!w)throw new Error("Missing Okta configuration (VITE_OKTA_DOMAIN / VITE_OKTA_CLIENT_ID).");const I=p(),D="code",T="openid profile email",v=Math.random().toString(36).substring(7);sessionStorage.setItem("auth_provider","okta");const M=new URLSearchParams(window.location.search),P=M.has("logout")||M.has("okta_logged_out")||M.has("tanflow_logged_out"),B=sessionStorage.getItem("__force_reauth_after_logout__")==="true",k=P||B;let _=`${A}/oauth2/default/v1/authorize?client_id=${w}&redirect_uri=${encodeURIComponent(I)}&response_type=${D}&scope=${encodeURIComponent(T)}&state=${v}`;k&&(_+="&prompt=login",sessionStorage.removeItem("__force_reauth_after_logout__")),window.location.href=_}catch(A){throw c(A),A}},b=async(A,w)=>{c(null),n(!0);try{const I=await zy(A,w);l(I.user),a(!0),window.history.replaceState({},document.title,"/")}catch(I){throw c(I),a(!1),l(null),I}finally{n(!1)}},j=async()=>{try{const A=tt.getIdToken(),w=sessionStorage.getItem("auth_provider")||(A&&A.includes("tanflow")?"tanflow":null)||"okta";sessionStorage.setItem("__logout_in_progress__","true"),sessionStorage.setItem("__force_logout__","true"),m(!0),a(!1),l(null),c(null),n(!0);const I=sessionStorage.getItem("__logout_in_progress__"),D=sessionStorage.getItem("__force_logout__"),T=sessionStorage.getItem("auth_provider");if(tt.clearAll(),I&&sessionStorage.setItem("__logout_in_progress__",I),D&&sessionStorage.setItem("__force_logout__",D),A&&tt.setIdToken(A),T&&sessionStorage.setItem("auth_provider",T),await new Promise(v=>setTimeout(v,100)),w==="tanflow"&&A){console.log("🚪 Initiating Tanflow logout...");try{vp(A);return}catch(v){console.error("🚪 Tanflow logout error:",v)}}console.log("🚪 Using OKTA logout flow or fallback"),sessionStorage.removeItem("auth_provider"),Np(A||void 0)}catch(A){console.error("🚪 Logout error:",A);try{localStorage.clear(),sessionStorage.clear(),sessionStorage.setItem("__logout_in_progress__","true");const w=`${window.location.origin}/?okta_logged_out=true&logout=${Date.now()}`;window.location.replace(w)}catch{window.location.replace("/?logout="+Date.now())}}},y=async()=>{if(Fn()){if(s)return"cookie-based-auth";try{return await N(),s?"cookie-based-auth":null}catch{return null}}const w=tt.getAccessToken();if(w&&!Ci(w))return w;try{return await N(),tt.getAccessToken()}catch{return null}},N=async()=>{const A=Fn();try{const w=await Gy();if(A||w)return;throw new Error("Failed to refresh token")}catch(w){throw tt.clearAll(),a(!1),l(null),w}},S={isAuthenticated:s,isLoading:r,user:i,error:o,login:f,loginWithPassword:b,logout:j,getAccessTokenSilently:y,refreshTokenSilently:N};return e.jsx(Sp.Provider,{value:S,children:t})}function qy({children:t}){return e.jsx(Jy,{children:t})}function us(){const t=x.useContext(Sp);if(t===void 0)throw new Error("useAuth must be used within an AuthProvider");return t}function Dr(t){return(t==null?void 0:t.role)==="ADMIN"}function In(t){return(t==null?void 0:t.role)==="MANAGEMENT"}function Sl(t){return(t==null?void 0:t.role)==="MANAGEMENT"||(t==null?void 0:t.role)==="ADMIN"}const Nu=t=>typeof t=="boolean"?`${t}`:t===0?"0":t,wu=Vh,kc=(t,s)=>a=>{var r;if((s==null?void 0:s.variants)==null)return wu(t,a==null?void 0:a.class,a==null?void 0:a.className);const{variants:n,defaultVariants:i}=s,l=Object.keys(n).map(d=>{const m=a==null?void 0:a[d],p=i==null?void 0:i[d];if(m===null)return null;const u=Nu(m)||Nu(p);return n[d][u]}),o=a&&Object.entries(a).reduce((d,m)=>{let[p,u]=m;return u===void 0||(d[p]=u),d},{}),c=s==null||(r=s.compoundVariants)===null||r===void 0?void 0:r.reduce((d,m)=>{let{class:p,className:u,...h}=m;return Object.entries(h).every(g=>{let[f,b]=g;return Array.isArray(b)?b.includes({...i,...o}[f]):{...i,...o}[f]===b})?[...d,p,u]:d},[]);return wu(t,l,c,a==null?void 0:a.class,a==null?void 0:a.className)},Dc="-",ev=t=>{const s=sv(t),{conflictingClassGroups:a,conflictingClassGroupModifiers:r}=t;return{getClassGroupId:l=>{const o=l.split(Dc);return o[0]===""&&o.length!==1&&o.shift(),Ap(o,s)||tv(l)},getConflictingClassGroupIds:(l,o)=>{const c=a[l]||[];return o&&r[l]?[...c,...r[l]]:c}}},Ap=(t,s)=>{var l;if(t.length===0)return s.classGroupId;const a=t[0],r=s.nextPart.get(a),n=r?Ap(t.slice(1),r):void 0;if(n)return n;if(s.validators.length===0)return;const i=t.join(Dc);return(l=s.validators.find(({validator:o})=>o(i)))==null?void 0:l.classGroupId},Cu=/^\[(.+)\]$/,tv=t=>{if(Cu.test(t)){const s=Cu.exec(t)[1],a=s==null?void 0:s.substring(0,s.indexOf(":"));if(a)return"arbitrary.."+a}},sv=t=>{const{theme:s,prefix:a}=t,r={nextPart:new Map,validators:[]};return rv(Object.entries(t.classGroups),a).forEach(([i,l])=>{Uo(l,r,i,s)}),r},Uo=(t,s,a,r)=>{t.forEach(n=>{if(typeof n=="string"){const i=n===""?s:Su(s,n);i.classGroupId=a;return}if(typeof n=="function"){if(av(n)){Uo(n(r),s,a,r);return}s.validators.push({validator:n,classGroupId:a});return}Object.entries(n).forEach(([i,l])=>{Uo(l,Su(s,i),a,r)})})},Su=(t,s)=>{let a=t;return s.split(Dc).forEach(r=>{a.nextPart.has(r)||a.nextPart.set(r,{nextPart:new Map,validators:[]}),a=a.nextPart.get(r)}),a},av=t=>t.isThemeGetter,rv=(t,s)=>s?t.map(([a,r])=>{const n=r.map(i=>typeof i=="string"?s+i:typeof i=="object"?Object.fromEntries(Object.entries(i).map(([l,o])=>[s+l,o])):i);return[a,n]}):t,nv=t=>{if(t<1)return{get:()=>{},set:()=>{}};let s=0,a=new Map,r=new Map;const n=(i,l)=>{a.set(i,l),s++,s>t&&(s=0,r=a,a=new Map)};return{get(i){let l=a.get(i);if(l!==void 0)return l;if((l=r.get(i))!==void 0)return n(i,l),l},set(i,l){a.has(i)?a.set(i,l):n(i,l)}}},Tp="!",iv=t=>{const{separator:s,experimentalParseClassName:a}=t,r=s.length===1,n=s[0],i=s.length,l=o=>{const c=[];let d=0,m=0,p;for(let b=0;bm?p-m:void 0;return{modifiers:c,hasImportantModifier:h,baseClassName:g,maybePostfixModifierPosition:f}};return a?o=>a({className:o,parseClassName:l}):l},lv=t=>{if(t.length<=1)return t;const s=[];let a=[];return t.forEach(r=>{r[0]==="["?(s.push(...a.sort(),r),a=[]):a.push(r)}),s.push(...a.sort()),s},ov=t=>({cache:nv(t.cacheSize),parseClassName:iv(t),...ev(t)}),cv=/\s+/,dv=(t,s)=>{const{parseClassName:a,getClassGroupId:r,getConflictingClassGroupIds:n}=s,i=[],l=t.trim().split(cv);let o="";for(let c=l.length-1;c>=0;c-=1){const d=l[c],{modifiers:m,hasImportantModifier:p,baseClassName:u,maybePostfixModifierPosition:h}=a(d);let g=!!h,f=r(g?u.substring(0,h):u);if(!f){if(!g){o=d+(o.length>0?" "+o:o);continue}if(f=r(u),!f){o=d+(o.length>0?" "+o:o);continue}g=!1}const b=lv(m).join(":"),j=p?b+Tp:b,y=j+f;if(i.includes(y))continue;i.push(y);const N=n(f,g);for(let S=0;S0?" "+o:o)}return o};function mv(){let t=0,s,a,r="";for(;t{if(typeof t=="string")return t;let s,a="";for(let r=0;rp(m),t());return a=ov(d),r=a.cache.get,n=a.cache.set,i=o,o(c)}function o(c){const d=r(c);if(d)return d;const m=dv(c,a);return n(c,m),m}return function(){return i(mv.apply(null,arguments))}}const Kt=t=>{const s=a=>a[t]||[];return s.isThemeGetter=!0,s},Dp=/^\[(?:([a-z-]+):)?(.+)\]$/i,xv=/^\d+\/\d+$/,hv=new Set(["px","full","screen"]),pv=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,gv=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,fv=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,bv=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,jv=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Ga=t=>un(t)||hv.has(t)||xv.test(t),nr=t=>vn(t,"length",Tv),un=t=>!!t&&!Number.isNaN(Number(t)),Wl=t=>vn(t,"number",un),Pn=t=>!!t&&Number.isInteger(Number(t)),yv=t=>t.endsWith("%")&&un(t.slice(0,-1)),jt=t=>Dp.test(t),ir=t=>pv.test(t),vv=new Set(["length","size","percentage"]),Nv=t=>vn(t,vv,Rp),wv=t=>vn(t,"position",Rp),Cv=new Set(["image","url"]),Sv=t=>vn(t,Cv,Dv),Av=t=>vn(t,"",kv),En=()=>!0,vn=(t,s,a)=>{const r=Dp.exec(t);return r?r[1]?typeof s=="string"?r[1]===s:s.has(r[1]):a(r[2]):!1},Tv=t=>gv.test(t)&&!fv.test(t),Rp=()=>!1,kv=t=>bv.test(t),Dv=t=>jv.test(t),Rv=()=>{const t=Kt("colors"),s=Kt("spacing"),a=Kt("blur"),r=Kt("brightness"),n=Kt("borderColor"),i=Kt("borderRadius"),l=Kt("borderSpacing"),o=Kt("borderWidth"),c=Kt("contrast"),d=Kt("grayscale"),m=Kt("hueRotate"),p=Kt("invert"),u=Kt("gap"),h=Kt("gradientColorStops"),g=Kt("gradientColorStopPositions"),f=Kt("inset"),b=Kt("margin"),j=Kt("opacity"),y=Kt("padding"),N=Kt("saturate"),S=Kt("scale"),A=Kt("sepia"),w=Kt("skew"),I=Kt("space"),D=Kt("translate"),T=()=>["auto","contain","none"],v=()=>["auto","hidden","clip","visible","scroll"],M=()=>["auto",jt,s],P=()=>[jt,s],B=()=>["",Ga,nr],k=()=>["auto",un,jt],_=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],L=()=>["solid","dashed","dotted","double","none"],R=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],C=()=>["start","end","center","between","around","evenly","stretch"],G=()=>["","0",jt],U=()=>["auto","avoid","all","avoid-page","page","left","right","column"],$=()=>[un,jt];return{cacheSize:500,separator:":",theme:{colors:[En],spacing:[Ga,nr],blur:["none","",ir,jt],brightness:$(),borderColor:[t],borderRadius:["none","","full",ir,jt],borderSpacing:P(),borderWidth:B(),contrast:$(),grayscale:G(),hueRotate:$(),invert:G(),gap:P(),gradientColorStops:[t],gradientColorStopPositions:[yv,nr],inset:M(),margin:M(),opacity:$(),padding:P(),saturate:$(),scale:$(),sepia:G(),skew:$(),space:P(),translate:P()},classGroups:{aspect:[{aspect:["auto","square","video",jt]}],container:["container"],columns:[{columns:[ir]}],"break-after":[{"break-after":U()}],"break-before":[{"break-before":U()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[..._(),jt]}],overflow:[{overflow:v()}],"overflow-x":[{"overflow-x":v()}],"overflow-y":[{"overflow-y":v()}],overscroll:[{overscroll:T()}],"overscroll-x":[{"overscroll-x":T()}],"overscroll-y":[{"overscroll-y":T()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[f]}],"inset-x":[{"inset-x":[f]}],"inset-y":[{"inset-y":[f]}],start:[{start:[f]}],end:[{end:[f]}],top:[{top:[f]}],right:[{right:[f]}],bottom:[{bottom:[f]}],left:[{left:[f]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",Pn,jt]}],basis:[{basis:M()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",jt]}],grow:[{grow:G()}],shrink:[{shrink:G()}],order:[{order:["first","last","none",Pn,jt]}],"grid-cols":[{"grid-cols":[En]}],"col-start-end":[{col:["auto",{span:["full",Pn,jt]},jt]}],"col-start":[{"col-start":k()}],"col-end":[{"col-end":k()}],"grid-rows":[{"grid-rows":[En]}],"row-start-end":[{row:["auto",{span:[Pn,jt]},jt]}],"row-start":[{"row-start":k()}],"row-end":[{"row-end":k()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",jt]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",jt]}],gap:[{gap:[u]}],"gap-x":[{"gap-x":[u]}],"gap-y":[{"gap-y":[u]}],"justify-content":[{justify:["normal",...C()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...C(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...C(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[y]}],px:[{px:[y]}],py:[{py:[y]}],ps:[{ps:[y]}],pe:[{pe:[y]}],pt:[{pt:[y]}],pr:[{pr:[y]}],pb:[{pb:[y]}],pl:[{pl:[y]}],m:[{m:[b]}],mx:[{mx:[b]}],my:[{my:[b]}],ms:[{ms:[b]}],me:[{me:[b]}],mt:[{mt:[b]}],mr:[{mr:[b]}],mb:[{mb:[b]}],ml:[{ml:[b]}],"space-x":[{"space-x":[I]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[I]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",jt,s]}],"min-w":[{"min-w":[jt,s,"min","max","fit"]}],"max-w":[{"max-w":[jt,s,"none","full","min","max","fit","prose",{screen:[ir]},ir]}],h:[{h:[jt,s,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[jt,s,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[jt,s,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[jt,s,"auto","min","max","fit"]}],"font-size":[{text:["base",ir,nr]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",Wl]}],"font-family":[{font:[En]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",jt]}],"line-clamp":[{"line-clamp":["none",un,Wl]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",Ga,jt]}],"list-image":[{"list-image":["none",jt]}],"list-style-type":[{list:["none","disc","decimal",jt]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[t]}],"placeholder-opacity":[{"placeholder-opacity":[j]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[t]}],"text-opacity":[{"text-opacity":[j]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...L(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",Ga,nr]}],"underline-offset":[{"underline-offset":["auto",Ga,jt]}],"text-decoration-color":[{decoration:[t]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:P()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",jt]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",jt]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[j]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[..._(),wv]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",Nv]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},Sv]}],"bg-color":[{bg:[t]}],"gradient-from-pos":[{from:[g]}],"gradient-via-pos":[{via:[g]}],"gradient-to-pos":[{to:[g]}],"gradient-from":[{from:[h]}],"gradient-via":[{via:[h]}],"gradient-to":[{to:[h]}],rounded:[{rounded:[i]}],"rounded-s":[{"rounded-s":[i]}],"rounded-e":[{"rounded-e":[i]}],"rounded-t":[{"rounded-t":[i]}],"rounded-r":[{"rounded-r":[i]}],"rounded-b":[{"rounded-b":[i]}],"rounded-l":[{"rounded-l":[i]}],"rounded-ss":[{"rounded-ss":[i]}],"rounded-se":[{"rounded-se":[i]}],"rounded-ee":[{"rounded-ee":[i]}],"rounded-es":[{"rounded-es":[i]}],"rounded-tl":[{"rounded-tl":[i]}],"rounded-tr":[{"rounded-tr":[i]}],"rounded-br":[{"rounded-br":[i]}],"rounded-bl":[{"rounded-bl":[i]}],"border-w":[{border:[o]}],"border-w-x":[{"border-x":[o]}],"border-w-y":[{"border-y":[o]}],"border-w-s":[{"border-s":[o]}],"border-w-e":[{"border-e":[o]}],"border-w-t":[{"border-t":[o]}],"border-w-r":[{"border-r":[o]}],"border-w-b":[{"border-b":[o]}],"border-w-l":[{"border-l":[o]}],"border-opacity":[{"border-opacity":[j]}],"border-style":[{border:[...L(),"hidden"]}],"divide-x":[{"divide-x":[o]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[o]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[j]}],"divide-style":[{divide:L()}],"border-color":[{border:[n]}],"border-color-x":[{"border-x":[n]}],"border-color-y":[{"border-y":[n]}],"border-color-s":[{"border-s":[n]}],"border-color-e":[{"border-e":[n]}],"border-color-t":[{"border-t":[n]}],"border-color-r":[{"border-r":[n]}],"border-color-b":[{"border-b":[n]}],"border-color-l":[{"border-l":[n]}],"divide-color":[{divide:[n]}],"outline-style":[{outline:["",...L()]}],"outline-offset":[{"outline-offset":[Ga,jt]}],"outline-w":[{outline:[Ga,nr]}],"outline-color":[{outline:[t]}],"ring-w":[{ring:B()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[t]}],"ring-opacity":[{"ring-opacity":[j]}],"ring-offset-w":[{"ring-offset":[Ga,nr]}],"ring-offset-color":[{"ring-offset":[t]}],shadow:[{shadow:["","inner","none",ir,Av]}],"shadow-color":[{shadow:[En]}],opacity:[{opacity:[j]}],"mix-blend":[{"mix-blend":[...R(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":R()}],filter:[{filter:["","none"]}],blur:[{blur:[a]}],brightness:[{brightness:[r]}],contrast:[{contrast:[c]}],"drop-shadow":[{"drop-shadow":["","none",ir,jt]}],grayscale:[{grayscale:[d]}],"hue-rotate":[{"hue-rotate":[m]}],invert:[{invert:[p]}],saturate:[{saturate:[N]}],sepia:[{sepia:[A]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[a]}],"backdrop-brightness":[{"backdrop-brightness":[r]}],"backdrop-contrast":[{"backdrop-contrast":[c]}],"backdrop-grayscale":[{"backdrop-grayscale":[d]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[m]}],"backdrop-invert":[{"backdrop-invert":[p]}],"backdrop-opacity":[{"backdrop-opacity":[j]}],"backdrop-saturate":[{"backdrop-saturate":[N]}],"backdrop-sepia":[{"backdrop-sepia":[A]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[l]}],"border-spacing-x":[{"border-spacing-x":[l]}],"border-spacing-y":[{"border-spacing-y":[l]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",jt]}],duration:[{duration:$()}],ease:[{ease:["linear","in","out","in-out",jt]}],delay:[{delay:$()}],animate:[{animate:["none","spin","ping","pulse","bounce",jt]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[S]}],"scale-x":[{"scale-x":[S]}],"scale-y":[{"scale-y":[S]}],rotate:[{rotate:[Pn,jt]}],"translate-x":[{"translate-x":[D]}],"translate-y":[{"translate-y":[D]}],"skew-x":[{"skew-x":[w]}],"skew-y":[{"skew-y":[w]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",jt]}],accent:[{accent:["auto",t]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",jt]}],"caret-color":[{caret:[t]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":P()}],"scroll-mx":[{"scroll-mx":P()}],"scroll-my":[{"scroll-my":P()}],"scroll-ms":[{"scroll-ms":P()}],"scroll-me":[{"scroll-me":P()}],"scroll-mt":[{"scroll-mt":P()}],"scroll-mr":[{"scroll-mr":P()}],"scroll-mb":[{"scroll-mb":P()}],"scroll-ml":[{"scroll-ml":P()}],"scroll-p":[{"scroll-p":P()}],"scroll-px":[{"scroll-px":P()}],"scroll-py":[{"scroll-py":P()}],"scroll-ps":[{"scroll-ps":P()}],"scroll-pe":[{"scroll-pe":P()}],"scroll-pt":[{"scroll-pt":P()}],"scroll-pr":[{"scroll-pr":P()}],"scroll-pb":[{"scroll-pb":P()}],"scroll-pl":[{"scroll-pl":P()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",jt]}],fill:[{fill:[t,"none"]}],"stroke-w":[{stroke:[Ga,nr,Wl]}],stroke:[{stroke:[t,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},Fv=uv(Rv);function Le(...t){return Fv(Vh(t))}const ei=kc("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background text-foreground hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9 rounded-md"}},defaultVariants:{variant:"default",size:"default"}}),E=x.forwardRef(({className:t,variant:s,size:a,asChild:r=!1,...n},i)=>{const l=r?Ih:"button";return e.jsx(l,{"data-slot":"button",className:Le(ei({variant:s,size:a,className:t})),ref:i,...n})});E.displayName="Button";function Z({className:t,...s}){return e.jsx("div",{"data-slot":"card",className:Le("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border",t),...s})}function ce({className:t,...s}){return e.jsx("div",{"data-slot":"card-header",className:Le("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 pt-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",t),...s})}function de({className:t,...s}){return e.jsx("h4",{"data-slot":"card-title",className:Le("leading-none",t),...s})}function we({className:t,...s}){return e.jsx("p",{"data-slot":"card-description",className:Le("text-muted-foreground",t),...s})}function J({className:t,...s}){return e.jsx("div",{"data-slot":"card-content",className:Le("px-6 [&:last-child]:pb-6",t),...s})}const Al="/assets/Re_Logo-By51taPS.png",Au="/assets/landing_page_image-ClTD-4qZ.jpg";function Iv(){var p,u;const{login:t,isLoading:s,error:a}=us(),[r,n]=x.useState(!1),[i,l]=x.useState(null),[o,c]=x.useState(!1);x.useEffect(()=>{const h=new Image;h.src=Au,h.onload=()=>c(!0),h.complete&&c(!0)},[]);const d=async()=>{const h=sessionStorage.getItem("__force_reauth_after_logout__");localStorage.clear(),sessionStorage.clear(),h&&sessionStorage.setItem("__force_reauth_after_logout__",h);try{sessionStorage.setItem("auth_provider","okta"),await t()}catch(g){console.error("OKTA LOGIN ERROR",g)}},m=()=>{l(null),localStorage.clear(),sessionStorage.clear(),sessionStorage.setItem("auth_provider","tanflow"),n(!0);try{Uy()}catch(h){const g=h instanceof Error?h.message:"Dealer login failed. Check console for details.";console.error("TANFLOW LOGIN ERROR",h),l(g),n(!1)}};return a&&console.error("Auth Error:",{message:a.message,error:a}),e.jsxs("div",{className:"min-h-screen flex items-center justify-center p-4 relative overflow-hidden",style:{backgroundImage:o?`url(${Au})`:"none",backgroundSize:"cover",backgroundPosition:"center",backgroundRepeat:"no-repeat"},children:[!o&&e.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-slate-900 to-slate-800"}),e.jsx("div",{className:"absolute inset-0 bg-black/50 backdrop-blur-[2px]","aria-hidden":!0}),e.jsx("div",{className:"absolute inset-0 bg-black/30","aria-hidden":!0}),e.jsxs(Z,{className:"w-full max-w-md shadow-2xl relative z-10 bg-gray-900/95 border border-gray-700 text-white",children:[e.jsx(ce,{className:"space-y-1 text-center pb-6 pt-8",children:e.jsxs("div",{className:"flex flex-col items-center justify-center",children:[e.jsx("img",{src:Al,alt:"Royal Enfield",className:"h-9 w-auto max-w-[180px] object-contain mb-2"}),e.jsx("p",{className:"text-sm text-gray-400",children:"Approval Portal"})]})}),e.jsxs(J,{className:"space-y-5 pb-8 px-8",children:[a&&e.jsxs("div",{className:"bg-red-900/40 border border-red-700 text-red-200 px-4 py-3 rounded-lg text-sm",children:[e.jsx("p",{className:"font-medium",children:"Authentication Error"}),e.jsx("p",{children:a.message}),(((p=a.message)==null?void 0:p.includes("401"))||((u=a.message)==null?void 0:u.toLowerCase().includes("unauthorized")))&&e.jsxs("p",{className:"mt-2 text-xs text-red-300",children:["If you see 401 from Okta: your Okta admin must add this site’s URL to ",e.jsx("strong",{children:"Trusted Origins"})," and ensure the RE Employee application is active. Use ",e.jsx("strong",{children:"Dealer Login"})," if you are a dealer."]})]}),i&&e.jsxs("div",{className:"bg-amber-900/40 border border-amber-700 text-amber-200 px-4 py-3 rounded-lg text-sm",children:[e.jsx("p",{className:"font-medium",children:"Dealer Login (Tanflow)"}),e.jsx("p",{children:i})]}),e.jsx(E,{onClick:d,disabled:s||r,className:"w-full h-12 bg-re-red hover:bg-re-red/90 text-white font-semibold text-base border-0",size:"lg",children:s?e.jsx("div",{className:"h-5 w-5 animate-spin rounded-full border-2 border-white border-t-transparent"}):e.jsxs(e.Fragment,{children:[e.jsx(js,{className:"mr-2 h-5 w-5"}),"RE Employee Login"]})}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("span",{className:"flex-1 h-px bg-gray-600"}),e.jsx("span",{className:"text-sm text-gray-400 uppercase tracking-wide",children:"Or"}),e.jsx("span",{className:"flex-1 h-px bg-gray-600"})]}),e.jsx(E,{onClick:m,disabled:s||r,className:"w-full h-12 bg-blue-600 hover:bg-blue-700 text-white font-semibold text-base border-0",size:"lg",children:r?e.jsx("div",{className:"h-5 w-5 animate-spin rounded-full border-2 border-white border-t-transparent"}):e.jsxs(e.Fragment,{children:[e.jsx(fs,{className:"mr-2 h-5 w-5"}),"Dealer Login"]})}),e.jsxs("div",{className:"text-center pt-2",children:[e.jsx("p",{className:"text-sm text-gray-400",children:"Secure Single Sign On"}),e.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Choose your authentication provider."})]})]})]})]})}function Fp(){const{isAuthenticated:t,isLoading:s,error:a,user:r,login:n}=us(),[i,l]=x.useState("exchanging");x.useEffect(()=>{if(a){l("error");return}if(s){const d=new URLSearchParams(window.location.search).get("code");l(d&&!r?"exchanging":r&&!t?"fetching":"exchanging")}else r&&t&&l("complete")},[t,s,a,r]);const o=()=>{switch(i){case"exchanging":return"Exchanging authorization code...";case"fetching":return"Fetching your profile...";case"complete":return"Authentication successful!";case"error":return"Authentication failed";default:return"Completing authentication..."}};return e.jsxs("div",{className:"min-h-screen flex items-center justify-center bg-gradient-to-br from-slate-900 via-slate-800 to-slate-900",children:[e.jsx("div",{className:"absolute inset-0 bg-[url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAgMCA2MCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxnIGZpbGw9IiMxZTIxMmQiIGZpbGwtb3BhY2l0eT0iMC4wNSI+PGNpcmNsZSBjeD0iMzAiIGN5PSIzMCIgcj0iMzAiLz48L2c+PC9nPjwvc3ZnPg==')] opacity-20"}),e.jsxs("div",{className:"relative z-10 text-center px-4 max-w-md w-full",children:[e.jsx("div",{className:"mb-8",children:e.jsxs("div",{className:"flex flex-col items-center justify-center",children:[e.jsx("img",{src:Al,alt:"Royal Enfield Logo",className:"h-10 w-auto max-w-[168px] object-contain mb-2"}),e.jsx("p",{className:"text-xs text-gray-400 text-center truncate",children:"Approval Portal"})]})}),e.jsxs("div",{className:"bg-white/10 backdrop-blur-xl rounded-2xl p-8 shadow-2xl border border-white/20",children:[e.jsx("div",{className:"mb-6 flex justify-center",children:i==="error"?e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"absolute inset-0 animate-ping opacity-75",children:e.jsx(Je,{className:"w-16 h-16 text-red-500"})}),e.jsx(Je,{className:"w-16 h-16 text-red-500 relative"})]}):i==="complete"?e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"absolute inset-0 animate-ping opacity-75",children:e.jsx(ps,{className:"w-16 h-16 text-green-500"})}),e.jsx(ps,{className:"w-16 h-16 text-green-500 relative"})]}):e.jsxs("div",{className:"relative",children:[e.jsx(ze,{className:"w-16 h-16 animate-spin text-re-red"}),e.jsx("div",{className:"absolute inset-0 border-4 rounded-full border-re-red/20"}),e.jsx("div",{className:"absolute inset-0 border-4 border-transparent border-t-re-red rounded-full animate-spin"})]})}),e.jsxs("div",{className:"mb-6",children:[e.jsx("h2",{className:"text-xl font-semibold text-white mb-2",children:i==="complete"?"Welcome Back!":i==="error"?"Authentication Error":"Authenticating"}),e.jsx("p",{className:"text-slate-300 text-sm",children:o()})]}),i!=="error"&&e.jsxs("div",{className:"space-y-3 mb-6",children:[e.jsxs("div",{className:`flex items-center gap-3 text-sm transition-all duration-500 ${i==="exchanging"?"text-white":"text-slate-400"}`,children:[e.jsx("div",{className:`w-2 h-2 rounded-full transition-all duration-500 ${i==="exchanging"?"bg-re-red animate-pulse":"bg-slate-600"}`}),e.jsx("span",{children:"Validating credentials"})]}),e.jsxs("div",{className:`flex items-center gap-3 text-sm transition-all duration-500 ${i==="fetching"?"text-white":"text-slate-400"}`,children:[e.jsx("div",{className:`w-2 h-2 rounded-full transition-all duration-500 ${i==="fetching"?"bg-re-red animate-pulse":"bg-slate-600"}`}),e.jsx("span",{children:"Loading your profile"})]}),i==="complete"&&e.jsxs("div",{className:"flex items-center gap-3 text-sm transition-all duration-500 text-white",children:[e.jsx("div",{className:"w-2 h-2 rounded-full transition-all duration-500 bg-green-500"}),e.jsx("span",{children:"Setting up your session"})]})]}),i==="error"&&a&&e.jsxs("div",{className:"mt-6 p-4 bg-red-500/10 border border-red-500/20 rounded-lg",children:[e.jsx("p",{className:"text-red-400 text-sm",children:a.message||"An error occurred during authentication"}),e.jsx("button",{onClick:async()=>{try{await n()}catch{window.location.href="/"}},className:"mt-4 text-sm text-red-400 hover:text-red-300 underline",children:"Retry Login"})]}),i!=="error"&&i!=="complete"&&e.jsxs("div",{className:"mt-6",children:[e.jsx("div",{className:"h-1.5 bg-slate-700/50 rounded-full overflow-hidden",children:e.jsx("div",{className:"h-full bg-re-red rounded-full animate-pulse",style:{animation:"progress 2s ease-in-out infinite"}})}),e.jsx("style",{children:` +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/conclusionApi-B8GrXg3V.js","assets/radix-vendor-CLtqm-Ae.js","assets/charts-vendor-CmYZJIYl.js","assets/utils-vendor-BTBPSQfW.js","assets/ui-vendor-DgwXkk2Y.js","assets/socket-vendor-TjCxX7sJ.js","assets/redux-vendor-tbZCm13o.js","assets/router-vendor-HW_ujxKo.js"])))=>i.map(i=>d[i]); +var Zf=Object.defineProperty;var Jf=(t,s,a)=>s in t?Zf(t,s,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[s]=a;var Ll=(t,s,a)=>Jf(t,typeof s!="symbol"?s+"":s,a);import{j as e,S as Ph,R as Eh,I as _h,F as Mh,a as qf,T as eb,P as tb,C as sb,b as ab,O as Lh,c as Oh,d as rb,e as nb,f as ib,D as lb,g as ob,A as cb,h as db,i as mb,k as ub,l as xb,m as hb,n as pb,V as gb,o as fb,p as bb,q as jb,r as yb,s as vb,t as Nb,u as wb,v as Cb,w as Sb,x as Ab,y as Tb,z as kb,B as Db,E as Rb,G as Fb,H as Ib,J as Pb,K as Eb,L as _b,M as Mb,N as Lb,Q as uc,U as xc,W as Ob,X as $h,Y as Uh,Z as Bh,_ as Vh,$ as $b,a0 as Ub,a1 as Bb,a2 as Vb,a3 as zb,a4 as Hb,a5 as Gb,a6 as Wb,a7 as Yb,a8 as cn,a9 as gr,aa as Zn,ab as Qb,ac as Kb,ad as Xb,ae as Zb}from"./radix-vendor-CLtqm-Ae.js";import{a as Jb,r as x,d as zh,e as dn,B as Io,C as Yi,X as Qi,Y as Ki,T as mn,L as Xi,f as Ea,P as Hh,g as Gh,h as Wh,i as qb,j as du,k as cl,l as dl,b as ej}from"./charts-vendor-CmYZJIYl.js";import{a as ml,f as Yh,s as ma,e as hc,b as mu,c as tj,d as Oa,g as Jn,i as pc,h as Qh,j as ea,k as oa,l as Ol,m as Qa,n as sj,o as Po,p as aj,q as st,r as Eo,t as rj,u as nj,v as ij,w as lj,x as $l,y as uu,z as oj,A as Kh,B as Xh,C as gc,D as fc,E as cj,F as dj,G as Zh,H as Jr,I as Ul,J as mj,K as uj,L as xj}from"./utils-vendor-BTBPSQfW.js";import{u as W,A as js,S as fs,C as Je,a as ps,L as ze,X as yt,H as hj,b as Jh,U as Ht,F as Fe,c as Be,d as bn,R as Mt,e as jn,f as Ka,P as ms,g as pj,h as gj,B as _s,i as dr,j as Bl,k as bc,l as $a,m as ul,n as pn,o as ft,p as Ua,q as Et,I as Hr,T as ts,r as it,s as Ia,t as fj,v as ss,M as Ys,w as xl,x as Bt,y as _o,D as Tt,Z as hl,z as qt,E as bj,G as jj,J as yj,K as vj,N as Nj,O as wj,Q as Cj,V as Sj,W as Aj,Y as qh,_ as Tj,$ as kj,a0 as ep,a1 as va,a2 as oi,a3 as mr,a4 as Zi,a5 as xu,a6 as wi,a7 as Ji,a8 as tp,a9 as St,aa as Dj,ab as Qs,ac as jc,ad as ws,ae as pl,af as sp,ag as Nt,ah as Rj,ai as Fj,aj as ap,ak as gl,al as rp,am as Ij,an as yc,ao as ys,ap as Da,aq as np,ar as fl,as as bl,at as Zt,au as Pj,av as Ej,aw as ip,ax as lp,ay as Mi,az as or,aA as vc,aB as jl,aC as qn,aD as op,aE as cp,aF as Nc,aG as yl,aH as vl,aI as Mo,aJ as _j,aK as Vs,aL as dp,aM as qi,aN as Mj,aO as Lj,aP as Oj,aQ as Nl,aR as wl,aS as wc,aT as $j,aU as hu,aV as Ba,aW as Gr,aX as Uj,aY as sn,aZ as pu,a_ as Bj,a$ as Vj,b0 as mp,b1 as gu,b2 as up,b3 as zj,b4 as Hj,b5 as Gj,b6 as Wj,b7 as xp,b8 as Yj,b9 as Qj,ba as Kj,bb as Cl,bc as Xj,bd as Zj,be as Jj,bf as qj}from"./ui-vendor-DgwXkk2Y.js";import{l as ey}from"./socket-vendor-TjCxX7sJ.js";import{c as yn,a as ty}from"./redux-vendor-tbZCm13o.js";import{u as Cs,a as Va,b as hp,c as sy,B as ay,R as ry,d as kt,O as ny}from"./router-vendor-HW_ujxKo.js";(function(){const s=document.createElement("link").relList;if(s&&s.supports&&s.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))r(n);new MutationObserver(n=>{for(const i of n)if(i.type==="childList")for(const l of i.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&r(l)}).observe(document,{childList:!0,subtree:!0});function a(n){const i={};return n.integrity&&(i.integrity=n.integrity),n.referrerPolicy&&(i.referrerPolicy=n.referrerPolicy),n.crossOrigin==="use-credentials"?i.credentials="include":n.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(n){if(n.ep)return;n.ep=!0;const i=a(n);fetch(n.href,i)}})();var Lo={},fu=Jb;Lo.createRoot=fu.createRoot,Lo.hydrateRoot=fu.hydrateRoot;var pp={exports:{}},gp={};var ci=x;function iy(t,s){return t===s&&(t!==0||1/t===1/s)||t!==t&&s!==s}var ly=typeof Object.is=="function"?Object.is:iy,oy=ci.useSyncExternalStore,cy=ci.useRef,dy=ci.useEffect,my=ci.useMemo,uy=ci.useDebugValue;gp.useSyncExternalStoreWithSelector=function(t,s,a,r,n){var i=cy(null);if(i.current===null){var l={hasValue:!1,value:null};i.current=l}else l=i.current;i=my(function(){function c(h){if(!d){if(d=!0,m=h,h=r(h),n!==void 0&&l.hasValue){var g=l.value;if(n(g,h))return p=g}return p=h}if(g=p,ly(m,h))return g;var f=r(h);return n!==void 0&&n(g,f)?(m=h,g):(m=h,p=f)}var d=!1,m,p,u=a===void 0?null:a;return[function(){return c(s())},u===null?void 0:function(){return c(u())}]},[s,a,r,n]);var o=oy(t,i[0],i[1]);return dy(function(){l.hasValue=!0,l.value=o},[o]),uy(o),o};pp.exports=gp;var xy=pp.exports;function hy(t){t()}function py(){let t=null,s=null;return{clear(){t=null,s=null},notify(){hy(()=>{let a=t;for(;a;)a.callback(),a=a.next})},get(){const a=[];let r=t;for(;r;)a.push(r),r=r.next;return a},subscribe(a){let r=!0;const n=s={callback:a,next:null,prev:s};return n.prev?n.prev.next=n:t=n,function(){!r||t===null||(r=!1,n.next?n.next.prev=n.prev:s=n.prev,n.prev?n.prev.next=n.next:t=n.next)}}}}var bu={notify(){},get:()=>[]};function gy(t,s){let a,r=bu,n=0,i=!1;function l(f){m();const b=r.subscribe(f);let j=!1;return()=>{j||(j=!0,b(),p())}}function o(){r.notify()}function c(){g.onStateChange&&g.onStateChange()}function d(){return i}function m(){n++,a||(a=t.subscribe(c),r=py())}function p(){n--,a&&n===0&&(a(),a=void 0,r.clear(),r=bu)}function u(){i||(i=!0,m())}function h(){i&&(i=!1,p())}const g={addNestedSub:l,notifyNestedSubs:o,handleChangeWrapper:c,isSubscribed:d,trySubscribe:u,tryUnsubscribe:h,getListeners:()=>r};return g}var fy=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",by=fy(),jy=()=>typeof navigator<"u"&&navigator.product==="ReactNative",yy=jy(),vy=()=>by||yy?x.useLayoutEffect:x.useEffect,Ny=vy(),Vl=Symbol.for("react-redux-context"),zl=typeof globalThis<"u"?globalThis:{};function wy(){if(!x.createContext)return{};const t=zl[Vl]??(zl[Vl]=new Map);let s=t.get(x.createContext);return s||(s=x.createContext(null),t.set(x.createContext,s)),s}var ur=wy();function Cy(t){const{children:s,context:a,serverState:r,store:n}=t,i=x.useMemo(()=>{const c=gy(n);return{store:n,subscription:c,getServerState:r?()=>r:void 0}},[n,r]),l=x.useMemo(()=>n.getState(),[n]);Ny(()=>{const{subscription:c}=i;return c.onStateChange=c.notifyNestedSubs,c.trySubscribe(),l!==n.getState()&&c.notifyNestedSubs(),()=>{c.tryUnsubscribe(),c.onStateChange=void 0}},[i,l]);const o=a||ur;return x.createElement(o.Provider,{value:i},s)}var Sy=Cy;function Cc(t=ur){return function(){return x.useContext(t)}}var fp=Cc();function bp(t=ur){const s=t===ur?fp:Cc(t),a=()=>{const{store:r}=s();return r};return Object.assign(a,{withTypes:()=>a}),a}var Ay=bp();function Ty(t=ur){const s=t===ur?Ay:bp(t),a=()=>s().dispatch;return Object.assign(a,{withTypes:()=>a}),a}var ky=Ty(),Dy=(t,s)=>t===s;function Ry(t=ur){const s=t===ur?fp:Cc(t),a=(r,n={})=>{const{equalityFn:i=Dy}=typeof n=="function"?{equalityFn:n}:n,l=s(),{store:o,subscription:c,getServerState:d}=l;x.useRef(!0);const m=x.useCallback({[r.name](u){return r(u)}}[r.name],[r]),p=xy.useSyncExternalStoreWithSelector(c.addNestedSub,o.getState,d||o.getState,m,i);return x.useDebugValue(p),p};return Object.assign(a,{withTypes:()=>a}),a}var Fy=Ry(),Oo=function(t,s){return Oo=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,r){a.__proto__=r}||function(a,r){for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(a[n]=r[n])},Oo(t,s)};function Iy(t,s){if(typeof s!="function"&&s!==null)throw new TypeError("Class extends value "+String(s)+" is not a constructor or null");Oo(t,s);function a(){this.constructor=t}t.prototype=s===null?Object.create(s):(a.prototype=s.prototype,new a)}var el=function(){return el=Object.assign||function(s){for(var a,r=1,n=arguments.length;r0&&g[g.length-1])||S[0]!==6&&S[0]!==2)){b=0;continue}if(S[0]===3&&(!g||S[1]>g[0]&&S[1]0?setTimeout(h,N):h(null)}}window.addEventListener("storage",j),m.addToWaiting(j);var y=setTimeout(j,Math.max(0,p-Date.now()))})];case 1:return u.sent(),[2]}})})},m.addToWaiting=function(p){this.removeFromWaiting(p),m.waiters!==void 0&&m.waiters.push(p)},m.removeFromWaiting=function(p){m.waiters!==void 0&&(m.waiters=m.waiters.filter(function(u){return u!==p}))},m.notifyWaiters=function(){m.waiters!==void 0&&m.waiters.slice().forEach(function(p){return p()})},m.prototype.releaseLock=function(p){return a(this,void 0,void 0,function(){return r(this,function(u){switch(u.label){case 0:return[4,this.releaseLock__private__(p)];case 1:return[2,u.sent()]}})})},m.prototype.releaseLock__private__=function(p){return a(this,void 0,void 0,function(){var u,h,g,f;return r(this,function(b){switch(b.label){case 0:return u=this.storageHandler===void 0?l:this.storageHandler,h=i+"-"+p,(g=u.getItemSync(h))===null?[2]:(f=JSON.parse(g)).id!==this.id?[3,2]:[4,kr.default().lock(f.iat)];case 1:b.sent(),this.acquiredIatSet.delete(f.iat),u.removeItemSync(h),kr.default().unlock(f.iat),m.notifyWaiters(),b.label=2;case 2:return[2]}})})},m.lockCorrector=function(p){for(var u=Date.now()-5e3,h=p,g=[],f=0;;){var b=h.keySync(f);if(b===null)break;g.push(b),f++}for(var j=!1,y=0;y.")},_y=el(el({},Ey),{buildAuthorizeUrl:Zs,buildLogoutUrl:Zs,getAccessTokenSilently:Zs,getAccessTokenWithPopup:Zs,getIdTokenClaims:Zs,loginWithRedirect:Zs,loginWithPopup:Zs,connectAccountWithRedirect:Zs,logout:Zs,handleRedirectCallback:Zs,getDpopNonce:Zs,setDpopNonce:Zs,generateDpopProof:Zs,createFetcher:Zs}),My=x.createContext(_y);(function(t){Iy(s,t);function s(a,r){var n=t.call(this,r??a)||this;return n.error=a,n.error_description=r,Object.setPrototypeOf(n,s.prototype),n}return s})(Error);var Ly=function(t){return t===void 0&&(t=My),x.useContext(t)};const Hl="idToken",Gl="userData",Oy=()=>!0;class tt{static setAccessToken(s){}static getAccessToken(){return null}static setRefreshToken(s){}static getRefreshToken(){return null}static setIdToken(s){sessionStorage.setItem(Hl,s)}static getIdToken(){return sessionStorage.getItem(Hl)}static setUserData(s){localStorage.setItem(Gl,JSON.stringify(s))}static getUserData(){const s=localStorage.getItem(Gl);if(!s)return null;try{return JSON.parse(s)}catch{return null}}static clearAll(){try{sessionStorage.setItem("__logout_in_progress__","true"),sessionStorage.setItem("__force_logout__","true")}catch(s){console.warn("Could not set logout flags:",s)}try{localStorage.removeItem(Gl),sessionStorage.removeItem(Hl)}catch(s){console.warn("Error clearing user data:",s)}{try{sessionStorage.setItem("__logout_in_progress__","true"),sessionStorage.setItem("__force_logout__","true")}catch{}return}}static hasAccessToken(){return!!this.getUserData()}static hasRefreshToken(){return!!this.getUserData()}static isLocalhost(){return window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"||window.location.hostname===""}static isProduction(){return Oy()}static setAuthError(s){s?sessionStorage.setItem("__auth_error__",s):sessionStorage.removeItem("__auth_error__")}static getAuthError(){return sessionStorage.getItem("__auth_error__")}}function Ci(t,s=5){if(!t)return!0;try{const a=t.split(".");if(a.length!==3||!a[1])return!0;const n=JSON.parse(atob(a[1])).exp*1e3,i=Date.now(),l=s*60*1e3;return n-i{if(t.data instanceof FormData){const s=t.headers;delete s["Content-Type"],s.common&&typeof s.common=="object"&&delete s.common["Content-Type"],s.post&&typeof s.post=="object"&&delete s.post["Content-Type"]}return t},t=>Promise.reject(t));ve.interceptors.response.use(t=>t,async t=>{var a,r,n,i;const s=t.config;if(t.code==="ERR_NETWORK"||t.code==="ECONNREFUSED"||(a=t.message)!=null&&a.includes("ERR_CONNECTION_REFUSED"),((r=t.response)==null?void 0:r.status)===401){if(((i=(n=t.response)==null?void 0:n.data)==null?void 0:i.errorCode)==="SESSION_SUPERSEDED"){const l=tt.getIdToken(),o=sessionStorage.getItem("auth_provider")||(l!=null&&l.includes("tanflow")?"tanflow":"okta");return tt.setAuthError("SESSION_SUPERSEDED"),W.error("You have been logged out because an active session was detected from another device.",{duration:2e3,id:"session-superseded-toast"}),setTimeout(async()=>{sessionStorage.setItem("__logout_in_progress__","true"),sessionStorage.setItem("__force_logout__","true"),o==="tanflow"&&l?Np(l):wp(l||void 0)},1e3),Promise.reject(t)}if(!s._retry){s._retry=!0;const l=!0;try{const o=tt.getRefreshToken(),c=await ml.post(`${Tc}/auth/refresh`,l?{}:{refreshToken:o},{withCredentials:!0}),m=(c.data.data||c.data).accessToken;return ve(s)}catch(o){return tt.clearAll(),window.location.href="/",Promise.reject(o)}}}return Promise.reject(t)});async function Hy(t,s){const r=(await ve.post("/auth/login",{username:t,password:s},{withCredentials:!0})).data,n=r.data||r;return n.user&&tt.setUserData(n.user),n.accessToken&&n.refreshToken&&(tt.setAccessToken(n.accessToken),tt.setRefreshToken(n.refreshToken)),n}async function Gy(t,s){var a,r;try{const n=await ve.post("/auth/token-exchange",{code:t,redirectUri:s},{responseType:"json",headers:{"Content-Type":"application/json",Accept:"application/json"}});if(Array.isArray(n.data))throw console.error("❌ Response is an array (buffer issue):",{arrayLength:n.data.length,firstFew:n.data.slice(0,10),rawResponse:n}),new Error("Invalid response format: received array instead of JSON. Check Content-Type header.");const i=n.data,l=i.data||i;return l.user&&tt.setUserData(l.user),l.idToken&&tt.setIdToken(l.idToken),l.accessToken&&l.refreshToken&&(tt.setAccessToken(l.accessToken),tt.setRefreshToken(l.refreshToken)),l}catch(n){throw console.error("❌ Token exchange failed:",{message:n.message,response:(a=n.response)==null?void 0:a.data,status:(r=n.response)==null?void 0:r.status,code:t?`${t.substring(0,10)}...`:"MISSING",redirectUri:s}),n}}async function Wy(){var r;const t={},a=(await ve.post("/auth/refresh",t)).data;if((r=a.data)!=null&&r.accessToken||a.accessToken,a.success!==!1)return"cookie-based-auth";throw new Error("Failed to refresh token")}async function Bn(){const s=(await ve.get("/auth/me")).data;return s.data||s}async function Yy(){var t,s;try{await ml.post(`${Tc}/auth/logout`,{},{withCredentials:!0})}catch(a){console.error("📡 Logout API error:",a),console.error("📡 Error details:",{message:a.message,status:(t=a.response)==null?void 0:t.status,data:(s=a.response)==null?void 0:s.data})}}let Sr=null;function Qy(){return"https://reflow-uat.royalenfield.com"}function Vr(t){const s=Qy();return Sr||(Sr=ey(s,{withCredentials:!0,transports:["websocket","polling"],path:"/socket.io",reconnection:!0,reconnectionDelay:1e3,reconnectionAttempts:5}),Sr.on("connect",()=>{}),Sr.on("connect_error",a=>{console.error("[Socket] Connection error:",a.message)}),Sr.on("disconnect",a=>{}),Sr)}function Uo(t,s,a){a?t.emit("join:request",{requestId:s,userId:a}):t.emit("join:request",s)}function Cp(t,s){t.emit("leave:request",s)}function kc(t,s){t.emit("join:user",{userId:s})}const Ky=/^(localhost|127\.0\.0\.1)$/i;function Xy(){return typeof window>"u"?"":window.location.hostname||""}function Sp(){return Ky.test(Xy())}function Fn(){return!Sp()}function rr(t){return String(t||"").trim()}function Zy(t){const s=(t||"").toLowerCase();return s.includes("uat")||s.includes("dev")}function Jy(){const t=typeof window<"u"?window.location.hostname:"",s=Sp(),a=!s&&Zy(t),r=rr("https://dev-830839.oktapreview.com"),n=rr("0oa2jgzvrpdwx2iqd0h8"),i=rr(void 0),l=rr(void 0),o=rr(void 0),c=rr(void 0),d=rr(void 0),m=rr(void 0);return s?{domain:i||r,clientId:l||n}:a?{domain:o||r,clientId:c||n}:{domain:d||r,clientId:m||n}}const Ap=x.createContext(void 0);function qy({children:t}){const[s,a]=x.useState(!1),[r,n]=x.useState(!0),[i,l]=x.useState(null),[o,c]=x.useState(null),[d,m]=x.useState(!1),p=()=>{const A="https://reflow-uat.royalenfield.com".trim(),w="".trim(),I="".trim(),k=A.replace(/\/$/,""),T=window.location.hostname,v=/^(localhost|127\.0\.0\.1)$/i.test(T);return v&&I?I:w||(v?`${k}/login/callback`:/localhost|127\.0\.0\.1/i.test(A)?`${k}/login/callback`:`${(A||k).replace(/\/$/,"")}/login/callback`)};x.useEffect(()=>{const A=sessionStorage.getItem("__logout_in_progress__"),w=sessionStorage.getItem("__force_logout__");if(A==="true"||w==="true"){sessionStorage.removeItem("__logout_in_progress__"),sessionStorage.removeItem("__force_logout__"),tt.clearAll();try{localStorage.clear(),sessionStorage.clear()}catch(L){console.error("Error clearing storage:",L)}a(!1),l(null),n(!1),c(null);return}const I=new URLSearchParams(window.location.search),k=I.has("code"),T=sessionStorage.getItem("__logout_type__");if((I.has("logout")||I.has("okta_logged_out")||I.has("tanflow_logged_out")||T)&&!k){console.log("🚪 Logout parameter detected in URL, clearing all tokens and backend session"),Yy().catch(L=>console.warn("🚪 Final backend logout cleanup failed:",L)),tt.clearAll(),sessionStorage.removeItem("__logout_type__"),sessionStorage.removeItem("auth_provider"),sessionStorage.removeItem("tanflow_auth_state"),sessionStorage.removeItem("__logout_in_progress__"),sessionStorage.removeItem("__force_logout__"),sessionStorage.removeItem("tanflow_logged_out"),localStorage.clear(),a(!1),l(null),n(!1);try{sessionStorage.setItem("__force_reauth_after_logout__","true")}catch(L){console.warn("Could not set force reauth flag:",L)}window.history.replaceState({},document.title,"/");return}if(window.location.pathname==="/login/callback"||window.location.pathname==="/login/tanflow/callback")return;const _=tt.getAccessToken(),P=tt.getRefreshToken(),B=tt.getUserData(),R=_||P||B;if(Fn())d?n(!1):g();else{if(!R){a(!1),l(null),n(!1);return}d?n(!1):g()}},[d]),x.useEffect(()=>{if(!s)return;const A=Fn(),w=async()=>{if(A)try{await N()}catch(T){console.error("Silent refresh failed:",T)}else{const T=tt.getAccessToken();if(T&&Ci(T,5))try{await N()}catch(v){console.error("Silent refresh failed:",v)}}},I=A?10*60*1e3:5*60*1e3,k=setInterval(w,I);return()=>clearInterval(k)},[s]),x.useEffect(()=>{if(!s||!(i!=null&&i.userId))return;const A=Vr();kc(A,i.userId);const w=I=>{console.log("📡 [Socket] Session superseded event received:",I),tt.setAuthError("SESSION_SUPERSEDED"),W.error("Session Expired",{description:"You have been logged out because another session was started on a different device.",duration:4e3,id:"session-superseded-socket"}),setTimeout(()=>{j()},1e3)};return A.on("SESSION_SUPERSEDED",w),()=>{A.off("SESSION_SUPERSEDED",w)}},[s,i==null?void 0:i.userId]);const u=x.useRef(!1),h=x.useRef(null);x.useEffect(()=>{if(u.current||window.location.pathname!=="/login/callback")return;(async()=>{var B,R,M,L;const w=new URLSearchParams(window.location.search);if(sessionStorage.getItem("auth_provider")==="tanflow")return;const k=sessionStorage.getItem("__logout_type__");if((w.has("logout")||w.has("tanflow_logged_out")||w.has("okta_logged_out")||k)&&!w.get("code")){console.log("🚪 Logout redirect detected in callback, redirecting to home");const D=new URLSearchParams;(w.has("tanflow_logged_out")||k==="tanflow")&&D.set("tanflow_logged_out","true"),(w.has("okta_logged_out")||k==="okta")&&D.set("okta_logged_out","true"),w.has("logout")&&D.set("logout",w.get("logout")||Date.now().toString());const C=D.toString()?`/?${D.toString()}`:"/?logout="+Date.now();window.location.replace(C);return}u.current=!0;const v=w.get("code"),_=w.get("error");if(window.history.replaceState({},document.title,"/login/callback"),_){c(new Error(`Authentication error: ${_}`)),n(!1),sessionStorage.removeItem("auth_provider");return}if(!v){n(!1),sessionStorage.removeItem("auth_provider");return}const P=sessionStorage.getItem("__okta_auth_code_consumed__");if(P&&P===v){c(new Error("Authorization code already used. Please login again.")),n(!1),sessionStorage.removeItem("auth_provider");return}if(h.current!==v){h.current=v,sessionStorage.setItem("__okta_auth_code_consumed__",v);try{n(!0),a(!1),c(null);const D=p(),C=await Gy(v,D);l(C.user),a(!0),c(null),sessionStorage.removeItem("auth_provider"),window.history.replaceState({},document.title,"/")}catch(D){console.error("❌ Token exchange error in AuthContext:",D);const C=String(((R=(B=D==null?void 0:D.response)==null?void 0:B.data)==null?void 0:R.error)||"").toUpperCase(),G=String(((L=(M=D==null?void 0:D.response)==null?void 0:M.data)==null?void 0:L.message)||(D==null?void 0:D.message)||"").toLowerCase();if(C==="RELOGIN_REQUIRED"||G.includes("invalid or has expired")||G.includes("invalid_grant")||G.includes("authorization code already used")){a(!1),l(null),c(new Error("Login session expired. Please sign in again.")),sessionStorage.removeItem("auth_provider"),window.location.replace("/?relogin_required=1");return}c(D),a(!1),l(null),sessionStorage.removeItem("auth_provider"),u.current=!1}finally{n(!1)}}})()},[]);const g=async()=>{var w;if(d){n(!1);return}const A=Fn();try{if(n(!0),A){const T=tt.getUserData();try{const v=await Bn();l(v),tt.setUserData(v),a(!0)}catch(v){if(((w=v==null?void 0:v.response)==null?void 0:w.status)===401)try{await N();const _=await Bn();l(_),tt.setUserData(_),a(!0)}catch{tt.clearAll(),a(!1),l(null)}else v!=null&&v.isConnectionError?T?(l(T),a(!0)):(a(!1),l(null)):(tt.clearAll(),a(!1),l(null))}return}const I=tt.getAccessToken(),k=tt.getUserData();if(!I){a(!1),l(null),n(!1);return}if(Ci(I))try{await N();const T=tt.getAccessToken();if(T&&!Ci(T)){const v=tt.getUserData();if(v)l(v),a(!0);else try{const _=await Bn();l(_),tt.setUserData(_),a(!0)}catch{tt.clearAll(),a(!1),l(null)}}else tt.clearAll(),a(!1),l(null)}catch{tt.clearAll(),a(!1),l(null)}else if(k)l(k),a(!0);else try{const T=await Bn();l(T),tt.setUserData(T),a(!0)}catch{tt.clearAll(),a(!1),l(null)}}catch(I){console.error("Error checking auth status:",I),c(I),tt.clearAll(),a(!1),l(null)}finally{n(!1)}},f=async()=>{try{c(null);const{domain:A,clientId:w}=Jy();if(!A||!w)throw new Error("Missing Okta configuration (VITE_OKTA_DOMAIN / VITE_OKTA_CLIENT_ID).");const I=p(),k="code",T="openid profile email",v=Math.random().toString(36).substring(7);sessionStorage.setItem("auth_provider","okta");const _=new URLSearchParams(window.location.search),P=_.has("logout")||_.has("okta_logged_out")||_.has("tanflow_logged_out"),B=sessionStorage.getItem("__force_reauth_after_logout__")==="true",R=P||B;let M=`${A}/oauth2/default/v1/authorize?client_id=${w}&redirect_uri=${encodeURIComponent(I)}&response_type=${k}&scope=${encodeURIComponent(T)}&state=${v}`;R&&(M+="&prompt=login",sessionStorage.removeItem("__force_reauth_after_logout__")),window.location.href=M}catch(A){throw c(A),A}},b=async(A,w)=>{c(null),n(!0);try{const I=await Hy(A,w);l(I.user),a(!0),window.history.replaceState({},document.title,"/")}catch(I){throw c(I),a(!1),l(null),I}finally{n(!1)}},j=async()=>{try{const A=tt.getIdToken(),w=sessionStorage.getItem("auth_provider")||(A&&A.includes("tanflow")?"tanflow":null)||"okta";sessionStorage.setItem("__logout_in_progress__","true"),sessionStorage.setItem("__force_logout__","true"),m(!0),a(!1),l(null),c(null),n(!0);const I=sessionStorage.getItem("__logout_in_progress__"),k=sessionStorage.getItem("__force_logout__"),T=sessionStorage.getItem("auth_provider");if(tt.clearAll(),I&&sessionStorage.setItem("__logout_in_progress__",I),k&&sessionStorage.setItem("__force_logout__",k),A&&tt.setIdToken(A),T&&sessionStorage.setItem("auth_provider",T),await new Promise(v=>setTimeout(v,100)),w==="tanflow"&&A){console.log("🚪 Initiating Tanflow logout...");try{Np(A);return}catch(v){console.error("🚪 Tanflow logout error:",v)}}console.log("🚪 Using OKTA logout flow or fallback"),sessionStorage.removeItem("auth_provider"),wp(A||void 0)}catch(A){console.error("🚪 Logout error:",A);try{localStorage.clear(),sessionStorage.clear(),sessionStorage.setItem("__logout_in_progress__","true");const I=`${"https://reflow-uat.royalenfield.com".trim().replace(/\/$/,"")}/?okta_logged_out=true&logout=${Date.now()}`;window.location.replace(I)}catch{window.location.replace("/?logout="+Date.now())}}},y=async()=>{if(Fn()){if(s)return"cookie-based-auth";try{return await N(),s?"cookie-based-auth":null}catch{return null}}const w=tt.getAccessToken();if(w&&!Ci(w))return w;try{return await N(),tt.getAccessToken()}catch{return null}},N=async()=>{const A=Fn();try{const w=await Wy();if(A||w)return;throw new Error("Failed to refresh token")}catch(w){throw tt.clearAll(),a(!1),l(null),w}},S={isAuthenticated:s,isLoading:r,user:i,error:o,login:f,loginWithPassword:b,logout:j,getAccessTokenSilently:y,refreshTokenSilently:N};return e.jsx(Ap.Provider,{value:S,children:t})}function ev({children:t}){return e.jsx(qy,{children:t})}function us(){const t=x.useContext(Ap);if(t===void 0)throw new Error("useAuth must be used within an AuthProvider");return t}function Dr(t){return(t==null?void 0:t.role)==="ADMIN"}function In(t){return(t==null?void 0:t.role)==="MANAGEMENT"}function Sl(t){return(t==null?void 0:t.role)==="MANAGEMENT"||(t==null?void 0:t.role)==="ADMIN"}const wu=t=>typeof t=="boolean"?`${t}`:t===0?"0":t,Cu=zh,Dc=(t,s)=>a=>{var r;if((s==null?void 0:s.variants)==null)return Cu(t,a==null?void 0:a.class,a==null?void 0:a.className);const{variants:n,defaultVariants:i}=s,l=Object.keys(n).map(d=>{const m=a==null?void 0:a[d],p=i==null?void 0:i[d];if(m===null)return null;const u=wu(m)||wu(p);return n[d][u]}),o=a&&Object.entries(a).reduce((d,m)=>{let[p,u]=m;return u===void 0||(d[p]=u),d},{}),c=s==null||(r=s.compoundVariants)===null||r===void 0?void 0:r.reduce((d,m)=>{let{class:p,className:u,...h}=m;return Object.entries(h).every(g=>{let[f,b]=g;return Array.isArray(b)?b.includes({...i,...o}[f]):{...i,...o}[f]===b})?[...d,p,u]:d},[]);return Cu(t,l,c,a==null?void 0:a.class,a==null?void 0:a.className)},Rc="-",tv=t=>{const s=av(t),{conflictingClassGroups:a,conflictingClassGroupModifiers:r}=t;return{getClassGroupId:l=>{const o=l.split(Rc);return o[0]===""&&o.length!==1&&o.shift(),Tp(o,s)||sv(l)},getConflictingClassGroupIds:(l,o)=>{const c=a[l]||[];return o&&r[l]?[...c,...r[l]]:c}}},Tp=(t,s)=>{var l;if(t.length===0)return s.classGroupId;const a=t[0],r=s.nextPart.get(a),n=r?Tp(t.slice(1),r):void 0;if(n)return n;if(s.validators.length===0)return;const i=t.join(Rc);return(l=s.validators.find(({validator:o})=>o(i)))==null?void 0:l.classGroupId},Su=/^\[(.+)\]$/,sv=t=>{if(Su.test(t)){const s=Su.exec(t)[1],a=s==null?void 0:s.substring(0,s.indexOf(":"));if(a)return"arbitrary.."+a}},av=t=>{const{theme:s,prefix:a}=t,r={nextPart:new Map,validators:[]};return nv(Object.entries(t.classGroups),a).forEach(([i,l])=>{Bo(l,r,i,s)}),r},Bo=(t,s,a,r)=>{t.forEach(n=>{if(typeof n=="string"){const i=n===""?s:Au(s,n);i.classGroupId=a;return}if(typeof n=="function"){if(rv(n)){Bo(n(r),s,a,r);return}s.validators.push({validator:n,classGroupId:a});return}Object.entries(n).forEach(([i,l])=>{Bo(l,Au(s,i),a,r)})})},Au=(t,s)=>{let a=t;return s.split(Rc).forEach(r=>{a.nextPart.has(r)||a.nextPart.set(r,{nextPart:new Map,validators:[]}),a=a.nextPart.get(r)}),a},rv=t=>t.isThemeGetter,nv=(t,s)=>s?t.map(([a,r])=>{const n=r.map(i=>typeof i=="string"?s+i:typeof i=="object"?Object.fromEntries(Object.entries(i).map(([l,o])=>[s+l,o])):i);return[a,n]}):t,iv=t=>{if(t<1)return{get:()=>{},set:()=>{}};let s=0,a=new Map,r=new Map;const n=(i,l)=>{a.set(i,l),s++,s>t&&(s=0,r=a,a=new Map)};return{get(i){let l=a.get(i);if(l!==void 0)return l;if((l=r.get(i))!==void 0)return n(i,l),l},set(i,l){a.has(i)?a.set(i,l):n(i,l)}}},kp="!",lv=t=>{const{separator:s,experimentalParseClassName:a}=t,r=s.length===1,n=s[0],i=s.length,l=o=>{const c=[];let d=0,m=0,p;for(let b=0;bm?p-m:void 0;return{modifiers:c,hasImportantModifier:h,baseClassName:g,maybePostfixModifierPosition:f}};return a?o=>a({className:o,parseClassName:l}):l},ov=t=>{if(t.length<=1)return t;const s=[];let a=[];return t.forEach(r=>{r[0]==="["?(s.push(...a.sort(),r),a=[]):a.push(r)}),s.push(...a.sort()),s},cv=t=>({cache:iv(t.cacheSize),parseClassName:lv(t),...tv(t)}),dv=/\s+/,mv=(t,s)=>{const{parseClassName:a,getClassGroupId:r,getConflictingClassGroupIds:n}=s,i=[],l=t.trim().split(dv);let o="";for(let c=l.length-1;c>=0;c-=1){const d=l[c],{modifiers:m,hasImportantModifier:p,baseClassName:u,maybePostfixModifierPosition:h}=a(d);let g=!!h,f=r(g?u.substring(0,h):u);if(!f){if(!g){o=d+(o.length>0?" "+o:o);continue}if(f=r(u),!f){o=d+(o.length>0?" "+o:o);continue}g=!1}const b=ov(m).join(":"),j=p?b+kp:b,y=j+f;if(i.includes(y))continue;i.push(y);const N=n(f,g);for(let S=0;S0?" "+o:o)}return o};function uv(){let t=0,s,a,r="";for(;t{if(typeof t=="string")return t;let s,a="";for(let r=0;rp(m),t());return a=cv(d),r=a.cache.get,n=a.cache.set,i=o,o(c)}function o(c){const d=r(c);if(d)return d;const m=mv(c,a);return n(c,m),m}return function(){return i(uv.apply(null,arguments))}}const Kt=t=>{const s=a=>a[t]||[];return s.isThemeGetter=!0,s},Rp=/^\[(?:([a-z-]+):)?(.+)\]$/i,hv=/^\d+\/\d+$/,pv=new Set(["px","full","screen"]),gv=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,fv=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,bv=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,jv=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,yv=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Ga=t=>un(t)||pv.has(t)||hv.test(t),nr=t=>vn(t,"length",kv),un=t=>!!t&&!Number.isNaN(Number(t)),Wl=t=>vn(t,"number",un),Pn=t=>!!t&&Number.isInteger(Number(t)),vv=t=>t.endsWith("%")&&un(t.slice(0,-1)),jt=t=>Rp.test(t),ir=t=>gv.test(t),Nv=new Set(["length","size","percentage"]),wv=t=>vn(t,Nv,Fp),Cv=t=>vn(t,"position",Fp),Sv=new Set(["image","url"]),Av=t=>vn(t,Sv,Rv),Tv=t=>vn(t,"",Dv),En=()=>!0,vn=(t,s,a)=>{const r=Rp.exec(t);return r?r[1]?typeof s=="string"?r[1]===s:s.has(r[1]):a(r[2]):!1},kv=t=>fv.test(t)&&!bv.test(t),Fp=()=>!1,Dv=t=>jv.test(t),Rv=t=>yv.test(t),Fv=()=>{const t=Kt("colors"),s=Kt("spacing"),a=Kt("blur"),r=Kt("brightness"),n=Kt("borderColor"),i=Kt("borderRadius"),l=Kt("borderSpacing"),o=Kt("borderWidth"),c=Kt("contrast"),d=Kt("grayscale"),m=Kt("hueRotate"),p=Kt("invert"),u=Kt("gap"),h=Kt("gradientColorStops"),g=Kt("gradientColorStopPositions"),f=Kt("inset"),b=Kt("margin"),j=Kt("opacity"),y=Kt("padding"),N=Kt("saturate"),S=Kt("scale"),A=Kt("sepia"),w=Kt("skew"),I=Kt("space"),k=Kt("translate"),T=()=>["auto","contain","none"],v=()=>["auto","hidden","clip","visible","scroll"],_=()=>["auto",jt,s],P=()=>[jt,s],B=()=>["",Ga,nr],R=()=>["auto",un,jt],M=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],L=()=>["solid","dashed","dotted","double","none"],D=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],C=()=>["start","end","center","between","around","evenly","stretch"],G=()=>["","0",jt],U=()=>["auto","avoid","all","avoid-page","page","left","right","column"],$=()=>[un,jt];return{cacheSize:500,separator:":",theme:{colors:[En],spacing:[Ga,nr],blur:["none","",ir,jt],brightness:$(),borderColor:[t],borderRadius:["none","","full",ir,jt],borderSpacing:P(),borderWidth:B(),contrast:$(),grayscale:G(),hueRotate:$(),invert:G(),gap:P(),gradientColorStops:[t],gradientColorStopPositions:[vv,nr],inset:_(),margin:_(),opacity:$(),padding:P(),saturate:$(),scale:$(),sepia:G(),skew:$(),space:P(),translate:P()},classGroups:{aspect:[{aspect:["auto","square","video",jt]}],container:["container"],columns:[{columns:[ir]}],"break-after":[{"break-after":U()}],"break-before":[{"break-before":U()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...M(),jt]}],overflow:[{overflow:v()}],"overflow-x":[{"overflow-x":v()}],"overflow-y":[{"overflow-y":v()}],overscroll:[{overscroll:T()}],"overscroll-x":[{"overscroll-x":T()}],"overscroll-y":[{"overscroll-y":T()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[f]}],"inset-x":[{"inset-x":[f]}],"inset-y":[{"inset-y":[f]}],start:[{start:[f]}],end:[{end:[f]}],top:[{top:[f]}],right:[{right:[f]}],bottom:[{bottom:[f]}],left:[{left:[f]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",Pn,jt]}],basis:[{basis:_()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",jt]}],grow:[{grow:G()}],shrink:[{shrink:G()}],order:[{order:["first","last","none",Pn,jt]}],"grid-cols":[{"grid-cols":[En]}],"col-start-end":[{col:["auto",{span:["full",Pn,jt]},jt]}],"col-start":[{"col-start":R()}],"col-end":[{"col-end":R()}],"grid-rows":[{"grid-rows":[En]}],"row-start-end":[{row:["auto",{span:[Pn,jt]},jt]}],"row-start":[{"row-start":R()}],"row-end":[{"row-end":R()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",jt]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",jt]}],gap:[{gap:[u]}],"gap-x":[{"gap-x":[u]}],"gap-y":[{"gap-y":[u]}],"justify-content":[{justify:["normal",...C()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...C(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...C(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[y]}],px:[{px:[y]}],py:[{py:[y]}],ps:[{ps:[y]}],pe:[{pe:[y]}],pt:[{pt:[y]}],pr:[{pr:[y]}],pb:[{pb:[y]}],pl:[{pl:[y]}],m:[{m:[b]}],mx:[{mx:[b]}],my:[{my:[b]}],ms:[{ms:[b]}],me:[{me:[b]}],mt:[{mt:[b]}],mr:[{mr:[b]}],mb:[{mb:[b]}],ml:[{ml:[b]}],"space-x":[{"space-x":[I]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[I]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",jt,s]}],"min-w":[{"min-w":[jt,s,"min","max","fit"]}],"max-w":[{"max-w":[jt,s,"none","full","min","max","fit","prose",{screen:[ir]},ir]}],h:[{h:[jt,s,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[jt,s,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[jt,s,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[jt,s,"auto","min","max","fit"]}],"font-size":[{text:["base",ir,nr]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",Wl]}],"font-family":[{font:[En]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",jt]}],"line-clamp":[{"line-clamp":["none",un,Wl]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",Ga,jt]}],"list-image":[{"list-image":["none",jt]}],"list-style-type":[{list:["none","disc","decimal",jt]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[t]}],"placeholder-opacity":[{"placeholder-opacity":[j]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[t]}],"text-opacity":[{"text-opacity":[j]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...L(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",Ga,nr]}],"underline-offset":[{"underline-offset":["auto",Ga,jt]}],"text-decoration-color":[{decoration:[t]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:P()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",jt]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",jt]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[j]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...M(),Cv]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",wv]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},Av]}],"bg-color":[{bg:[t]}],"gradient-from-pos":[{from:[g]}],"gradient-via-pos":[{via:[g]}],"gradient-to-pos":[{to:[g]}],"gradient-from":[{from:[h]}],"gradient-via":[{via:[h]}],"gradient-to":[{to:[h]}],rounded:[{rounded:[i]}],"rounded-s":[{"rounded-s":[i]}],"rounded-e":[{"rounded-e":[i]}],"rounded-t":[{"rounded-t":[i]}],"rounded-r":[{"rounded-r":[i]}],"rounded-b":[{"rounded-b":[i]}],"rounded-l":[{"rounded-l":[i]}],"rounded-ss":[{"rounded-ss":[i]}],"rounded-se":[{"rounded-se":[i]}],"rounded-ee":[{"rounded-ee":[i]}],"rounded-es":[{"rounded-es":[i]}],"rounded-tl":[{"rounded-tl":[i]}],"rounded-tr":[{"rounded-tr":[i]}],"rounded-br":[{"rounded-br":[i]}],"rounded-bl":[{"rounded-bl":[i]}],"border-w":[{border:[o]}],"border-w-x":[{"border-x":[o]}],"border-w-y":[{"border-y":[o]}],"border-w-s":[{"border-s":[o]}],"border-w-e":[{"border-e":[o]}],"border-w-t":[{"border-t":[o]}],"border-w-r":[{"border-r":[o]}],"border-w-b":[{"border-b":[o]}],"border-w-l":[{"border-l":[o]}],"border-opacity":[{"border-opacity":[j]}],"border-style":[{border:[...L(),"hidden"]}],"divide-x":[{"divide-x":[o]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[o]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[j]}],"divide-style":[{divide:L()}],"border-color":[{border:[n]}],"border-color-x":[{"border-x":[n]}],"border-color-y":[{"border-y":[n]}],"border-color-s":[{"border-s":[n]}],"border-color-e":[{"border-e":[n]}],"border-color-t":[{"border-t":[n]}],"border-color-r":[{"border-r":[n]}],"border-color-b":[{"border-b":[n]}],"border-color-l":[{"border-l":[n]}],"divide-color":[{divide:[n]}],"outline-style":[{outline:["",...L()]}],"outline-offset":[{"outline-offset":[Ga,jt]}],"outline-w":[{outline:[Ga,nr]}],"outline-color":[{outline:[t]}],"ring-w":[{ring:B()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[t]}],"ring-opacity":[{"ring-opacity":[j]}],"ring-offset-w":[{"ring-offset":[Ga,nr]}],"ring-offset-color":[{"ring-offset":[t]}],shadow:[{shadow:["","inner","none",ir,Tv]}],"shadow-color":[{shadow:[En]}],opacity:[{opacity:[j]}],"mix-blend":[{"mix-blend":[...D(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":D()}],filter:[{filter:["","none"]}],blur:[{blur:[a]}],brightness:[{brightness:[r]}],contrast:[{contrast:[c]}],"drop-shadow":[{"drop-shadow":["","none",ir,jt]}],grayscale:[{grayscale:[d]}],"hue-rotate":[{"hue-rotate":[m]}],invert:[{invert:[p]}],saturate:[{saturate:[N]}],sepia:[{sepia:[A]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[a]}],"backdrop-brightness":[{"backdrop-brightness":[r]}],"backdrop-contrast":[{"backdrop-contrast":[c]}],"backdrop-grayscale":[{"backdrop-grayscale":[d]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[m]}],"backdrop-invert":[{"backdrop-invert":[p]}],"backdrop-opacity":[{"backdrop-opacity":[j]}],"backdrop-saturate":[{"backdrop-saturate":[N]}],"backdrop-sepia":[{"backdrop-sepia":[A]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[l]}],"border-spacing-x":[{"border-spacing-x":[l]}],"border-spacing-y":[{"border-spacing-y":[l]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",jt]}],duration:[{duration:$()}],ease:[{ease:["linear","in","out","in-out",jt]}],delay:[{delay:$()}],animate:[{animate:["none","spin","ping","pulse","bounce",jt]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[S]}],"scale-x":[{"scale-x":[S]}],"scale-y":[{"scale-y":[S]}],rotate:[{rotate:[Pn,jt]}],"translate-x":[{"translate-x":[k]}],"translate-y":[{"translate-y":[k]}],"skew-x":[{"skew-x":[w]}],"skew-y":[{"skew-y":[w]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",jt]}],accent:[{accent:["auto",t]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",jt]}],"caret-color":[{caret:[t]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":P()}],"scroll-mx":[{"scroll-mx":P()}],"scroll-my":[{"scroll-my":P()}],"scroll-ms":[{"scroll-ms":P()}],"scroll-me":[{"scroll-me":P()}],"scroll-mt":[{"scroll-mt":P()}],"scroll-mr":[{"scroll-mr":P()}],"scroll-mb":[{"scroll-mb":P()}],"scroll-ml":[{"scroll-ml":P()}],"scroll-p":[{"scroll-p":P()}],"scroll-px":[{"scroll-px":P()}],"scroll-py":[{"scroll-py":P()}],"scroll-ps":[{"scroll-ps":P()}],"scroll-pe":[{"scroll-pe":P()}],"scroll-pt":[{"scroll-pt":P()}],"scroll-pr":[{"scroll-pr":P()}],"scroll-pb":[{"scroll-pb":P()}],"scroll-pl":[{"scroll-pl":P()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",jt]}],fill:[{fill:[t,"none"]}],"stroke-w":[{stroke:[Ga,nr,Wl]}],stroke:[{stroke:[t,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},Iv=xv(Fv);function Le(...t){return Iv(zh(t))}const ei=Dc("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background text-foreground hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9 rounded-md"}},defaultVariants:{variant:"default",size:"default"}}),E=x.forwardRef(({className:t,variant:s,size:a,asChild:r=!1,...n},i)=>{const l=r?Ph:"button";return e.jsx(l,{"data-slot":"button",className:Le(ei({variant:s,size:a,className:t})),ref:i,...n})});E.displayName="Button";function Z({className:t,...s}){return e.jsx("div",{"data-slot":"card",className:Le("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border",t),...s})}function ce({className:t,...s}){return e.jsx("div",{"data-slot":"card-header",className:Le("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 pt-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",t),...s})}function de({className:t,...s}){return e.jsx("h4",{"data-slot":"card-title",className:Le("leading-none",t),...s})}function we({className:t,...s}){return e.jsx("p",{"data-slot":"card-description",className:Le("text-muted-foreground",t),...s})}function J({className:t,...s}){return e.jsx("div",{"data-slot":"card-content",className:Le("px-6 [&:last-child]:pb-6",t),...s})}const Al="/assets/Re_Logo-By51taPS.png",Tu="/assets/landing_page_image-ClTD-4qZ.jpg";function Pv(){var p,u;const{login:t,isLoading:s,error:a}=us(),[r,n]=x.useState(!1),[i,l]=x.useState(null),[o,c]=x.useState(!1);x.useEffect(()=>{const h=new Image;h.src=Tu,h.onload=()=>c(!0),h.complete&&c(!0)},[]);const d=async()=>{const h=sessionStorage.getItem("__force_reauth_after_logout__");localStorage.clear(),sessionStorage.clear(),h&&sessionStorage.setItem("__force_reauth_after_logout__",h);try{sessionStorage.setItem("auth_provider","okta"),await t()}catch(g){console.error("OKTA LOGIN ERROR",g)}},m=()=>{l(null),localStorage.clear(),sessionStorage.clear(),sessionStorage.setItem("auth_provider","tanflow"),n(!0);try{By()}catch(h){const g=h instanceof Error?h.message:"Dealer login failed. Check console for details.";console.error("TANFLOW LOGIN ERROR",h),l(g),n(!1)}};return a&&console.error("Auth Error:",{message:a.message,error:a}),e.jsxs("div",{className:"min-h-screen flex items-center justify-center p-4 relative overflow-hidden",style:{backgroundImage:o?`url(${Tu})`:"none",backgroundSize:"cover",backgroundPosition:"center",backgroundRepeat:"no-repeat"},children:[!o&&e.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-slate-900 to-slate-800"}),e.jsx("div",{className:"absolute inset-0 bg-black/50 backdrop-blur-[2px]","aria-hidden":!0}),e.jsx("div",{className:"absolute inset-0 bg-black/30","aria-hidden":!0}),e.jsxs(Z,{className:"w-full max-w-md shadow-2xl relative z-10 bg-gray-900/95 border border-gray-700 text-white",children:[e.jsx(ce,{className:"space-y-1 text-center pb-6 pt-8",children:e.jsxs("div",{className:"flex flex-col items-center justify-center",children:[e.jsx("img",{src:Al,alt:"Royal Enfield",className:"h-9 w-auto max-w-[180px] object-contain mb-2"}),e.jsx("p",{className:"text-sm text-gray-400",children:"Approval Portal"})]})}),e.jsxs(J,{className:"space-y-5 pb-8 px-8",children:[a&&e.jsxs("div",{className:"bg-red-900/40 border border-red-700 text-red-200 px-4 py-3 rounded-lg text-sm",children:[e.jsx("p",{className:"font-medium",children:"Authentication Error"}),e.jsx("p",{children:a.message}),(((p=a.message)==null?void 0:p.includes("401"))||((u=a.message)==null?void 0:u.toLowerCase().includes("unauthorized")))&&e.jsxs("p",{className:"mt-2 text-xs text-red-300",children:["If you see 401 from Okta: your Okta admin must add this site’s URL to ",e.jsx("strong",{children:"Trusted Origins"})," and ensure the RE Employee application is active. Use ",e.jsx("strong",{children:"Dealer Login"})," if you are a dealer."]})]}),i&&e.jsxs("div",{className:"bg-amber-900/40 border border-amber-700 text-amber-200 px-4 py-3 rounded-lg text-sm",children:[e.jsx("p",{className:"font-medium",children:"Dealer Login (Tanflow)"}),e.jsx("p",{children:i})]}),e.jsx(E,{onClick:d,disabled:s||r,className:"w-full h-12 bg-re-red hover:bg-re-red/90 text-white font-semibold text-base border-0",size:"lg",children:s?e.jsx("div",{className:"h-5 w-5 animate-spin rounded-full border-2 border-white border-t-transparent"}):e.jsxs(e.Fragment,{children:[e.jsx(js,{className:"mr-2 h-5 w-5"}),"RE Employee Login"]})}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("span",{className:"flex-1 h-px bg-gray-600"}),e.jsx("span",{className:"text-sm text-gray-400 uppercase tracking-wide",children:"Or"}),e.jsx("span",{className:"flex-1 h-px bg-gray-600"})]}),e.jsx(E,{onClick:m,disabled:s||r,className:"w-full h-12 bg-blue-600 hover:bg-blue-700 text-white font-semibold text-base border-0",size:"lg",children:r?e.jsx("div",{className:"h-5 w-5 animate-spin rounded-full border-2 border-white border-t-transparent"}):e.jsxs(e.Fragment,{children:[e.jsx(fs,{className:"mr-2 h-5 w-5"}),"Dealer Login"]})}),e.jsxs("div",{className:"text-center pt-2",children:[e.jsx("p",{className:"text-sm text-gray-400",children:"Secure Single Sign On"}),e.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Choose your authentication provider."})]})]})]})]})}function Ip(){const{isAuthenticated:t,isLoading:s,error:a,user:r,login:n}=us(),[i,l]=x.useState("exchanging");x.useEffect(()=>{if(a){l("error");return}if(s){const d=new URLSearchParams(window.location.search).get("code");l(d&&!r?"exchanging":r&&!t?"fetching":"exchanging")}else r&&t&&l("complete")},[t,s,a,r]);const o=()=>{switch(i){case"exchanging":return"Exchanging authorization code...";case"fetching":return"Fetching your profile...";case"complete":return"Authentication successful!";case"error":return"Authentication failed";default:return"Completing authentication..."}};return e.jsxs("div",{className:"min-h-screen flex items-center justify-center bg-gradient-to-br from-slate-900 via-slate-800 to-slate-900",children:[e.jsx("div",{className:"absolute inset-0 bg-[url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAgMCA2MCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxnIGZpbGw9IiMxZTIxMmQiIGZpbGwtb3BhY2l0eT0iMC4wNSI+PGNpcmNsZSBjeD0iMzAiIGN5PSIzMCIgcj0iMzAiLz48L2c+PC9nPjwvc3ZnPg==')] opacity-20"}),e.jsxs("div",{className:"relative z-10 text-center px-4 max-w-md w-full",children:[e.jsx("div",{className:"mb-8",children:e.jsxs("div",{className:"flex flex-col items-center justify-center",children:[e.jsx("img",{src:Al,alt:"Royal Enfield Logo",className:"h-10 w-auto max-w-[168px] object-contain mb-2"}),e.jsx("p",{className:"text-xs text-gray-400 text-center truncate",children:"Approval Portal"})]})}),e.jsxs("div",{className:"bg-white/10 backdrop-blur-xl rounded-2xl p-8 shadow-2xl border border-white/20",children:[e.jsx("div",{className:"mb-6 flex justify-center",children:i==="error"?e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"absolute inset-0 animate-ping opacity-75",children:e.jsx(Je,{className:"w-16 h-16 text-red-500"})}),e.jsx(Je,{className:"w-16 h-16 text-red-500 relative"})]}):i==="complete"?e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"absolute inset-0 animate-ping opacity-75",children:e.jsx(ps,{className:"w-16 h-16 text-green-500"})}),e.jsx(ps,{className:"w-16 h-16 text-green-500 relative"})]}):e.jsxs("div",{className:"relative",children:[e.jsx(ze,{className:"w-16 h-16 animate-spin text-re-red"}),e.jsx("div",{className:"absolute inset-0 border-4 rounded-full border-re-red/20"}),e.jsx("div",{className:"absolute inset-0 border-4 border-transparent border-t-re-red rounded-full animate-spin"})]})}),e.jsxs("div",{className:"mb-6",children:[e.jsx("h2",{className:"text-xl font-semibold text-white mb-2",children:i==="complete"?"Welcome Back!":i==="error"?"Authentication Error":"Authenticating"}),e.jsx("p",{className:"text-slate-300 text-sm",children:o()})]}),i!=="error"&&e.jsxs("div",{className:"space-y-3 mb-6",children:[e.jsxs("div",{className:`flex items-center gap-3 text-sm transition-all duration-500 ${i==="exchanging"?"text-white":"text-slate-400"}`,children:[e.jsx("div",{className:`w-2 h-2 rounded-full transition-all duration-500 ${i==="exchanging"?"bg-re-red animate-pulse":"bg-slate-600"}`}),e.jsx("span",{children:"Validating credentials"})]}),e.jsxs("div",{className:`flex items-center gap-3 text-sm transition-all duration-500 ${i==="fetching"?"text-white":"text-slate-400"}`,children:[e.jsx("div",{className:`w-2 h-2 rounded-full transition-all duration-500 ${i==="fetching"?"bg-re-red animate-pulse":"bg-slate-600"}`}),e.jsx("span",{children:"Loading your profile"})]}),i==="complete"&&e.jsxs("div",{className:"flex items-center gap-3 text-sm transition-all duration-500 text-white",children:[e.jsx("div",{className:"w-2 h-2 rounded-full transition-all duration-500 bg-green-500"}),e.jsx("span",{children:"Setting up your session"})]})]}),i==="error"&&a&&e.jsxs("div",{className:"mt-6 p-4 bg-red-500/10 border border-red-500/20 rounded-lg",children:[e.jsx("p",{className:"text-red-400 text-sm",children:a.message||"An error occurred during authentication"}),e.jsx("button",{onClick:async()=>{try{await n()}catch{window.location.href="/"}},className:"mt-4 text-sm text-red-400 hover:text-red-300 underline",children:"Retry Login"})]}),i!=="error"&&i!=="complete"&&e.jsxs("div",{className:"mt-6",children:[e.jsx("div",{className:"h-1.5 bg-slate-700/50 rounded-full overflow-hidden",children:e.jsx("div",{className:"h-full bg-re-red rounded-full animate-pulse",style:{animation:"progress 2s ease-in-out infinite"}})}),e.jsx("style",{children:` @keyframes progress { 0%, 100% { width: 20%; } 50% { width: 80%; } } - `})]})]}),e.jsx("p",{className:"mt-6 text-slate-500 text-xs",children:i==="complete"?"Loading dashboard...":"Please wait while we secure your session"})]}),e.jsxs("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:[e.jsx("div",{className:"absolute top-1/4 left-1/4 w-96 h-96 bg-re-red/5 rounded-full blur-3xl animate-pulse"}),e.jsx("div",{className:"absolute bottom-1/4 right-1/4 w-96 h-96 bg-re-red/5 rounded-full blur-3xl animate-pulse delay-1000"})]})]})}function Pv(){const{isAuthenticated:t,isLoading:s,error:a,user:r}=us(),[n,i]=x.useState("exchanging"),[l,o]=x.useState(""),c=x.useRef(!1);x.useEffect(()=>{if(a){i("error");return}if(s){const p=new URLSearchParams(window.location.search).get("code");i(p&&!r?"exchanging":r&&!t?"fetching":"exchanging")}else r&&t&&(i("complete"),setTimeout(()=>{window.location.href="/"},1e3))},[t,s,a,r]),x.useEffect(()=>{if(c.current||window.location.pathname!=="/login/callback")return;const m=new URLSearchParams(window.location.search),p=m.get("code"),u=m.get("error");if(!p&&!u){console.log("🚪 Logout redirect detected: no code, no error - redirecting to home immediately"),c.current=!0;const f=new URLSearchParams;f.set("tanflow_logged_out","true"),f.set("logout",Date.now().toString());const b=`/?${f.toString()}`;console.log("🚪 Redirecting to:",b),window.location.replace(b);return}if(sessionStorage.getItem("auth_provider")!=="tanflow")return;(async()=>{c.current=!0;const f=new URLSearchParams(window.location.search),b=f.get("code"),j=f.get("state"),y=f.get("error");if(window.history.replaceState({},document.title,"/login/callback"),y){i("error"),sessionStorage.removeItem("auth_provider"),sessionStorage.removeItem("tanflow_auth_state");return}const N=sessionStorage.getItem("tanflow_auth_state");if(j&&j!==N){i("error"),sessionStorage.removeItem("auth_provider"),sessionStorage.removeItem("tanflow_auth_state");return}if(!b){i("error"),sessionStorage.removeItem("auth_provider"),sessionStorage.removeItem("tanflow_auth_state");return}try{i("exchanging");const S=await By(b,j||"");sessionStorage.removeItem("tanflow_auth_state"),i("fetching");const A=S.user||await Bn();if(A)tt.setUserData(A),i("complete"),setTimeout(()=>{window.history.replaceState({},document.title,"/"),window.location.href="/"},1e3);else throw new Error("User data not received")}catch(S){console.error("Tanflow callback error:",S),i("error"),o(S.message||"Authentication failed"),sessionStorage.removeItem("auth_provider"),sessionStorage.removeItem("tanflow_auth_state")}})()},[]);const d=()=>{switch(n){case"exchanging":return"Exchanging authorization code...";case"fetching":return"Fetching your profile...";case"complete":return"Authentication successful!";case"error":return"Authentication failed";default:return"Completing authentication..."}};return e.jsxs("div",{className:"min-h-screen flex items-center justify-center bg-gradient-to-br from-slate-900 via-slate-800 to-slate-900",children:[e.jsx("div",{className:"absolute inset-0 bg-[url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAgMCA2MCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxnIGZpbGw9IiMxZTIxMmQiIGZpbGwtb3BhY2l0eT0iMC4wNSI+PGNpcmNsZSBjeD0iMzAiIGN5PSIzMCIgcj0iMzAiLz48L2c+PC9nPjwvc3ZnPg==')] opacity-20"}),e.jsxs("div",{className:"relative z-10 text-center px-4 max-w-md w-full",children:[e.jsx("div",{className:"mb-8",children:e.jsxs("div",{className:"flex flex-col items-center justify-center",children:[e.jsx("img",{src:Al,alt:"Royal Enfield Logo",className:"h-10 w-auto max-w-[168px] object-contain mb-2"}),e.jsx("p",{className:"text-xs text-gray-400 text-center truncate",children:"Approval Portal"})]})}),e.jsxs("div",{className:"bg-white/10 backdrop-blur-xl rounded-2xl p-8 shadow-2xl border border-white/20",children:[e.jsx("div",{className:"mb-6 flex justify-center",children:n==="error"?e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"absolute inset-0 animate-ping opacity-75",children:e.jsx(Je,{className:"w-16 h-16 text-red-500"})}),e.jsx(Je,{className:"w-16 h-16 text-red-500 relative"})]}):n==="complete"?e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"absolute inset-0 animate-ping opacity-75",children:e.jsx(ps,{className:"w-16 h-16 text-green-500"})}),e.jsx(ps,{className:"w-16 h-16 text-green-500 relative"})]}):e.jsxs("div",{className:"relative",children:[e.jsx(ze,{className:"w-16 h-16 animate-spin text-re-red"}),e.jsx("div",{className:"absolute inset-0 border-4 rounded-full border-re-red/20"}),e.jsx("div",{className:"absolute inset-0 border-4 border-transparent border-t-re-red rounded-full animate-spin"})]})}),e.jsxs("div",{className:"mb-6",children:[e.jsx("h2",{className:"text-xl font-semibold text-white mb-2",children:n==="complete"?"Welcome Back!":n==="error"?"Authentication Error":"Authenticating"}),e.jsx("p",{className:"text-slate-300 text-sm",children:d()})]}),n!=="error"&&e.jsxs("div",{className:"space-y-3 mb-6",children:[e.jsxs("div",{className:`flex items-center gap-3 text-sm transition-all duration-500 ${n==="exchanging"?"text-white":"text-slate-400"}`,children:[e.jsx("div",{className:`w-2 h-2 rounded-full transition-all duration-500 ${n==="exchanging"?"bg-re-red animate-pulse":"bg-slate-600"}`}),e.jsx("span",{children:"Validating credentials"})]}),e.jsxs("div",{className:`flex items-center gap-3 text-sm transition-all duration-500 ${n==="fetching"?"text-white":"text-slate-400"}`,children:[e.jsx("div",{className:`w-2 h-2 rounded-full transition-all duration-500 ${n==="fetching"?"bg-re-red animate-pulse":"bg-slate-600"}`}),e.jsx("span",{children:"Loading your profile"})]}),n==="complete"&&e.jsxs("div",{className:"flex items-center gap-3 text-sm transition-all duration-500 text-white",children:[e.jsx("div",{className:"w-2 h-2 rounded-full transition-all duration-500 bg-green-500"}),e.jsx("span",{children:"Setting up your session"})]})]}),n==="error"&&l&&e.jsxs("div",{className:"mt-6 p-4 bg-red-500/10 border border-red-500/20 rounded-lg",children:[e.jsx("p",{className:"text-red-400 text-sm",children:l}),e.jsx("button",{onClick:()=>{window.location.href="/"},className:"mt-4 text-sm text-red-400 hover:text-red-300 underline",children:"Return to login"})]}),n!=="error"&&n!=="complete"&&e.jsxs("div",{className:"mt-6",children:[e.jsx("div",{className:"h-1.5 bg-slate-700/50 rounded-full overflow-hidden",children:e.jsx("div",{className:"h-full bg-re-red rounded-full animate-pulse",style:{animation:"progress 2s ease-in-out infinite"}})}),e.jsx("style",{children:` + `})]})]}),e.jsx("p",{className:"mt-6 text-slate-500 text-xs",children:i==="complete"?"Loading dashboard...":"Please wait while we secure your session"})]}),e.jsxs("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:[e.jsx("div",{className:"absolute top-1/4 left-1/4 w-96 h-96 bg-re-red/5 rounded-full blur-3xl animate-pulse"}),e.jsx("div",{className:"absolute bottom-1/4 right-1/4 w-96 h-96 bg-re-red/5 rounded-full blur-3xl animate-pulse delay-1000"})]})]})}function Ev(){const{isAuthenticated:t,isLoading:s,error:a,user:r}=us(),[n,i]=x.useState("exchanging"),[l,o]=x.useState(""),c=x.useRef(!1);x.useEffect(()=>{if(a){i("error");return}if(s){const p=new URLSearchParams(window.location.search).get("code");i(p&&!r?"exchanging":r&&!t?"fetching":"exchanging")}else r&&t&&(i("complete"),setTimeout(()=>{window.location.href="/"},1e3))},[t,s,a,r]),x.useEffect(()=>{if(c.current||window.location.pathname!=="/login/callback")return;const m=new URLSearchParams(window.location.search),p=m.get("code"),u=m.get("error");if(!p&&!u){console.log("🚪 Logout redirect detected: no code, no error - redirecting to home immediately"),c.current=!0;const f=new URLSearchParams;f.set("tanflow_logged_out","true"),f.set("logout",Date.now().toString());const b=`/?${f.toString()}`;console.log("🚪 Redirecting to:",b),window.location.replace(b);return}if(sessionStorage.getItem("auth_provider")!=="tanflow")return;(async()=>{c.current=!0;const f=new URLSearchParams(window.location.search),b=f.get("code"),j=f.get("state"),y=f.get("error");if(window.history.replaceState({},document.title,"/login/callback"),y){i("error"),sessionStorage.removeItem("auth_provider"),sessionStorage.removeItem("tanflow_auth_state");return}const N=sessionStorage.getItem("tanflow_auth_state");if(j&&j!==N){i("error"),sessionStorage.removeItem("auth_provider"),sessionStorage.removeItem("tanflow_auth_state");return}if(!b){i("error"),sessionStorage.removeItem("auth_provider"),sessionStorage.removeItem("tanflow_auth_state");return}try{i("exchanging");const S=await Vy(b,j||"");sessionStorage.removeItem("tanflow_auth_state"),i("fetching");const A=S.user||await Bn();if(A)tt.setUserData(A),i("complete"),setTimeout(()=>{window.history.replaceState({},document.title,"/"),window.location.href="/"},1e3);else throw new Error("User data not received")}catch(S){console.error("Tanflow callback error:",S),i("error"),o(S.message||"Authentication failed"),sessionStorage.removeItem("auth_provider"),sessionStorage.removeItem("tanflow_auth_state")}})()},[]);const d=()=>{switch(n){case"exchanging":return"Exchanging authorization code...";case"fetching":return"Fetching your profile...";case"complete":return"Authentication successful!";case"error":return"Authentication failed";default:return"Completing authentication..."}};return e.jsxs("div",{className:"min-h-screen flex items-center justify-center bg-gradient-to-br from-slate-900 via-slate-800 to-slate-900",children:[e.jsx("div",{className:"absolute inset-0 bg-[url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAgMCA2MCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxnIGZpbGw9IiMxZTIxMmQiIGZpbGwtb3BhY2l0eT0iMC4wNSI+PGNpcmNsZSBjeD0iMzAiIGN5PSIzMCIgcj0iMzAiLz48L2c+PC9nPjwvc3ZnPg==')] opacity-20"}),e.jsxs("div",{className:"relative z-10 text-center px-4 max-w-md w-full",children:[e.jsx("div",{className:"mb-8",children:e.jsxs("div",{className:"flex flex-col items-center justify-center",children:[e.jsx("img",{src:Al,alt:"Royal Enfield Logo",className:"h-10 w-auto max-w-[168px] object-contain mb-2"}),e.jsx("p",{className:"text-xs text-gray-400 text-center truncate",children:"Approval Portal"})]})}),e.jsxs("div",{className:"bg-white/10 backdrop-blur-xl rounded-2xl p-8 shadow-2xl border border-white/20",children:[e.jsx("div",{className:"mb-6 flex justify-center",children:n==="error"?e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"absolute inset-0 animate-ping opacity-75",children:e.jsx(Je,{className:"w-16 h-16 text-red-500"})}),e.jsx(Je,{className:"w-16 h-16 text-red-500 relative"})]}):n==="complete"?e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"absolute inset-0 animate-ping opacity-75",children:e.jsx(ps,{className:"w-16 h-16 text-green-500"})}),e.jsx(ps,{className:"w-16 h-16 text-green-500 relative"})]}):e.jsxs("div",{className:"relative",children:[e.jsx(ze,{className:"w-16 h-16 animate-spin text-re-red"}),e.jsx("div",{className:"absolute inset-0 border-4 rounded-full border-re-red/20"}),e.jsx("div",{className:"absolute inset-0 border-4 border-transparent border-t-re-red rounded-full animate-spin"})]})}),e.jsxs("div",{className:"mb-6",children:[e.jsx("h2",{className:"text-xl font-semibold text-white mb-2",children:n==="complete"?"Welcome Back!":n==="error"?"Authentication Error":"Authenticating"}),e.jsx("p",{className:"text-slate-300 text-sm",children:d()})]}),n!=="error"&&e.jsxs("div",{className:"space-y-3 mb-6",children:[e.jsxs("div",{className:`flex items-center gap-3 text-sm transition-all duration-500 ${n==="exchanging"?"text-white":"text-slate-400"}`,children:[e.jsx("div",{className:`w-2 h-2 rounded-full transition-all duration-500 ${n==="exchanging"?"bg-re-red animate-pulse":"bg-slate-600"}`}),e.jsx("span",{children:"Validating credentials"})]}),e.jsxs("div",{className:`flex items-center gap-3 text-sm transition-all duration-500 ${n==="fetching"?"text-white":"text-slate-400"}`,children:[e.jsx("div",{className:`w-2 h-2 rounded-full transition-all duration-500 ${n==="fetching"?"bg-re-red animate-pulse":"bg-slate-600"}`}),e.jsx("span",{children:"Loading your profile"})]}),n==="complete"&&e.jsxs("div",{className:"flex items-center gap-3 text-sm transition-all duration-500 text-white",children:[e.jsx("div",{className:"w-2 h-2 rounded-full transition-all duration-500 bg-green-500"}),e.jsx("span",{children:"Setting up your session"})]})]}),n==="error"&&l&&e.jsxs("div",{className:"mt-6 p-4 bg-red-500/10 border border-red-500/20 rounded-lg",children:[e.jsx("p",{className:"text-red-400 text-sm",children:l}),e.jsx("button",{onClick:()=>{window.location.href="/"},className:"mt-4 text-sm text-red-400 hover:text-red-300 underline",children:"Return to login"})]}),n!=="error"&&n!=="complete"&&e.jsxs("div",{className:"mt-6",children:[e.jsx("div",{className:"h-1.5 bg-slate-700/50 rounded-full overflow-hidden",children:e.jsx("div",{className:"h-full bg-re-red rounded-full animate-pulse",style:{animation:"progress 2s ease-in-out infinite"}})}),e.jsx("style",{children:` @keyframes progress { 0%, 100% { width: 20%; } 50% { width: 80%; } } - `})]})]}),e.jsx("p",{className:"mt-6 text-slate-500 text-xs",children:n==="complete"?"Loading dashboard...":"Please wait while we secure your session"})]}),e.jsxs("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:[e.jsx("div",{className:"absolute top-1/4 left-1/4 w-96 h-96 bg-re-red/5 rounded-full blur-3xl animate-pulse"}),e.jsx("div",{className:"absolute bottom-1/4 right-1/4 w-96 h-96 bg-re-red/5 rounded-full blur-3xl animate-pulse delay-1000"})]})]})}const Ev=kc("inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"}},defaultVariants:{variant:"default"}});function re({className:t,variant:s,asChild:a=!1,...r}){const n=a?Ih:"span";return e.jsx(n,{"data-slot":"badge",className:Le(Ev({variant:s}),t),...r})}function _v({isOpen:t,onClose:s}){const{user:a,isAuthenticated:r,isLoading:n,error:i}=My();return x.useEffect(()=>{},[a,r,n,i]),t?e.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4",children:e.jsxs(Z,{className:"w-full max-w-2xl max-h-[90vh] overflow-auto",children:[e.jsx(ce,{children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(de,{children:"Authentication Debug Information"}),e.jsx(E,{variant:"ghost",size:"icon",onClick:s,children:e.jsx(yt,{className:"h-4 w-4"})})]})}),e.jsxs(J,{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"font-semibold",children:"Status:"}),e.jsx(re,{variant:r?"default":"destructive",children:n?"Loading...":r?"Authenticated":"Not Authenticated"})]}),i&&e.jsxs("div",{className:"bg-red-50 border border-red-200 rounded p-3",children:[e.jsx("p",{className:"text-sm text-red-700 font-semibold",children:"Error:"}),e.jsx("p",{className:"text-sm text-red-600",children:i.message})]}),a&&e.jsxs("div",{className:"space-y-2",children:[e.jsx("h4",{className:"font-semibold",children:"User Information:"}),e.jsx("pre",{className:"bg-gray-50 p-3 rounded text-xs overflow-auto",children:JSON.stringify(a,null,2)})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("h4",{className:"font-semibold",children:"All Auth Claims:"}),e.jsx("pre",{className:"bg-gray-50 p-3 rounded text-xs overflow-auto",children:JSON.stringify({isAuthenticated:r,isLoading:n,error:(i==null?void 0:i.message)||null,hasUser:!!a},null,2)})]})]})]})}):null}const cs=x.forwardRef(({className:t,...s},a)=>e.jsx(Ph,{ref:a,"data-slot":"avatar",className:Le("relative flex size-10 shrink-0 overflow-hidden rounded-full",t),...s}));cs.displayName=Ph.displayName;const Tl=x.forwardRef(({className:t,...s},a)=>e.jsx(Eh,{ref:a,"data-slot":"avatar-image",className:Le("aspect-square size-full",t),...s}));Tl.displayName=Eh.displayName;const ds=x.forwardRef(({className:t,...s},a)=>e.jsx(_h,{ref:a,"data-slot":"avatar-fallback",className:Le("bg-muted flex size-full items-center justify-center rounded-full",t),...s}));ds.displayName=_h.displayName;function Tu({...t}){return e.jsx(Jf,{"data-slot":"dropdown-menu",...t})}function ku({...t}){return e.jsx(qf,{"data-slot":"dropdown-menu-trigger",...t})}function Du({className:t,sideOffset:s=4,...a}){return e.jsx(eb,{children:e.jsx(tb,{"data-slot":"dropdown-menu-content",sideOffset:s,className:Le("bg-popover text-popover-foreground 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-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",t),...a})})}function Yl({className:t,inset:s,variant:a="default",...r}){return e.jsx(sb,{"data-slot":"dropdown-menu-item","data-inset":s,"data-variant":a,className:Le("focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...r})}function Ip({...t}){return e.jsx(rb,{"data-slot":"alert-dialog",...t})}function Mv({...t}){return e.jsx(ab,{"data-slot":"alert-dialog-portal",...t})}const Pp=x.forwardRef(({className:t,...s},a)=>e.jsx(Mh,{"data-slot":"alert-dialog-overlay",className:Le("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",t),...s,ref:a}));Pp.displayName=Mh.displayName;const Rc=x.forwardRef(({className:t,...s},a)=>e.jsxs(Mv,{children:[e.jsx(Pp,{}),e.jsx(Lh,{"data-slot":"alert-dialog-content",ref:a,className:Le("bg-background 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 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",t),...s})]}));Rc.displayName=Lh.displayName;function Ep({className:t,...s}){return e.jsx("div",{"data-slot":"alert-dialog-header",className:Le("flex flex-col gap-2 text-center sm:text-left",t),...s})}function _p({className:t,...s}){return e.jsx("div",{"data-slot":"alert-dialog-footer",className:Le("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",t),...s})}function Mp({className:t,...s}){return e.jsx(nb,{"data-slot":"alert-dialog-title",className:Le("text-lg font-semibold",t),...s})}function Lp({className:t,...s}){return e.jsx(ib,{"data-slot":"alert-dialog-description",className:Le("text-muted-foreground text-sm",t),...s})}function Op({className:t,...s}){return e.jsx(ob,{className:Le(ei(),t),...s})}function $p({className:t,...s}){return e.jsx(lb,{className:Le(ei({variant:"outline"}),t),...s})}const cr={async list(t){return(await ve.get("/notifications",{params:t})).data},async getUnreadCount(){return(await ve.get("/notifications/unread-count")).data},async markAsRead(t){return(await ve.patch(`/notifications/${t}/read`)).data},async markAllAsRead(){return(await ve.post("/notifications/mark-all-read")).data},async delete(t){return(await ve.delete(`/notifications/${t}`)).data}},Lv=async()=>(await ve.get("/notifications/subscriptions")).data.data.subscriptions,Ru="https://reflow-uat.royalenfield.com/api/v1/".trim(),Ov=typeof window<"u"&&/^(localhost|127\.0\.0\.1)$/i.test(window.location.hostname),Up=(!Ov&&/localhost:5000/i.test(Ru)?"":Ru.replace(/\/$/,""))||"/api/v1";async function Bp(t,s={}){const a=tt.getAccessToken(),r={...s.headers||{}};s.body instanceof FormData||(r["Content-Type"]="application/json"),a&&(r.Authorization=`Bearer ${a}`);const n=await fetch(`${Up}${t}`,{...s,headers:r,credentials:"include"}),i=n.headers.get("content-type"),o=(i==null?void 0:i.includes("application/json"))?await n.json():{message:await n.text()||"Request failed"};if(!n.ok){const c=new Error(o.message||`Request failed ${n.status}`);throw c.response={status:n.status,data:o},c}return o}async function Fc(){var a;const t=await ve.get("/form16/permissions"),s=((a=t.data)==null?void 0:a.data)??t.data;return{canViewForm16Submission:!!(s!=null&&s.canViewForm16Submission),canView26AS:!!(s!=null&&s.canView26AS)}}async function $v(){const{data:t}=await ve.get("/form16/26as/dashboard"),s=t&&typeof t=="object"&&"data"in t?t.data:t;if(!(s!=null&&s.overall)||!(s!=null&&s.kpi))throw new Error("Invalid Form16 dashboard response");return s}async function Vp(t){const s=new URLSearchParams;t!=null&&t.financialYear&&s.set("financialYear",t.financialYear),t!=null&&t.quarter&&s.set("quarter",t.quarter);const a=s.toString(),r=a?`/form16/credit-notes?${a}`:"/form16/credit-notes",{data:n}=await ve.get(r),i=(n==null?void 0:n.data)??n;return{creditNotes:(i==null?void 0:i.creditNotes)??[],total:(i==null?void 0:i.total)??0,summary:i==null?void 0:i.summary}}async function zp(t){const s=new URLSearchParams;t!=null&&t.financialYear&&s.set("financialYear",t.financialYear),t!=null&&t.quarter&&s.set("quarter",t.quarter);const a=s.toString(),r=a?`/form16/debit-notes?${a}`:"/form16/debit-notes",{data:n}=await ve.get(r),i=(n==null?void 0:n.data)??n;return{debitNotes:(i==null?void 0:i.debitNotes)??[],total:(i==null?void 0:i.total)??0,summary:i==null?void 0:i.summary}}async function Hp(t){const{data:s}=await ve.get(`/form16/debit-notes/${t}/sap-response`),a=s&&typeof s=="object"&&"data"in s?s.data:s;if(!(a!=null&&a.sapResponse))throw new Error("SAP response not available");return{...a,url:`/api/v1/form16/debit-notes/${t}/sap-response/csv`}}async function Ic(t){const{data:s}=await ve.get(`/form16/credit-notes/${t}/sap-response`),a=s&&typeof s=="object"&&"data"in s?s.data:s;if(!(a!=null&&a.sapResponse))throw new Error("SAP response not available");return{...a,url:`/api/v1/form16/credit-notes/${t}/sap-response/csv`}}async function Gp(t){const{data:s}=await ve.get(`/form16/requests/${encodeURIComponent(t)}/credit-note`),a=(s==null?void 0:s.data)??s;return(a==null?void 0:a.creditNote)??null}async function Uv(t){await ve.post(`/form16/requests/${encodeURIComponent(t)}/cancel-submission`)}async function Bv(t){await ve.post(`/form16/requests/${encodeURIComponent(t)}/resubmission-needed`)}async function Fu(t){const{data:s}=await ve.get(`/form16/credit-notes/${t}`),a=s&&typeof s=="object"&&"data"in s?s.data:s;if(!(a!=null&&a.creditNote))throw new Error("Credit note not found");return a}async function Vv(t){const s=new FormData;s.append("document",t);const a=await Bp("/form16/extract",{method:"POST",body:s}),r=a,n=(r==null?void 0:r.data)??r,i=n==null?void 0:n.extractedData,l=n==null?void 0:n.ocrProvider;if(!i)throw new Error(a.message||"No extracted data returned");return{extractedData:i,ocrProvider:l}}async function zv(t){const s=new FormData;s.append("document",t.file),s.append("financialYear",t.financialYear),s.append("quarter",t.quarter),s.append("form16aNumber",t.form16aNumber),s.append("tdsAmount",String(t.tdsAmount)),s.append("totalAmount",String(t.totalAmount)),s.append("tanNumber",t.tanNumber),s.append("deductorName",t.deductorName),t.version!=null&&s.append("version",String(t.version)),t.extractedData!=null&&s.append("ocrExtractedData",JSON.stringify(t.extractedData));const a=await Bp("/form16/submissions",{method:"POST",body:s}),n=a.data??a;if(!(n!=null&&n.requestNumber))throw new Error(a.message||"Invalid response from server");return n}async function Hv(t){const s=new URLSearchParams;t!=null&&t.financialYear&&s.set("financialYear",t.financialYear),t!=null&&t.quarter&&s.set("quarter",t.quarter),t!=null&&t.tanNumber&&s.set("tanNumber",t.tanNumber),t!=null&&t.search&&s.set("search",t.search),t!=null&&t.status&&s.set("status",t.status),t!=null&&t.assessmentYear&&s.set("assessmentYear",t.assessmentYear),t!=null&&t.sectionCode&&s.set("sectionCode",t.sectionCode),s.set("limit",String(t.limit)),(t==null?void 0:t.offset)!=null&&s.set("offset",String(t.offset));const a=s.toString(),r=a?`/form16/26as?${a}`:"/form16/26as",{data:n}=await ve.get(r),i=(n==null?void 0:n.data)??n;return{entries:(i==null?void 0:i.entries)??[],total:(i==null?void 0:i.total)??0,summary:(i==null?void 0:i.summary)??{totalRecords:0,booked:0,notBooked:0,pending:0,totalTaxDeducted:0}}}async function Gv(t){var l;const s=new URLSearchParams;s.set("limit",String(t.limit)),(t==null?void 0:t.offset)!=null&&s.set("offset",String(t.offset));const a=s.toString(),r=a?`/form16/26as/upload-history?${a}`:"/form16/26as/upload-history",{data:n}=await ve.get(r),i=(n==null?void 0:n.data)??n;return{history:(i==null?void 0:i.history)??[],total:typeof(i==null?void 0:i.total)=="number"?i.total:((l=i==null?void 0:i.history)==null?void 0:l.length)??0}}const Wv=5*60*1e3;function Yv(t,s){return new Promise((a,r)=>{const n=new FormData;n.append("file",t);const i=new XMLHttpRequest,l=`${Up}/form16/26as/upload`,o=tt.getAccessToken(),c=setTimeout(()=>{i.abort(),r(new Error("Upload timed out. Try a smaller file or try again."))},Wv);i.upload.addEventListener("progress",d=>{if(d.lengthComputable&&d.total>0){const m=Math.min(100,Math.round(d.loaded/d.total*100));s==null||s(m)}else s==null||s(0)}),i.addEventListener("load",()=>{clearTimeout(c),s==null||s(100);const d=i.getResponseHeader("content-type"),m=d==null?void 0:d.includes("application/json"),p=i.responseText;let u;try{u=m?JSON.parse(p):{message:p||"Request failed"}}catch{u={message:p||"Invalid response"}}if(i.status>=200&&i.status<300){const h=u.data??u;a({imported:(h==null?void 0:h.imported)??0,errors:Array.isArray(h==null?void 0:h.errors)?h.errors:[]})}else r(new Error(u.message||`Request failed ${i.status}`))}),i.addEventListener("error",()=>{clearTimeout(c),r(new Error("Network error during upload"))}),i.addEventListener("abort",()=>{clearTimeout(c),r(new Error("Upload was cancelled or timed out"))}),i.open("POST",l),o&&i.setRequestHeader("Authorization",`Bearer ${o}`),i.withCredentials=!0,i.send(n)})}async function Qv(t){const s=new URLSearchParams;t&&s.set("financialYear",t);const a=s.toString(),r=a?`/form16/non-submitted-dealers?${a}`:"/form16/non-submitted-dealers",{data:n}=await ve.get(r),i=(n==null?void 0:n.data)??n;return{summary:(i==null?void 0:i.summary)??{totalDealers:0,nonSubmittedCount:0,neverSubmittedCount:0,overdue90Count:0},dealers:(i==null?void 0:i.dealers)??[]}}async function Kv(t){var l;const s=String(t.dealerCode??"").trim(),a=String(t.dealerId??"").trim(),r=String(t.email??"").trim();if(!s&&!a&&!r)throw new Error("Dealer identifier missing");const{data:n}=await ve.post("/form16/non-submitted-dealers/notify",{dealerCode:s||void 0,dealerId:a||void 0,email:r||void 0,financialYear:t.financialYear||void 0}),i=(l=n==null?void 0:n.data)==null?void 0:l.dealer;if(!i)throw new Error("No dealer returned");return i}async function Xv(t){const s=new URLSearchParams;t!=null&&t.status&&s.set("status",t.status),t!=null&&t.financialYear&&s.set("financialYear",t.financialYear),t!=null&&t.quarter&&s.set("quarter",t.quarter);const a=s.toString(),r=a?`/form16/dealer/submissions?${a}`:"/form16/dealer/submissions",{data:n}=await ve.get(r),i=(n==null?void 0:n.data)??n;return Array.isArray(i)?i:[]}async function Wp(){const{data:t}=await ve.get("/form16/dealer/pending-quarters"),s=(t==null?void 0:t.data)??t;return Array.isArray(s)?s:[]}function zt({children:t,currentPage:s="dashboard",onNavigate:a,onNewRequest:r,onLogout:n}){const[i,l]=x.useState(!1),[o,c]=x.useState(()=>(s==null?void 0:s.startsWith("form16"))??!1),[d,m]=x.useState(!1),[p,u]=x.useState([]),[h,g]=x.useState(0),[f,b]=x.useState(!1),[j,y]=x.useState(null),{user:N}=us(),S=x.useMemo(()=>{try{const L=tt.getUserData();return(L==null?void 0:L.jobTitle)==="Dealer"}catch(L){return console.error("[PageLayout] Error checking dealer status:",L),!1}},[]),A=(N==null?void 0:N.role)==="ADMIN",w=()=>{var L,R;try{if(N!=null&&N.displayName&&typeof N.displayName=="string"){const C=N.displayName.split(" ").filter(Boolean);return C.length>=2?`${((L=C[0])==null?void 0:L[0])||""}${((R=C[C.length-1])==null?void 0:R[0])||""}`.toUpperCase():N.displayName.substring(0,2).toUpperCase()}return N!=null&&N.email&&typeof N.email=="string"?N.email.substring(0,2).toUpperCase():"U"}catch(C){return console.error("[PageLayout] Error getting user initials:",C),"U"}},I=x.useMemo(()=>{const L=[{id:"dashboard",label:"Dashboard",icon:xj},{id:"requests",label:"All Requests",icon:Zh,adminOnly:!1}];return S||L.push({id:"my-requests",label:"My Requests",icon:Ht}),L.push({id:"open-requests",label:"Open Requests",icon:Fe},{id:"closed-requests",label:"Closed Requests",icon:Be},{id:"shared-summaries",label:"Shared Summary",icon:bn}),L},[S,A]);x.useEffect(()=>{if(!(N!=null&&N.userId)){y(null);return}let L=!0;return Fc().then(R=>{L&&y(R)}).catch(R=>{L&&(y({canViewForm16Submission:!1,canView26AS:!1}),console.warn("[PageLayout] Form 16 permissions could not be loaded – Form 16 menu will be hidden.",R))}),()=>{L=!1}},[N==null?void 0:N.userId]);const D=!!j&&(S?!!j.canViewForm16Submission:!!j.canView26AS),T=!!(j!=null&&j.canViewForm16Submission),v=!!(j!=null&&j.canView26AS),M=s==="form16-credit-notes"||s==="form16-debit-notes"||s==="form16-transactions"||s==="form16-submit"||s==="form16-pending-submissions"||s==="form16-dashboard"||s==="form16-26as"||s==="form16-non-submitted-dealers",P=o||M,B=()=>{l(!i)},k=async L=>{var R;try{if(L.isRead||(await cr.markAsRead(L.notificationId),u(C=>C.map(G=>G.notificationId===L.notificationId?{...G,isRead:!0}:G)),g(C=>Math.max(0,C-1))),L.actionUrl&&a){const C=(R=L.metadata)==null?void 0:R.requestNumber;if(C){let G=`request/${C}`;(L.notificationType==="mention"||L.notificationType==="comment"||L.notificationType==="worknote")&&(G+="?tab=worknotes"),a(G)}}b(!1)}catch(C){console.error("[PageLayout] Error handling notification click:",C)}},_=async()=>{try{await cr.markAllAsRead(),u(L=>L.map(R=>({...R,isRead:!0}))),g(0)}catch(L){console.error("[PageLayout] Error marking all as read:",L)}};return x.useEffect(()=>{const L=N==null?void 0:N.userId;if(!L)return;let R=!0;(async()=>{var U,$;try{const F=await cr.list({page:1,limit:4,unreadOnly:!1});if(!R)return;const H=((U=F.data)==null?void 0:U.notifications)||[];u(H),g((($=F.data)==null?void 0:$.unreadCount)||0)}catch(F){console.error("[PageLayout] Failed to fetch notifications:",F)}})();const G=Vr();if(G){Tc(G,L);const U=$=>{R&&(u(F=>[$.notification,...F].slice(0,4)),g(F=>F+1))};return G.on("notification:new",U),()=>{R=!1,G.off("notification:new",U)}}return()=>{R=!1}},[N]),x.useEffect(()=>{const L=()=>{window.innerWidth>=768?l(!0):l(!1)};return L(),window.addEventListener("resize",L),()=>window.removeEventListener("resize",L)},[]),e.jsxs("div",{className:"min-h-screen flex w-full bg-background",children:[i&&e.jsx("div",{className:"fixed inset-0 bg-black/50 z-40 md:hidden",onClick:()=>l(!1)}),e.jsx("aside",{className:` + `})]})]}),e.jsx("p",{className:"mt-6 text-slate-500 text-xs",children:n==="complete"?"Loading dashboard...":"Please wait while we secure your session"})]}),e.jsxs("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:[e.jsx("div",{className:"absolute top-1/4 left-1/4 w-96 h-96 bg-re-red/5 rounded-full blur-3xl animate-pulse"}),e.jsx("div",{className:"absolute bottom-1/4 right-1/4 w-96 h-96 bg-re-red/5 rounded-full blur-3xl animate-pulse delay-1000"})]})]})}const _v=Dc("inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"}},defaultVariants:{variant:"default"}});function re({className:t,variant:s,asChild:a=!1,...r}){const n=a?Ph:"span";return e.jsx(n,{"data-slot":"badge",className:Le(_v({variant:s}),t),...r})}function Mv({isOpen:t,onClose:s}){const{user:a,isAuthenticated:r,isLoading:n,error:i}=Ly();return x.useEffect(()=>{},[a,r,n,i]),t?e.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4",children:e.jsxs(Z,{className:"w-full max-w-2xl max-h-[90vh] overflow-auto",children:[e.jsx(ce,{children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(de,{children:"Authentication Debug Information"}),e.jsx(E,{variant:"ghost",size:"icon",onClick:s,children:e.jsx(yt,{className:"h-4 w-4"})})]})}),e.jsxs(J,{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"font-semibold",children:"Status:"}),e.jsx(re,{variant:r?"default":"destructive",children:n?"Loading...":r?"Authenticated":"Not Authenticated"})]}),i&&e.jsxs("div",{className:"bg-red-50 border border-red-200 rounded p-3",children:[e.jsx("p",{className:"text-sm text-red-700 font-semibold",children:"Error:"}),e.jsx("p",{className:"text-sm text-red-600",children:i.message})]}),a&&e.jsxs("div",{className:"space-y-2",children:[e.jsx("h4",{className:"font-semibold",children:"User Information:"}),e.jsx("pre",{className:"bg-gray-50 p-3 rounded text-xs overflow-auto",children:JSON.stringify(a,null,2)})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("h4",{className:"font-semibold",children:"All Auth Claims:"}),e.jsx("pre",{className:"bg-gray-50 p-3 rounded text-xs overflow-auto",children:JSON.stringify({isAuthenticated:r,isLoading:n,error:(i==null?void 0:i.message)||null,hasUser:!!a},null,2)})]})]})]})}):null}const cs=x.forwardRef(({className:t,...s},a)=>e.jsx(Eh,{ref:a,"data-slot":"avatar",className:Le("relative flex size-10 shrink-0 overflow-hidden rounded-full",t),...s}));cs.displayName=Eh.displayName;const Tl=x.forwardRef(({className:t,...s},a)=>e.jsx(_h,{ref:a,"data-slot":"avatar-image",className:Le("aspect-square size-full",t),...s}));Tl.displayName=_h.displayName;const ds=x.forwardRef(({className:t,...s},a)=>e.jsx(Mh,{ref:a,"data-slot":"avatar-fallback",className:Le("bg-muted flex size-full items-center justify-center rounded-full",t),...s}));ds.displayName=Mh.displayName;function ku({...t}){return e.jsx(qf,{"data-slot":"dropdown-menu",...t})}function Du({...t}){return e.jsx(eb,{"data-slot":"dropdown-menu-trigger",...t})}function Ru({className:t,sideOffset:s=4,...a}){return e.jsx(tb,{children:e.jsx(sb,{"data-slot":"dropdown-menu-content",sideOffset:s,className:Le("bg-popover text-popover-foreground 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-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",t),...a})})}function Yl({className:t,inset:s,variant:a="default",...r}){return e.jsx(ab,{"data-slot":"dropdown-menu-item","data-inset":s,"data-variant":a,className:Le("focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...r})}function Pp({...t}){return e.jsx(nb,{"data-slot":"alert-dialog",...t})}function Lv({...t}){return e.jsx(rb,{"data-slot":"alert-dialog-portal",...t})}const Ep=x.forwardRef(({className:t,...s},a)=>e.jsx(Lh,{"data-slot":"alert-dialog-overlay",className:Le("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",t),...s,ref:a}));Ep.displayName=Lh.displayName;const Fc=x.forwardRef(({className:t,...s},a)=>e.jsxs(Lv,{children:[e.jsx(Ep,{}),e.jsx(Oh,{"data-slot":"alert-dialog-content",ref:a,className:Le("bg-background 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 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",t),...s})]}));Fc.displayName=Oh.displayName;function _p({className:t,...s}){return e.jsx("div",{"data-slot":"alert-dialog-header",className:Le("flex flex-col gap-2 text-center sm:text-left",t),...s})}function Mp({className:t,...s}){return e.jsx("div",{"data-slot":"alert-dialog-footer",className:Le("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",t),...s})}function Lp({className:t,...s}){return e.jsx(ib,{"data-slot":"alert-dialog-title",className:Le("text-lg font-semibold",t),...s})}function Op({className:t,...s}){return e.jsx(lb,{"data-slot":"alert-dialog-description",className:Le("text-muted-foreground text-sm",t),...s})}function $p({className:t,...s}){return e.jsx(cb,{className:Le(ei(),t),...s})}function Up({className:t,...s}){return e.jsx(ob,{className:Le(ei({variant:"outline"}),t),...s})}const cr={async list(t){return(await ve.get("/notifications",{params:t})).data},async getUnreadCount(){return(await ve.get("/notifications/unread-count")).data},async markAsRead(t){return(await ve.patch(`/notifications/${t}/read`)).data},async markAllAsRead(){return(await ve.post("/notifications/mark-all-read")).data},async delete(t){return(await ve.delete(`/notifications/${t}`)).data}},Ov=async()=>(await ve.get("/notifications/subscriptions")).data.data.subscriptions,Fu="https://reflow-uat.royalenfield.com/api/v1/".trim(),$v=typeof window<"u"&&/^(localhost|127\.0\.0\.1)$/i.test(window.location.hostname),Bp=(!$v&&/localhost:5000/i.test(Fu)?"":Fu.replace(/\/$/,""))||"/api/v1";async function Vp(t,s={}){const a=tt.getAccessToken(),r={...s.headers||{}};s.body instanceof FormData||(r["Content-Type"]="application/json"),a&&(r.Authorization=`Bearer ${a}`);const n=await fetch(`${Bp}${t}`,{...s,headers:r,credentials:"include"}),i=n.headers.get("content-type"),o=(i==null?void 0:i.includes("application/json"))?await n.json():{message:await n.text()||"Request failed"};if(!n.ok){const c=new Error(o.message||`Request failed ${n.status}`);throw c.response={status:n.status,data:o},c}return o}async function Ic(){var a;const t=await ve.get("/form16/permissions"),s=((a=t.data)==null?void 0:a.data)??t.data;return{canViewForm16Submission:!!(s!=null&&s.canViewForm16Submission),canView26AS:!!(s!=null&&s.canView26AS)}}async function Uv(){const{data:t}=await ve.get("/form16/26as/dashboard"),s=t&&typeof t=="object"&&"data"in t?t.data:t;if(!(s!=null&&s.overall)||!(s!=null&&s.kpi))throw new Error("Invalid Form16 dashboard response");return s}async function zp(t){const s=new URLSearchParams;t!=null&&t.financialYear&&s.set("financialYear",t.financialYear),t!=null&&t.quarter&&s.set("quarter",t.quarter);const a=s.toString(),r=a?`/form16/credit-notes?${a}`:"/form16/credit-notes",{data:n}=await ve.get(r),i=(n==null?void 0:n.data)??n;return{creditNotes:(i==null?void 0:i.creditNotes)??[],total:(i==null?void 0:i.total)??0,summary:i==null?void 0:i.summary}}async function Hp(t){const s=new URLSearchParams;t!=null&&t.financialYear&&s.set("financialYear",t.financialYear),t!=null&&t.quarter&&s.set("quarter",t.quarter);const a=s.toString(),r=a?`/form16/debit-notes?${a}`:"/form16/debit-notes",{data:n}=await ve.get(r),i=(n==null?void 0:n.data)??n;return{debitNotes:(i==null?void 0:i.debitNotes)??[],total:(i==null?void 0:i.total)??0,summary:i==null?void 0:i.summary}}async function Gp(t){const{data:s}=await ve.get(`/form16/debit-notes/${t}/sap-response`),a=s&&typeof s=="object"&&"data"in s?s.data:s;if(!(a!=null&&a.sapResponse))throw new Error("SAP response not available");return{...a,url:`/api/v1/form16/debit-notes/${t}/sap-response/csv`}}async function Pc(t){const{data:s}=await ve.get(`/form16/credit-notes/${t}/sap-response`),a=s&&typeof s=="object"&&"data"in s?s.data:s;if(!(a!=null&&a.sapResponse))throw new Error("SAP response not available");return{...a,url:`/api/v1/form16/credit-notes/${t}/sap-response/csv`}}async function Wp(t){const{data:s}=await ve.get(`/form16/requests/${encodeURIComponent(t)}/credit-note`),a=(s==null?void 0:s.data)??s;return(a==null?void 0:a.creditNote)??null}async function Bv(t){await ve.post(`/form16/requests/${encodeURIComponent(t)}/cancel-submission`)}async function Vv(t){await ve.post(`/form16/requests/${encodeURIComponent(t)}/resubmission-needed`)}async function Iu(t){const{data:s}=await ve.get(`/form16/credit-notes/${t}`),a=s&&typeof s=="object"&&"data"in s?s.data:s;if(!(a!=null&&a.creditNote))throw new Error("Credit note not found");return a}async function zv(t){const s=new FormData;s.append("document",t);const a=await Vp("/form16/extract",{method:"POST",body:s}),r=a,n=(r==null?void 0:r.data)??r,i=n==null?void 0:n.extractedData,l=n==null?void 0:n.ocrProvider;if(!i)throw new Error(a.message||"No extracted data returned");return{extractedData:i,ocrProvider:l}}async function Hv(t){const s=new FormData;s.append("document",t.file),s.append("financialYear",t.financialYear),s.append("quarter",t.quarter),s.append("form16aNumber",t.form16aNumber),s.append("tdsAmount",String(t.tdsAmount)),s.append("totalAmount",String(t.totalAmount)),s.append("tanNumber",t.tanNumber),s.append("deductorName",t.deductorName),t.version!=null&&s.append("version",String(t.version)),t.extractedData!=null&&s.append("ocrExtractedData",JSON.stringify(t.extractedData));const a=await Vp("/form16/submissions",{method:"POST",body:s}),n=a.data??a;if(!(n!=null&&n.requestNumber))throw new Error(a.message||"Invalid response from server");return n}async function Gv(t){const s=new URLSearchParams;t!=null&&t.financialYear&&s.set("financialYear",t.financialYear),t!=null&&t.quarter&&s.set("quarter",t.quarter),t!=null&&t.tanNumber&&s.set("tanNumber",t.tanNumber),t!=null&&t.search&&s.set("search",t.search),t!=null&&t.status&&s.set("status",t.status),t!=null&&t.assessmentYear&&s.set("assessmentYear",t.assessmentYear),t!=null&&t.sectionCode&&s.set("sectionCode",t.sectionCode),s.set("limit",String(t.limit)),(t==null?void 0:t.offset)!=null&&s.set("offset",String(t.offset));const a=s.toString(),r=a?`/form16/26as?${a}`:"/form16/26as",{data:n}=await ve.get(r),i=(n==null?void 0:n.data)??n;return{entries:(i==null?void 0:i.entries)??[],total:(i==null?void 0:i.total)??0,summary:(i==null?void 0:i.summary)??{totalRecords:0,booked:0,notBooked:0,pending:0,totalTaxDeducted:0}}}async function Wv(t){var l;const s=new URLSearchParams;s.set("limit",String(t.limit)),(t==null?void 0:t.offset)!=null&&s.set("offset",String(t.offset));const a=s.toString(),r=a?`/form16/26as/upload-history?${a}`:"/form16/26as/upload-history",{data:n}=await ve.get(r),i=(n==null?void 0:n.data)??n;return{history:(i==null?void 0:i.history)??[],total:typeof(i==null?void 0:i.total)=="number"?i.total:((l=i==null?void 0:i.history)==null?void 0:l.length)??0}}const Yv=5*60*1e3;function Qv(t,s){return new Promise((a,r)=>{const n=new FormData;n.append("file",t);const i=new XMLHttpRequest,l=`${Bp}/form16/26as/upload`,o=tt.getAccessToken(),c=setTimeout(()=>{i.abort(),r(new Error("Upload timed out. Try a smaller file or try again."))},Yv);i.upload.addEventListener("progress",d=>{if(d.lengthComputable&&d.total>0){const m=Math.min(100,Math.round(d.loaded/d.total*100));s==null||s(m)}else s==null||s(0)}),i.addEventListener("load",()=>{clearTimeout(c),s==null||s(100);const d=i.getResponseHeader("content-type"),m=d==null?void 0:d.includes("application/json"),p=i.responseText;let u;try{u=m?JSON.parse(p):{message:p||"Request failed"}}catch{u={message:p||"Invalid response"}}if(i.status>=200&&i.status<300){const h=u.data??u;a({imported:(h==null?void 0:h.imported)??0,errors:Array.isArray(h==null?void 0:h.errors)?h.errors:[]})}else r(new Error(u.message||`Request failed ${i.status}`))}),i.addEventListener("error",()=>{clearTimeout(c),r(new Error("Network error during upload"))}),i.addEventListener("abort",()=>{clearTimeout(c),r(new Error("Upload was cancelled or timed out"))}),i.open("POST",l),o&&i.setRequestHeader("Authorization",`Bearer ${o}`),i.withCredentials=!0,i.send(n)})}async function Kv(t){const s=new URLSearchParams;t&&s.set("financialYear",t);const a=s.toString(),r=a?`/form16/non-submitted-dealers?${a}`:"/form16/non-submitted-dealers",{data:n}=await ve.get(r),i=(n==null?void 0:n.data)??n;return{summary:(i==null?void 0:i.summary)??{totalDealers:0,nonSubmittedCount:0,neverSubmittedCount:0,overdue90Count:0},dealers:(i==null?void 0:i.dealers)??[]}}async function Xv(t){var l;const s=String(t.dealerCode??"").trim(),a=String(t.dealerId??"").trim(),r=String(t.email??"").trim();if(!s&&!a&&!r)throw new Error("Dealer identifier missing");const{data:n}=await ve.post("/form16/non-submitted-dealers/notify",{dealerCode:s||void 0,dealerId:a||void 0,email:r||void 0,financialYear:t.financialYear||void 0}),i=(l=n==null?void 0:n.data)==null?void 0:l.dealer;if(!i)throw new Error("No dealer returned");return i}async function Zv(t){const s=new URLSearchParams;t!=null&&t.status&&s.set("status",t.status),t!=null&&t.financialYear&&s.set("financialYear",t.financialYear),t!=null&&t.quarter&&s.set("quarter",t.quarter);const a=s.toString(),r=a?`/form16/dealer/submissions?${a}`:"/form16/dealer/submissions",{data:n}=await ve.get(r),i=(n==null?void 0:n.data)??n;return Array.isArray(i)?i:[]}async function Yp(){const{data:t}=await ve.get("/form16/dealer/pending-quarters"),s=(t==null?void 0:t.data)??t;return Array.isArray(s)?s:[]}function zt({children:t,currentPage:s="dashboard",onNavigate:a,onNewRequest:r,onLogout:n}){const[i,l]=x.useState(!1),[o,c]=x.useState(()=>(s==null?void 0:s.startsWith("form16"))??!1),[d,m]=x.useState(!1),[p,u]=x.useState([]),[h,g]=x.useState(0),[f,b]=x.useState(!1),[j,y]=x.useState(null),{user:N}=us(),S=x.useMemo(()=>{try{const L=tt.getUserData();return(L==null?void 0:L.jobTitle)==="Dealer"}catch(L){return console.error("[PageLayout] Error checking dealer status:",L),!1}},[]),A=(N==null?void 0:N.role)==="ADMIN",w=()=>{var L,D;try{if(N!=null&&N.displayName&&typeof N.displayName=="string"){const C=N.displayName.split(" ").filter(Boolean);return C.length>=2?`${((L=C[0])==null?void 0:L[0])||""}${((D=C[C.length-1])==null?void 0:D[0])||""}`.toUpperCase():N.displayName.substring(0,2).toUpperCase()}return N!=null&&N.email&&typeof N.email=="string"?N.email.substring(0,2).toUpperCase():"U"}catch(C){return console.error("[PageLayout] Error getting user initials:",C),"U"}},I=x.useMemo(()=>{const L=[{id:"dashboard",label:"Dashboard",icon:hj},{id:"requests",label:"All Requests",icon:Jh,adminOnly:!1}];return S||L.push({id:"my-requests",label:"My Requests",icon:Ht}),L.push({id:"open-requests",label:"Open Requests",icon:Fe},{id:"closed-requests",label:"Closed Requests",icon:Be},{id:"shared-summaries",label:"Shared Summary",icon:bn}),L},[S,A]);x.useEffect(()=>{if(!(N!=null&&N.userId)){y(null);return}let L=!0;return Ic().then(D=>{L&&y(D)}).catch(D=>{L&&(y({canViewForm16Submission:!1,canView26AS:!1}),console.warn("[PageLayout] Form 16 permissions could not be loaded – Form 16 menu will be hidden.",D))}),()=>{L=!1}},[N==null?void 0:N.userId]);const k=!!j&&(S?!!j.canViewForm16Submission:!!j.canView26AS),T=!!(j!=null&&j.canViewForm16Submission),v=!!(j!=null&&j.canView26AS),_=s==="form16-credit-notes"||s==="form16-debit-notes"||s==="form16-transactions"||s==="form16-submit"||s==="form16-pending-submissions"||s==="form16-dashboard"||s==="form16-26as"||s==="form16-non-submitted-dealers",P=o||_,B=()=>{l(!i)},R=async L=>{var D;try{if(L.isRead||(await cr.markAsRead(L.notificationId),u(C=>C.map(G=>G.notificationId===L.notificationId?{...G,isRead:!0}:G)),g(C=>Math.max(0,C-1))),L.actionUrl&&a){const C=(D=L.metadata)==null?void 0:D.requestNumber;if(C){let G=`request/${C}`;(L.notificationType==="mention"||L.notificationType==="comment"||L.notificationType==="worknote")&&(G+="?tab=worknotes"),a(G)}}b(!1)}catch(C){console.error("[PageLayout] Error handling notification click:",C)}},M=async()=>{try{await cr.markAllAsRead(),u(L=>L.map(D=>({...D,isRead:!0}))),g(0)}catch(L){console.error("[PageLayout] Error marking all as read:",L)}};return x.useEffect(()=>{const L=N==null?void 0:N.userId;if(!L)return;let D=!0;(async()=>{var U,$;try{const F=await cr.list({page:1,limit:4,unreadOnly:!1});if(!D)return;const H=((U=F.data)==null?void 0:U.notifications)||[];u(H),g((($=F.data)==null?void 0:$.unreadCount)||0)}catch(F){console.error("[PageLayout] Failed to fetch notifications:",F)}})();const G=Vr();if(G){kc(G,L);const U=$=>{D&&(u(F=>[$.notification,...F].slice(0,4)),g(F=>F+1))};return G.on("notification:new",U),()=>{D=!1,G.off("notification:new",U)}}return()=>{D=!1}},[N]),x.useEffect(()=>{const L=()=>{window.innerWidth>=768?l(!0):l(!1)};return L(),window.addEventListener("resize",L),()=>window.removeEventListener("resize",L)},[]),e.jsxs("div",{className:"min-h-screen flex w-full bg-background",children:[i&&e.jsx("div",{className:"fixed inset-0 bg-black/50 z-40 md:hidden",onClick:()=>l(!1)}),e.jsx("aside",{className:` fixed md:relative inset-y-0 left-0 w-64 @@ -22,10 +22,10 @@ var Xf=Object.defineProperty;var Zf=(t,s,a)=>s in t?Xf(t,s,{enumerable:!0,config border-r border-gray-800 bg-black flex flex-col overflow-hidden - `,children:e.jsxs("div",{className:`w-64 h-full flex flex-col overflow-hidden ${i?"":"md:hidden"}`,children:[e.jsx("div",{className:"p-4 border-b border-gray-800 flex-shrink-0",children:e.jsxs("div",{className:"flex flex-col items-center justify-center",children:[e.jsx("img",{src:Al,alt:"Royal Enfield Logo",className:"h-10 w-auto max-w-[168px] object-contain"}),e.jsx("p",{className:"text-xs text-gray-400 text-center mt-1 truncate",children:"RE Flow"})]})}),e.jsxs("div",{className:"p-3 flex-1 overflow-y-auto",children:[e.jsxs("div",{className:"space-y-2",children:[I.filter(L=>!L.adminOnly||(N==null?void 0:N.role)==="ADMIN").map(L=>e.jsxs("button",{onClick:()=>{a==null||a(L.id),window.innerWidth<768&&l(!1)},className:`w-full flex items-center gap-3 px-3 py-2 rounded-lg text-sm transition-colors ${s===L.id?"bg-re-green text-white font-medium":"text-gray-300 hover:bg-gray-900 hover:text-white"}`,children:[e.jsx(L.icon,{className:"w-4 h-4 shrink-0"}),e.jsx("span",{className:"truncate",children:L.label})]},L.id)),D&&e.jsxs("div",{className:"pt-2 border-t border-gray-800",children:[e.jsxs("button",{type:"button",onClick:()=>c(!P),className:`w-full flex items-center gap-3 px-3 py-2 rounded-lg text-sm transition-colors ${M?"bg-re-green text-white font-medium":"text-gray-300 hover:bg-gray-900 hover:text-white"}`,children:[e.jsx(Mt,{className:"w-4 h-4 shrink-0"}),e.jsx("span",{className:"truncate flex-1 text-left",children:"Form 16"}),P?e.jsx(jn,{className:"w-4 h-4 shrink-0"}):e.jsx(Ka,{className:"w-4 h-4 shrink-0"})]}),P&&e.jsx("div",{className:"mt-1 ml-4 pl-2 border-l border-gray-700 space-y-0.5",children:S?e.jsx(e.Fragment,{children:T&&e.jsxs(e.Fragment,{children:[e.jsxs("button",{type:"button",onClick:()=>{a==null||a("/form16/submit"),window.innerWidth<768&&l(!1)},className:`w-full flex items-center gap-2 px-2 py-1.5 rounded-md text-sm transition-colors ${s==="form16-submit"?"bg-re-green/80 text-white font-medium":"text-gray-400 hover:bg-gray-800 hover:text-white"}`,children:[e.jsx(Fe,{className:"w-3.5 h-3.5 shrink-0"}),e.jsx("span",{className:"truncate",children:"Submit Form 16"})]}),e.jsxs("button",{type:"button",onClick:()=>{a==null||a("/form16/pending-submissions"),window.innerWidth<768&&l(!1)},className:`w-full flex items-center gap-2 px-2 py-1.5 rounded-md text-sm transition-colors ${s==="form16-pending-submissions"?"bg-re-green/80 text-white font-medium":"text-gray-400 hover:bg-gray-800 hover:text-white"}`,children:[e.jsx(Fe,{className:"w-3.5 h-3.5 shrink-0"}),e.jsx("span",{className:"truncate",children:"Pending Submissions"})]}),e.jsxs("button",{type:"button",onClick:()=>{a==null||a("/form16/credit-notes"),window.innerWidth<768&&l(!1)},className:`w-full flex items-center gap-2 px-2 py-1.5 rounded-md text-sm transition-colors ${s==="form16-credit-notes"?"bg-re-green/80 text-white font-medium":"text-gray-400 hover:bg-gray-800 hover:text-white"}`,children:[e.jsx(Mt,{className:"w-3.5 h-3.5 shrink-0"}),e.jsx("span",{className:"truncate",children:"Credit Notes"})]})]})}):e.jsxs(e.Fragment,{children:[v&&e.jsxs("button",{type:"button",onClick:()=>{a==null||a("/form16/dashboard"),window.innerWidth<768&&l(!1)},className:`w-full flex items-center gap-2 px-2 py-1.5 rounded-md text-sm transition-colors ${s==="form16-dashboard"?"bg-re-green/80 text-white font-medium":"text-gray-400 hover:bg-gray-800 hover:text-white"}`,children:[e.jsx(Fe,{className:"w-3.5 h-3.5 shrink-0"}),e.jsx("span",{className:"truncate",children:"Form16A Dashboard"})]}),v&&e.jsxs("button",{type:"button",onClick:()=>{a==null||a("/form16/26as"),window.innerWidth<768&&l(!1)},className:`w-full flex items-center gap-2 px-2 py-1.5 rounded-md text-sm transition-colors ${s==="form16-26as"?"bg-re-green/80 text-white font-medium":"text-gray-400 hover:bg-gray-800 hover:text-white"}`,children:[e.jsx(Fe,{className:"w-3.5 h-3.5 shrink-0"}),e.jsx("span",{className:"truncate",children:"26AS Management"})]}),T&&e.jsxs(e.Fragment,{children:[e.jsxs("button",{type:"button",onClick:()=>{a==null||a("/form16/non-submitted-dealers"),window.innerWidth<768&&l(!1)},className:`w-full flex items-center gap-2 px-2 py-1.5 rounded-md text-sm transition-colors ${s==="form16-non-submitted-dealers"?"bg-re-green/80 text-white font-medium":"text-gray-400 hover:bg-gray-800 hover:text-white"}`,children:[e.jsx(Mt,{className:"w-3.5 h-3.5 shrink-0"}),e.jsx("span",{className:"truncate",children:"Non-submitted Dealers"})]}),e.jsxs("button",{type:"button",onClick:()=>{a==null||a("/form16/transactions"),window.innerWidth<768&&l(!1)},className:`w-full flex items-center gap-2 px-2 py-1.5 rounded-md text-sm transition-colors ${s==="form16-transactions"?"bg-re-green/80 text-white font-medium":"text-gray-400 hover:bg-gray-800 hover:text-white"}`,children:[e.jsx(Mt,{className:"w-3.5 h-3.5 shrink-0"}),e.jsx("span",{className:"truncate",children:"Transactions"})]})]})]})})]})]}),!S&&e.jsx("div",{className:"mt-6 pt-6 border-t border-gray-800 px-3",children:e.jsxs(E,{onClick:r,className:"w-full bg-re-green hover:bg-re-green/90 text-white text-sm font-medium",size:"sm",children:[e.jsx(ms,{className:"w-4 h-4 mr-2"}),"Raise New Request"]})})]})]})}),e.jsxs("div",{className:"flex-1 flex flex-col min-w-0",children:[e.jsxs("header",{className:"h-16 border-b border-gray-200 bg-white flex items-center justify-between px-6 shrink-0",children:[e.jsx("div",{className:"flex items-center gap-4 min-w-0 flex-1",children:e.jsx(E,{variant:"ghost",size:"icon",onClick:B,className:"shrink-0 h-10 w-10 sidebar-toggle",children:i?e.jsx(hj,{className:"w-5 h-5 text-gray-600"}):e.jsx(pj,{className:"w-5 h-5 text-gray-600"})})}),e.jsxs("div",{className:"flex items-center gap-4 shrink-0",children:[!S&&e.jsxs(E,{onClick:r,className:"bg-re-green hover:bg-re-green/90 text-white gap-2 hidden md:flex text-sm",size:"sm",children:[e.jsx(ms,{className:"w-4 h-4"}),"New Request"]}),e.jsxs(Tu,{open:f,onOpenChange:b,children:[e.jsx(ku,{asChild:!0,children:e.jsxs(E,{variant:"ghost",size:"icon",className:"relative shrink-0 h-10 w-10",children:[e.jsx(_s,{className:"w-5 h-5"}),h>0&&e.jsx(re,{className:"absolute -top-1 -right-1 w-5 h-5 rounded-full bg-destructive text-destructive-foreground text-xs flex items-center justify-center p-0",children:h>9?"9+":h})]})}),e.jsxs(Du,{align:"end",className:"w-96 max-h-[500px]",children:[e.jsxs("div",{className:"p-3 border-b flex items-center justify-between sticky top-0 bg-white z-10",children:[e.jsx("h4",{className:"font-semibold text-base",children:"Notifications"}),h>0&&e.jsx(E,{variant:"ghost",size:"sm",className:"text-xs text-blue-600 hover:text-blue-700 h-auto p-1",onClick:L=>{L.stopPropagation(),_()},children:"Mark all as read"})]}),e.jsx("div",{className:"max-h-[400px] overflow-y-auto",children:p.length===0?e.jsxs("div",{className:"p-6 text-center",children:[e.jsx(_s,{className:"w-12 h-12 text-gray-300 mx-auto mb-2"}),e.jsx("p",{className:"text-sm text-gray-500",children:"No notifications yet"})]}):e.jsx("div",{className:"divide-y",children:p.map(L=>e.jsx("div",{className:`p-3 hover:bg-gray-50 cursor-pointer transition-colors ${L.isRead?"":"bg-blue-50"}`,onClick:()=>k(L),children:e.jsxs("div",{className:"flex gap-2",children:[!L.isRead&&e.jsx("div",{className:"w-2 h-2 rounded-full bg-blue-600 mt-1.5 shrink-0"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:`text-sm ${L.isRead?"font-medium":"font-semibold"}`,children:L.title}),e.jsx("p",{className:"text-xs text-muted-foreground mt-0.5 line-clamp-2",children:L.message}),e.jsx("p",{className:"text-xs text-gray-400 mt-1",children:Wh(new Date(L.createdAt),{addSuffix:!0})})]})]})},L.notificationId))})}),p.length>0&&e.jsx("div",{className:"p-2 border-t",children:e.jsx(E,{variant:"ghost",className:"w-full text-sm text-blue-600 hover:text-blue-700",onClick:()=>{b(!1),a==null||a("notifications")},children:"View all notifications"})})]})]}),e.jsxs(Tu,{children:[e.jsx(ku,{asChild:!0,children:e.jsxs(cs,{className:"cursor-pointer shrink-0 h-10 w-10",children:[e.jsx(Tl,{src:(N==null?void 0:N.picture)||""}),e.jsx(ds,{className:"bg-re-green text-white text-sm",children:w()})]})}),e.jsxs(Du,{align:"end",children:[e.jsxs(Yl,{onClick:()=>a==null?void 0:a("profile"),children:[e.jsx(Ht,{className:"w-4 h-4 mr-2"}),"Profile"]}),e.jsxs(Yl,{onClick:()=>a==null?void 0:a("settings"),children:[e.jsx(dr,{className:"w-4 h-4 mr-2"}),"Settings"]}),e.jsxs(Yl,{onClick:()=>m(!0),className:"text-red-600 focus:text-red-600",children:[e.jsx(Bl,{className:"w-4 h-4 mr-2"}),"Logout"]})]})]})]})]}),e.jsx("main",{className:"flex-1 p-2 sm:p-4 lg:p-6 overflow-auto min-w-0",children:t})]}),e.jsx(Ip,{open:d,onOpenChange:m,children:e.jsxs(Rc,{children:[e.jsxs(Ep,{children:[e.jsxs(Mp,{className:"flex items-center gap-2",children:[e.jsx(Bl,{className:"w-5 h-5 text-red-600"}),"Confirm Logout"]}),e.jsx(Lp,{className:"pt-2",children:"Are you sure you want to logout? You will need to sign in again to access your account."})]}),e.jsxs(_p,{children:[e.jsx($p,{onClick:()=>m(!1),children:"Cancel"}),e.jsxs(Op,{onClick:async()=>{if(m(!1),n)try{await n()}catch(L){console.error("🔴 Error calling onLogout:",L)}else console.error("🔴 ERROR: onLogout is undefined!")},className:"bg-red-600 hover:bg-red-700 text-white focus:ring-red-600",children:[e.jsx(Bl,{className:"w-4 h-4 mr-2"}),"Logout"]})]})]})})]})}const di=()=>Ty(),Nn=Ry,Zv=()=>{try{const t=localStorage.getItem("dashboard_viewAsUser");return t?JSON.parse(t):!1}catch{return!1}},Jv={viewAsUser:Zv()},Yp=yn({name:"dashboard",initialState:Jv,reducers:{setViewAsUser:(t,s)=>{t.viewAsUser=s.payload,localStorage.setItem("dashboard_viewAsUser",JSON.stringify(s.payload))}}}),{setViewAsUser:qv}=Yp.actions;function eN(){const[t,s]=x.useState("all"),[a,r]=x.useState(void 0),[n,i]=x.useState(void 0),[l,o]=x.useState(!1),c=x.useCallback(p=>{const u=p;s(u),u!=="custom"?(r(void 0),i(void 0),o(!1)):o(!0)},[]),d=x.useCallback(p=>{if(a&&n){if(a>n){const u=a;r(n),i(u),p(n,u)}else p(a,n);o(!1)}},[a,n]),m=x.useCallback(()=>{r(void 0),i(void 0),o(!1),s("all")},[]);return{dateRange:t,customStartDate:a,customEndDate:n,showCustomDatePicker:l,setDateRange:s,setCustomStartDate:r,setCustomEndDate:i,setShowCustomDatePicker:o,handleDateRangeChange:c,handleApplyCustomDate:d,resetCustomDates:m}}function tN(){const[t,s]=x.useState({page:1,totalPages:1,totalRecords:0}),[a,r]=x.useState({page:1,totalPages:1,totalRecords:0}),[n,i]=x.useState({page:1,totalPages:1,totalRecords:0}),[l,o]=x.useState({page:1,totalPages:1,totalRecords:0}),c=x.useCallback((b,j,y)=>{s({page:b,totalPages:j,totalRecords:y})},[]),d=x.useCallback((b,j,y)=>{r({page:b,totalPages:j,totalRecords:y})},[]),m=x.useCallback((b,j,y)=>{i({page:b,totalPages:j,totalRecords:y})},[]),p=x.useCallback((b,j,y)=>{o({page:b,totalPages:j,totalRecords:y})},[]),u=x.useCallback((b,j)=>{b>=1&&b<=t.totalPages&&(s(y=>({...y,page:b})),j(b))},[t.totalPages]),h=x.useCallback((b,j)=>{b>=1&&b<=a.totalPages&&(r(y=>({...y,page:b})),j(b))},[a.totalPages]),g=x.useCallback((b,j)=>{b>=1&&b<=n.totalPages&&(i(y=>({...y,page:b})),j(b))},[n.totalPages]),f=x.useCallback((b,j)=>{b>=1&&b<=l.totalPages&&(o(y=>({...y,page:b})),j(b))},[l.totalPages]);return{activity:t,critical:a,deadlines:n,approver:l,updateActivityPagination:c,updateCriticalPagination:d,updateDeadlinesPagination:m,updateApproverPagination:p,handleActivityPageChange:u,handleCriticalPageChange:h,handleDeadlinesPageChange:g,handleApproverPageChange:f}}class sN{async getKPIs(s,a,r,n){try{const i={dateRange:s};return s==="custom"&&a&&r&&(i.startDate=a.toISOString(),i.endDate=r.toISOString()),n&&(i.viewAsUser="true"),(await ve.get("/dashboard/kpis",{params:i})).data.data}catch(i){throw console.error("Failed to fetch KPIs:",i),i}}async getRequestStats(s,a,r,n,i,l,o,c,d,m,p,u,h){try{const g={dateRange:s};return s==="custom"&&a&&r&&(g.startDate=a,g.endDate=r),n&&n!=="all"&&(g.status=n),i&&i!=="all"&&(g.priority=i),l&&l!=="all"&&(g.templateType=l),o&&o!=="all"&&(g.department=o),c&&c!=="all"&&(g.initiator=c),d&&d!=="all"&&(g.approver=d),m&&(g.approverType=m),p&&(g.search=p),u&&u!=="all"&&(g.slaCompliance=u),h&&(g.viewAsUser="true"),(await ve.get("/dashboard/stats/requests",{params:g})).data.data}catch(g){throw console.error("Failed to fetch request stats:",g),g}}async getTATEfficiency(s){try{return(await ve.get("/dashboard/stats/tat-efficiency",{params:{dateRange:s}})).data.data}catch(a){throw console.error("Failed to fetch TAT efficiency:",a),a}}async getApproverLoad(s){try{return(await ve.get("/dashboard/stats/approver-load",{params:{dateRange:s}})).data.data}catch(a){throw console.error("Failed to fetch approver load:",a),a}}async getEngagementStats(s){try{return(await ve.get("/dashboard/stats/engagement",{params:{dateRange:s}})).data.data}catch(a){throw console.error("Failed to fetch engagement stats:",a),a}}async getAIInsights(s){try{return(await ve.get("/dashboard/stats/ai-insights",{params:{dateRange:s}})).data.data}catch(a){throw console.error("Failed to fetch AI insights:",a),a}}async getRecentActivity(s=1,a=10,r){try{const n={page:s,limit:a};r&&(n.viewAsUser="true");const i=await ve.get("/dashboard/activity/recent",{params:n});return{activities:i.data.data,pagination:i.data.pagination}}catch(n){throw console.error("Failed to fetch recent activity:",n),n}}async getCriticalRequests(s=1,a=10,r){try{const n={page:s,limit:a};r&&(n.viewAsUser="true");const i=await ve.get("/dashboard/requests/critical",{params:n});return{criticalRequests:i.data.data,pagination:i.data.pagination}}catch(n){throw console.error("Failed to fetch critical requests:",n),n}}async getUpcomingDeadlines(s=1,a=10,r){try{const n={page:s,limit:a};r&&(n.viewAsUser="true");const i=await ve.get("/dashboard/deadlines/upcoming",{params:n});return{deadlines:i.data.data,pagination:i.data.pagination}}catch(n){throw console.error("Failed to fetch upcoming deadlines:",n),n}}async getDepartmentStats(s,a,r){try{const n={dateRange:s};return s==="custom"&&a&&r&&(n.startDate=a.toISOString(),n.endDate=r.toISOString()),(await ve.get("/dashboard/stats/by-department",{params:n})).data.data}catch(n){throw console.error("Failed to fetch department stats:",n),n}}async getPriorityDistribution(s,a,r){try{const n={dateRange:s};return s==="custom"&&a&&r&&(n.startDate=a.toISOString(),n.endDate=r.toISOString()),(await ve.get("/dashboard/stats/priority-distribution",{params:n})).data.data}catch(n){throw console.error("Failed to fetch priority distribution:",n),n}}async getAIRemarkUtilization(s,a,r){try{const n={dateRange:s};return s==="custom"&&a&&r&&(n.startDate=a.toISOString(),n.endDate=r.toISOString()),(await ve.get("/dashboard/stats/ai-remark-utilization",{params:n})).data.data}catch(n){throw console.error("Failed to fetch AI remark utilization:",n),n}}async getApproverPerformance(s,a=1,r=10,n,i,l,o){try{const c={dateRange:s,page:a,limit:r||10};s==="custom"&&n&&i&&(c.startDate=n.toISOString(),c.endDate=i.toISOString()),l&&l!=="all"&&(c.priority=l),o&&o!=="all"&&(c.slaCompliance=o);const d=await ve.get("/dashboard/stats/approver-performance",{params:c});return{performance:d.data.data,pagination:d.data.pagination}}catch(c){throw console.error("Failed to fetch approver performance:",c),c}}async getLifecycleReport(s=1,a=50,r,n,i){try{const l={page:s,limit:a};r&&(l.dateRange=r),r==="custom"&&n&&i&&(l.startDate=n.toISOString(),l.endDate=i.toISOString());const o=await ve.get("/dashboard/reports/lifecycle",{params:l});return{lifecycleData:o.data.data,pagination:o.data.pagination}}catch(l){throw console.error("Failed to fetch lifecycle report:",l),l}}async getActivityLogReport(s=1,a=50,r,n,i,l,o,c,d){try{const m={page:s,limit:a,filterUserId:n,filterType:i,filterCategory:l,filterSeverity:o};r&&(m.dateRange=r),r==="custom"&&c&&d&&(m.startDate=c.toISOString(),m.endDate=d.toISOString());const p=await ve.get("/dashboard/reports/activity-log",{params:m});return{activities:p.data.data,pagination:p.data.pagination}}catch(m){throw console.error("Failed to fetch activity log report:",m),m}}async getDepartments(){try{return(await ve.get("/dashboard/metadata/departments")).data.data.departments||[]}catch(s){throw console.error("Failed to fetch departments:",s),s}}async getWorkflowAgingReport(s=7,a=1,r=50,n,i,l){try{const o={threshold:s,page:a,limit:r};n&&(o.dateRange=n),n==="custom"&&i&&l&&(o.startDate=i.toISOString(),o.endDate=l.toISOString());const c=await ve.get("/dashboard/reports/workflow-aging",{params:o});return{agingData:c.data.data,pagination:c.data.pagination}}catch(o){throw console.error("Failed to fetch workflow aging report:",o),o}}async getSingleApproverStats(s,a,r,n,i,l){try{const o={approverId:s};return a&&(o.dateRange=a),a==="custom"&&r&&n&&(o.startDate=r.toISOString(),o.endDate=n.toISOString()),i&&i!=="all"&&(o.priority=i),l&&l!=="all"&&(o.slaCompliance=l),(await ve.get("/dashboard/stats/single-approver",{params:o})).data.data}catch(o){throw console.error("Failed to fetch single approver stats:",o),o}}async getRequestsByApprover(s,a=1,r=50,n,i,l,o,c,d,m){try{const p={approverId:s,page:a,limit:r};n&&(p.dateRange=n),n==="custom"&&i&&l&&(p.startDate=i.toISOString(),p.endDate=l.toISOString()),o&&(p.status=o),c&&(p.priority=c),d&&(p.slaCompliance=d),m&&(p.search=m);const u=await ve.get("/dashboard/requests/by-approver",{params:p});return{requests:u.data.data,pagination:u.data.pagination}}catch(p){throw console.error("Failed to fetch requests by approver:",p),p}}}const Ot=new sN;function aN({isAdmin:t,viewAsUser:s=!1,userId:a,dateRange:r,customStartDate:n,customEndDate:i,onPaginationUpdate:l}){const[o,c]=x.useState(null),[d,m]=x.useState([]),[p,u]=x.useState([]),[h,g]=x.useState([]),[f,b]=x.useState([]),[j,y]=x.useState([]),[N,S]=x.useState(null),[A,w]=x.useState([]),[I,D]=x.useState(!0),[T,v]=x.useState(!1),M=x.useRef(l);M.current=l;const P=x.useCallback(async(R=!1)=>{try{R?v(!0):D(!0);const C=[Ot.getKPIs(r,n,i,s),Ot.getRecentActivity(1,10,s),Ot.getCriticalRequests(1,10,s),Ot.getUpcomingDeadlines(1,10,s)],G=!t&&a?Ot.getRequestStats(r,n==null?void 0:n.toISOString(),i==null?void 0:i.toISOString(),void 0,void 0,void 0,void 0,a,void 0,void 0,void 0,void 0,s):null,U=t?[Ot.getDepartmentStats(r,n,i),Ot.getPriorityDistribution(r,n,i),Ot.getAIRemarkUtilization(r,n,i),Ot.getApproverPerformance(r,1,10,n,i)]:[],[$,F,H]=await Promise.all([Promise.all(C),G,Promise.all(U)]),K=$[0],z=$[1],O=$[2],V=$[3];if(!t&&F&&(K.requestVolume=F),c(K),m(z.activities),M.current.activity(z.pagination.currentPage,z.pagination.totalPages,z.pagination.totalRecords),u(O.criticalRequests),M.current.critical(O.pagination.currentPage,O.pagination.totalPages,O.pagination.totalRecords),y(V.deadlines),M.current.deadlines(V.pagination.currentPage,V.pagination.totalPages,V.pagination.totalRecords),t&&H.length>=4){const Q=H[0],q=H[1],ee=H[2],te=H[3];g(Q),b(q),S(ee),w(te.performance),M.current.approver(te.pagination.currentPage,te.pagination.totalPages,te.pagination.totalRecords)}else t||(g([]),b([]),S(null),w([]))}catch(C){console.error("Failed to fetch dashboard data:",C)}finally{D(!1),v(!1)}},[t,s,a,r,n,i]),B=x.useCallback(async(R=1)=>{try{const C=await Ot.getRecentActivity(R,10,s);m(C.activities),M.current.activity(C.pagination.currentPage,C.pagination.totalPages,C.pagination.totalRecords)}catch(C){console.error("Failed to fetch recent activities:",C)}},[s]),k=x.useCallback(async(R=1)=>{try{const C=await Ot.getCriticalRequests(R,10,s);u(C.criticalRequests),M.current.critical(C.pagination.currentPage,C.pagination.totalPages,C.pagination.totalRecords)}catch(C){console.error("Failed to fetch critical requests:",C)}},[s]),_=x.useCallback(async(R=1)=>{try{const C=await Ot.getUpcomingDeadlines(R,10,s);y(C.deadlines),M.current.deadlines(C.pagination.currentPage,C.pagination.totalPages,C.pagination.totalRecords)}catch(C){console.error("Failed to fetch upcoming deadlines:",C)}},[s]),L=x.useCallback(async(R=1)=>{try{const C=await Ot.getApproverPerformance(r,R,10,n,i);w(C.performance),M.current.approver(C.pagination.currentPage,C.pagination.totalPages,C.pagination.totalRecords)}catch(C){console.error("Failed to fetch approver performance:",C)}},[r,n,i]);return{kpis:o,recentActivity:d,criticalRequests:p,departmentStats:h,priorityDistribution:f,upcomingDeadlines:j,aiRemarkUtilization:N,approverPerformance:A,loading:I,refreshing:T,fetchDashboardData:P,fetchRecentActivities:B,fetchCriticalRequests:k,fetchUpcomingDeadlines:_,fetchApproverPerformance:L}}const Wa={appName:"Royal Enfield Workflow Management",appVersion:"1.2.0",workingHours:{START_HOUR:9,END_HOUR:18,START_DAY:1,END_DAY:5,TIMEZONE:"Asia/Kolkata"},tat:{thresholds:{warning:50,critical:75,breach:100},testMode:!1},upload:{maxFileSizeMB:10,allowedFileTypes:["pdf","doc","docx","xls","xlsx","ppt","pptx","jpg","jpeg","png","gif"],maxFilesPerRequest:10},workflow:{maxApprovalLevels:10,maxParticipants:50,maxSpectators:20},workNotes:{maxMessageLength:2e3,maxAttachmentsPerNote:5,enableReactions:!0,enableMentions:!0},features:{ENABLE_AI_CONCLUSION:!0,ENABLE_TEMPLATES:!1,ENABLE_ANALYTICS:!0,ENABLE_EXPORT:!0},ui:{DEFAULT_THEME:"light",DEFAULT_LANGUAGE:"en",DATE_FORMAT:"DD/MM/YYYY",TIME_FORMAT:"12h",CURRENCY:"INR",CURRENCY_SYMBOL:"₹"}};class rN{constructor(){Ll(this,"config",null);Ll(this,"loading",null)}async getConfig(){return this.config?this.config:this.loading?this.loading:(this.loading=this.fetchConfig(),this.config=await this.loading,this.loading=null,this.config)}async fetchConfig(){var s;try{const a=await ve.get("/config"),r=((s=a.data)==null?void 0:s.data)||a.data;return{...Wa,...r,workingHours:{...Wa.workingHours,...r.workingHours},tat:{...Wa.tat,...r.tat},upload:{...Wa.upload,...r.upload},workflow:{...Wa.workflow,...r.workflow},workNotes:{...Wa.workNotes,...r.workNotes},features:{...Wa.features,...r.features},ui:{...Wa.ui,...r.ui}}}catch(a){return console.error("[ConfigService] ⚠️ Failed to fetch config from server, using defaults:",a),Wa}}async refreshConfig(){return this.config=null,this.loading=null,this.getConfig()}getCachedConfig(){return this.config}isLoaded(){return this.config!==null}}const nN=new rN;let iN=9,lN=18,oN=1,cN=5,Iu=!1;async function dN(){if(!Iu)try{const t=await nN.getConfig();iN=t.workingHours.START_HOUR,lN=t.workingHours.END_HOUR,oN=t.workingHours.START_DAY,cN=t.workingHours.END_DAY,Iu=!0}catch{console.warn("[SLA Tracker] ⚠️ Using default working hours (9 AM - 6 PM)")}}dN().catch(()=>{});function Xt(t){if(t==null||t<0||t===0)return"0 hours";const s=8;if(t<1){const o=Math.round(t*60);return o>0?`${o}m`:"0 hours"}const a=Math.floor(t/s),r=Math.floor(t%s),n=Math.round(t%1*60);if(a>0){const o=a===1?"day":"days",c=r===1?"hour":"hours",d=n===1?"min":"m";return n>0?`${a} ${o} ${r} ${c} ${n}${d}`:`${a} ${o} ${r} ${c}`}const i=r===1?"hour":"hours",l=n===1?"min":"m";return n>0?`${r} ${i} ${n}${l}`:`${r} ${i}`}async function mN(t,s,a){const r=[];let n=1,i=!0;const l=100;for(;i&&n<=l;){const u=await Ot.getApproverPerformance(t,n,100,s,a);u.performance&&u.performance.length>0?(r.push(...u.performance),n++,i=n<=u.pagination.totalPages):i=!1}const o=[["Approver Name","Total Approved","TAT Compliance (%)","Avg Response Time","Pending Count"].join(",")];r.forEach(u=>{const h=[`"${(u.approverName||"Unknown").replace(/"/g,'""')}"`,u.totalApproved||0,u.tatCompliancePercent||0,Xt(u.avgResponseHours),u.pendingCount||0];o.push(h.join(","))});const c=o.join(` -`),d=new Blob([c],{type:"text/csv;charset=utf-8;"}),m=document.createElement("a"),p=URL.createObjectURL(d);m.setAttribute("href",p),m.setAttribute("download",`approver-performance-report-${new Date().toISOString().split("T")[0]}.csv`),m.style.visibility="hidden",document.body.appendChild(m),m.click(),document.body.removeChild(m),URL.revokeObjectURL(p)}async function uN(t,s,a){const r=await Ot.getDepartmentStats(t,s,a),n=[["Department","Total Requests","Approved","Rejected","In Progress","Approval Rate (%)"].join(",")];r.forEach(d=>{const m=[`"${(d.department||"Unknown").replace(/"/g,'""')}"`,d.totalRequests||0,d.approved||0,d.rejected||0,d.inProgress||0,d.approvalRate||0];n.push(m.join(","))});const i=n.join(` -`),l=new Blob([i],{type:"text/csv;charset=utf-8;"}),o=document.createElement("a"),c=URL.createObjectURL(l);o.setAttribute("href",c),o.setAttribute("download",`department-workflow-summary-${new Date().toISOString().split("T")[0]}.csv`),o.style.visibility="hidden",document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(c)}function xN(){const[t,s]=x.useState(!1),[a,r]=x.useState(!1),n=x.useCallback(async(l,o,c)=>{try{s(!0),await uN(l,o,c)}catch(d){console.error("Failed to export department stats:",d),alert("Failed to export department statistics. Please try again.")}finally{s(!1)}},[]),i=x.useCallback(async(l,o,c)=>{try{r(!0),await mN(l,o,c)}catch(d){console.error("Failed to export approver performance:",d),alert("Failed to export approver performance data. Please try again.")}finally{r(!1)}},[]);return{exportingDeptStats:t,exportingApproverPerformance:a,handleExportDepartmentStats:n,handleExportApproverPerformance:i}}function os({className:t,...s}){return e.jsx(cb,{"data-slot":"switch",className:Le("peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-switch-background focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",t),...s,children:e.jsx(db,{"data-slot":"switch-thumb",className:Le("bg-card dark:data-[state=unchecked]:bg-card-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0")})})}function se({className:t,...s}){return e.jsx(mb,{"data-slot":"label",className:Le("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",t),...s})}function hN({isAdmin:t,effectiveIsAdmin:s,viewAsUser:a,onToggleView:r,quickActions:n,userDisplayName:i,userEmail:l}){const o=i||(l==null?void 0:l.split("@")[0])||"User";return e.jsxs(Z,{className:"relative overflow-hidden shadow-xl border-0","data-testid":"dashboard-hero",children:[e.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-slate-900 via-slate-800 to-slate-900"}),e.jsxs(J,{className:"relative z-10 p-4 sm:p-6 lg:p-12",children:[t&&e.jsx("div",{className:"absolute top-4 right-4 sm:top-6 sm:right-6 z-20","data-testid":"view-toggle",children:e.jsxs("div",{className:"flex items-center gap-1.5 sm:gap-2 p-1.5 sm:p-2 bg-white/10 backdrop-blur-sm rounded-lg border border-white/20 shadow-lg",children:[e.jsxs("div",{className:`flex items-center gap-1 sm:gap-1.5 px-1.5 sm:px-2 py-0.5 sm:py-1 rounded transition-all cursor-pointer ${a?"opacity-60 hover:opacity-80":"bg-red-600/20 border border-red-600/50"}`,onClick:()=>r(!1),children:[e.jsx(fc,{className:`w-3 h-3 sm:w-3.5 sm:h-3.5 ${a?"text-gray-300":"text-red-600"}`}),e.jsx(se,{htmlFor:"view-toggle-switch",className:`text-[10px] sm:text-xs font-medium cursor-pointer whitespace-nowrap ${a?"text-gray-300":"text-red-600"}`,children:"Org"})]}),e.jsx(os,{id:"view-toggle-switch",checked:a,onCheckedChange:r,className:"data-[state=checked]:bg-red-600 data-[state=unchecked]:bg-gray-600 shrink-0 scale-90 sm:scale-100","data-testid":"view-toggle-switch"}),e.jsxs("div",{className:`flex items-center gap-1 sm:gap-1.5 px-1.5 sm:px-2 py-0.5 sm:py-1 rounded transition-all cursor-pointer ${a?"bg-red-600/20 border border-red-600/50":"opacity-60 hover:opacity-80"}`,onClick:()=>r(!0),children:[e.jsx(Ht,{className:`w-3 h-3 sm:w-3.5 sm:h-3.5 ${a?"text-red-600":"text-gray-300"}`}),e.jsx(se,{htmlFor:"view-toggle-switch",className:`text-[10px] sm:text-xs font-medium cursor-pointer whitespace-nowrap ${a?"text-red-600":"text-gray-300"}`,children:"Personal"})]})]})}),e.jsx("div",{className:"flex flex-col lg:flex-row items-start lg:items-center justify-between gap-4 sm:gap-6",children:e.jsxs("div",{className:`text-white w-full lg:w-auto ${t?"pt-12 sm:pt-0":""}`,children:[e.jsx("div",{className:"flex items-center gap-3 sm:gap-4 mb-4 sm:mb-6",children:e.jsxs("div",{className:"pr-2 sm:pr-0",children:[e.jsxs("h1",{className:"text-2xl sm:text-3xl lg:text-4xl font-bold mb-1 sm:mb-2 text-white","data-testid":"hero-title",children:["Welcome, ",o,"!"]}),e.jsx("p",{className:"text-sm sm:text-lg lg:text-xl text-gray-200","data-testid":"hero-subtitle",children:s?"Organization-wide analytics and insights":"Track your requests and approvals"})]})}),e.jsx("div",{className:"flex flex-wrap gap-2 sm:gap-4 mt-4 sm:mt-8","data-testid":"quick-actions",children:n.map((c,d)=>e.jsxs(E,{onClick:c.action,className:`${c.color} text-white border-0 shadow-lg hover:shadow-xl transition-all duration-200`,size:window.innerWidth<640?"sm":"lg","data-testid":`quick-action-${c.label.toLowerCase().replace(/\s+/g,"-")}`,children:[e.jsx(c.icon,{className:"w-4 h-4 sm:w-5 sm:h-5 mr-1 sm:mr-2"}),c.label]},d))})]})})]})]})}function He({...t}){return e.jsx(ub,{"data-slot":"select",...t})}function Ge({...t}){return e.jsx(pb,{"data-slot":"select-value",...t})}function We({className:t,size:s="default",children:a,...r}){return e.jsxs(xb,{"data-slot":"select-trigger","data-size":s,className:Le("border-gray-400 data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground bg-white text-gray-900 flex w-full items-center justify-between gap-2 rounded-md border px-3 py-2 text-sm whitespace-nowrap transition-all outline-none disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4","hover:border-gray-500","focus-visible:border-re-light-green focus-visible:ring-0 focus-visible:outline-none","aria-invalid:ring-destructive/20 aria-invalid:border-destructive",t),...r,children:[a,e.jsx(hb,{asChild:!0,children:e.jsx(jn,{className:"size-4 opacity-50"})})]})}function Ye({className:t,children:s,position:a="popper",...r}){return e.jsx(gb,{children:e.jsxs(fb,{"data-slot":"select-content",className:Le("bg-popover text-popover-foreground 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-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md",a==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",t),position:a,...r,children:[e.jsx(pN,{}),e.jsx(bb,{className:Le("p-1",a==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:s}),e.jsx(gN,{})]})})}function X({className:t,children:s,...a}){return e.jsxs(jb,{"data-slot":"select-item",className:Le("focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",t),...a,children:[e.jsx("span",{className:"absolute right-2 flex size-3.5 items-center justify-center",children:e.jsx(yb,{children:e.jsx($a,{className:"size-4"})})}),e.jsx(vb,{children:s})]})}function pN({className:t,...s}){return e.jsx(Nb,{"data-slot":"select-scroll-up-button",className:Le("flex cursor-default items-center justify-center py-1",t),...s,children:e.jsx(ul,{className:"size-4"})})}function gN({className:t,...s}){return e.jsx(wb,{"data-slot":"select-scroll-down-button",className:Le("flex cursor-default items-center justify-center py-1",t),...s,children:e.jsx(jn,{className:"size-4"})})}function Jt({className:t,orientation:s="horizontal",decorative:a=!0,...r}){return e.jsx(Cb,{"data-slot":"separator-root",decorative:a,orientation:s,className:Le("bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",t),...r})}function aa({...t}){return e.jsx(Sb,{"data-slot":"popover",...t})}function ra({...t}){return e.jsx(Ab,{"data-slot":"popover-trigger",...t})}function na({className:t,align:s="center",sideOffset:a=4,...r}){return e.jsx(Tb,{children:e.jsx(kb,{"data-slot":"popover-content",align:s,sideOffset:a,className:Le("bg-popover text-popover-foreground 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-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",t),...r})})}var ct=function(){return ct=Object.assign||function(s){for(var a,r=1,n=arguments.length;r1&&(c||!d),p=s>1&&(d||!c),u=function(){r&&i(r)},h=function(){n&&i(n)};return e.jsx(KN,{displayMonth:t.displayMonth,hideNext:m,hidePrevious:p,nextMonth:n,previousMonth:r,onPreviousClick:u,onNextClick:h})}function XN(t){var s,a=Yt(),r=a.classNames,n=a.disableNavigation,i=a.styles,l=a.captionLayout,o=a.components,c=(s=o==null?void 0:o.CaptionLabel)!==null&&s!==void 0?s:Xp,d;return n?d=e.jsx(c,{id:t.id,displayMonth:t.displayMonth}):l==="dropdown"?d=e.jsx(Pu,{displayMonth:t.displayMonth,id:t.id}):l==="dropdown-buttons"?d=e.jsxs(e.Fragment,{children:[e.jsx(Pu,{displayMonth:t.displayMonth,displayIndex:t.displayIndex,id:t.id}),e.jsx(Eu,{displayMonth:t.displayMonth,displayIndex:t.displayIndex,id:t.id})]}):d=e.jsxs(e.Fragment,{children:[e.jsx(c,{id:t.id,displayMonth:t.displayMonth,displayIndex:t.displayIndex}),e.jsx(Eu,{displayMonth:t.displayMonth,id:t.id})]}),e.jsx("div",{className:r.caption,style:i.caption,children:d})}function ZN(t){var s=Yt(),a=s.footer,r=s.styles,n=s.classNames.tfoot;return a?e.jsx("tfoot",{className:n,style:r.tfoot,children:e.jsx("tr",{children:e.jsx("td",{colSpan:8,children:a})})}):e.jsx(e.Fragment,{})}function JN(t,s,a){for(var r=a?pc(new Date):gc(new Date,{locale:t,weekStartsOn:s}),n=[],i=0;i<7;i++){var l=oa(r,i);n.push(l)}return n}function qN(){var t=Yt(),s=t.classNames,a=t.styles,r=t.showWeekNumber,n=t.locale,i=t.weekStartsOn,l=t.ISOWeek,o=t.formatters.formatWeekdayName,c=t.labels.labelWeekday,d=JN(n,i,l);return e.jsxs("tr",{style:a.head_row,className:s.head_row,children:[r&&e.jsx("td",{style:a.head_cell,className:s.head_cell}),d.map(function(m,p){return e.jsx("th",{scope:"col",className:s.head_cell,style:a.head_cell,"aria-label":c(m,{locale:n}),children:o(m,{locale:n})},p)})]})}function ew(){var t,s=Yt(),a=s.classNames,r=s.styles,n=s.components,i=(t=n==null?void 0:n.HeadRow)!==null&&t!==void 0?t:qN;return e.jsx("thead",{style:r.head,className:a.head,children:e.jsx(i,{})})}function tw(t){var s=Yt(),a=s.locale,r=s.formatters.formatDay;return e.jsx(e.Fragment,{children:r(t.date,{locale:a})})}var Pc=x.createContext(void 0);function sw(t){if(!mi(t.initialProps)){var s={selected:void 0,modifiers:{disabled:[]}};return e.jsx(Pc.Provider,{value:s,children:t.children})}return e.jsx(aw,{initialProps:t.initialProps,children:t.children})}function aw(t){var s=t.initialProps,a=t.children,r=s.selected,n=s.min,i=s.max,l=function(d,m,p){var u,h;(u=s.onDayClick)===null||u===void 0||u.call(s,d,m,p);var g=!!(m.selected&&n&&(r==null?void 0:r.length)===n);if(!g){var f=!!(!m.selected&&i&&(r==null?void 0:r.length)===i);if(!f){var b=r?Qp([],r):[];if(m.selected){var j=b.findIndex(function(y){return ea(d,y)});b.splice(j,1)}else b.push(d);(h=s.onSelect)===null||h===void 0||h.call(s,b,d,m,p)}}},o={disabled:[]};r&&o.disabled.push(function(d){var m=i&&r.length>i-1,p=r.some(function(u){return ea(u,d)});return!!(m&&!p)});var c={selected:r,onDayClick:l,modifiers:o};return e.jsx(Pc.Provider,{value:c,children:a})}function Ec(){var t=x.useContext(Pc);if(!t)throw new Error("useSelectMultiple must be used within a SelectMultipleProvider");return t}function rw(t,s){var a=s||{},r=a.from,n=a.to;return r&&n?ea(n,t)&&ea(r,t)?void 0:ea(n,t)?{from:n,to:void 0}:ea(r,t)?void 0:Eo(r,t)?{from:t,to:n}:{from:r,to:t}:n?Eo(t,n)?{from:n,to:t}:{from:t,to:n}:r?Yh(t,r)?{from:t,to:r}:{from:r,to:t}:{from:t,to:void 0}}var _c=x.createContext(void 0);function nw(t){if(!ui(t.initialProps)){var s={selected:void 0,modifiers:{range_start:[],range_end:[],range_middle:[],disabled:[]}};return e.jsx(_c.Provider,{value:s,children:t.children})}return e.jsx(iw,{initialProps:t.initialProps,children:t.children})}function iw(t){var s=t.initialProps,a=t.children,r=s.selected,n=r||{},i=n.from,l=n.to,o=s.min,c=s.max,d=function(h,g,f){var b,j;(b=s.onDayClick)===null||b===void 0||b.call(s,h,g,f);var y=rw(h,r);(j=s.onSelect)===null||j===void 0||j.call(s,y,h,g,f)},m={range_start:[],range_end:[],range_middle:[],disabled:[]};if(i?(m.range_start=[i],l?(m.range_end=[l],ea(i,l)||(m.range_middle=[{after:i,before:l}])):m.range_end=[i]):l&&(m.range_start=[l],m.range_end=[l]),o&&(i&&!l&&m.disabled.push({after:Ol(i,o-1),before:oa(i,o-1)}),i&&l&&m.disabled.push({after:i,before:oa(i,o-1)}),!i&&l&&m.disabled.push({after:Ol(l,o-1),before:oa(l,o-1)})),c){if(i&&!l&&(m.disabled.push({before:oa(i,-c+1)}),m.disabled.push({after:oa(i,c-1)})),i&&l){var p=Qa(l,i)+1,u=c-p;m.disabled.push({before:Ol(i,u)}),m.disabled.push({after:oa(l,u)})}!i&&l&&(m.disabled.push({before:oa(l,-c+1)}),m.disabled.push({after:oa(l,c-1)}))}return e.jsx(_c.Provider,{value:{selected:r,onDayClick:d,modifiers:m},children:a})}function Mc(){var t=x.useContext(_c);if(!t)throw new Error("useSelectRange must be used within a SelectRangeProvider");return t}function Li(t){return Array.isArray(t)?Qp([],t):t!==void 0?[t]:[]}function lw(t){var s={};return Object.entries(t).forEach(function(a){var r=a[0],n=a[1];s[r]=Li(n)}),s}var Ra;(function(t){t.Outside="outside",t.Disabled="disabled",t.Selected="selected",t.Hidden="hidden",t.Today="today",t.RangeStart="range_start",t.RangeEnd="range_end",t.RangeMiddle="range_middle"})(Ra||(Ra={}));var ow=Ra.Selected,Ya=Ra.Disabled,cw=Ra.Hidden,dw=Ra.Today,Ql=Ra.RangeEnd,Kl=Ra.RangeMiddle,Xl=Ra.RangeStart,mw=Ra.Outside;function uw(t,s,a){var r,n=(r={},r[ow]=Li(t.selected),r[Ya]=Li(t.disabled),r[cw]=Li(t.hidden),r[dw]=[t.today],r[Ql]=[],r[Kl]=[],r[Xl]=[],r[mw]=[],r);return t.fromDate&&n[Ya].push({before:t.fromDate}),t.toDate&&n[Ya].push({after:t.toDate}),mi(t)?n[Ya]=n[Ya].concat(s.modifiers[Ya]):ui(t)&&(n[Ya]=n[Ya].concat(a.modifiers[Ya]),n[Xl]=a.modifiers[Xl],n[Kl]=a.modifiers[Kl],n[Ql]=a.modifiers[Ql]),n}var qp=x.createContext(void 0);function xw(t){var s=Yt(),a=Ec(),r=Mc(),n=uw(s,a,r),i=lw(s.modifiers),l=ct(ct({},n),i);return e.jsx(qp.Provider,{value:l,children:t.children})}function eg(){var t=x.useContext(qp);if(!t)throw new Error("useModifiers must be used within a ModifiersProvider");return t}function hw(t){return!!(t&&typeof t=="object"&&"before"in t&&"after"in t)}function pw(t){return!!(t&&typeof t=="object"&&"from"in t)}function gw(t){return!!(t&&typeof t=="object"&&"after"in t)}function fw(t){return!!(t&&typeof t=="object"&&"before"in t)}function bw(t){return!!(t&&typeof t=="object"&&"dayOfWeek"in t)}function jw(t,s){var a,r=s.from,n=s.to;if(r&&n){var i=Qa(n,r)<0;i&&(a=[n,r],r=a[0],n=a[1]);var l=Qa(t,r)>=0&&Qa(n,t)>=0;return l}return n?ea(n,t):r?ea(r,t):!1}function yw(t){return Xh(t)}function vw(t){return Array.isArray(t)&&t.every(Xh)}function Nw(t,s){return s.some(function(a){if(typeof a=="boolean")return a;if(yw(a))return ea(t,a);if(vw(a))return a.includes(t);if(pw(a))return jw(t,a);if(bw(a))return a.dayOfWeek.includes(t.getDay());if(hw(a)){var r=Qa(a.before,t),n=Qa(a.after,t),i=r>0,l=n<0,o=Eo(a.before,a.after);return o?l&&i:i||l}return gw(a)?Qa(t,a.after)>0:fw(a)?Qa(a.before,t)>0:typeof a=="function"?a(t):!1})}function Lc(t,s,a){var r=Object.keys(s).reduce(function(i,l){var o=s[l];return Nw(t,o)&&i.push(l),i},[]),n={};return r.forEach(function(i){return n[i]=!0}),a&&!hc(t,a)&&(n.outside=!0),n}function ww(t,s){for(var a=ma(t[0]),r=xc(t[t.length-1]),n,i,l=a;l<=r;){var o=Lc(l,s),c=!o.disabled&&!o.hidden;if(!c){l=oa(l,1);continue}if(o.selected)return l;o.today&&!i&&(i=l),n||(n=l),l=oa(l,1)}return i||n}var Cw=365;function tg(t,s){var a=s.moveBy,r=s.direction,n=s.context,i=s.modifiers,l=s.retry,o=l===void 0?{count:0,lastFocused:t}:l,c=n.weekStartsOn,d=n.fromDate,m=n.toDate,p=n.locale,u={day:oa,week:Po,month:Oa,year:aj,startOfWeek:function(b){return n.ISOWeek?pc(b):gc(b,{locale:p,weekStartsOn:c})},endOfWeek:function(b){return n.ISOWeek?Qh(b):Kh(b,{locale:p,weekStartsOn:c})}},h=u[a](t,r==="after"?1:-1);r==="before"&&d?h=rj([d,h]):r==="after"&&m&&(h=nj([m,h]));var g=!0;if(i){var f=Lc(h,i);g=!f.disabled&&!f.hidden}return g?h:o.count>Cw?o.lastFocused:tg(h,{moveBy:a,direction:r,context:n,modifiers:i,retry:ct(ct({},o),{count:o.count+1})})}var sg=x.createContext(void 0);function Sw(t){var s=xi(),a=eg(),r=x.useState(),n=r[0],i=r[1],l=x.useState(),o=l[0],c=l[1],d=ww(s.displayMonths,a),m=n??(o&&s.isDateDisplayed(o))?o:d,p=function(){c(n),i(void 0)},u=function(b){i(b)},h=Yt(),g=function(b,j){if(n){var y=tg(n,{moveBy:b,direction:j,context:h,modifiers:a});ea(n,y)||(s.goToDate(y,n),u(y))}},f={focusedDay:n,focusTarget:m,blur:p,focus:u,focusDayAfter:function(){return g("day","after")},focusDayBefore:function(){return g("day","before")},focusWeekAfter:function(){return g("week","after")},focusWeekBefore:function(){return g("week","before")},focusMonthBefore:function(){return g("month","before")},focusMonthAfter:function(){return g("month","after")},focusYearBefore:function(){return g("year","before")},focusYearAfter:function(){return g("year","after")},focusStartOfWeek:function(){return g("startOfWeek","before")},focusEndOfWeek:function(){return g("endOfWeek","after")}};return e.jsx(sg.Provider,{value:f,children:t.children})}function Oc(){var t=x.useContext(sg);if(!t)throw new Error("useFocusContext must be used within a FocusProvider");return t}function Aw(t,s){var a=eg(),r=Lc(t,a,s);return r}var $c=x.createContext(void 0);function Tw(t){if(!kl(t.initialProps)){var s={selected:void 0};return e.jsx($c.Provider,{value:s,children:t.children})}return e.jsx(kw,{initialProps:t.initialProps,children:t.children})}function kw(t){var s=t.initialProps,a=t.children,r=function(i,l,o){var c,d,m;if((c=s.onDayClick)===null||c===void 0||c.call(s,i,l,o),l.selected&&!s.required){(d=s.onSelect)===null||d===void 0||d.call(s,void 0,i,l,o);return}(m=s.onSelect)===null||m===void 0||m.call(s,i,i,l,o)},n={selected:s.selected,onDayClick:r};return e.jsx($c.Provider,{value:n,children:a})}function ag(){var t=x.useContext($c);if(!t)throw new Error("useSelectSingle must be used within a SelectSingleProvider");return t}function Dw(t,s){var a=Yt(),r=ag(),n=Ec(),i=Mc(),l=Oc(),o=l.focusDayAfter,c=l.focusDayBefore,d=l.focusWeekAfter,m=l.focusWeekBefore,p=l.blur,u=l.focus,h=l.focusMonthBefore,g=l.focusMonthAfter,f=l.focusYearBefore,b=l.focusYearAfter,j=l.focusStartOfWeek,y=l.focusEndOfWeek,N=function(R){var C,G,U,$;kl(a)?(C=r.onDayClick)===null||C===void 0||C.call(r,t,s,R):mi(a)?(G=n.onDayClick)===null||G===void 0||G.call(n,t,s,R):ui(a)?(U=i.onDayClick)===null||U===void 0||U.call(i,t,s,R):($=a.onDayClick)===null||$===void 0||$.call(a,t,s,R)},S=function(R){var C;u(t),(C=a.onDayFocus)===null||C===void 0||C.call(a,t,s,R)},A=function(R){var C;p(),(C=a.onDayBlur)===null||C===void 0||C.call(a,t,s,R)},w=function(R){var C;(C=a.onDayMouseEnter)===null||C===void 0||C.call(a,t,s,R)},I=function(R){var C;(C=a.onDayMouseLeave)===null||C===void 0||C.call(a,t,s,R)},D=function(R){var C;(C=a.onDayPointerEnter)===null||C===void 0||C.call(a,t,s,R)},T=function(R){var C;(C=a.onDayPointerLeave)===null||C===void 0||C.call(a,t,s,R)},v=function(R){var C;(C=a.onDayTouchCancel)===null||C===void 0||C.call(a,t,s,R)},M=function(R){var C;(C=a.onDayTouchEnd)===null||C===void 0||C.call(a,t,s,R)},P=function(R){var C;(C=a.onDayTouchMove)===null||C===void 0||C.call(a,t,s,R)},B=function(R){var C;(C=a.onDayTouchStart)===null||C===void 0||C.call(a,t,s,R)},k=function(R){var C;(C=a.onDayKeyUp)===null||C===void 0||C.call(a,t,s,R)},_=function(R){var C;switch(R.key){case"ArrowLeft":R.preventDefault(),R.stopPropagation(),a.dir==="rtl"?o():c();break;case"ArrowRight":R.preventDefault(),R.stopPropagation(),a.dir==="rtl"?c():o();break;case"ArrowDown":R.preventDefault(),R.stopPropagation(),d();break;case"ArrowUp":R.preventDefault(),R.stopPropagation(),m();break;case"PageUp":R.preventDefault(),R.stopPropagation(),R.shiftKey?f():h();break;case"PageDown":R.preventDefault(),R.stopPropagation(),R.shiftKey?b():g();break;case"Home":R.preventDefault(),R.stopPropagation(),j();break;case"End":R.preventDefault(),R.stopPropagation(),y();break}(C=a.onDayKeyDown)===null||C===void 0||C.call(a,t,s,R)},L={onClick:N,onFocus:S,onBlur:A,onKeyDown:_,onKeyUp:k,onMouseEnter:w,onMouseLeave:I,onPointerEnter:D,onPointerLeave:T,onTouchCancel:v,onTouchEnd:M,onTouchMove:P,onTouchStart:B};return L}function Rw(){var t=Yt(),s=ag(),a=Ec(),r=Mc(),n=kl(t)?s.selected:mi(t)?a.selected:ui(t)?r.selected:void 0;return n}function Fw(t){return Object.values(Ra).includes(t)}function Iw(t,s){var a=[t.classNames.day];return Object.keys(s).forEach(function(r){var n=t.modifiersClassNames[r];if(n)a.push(n);else if(Fw(r)){var i=t.classNames["day_".concat(r)];i&&a.push(i)}}),a}function Pw(t,s){var a=ct({},t.styles.day);return Object.keys(s).forEach(function(r){var n;a=ct(ct({},a),(n=t.modifiersStyles)===null||n===void 0?void 0:n[r])}),a}function Ew(t,s,a){var r,n,i,l=Yt(),o=Oc(),c=Aw(t,s),d=Dw(t,c),m=Rw(),p=!!(l.onDayClick||l.mode!=="default");x.useEffect(function(){var w;c.outside||o.focusedDay&&p&&ea(o.focusedDay,t)&&((w=a.current)===null||w===void 0||w.focus())},[o.focusedDay,t,a,p,c.outside]);var u=Iw(l,c).join(" "),h=Pw(l,c),g=!!(c.outside&&!l.showOutsideDays||c.hidden),f=(i=(n=l.components)===null||n===void 0?void 0:n.DayContent)!==null&&i!==void 0?i:tw,b=e.jsx(f,{date:t,displayMonth:s,activeModifiers:c}),j={style:h,className:u,children:b,role:"gridcell"},y=o.focusTarget&&ea(o.focusTarget,t)&&!c.outside,N=o.focusedDay&&ea(o.focusedDay,t),S=ct(ct(ct({},j),(r={disabled:c.disabled,role:"gridcell"},r["aria-selected"]=c.selected,r.tabIndex=N||y?0:-1,r)),d),A={isButton:p,isHidden:g,activeModifiers:c,selectedDays:m,buttonProps:S,divProps:j};return A}function _w(t){var s=x.useRef(null),a=Ew(t.date,t.displayMonth,s);return a.isHidden?e.jsx("div",{role:"gridcell"}):a.isButton?e.jsx(tl,ct({name:"day",ref:s},a.buttonProps)):e.jsx("div",ct({},a.divProps))}function Mw(t){var s=t.number,a=t.dates,r=Yt(),n=r.onWeekNumberClick,i=r.styles,l=r.classNames,o=r.locale,c=r.labels.labelWeekNumber,d=r.formatters.formatWeekNumber,m=d(Number(s),{locale:o});if(!n)return e.jsx("span",{className:l.weeknumber,style:i.weeknumber,children:m});var p=c(Number(s),{locale:o}),u=function(h){n(s,a,h)};return e.jsx(tl,{name:"week-number","aria-label":p,className:l.weeknumber,style:i.weeknumber,onClick:u,children:m})}function Lw(t){var s,a,r=Yt(),n=r.styles,i=r.classNames,l=r.showWeekNumber,o=r.components,c=(s=o==null?void 0:o.Day)!==null&&s!==void 0?s:_w,d=(a=o==null?void 0:o.WeekNumber)!==null&&a!==void 0?a:Mw,m;return l&&(m=e.jsx("td",{className:i.cell,style:n.cell,children:e.jsx(d,{number:t.weekNumber,dates:t.dates})})),e.jsxs("tr",{className:i.row,style:n.row,children:[m,t.dates.map(function(p){return e.jsx("td",{className:i.cell,style:n.cell,role:"presentation",children:e.jsx(c,{displayMonth:t.displayMonth,date:p})},sj(p))})]})}function _u(t,s,a){for(var r=a!=null&&a.ISOWeek?Qh(s):Kh(s,a),n=a!=null&&a.ISOWeek?pc(t):gc(t,a),i=Qa(r,n),l=[],o=0;o<=i;o++)l.push(oa(n,o));var c=l.reduce(function(d,m){var p=a!=null&&a.ISOWeek?oj(m):cj(m,a),u=d.find(function(h){return h.weekNumber===p});return u?(u.dates.push(m),d):(d.push({weekNumber:p,dates:[m]}),d)},[]);return c}function Ow(t,s){var a=_u(ma(t),xc(t),s);if(s!=null&&s.useFixedWeeks){var r=tj(t,s);if(r<6){var n=a[a.length-1],i=n.dates[n.dates.length-1],l=Po(i,6-r),o=_u(Po(i,1),l,s);a.push.apply(a,o)}}return a}function $w(t){var s,a,r,n=Yt(),i=n.locale,l=n.classNames,o=n.styles,c=n.hideHead,d=n.fixedWeeks,m=n.components,p=n.weekStartsOn,u=n.firstWeekContainsDate,h=n.ISOWeek,g=Ow(t.displayMonth,{useFixedWeeks:!!d,ISOWeek:h,locale:i,weekStartsOn:p,firstWeekContainsDate:u}),f=(s=m==null?void 0:m.Head)!==null&&s!==void 0?s:ew,b=(a=m==null?void 0:m.Row)!==null&&a!==void 0?a:Lw,j=(r=m==null?void 0:m.Footer)!==null&&r!==void 0?r:ZN;return e.jsxs("table",{id:t.id,className:l.table,style:o.table,role:"grid","aria-labelledby":t["aria-labelledby"],children:[!c&&e.jsx(f,{}),e.jsx("tbody",{className:l.tbody,style:o.tbody,children:g.map(function(y){return e.jsx(b,{displayMonth:t.displayMonth,dates:y.dates,weekNumber:y.weekNumber},y.weekNumber)})}),e.jsx(j,{displayMonth:t.displayMonth})]})}function Uw(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}var Bw=Uw()?x.useLayoutEffect:x.useEffect,Zl=!1,Vw=0;function Mu(){return"react-day-picker-".concat(++Vw)}function zw(t){var s,a=t??(Zl?Mu():null),r=x.useState(a),n=r[0],i=r[1];return Bw(function(){n===null&&i(Mu())},[]),x.useEffect(function(){Zl===!1&&(Zl=!0)},[]),(s=t??n)!==null&&s!==void 0?s:void 0}function Hw(t){var s,a,r=Yt(),n=r.dir,i=r.classNames,l=r.styles,o=r.components,c=xi().displayMonths,d=zw(r.id?"".concat(r.id,"-").concat(t.displayIndex):void 0),m=r.id?"".concat(r.id,"-grid-").concat(t.displayIndex):void 0,p=[i.month],u=l.month,h=t.displayIndex===0,g=t.displayIndex===c.length-1,f=!h&&!g;n==="rtl"&&(s=[h,g],g=s[0],h=s[1]),h&&(p.push(i.caption_start),u=ct(ct({},u),l.caption_start)),g&&(p.push(i.caption_end),u=ct(ct({},u),l.caption_end)),f&&(p.push(i.caption_between),u=ct(ct({},u),l.caption_between));var b=(a=o==null?void 0:o.Caption)!==null&&a!==void 0?a:XN;return e.jsxs("div",{className:p.join(" "),style:u,children:[e.jsx(b,{id:d,displayMonth:t.displayMonth,displayIndex:t.displayIndex}),e.jsx($w,{id:m,"aria-labelledby":d,displayMonth:t.displayMonth})]},t.displayIndex)}function Gw(t){var s=Yt(),a=s.classNames,r=s.styles;return e.jsx("div",{className:a.months,style:r.months,children:t.children})}function Ww(t){var s,a,r=t.initialProps,n=Yt(),i=Oc(),l=xi(),o=x.useState(!1),c=o[0],d=o[1];x.useEffect(function(){n.initialFocus&&i.focusTarget&&(c||(i.focus(i.focusTarget),d(!0)))},[n.initialFocus,c,i.focus,i.focusTarget,i]);var m=[n.classNames.root,n.className];n.numberOfMonths>1&&m.push(n.classNames.multiple_months),n.showWeekNumber&&m.push(n.classNames.with_weeknumber);var p=ct(ct({},n.styles.root),n.style),u=Object.keys(r).filter(function(g){return g.startsWith("data-")}).reduce(function(g,f){var b;return ct(ct({},g),(b={},b[f]=r[f],b))},{}),h=(a=(s=r.components)===null||s===void 0?void 0:s.Months)!==null&&a!==void 0?a:Gw;return e.jsx("div",ct({className:m.join(" "),style:p,dir:n.dir,id:n.id,nonce:r.nonce,title:r.title,lang:r.lang},u,{children:e.jsx(h,{children:l.displayMonths.map(function(g,f){return e.jsx(Hw,{displayIndex:f,displayMonth:g},f)})})}))}function Yw(t){var s=t.children,a=fN(t,["children"]);return e.jsx(MN,{initialProps:a,children:e.jsx(WN,{children:e.jsx(Tw,{initialProps:a,children:e.jsx(sw,{initialProps:a,children:e.jsx(nw,{initialProps:a,children:e.jsx(xw,{children:e.jsx(Sw,{children:s})})})})})})})}function Qw(t){return e.jsx(Yw,ct({},t,{children:e.jsx(Ww,{initialProps:t})}))}function Oi({className:t,classNames:s,showOutsideDays:a=!0,...r}){return e.jsx(Qw,{showOutsideDays:a,className:Le("p-3",t),classNames:{months:"flex flex-col sm:flex-row gap-2",month:"flex flex-col gap-4",caption:"flex justify-center pt-1 relative items-center w-full",caption_label:"text-sm font-medium",nav:"flex items-center gap-1",nav_button:Le(ei({variant:"outline"}),"size-7 bg-transparent p-0 opacity-50 hover:opacity-100"),nav_button_previous:"absolute left-1",nav_button_next:"absolute right-1",table:"w-full border-collapse space-x-1",head_row:"flex",head_cell:"text-muted-foreground rounded-md w-8 font-normal text-[0.8rem]",row:"flex w-full mt-2",cell:Le("relative p-0 text-center text-sm focus-within:relative focus-within:z-20 [&:has([aria-selected])]:bg-accent [&:has([aria-selected].day-range-end)]:rounded-r-md",r.mode==="range"?"[&:has(>.day-range-end)]:rounded-r-md [&:has(>.day-range-start)]:rounded-l-md first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md":"[&:has([aria-selected])]:rounded-md"),day:Le(ei({variant:"ghost"}),"size-8 p-0 font-normal aria-selected:opacity-100"),day_range_start:"day-range-start aria-selected:bg-primary aria-selected:text-primary-foreground",day_range_end:"day-range-end aria-selected:bg-primary aria-selected:text-primary-foreground",day_selected:"bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground",day_today:"bg-accent text-accent-foreground",day_outside:"day-outside text-muted-foreground aria-selected:text-muted-foreground",day_disabled:"text-muted-foreground opacity-50",day_range_middle:"aria-selected:bg-accent aria-selected:text-accent-foreground",day_hidden:"invisible",...s},components:{IconLeft:({className:n,...i})=>e.jsx(pn,{className:Le("size-4",n),...i}),IconRight:({className:n,...i})=>e.jsx(Ka,{className:Le("size-4",n),...i})},...r})}function ta({value:t,onChange:s,minDate:a,maxDate:r,placeholderText:n="dd/mm/yyyy",disabled:i=!1,className:l,wrapperClassName:o,error:c=!1,displayFormat:d="dd/MM/yyyy",id:m}){const[p,u]=x.useState(!1),h=x.useMemo(()=>{if(t){if(t instanceof Date)return Jr(t)?t:void 0;if(typeof t=="string")try{const j=Ul(t,"yyyy-MM-dd",new Date);return Jr(j)?j:void 0}catch{return}}},[t]),g=x.useMemo(()=>{if(a){if(a instanceof Date)return Jr(a)?a:void 0;if(typeof a=="string"){const j=Ul(a,"yyyy-MM-dd",new Date);return Jr(j)?j:void 0}}},[a]),f=x.useMemo(()=>{if(r){if(r instanceof Date)return Jr(r)?r:void 0;if(typeof r=="string"){const j=Ul(r,"yyyy-MM-dd",new Date);return Jr(j)?j:void 0}}},[r]),b=j=>{if(u(!1),!!s){if(!j){s(null);return}s(st(j,"yyyy-MM-dd"))}};return e.jsx("div",{className:Le("relative",o),children:e.jsxs(aa,{open:p,onOpenChange:u,children:[e.jsx(ra,{asChild:!0,children:e.jsxs(E,{id:m,disabled:i,variant:"outline",className:Le("w-full justify-start text-left font-normal",!h&&"text-muted-foreground",c&&"border-destructive ring-destructive/20",l),children:[e.jsx(ft,{className:"mr-2 h-4 w-4"}),h?st(h,d):e.jsx("span",{children:n})]})}),e.jsx(na,{className:"w-auto p-0",align:"start",children:e.jsx(Oi,{mode:"single",selected:h,onSelect:b,disabled:j=>!!(g&&jf),initialFocus:!0})})]})})}function Kw({isAdmin:t,dateRange:s,customStartDate:a,customEndDate:r,showCustomDatePicker:n,refreshing:i,onDateRangeChange:l,onCustomStartDateChange:o,onCustomEndDateChange:c,onShowCustomDatePickerChange:d,onApplyCustomDate:m,onResetCustomDates:p,onRefresh:u}){return e.jsx(Z,{className:"shadow-md","data-testid":"dashboard-filters-bar",children:e.jsx(J,{className:"p-4",children:e.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Ua,{className:"w-5 h-5 text-muted-foreground"}),e.jsx("h3",{className:"font-semibold text-gray-900",children:"Filters"}),t&&e.jsx(re,{variant:"outline",className:"bg-purple-50 text-purple-700 border-purple-200","data-testid":"management-badge",children:"Management View"})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-3 w-full sm:w-auto",children:[t?e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ft,{className:"w-4 h-4 text-muted-foreground"}),e.jsxs(He,{value:s,onValueChange:l,"data-testid":"date-range-select",children:[e.jsx(We,{className:"w-[140px]",children:e.jsx(Ge,{placeholder:"Select period"})}),e.jsxs(Ye,{children:[e.jsx(X,{value:"all",children:"All Time"}),e.jsx(X,{value:"today",children:"Today"}),e.jsx(X,{value:"week",children:"This Week"}),e.jsx(X,{value:"month",children:"This Month"}),e.jsx(X,{value:"last7days",children:"Last 7 Days"}),e.jsx(X,{value:"last30days",children:"Last 30 Days"}),e.jsx(X,{value:"custom",children:"Custom Range"})]})]}),s==="custom"&&e.jsxs(aa,{open:n,onOpenChange:d,children:[e.jsx(ra,{asChild:!0,children:e.jsxs(E,{variant:"outline",size:"sm",className:"gap-2","data-testid":"custom-date-trigger",children:[e.jsx(ft,{className:"w-4 h-4"}),a&&r?`${st(a,"MMM d, yyyy")} - ${st(r,"MMM d, yyyy")}`:"Select dates"]})}),e.jsx(na,{className:"w-auto p-4",align:"start",sideOffset:8,"data-testid":"custom-date-picker",children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(se,{htmlFor:"start-date",className:"text-sm font-medium",children:"Start Date"}),e.jsx(ta,{value:a||null,onChange:h=>{const g=h?new Date(h):void 0;g?(o(g),r&&g>r&&c(g)):o(void 0)},maxDate:new Date,placeholderText:"dd/mm/yyyy",className:"w-full","data-testid":"start-date-input"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(se,{htmlFor:"end-date",className:"text-sm font-medium",children:"End Date"}),e.jsx(ta,{value:r||null,onChange:h=>{const g=h?new Date(h):void 0;g?(c(g),a&&gl(h),"data-testid":"date-range-select-user",children:[e.jsx(We,{className:"w-[140px]",children:e.jsx(Ge,{placeholder:"Select period"})}),e.jsxs(Ye,{children:[e.jsx(X,{value:"all",children:"All Time"}),e.jsx(X,{value:"today",children:"Today"}),e.jsx(X,{value:"week",children:"This Week"}),e.jsx(X,{value:"month",children:"This Month"}),e.jsx(X,{value:"last7days",children:"Last 7 Days"}),e.jsx(X,{value:"last30days",children:"Last 30 Days"}),e.jsx(X,{value:"custom",children:"Custom Range"})]})]}),s==="custom"&&e.jsxs(aa,{open:n,onOpenChange:d,children:[e.jsx(ra,{asChild:!0,children:e.jsxs(E,{variant:"outline",size:"sm",className:"gap-2","data-testid":"custom-date-trigger",children:[e.jsx(ft,{className:"w-4 h-4"}),a&&r?`${st(a,"MMM d, yyyy")} - ${st(r,"MMM d, yyyy")}`:"Select dates"]})}),e.jsx(na,{className:"w-auto p-4",align:"start",sideOffset:8,"data-testid":"custom-date-picker",children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(se,{htmlFor:"start-date-user",className:"text-sm font-medium",children:"Start Date"}),e.jsx(ta,{value:a||null,onChange:h=>{const g=h?new Date(h):void 0;g?(o(g),r&&g>r&&c(g)):o(void 0)},maxDate:new Date,placeholderText:"dd/mm/yyyy",className:"w-full","data-testid":"start-date-input-user"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(se,{htmlFor:"end-date-user",className:"text-sm font-medium",children:"End Date"}),e.jsx(ta,{value:r||null,onChange:h=>{const g=h?new Date(h):void 0;g?(c(g),a&&g