1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1658],{21658:(e,t,r)=>{r.d(t,{A:()=>eG});var a=r(37876),n=r(14232),i=r(89099),o=r(44113),l=r(49794),s=r(79143),c=r(2799),d=r(24422),p=r(27291),f=r(74511),x=r(59361),u=r(71538),h=r(58865),g=r(7957),m=r(82736),b=r(31403),y=r(52559),j=r(30088),S=r(30131),v=r(35699),A=r(58680),k=r(36711),C=r(29692),P=r(21825),z=r(85960),w=r(55656),R=r(22128),T=r(83587);async function W(e){let t=Math.round(e.size/1024),r=await (0,T.A)(e,{maxSizeMB:.5,maxWidthOrHeight:1920,useWebWorker:!0,fileType:"image/webp",initialQuality:.85,alwaysKeepResolution:!1}),a=Math.round(r.size/1024),n=Math.round((1-r.size/e.size)*100),i=e.name.replace(/\.[^.]+$/,"");return{file:new File([r],"".concat(i,".webp"),{type:"image/webp"}),originalKB:t,compressedKB:a,savedPercent:n}}async function F(e){return Promise.all(e.map(W))}var D=r(96402),I=r(30695),J=r(28888),L=r(38993),M=r(14379),N=r(2487),E=r(10414),U=r(66868),B=r(37224),q=r(54750),O=r(46682),V=r(50930);function _(){let e=(0,J._)(["\n from { opacity: 0; transform: translateY(12px); }\n to { opacity: 1; transform: translateY(0); }\n"]);return _=function(){return e},e}function H(){let e=(0,J._)(["\n from { opacity: 0; transform: translateX(20px); }\n to { opacity: 1; transform: translateX(0); }\n"]);return H=function(){return e},e}let Z=(0,L.i7)(_()),$=(0,L.i7)(H()),K=(0,M.A)(c.A)({borderRadius:"24px",padding:"36px",background:"#ffffff",border:"1px solid #e2e8f0",boxShadow:"0 4px 24px rgba(15,23,42,0.06)",animation:"".concat(Z," 0.35s ease both"),"@media (max-width: 600px)":{padding:"20px 16px"}}),G=(0,M.A)(N.A)({fontFamily:'"Plus Jakarta Sans", sans-serif',fontWeight:700,borderRadius:"14px",textTransform:"none",padding:"11px 24px",fontSize:"14px"}),Y=(0,M.A)(N.A)({fontFamily:'"Plus Jakarta Sans", sans-serif',fontWeight:700,borderRadius:"14px",textTransform:"none",padding:"12px 32px",fontSize:"14px",background:"linear-gradient(135deg,#0d9488,#0f766e)",color:"#fff",boxShadow:"0 8px 24px rgba(13,148,136,0.25)","&:hover":{filter:"brightness(1.07)",boxShadow:"0 12px 30px rgba(13,148,136,0.32)"},"&:disabled":{background:"#e2e8f0",color:"#94a3b8",boxShadow:"none"}}),X=(0,M.A)(E.A)({"& .MuiOutlinedInput-root":{fontFamily:'"Plus Jakarta Sans", sans-serif',borderRadius:"13px",fontSize:"14px",background:"#f8fafc",color:"#0f172a",transition:"all 0.18s","& fieldset":{borderColor:"#e2e8f0",borderWidth:"1.5px"},"&:hover fieldset":{borderColor:"#0d9488"},"&.Mui-focused":{background:"#fff","& fieldset":{borderColor:"#0d9488",borderWidth:"2px"}},"& input":{color:"#0f172a"},"& textarea":{color:"#0f172a"}},"& .MuiInputBase-input":{fontFamily:'"Plus Jakarta Sans", sans-serif',padding:"12px 14px"},"& .MuiFormHelperText-root":{fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"11px"}}),Q=(0,M.A)(U.A)({fontFamily:'"Plus Jakarta Sans", sans-serif',borderRadius:"13px",fontSize:"14px",background:"#f8fafc",color:"#0f172a","& fieldset":{borderColor:"#e2e8f0",borderWidth:"1.5px"},"&:hover fieldset":{borderColor:"#0d9488"},"&.Mui-focused fieldset":{borderColor:"#0d9488",borderWidth:"2px"},"& .MuiSelect-select":{padding:"12px 14px",fontFamily:'"Plus Jakarta Sans", sans-serif',color:"#0f172a"},"& .MuiSvgIcon-root":{color:"#94a3b8"}}),ee={fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"13px",color:"#0f172a","&:hover":{background:"#f0fdfa"},"&.Mui-selected":{background:"#ccfbf1",color:"#0f766e"}},et=(0,M.A)(l.A)({fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"11px",color:"#94a3b8",marginTop:"5px",display:"flex",alignItems:"center",gap:"4px"}),er=e=>{let{label:t,hint:r,required:n,children:i}=e;return(0,a.jsxs)(o.A,{mb:2.5,children:[(0,a.jsxs)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontWeight:700,fontSize:"12px",color:"#334155",mb:.8,textTransform:"uppercase",letterSpacing:"0.6px",display:"flex",alignItems:"center",gap:.5},children:[t,n&&(0,a.jsx)(o.A,{component:"span",sx:{color:"#ef4444",ml:.3},children:"*"})]}),i,r&&(0,a.jsxs)(et,{children:[(0,a.jsx)(q.A,{sx:{fontSize:12}}),r]})]})},ea=()=>(0,a.jsx)(o.A,{sx:{height:48,borderRadius:"13px",background:"#f1f5f9",border:"1.5px solid #e2e8f0",animation:"pulse 1.4s ease-in-out infinite","@keyframes pulse":{"0%, 100%":{opacity:1},"50%":{opacity:.5}}}}),en=e=>{let{active:t,total:r}=e;return(0,a.jsx)(o.A,{display:"flex",gap:.8,mb:3,children:Array.from({length:r}).map((e,r)=>(0,a.jsx)(o.A,{sx:{height:4,flex:1,borderRadius:99,background:r<=t?"linear-gradient(90deg,#0d9488,#14b8a6)":"#e2e8f0",transition:"background 0.3s"}},r))})},ei=e=>{let{label:t,value:r,defaultValue:i,onChange:s,multiline:c,rows:d,placeholder:p}=e,[f,x]=n.useState(!1),u=r||i;return(0,a.jsxs)(o.A,{mb:2.5,sx:{border:"1.5px solid #e2e8f0",borderRadius:"16px",overflow:"hidden",transition:"box-shadow 0.2s","&:hover":{boxShadow:"0 2px 12px rgba(13,148,136,0.08)",borderColor:"#99f6e4"}},children:[(0,a.jsxs)(o.A,{onClick:()=>x(e=>!e),sx:{display:"flex",alignItems:"center",justifyContent:"space-between",px:2.5,py:1.8,cursor:"pointer",background:f?"#f0fdfa":"#fafcff",transition:"background 0.18s","&:hover":{background:"#f0fdfa"}},children:[(0,a.jsxs)(o.A,{flex:1,minWidth:0,mr:2,children:[(0,a.jsx)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontWeight:700,fontSize:"12px",color:"#64748b",textTransform:"uppercase",letterSpacing:"0.7
1px",mb:.4},children:t}),!f&&(0,a.jsx)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"13px",color:u?"#0f172a":"#94a3b8",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontStyle:r?"normal":"italic"},children:u||"Click to edit ".concat(t.toLowerCase(),"â¦")})]}),(0,a.jsx)(o.A,{sx:{width:28,height:28,borderRadius:"8px",background:f?"#ccfbf1":"#f1f5f9",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:f?(0,a.jsx)(V.A,{sx:{fontSize:18,color:"#0d9488"}}):(0,a.jsx)(O.A,{sx:{fontSize:18,color:"#64748b"}})})]}),(0,a.jsx)(B.A,{in:f,children:(0,a.jsxs)(o.A,{px:2.5,pb:2.5,pt:1,sx:{background:"#fff"},children:[!r&&i&&(0,a.jsx)(h.A,{severity:"info",icon:(0,a.jsx)(q.A,{sx:{fontSize:16}}),sx:{mb:1.5,borderRadius:"10px",py:.5,fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"12px",background:"#f0fdfa",border:"1px solid #99f6e4",color:"#0f766e","& .MuiAlert-icon":{color:"#0d9488"}},children:"Auto-generated based on your property details. Edit or leave as-is."}),(0,a.jsx)(X,{fullWidth:!0,multiline:c,rows:null!=d?d:1,value:r,placeholder:p||i||"Enter ".concat(t.toLowerCase(),"â¦"),onChange:e=>s(e.target.value),InputProps:{sx:c?{padding:"0 !important","& textarea":{padding:"12px 14px",color:"#0f172a"}}:{}}})]})})]})};var eo=r(19957),el=r(88713),es=r(12317),ec=r(35656),ed=r(82260);let ep=e=>{let{form:t,set:r}=e,n=(0,I.BF)(t.propertyType),i=(0,I.V)(t.propertyType),s=(0,I.qs)(t.propertyType),c=(0,I.Mz)(t.propertyType);return(0,a.jsxs)(o.A,{sx:{animation:"".concat($," 0.3s ease both")},children:[(0,a.jsxs)(o.A,{display:"grid",gridTemplateColumns:{xs:"1fr",sm:"2fr 1fr"},gap:2,children:[(0,a.jsx)(er,{label:s?"Starting Price":c?"Asking Price":"Price",required:!0,hint:s?"Minimum / starting unit price":c?"Total site asking price":"Enter the asking price",children:(0,a.jsx)(X,{fullWidth:!0,value:t.price?(0,I.$g)(t.price):"",onChange:e=>r("price",(0,I.gg)(e.target.value)),placeholder:"e.g. 75,000,000",InputProps:{startAdornment:(0,a.jsx)(eo.A,{position:"start",children:(0,a.jsx)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontWeight:700,fontSize:"13px",color:"#0d9488"},children:t.currency})})}})}),(0,a.jsx)(er,{label:"Currency",hint:"RWF, USD, EUR, CAD",children:(0,a.jsx)(el.A,{fullWidth:!0,children:(0,a.jsx)(Q,{value:t.currency,onChange:e=>r("currency",e.target.value),children:I.yR.map(e=>(0,a.jsx)(es.A,{value:e,sx:ee,children:e},e))})})})]}),(0,a.jsx)(ec.A,{control:(0,a.jsx)(ed.A,{checked:t.priceNegotiable,onChange:e=>r("priceNegotiable",e.target.checked),sx:{color:"#cbd5e1","&.Mui-checked":{color:"#0d9488"}}}),label:(0,a.jsx)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"13px",color:"#475569"},children:"Price is negotiable"}),sx:{mb:2}}),(0,a.jsxs)(o.A,{display:"grid",gridTemplateColumns:{xs:"1fr",sm:"1fr 1fr"},gap:2,children:[(0,a.jsx)(er,{label:"Land Size (sqm)",required:!0,hint:"Total plot area",children:(0,a.jsx)(X,{fullWidth:!0,type:"number",value:t.landSize,onChange:e=>r("landSize",e.target.value),placeholder:"e.g. 500"})}),(n||c)&&(0,a.jsx)(er,{label:c?"Projected Building Size (sqm)":"Building Size (sqm)",hint:c?"Planned built-up area once complete":"Total built-up area",children:(0,a.jsx)(X,{fullWidth:!0,type:"number",value:t.buildingSize,onChange:e=>r("buildingSize",e.target.value),placeholder:"e.g. 280"})})]}),s&&(0,a.jsx)(o.A,{display:"grid",gridTemplateColumns:{xs:"1fr",sm:"1fr 1fr"},gap:2,children:(0,a.jsx)(er,{label:"Total Units",hint:"Total number of units in the development",children:(0,a.jsx)(X,{fullWidth:!0,type:"number",value:t.totalUnits,onChange:e=>r("totalUnits",e.target.value),placeholder:"e.g. 24"})})}),c&&(0,a.jsxs)(o.A,{display:"grid",gridTemplateColumns:{xs:"1fr",sm:"1fr 1fr"},gap:2,children:[(0,a.jsx)(er,{label:"Construction Stage",hint:"Current stage of the build",children:(0,a.jsx)(el.A,{fullWidth:!0,children:(0,a.jsxs)(Q,{value:t.constructionStage,onChange:e=>r("constructionStage",e.target.value),displayEmpty:!0,children:[(0,a.jsx)(es.A,{value:"",sx:ee,children:(0,a.jsx)("em",{children:"Select stageâ¦"})}),I.EM.map(e=>(0,a.jsx)(es.A,{value:e,sx:ee,children:e},e))]})})}),(0,a.jsx)(er,{label:"Expected Completion",hint:"e.g. Q2 2026 or December 2026",children:(0,a.jsx)(X,{fullWidth:!0,value:t.expectedCompletion,onChange:e=>r("expectedCompletion",e.target.value),placeholder:"e.g. Q3 2026"})})]}),i&&(0,a.jsxs)(o.A,{display:"grid",gridTemplateColumns:{xs:"1fr 1fr",sm:"1fr 1fr 1fr"},gap:2,children:[(0,a.jsx)(er,{label:"Bedrooms",hint:"e.g. 3",children:(0,a.jsx)(X,{fullWidth:!0,type:"number",value:t.bedrooms,onChange:e=>r("bedrooms",e.target.value),placeholder:"3"})}),(0,a.jsx)(er,{label:"Bathrooms",hint:"e.g. 2",children:(0,a.jsx)(X,{fullWidth:!0,type:"number",value:t.bathrooms,onChange:e=>r("bathrooms",e.target.value),placeholder:"2"})}),(0,a.jsx)(er,{label:"Parking Spots",hint:"e.g. 1",children:(0,a.jsx)(X,{fullWidth:!0,type:"number",value:t.parkingSpots,onChange:e=>r("parkingSpots",e.target.value),placeholder:"1"})})]}),(0,a.jsx)(er,{label:"Zoning Type",required:!0,hint:"Land use classification",children:(0,a.jsx)(el.A,{fullWidth:!0,children:(0,a.jsxs)(Q,{value:t.zoning,onChange:e=>r("zoning",e.target.value),displayEmpty:!0,children:[(0,a.jsx)(es.A,{value:"",sx:ee,children:(0,a.jsx)("em",{children:"Select zoningâ¦"})}),I.ed.map(e=>(0,a.jsx)(es.A,{value:e,sx:ee,children:e},e))]})})})]})};
1var ef=r(13557),ex=r(42264),eu=r.n(ex);r(83770);let eh=e=>{let{form:t,set:r,uploading:n,uploadLabel:i,uploadProgress:s,error:c,setError:d}=e;return(0,a.jsxs)(o.A,{sx:{animation:"".concat($," 0.3s ease both")},children:[(0,a.jsxs)(o.A,{display:"grid",gridTemplateColumns:{xs:"1fr",sm:"1fr 1fr"},gap:2,children:[(0,a.jsx)(er,{label:"Full Name",required:!0,hint:"e.g. Bosco Mucyo",children:(0,a.jsx)(X,{fullWidth:!0,value:t.contactName,onChange:e=>r("contactName",e.target.value),placeholder:"e.g. Bosco Mucyo"})}),(0,a.jsx)(er,{label:"Email Address",hint:"e.g. [email protected]",children:(0,a.jsx)(X,{fullWidth:!0,type:"email",value:t.contactEmail,onChange:e=>r("contactEmail",e.target.value),placeholder:"e.g. [email protected]"})})]}),(0,a.jsxs)(o.A,{display:"grid",gridTemplateColumns:{xs:"1fr",sm:"1fr 1fr"},gap:2,children:[(0,a.jsx)(er,{label:"Phone Number",required:!0,hint:"Select your country flag then enter your number",children:(0,a.jsx)(o.A,{sx:{"& .react-tel-input":{fontFamily:'"Plus Jakarta Sans", sans-serif'},"& .react-tel-input .form-control":{fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"14px",height:"48px",width:"100%",borderRadius:"13px",background:"#f8fafc",border:"1.5px solid #e2e8f0",color:"#0f172a",paddingLeft:"58px",transition:"all 0.18s"},"& .react-tel-input .form-control:hover":{borderColor:"#0d9488"},"& .react-tel-input .form-control:focus":{borderColor:"#0d9488",borderWidth:"2px",boxShadow:"0 0 0 3px rgba(13,148,136,0.1)",background:"#fff",outline:"none"},"& .react-tel-input .flag-dropdown":{borderRadius:"13px 0 0 13px",background:"#f0fdfa",border:"1.5px solid #e2e8f0",borderRight:"none"},"& .react-tel-input .flag-dropdown.open":{borderRadius:"13px 0 0 13px",background:"#ccfbf1"},"& .react-tel-input .selected-flag":{borderRadius:"13px 0 0 13px",paddingLeft:"10px",background:"transparent"},"& .react-tel-input .selected-flag:hover":{background:"rgba(13,148,136,0.08)",borderRadius:"13px 0 0 13px"},"& .react-tel-input .country-list":{borderRadius:"14px",boxShadow:"0 8px 30px rgba(15,23,42,0.15)",fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"13px",border:"1px solid #e2e8f0",marginTop:"4px"},"& .react-tel-input .country-list .country:hover":{background:"#f0fdfa"},"& .react-tel-input .country-list .country.highlight":{background:"#ccfbf1"}},children:(0,a.jsx)(eu(),{country:"rw",preferredCountries:["rw","us","ca","ug","ke","cd","gb","fr","be","de","za","ng","et","tz"],enableSearch:!0,searchPlaceholder:"Search countryâ¦",countryCodeEditable:!1,disableCountryCode:!1,value:t.contactPhone,onChange:e=>r("contactPhone",e),inputProps:{name:"contactPhone",required:!0,autoComplete:"tel",maxLength:16},specialLabel:"",placeholder:"788 700 890"})})}),(0,a.jsx)(er,{label:"Role / Title",hint:"e.g. Owner, Agent, Developer",children:(0,a.jsx)(X,{fullWidth:!0,value:t.contactRole,onChange:e=>r("contactRole",e.target.value),placeholder:"e.g. Property Owner"})})]}),n&&(0,a.jsxs)(o.A,{mt:3,p:2.5,sx:{background:"#f0fdfa",borderRadius:"16px",border:"1.5px solid #99f6e4"},children:[(0,a.jsxs)(o.A,{display:"flex",justifyContent:"space-between",mb:1,children:[(0,a.jsx)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"13px",color:"#0f766e",fontWeight:600},children:i}),(0,a.jsxs)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"13px",fontWeight:700,color:"#0d9488"},children:[s,"%"]})]}),(0,a.jsx)(ef.A,{variant:"determinate",value:s,sx:{height:6,borderRadius:"3px",background:"#ccfbf1","& .MuiLinearProgress-bar":{background:"linear-gradient(90deg,#0d9488,#14b8a6)",borderRadius:"3px"}}})]}),c&&(0,a.jsx)(h.A,{severity:"error",sx:{mt:2,borderRadius:"14px",fontFamily:'"Plus Jakarta Sans", sans-serif'},onClose:()=>d(""),children:c})]})};var eg=r(59017),em=r(80412),eb=r(70946),ey=r(54587),ej=r.n(ey),eS=r(63152),ev=r(84307),eA=r(27105),ek=r(45790),eC=r(66197);let eP=e=>{let{propertyType:t,images:r,imagePreviews:n,imageDragOver:i,imgRef:s,setImageDragOver:c,handleImageAdd:d,removeImage:p,setPreviewImage:f,videoFiles:x,videoNames:g,videoPreviews:m,videoDragOver:b,videoError:y,vidRef:j,setVideoDragOver:S,handleVideoAdd:v,removeVideo:A,setVideoError:k}=e,C=(0,I.c8)(t);return(0,a.jsxs)(o.A,{sx:{animation:"".concat($," 0.3s ease both")},children:[(0,a.jsxs)(o.A,{mb:1,children:[(0,a.jsxs)(o.A,{display:"flex",alignItems:"center",justifyContent:"space-between",mb:1,children:[(0,a.jsxs)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontWeight:700,fontSize:"13px",color:"#0f172a"},children:["Photos ",(0,a.jsx)(o.A,{component:"span",sx:{color:"#ef4444",ml:.5},children:"*"})]}),(0,a.jsx)(eg.A,{label:"".concat(r.length," / min 2"),size:"small",sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontWeight:700,fontSize:"11px",background:r.length>=2?"#ccfbf1":"#fef2f2",color:r.length>=2?"#0f766e":"#7f1d1d",border:"1px solid ".concat(r.length>=2?"#99f6e4":"#fca5a5")}})]}),C&&(0,a.jsx)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"12px",color:"#64748b",mb:1.5},children:"\uD83D\uDCA1 Include the site boundary map as your first/cover photo â it helps buyers understand the layout instantly."}),(0,a.jsxs)(o.A,{onDragOver:e=>{e.preventDefault(),c(!0)},onDragLeave:()=>c(!1),onDrop:e=>{e.preventDefault(),c(!1),d(e.dataTransfer.files)},onClick:()=>{var e;return null==(e=s.current)?void 0:e.click()},sx:{border:"2px dashed ".concat(i?"#0d9488":"#cbd5e1"),borderRadius:"16px",p:{xs:3,sm:4},textAlign:"center",cursor:"pointer",background:i?"#f0fdfa":"#fafcff",transition:"all 0.18s","&:hover":{borderColor:"#0d9488",background:"#f0fdfa"}},children:[(0,a.jsx)(eS.A,{sx:{fontSize:32,color:"#0d9488",mb:1}}),(0,a.jsx)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontWeight:700,fontSize:"14px",color:"#0f172a",mb:.5},children:"Click to upload or drag & drop photos"}),(0,a.jsx)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"12px",color:"#94a3b8"},children:"JPG, PNG, WEBP â min 2 photos required. First photo = cover image."}
1),(0,a.jsx)("input",{ref:s,type:"file",accept:"image/*",multiple:!0,hidden:!0,onChange:e=>d(e.target.files)})]})]}),n.length>0&&(0,a.jsx)(o.A,{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(96px, 1fr))",gap:1.5,mt:2,mb:3,children:n.map((e,t)=>(0,a.jsxs)(o.A,{sx:{position:"relative",aspectRatio:"1",borderRadius:"13px",overflow:"hidden",border:0===t?"2.5px solid #0d9488":"2px solid #e2e8f0",boxShadow:0===t?"0 0 0 3px rgba(13,148,136,0.15)":"0 2px 8px rgba(15,23,42,0.06)",cursor:"pointer",transition:"transform 0.18s","&:hover":{transform:"scale(1.04)"},"&:hover .img-overlay":{opacity:1}},children:[(0,a.jsx)(ej(),{src:e,alt:"photo-".concat(t),fill:!0,style:{objectFit:"cover"},unoptimized:!0}),0===t&&(0,a.jsxs)(o.A,{sx:{position:"absolute",top:4,left:4,background:"rgba(255,255,255,0.95)",borderRadius:"6px",px:"4px",py:"2px",display:"flex",alignItems:"center",gap:.3,boxShadow:"0 1px 4px rgba(15,23,42,0.12)"},children:[(0,a.jsx)(eA.A,{sx:{fontSize:10,color:"#d97706"}}),(0,a.jsx)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"8px",fontWeight:800,color:"#92400e",lineHeight:1},children:"COVER"})]}),(0,a.jsxs)(o.A,{className:"img-overlay",sx:{position:"absolute",inset:0,background:"rgba(15,23,42,0.55)",opacity:0,transition:"opacity 0.18s",display:"flex",alignItems:"center",justifyContent:"center",gap:.5},children:[0!==t&&(0,a.jsx)(em.A,{title:"Set as cover photo",children:(0,a.jsx)(eb.A,{size:"small",onClick:()=>f(t),sx:{width:28,height:28,background:"rgba(255,255,255,0.9)",color:"#d97706","&:hover":{background:"#fffbeb"}},children:(0,a.jsx)(eA.A,{sx:{fontSize:14}})})}),(0,a.jsx)(em.A,{title:"Remove photo",children:(0,a.jsx)(eb.A,{size:"small",onClick:()=>p(t),sx:{width:28,height:28,background:"rgba(255,255,255,0.9)",color:"#ef4444","&:hover":{background:"#fef2f2"}},children:(0,a.jsx)(ev.A,{sx:{fontSize:14}})})})]})]},"img-".concat(t)))}),(0,a.jsx)(u.A,{sx:{my:3,borderColor:"#f1f5f9"}}),(0,a.jsxs)(o.A,{children:[(0,a.jsxs)(o.A,{display:"flex",alignItems:"center",justifyContent:"space-between",mb:1.5,children:[(0,a.jsxs)(o.A,{display:"flex",alignItems:"center",gap:1,children:[(0,a.jsx)(ek.A,{sx:{fontSize:18,color:"#0d9488"}}),(0,a.jsx)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontWeight:700,fontSize:"13px",color:"#0f172a"},children:"Videos"}),(0,a.jsx)(eg.A,{label:"Optional",size:"small",sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"10px",fontWeight:700,height:18,background:"#f1f5f9",color:"#64748b",border:"1px solid #e2e8f0"}})]}),x.length>0&&(0,a.jsxs)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"11px",color:"#64748b"},children:[x.length," video",1!==x.length?"s":""," added"]})]}),y&&(0,a.jsx)(h.A,{severity:"error",sx:{mb:1.5,borderRadius:"12px",fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"12px"},onClose:()=>k(""),children:y}),(0,a.jsxs)(o.A,{onDragOver:e=>{e.preventDefault(),S(!0)},onDragLeave:()=>S(!1),onDrop:e=>{e.preventDefault(),S(!1),v(e.dataTransfer.files)},onClick:()=>{var e;return null==(e=j.current)?void 0:e.click()},sx:{border:"2px dashed ".concat(b?"#0d9488":"#e0f2fe"),borderRadius:"14px",p:3,textAlign:"center",cursor:"pointer",background:b?"#f0fdfa":"#f8feff",transition:"all 0.18s","&:hover":{borderColor:"#0d9488",background:"#f0fdfa"}},children:[(0,a.jsx)(eC.A,{sx:{fontSize:28,color:"#0d9488",mb:.5}}),(0,a.jsx)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontWeight:700,fontSize:"13px",color:"#0f172a",mb:.3},children:"Upload property tour video"}),(0,a.jsx)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"11px",color:"#94a3b8"},children:"MP4, MOV, WebM, AVI â drag & drop or click"}),(0,a.jsx)("input",{ref:j,type:"file",accept:".mp4,.mov,.webm,.avi,.mkv,.3gp",multiple:!0,hidden:!0,onChange:e=>v(e.target.files)})]}),m.length>0&&(0,a.jsx)(o.A,{mt:2,display:"flex",flexDirection:"column",gap:1.5,children:m.map((e,t)=>(0,a.jsxs)(o.A,{sx:{borderRadius:"14px",overflow:"hidden",border:"1px solid #e2e8f0",boxShadow:"0 2px 8px rgba(15,23,42,0.06)"},children:[(0,a.jsx)(o.A,{sx:{background:"#0f172a"},children:(0,a.jsx)("video",{src:e,controls:!0,style:{width:"100%",maxHeight:200,display:"block"}})}),(0,a.jsxs)(o.A,{sx:{display:"flex",alignItems:"center",gap:1.5,px:2,py:1.5,background:"#f8fafc",borderTop:"1px solid #e2e8f0"},children:[(0,a.jsx)(ek.A,{sx:{fontSize:16,color:"#0d9488",flexShrink:0}}),(0,a.jsx)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"12px",color:"#475569",fontWeight:600,flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:g[t]}),(0,a.jsx)(eb.A,{size:"small",onClick:()=>A(t),sx:{color:"#ef4444","&:hover":{background:"#fef2f2"}},children:(0,a.jsx)(ev.A,{sx:{fontSize:16}})})]})]},"vid-".concat(t)))})]})]})};var ez=r(7339),ew=r(2639),eR=r(18107),eT=r(60755),eW=r(46347),eF=r(60556);let eD="Invalid UPI format. Expected: D/SS/CC/VV/PPPP â e.g. 1/02/05/03/1234",eI={"& .MuiOutlinedInput-root":{borderRadius:"10px",fontSize:"13px",background:"#f8fafc","& fieldset":{borderColor:"#e2e8f0",borderWidth:"1.5px"},"&:hover fieldset":{borderColor:"#0d9488"},"&.Mui-focused fieldset":{borderColor:"#0d9488",borderWidth:"2px"},"& input":{color:"#0f172a",padding:"8px 10px",fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"13px"}}},eJ={fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"11px",fontWeight:700,color:"#64748b",textTransform:"uppercase",letterSpacing:"0.5px",borderBottom:"1px solid #e2e8f0",py:1,px:1.5,background:"#f8fafc"},eL=e=>{let{children:t}=e;return(0,a.jsx)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"10px",fontWeight:700,color:"#94a3b8",textTransform:"uppercase",letterSpacing:"0.6px",mb:.4},children:t})},eM=e=>{let{plots:t,currency:r,onChange:i}
1=e,[s,c]=(0,n.useState)({}),d=(e,r,a)=>{i(t.map((t,n)=>n===e?{...t,[r]:"price"===r?(0,I.gg)(a):a}:t))},p=e=>c(t=>t[e]?t:{...t,[e]:!0}),f=(e,t)=>!!s[e]&&""!==t.upi.trim()&&!(0,D.$i)(t.upi),x=e=>{t.length>1&&i(t.filter((t,r)=>r!==e))},u=t.map(e=>Number(e.price)).filter(Boolean),h=t.map(e=>Number(e.size)).filter(Boolean),g=u.length?Math.min(...u):null,m=u.length?Math.max(...u):null,b=h.length?Math.min(...h):null,y=h.length?Math.max(...h):null;return(0,a.jsxs)(o.A,{children:[(0,a.jsxs)(o.A,{display:"flex",gap:1,flexWrap:"wrap",mb:2,children:[(0,a.jsx)(eg.A,{label:"".concat(t.length," plot").concat(1!==t.length?"s":""),size:"small",sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontWeight:700,fontSize:"11px",background:"#ccfbf1",color:"#0f766e",border:"1px solid #99f6e4"}}),null!==b&&(0,a.jsx)(eg.A,{label:b===y?"".concat(b.toLocaleString()," m\xb2"):"".concat(b.toLocaleString()," â ").concat(y.toLocaleString()," m\xb2"),size:"small",sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontWeight:700,fontSize:"11px",background:"#f0f9ff",color:"#0369a1",border:"1px solid #bae6fd"}}),null!==g&&(0,a.jsx)(eg.A,{label:g===m?"".concat(r," ").concat(g.toLocaleString()):"".concat(r," ").concat(g.toLocaleString()," â ").concat(m.toLocaleString()),size:"small",sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontWeight:700,fontSize:"11px",background:"#fffbeb",color:"#92400e",border:"1px solid #fcd34d"}})]}),(0,a.jsx)(o.A,{sx:{display:{xs:"flex",sm:"none"},flexDirection:"column",gap:1.5},children:t.map((e,n)=>(0,a.jsxs)(o.A,{sx:{borderRadius:"14px",border:"1.5px solid #e2e8f0",background:"#fff",p:2,position:"relative"},children:[(0,a.jsxs)(o.A,{display:"flex",alignItems:"center",justifyContent:"space-between",mb:1.5,children:[(0,a.jsxs)(o.A,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,a.jsx)(o.A,{sx:{width:24,height:24,borderRadius:"7px",background:"linear-gradient(135deg,#0f766e,#14b8a6)",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:(0,a.jsx)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"11px",fontWeight:800,color:"#fff",lineHeight:1},children:n+1})}),(0,a.jsxs)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"13px",fontWeight:700,color:"#0f172a"},children:["Plot ",n+1]})]}),(0,a.jsx)(eb.A,{size:"small",onClick:()=>x(n),disabled:1===t.length,sx:{color:"#ef4444",opacity:1===t.length?.3:1,background:1===t.length?"transparent":"#fef2f2",borderRadius:"8px","&:hover":{background:"#fecaca"}},children:(0,a.jsx)(ev.A,{sx:{fontSize:16}})})]}),(0,a.jsxs)(o.A,{mb:1.5,children:[(0,a.jsx)(eL,{children:"UPI Number"}),(0,a.jsx)(E.A,{fullWidth:!0,size:"small",value:e.upi,onChange:e=>d(n,"upi",e.target.value),onBlur:()=>p(n),placeholder:D.bp,error:f(n,e),helperText:f(n,e)?eD:void 0,sx:eI,inputProps:{style:{fontSize:"13px",letterSpacing:"0.01em"}}})]}),(0,a.jsxs)(o.A,{display:"grid",gridTemplateColumns:"0.55fr 1fr",gap:.2,children:[(0,a.jsxs)(o.A,{children:[(0,a.jsx)(eL,{children:"Size (m\xb2)"}),(0,a.jsx)(E.A,{fullWidth:!0,size:"small",type:"number",value:e.size,onChange:e=>d(n,"size",e.target.value),placeholder:"e.g. 396",sx:eI})]}),(0,a.jsxs)(o.A,{children:[(0,a.jsxs)(eL,{children:["Price (",r,")"]}),(0,a.jsx)(E.A,{fullWidth:!0,size:"small",value:e.price?(0,I.$g)(e.price):"",onChange:e=>d(n,"price",e.target.value),placeholder:"2,000,000",sx:{...eI,"& .MuiOutlinedInput-root":{...eI["& .MuiOutlinedInput-root"],"& input":{color:"#0f172a",padding:"8px 6px",fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"12px"}}},InputProps:{startAdornment:(0,a.jsx)(eo.A,{position:"start",sx:{mr:.3},children:(0,a.jsx)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"9px",fontWeight:700,color:"#0d9488",lineHeight:1},children:r})})}})]})]})]},n))}),(0,a.jsx)(o.A,{sx:{display:{xs:"none",sm:"block"},borderRadius:"16px",border:"1px solid #e2e8f0",overflow:"hidden"},children:(0,a.jsxs)(ez.A,{size:"small",children:[(0,a.jsx)(ew.A,{children:(0,a.jsxs)(eR.A,{children:[(0,a.jsx)(eT.A,{sx:{...eJ,width:32},children:"#"}),(0,a.jsx)(eT.A,{sx:eJ,children:"UPI"}),(0,a.jsx)(eT.A,{sx:{...eJ,width:115},children:"Size (m\xb2)"}),(0,a.jsxs)(eT.A,{sx:{...eJ,width:160},children:["Price (",r,")"]}),(0,a.jsx)(eT.A,{sx:{...eJ,width:40}})]})}),(0,a.jsx)(eW.A,{children:t.map((e,n)=>(0,a.jsxs)(eR.A,{sx:{"&:hover":{background:"#f8fafc"},"& td":{borderBottom:"1px solid #f1f5f9"}},children:[(0,a.jsx)(eT.A,{sx:{px:1.5,py:1},children:(0,a.jsx)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"12px",fontWeight:700,color:"#94a3b8"},children:n+1})}),(0,a.jsx)(eT.A,{sx:{px:1,py:.8},children:(0,a.jsx)(E.A,{fullWidth:!0,size:"small",value:e.upi,onChange:e=>d(n,"upi",e.target.value),onBlur:()=>p(n),placeholder:D.bp,error:f(n,e),helperText:f(n,e)?eD:void 0,sx:eI})}),(0,a.jsx)(eT.A,{sx:{px:1,py:.8},children:(0,a.jsx)(E.A,{fullWidth:!0,size:"small",type:"number",value:e.size,onChange:e=>d(n,"size",e.target.value),placeholder:"e.g. 300",sx:eI})}),(0,a.jsx)(eT.A,{sx:{px:1,py:.8},children:(0,a.jsx)(E.A,{fullWidth:!0,size:"small",value:e.price?(0,I.$g)(e.price):"",onCh
1ange:e=>d(n,"price",e.target.value),placeholder:"e.g. 14,500,000",sx:eI,InputProps:{startAdornment:(0,a.jsx)(eo.A,{position:"start",children:(0,a.jsx)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"10px",fontWeight:700,color:"#0d9488"},children:r})})}})}),(0,a.jsx)(eT.A,{sx:{px:1,py:.8},children:(0,a.jsx)(eb.A,{size:"small",onClick:()=>x(n),disabled:1===t.length,sx:{color:"#ef4444",opacity:1===t.length?.3:1,"&:hover":{background:"#fef2f2"}},children:(0,a.jsx)(ev.A,{sx:{fontSize:15}})})})]},n))})]})}),(0,a.jsx)(N.A,{onClick:()=>i([...t,(0,I.Dv)()]),startIcon:(0,a.jsx)(eF.A,{}),sx:{mt:1.5,fontFamily:'"Plus Jakarta Sans", sans-serif',fontWeight:700,fontSize:"13px",textTransform:"none",color:"#0d9488",borderRadius:"10px",border:"1.5px dashed #99f6e4",px:2,py:.8,background:"#f0fdfa","&:hover":{background:"#ccfbf1",borderColor:"#0d9488"}},children:"Add Plot"})]})},eN=e=>{let{form:t,set:r,plots:n,setPlots:i}=e;return(0,a.jsxs)(o.A,{sx:{animation:"".concat($," 0.3s ease both")},children:[(0,a.jsxs)(o.A,{display:"grid",gridTemplateColumns:{xs:"1fr",sm:"1fr 1fr"},gap:2,sx:{minWidth:0},children:[(0,a.jsx)(er,{label:"Zoning Type",required:!0,hint:"Land use classification for this site",children:(0,a.jsx)(el.A,{sx:{minWidth:0},children:(0,a.jsxs)(Q,{value:t.zoning,onChange:e=>r("zoning",e.target.value),displayEmpty:!0,sx:{minWidth:0,"& .MuiSelect-select":{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},children:[(0,a.jsx)(es.A,{value:"",sx:ee,children:(0,a.jsx)("em",{children:"Select zoningâ¦"})}),I.ed.map(e=>(0,a.jsx)(es.A,{value:e,sx:ee,children:e},e))]})})}),(0,a.jsx)(er,{label:"Road Width (m)",hint:"e.g. 9",children:(0,a.jsx)(X,{fullWidth:!0,type:"number",value:t.roadWidth,onChange:e=>r("roadWidth",e.target.value),placeholder:"e.g. 9"})})]}),(0,a.jsxs)(o.A,{display:"grid",gridTemplateColumns:{xs:"1fr",sm:"1fr 1fr"},gap:2,children:[(0,a.jsx)(er,{label:"Currency",required:!0,hint:"All plot prices use this currency",children:(0,a.jsx)(el.A,{fullWidth:!0,children:(0,a.jsx)(Q,{value:t.currency,onChange:e=>r("currency",e.target.value),children:I.yR.map(e=>(0,a.jsx)(es.A,{value:e,sx:ee,children:e},e))})})}),(0,a.jsx)(er,{label:"Ownership Type",required:!0,hint:"Who legally owns this site?",children:(0,a.jsx)(el.A,{fullWidth:!0,children:(0,a.jsx)(Q,{value:t.ownershipType,onChange:e=>r("ownershipType",e.target.value),children:I.G8.map(e=>(0,a.jsx)(es.A,{value:e,sx:ee,children:e},e))})})})]}),(0,a.jsx)(u.A,{sx:{mb:3,borderColor:"#f1f5f9"}}),(0,a.jsxs)(o.A,{mb:1.5,children:[(0,a.jsxs)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontWeight:700,fontSize:"13px",color:"#0f172a",mb:.5},children:["Available Plots"," ",(0,a.jsx)(o.A,{component:"span",sx:{color:"#ef4444"},children:"*"})]}),(0,a.jsx)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"12px",color:"#94a3b8",mb:2,lineHeight:1.6},children:"Enter only plots currently available for sale. Reserved or sold plots are managed separately after the listing goes live."}),(0,a.jsx)(eM,{plots:n,currency:t.currency,onChange:i})]}),(0,a.jsxs)(o.A,{mt:2.5,p:2.5,sx:{background:"#fffbeb",borderRadius:"14px",border:"1px solid #fcd34d"},children:[(0,a.jsx)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontWeight:700,fontSize:"13px",color:"#78350f",mb:.5},children:"\uD83D\uDCCB About UPI Numbers"}),(0,a.jsxs)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"12px",color:"#92400e",lineHeight:1.6},children:["The UPI is the official land ID assigned by Rwanda Land Management. Format:"," ",(0,a.jsx)("strong",{children:"D/SS/CC/VV/PPPP"})," â where D=Province, SS=District, CC=Sector, VV=Cell, PPPP=Parcel. Format: ",(0,a.jsx)("strong",{children:"Province/ District/ Sector/ Cell/ Parcel"})," â for example"," ",(0,a.jsx)("strong",{children:"1/03/07/04/4865"}),"."]})]})]})},eE=e=>{let{form:t,set:r,defaultTitle:n,defaultDescription:i}=e,s=(0,I.c8)(t.propertyType),c=(0,I.qs)(t.propertyType),d=(0,I.Mz)(t.propertyType);return(0,a.jsxs)(o.A,{sx:{animation:"".concat($," 0.3s ease both")},children:[(0,a.jsxs)(o.A,{mb:3,p:2.5,sx:{background:"#f0fdfa",borderRadius:"16px",border:"1px solid #99f6e4"},children:[(0,a.jsx)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontWeight:700,fontSize:"13px",color:"#0f766e",mb:.5},children:"\uD83E\uDD16 Auto-generated from your details"}),(0,a.jsx)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"12px",color:"#0d9488",lineHeight:1.6},children:"We've written a title and description based on what you entered. Click each to review and edit. If you leave them as-is, the auto-generated text will be saved."})]}),(0,a.jsx)(ei,{label:"Listing Title",value:t.title,defaultValue:n,onChange:e=>r("title",e),placeholder:n||"Enter a title for your listingâ¦"}),(0,a.jsx)(ei,{label:"Description",value:t.description,defaultValue:i,onChange:e=>
1r("description",e),multiline:!0,rows:6,placeholder:i||"Describe the propertyâ¦"}),(0,a.jsxs)(o.A,{mt:2,p:2,sx:{background:"#fffbeb",borderRadius:"13px",border:"1px solid #fcd34d"},children:[(0,a.jsx)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"12px",color:"#78350f",fontWeight:600,mb:.5},children:"\uD83D\uDCA1 Tips for a great listing:"}),(0,a.jsxs)(o.A,{component:"ul",sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"12px",color:"#92400e",lineHeight:1.8,pl:2,m:0},children:[(0,a.jsx)("li",{children:"Mention nearby landmarks (e.g. Kigali Convention Centre, Kigali Heights)"}),s?(0,a.jsx)("li",{children:"Describe road access, terrain, and what makes this site ideal for development"}):c?(0,a.jsx)("li",{children:"Describe available floor plans, unit types, and target buyers"}):d?(0,a.jsx)("li",{children:"Include current construction stage, materials, and contractor details"}):(0,a.jsx)("li",{children:"Highlight unique features (views, garden, backup power, water tank)"}),s?(0,a.jsx)("li",{children:"Mention proximity to schools, roads, or town centres"}):c?(0,a.jsx)("li",{children:"Mention completion dates, payment plans, or developer credentials"}):d?(0,a.jsx)("li",{children:"Mention expected completion, structural drawings availability, and permits"}):(0,a.jsx)("li",{children:"Be specific about finishes (tiles, fitted kitchen, wardrobe)"}),(0,a.jsx)("li",{children:"Mention accessibility (paved road, security, parking)"})]})]})]})},eU=e=>{let{form:t,set:r,setStep:n,setFieldErrors:i,defaultTitle:s}=e,c=(0,I.c8)(t.propertyType),d=(0,I.qs)(t.propertyType),p=(0,I.Mz)(t.propertyType),f=c?"â 6-step flow (Site & Plots combined)":d?"â Development listing (presale / estate)":p?"â Construction Site listing (stage + completion date)":"";return(0,a.jsxs)(o.A,{sx:{animation:"".concat($," 0.3s ease both")},children:[(0,a.jsxs)(o.A,{display:"grid",gridTemplateColumns:{xs:"1fr",sm:"1fr 1fr"},gap:2,children:[(0,a.jsx)(er,{label:"Property Type",required:!0,hint:"Select the type that best describes this property",children:(0,a.jsx)(el.A,{fullWidth:!0,children:(0,a.jsxs)(Q,{value:t.propertyType,onChange:e=>{r("propertyType",e.target.value),r("bedrooms",""),r("bathrooms",""),r("totalUnits",""),r("constructionStage",""),r("expectedCompletion",""),n(0),i([])},displayEmpty:!0,children:[(0,a.jsx)(es.A,{value:"",disabled:!0,sx:ee,children:(0,a.jsx)("em",{children:"Select a typeâ¦"})}),I.uh.map(e=>(0,a.jsx)(es.A,{value:e,sx:ee,children:e},e))]})})}),(0,a.jsx)(er,{label:"Listing Type",hint:"All listings are for sale",children:(0,a.jsx)(o.A,{sx:{display:"flex",alignItems:"center",height:"48px",px:2,borderRadius:"13px",background:"#f0fdfa",border:"1.5px solid #99f6e4"},children:(0,a.jsx)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontWeight:700,fontSize:"14px",color:"#0f766e"},children:"\uD83C\uDFF7ï¸ For Sale"})})})]}),t.propertyType&&(0,a.jsxs)(o.A,{mt:1,p:2,sx:{background:"#f0fdfa",borderRadius:"14px",border:"1px solid #99f6e4"},children:[(0,a.jsxs)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"13px",color:"#0f766e",fontWeight:600},children:["â ",(0,a.jsx)("strong",{children:t.propertyType})," for ",(0,a.jsx)("strong",{children:"Sale"}),f&&(0,a.jsx)(o.A,{component:"span",sx:{ml:1,fontSize:"11px",color:"#0d9488"},children:f})]}),s&&(0,a.jsxs)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"12px",color:"#0d9488",mt:.5},children:['Preview title: "',s,'"']})]})]})};var eB=r(95707);let eq=e=>{let{form:t,set:r}=e,n=(0,I.c8)(t.propertyType),i=(0,I.jB)(t.propertyType),{items:l,loading:s}=(0,eB.T$)(),{items:c,loading:d}=(0,eB.Fv)(t.provinceCode),{items:p,loading:f}=(0,eB.Jl)(t.districtCode),{items:x,loading:u}=(0,eB.tO)(t.sectorCode),{items:h,loading:g}=(0,eB.L3)(t.cellCode),m=(e,t)=>{r("province",t),r("provinceCode",e),r("district",""),r("districtCode",null),r("sector",""),r("sectorCode",null),r("cell",""),r("cellCode",null),r("village","")},b=(e,t)=>{r("district",t),r("districtCode",e),r("sector",""),r("sectorCode",null),r("cell",""),r("cellCode",null),r("village","")},y=(e,t)=>{r("sector",t),r("sectorCode",e),r("cell",""),r("cellCode",null),r("village","")},j=(e,t)=>{r("cell",t),r("cellCode",e),r("village","")};return(0,a.jsxs)(o.A,{sx:{animation:"".concat($," 0.3s ease both")},children:[(0,a.jsxs)(o.A,{display:"grid",gridTemplateColumns:{xs:"1fr",sm:"1fr 1fr 1fr"},gap:2,children:[(0,a.jsx)(er,{label:"Province",required:!0,hint:"e.g. Kigali",children:s?(0,a.jsx)(ea,{}):(0,a.jsx)(el.A,{fullWidth:!0,children:(0,a.jsxs)(Q,{value:t.province,onChange:e=>{let t=l.find(t=>t.name===e.target.value);t&&m(Number(t.code),t.name)}
1,displayEmpty:!0,children:[(0,a.jsx)(es.A,{value:"",disabled:!0,sx:ee,children:(0,a.jsx)("em",{children:"Select provinceâ¦"})}),l.map(e=>(0,a.jsx)(es.A,{value:e.name,sx:ee,children:e.name},e.code))]})})}),(0,a.jsx)(er,{label:"District",required:!0,hint:"e.g. Gasabo",children:d&&t.provinceCode?(0,a.jsx)(ea,{}):(0,a.jsx)(el.A,{fullWidth:!0,children:(0,a.jsxs)(Q,{value:t.district,onChange:e=>{let t=c.find(t=>t.name===e.target.value);t&&b(Number(t.code),t.name)},disabled:!t.provinceCode,displayEmpty:!0,children:[(0,a.jsx)(es.A,{value:"",sx:ee,children:(0,a.jsx)("em",{children:"Select districtâ¦"})}),c.map(e=>(0,a.jsx)(es.A,{value:e.name,sx:ee,children:e.name},e.code))]})})}),(0,a.jsx)(er,{label:"Sector",required:!0,hint:"e.g. Kimironko",children:f&&t.districtCode?(0,a.jsx)(ea,{}):(0,a.jsx)(el.A,{fullWidth:!0,children:(0,a.jsxs)(Q,{value:t.sector,onChange:e=>{let t=p.find(t=>t.name===e.target.value);t&&y(String(t.code),t.name)},disabled:!t.districtCode,displayEmpty:!0,children:[(0,a.jsx)(es.A,{value:"",sx:ee,children:(0,a.jsx)("em",{children:"Select sectorâ¦"})}),p.map(e=>(0,a.jsx)(es.A,{value:e.name,sx:ee,children:e.name},e.code))]})})})]}),(0,a.jsxs)(o.A,{display:"grid",gridTemplateColumns:{xs:"1fr",sm:"1fr 1fr"},gap:2,children:[(0,a.jsx)(er,{label:"Cell",required:!0,hint:"Administrative cell within the sector",children:u&&t.sectorCode?(0,a.jsx)(ea,{}):(0,a.jsx)(el.A,{fullWidth:!0,children:(0,a.jsxs)(Q,{value:t.cell,onChange:e=>{let t=x.find(t=>t.name===e.target.value);t&&j(Number(t.code),t.name)},disabled:!t.sectorCode,displayEmpty:!0,children:[(0,a.jsx)(es.A,{value:"",sx:ee,children:(0,a.jsx)("em",{children:"Select cellâ¦"})}),x.map(e=>(0,a.jsx)(es.A,{value:e.name,sx:ee,children:e.name},e.code))]})})}),(0,a.jsx)(er,{label:"Village",hint:"Optional â administrative village within the cell",children:g&&t.cellCode?(0,a.jsx)(ea,{}):h.length>0?(0,a.jsx)(el.A,{fullWidth:!0,children:(0,a.jsxs)(Q,{value:t.village,onChange:e=>r("village",e.target.value),disabled:!t.cellCode,displayEmpty:!0,children:[(0,a.jsx)(es.A,{value:"",sx:ee,children:(0,a.jsx)("em",{children:"Select village (optional)â¦"})}),h.map(e=>(0,a.jsx)(es.A,{value:e.name,sx:ee,children:e.name},e.code))]})}):(0,a.jsx)(X,{fullWidth:!0,value:t.village,onChange:e=>r("village",e.target.value),placeholder:"e.g. Nyarutarama (optional)",disabled:!t.cellCode})})]}),(0,a.jsxs)(o.A,{display:"grid",gridTemplateColumns:{xs:"1fr",sm:i?"1fr 1fr":"1fr"},gap:2,children:[(0,a.jsx)(er,{label:n?"Proximity / Landmark":"Street Address",hint:n?"e.g. 50m from Kaburembo, near Adventist school":"e.g. KG 7 Ave â optional",children:(0,a.jsx)(X,{fullWidth:!0,value:t.streetAddress,onChange:e=>r("streetAddress",e.target.value),placeholder:n?"e.g. 50m from Kaburembo junction":"e.g. KG 7 Ave, KN 3 Rdâ¦"})}),i&&(0,a.jsx)(er,{label:"Apartment Number",hint:"e.g. Apt 3B, Floor 2, Unit 104",children:(0,a.jsx)(X,{fullWidth:!0,value:t.apartmentNumber,onChange:e=>r("apartmentNumber",e.target.value),placeholder:"e.g. Apt 3B"})})]})]})},eO=e=>{let{form:t,set:r}=e,[i,s]=(0,n.useState)(!1),c=""!==t.upi.trim(),d=c&&(0,D.$i)(t.upi),p=(i||c)&&c&&!(0,D.$i)(t.upi);return(0,a.jsxs)(o.A,{sx:{animation:"".concat($," 0.3s ease both")},children:[(0,a.jsx)(o.A,{display:"grid",gridTemplateColumns:{xs:"1fr",sm:"1fr 1fr"},gap:2,children:(0,a.jsx)(er,{label:"UPI Number *",hint:D.NE,children:(0,a.jsx)(X,{fullWidth:!0,value:t.upi,onChange:e=>r("upi",e.target.value),onBlur:()=>s(!0),placeholder:D.bp,error:p,helperText:p?"Invalid format. Expected D/SS/CC/VV/PPPP â e.g. 1/02/05/03/1234":d?"â Valid UPI format":"Required â must be in correct format to continue",sx:{"& .MuiFormHelperText-root":{color:p?"#ef4444":d?"#16a34a":"#94a3b8"}}})})}),(0,a.jsxs)(o.A,{mt:2.5,p:2.5,sx:{background:"#fffbeb",borderRadius:"14px",border:"1px solid #fcd34d"},children:[(0,a.jsx)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontWeight:700,fontSize:"13px",color:"#78350f",mb:.5},children:"\uD83D\uDCCB About UPI Numbers"}),(0,a.jsxs)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"12px",color:"#92400e",lineHeight:1.6},children:["The UPI (Unique Parcel Identifier) is the official land ID assigned by Rwanda Land Management. Format: ",(0,a.jsx)("strong",{children:"D/SS/CC/VV/PPPP"})," â Province/District/Sector/Cell/Parcel (e.g. ",(0,a.jsx)("em",{children:"1/02/05/03/1234"}),"). You must enter a valid UPI to submit this listing."]})]})]})},eV=["Basic Info","Location","Details","Legal","Media","Contact","Title & Bio"],e_=[(0,a.jsx)(j.A,{sx:{fontSize:18}}
1,"s0"),(0,a.jsx)(S.A,{sx:{fontSize:18}},"s1"),(0,a.jsx)(v.A,{sx:{fontSize:18}},"s2"),(0,a.jsx)(A.A,{sx:{fontSize:18}},"s3"),(0,a.jsx)(k.A,{sx:{fontSize:18}},"s4"),(0,a.jsx)(C.A,{sx:{fontSize:18}},"s5"),(0,a.jsx)(P.A,{sx:{fontSize:18}},"s6")],eH=["Basic Info","Location","Site & Plots","Media","Contact","Title & Bio"],eZ=[(0,a.jsx)(j.A,{sx:{fontSize:18}},"s0"),(0,a.jsx)(S.A,{sx:{fontSize:18}},"s1"),(0,a.jsx)(A.A,{sx:{fontSize:18}},"s2"),(0,a.jsx)(k.A,{sx:{fontSize:18}},"s3"),(0,a.jsx)(C.A,{sx:{fontSize:18}},"s4"),(0,a.jsx)(P.A,{sx:{fontSize:18}},"s5")],e$=(e,t,r)=>new Promise((a,n)=>{let i=(0,R.bp)((0,R.KR)(z.IG,t),e);i.on("state_changed",e=>r(Math.round(e.bytesTransferred/e.totalBytes*100)),n,async()=>a(await (0,R.qk)(i.snapshot.ref)))}),eK=e=>{let{step:t,steps:r,icon:n}=e;return(0,a.jsx)(o.A,{sx:{display:{xs:"block",sm:"none"},mb:2},children:(0,a.jsxs)(o.A,{sx:{borderRadius:"16px",border:"1px solid #e2e8f0",background:"#fff",px:2.5,py:1.8},children:[(0,a.jsxs)(o.A,{display:"flex",alignItems:"center",justifyContent:"space-between",mb:1.2,children:[(0,a.jsxs)(o.A,{display:"flex",alignItems:"center",gap:1.2,children:[(0,a.jsx)(o.A,{sx:{width:34,height:34,borderRadius:"10px",flexShrink:0,background:"linear-gradient(135deg,#0d9488,#0f766e)",display:"flex",alignItems:"center",justifyContent:"center",color:"#fff",boxShadow:"0 4px 10px rgba(13,148,136,0.25)"},children:n}),(0,a.jsxs)(o.A,{children:[(0,a.jsx)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontWeight:800,fontSize:"15px",color:"#0f172a",lineHeight:1.1},children:r[t]}),(0,a.jsxs)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"11px",color:"#94a3b8",fontWeight:500},children:["Step ",t+1," of ",r.length]})]})]}),(0,a.jsx)(o.A,{display:"flex",gap:.5,alignItems:"center",children:r.map((e,r)=>(0,a.jsx)(o.A,{sx:{width:r===t?18:6,height:6,borderRadius:"3px",background:r<t?"#14b8a6":r===t?"linear-gradient(90deg,#0d9488,#14b8a6)":"#e2e8f0",transition:"all 0.25s"}},r))})]}),(0,a.jsx)(o.A,{sx:{height:4,borderRadius:"2px",background:"#f1f5f9",overflow:"hidden"},children:(0,a.jsx)(o.A,{sx:{height:"100%",width:"".concat((t+1)/r.length*100,"%"),background:"linear-gradient(90deg,#0d9488,#14b8a6)",borderRadius:"2px",transition:"width 0.35s ease"}})})]})})},eG=e=>{let{mode:t,LayoutComponent:r}
1=e,j=(0,i.useRouter)(),[S,v]=(0,n.useState)(0),[A,k]=(0,n.useState)(I.$n),[C,P]=(0,n.useState)([(0,I.Dv)()]),[R,T]=(0,n.useState)([]),[W,J]=(0,n.useState)([]),[L,M]=(0,n.useState)([]),[N,E]=(0,n.useState)(!1),U=(0,n.useRef)(null),[B,q]=(0,n.useState)([]),[O,V]=(0,n.useState)([]),[_,H]=(0,n.useState)([]),[Z,$]=(0,n.useState)(!1),[X,Q]=(0,n.useState)(""),ee=(0,n.useRef)(null),[et,er]=(0,n.useState)(!1),[ea,ei]=(0,n.useState)(0),[eo,el]=(0,n.useState)(""),[es,ec]=(0,n.useState)(!1),[ed,ef]=(0,n.useState)(""),ex="admin"===t,eu=(0,I.c8)(A.propertyType),eg=(0,I.qs)(A.propertyType),em=(0,I.Mz)(A.propertyType),eb=eu?eH:eV,ey=eu?eZ:e_,ej=eu?I.Rc.site:I.Rc.standard,eS=ex?"/admin":"/realtor",ev=C.map(e=>Number(e.price)).filter(Boolean),eA=ev.length?Math.min(...ev):void 0,ek=(0,I.HM)(A.propertyType,A.listingType,A.bedrooms,A.district,A.sector,eu?C.length:void 0,eu?eA:void 0,A.currency,eg?A.totalUnits:void 0,em?A.constructionStage:void 0),eC=(0,I.dX)(A.propertyType,A.listingType,A.bedrooms,A.bathrooms,A.landSize,A.buildingSize,A.district,A.sector,A.price,A.currency,A.zoning,eu?C:void 0,eu?A.roadWidth:void 0,eg?A.totalUnits:void 0,em?A.constructionStage:void 0,em?A.expectedCompletion:void 0),[ez,ew]=(0,n.useState)(!1);(0,n.useEffect)(()=>{try{let e=localStorage.getItem("upload_property_draft"),t=localStorage.getItem("upload_property_step"),r=localStorage.getItem("upload_property_plots");e&&k(t=>({...t,...JSON.parse(e)})),t&&v(Number(t)),r&&P(JSON.parse(r))}catch(e){}ew(!0)},[]),(0,n.useEffect)(()=>{if(ez)try{localStorage.setItem("upload_property_draft",JSON.stringify(A))}catch(e){}},[A,ez]),(0,n.useEffect)(()=>{if(ez)try{localStorage.setItem("upload_property_step",String(S))}catch(e){}},[S,ez]),(0,n.useEffect)(()=>{if(ez)try{localStorage.setItem("upload_property_plots",JSON.stringify(C))}catch(e){}},[C,ez]);let eR=()=>{try{localStorage.removeItem("upload_property_draft"),localStorage.removeItem("upload_property_step"),localStorage.removeItem("upload_property_plots")}catch(e){}},eT=(0,n.useCallback)((e,t)=>k(r=>({...r,[e]:t})),[]),eW={0:[{key:"propertyType",label:"Property Type"}],1:[{key:"province",label:"Province"},{key:"district",label:"District"},{key:"sector",label:"Sector"},{key:"cell",label:"Cell"}],2:[{key:"price",label:"Price"},{key:"landSize",label:"Land Size"},{key:"zoning",label:"Zoning Type"}],3:[{key:"ownershipType",label:"Ownership Type"}],4:[],5:[{key:"contactName",label:"Contact Name"},{key:"contactPhone",label:"Contact Phone"}],6:[]},eF={0:[{key:"propertyType",label:"Property Type"}],1:[{key:"province",label:"Province"},{key:"district",label:"District"},{key:"sector",label:"Sector"},{key:"cell",label:"Cell"}],2:[{key:"zoning",label:"Zoning Type"},{key:"ownershipType",label:"Ownership Type"}],3:[],4:[{key:"contactName",label:"Contact Name"},{key:"contactPhone",label:"Contact Phone"}],5:[]},eD=e=>{var t;let r=[];return(null!=(t=(eu?eF:eW)[e])?t:[]).forEach(e=>{let{key:t,label:a}=e;A[t]||r.push("".concat(a," is required"))}),e===ej.media&&W.length<2&&r.push("At least 2 photos are required"),eu&&2===e&&!C.some(e=>e.size&&e.price)&&r.push("At least 1 plot with size and price is required"),!eu&&3===e&&(A.upi.trim()?(0,D.$i)(A.upi)||r.push("UPI format is invalid â expected D/SS/CC/VV/PPPP (e.g. 1/02/05/03/1234)"):r.push("UPI is required â enter it in format D/SS/CC/VV/PPPP (e.g. 1/02/05/03/1234)")),r},eI=async()=>{let e=eD(S);if(e.length)return void T(e);T([]),er(!0),ef("");try{let e=Date.now(),r=W.length+B.length||1;el("Optimising photosâ¦");let a=await F(W),n=[];for(let t=0;t<a.length;t++)el("Uploading photo ".concat(t+1," of ").concat(a.length,"â¦")),n.push(await e$(a[t].file,"listings/images/property_".concat(e,"_").concat(t,".webp"),e=>ei(Math.round((t+e/100)/r*100))));let i=[];for(let t=0;t<B.length;t++){el("Uploading video ".concat(t+1," of ").concat(B.length,"â¦"));let a=B[t].name.split(".").pop();i.push(await e$(B[t],"listings/videos/property_".concat(e,"_").concat(t,".").concat(a),e=>ei(Math.round((W.length+t+e/100)/r*100))))}el("Saving listing to databaseâ¦");let o=A.title||ek,l=A.description||eC,s=eu?C.filter(e=>e.size&&e.price).map(e=>({upi:e.upi||"Unknown",size:Number(e.size),price:Number(e.price)})):null,c=eu&&(null==s?void 0:s.length)?Math.min(...s.map(e=>e.price)):Number((0,I.gg)(A.price)),d=(0,w.H9)(z.db,"meta","listingCounter"),p=(0,w.rJ)(z.db,"listings");await (0,w.c4)(z.db,async e=>{var r,a,f,x;let u=await e.get(d),h=(u.exists()?u.data().count:0)+1,g=(0,w.H9)(p);e.set(g,{title:o,description:l,propertyType:A.propertyType,listingType:"Sale",price:c,currency:A.currency,priceNegotiable:A.priceNegotiable,province:A.province,district:A.district,sector:A.sector,cell:A.cell,village:A.village||null,streetAddress:A.streetAddress,apartmentNumber:A.apartmentNumber,landSize:eu?null:A.landSize?Number(A.landSize):null,buildingSize:eu?null:A.buildingSize?Number(A.buildingSize):null,bedrooms:eu?null:A.bedrooms?Number(A.bedrooms):null,bathrooms:eu?null:A.bathrooms?Number(A.bathrooms):null,parkingSpots:eu?null:A.parkingSpots?Number(A.parkingSpots):null,totalUnits:eg&&A.totalUnits?Number(A.totalUnits):null,constructionStage:em&&A.constructionStage||null,expectedCompletion:em&&A.expectedCompletion||null,zoning:A.zoning,upi:eu?null:A.upi,ownershipType:A.ownershipType,videoUrl:A.videoUrl,isSite:eu,plots:s,roadWidth:eu&&A.roadWidth?Number(A.roadWidth):null,images:n,videos:i,status:"pending_review",featured:!1,propertyNumber:h,contactInfo:{name:A.contactName,email:A.contactEmail,phone:"+".concat(A.contactPhone),role:A.contactRole},uploadedBy:{uid:null!=(f=null==(r=z.j2.currentUser)?void 0:r.uid)?f:null,email:null!=(x=null==(a=z.j2.currentUser)?void 0:a.email)?x:null,role:t},listedAt:(0,w.O5)(),updatedAt:(0,w.O5)()}
1),e.set(d,{count:h},{merge:!0})}),ec(!0),eR()}catch(e){ef(e instanceof Error?e.message:"An error occurred. Please try again.")}finally{er(!1)}},eJ=ex?{title:"Upload Property",subtitle:"Admin listings are reviewed before they go live.",badge:"Create Listing",pageTitle:"Admin â Upload Property",quickActions:[{label:"Dashboard",href:"/admin"},{label:"Listings",href:"/admin/listings"}]}:{title:"List a Property",subtitle:"Submit a property for review. Our team will approve it shortly.",badge:"New Listing",pageTitle:"Realtor â Upload Property",quickActions:[{label:"Dashboard",href:"/realtor"},{label:"My Listings",href:"/realtor/listings"}]};return es?(0,a.jsx)(r,{...eJ,children:(0,a.jsx)(s.A,{maxWidth:"sm",sx:{py:6},children:(0,a.jsxs)(c.A,{elevation:0,sx:{borderRadius:"28px",p:{xs:3,sm:6},textAlign:"center",border:"1px solid #e2e8f0"},children:[(0,a.jsx)(d.A,{sx:{width:88,height:88,mx:"auto",mb:3,background:"linear-gradient(135deg,#0d9488,#14b8a6)",boxShadow:"0 12px 32px rgba(13,148,136,0.28)"},children:(0,a.jsx)(m.A,{sx:{fontSize:48,color:"#fff"}})}),(0,a.jsx)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontWeight:800,fontSize:"26px",color:"#0f172a",mb:1},children:"â
Listing Submitted!"}),(0,a.jsx)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"14px",color:"#64748b",mb:4},children:ex?"Your listing is under review and will go live once approved.":"Your listing is under review. We'll notify you once it goes live."}),(0,a.jsxs)(o.A,{display:"flex",gap:2,justifyContent:"center",flexWrap:"wrap",children:[(0,a.jsx)(G,{variant:"outlined",onClick:()=>{ec(!1),k(I.$n),P([(0,I.Dv)()]),J([]),M([]),q([]),V([]),H([]),v(0),ei(0),T([]),eR()},sx:{borderColor:"#e2e8f0",color:"#475569"},children:"Add Another Listing"}),(0,a.jsx)(Y,{onClick:()=>j.push(eS),children:"Go to Dashboard"})]})]})})}):(0,a.jsx)(r,{...eJ,children:(0,a.jsxs)(s.A,{maxWidth:"lg",sx:{py:{xs:1,sm:2},px:{xs:1,sm:2,md:3}},children:[(0,a.jsx)(c.A,{elevation:0,sx:{display:{xs:"none",sm:"block"},borderRadius:"20px",mb:3,p:{sm:2,md:3},border:"1px solid #e2e8f0"},children:(0,a.jsx)(p.A,{activeStep:S,alternativeLabel:!0,children:eb.map((e,t)=>(0,a.jsx)(f.A,{children:(0,a.jsx)(x.A,{StepIconComponent:()=>(0,a.jsx)(o.A,{sx:{width:38,height:38,borderRadius:"12px",display:"flex",alignItems:"center",justifyContent:"center",background:S>t?"linear-gradient(135deg,#0d9488,#14b8a6)":S===t?"linear-gradient(135deg,#0d9488,#0f766e)":"#f1f5f9",color:S>=t?"#fff":"#94a3b8",boxShadow:S===t?"0 4px 12px rgba(13,148,136,0.3)":"none",transition:"all 0.3s"},children:S>t?(0,a.jsx)(m.A,{sx:{fontSize:18}}):ey[t]}),sx:{"& .MuiStepLabel-label":{fontSize:"10px",fontFamily:'"Plus Jakarta Sans", sans-serif',fontWeight:600,mt:.5}},children:e})},e))})}),(0,a.jsx)(eK,{step:S,steps:eb,icon:ey[S]}),(0,a.jsxs)(K,{elevation:0,children:[(0,a.jsx)(en,{active:S,total:eb.length}),(0,a.jsxs)(o.A,{display:"flex",alignItems:"center",gap:1.5,mb:3,sx:{display:{xs:"none",sm:"flex"}},children:[(0,a.jsx)(o.A,{sx:{width:44,height:44,borderRadius:"14px",flexShrink:0,background:"linear-gradient(135deg,#0d9488,#0f766e)",display:"flex",alignItems:"center",justifyContent:"center",color:"#fff",boxShadow:"0 6px 16px rgba(13,148,136,0.25)"},children:ey[S]}),(0,a.jsxs)(o.A,{children:[(0,a.jsx)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontWeight:800,fontSize:"20px",color:"#0f172a"},children:eb[S]}),(0,a.jsxs)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"12px",color:"#94a3b8"},children:["Step ",S+1," of ",eb.length]})]})]}),(0,a.jsx)(u.A,{sx:{mb:3,borderColor:"#f1f5f9",display:{xs:"none",sm:"block"}}}),R.length>0&&(0,a.jsxs)(h.A,{severity:"error",sx:{mb:2.5,borderRadius:"14px",fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"13px"},onClose:()=>T([]),children:[(0,a.jsx)(l.A,{sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontWeight:700,fontSize:"13px",mb:.5},children:"Please fix the following before continuing:"}),R.map(e=>(0,a.jsx)(o.A,{component:"li",sx:{fontFamily:'"Plus Jakarta Sans", sans-serif',fontSize:"13px",ml:1},children:e},e))]}),0===S&&(0,a.jsx)(eU,{form:A,set:eT,setStep:v,setFieldErrors:T,defaultTitle:ek}),1===S&&(0,a.jsx)(eq,{form:A,set:eT}),!eu&&2===S&&(0,a.jsx)(ep,{form:A,set:eT}),!eu&&3===S&&(0,a.jsx)(eO,{form:A,set:eT}),eu&&2===S&&(0,a.jsx)(eN,{form:A,set:eT,plots:C,setPlots:P}),S===ej.media&&(0,a.jsx)(eP,{propertyType:A.propertyType,images:W,imagePreviews:L,imageDragOver:N,imgRef:U,setImageDragOver:E,handleImageAdd:e=>{if(!e)return;let t=Array.from(e).filter(e=>e.type.startsWith("image/"));J(e=>[...e,...t]),M(e=>[...e,...t.map(e=>URL.createObjectURL(e))])},removeImage:e=>{URL.revokeObjectURL(L[e]),J(t=>t.filter((t,r)=>r!==e)),M(t=>t.filter((t,r)=>r!==e))},setPreviewImage:e=>{0!==e&&(J([W[e],...W.filter((t,r)=>r!==e)]),M([L[e],...L.filter((t,r)=>r!==e)]))},videoFiles:B,videoNames:O,videoPreviews:_,videoDragOver:Z,videoError:X,vidRef:ee,setVideoDragOver:$,handleVideoAdd:e=>{if(!e)return;Q("");let t=Array.from(e).filter(e=>I.EA.includes(e.type)||/\.(mp4|mov|webm|avi|mkv|3gp)$/i.test(e.name));if(!t.length)return void Q("No supported video files found (mp4, mov, webm, avi, mkv, 3gp).");q(e=>[...e,...t]),V(e=>[...e,...t.map(e=>e.name)]),H(e=>[...e,...t.map(e=>URL.createObjectURL(e))])},removeVideo:e=>{URL.revokeObjectURL(_[e]),q(t=>t.filter((t,r)=>r!==e)),V(t=>t.filter((t,r)=>r!==e)),H(t=>t.filter((t,r)=>r!==e))},setVideoError:Q}),S===ej.contact&&(0,a.jsx)(eh,{form:A,set:eT,uploading:et,uploadLabel:eo,uploadProgress:ea,error:ed,setError:ef}),S===eb.length-1&&(0,a.jsx)(eE,{form:A,set:eT,defaultTitle:ek,defaultDescription:eC})]},"".concat(S,"-").concat(eu)),(0,a.jsxs)(o.A,{display:"flex",justifyContent:"space-between",mt:2,gap:2,sx:{px:{xs:0,sm:0}},children:[(0,a.jsx)(G,{variant:"outlined",disabled:0===S,onClick:()=>{T([]),v(e=>e-1)},startIcon:(0,a.jsx)(b.A,{}),sx:{borderColor:"#e2e8f0",color:"#475569","&:hover":{borderColor:"#0d9488",color:"#0d9488"},flex:{xs:1,sm:"unset"}},children:"Back"}),S<eb.length-1?(0,a.jsx)(Y,{onClick:()=>{let e=eD(S);if(e.length)return void T(e);T([]),v(e=>e+1)},endIcon:(0,a.jsx)(y.A,{}),sx:{flex:{xs:1,sm:"unset"}},children:"Continue"}):(0,a.jsx)(Y,{onClick:eI,disabled:et,sx:{flex:{xs:1,sm:"unset"}},children:et?(0,a.jsx)(g.A,{size:18,sx:{color:"#fff"}}):"Submit for Review"})]})]})})}},30695:(e,t,r)=>{r.d(t,{$g:()=>y,$n:()=>n,BF:()=>h,Dv:()=>a,EA:()=>d,EM:()=>p,G8:()=>s,HM:()=>S,Mz:()=>u,Rc:()=>b,V:()=>g,c8:()=>f,dX:()=>v,ed:()=>l,gg:()=>j,jB:()=>m,p_:()=>o,qs:()=>x,uh:()=>i,yR:()=>c});let a=()=>({upi:"",size:"",price:""}),n={propertyType:"",listingType:"Sale",price:"",currency:"RWF",priceNegotiable:!0,province:"",district:"",sector:"",cell:"",village:"",provinceCode:null,districtCode:null,sectorCode:null,cellCode:null,streetAddress:"",apartmentNumber:"",landSize:"",buildingSize:"",bedrooms:"",bathrooms:"",parkingSpots:"",zoning:"",upi:"",ownershipType:"Freehold",videoUrl:"",contactName:"",contactEmail:"",contactPhone:"250",contactRole:"",title:"",description:"",roadWidth:"",totalUnits:"",constructionStage:"",expectedCompletion:""},i=["House","Apartment","Land","Villa","Commercial","Townhouse","Multi-Plot Site","Townhouse Development","Apartment Block","Construction Site","Other"],o=["Sale"],l=["R1 â Low Density Residential","R1A â Low Density Residential (Special Control)","R2 â Medium Density Residential","R3 â High Density Residential","R4 â Very High Density Residential","C1 â Neighborhood Commercial","C2 â Community Commercial","C3 â Central Bu
1siness District (CBD)","Mixed Use â Residential/Commercial","I1 â Light Industrial","I2 â Heavy Industrial","Special Economic Zone (SEZ)","Institutional â Schools, Hospitals, Government","Public Facilities","Agricultural","Agro-forestry","Rural Settlement","Green Zone","Wetland Protection Zone","Forest Protection Zone","Water Body Protection Zone","Slope Protection Zone","Transport Corridor","Road Reserve","Utility / Infrastructure Zone","Tourism Zone","Recreational / Leisure Zone","Cultural / Heritage Zone"],s=["Freehold","Leasehold","Co-ownership","Unknown","Other"],c=["RWF","USD","EUR","CAD"],d=["video/mp4","video/quicktime","video/webm","video/x-msvideo","video/x-matroska","video/3gpp"],p=["Land / Foundation","Substructure (below ground)","Superstructure (walls up)","Roofing","Finishing (interior works)","Completed â awaiting handover"],f=e=>"Multi-Plot Site"===e,x=e=>"Townhouse Development"===e||"Apartment Block"===e,u=e=>"Construction Site"===e,h=e=>["House","Apartment","Villa","Townhouse","Commercial","Townhouse Development","Apartment Block"].includes(e),g=e=>["House","Apartment","Villa","Townhouse"].includes(e),m=e=>"Apartment"===e,b={standard:{media:4,contact:5,titleBio:6},site:{media:3,contact:4,titleBio:5}};function y(e){let t=e.replace(/\D/g,"");return t?Number(t).toLocaleString():""}function j(e){return e.replace(/,/g,"")}function S(e,t,r,a,n,i,o,l,s,c){if(!e)return"";let d=n?" in ".concat(n).concat(a?", "+a:""):a?" in ".concat(a):"";if(f(e)){let e=o?" â From ".concat(l," ").concat(Number(o).toLocaleString()):"";return"".concat(i?"".concat(i,"-Plot Site"):"Multi-Plot Site").concat(d).concat(e)}return x(e)?"".concat(s?"".concat(s,"-Unit "):"").concat(e).concat(d," for Sale"):u(e)?"Construction Site".concat(c?" (".concat(c,")"):"").concat(d," for Sale"):"".concat(r?"".concat(r,"-Bedroom "):"").concat(e).concat(d," ").concat("Rent"===t?"for Rent":"for Sale")}function v(e,t,r,a,n,i,o,l,s,c,d,p,h,g,m,b){if(!e)return"";let y=[l,o].filter(Boolean).join(", ");if(f(e)){var j,S;let e=null!=(j=null==p?void 0:p.length)?j:0,t=null!=(S=null==p?void 0:p.map(e=>Number(e.price)).filter(Boolean))?S:[],r=t.length?Math.min(...t):null,a=t.length?Math.max(...t):null;return"A well-planned multi-plot site".concat(y?" in "+y+", Rwanda":""," comprising ").concat(e," available plot").concat(1!==e?"s":"",".")+(r&&a?" Prices from ".concat(c," ").concat(r.toLocaleString()).concat(r!==a?" to "+c+" "+a.toLocaleString():"","."):"")+(h?" Road width: ".concat(h,"m."):"")+(d?" Zoned ".concat(d,"."):"")+" Title documents available. Contact us to reserve your plot."}if(x(e)){let t=n?" Land size: ".concat(n," sqm."):"",r=s?" Starting from ".concat(c," ").concat(Number(s).toLocaleString(),"."):"";return"".concat(e," development").concat(y?" in "+y+", Rwanda":""," offering ").concat(g?"".concat(g," units"):"multiple units"," for sale.")+(i?" Total built-up area: ".concat(i," sqm."):"")+t+r+(d?" Zoned ".concat(d,"."):"")+" Contact us for floor plans and availability."}if(u(e)){let e=m?" Currently at ".concat(m.toLowerCase()," stage."):"",t=n?" Land size: ".concat(n," sqm."):"",r=s?" Asking price: ".concat(c," ").concat(Number(s).toLocaleString(),"."):"";return"Construction site".concat(y?" in "+y+", Rwanda":""," available for sale.")+e+(b?" Expected completion: ".concat(b,"."):"")+t+(i?" Projected built-up area: ".concat(i," sqm."):"")+r+(d?" Zoned ".concat(d,"."):"")+" Contact us for site plans and further details."}let v=r?"".concat(r," bedrooms, "):"",A=a?"".concat(a," bathrooms, "):"",k=n?"land size of ".concat(n," sqm"):"",C=s?" Asking price: ".concat(c," ").concat(Number(s).toLocaleString(),"."):"";return"This ".concat(e.toLowerCase()," is available for ").concat(t.toLowerCase())+(y?" in ".concat(y,", Kigali, Rwanda."):".")+(v||A||k?" Featuring ".concat(v).concat(A).concat(k).concat(i?", built-up area of ".concat(i," sqm"):"","."):"")+C+(d?" Zoned as ".concat(d,"."):"")+" Contact us today to arrange a viewing."}},95707:(e,t,r)=>{r.d(t,{Fv:()=>l,Jl:()=>s,L3:()=>d,T$:()=>o,tO:()=>c});var a=r(14232);let n=new Map;async function i(e){if(n.has(e))return n.get(e);let t=await fetch(e);if(!t.ok)throw Error("locations API error ".concat(t.status));let r=await t.json();return n.set(e,r.data),r.data}function o(){let[e,t]=(0,a.useState)([]),[r,n]=(0,a.useState)(!0);return(0,a.useEffect)(()=>
1{i("/api/v1/locations?level=provinces").then(t).catch(console.error).finally(()=>n(!1))},[]),{items:e,loading:r}}function l(e){let[t,r]=(0,a.useState)([]),[n,o]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{if(!e)return void r([]);o(!0),i("/api/v1/locations?level=districts&provinceCode=".concat(e)).then(r).catch(console.error).finally(()=>o(!1))},[e]),{items:t,loading:n}}function s(e){let[t,r]=(0,a.useState)([]),[n,o]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{if(!e)return void r([]);o(!0),i("/api/v1/locations?level=sectors&districtCode=".concat(e)).then(r).catch(console.error).finally(()=>o(!1))},[e]),{items:t,loading:n}}function c(e){let[t,r]=(0,a.useState)([]),[n,o]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{if(!e)return void r([]);o(!0),i("/api/v1/locations?level=cells§orCode=".concat(e)).then(r).catch(console.error).finally(()=>o(!1))},[e]),{items:t,loading:n}}function d(e){let[t,r]=(0,a.useState)([]),[n,o]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{if(!e)return void r([]);o(!0),i("/api/v1/locations?level=villages&cellCode=".concat(e)).then(r).catch(console.error).finally(()=>o(!1))},[e]),{items:t,loading:n}}},96402:(e,t,r)=>{r.d(t,{$i:()=>o,NE:()=>n,bp:()=>i});let a=/^\d\/\d{2}\/\d{2}\/\d{2}\/\d{1,8}$/,n="Format: D/SS/CC/VV/PPPP â e.g. 1/02/05/03/1234",i="e.g. 1/02/05/03/1234";function o(e){return a.test(e.trim())}}}]);
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.