PageSourceSearch

https://optipacker.com/_next/static/chunks/6865-6b8e9e64a58fcfcb.js?dpl=dpl_6ZjpxRgCQLn5VnnLGJtW5NS1Fjf5

js optipacker.com collected 2026-10-10 02:43:20 UTC 46,560 bytes, 1 lines download raw bytes

1!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3dd4c443-b95a-4fc7-9124-c53c9cc9396a",e._sentryDebugIdIdentifier="sentry-dbid-3dd4c443-b95a-4fc7-9124-c53c9cc9396a")}catch(e){}}();"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6865],{19779:(e,t,n)=>{n.d(t,{lJ:()=>d,pw:()=>c});var i=n(51777),a=n(28765);let r="We could not load your request status. Try again.",l=["declined","invitation_lapsed"],s=["team","requester","none"];function o(e){return null===e||"string"==typeof e}function d(e){var t;return!!(0,i.u)(e)&&"string"==typeof e.company&&"string"==typeof e.maskedEmail&&o(e.submittedAt)&&o(e.organizationName)&&o(e.invitationExpiresAt)&&(t=e.stage,!!(0,i.u)(t)&&a.Or.some(e=>e===t.current)&&"boolean"==typeof t.complete&&(null===t.exit||l.some(e=>e===t.exit))&&s.some(e=>e===t.waitingOn))}async function u(e){try{var t;let n=await e.json();return(0,i.u)(n)&&!0===n.success&&null!=(t=n.data)?t:null}catch(e){return null}}async function c(e,t){try{let n=await fetch("/api/access-requests/status/".concat(encodeURIComponent(e)),{signal:t,cache:"no-store"});if(404===n.status)return{kind:"not_found"};if(429===n.status)return{kind:"error",message:"Too many requests. Wait a minute, then try again."};let i=await u(n);if(n.ok&&d(i))return{kind:"found",status:i};return{kind:"error",message:r}}catch(e){return(null==t?void 0:t.aborted)||console.error("[AccessRequestStatusClient] Status request failed",{error:e}),{kind:"error",message:r}}}},43799:(e,t,n)=>{n.d(t,{S:()=>y});var i=n(95155),a=n(12115),r=n(75970),l=n(80317),s=n(7291),o=n(13664),d=n(41574),u=n(4615),c=n(64647),h=n(98638),f=n(27001),m=n(81328);async function x(){let e=(0,m.getAuth)().currentUser;if(!e)throw Error("User not authenticated");return e.getIdToken()}function y(e){let{userId:t}=e,[n,m]=(0,a.useState)(!1),[y,v]=(0,a.useState)(!1),[g,p]=(0,a.useState)(null),[j,b]=(0,a.useState)(!1),k=(0,a.useCallback)(async()=>{v(!0),p(null),b(!1);try{let l=await x(),s=await fetch("/api/admin/users/".concat(t,"/export"),{method:"POST",headers:{Authorization:"Bearer ".concat(l),"Content-Type":"application/json"},body:JSON.stringify({includeModels:n,includeResults:!0})});if(!s.ok)try{let t=await s.json();if(t&&"object"==typeof t){var e,i;throw Error(null!=(i=null==(e=t.error)?void 0:e.message)?i:"Export failed (HTTP ".concat(s.status,")"))}}catch(e){if(e instanceof Error&&e.message!=="Export failed (HTTP ".concat(s.status,")"))throw e;throw Error("Export failed (HTTP ".concat(s.status,")"))}let o=s.headers.get("Content-Disposition"),d="optipacker-export-".concat(t,".json");if(o){let e=o.match(/filename="([^"]+)"/);(null==e?void 0:e[1])&&(d=e[1])}var a=await s.blob(),r=d;let u=URL.createObjectURL(a),c=document.createElement("a");c.href=u,c.download=r,document.body.appendChild(c),c.click(),setTimeout(()=>{document.body.removeChild(c),URL.revokeObjectURL(u)},100),b(!0)}catch(e){p(e instanceof Error?e.message:"Failed to export data")}finally{v(!1)}},[t,n]);return(0,i.jsxs)(r.default,{elevation:0,sx:{p:3,border:"1px solid",borderColor:"divider",borderRadius:2},children:[(0,i.jsx)(l.default,{variant:"h6",sx:{fontWeight:600,mb:1},children:"Export My Data"}),(0,i.jsx)(l.default,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"Projects, models, configurations and analysis results as one JSON file."}),(0,i.jsx)(s.A,{control:(0,i.jsx)(o.A,{checked:n,onChange:e=>m(e.target.checked),disabled:y}),label:(0,i.jsxs)(d.default,{children:[(0,i.jsx)(l.default,{variant:"body2",children:"Include 3D model references"}),(0,i.jsx)(l.default,{variant:"caption",color:"text.secondary",children:"Includes model metadata and file references. This may result in a larger download."})]}),sx:{mb:2,alignItems:"flex-start",ml:0}}),g&&(0,i.jsx)(u.A,{severity:"error",sx:{mb:2},onClose:()=>p(null),children:g}),j&&(0,i.jsx)(u.A,{severity:"success",sx:{mb:2},onClose:()=>b(!1),children:"Your data export has been downloaded successfully."}),(0,i.jsx)(c.default,{variant:"outlined",startIcon:y?(0,i.jsx)(h.A,{size:16}):(0,i.jsx)(f.A,{}),onClick:k,disabled:y,children:y?"Generating export...":"Download My Data"})]})}},44691:(e,t,n)=>{n.d(t,{q:()=>R});var i=n(95155),a=n(12115),r=n(75265),l=n(2021),s=n(99496),o=n(41574),d=n(16268),u=n(24215),c=n(41973),h=n(4615),f=n(80317),m=n(66370),x=n(64647),y=n(98638),v=n(56120),g=n(6388),p=n(54463),j=n(31512),b=n(37440),k=n(62995),A=n(56919),w=n(7291),C=n(1123),S=n(50355),T=n(46025),I=n(2218),q=n(85480),z=n(81328),P=n(2823);let E=["Review Data","Choose Handling","Confirm"],O=["Review Data","Confirm"];async function D(){let e=(0,z.getAuth)().currentUser;if(!e)throw Error("User not authenticated");return e.getIdToken()}let W=[{key:"projects",label:"Projects"},{key:"models",label:"3D Models"},{key:"containers",label:"Containers"},{key:"packingConfigs",label:"Packing Configurations"},{key:"packingResults",label:"Packing Results"},{key:"demandPlans",label:"Demand Plans"},{key:"roiAnalyses",label:"ROI Analyses"},{key:"roiOrders",label:"ROI Orders"},{key:"inserts",label:"Inserts"},{key:"pallets",label:"Pallets"},{key:"gridViews",label:"Grid Views"}];function R(e){var t,n,v;let{open:g,onClose:p,userId:j,userEmail:b,isAdminDeletion:k=!1,onDeleted:A}=e,{signOut:w}=(0,P.As)(),C=k?O:E,[S,I]=(0,a.useState)(0),[q,z]=(0,a.useState)(null),[W,R]=(0,a.useState)(!1),[H,F]=(0,a.useState)(null),[U,Y]=(0,a.useState)("transfer"),[M,B]=(0,a.useState)(""),[J,V]=(0,a.useState)(!1),[G,Z]=(0,a.useState)(null),[K,$]=(0,a.useState)(!1),[Q,X]=(0,a.useState)(null),ee=k&&b?b:"DELETE";(0,a.useEffect)(()=>{g&&(I(0),z(null),F(null),Y("transfer"),B(""),V(!1),Z(null),$(!1),X(null))},[g]),(0,a.useEffect)(()=>{g&&j&&(async()=>{R(!0),F(null);try{let n=await D(),i=await fetch("/api/admin/users/".concat(j,"/account"),{headers:{Authorization:"Bearer ".concat(n)}}),a=await i.json();if(!i.ok||!a.success){var e,t;F(null!=(t=null==(e=a.error)?void 0:e.message)?t:"Pre-check failed (HTTP ".concat(i.status,")"));return}z(a.data)}catch(e){F(e instanceof Error?e.message:"Failed to check account status")}finally{R(!1)}})()},[g,j]);let et=(0,a.useCallback)(async()=>{V(!0),Z(null);try{var e,t,n;let i=await D(),a=await fetch("/api/admin/users/".concat(j,"/account"),{method:"DELETE",headers:{Authorization:"Bearer ".concat(i),"Content-Type":"application/json"},body:JSON.stringify({dataHandling:k?"transfer":U})}),r=await a.json();if(!a.ok||!r.success){Z(null!=(n=null==(t=r.error)?void 0:t.message)?n:"Deletion failed (HTTP ".concat(a.status,")")),V(!1);return}(null==(e=r.data)?void 0:e.status)==="scheduled"&&r.data.scheduledDeletionAt&&X(r.data.scheduledDeletionAt),$(!0),k?setTimeout(()=>{null==A||A(),p()},2e3):setTimeout(async()=>{await w()},3e3)}catch(e){Z(e instanceof Error?e.message:"Failed to delete account"),
1V(!1)}},[j,U,k,w,A,p]),en=(null==q||null==(t=q.eligibility)?void 0:t.blockers)&&q.eligibility.blockers.length>0,ei=q&&!en&&!W,ea=S===C.length-1,er=M===ee,el=null==q?void 0:q.fullDataSummary;return(0,i.jsxs)(r.A,{open:g,onClose:J||K?void 0:p,maxWidth:"sm",fullWidth:!0,PaperProps:{sx:{borderTop:"4px solid",borderColor:"error.main"}},children:[(0,i.jsxs)(l.A,{sx:{display:"flex",alignItems:"center",gap:1.5},children:[(0,i.jsx)(T.A,{color:"error"}),(0,i.jsx)("span",{children:k?"Delete User Account":"Delete My Account"})]}),(0,i.jsxs)(s.A,{children:[(0,i.jsx)(o.default,{sx:{mb:3,mt:1},children:(0,i.jsx)(d.A,{activeStep:S,alternativeLabel:!0,children:C.map(e=>(0,i.jsx)(u.A,{children:(0,i.jsx)(c.A,{children:e})},e))})}),K&&(0,i.jsxs)(h.A,{severity:Q?"warning":"success",sx:{my:2},children:[(0,i.jsx)(f.default,{variant:"subtitle2",fontWeight:600,children:Q?"Account deletion scheduled":"Account has been deleted."}),(0,i.jsx)(f.default,{variant:"body2",children:Q?"Your account will be permanently deleted on ".concat(new Date(Q).toLocaleDateString(void 0,{year:"numeric",month:"long",day:"numeric"}),". You can cancel this at any time before then by logging in."):k?"The user account has been permanently removed.":"Your account has been permanently deleted. Redirecting..."}),Q&&(0,i.jsx)(f.default,{variant:"body2",sx:{mt:1,fontStyle:"italic"},children:"Signing out..."})]}),!K&&(0,i.jsxs)(i.Fragment,{children:[0===S&&(0,i.jsx)(N,{preCheckLoading:W,preCheckError:H,preCheck:q,dataSummary:null!=el?el:null,hasBlockers:!!en,userId:j}),!k&&1===S&&(0,i.jsx)(_,{dataHandling:U,onDataHandlingChange:Y,hasOrganization:null!=(v=null==q||null==(n=q.dataSummary)?void 0:n.hasOrganization)&&v}),ea&&(0,i.jsx)(L,{isAdminDeletion:k,dataHandling:k?"transfer":U,dataSummary:null!=el?el:null,requiredText:ee,confirmationText:M,onConfirmationTextChange:B,deleteError:G})]})]}),!K&&(0,i.jsxs)(m.A,{sx:{px:3,pb:2},children:[(0,i.jsx)(x.default,{onClick:p,disabled:J,children:"Cancel"}),S>0&&(0,i.jsx)(x.default,{onClick:()=>I(e=>e-1),disabled:J,children:"Back"}),(0,i.jsx)(o.default,{sx:{flex:1}}),!ea&&(0,i.jsx)(x.default,{variant:"contained",onClick:()=>I(e=>e+1),disabled:0===S&&!ei,children:"Next"}),ea&&(0,i.jsx)(x.default,{variant:"contained",color:"error",onClick:et,disabled:!er||J,startIcon:J?(0,i.jsx)(y.A,{size:16,color:"inherit"}):(0,i.jsx)(T.A,{}),children:J?"Deleting...":"Delete Account"})]})]})}function N(e){let{preCheckLoading:t,preCheckError:n,preCheck:a,dataSummary:r,hasBlockers:l,userId:s}=e;return t?(0,i.jsx)(o.default,{sx:{display:"flex",justifyContent:"center",py:4},children:(0,i.jsx)(q.default,{size:"small"})}):n?(0,i.jsx)(h.A,{severity:"error",sx:{my:2},children:n}):a?(0,i.jsxs)(o.default,{sx:{display:"flex",flexDirection:"column",gap:2},children:[(0,i.jsx)(f.default,{variant:"body2",color:"text.secondary",children:"Review the data associated with this account before proceeding."}),r&&(0,i.jsx)(v.A,{size:"small",sx:{"& td":{py:.75}},children:(0,i.jsxs)(g.A,{children:[W.map(e=>{let{key:t,label:n}=e,a=r[t];return null!=a&&"object"==typeof a&&"count"in a&&a.count>0?(0,i.jsxs)(p.A,{children:[(0,i.jsx)(j.A,{sx:{border:0,pl:0},children:(0,i.jsx)(f.default,{variant:"body2",children:n})}),(0,i.jsx)(j.A,{align:"right",sx:{border:0,pr:0},children:(0,i.jsx)(f.default,{variant:"body2",fontWeight:600,children:a.count})})]},t):null}),r.totalDocuments>0&&(0,i.jsxs)(p.A,{children:[(0,i.jsx)(j.A,{sx:{border:0,pl:0,pt:1.5},children:(0,i.jsx)(f.default,{variant:"subtitle2",fontWeight:700,children:"Total"})}),(0,i.jsx)(j.A,{align:"right",sx:{border:0,pr:0,pt:1.5},children:(0,i.jsx)(f.default,{variant:"subtitle2",fontWeight:700,children:r.totalDocuments})})]})]})}),!r&&a.dataSummary&&(0,i.jsx)(v.A,{size:"small",sx:{"& td":{py:.75}},children:(0,i.jsxs)(g.A,{children:[a.dataSummary.projects>0&&(0,i.jsxs)(p.A,{children:[(0,i.jsx)(j.A,{sx:{border:0,pl:0},children:"Projects"}),(0,i.jsx)(j.A,{align:"right",sx:{border:0,pr:0},children:(0,i.jsx)("strong",{children:a.dataSummary.projects})})]}),a.dataSummary.models>0&&(0,i.jsxs)(p.A,{children:[(0,i.jsx)(j.A,{sx:{border:0,pl:0},children:"3D Models"}),(0,i.jsx)(j.A,{align:"right",sx:{border:0,pr:0},children:(0,i.jsx)("strong",{children:a.dataSummary.models})})]}),a.dataSummary.packingConfigs>0&&(0,i.jsxs)(p.A,{children:[(0,i.jsx)(j.A,{sx:{border:0,pl:0},children:"Packing Configurations"}),(0,i.jsx)(j.A,{align:"right",sx:{border:0,pr:0},children:(0,i.jsx)("strong",{children:a.dataSummary.packingConfigs})})]})]})}),l&&(0,i.jsxs)(h.A,{severity:"error",icon:(0,i.jsx)(I.A,{}),children:[(0,i.jsx)(f.default,{variant:"subtitle2",fontWeight:600,gutterBottom:!0,children:"Cannot delete this account"}),a.eligibility.blockers.map((e,t)=>(0,i.jsx)(f.default,{variant:"body2",children:e},t))]}),!l&&(0,i.jsxs)(f.default,{variant:"body2",color:"text.secondary",children:[(0,i.jsx)(b.A,{href:"/dashboard/profile",underline:"always",sx:{fontWeight:600},children:"Export your data"})," ","before deleting your account."]})]}):null}function _(e){let{dataHandling:t,onDataHandlingChange:n,hasOrganization:a}=e;return(0,i.jsxs)(o.default,{sx:{display:"flex",flexDirection:"column",gap:2},children:[(0,i.jsx)(f.default,{variant:"body2",color:"text.secondary",children:"What should happen to your data?"}),(0,i.jsx)(k.A,{children:(0,i.jsxs)(A.A,{value:t,onChange:e=>n(e.target.value),children:[(0,i.jsx)(w.A,{value:"transfer",control:(0,i.jsx)(C.A,{}),disabled:!a,label:(0,i.jsxs)(o.default,{children:[(0,i.jsx)(f.default,{variant:"body2",fontWeight:600,children:"Transfer to organization"}),(0,i.jsx)(f.default,{variant:"caption",color:"text.secondary",children:"Your projects, models, and analyses will be transferred to your organization's admin. Other members will retain access."})]}),sx:{alignItems:"flex-start",mb:1.5}}),(0,i.jsx)(w.A,{value:"delete",control:(0,i.jsx)(C.A,{}),label:(0,i.jsxs)(o.default,{children:[(0,i.jsx)(f.default,{variant:"body2",fontWeight:600,children:"Delete everything"}),(0,i.jsx)(f.default,{variant:"caption",color:"text.secondary",children:"All your data will be permanently deleted. This cannot be undone."})]}),sx:{alignItems:"flex-start"}})]})}),"delete"===t&&(0,i.jsx)(h.A,{severity:"warning",icon:(0,i.jsx)(I.A,{}),children:(0,i.jsx)(f.default,{variant:"body2",children:"This will permanently remove all projects, models, configurations, and analysis results you created. No one will be able to access them."})})]})}function L(e){var t;let{isAdminDeletion:n,dataHandling:a,dataSummary:r,requiredText:l,confirmationText:s,onConfirmationTextChange:d,deleteError:u}=e,c=null!=(t=null==r?void 0:r.totalDocuments)?t:0;return(0,i.jsxs)(o.default,{sx:{display:"flex",flexDirection:"column",gap:2},children:[(0,i.jsxs)(h.A,{severity:"error",icon:(0,i.jsx)(I.A,{}),sx:{"& .MuiAlert-message":{width:"100%"}},children:[(0,i.jsx)(f.default,{variant:"subtitle2",fontWeight:700,gutterBottom:!0,children:"This action is permanent and cannot be undone."}),(0,i.jsxs)(o.default,{component:"ul",sx:{m:0,pl:2,"& li":{mb:.5}},children:[(0,i.jsx)("li",{children:(0,i.jsx)(f.default,{variant:"body2",children:n?"The Firebase account will be permanently deleted":"Your Firebase account will be permanently deleted"})}),(0,i.jsx)("li",{children:(0,i.jsx)(f.default,{variant:"body2",children:n?"Organization membership will be removed":"Your organization membership will be removed"})}),(0,i.jsx)("li",{children:(0,i.jsx)(f.default,{variant:"body2",children:"transfer"===a?"".concat(c," item").concat(1!==c?"s":""," will be transferred to the organization"):"".concat(c," item").concat(1!==c?"s":""," will be permanently deleted")})})]})]}),(0,i.jsxs)(o.default,{children:[(0,i.jsxs)(f.default,{variant:"body2",sx:{mb:1},children:["Type ",(0,i.jsx)("strong",{children:l})," to confirm:"]}),(0,i.jsx)(S.A,{fullWidth:!0,size:"small",value:s,onChange:e=>d(e.target.value),placeholder:l,autoComplete:"off",sx:{"& .MuiOutlinedInput-root":{"&.Mui-focused fieldset":{borderColor:"error.main"}}}})]}),u&&(0,i.jsx)(h.A,{severity:"error",sx:{mt:1},children:u})]})}},54126:(e,t,n)=>{n.d(t,{Jq:()=>i,ZH:()=>a,oe:()=>r});let i={packaging:"Packaging",automotive:"Automotive",electronics:"Electronics",food_beverage:"Food & Beverage",pharma_medical:"Pharma & Medical",consumer_goods:"Consumer Goods",industrial:"Industrial Manufacturing",logistics:"Logistics & Distribution",other:"Other"},a={optimize_packaging:"Optimize Packaging",cost_analysis:"Cost Analysis",supplier_management:"Supplier Management",pallet_optimization:"Pallet Optimization",insert_design:"Insert Design",other:"Other"},r={search_engine:"Search Engine",social_media:"Social Media",referral:"Referral",trade_show:"Trade Show",advertisement:"Advertisement",other:"Other"}},57735:(e,t,n)=>{n.d(t,{J:()=>eO});var i=n(95155),a=n(12115),r=n(41574),l=n(80317),s=n(2823),o=n(85480),d=n(52619),u=n.n(d),c=n(75970),h=n(64647),f=n(33837),m=n(37440),x=n(35346),y=n(44691),v=n(43799);let g="awaiting-data-export",p={color:"text.secondary",fontSize:"0.875rem",minHeight:44,display:"inline-flex",alignItems:"center","&:hover":{color:"var(--optipacker-teal)"}};function j(e){let{onClick:t,children:n,expanded:a}=e;return(0,i.jsx)(m.A,{component:"button",type:"button",underline:"hover",onClick:t,"aria-expanded":a,"aria-controls":void 0===a?void 0:g,sx:p,children:n})}function b(e){let{userId:t,email:n,onSignOut:s}=e,[o,d]=(0,a.useState)(!1),[c,h]=(0,a.useState)(!1);return(0,i.jsxs)(r.default,{component:"nav","aria-label":"Account",sx:{mt:4,pt:2,borderTop:"1px solid",borderColor:"divider"}
1,children:[n&&(0,i.jsxs)(l.default,{variant:"caption",sx:{display:"block",mb:1,color:"text.secondary"},children:["Signed in as ",n]}),(0,i.jsxs)(r.default,{sx:{display:"flex",flexWrap:"wrap",justifyContent:"center",columnGap:2.5,rowGap:.5},children:[(0,i.jsx)(j,{onClick:()=>{s()},children:"Sign out"}),t&&(0,i.jsx)(j,{expanded:o,onClick:()=>d(e=>!e),children:"Export my data"}),t&&(0,i.jsx)(j,{onClick:()=>h(!0),children:"Delete my account"}),(0,i.jsx)(m.A,{component:u(),href:"/privacy",underline:"hover",sx:p,children:"Privacy Policy"})]}),t&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(x.A,{in:o,unmountOnExit:!0,children:(0,i.jsx)(r.default,{id:g,sx:{mt:2,textAlign:"left"},children:(0,i.jsx)(v.S,{userId:t})})}),(0,i.jsx)(y.q,{open:c,onClose:()=>h(!1),userId:t,userEmail:null!=n?n:void 0})]})]})}var k=n(25148);function A(e){let{onCheckAgain:t}=e,[n,r]=(0,a.useState)(!1),l=(0,a.useCallback)(async()=>{r(!0);try{await t()}finally{setTimeout(()=>r(!1),500)}},[t]);return(0,i.jsx)(h.default,{variant:"outlined",size:"small",startIcon:(0,i.jsx)(k.A,{}),onClick:()=>{l()},disabled:n,sx:{textTransform:"none",minHeight:44},children:n?"Checking...":"Check again"})}var w=n(91665),C=n(27122),S=n(4615),T=n(50355),I=n(62995),q=n(44177),z=n(81137),P=n(23405),E=n(65654),O=n(22585),D=n(35348),W=n(7291),R=n(13664),N=n(66088),_=n(70692),L=n(39390),H=n(28516),F=n(54126);let U={fullName:120,companyName:160,jobTitle:120,companyWebsite:200,notes:2500};var Y=n(58833),M=n(76732);let B=new Set(["not-found","permission-denied"]);class J{static async loadOnboardingProfile(e){try{var t;let n=(0,L.doc)(H.db,"pending-users",e),i=await (0,L.getDoc)(n);if(!i.exists())return console.warn("[OnboardingProfileService] No pending-user doc found; caller is expected to self-heal (provision + reload) for:",e),null;return null!=(t=i.data().onboardingProfile)?t:null}catch(t){throw console.error("[OnboardingProfileService] Failed to load onboarding profile:",{uid:e,error:t}),t}}static async saveOnboardingProfile(e,t){let n=(0,L.doc)(H.db,"pending-users",e);try{await (0,L.updateDoc)(n,{onboardingProfile:t})}catch(r){let i=r.code;if(!i||!B.has(i))throw console.error("[OnboardingProfileService] Failed to save onboarding profile:",{uid:e,error:r}),r;let a=Y.u.getCurrentUser();if(!a)throw console.error("[OnboardingProfileService] Failed to save onboarding profile:",{uid:e,error:r}),r;await M.s.provisionCurrentUser(a),await (0,L.updateDoc)(n,{onboardingProfile:t})}}static async submitAccessRequest(e){let t=Y.u.getCurrentUser();if(!t)return{kind:"not-signed-in"};try{var n;let i=await t.getIdToken(),a=await fetch("/api/access-requests",{method:"POST",headers:{Authorization:"Bearer ".concat(i),"Content-Type":"application/json"},body:JSON.stringify((n=t.email,{name:e.fullName.trim(),...n?{email:n}:{},company:e.companyName.trim(),jobTitle:e.jobTitle.trim(),message:function(e){var t,n,i;let a=e.useCases.map(e=>{var t;return null!=(t=F.ZH[e])?t:e}),r=null==(t=e.companyWebsite)?void 0:t.trim(),l=["Use cases: ".concat(a.join(", ")),...e.industry?["Industry: ".concat(null!=(i=F.Jq[e.industry])?i:e.industry)]:[],"Country: ".concat(e.country),...r?["Company website: ".concat(r)]:[]],s=null==(n=e.notes)?void 0:n.trim();return s?"".concat(l.join("\n"),"\n\nAnything else: ").concat(s):l.join("\n")}(e),source:"awaiting-organization"}))}),r=a.ok?null:await a.json().catch(()=>null),l=function(e,t,n){if(e>=200&&e<300)return{kind:"submitted"};let i="object"==typeof t&&null!==t?t:{};return 403===e&&"EMAIL_NOT_VERIFIED"===i.code?{kind:"email-not-verified"}:409===e?"INVITATION_PENDING"===i.code?{kind:"invitation-pending"}:"ALREADY_IN_ORGANIZATION"===i.code?{kind:"already-in-organization"}:"invited"===i.requestStatus||"joined"===i.requestStatus?{kind:"already-invited"}:"declined"===i.requestStatus?{kind:"declined"}:{kind:"already-handled"}:429===e?{kind:"rate-limited",retryAfterMinutes:null!==n&&/^\d+$/.test(n.trim())?Math.max(1,Math.ceil(Number(n.trim())/60)):null}:401===e?{kind:"not-signed-in"}:{kind:"failed"}}(a.status,r,a.headers.get("Retry-After"));return"failed"===l.kind&&console.warn("[OnboardingProfileService] Access request rejected",{uid:t.uid,status:a.status}),l}catch(e){return console.error("[OnboardingProfileService] Access request failed:",{uid:t.uid,error:e}),{kind:"failed"}}}}let V=[{code:"CZ",name:"Czech Republic"},{code:"DE",name:"Germany"},{code:"AT",name:"Austria"},{code:"PL",name:"Poland"},{code:"SK",name:"Slovakia"},{code:"HU",name:"Hungary"},{code:"FR",name:"France"},{code:"IT",name:"Italy"},{code:"ES",name:"Spain"},{code:"NL",name:"Netherlands"},{code:"BE",name:"Belgium"},{code:"CH",name:"Switzerland"},{code:"GB",name:"United Kingdom"},{code:"US",name:"United States"},{code:"CA",name:"Canada"},{code:"CN",name:"China"},{code:"JP",name:"Japan"},{code:"KR",name:"South Korea"},{code:"TW",name:"Taiwan"},{code:"IN",name:"India"},{code:"AU",name:"Australia"}],G=Object.entries(F.Jq),Z=Object.entries(F.ZH),K=Object.entries(F.oe);function $(e){let{uid:t,displayName:n,onProfileLoaded:s,onProfileSaved:o,saveLabel:d="Save Profile"}=e,[u,f]=(0,a.useState)(""),[m,x]=(0,a.useState)(""),[y,v]=(0,a.useState)(""),[g,p]=(0,a.useState)(""),[j,b]=(0,a.useState)(""),[k,A]=(0,a.useState)(""),[w,L]=(0,a.useState)(""),[H,F]=(0,a.useState)([]),[B,$]=(0,a.useState)(""),[Q,X]=(0,a.useState)(""),[ee,et]=(0,a.useState)(!0),[en,ei]=(0,a.useState)(!1),[ea,er]=(0,a.useState)(null),[el,es]=(0,a.useState)(null),[eo,ed]=(0,a.useState)(!1);(0,a.useEffect)(()=>{let e=!1,i=e=>{var t,n,i,a,r,l,o,d,u,c;f(null!=(t=e.fullName)?t:""),x(null!=(n=e.companyName)?n:""),v(null!=(i=e.companyWebsite)?i:""),p(null!=(a=e.jobTitle)?a:""),b(null!=(r=e.industry)?r:""),A(null!=(l=e.country)?l:""),L(null!=(o=e.taxId)?o:""),F(null!=(d=e.useCases)?d:[]),$(null!=(u=e.referralSource)?u:""),X(null!=(c=e.notes)?c:""),null==s||s(e)};return(async()=>{try{let a=await J.loadOnboardingProfile(t);if(e)return;if(a)return void i(a);let r=Y.u.getCurrentUser();if(r)try{if(await M.s.provisionCurrentUser(r),e)return;let n=await J.loadOnboardingProfile(t);if(e)return;if(n)return void i(n)}catch(t){if(e)return;C.Cp(t)}n&&f(n)}catch(t){if(e)return;C.Cp(t),console.error("[OnboardingProfileForm] Failed to load profile:",t),es("We couldn't load your saved profile — you can still fill it in below.")}finally{e||et(!1)}})(),()=>{e=!0}},[t,n]);let eu=(0,a.useCallback)(e=>{F(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e]),ed(!0)},[]),ec=(0,a.useCallback)(async()=>{var e,n,i;if(er(null),ed(!0),!j)return void er("Please select an industry.");let a={fullName:u.trim(),companyName:m.trim(),jobTitle:g.trim(),industry:j,country:k,useCases:H,updatedAt:new Date().toISOString(),isComplete:!1,...y.trim()?{c
1ompanyWebsite:y.trim()}:{},...w.trim()?{taxId:w.trim()}:{},...B?{referralSource:B}:{},...Q.trim()?{notes:Q.trim()}:{}},r=!!((null==(e=a.fullName)?void 0:e.trim())&&(null==(n=a.companyName)?void 0:n.trim())&&(null==(i=a.jobTitle)?void 0:i.trim())&&a.industry&&a.country&&a.useCases&&a.useCases.length>0);if(a.isComplete=r,!r)return void er("Please fill in all required fields (marked with *).");ei(!0);try{await J.saveOnboardingProfile(t,a)}catch(e){C.Cp(e),er(function(e){let t=e.code;return"permission-denied"===t||"not-found"===t?"We're still finishing your account setup. Please try saving again in a few seconds.":"unavailable"===t||"network-request-failed"===t?"Connection problem — check your network and try again.":"We couldn't save your profile. Our team has been notified — please try again in a moment."}(e)),ei(!1);return}try{await (null==o?void 0:o(a))}finally{ei(!1)}},[t,u,m,y,g,j,k,w,H,B,Q,o]);return ee?(0,i.jsx)(c.default,{variant:"outlined",sx:{p:3,mb:3,textAlign:"center"},children:(0,i.jsx)(l.default,{variant:"body2",color:"text.secondary",children:"Finishing account setup…"})}):(0,i.jsx)(i.Fragment,{children:(0,i.jsxs)(c.default,{variant:"outlined",sx:{p:{xs:2,sm:3},mb:3,textAlign:"left"},children:[(0,i.jsx)(l.default,{variant:"h6",fontWeight:600,sx:{mb:.5},children:"Tell us about yourself"}),(0,i.jsx)(l.default,{variant:"body2",color:"text.secondary",sx:{mb:3},children:"When you save your profile, we send it to the OptiPacker team as your access request."}),el&&(0,i.jsx)(S.A,{severity:"warning",sx:{mb:2},onClose:()=>es(null),children:el}),ea&&(0,i.jsx)(S.A,{severity:"error",sx:{mb:2},onClose:()=>er(null),children:ea}),(0,i.jsxs)(N.default,{container:!0,spacing:2,children:[(0,i.jsx)(N.default,{size:{xs:12,sm:6},children:(0,i.jsx)(T.A,{label:"Full Name",value:u,onChange:e=>{f(e.target.value),ed(!0)},required:!0,fullWidth:!0,size:"small",slotProps:{htmlInput:{maxLength:U.fullName}},error:eo&&!u.trim(),helperText:eo&&!u.trim()?"Required":void 0})}),(0,i.jsx)(N.default,{size:{xs:12,sm:6},children:(0,i.jsx)(T.A,{label:"Job Title",value:g,onChange:e=>{p(e.target.value),ed(!0)},required:!0,fullWidth:!0,size:"small",slotProps:{htmlInput:{maxLength:U.jobTitle}},error:eo&&!g.trim(),helperText:eo&&!g.trim()?"Required":void 0})}),(0,i.jsx)(N.default,{size:{xs:12,sm:6},children:(0,i.jsx)(T.A,{label:"Company Name",value:m,onChange:e=>{x(e.target.value),ed(!0)},required:!0,fullWidth:!0,size:"small",slotProps:{htmlInput:{maxLength:U.companyName}},error:eo&&!m.trim(),helperText:eo&&!m.trim()?"Required":void 0})}),(0,i.jsx)(N.default,{size:{xs:12,sm:6},children:(0,i.jsx)(T.A,{label:"Company Website",value:y,onChange:e=>{v(e.target.value),ed(!0)},fullWidth:!0,size:"small",placeholder:"https://...",slotProps:{htmlInput:{maxLength:U.companyWebsite}}})}),(0,i.jsx)(N.default,{size:{xs:12,sm:6},children:(0,i.jsxs)(I.A,{fullWidth:!0,size:"small",required:!0,error:eo&&!j,children:[(0,i.jsx)(q.A,{children:"Industry"}),(0,i.jsx)(z.A,{value:j,label:"Industry",onChange:e=>{b(e.target.value),ed(!0)},children:G.map(e=>{let[t,n]=e;return(0,i.jsx)(P.A,{value:t,children:n},t)})}),eo&&!j&&(0,i.jsx)(E.A,{children:"Required"})]})}),(0,i.jsx)(N.default,{size:{xs:12,sm:6},children:(0,i.jsxs)(I.A,{fullWidth:!0,size:"small",required:!0,error:eo&&!k,children:[(0,i.jsx)(q.A,{children:"Country"}),(0,i.jsx)(z.A,{value:k,label:"Country",onChange:e=>{A(e.target.value),ed(!0)},children:V.map(e=>(0,i.jsx)(P.A,{value:e.code,children:e.name},e.code))}),eo&&!k&&(0,i.jsx)(E.A,{children:"Required"})]})}),(0,i.jsx)(N.default,{size:{xs:12},children:(0,i.jsx)(T.A,{label:"Tax ID / VAT Number",value:w,onChange:e=>{L(e.target.value),ed(!0)},fullWidth:!0,size:"small",helperText:"VAT or company tax registration number — helps speed up procurement setup"})}),(0,i.jsx)(N.default,{size:{xs:12},children:(0,i.jsxs)(I.A,{component:"fieldset",required:!0,error:eo&&0===H.length,children:[(0,i.jsx)(O.A,{component:"legend",sx:{mb:1},children:"What do you plan to use OptiPacker for?"}),(0,i.jsx)(D.A,{row:!0,children:Z.map(e=>{let[t,n]=e;return(0,i.jsx)(W.A,{control:(0,i.jsx)(R.A,{checked:H.includes(t),onChange:()=>eu(t),size:"small"}),label:n,sx:{minWidth:180}},t)})}),eo&&0===H.length&&(0,i.jsx)(E.A,{children:"Select at least one use case"})]})}),(0,i.jsx)(N.default,{size:{xs:12,sm:6},children:(0,i.jsxs)(I.A,{fullWidth:!0,size:"small",children:[(0,i.jsx)(q.A,{children:"How did you hear about us?"}),(0,i.jsxs)(z.A,{value:B,label:"How did you hear about us?",onChange:e=>{$(e.target.value),ed(!0)},children:[(0,i.jsx)(P.A,{value:"",children:(0,i.jsx)("em",{children:"Prefer not to say"})}),K.map(e=>{let[t,n]=e;return(0,i.jsx)(P.A,{value:t,children:n},t)})]})]})}),(0,i.jsx)(N.default,{size:{xs:12},children:(0,i.jsx)(T.A,{label:"Anything else we should know?",value:Q,onChange:e=>{X(e.target.value),ed(!0)},fullWidth:!0,size:"small",multiline:!0,rows:2,placeholder:"Special requirements, expected volume, timeline, etc.",slotProps:{htmlInput:{maxLength:U.notes}}})})]}),(0,i.jsx)(r.default,{sx:{mt:3,display:"flex",justifyContent:"flex-end"},children:(0,i.jsx)(h.default,{variant:"contained",startIcon:(0,i.jsx)(_.A,{}),onClick:ec,disabled:en,sx:{textTransform:"none",minHeight:44},children:en?"Saving...":d})})]})})}var Q=n(92880);let X="We saved your profile, but we could not send your request.",ee=new Set(["submitted","declined","already-invited","already-handled"]),et={submitted:{severity:"success",title:"Your request is 
1with the OptiPacker team.",text:"We will email you after the team reviews it."},"invitation-pending":{severity:"info",title:"You already have an invitation.",text:"We saved your profile but did not send a request. Select Check again to show the invitation, or open the invite link in your email.",action:{kind:"check-again"}},"email-not-verified":{severity:"warning",title:X,text:"Verify your email address first. Use the verification buttons on this page, then send the request again."},"already-in-organization":{severity:"info",title:"Your account already belongs to an organization.",text:"We saved your profile but did not send a request. Select Check again to open your workspace.",action:{kind:"check-again"}},"already-invited":{severity:"info",title:"The OptiPacker team already invited you.",text:"We saved your profile but did not send a new request. Open the invite link in your email."},declined:{severity:"info",title:"The OptiPacker team declined your access request.",text:"We saved your profile but did not send a new request. Contact us if you need help.",action:{kind:"link",label:"Contact us",href:"/contact"}},"already-handled":{severity:"info",title:"The OptiPacker team already answered your request.",text:"We saved your profile but did not send a new request. Look in your email for an invitation or a reply."},"not-signed-in":{severity:"warning",title:X,text:"Your session ended. Sign in again, then send the request."},failed:{severity:"error",title:X,text:"Send the request again."}};function en(e){var t,n,a;let{outcome:r,trackShowsRequest:l,onCheckAgain:s}=e;if(l&&ee.has(r.kind))return null;let o="rate-limited"===r.kind?{severity:"warning",title:X,text:null===(a=r.retryAfterMinutes)?"There were too many requests. Try again later.":"There were too many requests. Try again in ".concat(a," ").concat(1===a?"minute":"minutes",".")}:et[r.kind],d=(null==(t=o.action)?void 0:t.kind)==="link"?(0,i.jsx)(h.default,{component:u(),href:o.action.href,color:"inherit",size:"small",children:o.action.label}):(null==(n=o.action)?void 0:n.kind)==="check-again"?(0,i.jsx)(h.default,{color:"inherit",size:"small",onClick:()=>{s()},children:"Check again"}):void 0;return(0,i.jsxs)(S.A,{severity:o.severity,sx:{mb:2,textAlign:"left"},role:"status",action:d,children:[(0,i.jsx)(Q.A,{children:o.title}),o.text]})}function ei(e){let{uid:t,displayName:n,intake:a,mode:s,requestCompany:o,trackShowsRequest:d,onCheckAgain:u}=e,f="form"===s||"editable"===s&&a.editing;return(0,i.jsxs)(r.default,{sx:{textAlign:"left"},children:[a.requestOutcome&&(0,i.jsx)(en,{outcome:a.requestOutcome,trackShowsRequest:d,onCheckAgain:u}),!f&&(0,i.jsxs)(c.default,{variant:"outlined",sx:{p:2,display:"flex",alignItems:"center",justifyContent:"space-between",gap:1},children:[(0,i.jsxs)(l.default,{variant:"body2",children:[(0,i.jsx)(r.default,{component:"span",sx:{fontWeight:600},children:"Your request:"})," ",(0,i.jsx)("span",{children:function(e,t){var n,i,a,r,l,s;let o=null!=(l=null==(i=e.profile)||null==(n=i.jobTitle)?void 0:n.trim())?l:"",d=null!=(s=null==(r=e.profile)||null==(a=r.companyName)?void 0:a.trim())?s:"";return[o,d.length>0?d:null!=t?t:""].filter(e=>e.length>0).join(" \xb7 ")}(a,o)})]}),"editable"===s&&(0,i.jsx)(h.default,{size:"small",startIcon:(0,i.jsx)(w.A,{}),onClick:a.openForm,sx:{textTransform:"none",flexShrink:0,minHeight:44},children:"Edit"})]}),(0,i.jsx)(x.A,{in:f,children:(0,i.jsx)($,{uid:t,displayName:n,onProfileLoaded:a.handleProfileLoaded,onProfileSaved:a.handleProfileSaved,saveLabel:"form"===s?"Send request":"Update request"})})]})}var ea=n(70507);function er(e){let{view:t}=e;return(0,i.jsxs)(r.default,{sx:{display:"grid",gap:2.5},children:[(0,i.jsx)(l.default,{variant:"h5",component:"h1",fontWeight:600,sx:{color:"var(--text-primary)"},children:t.heading}),(0,i.jsx)(ea.Nh,{state:t.state,stages:t.stages,meta:t.meta,next:t.next,label:"Your onboarding progress"}),t.hint&&(0,i.jsx)(l.default,{variant:"body2",sx:{color:"var(--text-secondary)",textAlign:"left"},children:t.hint})]})}let el={severity:"success",message:'We sent a verification email. Open the link in it, then select "I have verified".'},es={severity:"warning",message:"Your email address is not verified yet. Open the link in the email, then try again."};function eo(e){let t="object"==typeof e&&null!==e?e.message:null;return{severity:"error",message:"string"==typeof t?t:"Something went wrong. Try again."}}function ed(e){let{refreshToken:t}=e,{busy:n,notice:l,resend:s,confirm:o}=function(e){let[t,n]=(0,a.useState)(null),[i,r]=(0,a.useState)(null);return{busy:t,notice:i,resend:(0,a.useCallback)(async()=>{n("resend"),r(null);try{await Y.u.sendVerificationEmail("/dashboard"),r(el)}catch(e){r(eo(e))}finally{n(null)}},[]),confirm:(0,a.useCallback)(async()=>{n("confirm"),r(null);try{await Y.u.reloadCurrentUser()?await e():r(es)}catch(e){r(eo(e))}finally{n(null)}},[e])}}(t);return(0,i.jsxs)(r.default,{sx:{mb:3,textAlign:"left"},children:[(0,i.jsxs)(S.A,{severity:"info",sx:{mb:+!!l},children:["Verify your email to see invitations for this address.",(0,i.jsxs)(r.default,{sx:{mt:1,display:"flex",flexWrap:"wrap",gap:1},children:[(0,i.jsx)(h.default,{size:"small",variant:"outlined",onClick:()=>{s()},disabled:null!==n,children:"resend"===n?"Sending...":"Resend verification email"}),(0,i.jsx)(h.default,{size:"small",onClick:()=>{o()},disabled:null!==n,children:"confirm"===n?"Checking...":"I have verified"})]})]}),l&&(0,i.jsx)(S.A,{severity:l.severity,role:"status",children:l.message})]})}var eu=n(74193),ec=n(42271),eh=n(16197),ef=n(61762);let em={expired:"This invitation has expired. Ask your administrator for a new invitation.",revoked:"This invitation was withdrawn. Ask your administrator for a new invitation.",accepted:"This invitation was already accepted. Select Check again.",not_found:"We could not find this invitation. Ask your administrator for a new invitation."};function ex(e){let{error:t,invitation:n,onClose:a}=e,r="email_not_verified"===t.kind;
1return(0,i.jsx)(S.A,{severity:r?"warning":"error",sx:{textAlign:"left",width:"100%"},onClose:a,action:r?(0,i.jsx)(h.default,{component:u(),href:"/invite/".concat(n.inviteCode),color:"inherit",size:"small",children:"Open invitation"}):void 0,children:function(e){switch(e.kind){case"email_not_verified":return"Verify your email address before you accept. Open the invitation to send a new verification email.";case"email_mismatch":return"This invitation is for a different email address. Sign in with the invited address.";case"already_accepted":return"You already accepted this invitation. Select Check again.";case"already_member":return"You are already a member of this organization. Select Check again.";case"already_assigned":return"Your account already belongs to another organization. Ask your administrator for help.";case"signed_out":return"Your session has ended. Sign in again to continue.";case"unavailable":return em[e.reason];case"error":return e.message;default:return e}}(t)})}function ey(e){let{state:t,invitation:n}=e,{state:a}=(0,eh.T)(n.inviteCode),s="ready"===a.status?a.preview:null;return(0,i.jsxs)(r.default,{sx:{display:"grid",justifyItems:"center",gap:1.5},children:[s&&(0,i.jsx)(eu.default,{label:"Role: ".concat((0,ef.gz)(s.effectiveRole)),size:"small",color:"primary",variant:"outlined"}),(null==s?void 0:s.firstMemberPromotion)&&(0,i.jsx)(l.default,{variant:"body2",sx:{color:"var(--text-secondary)"},children:ef.PR}),(0,i.jsx)(h.default,{variant:"contained",size:"large",startIcon:t.accepting?void 0:(0,i.jsx)(ec.A,{}),onClick:()=>{t.accept()},disabled:t.accepting,sx:{textTransform:"none",minHeight:44},children:t.accepting?"Joining...":"Join ".concat(n.organizationName)}),t.acceptError&&(0,i.jsx)(ex,{error:t.acceptError,invitation:n,onClose:t.clearAcceptError})]})}function ev(e){let{state:t}=e;return t.invitation?(0,i.jsx)(ey,{state:t,invitation:t.invitation}):t.checkFailed?(0,i.jsx)(S.A,{severity:"warning",sx:{textAlign:"left"},action:(0,i.jsx)(h.default,{color:"inherit",size:"small",onClick:t.retryCheck,children:"Retry"}),children:"We could not check for pending invitations. Retry, or open the invite link in your email."}):null}var eg=n(37061),ep=n(28765),ej=n(565),eb=n(39031),ek=n(68367);function eA(e){return e?(0,ek.eo)(e):null}function ew(e){var t,n;return null!=(n=null==(t=eA(e))?void 0:t.toLocaleDateString("en-GB",{day:"numeric",month:"long",year:"numeric"}))?n:null}var eC=n(19779),eS=n(51777);async function eT(e){try{return await e.json()}catch(e){return null}}async function eI(){let e=await Y.u.getCurrentIdToken();if(!e)return{kind:"failed"};let t=await fetch("/api/access-requests/mine",{headers:{Authorization:"Bearer ".concat(e)},cache:"no-store"}),n=await eT(t);return t.ok&&(0,eS.u)(n)&&!0===n.success?null===n.data?{kind:"ok",status:null}:(0,eC.lJ)(n.data)?{kind:"ok",status:n.data}:{kind:"failed"}:{kind:"failed"}}async function eq(){try{return await eI()}catch(e){return console.warn("[useAccessRequestStatus] Could not load the access request status:",e),{kind:"failed"}}}var ez=n(13906);let eP=new Set(["submitted","invitation-pending","already-in-organization","already-invited","declined","already-handled"]);function eE(){var e,t,n,d,m;let{user:x,refreshToken:y,signOut:v}=(0,s.As)(),g=function(){var e,t,n,i;let{user:r,refreshToken:l}=(0,s.As)(),o=(0,eg.ZY)(),d=(0,eg.XI)(),u=(0,a.useRef)(!1);(0,a.useEffect)(()=>{let e;if(!d||!(null==o?void 0:o.uid)||o.organizationId)return;u.current=!1;let t=(0,L.doc)(H.db,"pending-users",o.uid);try{e=(0,L.onSnapshot)(t,e=>{if(!e.exists())return;let t=e.data();(null==t?void 0:t.organizationId)&&!u.current&&(u.current=!0,eg.nc.getState().refreshToken())},e=>{})}catch(e){}return()=>{null==e||e()}},[d,null==o?void 0:o.uid,null==o?void 0:o.organizationId]);let c=null!=(t=null==r?void 0:r.email)?t:null,h=null!=(n=null==r?void 0:r.emailVerified)&&n,f=function(e,t,n){let i=null!==e&&!t,[r,l]=(0,a.useState)(null),[s,o]=(0,a.useState)(""),[d,u]=(0,a.useState)(!0),[c,h]=(0,a.useState)(!1),[f,m]=(0,a.useState)(0),[x,y]=(0,a.useState)(!1),[v,g]=(0,a.useState)(null);(0,a.useEffect)(()=>
1{if(h(!1),!e||!t){l(null),o(""),u(!1);return}return u(!0),(0,L.onSnapshot)((0,L.query)((0,L.collection)(H.db,"invitations"),(0,L.where)("invitedEmail","==",e.toLowerCase()),(0,L.where)("status","==","pending")),e=>{l(function(e,t){var n,i,a,r;let l=function(e,t){let n=e.filter(e=>!(e.expiresAt instanceof Date&&e.expiresAt<t));if(0!==n.length)return[...n].sort((e,t)=>{let n=e.createdAt instanceof Date?e.createdAt.getTime():void 0,i=t.createdAt instanceof Date?t.createdAt.getTime():void 0;return void 0===n&&void 0===i?0:void 0===n?1:void 0===i?-1:i-n})[0]}(e.docs.map(e=>{var t,n,i,a;let r=e.data(),l=null==(n=r.createdAt)||null==(t=n.toDate)?void 0:t.call(n),s=null==(a=r.expiresAt)||null==(i=a.toDate)?void 0:i.call(a);return{id:e.id,organizationId:r.organizationId,organizationName:r.organizationName,invitedEmail:r.invitedEmail,role:r.role,invitedBy:r.invitedBy,inviteCode:r.inviteCode,status:r.status,..."string"==typeof r.accessRequestId?{accessRequestId:r.accessRequestId}:{},createdAt:l,expiresAt:s}}),t);return l?{...l,createdAt:null!=(a=null==(n=l.createdAt)?void 0:n.toISOString())?a:"",expiresAt:null!=(r=null==(i=l.expiresAt)?void 0:i.toISOString())?r:""}:null}(e,new Date)),o(e.docs.map(e=>e.id).sort().join(",")),u(!1)},e=>{console.warn("[usePendingInvitation] Failed to listen to invitations:",e),h(!0),u(!1)})},[e,t,f]);let p=(0,a.useCallback)(()=>m(e=>e+1),[]),j=(0,a.useCallback)(async()=>{if(r){y(!0),g(null);try{let e=await (0,ez.QA)(r.inviteCode);if("accepted"===e.kind)return void await n();g(e)}finally{y(!1)}}},[r,n]);return{verificationRequired:i,invitation:r,invitationSetKey:s,loading:d,checkFailed:c,accepting:x,acceptError:v,retryCheck:p,accept:j,clearAcceptError:(0,a.useCallback)(()=>g(null),[])}}(c,h,l),m=function(e,t){let[n,i]=(0,a.useState)(null),[r,l]=(0,a.useState)(!1),[s,o]=(0,a.useState)(!1),d=(0,a.useRef)(0),u=(0,a.useCallback)(async()=>{let t=d.current+1;d.current=t;let n=e?await eq():{kind:"ok",status:null};t===d.current&&("ok"===n.kind&&i(n.status),o("failed"===n.kind),l(!0))},[e]);return(0,a.useEffect)(()=>{u()},[u,t]),(0,a.useEffect)(()=>{let e=()=>{"visible"===document.visibilityState&&u()};return document.addEventListener("visibilitychange",e),()=>document.removeEventListener("visibilitychange",e)},[u]),{status:n,loaded:r,failed:s,refresh:u}}(null!=(i=null==r?void 0:r.uid)?i:null,f.invitationSetKey),{refresh:x}=m,y=function(e){let{emailVerified:t,onRequestSettled:n}=e,[i,r]=(0,a.useState)(null),[l,s]=(0,a.useState)(!1),[o,d]=(0,a.useState)(null),u=(0,a.useCallback)(()=>s(!0),[]);return{profile:i,editing:l,requestOutcome:o,openForm:u,handleProfileLoaded:(0,a.useCallback)(e=>r(e),[]),handleProfileSaved:(0,a.useCallback)(async e=>{r(e),d(null);let i=await (!t?Promise.resolve({kind:"email-not-verified"}):J.submitAccessRequest(e));eP.has(i.kind)&&(await n(),s(!1)),d(i)},[t,n])}}({emailVerified:h,onRequestSettled:x}),{checkFailed:v,retryCheck:g}=f;(0,a.useEffect)(()=>{let e=setInterval(()=>{l()},3e4);return()=>clearInterval(e)},[l]);let p=(0,a.useCallback)(async()=>{await l(),v&&g(),await x()},[l,v,g,x]),j=(0,a.useMemo)(()=>(function(e,t){var n,i,a,r,l,s,o;let{request:d,invitation:u,email:c}=e,h=e.invitation?(0,ej.Ip)({requestStatus:null,invitation:{status:"pending",expiresAt:eA(e.invitation.expiresAt)},account:{exists:!0,emailVerified:e.emailVerified}},t):null!=(o=null==(s=e.request)?void 0:s.stage)?o:eb.ET,f=null!=(i=null!=(n=null==u?void 0:u.organizationName)?n:null==d?void 0:d.organizationName)?i:null,m=null!=(a=null==d?void 0:d.company)?a:null,x=ew(u?u.expiresAt:null!=(r=null==d?void 0:d.invitationExpiresAt)?r:null),y="request"===h.current&&null===h.exit,v=null===u||void 0!==u.accessRequestId;return{state:h,stages:v?ep.Or:ep.b$,heading:function(e,t){if("declined"===e.exit)return"Your request was declined";if("invitation_lapsed"===e.exit)return"You need a new invitation";if(e.complete)return"You joined ".concat(t);switch(e.current){case"request":return"Your account is not linked to an organization yet";case"review":return"Your request is with the OptiPacker team";case"invitation":case"account":case"joined":return"Join ".concat(t);default:return e.current}}(h,null!=(l=null!=f?f:m)?l:"your organization"),next:(0,eb.mZ)(h,{organizationName:f,company:m,email:c,expiresOn:x,fromAccessRequest:v}),meta:function(e,t){var n;let i=ew(null!=(n=null==e?void 0:e.submittedAt)?n:null);return{...i?{request:"Sent ".concat(i)}:{},...t?{invitation:"Expires ".concat(t)}:{}}}(d,x),hint:y?(0,eb.i8)(c):null,offerContact:"declined"===h.exit,profileMode:null!==u?"hidden":null!==h.exit||h.complete||"request"!==h.current?null!==h.exit||h.complete||"review"!==h.current?"summary":"editable":"form"}})({request:m.status,invitation:f.invitation,email:c,emailVerified:h}
1,new Date),[m.status,f.invitation,c,h]);return{invitation:f,request:m,intake:y,view:j,ready:m.loaded&&!f.loading,showVerification:f.verificationRequired||(null==(e=y.requestOutcome)?void 0:e.kind)==="email-not-verified",checkAgain:p}}();return(0,i.jsx)(r.default,{sx:{minHeight:"100vh",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",background:"var(--slate-50)",p:{xs:2,sm:3}},children:(0,i.jsxs)(c.default,{elevation:0,sx:{maxWidth:640,width:"100%",p:{xs:3,sm:5},borderRadius:3,textAlign:"center",border:"1px solid",borderColor:"divider"},children:[(0,i.jsx)(r.default,{sx:{mb:4,display:"flex",justifyContent:"center"},children:(0,i.jsx)(f.M,{size:"md"})}),(0,i.jsxs)(r.default,{sx:{display:"grid",gap:3},children:[g.ready?(0,i.jsx)(er,{view:g.view}):(0,i.jsx)(o.default,{size:"small"}),g.request.failed&&(0,i.jsx)(l.default,{variant:"body2",role:"status",sx:{color:"var(--text-secondary)"},children:"We could not load your request status. Select Check again."}),g.showVerification?(0,i.jsx)(ed,{refreshToken:y}):(0,i.jsx)(ev,{state:g.invitation}),g.ready&&g.view.offerContact&&(0,i.jsx)(r.default,{children:(0,i.jsx)(h.default,{component:u(),href:"/contact",variant:"outlined",sx:{textTransform:"none",minHeight:44},children:"Contact us"})}),(0,i.jsx)(r.default,{children:(0,i.jsx)(A,{onCheckAgain:g.checkAgain})}),x&&g.ready&&"hidden"!==g.view.profileMode&&(0,i.jsx)(ei,{uid:x.uid,displayName:null!=(t=x.displayName)?t:null,intake:g.intake,mode:g.view.profileMode,requestCompany:null!=(n=null==(e=g.request.status)?void 0:e.company)?n:null,trackShowsRequest:null!==g.request.status,onCheckAgain:g.checkAgain})]}),(0,i.jsx)(b,{userId:null!=(d=null==x?void 0:x.uid)?d:null,email:null!=(m=null==x?void 0:x.email)?m:null,onSignOut:v})]})})}function eO(e){let{children:t,fallback:n}=e,{user:a,isInitialized:d,status:u}=(0,s.As)();return d&&"loading"!==u?a?null===a.organizationId&&"system_admin"!==a.systemRole?(0,i.jsx)(i.Fragment,{children:null!=n?n:(0,i.jsx)(eE,{})}):(0,i.jsx)(i.Fragment,{children:t}):null:(0,i.jsxs)(r.default,{sx:{minHeight:"100vh",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:2,background:"var(--slate-50)"},children:[(0,i.jsx)(o.default,{size:"medium"}),(0,i.jsx)(l.default,{variant:"body2",sx:{color:"var(--text-secondary)"},children:"Verifying organization access..."})]})}},95311:(e,t,n)=>{n.d(t,{q:()=>u});var i=n(95155),a=n(12115),r=n(20063),l=n(41574),s=n(80317),o=n(2823),d=n(85480);function u(e){let{children:t,redirectTo:n="/login",showLoading:u=!0}=e,c=(0,r.useRouter)(),h=(0,r.usePathname)(),{isAuthenticated:f,isInitialized:m,status:x}=(0,o.As)();return(a.useEffect(()=>{if(m&&!f){let e=encodeURIComponent(h);c.push("".concat(n,"?returnUrl=").concat(e))}},[m,f,c,h,n]),m&&"loading"!==x)?f?(0,i.jsx)(i.Fragment,{children:t}):null:u?(0,i.jsxs)(l.default,{sx:{minHeight:"100vh",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:2,background:"var(--slate-50)"},children:[(0,i.jsx)(d.default,{size:"medium"}),(0,i.jsx)(s.default,{variant:"body2",sx:{color:"var(--text-secondary)"},children:"Checking authentication..."})]}):null}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.