1import{j as e}from"./ui-C6t_nCSG.js";import{e as R,r as l}from"./vendor-BStmp9eX.js";import{u as k}from"./utils-DjuGHUGy.js";import{T as S,r as C,n as $,t as q,v as F,q as P}from"./index-BL6G0anb.js";import{I as B}from"./Icon-HCZBuSul.js";const D={"1-10":10,"11-50":50,"51-200":200,"201-500":500,"501-1000":1e3,"1000+":5e3},T=50;function L(s){if(!s||typeof s!="string")return T;const o=s.trim(),r=D[o];return typeof r=="number"&&r>=1?r:T}function Y({step:s}){const o=typeof s=="string"?C(s):s,r=Math.min(100,Math.max(0,o/S*100));return e.jsx(e.Fragment,{children:e.jsxs("section",{className:"max-w-4xl mx-auto px-4 xui-my-1",children:[e.jsx("div",{className:"xui-w-fluid-100 xui-d-flex xui-flex-ai-center xui-flex-jc-space-between",children:e.jsxs("span",{className:"text-[12px] xui-opacity-5",children:["Step ",o," of ",S]})}),e.jsx("div",{className:"qylon-progress-container",children:e.jsx("div",{style:{width:`${r}%`},className:"qylon-progress-bar bg-[#030213]"})})]})})}function G(){const{register:s,handleSubmit:o,setValue:r,formState:{errors:c,isSubmitting:p},watch:y}=k({defaultValues:{names:"",usage_type:"individual",company_name:"",team_size:"1-10",industry_selection:"other"}}),E=R(),[z,f]=l.useState(null),[A,j]=l.useState(!1),[O,b]=l.useState(!1),[_,g]=l.useState(null),[I,U]=l.useState(null),v=2*1024*1024,N=l.useMemo(()=>["image/jpeg","image/png","image/jpg"],[]),w=y("image"),m=y("usage_type");l.useEffect(()=>{(async()=>{try{const a=await F.getOnboardingProgress();a.success&&a.data&&(U(a.data),(a.data.completed_steps||[]).includes("team-setup")&&r("usage_type","company"))}catch(a){console.error("Failed to fetch onboarding status in Profile:",a)}})()},[r]),l.useEffect(()=>{const i=w?.[0];if(i){const a=N.includes(i.type),t=i.size<=v;if(t||(j(!0),setTimeout(()=>j(!1),2400)),a||(b(!0),setTimeout(()=>b(!1),2400)),!a||!t){f(null);return}const n=new FileReader;n.onloadend=()=>{f(n.result)},n.readAsDataURL(i)}else f(null)},[w,N,v]);const M=async i=>{console.log("ð submitProfile function called with data:",i),g(null);try{let a;if(i.image&&i.image[0])try{const u=i.image[0],d=localStorage.getItem("access_token");if(!d)throw new Error("Not authenticated");const h=new FormData;h.append("profile_picture",u);const x=await fetch(`${P()}/users/profile-picture`,{method:"POST",headers:{Authorization:`Bearer ${d}`},body:h});x.ok&&(a=(await x.json()).data.profile_picture_url)}catch(u){console.error("Failed to upload profile picture:",u),g("Profile saved, but profile picture upload failed. You can upload it later.")}const t=i.usage_type==="individual",n=t?"My Workspace":i.company_name;if(await F.updateOnboardingProgress("profile",{full_name:i.names,company_name:n,company_
1size:t?"1-10":i.team_size,industry:t?"other":i.industry_selection,profile_picture_url:a,usage_type:i.usage_type}),I?.completed_steps?.includes("team-setup"))console.log("User already in a team, skipping workspace creation");else{console.log("Auto-creating team for new user:",n);const u={name:n,settings:{maxUsers:t?1:L(i.team_size),allowSelfRegistration:!t,defaultUserRole:"member"}},d=await fetch(`${P()}/teams`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${localStorage.getItem("access_token")}`},body:JSON.stringify(u)});if(d.ok){const x=(await d.json()).data?.id;x&&localStorage.setItem("team_id",String(x))}}E("/setup/calendar")}catch(a){console.error("Error saving profile:",a),g(a.message||"Something went wrong while saving your profile.")}};return e.jsxs(e.Fragment,{children:[e.jsx(Y,{step:1}),e.jsxs("section",{className:"xui-py-2 xui-px-1 xui-md-px-3",children:[e.jsxs("div",{className:"xui-text-center",children:[e.jsx("h4",{className:"xui-mt-1 text-[18px]",children:"Set Up Your Profile"}),e.jsx("p",{className:"text-[15px] xui-mt-half xui-opacity-7",children:"Help us personalize your Qylon experience"})]}),e.jsxs("form",{onSubmit:o(M),className:"xui-max-w-800 xui-mt-2 xui-mx-auto xui-w-fluid-100 xui-form",noValidate:!0,children:[_&&e.jsx("div",{className:"xui-mt-1",children:e.jsx("span",{className:"xui-badge xui-badge-danger",children:_})}),e.jsxs("div",{className:"xui-d-inline-flex xui-flex-ai-center xui-grid-gap-1 xui-mb-2",children:[e.jsxs("label",{className:"w-[120px] h-[120px] xui-bg-light xui-bdr-rad-circle xui-overflow-hidden xui-pos-relative xui-cursor-pointer",htmlFor:"image",children:[e.jsx("img",{src:z||"https://res.cloudinary.com/dabfoaprr/image/upload/v1758299425/test-image_gf56ry.png",alt:"Profile",className:"xui-w-fluid-100 xui-h-fluid-100 object-cover"}),e.jsx("div",{className:"xui-w-fluid-100 xui-position-absolute h-[32px] bg-[#000000b8] xui-d-flex xui-flex-ai-center xui-flex-jc-center xui-text-white",style:{bottom:0,left:0},children:e.jsx(B,{name:"camera",size:16})}),e.jsx("input",{type:"file",id:"image",className:"xui-d-none",accept:"image/*",...s("image")})]}),e.jsxs("div",{className:"xui-font-sz-[13px] xui-opacity-5",children:[e.jsx("span",{className:O?"xui-text-danger xui-font-w-700":"",children:"JPG, JPEG, or PNG"}),".",e.jsx("span",{className:A?"xui-text-danger xui-font-w-700":"",children:" 2 MB max"}),"."]})]}),e.jsxs("div",{className:"xui-form-box",children:[e.jsx("label",{children:"How will you use Qylon?"}),e.jsxs("div",{className:"xui-d-grid xui-grid-col-2 xui-grid-gap-1 xui-mt-half",children:[e.jsxs("label",{className:`xui-bdr-rad-half xui-p-1 xui-cursor-pointer xui-d-flex xui-flex-ai-center xui-grid-gap-half ${m==="individual"?"xui-bg-blue-50 xui-bdr-blue xui-bdr-s-solid xui-bdr-w-1":"xui-bg-light xui-bdr-fade xui-bdr-s-solid xui-bdr-w-1"}`,children:[e.jsx("input",{type:"radio",value:"individual",...s("usage_type"),className:"xui-w-auto"}),e.jsxs("div",{children:[e.jsx("div",{className:"xui-font-w-600 text-[14px]",children:"Individual"}),e.jsx("div",{className:"text-[12px] xui-opacity-6",children:"For myself"})]})]}),e.jsxs("label",{className:`xui-bdr-rad-half xui-p-1 xui-cursor-pointer xui-d-flex xui-flex-ai-center xui-grid-gap-half ${m==="company"?"xui-bg-blue-50 xui-bdr-blue xui-bdr-s-solid xui-bdr-w-1":"xui-bg-light xui-bdr-fade xui-bdr-s-solid xui-bdr-w-1"}`,children:[e.jsx("input",{type:"radio",value:"company",...s("usage_type"),className:"xui-w-auto"}),e.jsxs("div",{children:[e.jsx("div",{className:"xui-font-w-600 text-[14px]",children:"Company / Team"}),e.jsx("div",{className:"text-[12px] xui-opacity-6",children:"For my organization"})]})]})]})]}),e.jsxs("div",{className:"xui-d-grid xui-grid-col-1 xui-grid-gap-half",children:[e.jsxs("div",{className:"xui-form-box","xui-error":c.names?"true":"false",children:[e.jsx("label",{htmlFor:"names",children:"Full Name"}),e.jsx("input",{...s("names",{required:"This field is required"}),type:"text",id:"names",placeholder:"Billy Jones"}),c.names&&e.jsx("span",{className:"xui-form-error-msg",children:c.names.message})]}),m==="company"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"xui-form-box","xui-error":c.company_name?"true":"false",children:[e.jsx("label",{htmlFor:"company_name",children:"Company Name"}),e.jsx("input",{...s("company_name",{required:m==="company"?"This field is required":!1}),type:"text",id:"company_name",placeholder:"XYZ Limited"}),c.company_name&&e.jsx("span",{className:"xui-form-error-msg",children:c.company_name.message})]}),e.jsxs("div",{className:"xui-d-grid xui-grid-col-1 xui-md-grid-col-2 xui-gri
1d-gap-half",children:[e.jsxs("div",{className:"xui-form-box",children:[e.jsx("label",{htmlFor:"team_size",children:"Company Size"}),e.jsxs("select",{...s("team_size"),id:"team_size",children:[e.jsx("option",{value:"1-10",children:"1 - 10"}),e.jsx("option",{value:"11-50",children:"11 - 50"}),e.jsx("option",{value:"51-200",children:"51 - 200"}),e.jsx("option",{value:"201-500",children:"201 - 500"}),e.jsx("option",{value:"501-1000",children:"501 - 1000"}),e.jsx("option",{value:"1000+",children:"1000+"})]})]}),e.jsxs("div",{className:"xui-form-box",children:[e.jsx("label",{htmlFor:"industry_selection",children:"Industry"}),e.jsxs("select",{...s("industry_selection"),id:"industry_selection",children:[e.jsx("option",{value:"technology",children:"Technology"}),e.jsx("option",{value:"healthcare",children:"Healthcare"}),e.jsx("option",{value:"finance",children:"Finance"}),e.jsx("option",{value:"other",children:"Other"})]})]})]})]})]}),e.jsx("div",{className:"xui-d-grid xui-grid-col-1 xui-grid-gap-1 xui-mt-2",children:e.jsxs("button",{type:"submit",disabled:p,className:"py-2.5 xui-bdr-rad-half bg-gradient-to-r from-[#124697] to-[#07224B] text-white flex items-center justify-center",children:[p?e.jsx($,{className:"animate-spin mr-2"}):"Continue",!p&&e.jsx(q,{className:"ml-2",size:14})]})})]})]})]})}const K=Object.freeze(Object.defineProperty({__proto__:null,default:G},Symbol.toStringTag,{value:"Module"}));export{Y as O,G as P,K as a};
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.