From 6164311297961c743b98e165398d71656744288b Mon Sep 17 00:00:00 2001 From: Mehedi Date: Tue, 26 May 2026 11:11:48 +0600 Subject: [PATCH 1/2] input validation done --- .../mortgage/ApplicationFormSection.jsx | 31 +++++++++++++++++-- .../new-construction/ProjectsSection.jsx | 9 ++++-- 2 files changed, 35 insertions(+), 5 deletions(-) diff --git a/src/components/mortgage/ApplicationFormSection.jsx b/src/components/mortgage/ApplicationFormSection.jsx index 4a19ad9..5ac766f 100644 --- a/src/components/mortgage/ApplicationFormSection.jsx +++ b/src/components/mortgage/ApplicationFormSection.jsx @@ -54,6 +54,13 @@ const ApplicationFormSection = memo(() => { const [errors, setErrors] = useState({}); const [submitting, setSubmitting] = useState(false); + const sanitizeDecimalInput = useCallback((value) => { + const text = String(value); + const [wholePart, ...decimalParts] = text.replace(/[^\d.]/g, '').split('.'); + if (decimalParts.length === 0) return wholePart; + return `${wholePart}.${decimalParts.join('').replace(/\./g, '')}`; + }, []); + const getCalculatorPayload = useCallback(() => { const drafts = getAllMortgageApplicationDrafts(); const activeDraft = getMortgageApplicationDraft(); @@ -67,12 +74,19 @@ const ApplicationFormSection = memo(() => { const handleChange = useCallback((e) => { const { name, value, type, checked } = e.target; + const nextValue = + name === 'phone' || name === 'annualIncome' + ? value.replace(/\D/g, '') + : name === 'desiredLoanAmount' + ? sanitizeDecimalInput(value) + : value; + setForm((prev) => ({ ...prev, - [name]: type === 'checkbox' ? checked : value, + [name]: type === 'checkbox' ? checked : nextValue, })); setErrors((prev) => ({ ...prev, [name]: '' })); - }, []); + }, [sanitizeDecimalInput]); const isNumericValue = useCallback((value) => { const text = String(value).trim(); @@ -89,7 +103,12 @@ const ApplicationFormSection = memo(() => { errs.email = 'Please enter a valid email address.'; } if (!form.phone.trim()) errs.phone = 'Phone number is required.'; - if (form.desiredLoanAmount.trim() && !isNumericValue(form.desiredLoanAmount)) { + if (form.annualIncome.trim() && !isNumericValue(form.annualIncome)) { + errs.annualIncome = 'Please enter a valid annual income.'; + } + if (!form.desiredLoanAmount.trim()) { + errs.desiredLoanAmount = 'Desired Loan Amount is required.'; + } else if (!isNumericValue(form.desiredLoanAmount)) { errs.desiredLoanAmount = 'Please enter a number in Desired Loan Amount.'; } if (!form.agreeToTerms) @@ -252,10 +271,13 @@ const ApplicationFormSection = memo(() => { id='af-income' name='annualIncome' type='text' + inputMode='numeric' + pattern='[0-9]*' value={form.annualIncome} onChange={handleChange} placeholder='Enter your annual income' className={formInputClass} + aria-invalid={Boolean(errors.annualIncome)} /> @@ -274,6 +296,7 @@ const ApplicationFormSection = memo(() => { @@ -281,10 +304,12 @@ const ApplicationFormSection = memo(() => { id='af-loan-amt' name='desiredLoanAmount' type='text' + value={form.desiredLoanAmount} onChange={handleChange} placeholder='Enter your desired loan amount' inputMode='decimal' + pattern='[0-9]*[.]?[0-9]*' aria-invalid={Boolean(errors.desiredLoanAmount)} className={formInputClass} /> diff --git a/src/components/new-construction/ProjectsSection.jsx b/src/components/new-construction/ProjectsSection.jsx index 05c7620..bc5a657 100644 --- a/src/components/new-construction/ProjectsSection.jsx +++ b/src/components/new-construction/ProjectsSection.jsx @@ -251,7 +251,10 @@ const ProjectModal = memo(({ project, onClose }) => { const handleFieldChange = useCallback((e) => { const { name, value } = e.target; - setForm((prev) => ({ ...prev, [name]: value })); + setForm((prev) => ({ + ...prev, + [name]: name === 'phone' ? value.replace(/\D/g, '') : value, + })); }, []); const handleBookSubmit = useCallback( @@ -472,7 +475,9 @@ const ProjectModal = memo(({ project, onClose }) => { Date: Tue, 26 May 2026 11:13:30 +0600 Subject: [PATCH 2/2] input validation done built --- dist/index.html | 2 +- dist/js/{1393.6082f12c.chunk.js => 1393.08461c74.chunk.js} | 4 ++-- ...hunk.js.LICENSE.txt => 1393.08461c74.chunk.js.LICENSE.txt} | 0 dist/js/1393.08461c74.chunk.js.map | 1 + dist/js/1393.6082f12c.chunk.js.map | 1 - dist/js/6284.275f700f.chunk.js | 2 -- dist/js/6284.275f700f.chunk.js.map | 1 - dist/js/6284.9007407f.chunk.js | 2 ++ ...hunk.js.LICENSE.txt => 6284.9007407f.chunk.js.LICENSE.txt} | 0 dist/js/6284.9007407f.chunk.js.map | 1 + dist/js/runtime.9f8278dc.js | 1 - dist/js/runtime.b75a4144.js | 1 + dist/js/{runtime.9f8278dc.js.map => runtime.b75a4144.js.map} | 2 +- 13 files changed, 9 insertions(+), 9 deletions(-) rename dist/js/{1393.6082f12c.chunk.js => 1393.08461c74.chunk.js} (61%) rename dist/js/{1393.6082f12c.chunk.js.LICENSE.txt => 1393.08461c74.chunk.js.LICENSE.txt} (100%) create mode 100644 dist/js/1393.08461c74.chunk.js.map delete mode 100644 dist/js/1393.6082f12c.chunk.js.map delete mode 100644 dist/js/6284.275f700f.chunk.js delete mode 100644 dist/js/6284.275f700f.chunk.js.map create mode 100644 dist/js/6284.9007407f.chunk.js rename dist/js/{6284.275f700f.chunk.js.LICENSE.txt => 6284.9007407f.chunk.js.LICENSE.txt} (100%) create mode 100644 dist/js/6284.9007407f.chunk.js.map delete mode 100644 dist/js/runtime.9f8278dc.js create mode 100644 dist/js/runtime.b75a4144.js rename dist/js/{runtime.9f8278dc.js.map => runtime.b75a4144.js.map} (99%) diff --git a/dist/index.html b/dist/index.html index ea359a8..dcbbdb3 100644 --- a/dist/index.html +++ b/dist/index.html @@ -3,4 +3,4 @@ var t = localStorage.getItem('theme'); if (t === 'dark') document.documentElement.classList.add('dark'); } catch (e) {} - })();
\ No newline at end of file + })();
\ No newline at end of file diff --git a/dist/js/1393.6082f12c.chunk.js b/dist/js/1393.08461c74.chunk.js similarity index 61% rename from dist/js/1393.6082f12c.chunk.js rename to dist/js/1393.08461c74.chunk.js index 2a97132..c0d4a39 100644 --- a/dist/js/1393.6082f12c.chunk.js +++ b/dist/js/1393.08461c74.chunk.js @@ -1,2 +1,2 @@ -/*! For license information please see 1393.6082f12c.chunk.js.LICENSE.txt */ -"use strict";(self.webpackChunkreact_webpack_tailwind_app=self.webpackChunkreact_webpack_tailwind_app||[]).push([[1393],{1393(e,t,r){r.r(t),r.d(t,{default:()=>Ne});var n=r(6540),a=r(5493),o=r(9740),l=r(6344),i=r(4848),s=(0,n.memo)(function(){return(0,i.jsxs)("section",{className:"relative overflow-hidden w-full",style:{height:"clamp(480px, 55vw, 580px)"},children:[(0,i.jsxs)("div",{className:"absolute inset-0",children:[(0,i.jsx)("img",{src:"/MortgageHeroBg.webp",alt:"Modern building exterior",className:"absolute inset-0 size-full object-cover"}),(0,i.jsx)("div",{className:"absolute inset-0 bg-[rgba(16,24,40,0.55)]"})]}),(0,i.jsx)("div",{className:"relative z-10 h-full flex items-center py-14 sm:py-0",children:(0,i.jsx)("div",{className:"max-w-384 mx-auto px-4 sm:px-8 lg:px-12 w-full",children:(0,i.jsxs)("div",{className:"max-w-3xl flex flex-col gap-4 sm:gap-5",children:[(0,i.jsx)("p",{className:"text-orange-400 text-xs font-semibold tracking-widest uppercase",children:"Mortgage Solutions"}),(0,i.jsx)("h1",{className:"text-white font-bold text-[30px] sm:text-[42px] lg:text-[56px] leading-tight",children:"Your Dream Home Starts With the Right Loan"}),(0,i.jsx)("p",{className:"text-white/85 font-medium italic text-lg leading-relaxed max-w-xl",children:"“Owning a home is the keystone of wealth both financial affluence and emotional security.” Suze Orman"}),(0,i.jsx)("div",{className:"pt-1",children:(0,i.jsx)(l.A,{href:"#mortgage-calc",className:"inline-block bg-orange-500 hover:bg-orange-600 text-white text-sm sm:text-base font-medium px-6 py-3 rounded-lg transition-colors duration-150 cursor-pointer",children:"Calculate Now"})})]})})})]})});s.displayName="HeroSection";const c=s;function u(e){return u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u(e)}function m(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function d(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);re.length)&&(t=e.length);for(var r=0,n=Array(t);r3?(a=f===n)&&(s=o[(i=o[4])?5:(i=3,3)],o[4]=o[5]=e):o[0]<=p&&((a=r<2&&pn||n>f)&&(o[4]=r,o[5]=n,d.n=f,i=0))}if(a||r>1)return l;throw m=!0,n}return function(a,u,f){if(c>1)throw TypeError("Generator is already running");for(m&&1===u&&p(u,f),i=u,s=f;(t=i<2?e:s)||!m;){o||(i?i<3?(i>1&&(d.n=-1),p(i,s)):d.n=s:d.v=s);try{if(c=2,o){if(i||(a="next"),t=o[a]){if(!(t=t.call(o,s)))throw TypeError("iterator result is not an object");if(!t.done)return t;s=t.value,i<2&&(i=0)}else 1===i&&(t=o.return)&&t.call(o),i<2&&(s=TypeError("The iterator does not provide a '"+a+"' method"),i=1);o=e}else if((t=(m=d.n<0)?s:r.call(n,d))!==l)break}catch(t){o=e,i=1,s=t}finally{c=1}}return{value:t,done:m}}}(r,a,o),!0),c}var l={};function i(){}function s(){}function c(){}t=Object.getPrototypeOf;var u=[][n]?t(t([][n]())):(se(t={},n,function(){return this}),t),m=c.prototype=i.prototype=Object.create(u);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,c):(e.__proto__=c,se(e,a,"GeneratorFunction")),e.prototype=Object.create(m),e}return s.prototype=c,se(m,"constructor",c),se(c,"constructor",s),s.displayName="GeneratorFunction",se(c,a,"GeneratorFunction"),se(m),se(m,a,"Generator"),se(m,n,function(){return this}),se(m,"toString",function(){return"[object Generator]"}),(ie=function(){return{w:o,m:d}})()}function se(e,t,r,n){var a=Object.defineProperty;try{a({},"",{})}catch(e){a=0}se=function(e,t,r,n){function o(t,r){se(e,t,function(e){return this._invoke(t,r,e)})}t?a?a(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(o("next",0),o("throw",1),o("return",2))},se(e,t,r,n)}function ce(e,t,r,n,a,o,l){try{var i=e[o](l),s=i.value}catch(e){return void r(e)}i.done?t(s):Promise.resolve(s).then(n,a)}function ue(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function me(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r=r?t:e})}();return null!=t&&t.calculatorType&&null!=t&&t.calculatorData?{activeDraft:t,allDrafts:e}:null},[]),p=(0,n.useCallback)(function(e){var t=e.target,n=t.name,a=t.value,o=t.type,l=t.checked;r(function(e){return me(me({},e),{},de({},n,"checkbox"===o?l:a))}),s(function(e){return me(me({},e),{},de({},n,""))})},[]),v=(0,n.useCallback)(function(e){var t=String(e).trim();return!!t&&/^\d+(\.\d+)?$/.test(t.replace(/,/g,""))},[]),j=(0,n.useCallback)(function(){var e={};return t.fullName.trim()||(e.fullName="Full name is required."),t.email.trim()?/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t.email)||(e.email="Please enter a valid email address."):e.email="Email address is required.",t.phone.trim()||(e.phone="Phone number is required."),t.desiredLoanAmount.trim()&&!v(t.desiredLoanAmount)&&(e.desiredLoanAmount="Please enter a number in Desired Loan Amount."),t.agreeToTerms||(e.agreeToTerms="You must agree to the terms and privacy policy."),e},[t,v]),N=(0,n.useCallback)(function(){var e,n=(e=ie().m(function e(n){var a,o,l,i,c,u,p,f;return ie().w(function(e){for(;;)switch(e.p=e.n){case 0:if(n.preventDefault(),a=j(),!Object.keys(a).length){e.n=1;break}return s(a),e.a(2);case 1:if(o=d()){e.n=2;break}return ne.Ay.error("Please use either the Mortgage Calculator or Refinance Calculator before submitting your application."),e.a(2);case 2:return m(!0),e.p=3,c=function(){if(o.activeDraft.calculatorType===x){var e,t,r=null===(e=o.activeDraft.calculatorData)||void 0===e?void 0:e.mortgagePurchaseAmount,n=null===(t=o.activeDraft.calculatorData)||void 0===t?void 0:t.mortgageDownPayment;return null!=r&&null!=n?Number(r)-Number(n):null}if(o.activeDraft.calculatorType===b){var a,l=null===(a=o.activeDraft.calculatorData)||void 0===a?void 0:a.refinanceLoanAmount;return null!=l?Number(l):null}return null}(),u=me(me({fullName:t.fullName,email:t.email,phoneNumber:t.phone,employmentStatus:t.employmentStatus,annualIncome:t.annualIncome?Number(t.annualIncome):null,desiredLoanAmount:t.desiredLoanAmount?Number(t.desiredLoanAmount):c,propertyType:be(t.propertyType),message:t.notes},o.activeDraft.calculatorData),{},{selectedCalculatorType:o.activeDraft.calculatorType,mortgageCalculatorData:(null===(l=o.allDrafts.mortgage)||void 0===l?void 0:l.calculatorData)||null,refinanceCalculatorData:(null===(i=o.allDrafts.refinance)||void 0===i?void 0:i.calculatorData)||null}),e.n=4,ae.R.post(oe.A.MORTGAGE_APPLICATIONS.CREATE,u);case 4:if(p=e.v,!(f=p.error)){e.n=5;break}throw f;case 5:ne.Ay.success("Application submitted! Our team will contact you shortly."),r(ge),s({}),w(),e.n=7;break;case 6:e.p=6,e.v,ne.Ay.error("Failed to submit. Please try again.");case 7:return e.p=7,m(!1),e.f(7);case 8:return e.a(2)}},e,null,[[3,6,7,8]])}),function(){var t=this,r=arguments;return new Promise(function(n,a){var o=e.apply(t,r);function l(e){ce(o,n,a,l,i,"next",e)}function i(e){ce(o,n,a,l,i,"throw",e)}l(void 0)})});return function(e){return n.apply(this,arguments)}}(),[j,t,d]);return(0,i.jsx)("section",{id:"apply-form",className:"py-14 lg:py-20 bg-surface-warm mb-14 lg:mb-20",children:(0,i.jsxs)("div",{className:"max-w-384 mx-auto px-4 sm:px-8 lg:px-12",children:[(0,i.jsxs)("div",{className:"text-center mb-8 lg:mb-12",children:[(0,i.jsx)("h2",{className:"text-2xl sm:text-3xl lg:text-4xl font-bold text-ink-soft mb-3",children:"Apply for a Mortgage"}),(0,i.jsx)("p",{className:"text-subtle text-base",children:"Fill out the form below and our team will respond within 24 hours"})]}),(0,i.jsxs)("div",{className:"bg-white border border-gray-100 rounded-2xl px-4 py-6 sm:px-6 sm:py-8 lg:px-10 lg:py-10 flex flex-col lg:flex-row gap-8 lg:gap-10",children:[(0,i.jsxs)("form",{onSubmit:N,noValidate:!0,className:"flex-1 flex flex-col gap-6",children:[(0,i.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-5",children:[(0,i.jsx)(D,{label:"Full Name",required:!0,id:"af-name",error:o.fullName,children:(0,i.jsx)("input",{id:"af-name",name:"fullName",type:"text",autoComplete:"name",value:t.fullName,onChange:p,placeholder:"Enter your full name",className:ye})}),(0,i.jsx)(D,{label:"Email Address",required:!0,id:"af-email",error:o.email,children:(0,i.jsx)("input",{id:"af-email",name:"email",type:"email",autoComplete:"email",value:t.email,onChange:p,placeholder:"Enter your email address",className:ye})})]}),(0,i.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-5",children:[(0,i.jsx)(D,{label:"Phone Number",required:!0,id:"af-phone",error:o.phone,children:(0,i.jsx)("input",{id:"af-phone",name:"phone",type:"tel",autoComplete:"tel",value:t.phone,onChange:p,placeholder:"Enter your phone number",className:ye})}),(0,i.jsx)(D,{label:"Annual Income",id:"af-income",children:(0,i.jsx)("input",{id:"af-income",name:"annualIncome",type:"text",value:t.annualIncome,onChange:p,placeholder:"Enter your annual income",className:ye})})]}),(0,i.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-5",children:[(0,i.jsx)(D,{label:"Employment Status",id:"af-employment",children:(0,i.jsx)("input",{id:"af-employment",name:"employmentStatus",type:"text",value:t.employmentStatus,onChange:p,placeholder:"Enter your employment status",className:ye})}),(0,i.jsx)(D,{label:"Desired Loan Amount",id:"af-loan-amt",error:o.desiredLoanAmount,children:(0,i.jsx)("input",{id:"af-loan-amt",name:"desiredLoanAmount",type:"text",value:t.desiredLoanAmount,onChange:p,placeholder:"Enter your desired loan amount",inputMode:"decimal","aria-invalid":Boolean(o.desiredLoanAmount),className:ye})})]}),(0,i.jsx)(D,{label:"Property Type",id:"af-property",children:(0,i.jsxs)("select",{id:"af-property",name:"propertyType",value:t.propertyType,onChange:p,className:ye,children:[(0,i.jsx)("option",{value:"",className:"text-black",style:{color:"#111827"},children:"Select property type"}),he.map(function(e){return(0,i.jsx)("option",{value:e.value,className:"text-black",style:{color:"#111827"},children:e.label},e.value)})]})}),(0,i.jsx)(D,{label:"Message / Additional Notes",id:"af-notes",children:(0,i.jsx)("textarea",{id:"af-notes",name:"notes",rows:4,value:t.notes,onChange:p,placeholder:"Enter any additional details",className:"".concat(ye," resize-none")})}),(0,i.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,i.jsxs)("label",{className:"flex items-start gap-3 cursor-pointer select-none",children:[(0,i.jsx)("input",{type:"checkbox",name:"agreeToTerms",checked:t.agreeToTerms,onChange:p,className:"mt-0.5 h-4 w-4 shrink-0 cursor-pointer appearance-none rounded-sm border border-orange-500 bg-white transition-colors checked:bg-orange-500 checked:border-orange-500 focus:outline-none focus:ring-2 focus:ring-orange-400 focus:ring-offset-2 relative after:absolute after:left-1.25 after:top-px after:hidden after:h-2 after:w-1 after:rotate-45 after:border-b-2 after:border-r-2 after:border-white checked:after:block"}),(0,i.jsx)("span",{className:"text-sm font-medium text-subtle",children:"I agree to the terms and privacy policy"})]}),o.agreeToTerms&&(0,i.jsx)("p",{className:"text-xs text-red-500 ml-7",children:o.agreeToTerms})]}),(0,i.jsx)(l.A,{type:"submit",disabled:u,className:"w-full bg-orange-500 hover:bg-orange-600 disabled:opacity-60 text-white text-base font-medium py-4 rounded-lg transition-colors duration-150 cursor-pointer",children:u?"Submitting...":"Submit Application"})]}),(0,i.jsxs)("aside",{className:"lg:w-72 xl:w-80 bg-gray-50 rounded-xl p-4 sm:p-6 flex flex-col gap-5 sm:gap-7 self-start lg:sticky lg:top-24",children:[(0,i.jsx)("h3",{className:"text-xl font-semibold text-ink-soft",children:"Why Choose Skyridge?"}),(0,i.jsx)("ul",{className:"grid grid-cols-2 lg:grid-cols-1 gap-3 lg:gap-4",children:["Competitive interest rates","Fast 24-hour pre-approval","Dedicated loan specialist","No hidden fees"].map(function(e){return(0,i.jsxs)("li",{className:"flex items-center gap-3",children:[(0,i.jsx)("span",{className:"w-5 h-5 rounded-full bg-orange-500 flex items-center justify-center shrink-0",children:(0,i.jsx)(ee.A,{className:"w-3 h-3 text-white","aria-hidden":"true"})}),(0,i.jsx)("span",{className:"text-sm text-ink-soft",children:e})]},e)})}),(0,i.jsxs)("div",{className:"border-t border-gray-200 pt-5 sm:pt-6 flex flex-col gap-3",children:[(0,i.jsxs)("a",{href:"tel:+12069486426",className:"flex items-center gap-3 text-sm text-ink-soft hover:text-orange-500 transition-colors",children:[(0,i.jsx)(te.A,{className:"w-5 h-5 shrink-0","aria-hidden":"true"}),"+1 206-948-6426"]}),(0,i.jsxs)("a",{href:"mailto:Support@skyridgegroup.com",className:"flex items-center gap-3 text-sm text-ink-soft hover:text-orange-500 transition-colors",children:[(0,i.jsx)(re.A,{className:"w-5 h-5 shrink-0","aria-hidden":"true"}),"Support@skyridgegroup.com"]})]})]})]})]})})});ve.displayName="ApplicationFormSection";const je=ve;var we=(0,n.memo)(function(){return(0,a.P)({title:"Mortgage Solutions | Skyridge Group",description:"Calculate your mortgage payment instantly. Explore fixed-rate, adjustable-rate, and first-time buyer loans. Get pre-approved with Skyridge Group today.",keywords:["mortgage calculator","refinance calculator","home loan","mortgage rate","first-time buyer","skyridge group"]}),(0,i.jsxs)("div",{className:"bg-white min-h-screen py-14 lg:py-20",children:[(0,i.jsx)(c,{}),(0,i.jsx)(_,{}),(0,i.jsx)(U,{}),(0,i.jsx)(Z,{}),(0,i.jsx)(je,{}),(0,i.jsx)(o.A,{})]})});we.displayName="Mortgage";const Ne=we},5493(e,t,r){r.d(t,{P:()=>o});var n=r(6540),a=r(9521),o=function(e){var t=e.title,r=e.description,o=e.keywords,l=void 0===o?[]:o,i=e.image,s=void 0===i?"":i,c=e.type,u=void 0===c?"website":c,m=e.locale,d=void 0===m?"en":m,p=l.join(",");(0,n.useEffect)(function(){var e=function(e){var t=e.title,r=e.description,n=e.keywords,o=void 0===n?[]:n,l=e.url,i=void 0===l?"":l,s=e.image,c=void 0===s?"":s,u=e.type,m=void 0===u?"website":u,d=e.locale,p=void 0===d?"en":d,f="undefined"!=typeof window?window.location.origin:"",y=i||("undefined"!=typeof window?window.location.href:f),g=a.l8.DEFAULT_TITLE;return{title:t?"".concat(t," | ").concat(g):g,description:r,keywords:o.join(", "),canonical:y,openGraph:{title:t,description:r,url:y,siteName:g,images:c?[{url:c}]:[],locale:p,type:m},twitter:{card:"summary_large_image",title:t,description:r,images:c?[c]:[]}}}({title:t,description:r,keywords:l,image:s,type:u,locale:d});!function(e){if("undefined"!=typeof document){document.title=e.title;var t=[{name:"description",content:e.description},{name:"keywords",content:e.keywords},{property:"og:title",content:e.openGraph.title},{property:"og:description",content:e.openGraph.description},{property:"og:url",content:e.openGraph.url},{property:"og:site_name",content:e.openGraph.siteName},{property:"og:locale",content:e.openGraph.locale},{property:"og:type",content:e.openGraph.type},{name:"twitter:card",content:e.twitter.card},{name:"twitter:title",content:e.twitter.title},{name:"twitter:description",content:e.twitter.description}];e.openGraph.images.length>0&&t.push({property:"og:image",content:e.openGraph.images[0].url}),e.twitter.images.length>0&&t.push({name:"twitter:image",content:e.twitter.images[0]}),t.forEach(function(e){var t=e.name,r=e.property,n=e.content;if(n){var a=t?'meta[name="'.concat(t,'"]'):'meta[property="'.concat(r,'"]'),o=document.querySelector(a);o||(o=document.createElement("meta"),t&&o.setAttribute("name",t),r&&o.setAttribute("property",r),document.head.appendChild(o)),o.setAttribute("content",n)}});var r=document.querySelector('link[rel="canonical"]')||document.createElement("link");r.setAttribute("rel","canonical"),r.setAttribute("href",e.canonical),document.querySelector('link[rel="canonical"]')||document.head.appendChild(r)}}(e)},[t,r,p,s,u,d])}},9740(e,t,r){r.d(t,{A:()=>c});var n=r(6540),a=r(8635),o=r(9521),l=r(6344),i=r(4848),s=(0,n.memo)(function(){return(0,i.jsx)("section",{className:"",children:(0,i.jsx)("div",{className:"mx-auto max-w-384 px-4 sm:px-8 lg:px-12",children:(0,i.jsxs)("div",{className:"relative flex min-h-75 flex-col justify-center overflow-hidden rounded-2xl bg-navy p-8 sm:p-10 lg:p-16",children:[(0,i.jsx)("div",{className:"absolute bottom-0 right-0 top-0 hidden w-[45%] lg:block",children:(0,i.jsx)("img",{src:"/cta.webp",alt:"Decorative pattern",className:"h-full w-full object-cover object-left","aria-hidden":"true",loading:"lazy"})}),(0,i.jsxs)("div",{className:"relative z-10 max-w-full space-y-5 sm:max-w-md lg:max-w-137.5 lg:space-y-6",children:[(0,i.jsx)("h2",{className:"font-playfair text-4xl leading-tight text-white lg:text-[56px]",children:"Ready to find your dream home?"}),(0,i.jsx)("p",{className:"text-base leading-6 text-text-light",children:"Join thousands of happy homeowners who found their perfect match through EstateFlow."}),(0,i.jsx)("div",{className:"pt-2",children:(0,i.jsxs)(l.A,{to:o.bw.BUY,className:"inline-flex items-center gap-3 rounded-full bg-white px-5 py-2.5 text-black transition-colors hover:bg-slate-100",children:[(0,i.jsx)("span",{className:"text-sm font-semibold sm:text-base",children:"Browse Properties"}),(0,i.jsx)("span",{className:"flex h-8 w-8 items-center justify-center rounded-full bg-purple",children:(0,i.jsx)(a.A,{className:"h-5 w-5 text-white","aria-hidden":"true"})})]})})]})]})})})});s.displayName="PropertiesCTA";const c=s}}]); \ No newline at end of file +/*! For license information please see 1393.08461c74.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkreact_webpack_tailwind_app=self.webpackChunkreact_webpack_tailwind_app||[]).push([[1393],{1393(e,t,r){r.r(t),r.d(t,{default:()=>Oe});var n=r(6540),a=r(5493),o=r(9740),l=r(6344),i=r(4848),s=(0,n.memo)(function(){return(0,i.jsxs)("section",{className:"relative overflow-hidden w-full",style:{height:"clamp(480px, 55vw, 580px)"},children:[(0,i.jsxs)("div",{className:"absolute inset-0",children:[(0,i.jsx)("img",{src:"/MortgageHeroBg.webp",alt:"Modern building exterior",className:"absolute inset-0 size-full object-cover"}),(0,i.jsx)("div",{className:"absolute inset-0 bg-[rgba(16,24,40,0.55)]"})]}),(0,i.jsx)("div",{className:"relative z-10 h-full flex items-center py-14 sm:py-0",children:(0,i.jsx)("div",{className:"max-w-384 mx-auto px-4 sm:px-8 lg:px-12 w-full",children:(0,i.jsxs)("div",{className:"max-w-3xl flex flex-col gap-4 sm:gap-5",children:[(0,i.jsx)("p",{className:"text-orange-400 text-xs font-semibold tracking-widest uppercase",children:"Mortgage Solutions"}),(0,i.jsx)("h1",{className:"text-white font-bold text-[30px] sm:text-[42px] lg:text-[56px] leading-tight",children:"Your Dream Home Starts With the Right Loan"}),(0,i.jsx)("p",{className:"text-white/85 font-medium italic text-lg leading-relaxed max-w-xl",children:"“Owning a home is the keystone of wealth both financial affluence and emotional security.” Suze Orman"}),(0,i.jsx)("div",{className:"pt-1",children:(0,i.jsx)(l.A,{href:"#mortgage-calc",className:"inline-block bg-orange-500 hover:bg-orange-600 text-white text-sm sm:text-base font-medium px-6 py-3 rounded-lg transition-colors duration-150 cursor-pointer",children:"Calculate Now"})})]})})})]})});s.displayName="HeroSection";const c=s;function u(e){return u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u(e)}function m(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function d(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);re.length)&&(t=e.length);for(var r=0,n=Array(t);r3?(a=f===n)&&(s=o[(i=o[4])?5:(i=3,3)],o[4]=o[5]=e):o[0]<=p&&((a=r<2&&pn||n>f)&&(o[4]=r,o[5]=n,d.n=f,i=0))}if(a||r>1)return l;throw m=!0,n}return function(a,u,f){if(c>1)throw TypeError("Generator is already running");for(m&&1===u&&p(u,f),i=u,s=f;(t=i<2?e:s)||!m;){o||(i?i<3?(i>1&&(d.n=-1),p(i,s)):d.n=s:d.v=s);try{if(c=2,o){if(i||(a="next"),t=o[a]){if(!(t=t.call(o,s)))throw TypeError("iterator result is not an object");if(!t.done)return t;s=t.value,i<2&&(i=0)}else 1===i&&(t=o.return)&&t.call(o),i<2&&(s=TypeError("The iterator does not provide a '"+a+"' method"),i=1);o=e}else if((t=(m=d.n<0)?s:r.call(n,d))!==l)break}catch(t){o=e,i=1,s=t}finally{c=1}}return{value:t,done:m}}}(r,a,o),!0),c}var l={};function i(){}function s(){}function c(){}t=Object.getPrototypeOf;var u=[][n]?t(t([][n]())):(se(t={},n,function(){return this}),t),m=c.prototype=i.prototype=Object.create(u);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,c):(e.__proto__=c,se(e,a,"GeneratorFunction")),e.prototype=Object.create(m),e}return s.prototype=c,se(m,"constructor",c),se(c,"constructor",s),s.displayName="GeneratorFunction",se(c,a,"GeneratorFunction"),se(m),se(m,a,"Generator"),se(m,n,function(){return this}),se(m,"toString",function(){return"[object Generator]"}),(ie=function(){return{w:o,m:d}})()}function se(e,t,r,n){var a=Object.defineProperty;try{a({},"",{})}catch(e){a=0}se=function(e,t,r,n){function o(t,r){se(e,t,function(e){return this._invoke(t,r,e)})}t?a?a(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(o("next",0),o("throw",1),o("return",2))},se(e,t,r,n)}function ce(e,t,r,n,a,o,l){try{var i=e[o](l),s=i.value}catch(e){return void r(e)}i.done?t(s):Promise.resolve(s).then(n,a)}function ue(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function me(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r=r?t:e})}();return null!=t&&t.calculatorType&&null!=t&&t.calculatorData?{activeDraft:t,allDrafts:e}:null},[]),v=(0,n.useCallback)(function(e){var t=e.target,n=t.name,a=t.value,o=t.type,l=t.checked,i="phone"===n||"annualIncome"===n?a.replace(/\D/g,""):"desiredLoanAmount"===n?d(a):a;r(function(e){return me(me({},e),{},de({},n,"checkbox"===o?l:i))}),s(function(e){return me(me({},e),{},de({},n,""))})},[d]),j=(0,n.useCallback)(function(e){var t=String(e).trim();return!!t&&/^\d+(\.\d+)?$/.test(t.replace(/,/g,""))},[]),N=(0,n.useCallback)(function(){var e={};return t.fullName.trim()||(e.fullName="Full name is required."),t.email.trim()?/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t.email)||(e.email="Please enter a valid email address."):e.email="Email address is required.",t.phone.trim()||(e.phone="Phone number is required."),t.annualIncome.trim()&&!j(t.annualIncome)&&(e.annualIncome="Please enter a valid annual income."),t.desiredLoanAmount.trim()?j(t.desiredLoanAmount)||(e.desiredLoanAmount="Please enter a number in Desired Loan Amount."):e.desiredLoanAmount="Desired Loan Amount is required.",t.agreeToTerms||(e.agreeToTerms="You must agree to the terms and privacy policy."),e},[t,j]),S=(0,n.useCallback)(function(){var e,n=(e=ie().m(function e(n){var a,o,l,i,c,u,d,f;return ie().w(function(e){for(;;)switch(e.p=e.n){case 0:if(n.preventDefault(),a=N(),!Object.keys(a).length){e.n=1;break}return s(a),e.a(2);case 1:if(o=p()){e.n=2;break}return ne.Ay.error("Please use either the Mortgage Calculator or Refinance Calculator before submitting your application."),e.a(2);case 2:return m(!0),e.p=3,c=function(){if(o.activeDraft.calculatorType===x){var e,t,r=null===(e=o.activeDraft.calculatorData)||void 0===e?void 0:e.mortgagePurchaseAmount,n=null===(t=o.activeDraft.calculatorData)||void 0===t?void 0:t.mortgageDownPayment;return null!=r&&null!=n?Number(r)-Number(n):null}if(o.activeDraft.calculatorType===b){var a,l=null===(a=o.activeDraft.calculatorData)||void 0===a?void 0:a.refinanceLoanAmount;return null!=l?Number(l):null}return null}(),u=me(me({fullName:t.fullName,email:t.email,phoneNumber:t.phone,employmentStatus:t.employmentStatus,annualIncome:t.annualIncome?Number(t.annualIncome):null,desiredLoanAmount:t.desiredLoanAmount?Number(t.desiredLoanAmount):c,propertyType:we(t.propertyType),message:t.notes},o.activeDraft.calculatorData),{},{selectedCalculatorType:o.activeDraft.calculatorType,mortgageCalculatorData:(null===(l=o.allDrafts.mortgage)||void 0===l?void 0:l.calculatorData)||null,refinanceCalculatorData:(null===(i=o.allDrafts.refinance)||void 0===i?void 0:i.calculatorData)||null}),e.n=4,ae.R.post(oe.A.MORTGAGE_APPLICATIONS.CREATE,u);case 4:if(d=e.v,!(f=d.error)){e.n=5;break}throw f;case 5:ne.Ay.success("Application submitted! Our team will contact you shortly."),r(be),s({}),w(),e.n=7;break;case 6:e.p=6,e.v,ne.Ay.error("Failed to submit. Please try again.");case 7:return e.p=7,m(!1),e.f(7);case 8:return e.a(2)}},e,null,[[3,6,7,8]])}),function(){var t=this,r=arguments;return new Promise(function(n,a){var o=e.apply(t,r);function l(e){ce(o,n,a,l,i,"next",e)}function i(e){ce(o,n,a,l,i,"throw",e)}l(void 0)})});return function(e){return n.apply(this,arguments)}}(),[N,t,p]);return(0,i.jsx)("section",{id:"apply-form",className:"py-14 lg:py-20 bg-surface-warm mb-14 lg:mb-20",children:(0,i.jsxs)("div",{className:"max-w-384 mx-auto px-4 sm:px-8 lg:px-12",children:[(0,i.jsxs)("div",{className:"text-center mb-8 lg:mb-12",children:[(0,i.jsx)("h2",{className:"text-2xl sm:text-3xl lg:text-4xl font-bold text-ink-soft mb-3",children:"Apply for a Mortgage"}),(0,i.jsx)("p",{className:"text-subtle text-base",children:"Fill out the form below and our team will respond within 24 hours"})]}),(0,i.jsxs)("div",{className:"bg-white border border-gray-100 rounded-2xl px-4 py-6 sm:px-6 sm:py-8 lg:px-10 lg:py-10 flex flex-col lg:flex-row gap-8 lg:gap-10",children:[(0,i.jsxs)("form",{onSubmit:S,noValidate:!0,className:"flex-1 flex flex-col gap-6",children:[(0,i.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-5",children:[(0,i.jsx)(D,{label:"Full Name",required:!0,id:"af-name",error:o.fullName,children:(0,i.jsx)("input",{id:"af-name",name:"fullName",type:"text",autoComplete:"name",value:t.fullName,onChange:v,placeholder:"Enter your full name",className:xe})}),(0,i.jsx)(D,{label:"Email Address",required:!0,id:"af-email",error:o.email,children:(0,i.jsx)("input",{id:"af-email",name:"email",type:"email",autoComplete:"email",value:t.email,onChange:v,placeholder:"Enter your email address",className:xe})})]}),(0,i.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-5",children:[(0,i.jsx)(D,{label:"Phone Number",required:!0,id:"af-phone",error:o.phone,children:(0,i.jsx)("input",{id:"af-phone",name:"phone",type:"tel",autoComplete:"tel",value:t.phone,onChange:v,placeholder:"Enter your phone number",className:xe})}),(0,i.jsx)(D,{label:"Annual Income",id:"af-income",children:(0,i.jsx)("input",{id:"af-income",name:"annualIncome",type:"text",inputMode:"numeric",pattern:"[0-9]*",value:t.annualIncome,onChange:v,placeholder:"Enter your annual income",className:xe,"aria-invalid":Boolean(o.annualIncome)})})]}),(0,i.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-5",children:[(0,i.jsx)(D,{label:"Employment Status",id:"af-employment",children:(0,i.jsx)("input",{id:"af-employment",name:"employmentStatus",type:"text",value:t.employmentStatus,onChange:v,placeholder:"Enter your employment status",className:xe})}),(0,i.jsx)(D,{label:"Desired Loan Amount",required:!0,id:"af-loan-amt",error:o.desiredLoanAmount,children:(0,i.jsx)("input",{id:"af-loan-amt",name:"desiredLoanAmount",type:"text",value:t.desiredLoanAmount,onChange:v,placeholder:"Enter your desired loan amount",inputMode:"decimal",pattern:"[0-9]*[.]?[0-9]*","aria-invalid":Boolean(o.desiredLoanAmount),className:xe})})]}),(0,i.jsx)(D,{label:"Property Type",id:"af-property",children:(0,i.jsxs)("select",{id:"af-property",name:"propertyType",value:t.propertyType,onChange:v,className:xe,children:[(0,i.jsx)("option",{value:"",className:"text-black",style:{color:"#111827"},children:"Select property type"}),ve.map(function(e){return(0,i.jsx)("option",{value:e.value,className:"text-black",style:{color:"#111827"},children:e.label},e.value)})]})}),(0,i.jsx)(D,{label:"Message / Additional Notes",id:"af-notes",children:(0,i.jsx)("textarea",{id:"af-notes",name:"notes",rows:4,value:t.notes,onChange:v,placeholder:"Enter any additional details",className:"".concat(xe," resize-none")})}),(0,i.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,i.jsxs)("label",{className:"flex items-start gap-3 cursor-pointer select-none",children:[(0,i.jsx)("input",{type:"checkbox",name:"agreeToTerms",checked:t.agreeToTerms,onChange:v,className:"mt-0.5 h-4 w-4 shrink-0 cursor-pointer appearance-none rounded-sm border border-orange-500 bg-white transition-colors checked:bg-orange-500 checked:border-orange-500 focus:outline-none focus:ring-2 focus:ring-orange-400 focus:ring-offset-2 relative after:absolute after:left-1.25 after:top-px after:hidden after:h-2 after:w-1 after:rotate-45 after:border-b-2 after:border-r-2 after:border-white checked:after:block"}),(0,i.jsx)("span",{className:"text-sm font-medium text-subtle",children:"I agree to the terms and privacy policy"})]}),o.agreeToTerms&&(0,i.jsx)("p",{className:"text-xs text-red-500 ml-7",children:o.agreeToTerms})]}),(0,i.jsx)(l.A,{type:"submit",disabled:u,className:"w-full bg-orange-500 hover:bg-orange-600 disabled:opacity-60 text-white text-base font-medium py-4 rounded-lg transition-colors duration-150 cursor-pointer",children:u?"Submitting...":"Submit Application"})]}),(0,i.jsxs)("aside",{className:"lg:w-72 xl:w-80 bg-gray-50 rounded-xl p-4 sm:p-6 flex flex-col gap-5 sm:gap-7 self-start lg:sticky lg:top-24",children:[(0,i.jsx)("h3",{className:"text-xl font-semibold text-ink-soft",children:"Why Choose Skyridge?"}),(0,i.jsx)("ul",{className:"grid grid-cols-2 lg:grid-cols-1 gap-3 lg:gap-4",children:["Competitive interest rates","Fast 24-hour pre-approval","Dedicated loan specialist","No hidden fees"].map(function(e){return(0,i.jsxs)("li",{className:"flex items-center gap-3",children:[(0,i.jsx)("span",{className:"w-5 h-5 rounded-full bg-orange-500 flex items-center justify-center shrink-0",children:(0,i.jsx)(ee.A,{className:"w-3 h-3 text-white","aria-hidden":"true"})}),(0,i.jsx)("span",{className:"text-sm text-ink-soft",children:e})]},e)})}),(0,i.jsxs)("div",{className:"border-t border-gray-200 pt-5 sm:pt-6 flex flex-col gap-3",children:[(0,i.jsxs)("a",{href:"tel:+12069486426",className:"flex items-center gap-3 text-sm text-ink-soft hover:text-orange-500 transition-colors",children:[(0,i.jsx)(te.A,{className:"w-5 h-5 shrink-0","aria-hidden":"true"}),"+1 206-948-6426"]}),(0,i.jsxs)("a",{href:"mailto:Support@skyridgegroup.com",className:"flex items-center gap-3 text-sm text-ink-soft hover:text-orange-500 transition-colors",children:[(0,i.jsx)(re.A,{className:"w-5 h-5 shrink-0","aria-hidden":"true"}),"Support@skyridgegroup.com"]})]})]})]})]})})});Ne.displayName="ApplicationFormSection";const Se=Ne;var Ae=(0,n.memo)(function(){return(0,a.P)({title:"Mortgage Solutions | Skyridge Group",description:"Calculate your mortgage payment instantly. Explore fixed-rate, adjustable-rate, and first-time buyer loans. Get pre-approved with Skyridge Group today.",keywords:["mortgage calculator","refinance calculator","home loan","mortgage rate","first-time buyer","skyridge group"]}),(0,i.jsxs)("div",{className:"bg-white min-h-screen py-14 lg:py-20",children:[(0,i.jsx)(c,{}),(0,i.jsx)(_,{}),(0,i.jsx)(U,{}),(0,i.jsx)(Z,{}),(0,i.jsx)(Se,{}),(0,i.jsx)(o.A,{})]})});Ae.displayName="Mortgage";const Oe=Ae},5493(e,t,r){r.d(t,{P:()=>o});var n=r(6540),a=r(9521),o=function(e){var t=e.title,r=e.description,o=e.keywords,l=void 0===o?[]:o,i=e.image,s=void 0===i?"":i,c=e.type,u=void 0===c?"website":c,m=e.locale,d=void 0===m?"en":m,p=l.join(",");(0,n.useEffect)(function(){var e=function(e){var t=e.title,r=e.description,n=e.keywords,o=void 0===n?[]:n,l=e.url,i=void 0===l?"":l,s=e.image,c=void 0===s?"":s,u=e.type,m=void 0===u?"website":u,d=e.locale,p=void 0===d?"en":d,f="undefined"!=typeof window?window.location.origin:"",y=i||("undefined"!=typeof window?window.location.href:f),g=a.l8.DEFAULT_TITLE;return{title:t?"".concat(t," | ").concat(g):g,description:r,keywords:o.join(", "),canonical:y,openGraph:{title:t,description:r,url:y,siteName:g,images:c?[{url:c}]:[],locale:p,type:m},twitter:{card:"summary_large_image",title:t,description:r,images:c?[c]:[]}}}({title:t,description:r,keywords:l,image:s,type:u,locale:d});!function(e){if("undefined"!=typeof document){document.title=e.title;var t=[{name:"description",content:e.description},{name:"keywords",content:e.keywords},{property:"og:title",content:e.openGraph.title},{property:"og:description",content:e.openGraph.description},{property:"og:url",content:e.openGraph.url},{property:"og:site_name",content:e.openGraph.siteName},{property:"og:locale",content:e.openGraph.locale},{property:"og:type",content:e.openGraph.type},{name:"twitter:card",content:e.twitter.card},{name:"twitter:title",content:e.twitter.title},{name:"twitter:description",content:e.twitter.description}];e.openGraph.images.length>0&&t.push({property:"og:image",content:e.openGraph.images[0].url}),e.twitter.images.length>0&&t.push({name:"twitter:image",content:e.twitter.images[0]}),t.forEach(function(e){var t=e.name,r=e.property,n=e.content;if(n){var a=t?'meta[name="'.concat(t,'"]'):'meta[property="'.concat(r,'"]'),o=document.querySelector(a);o||(o=document.createElement("meta"),t&&o.setAttribute("name",t),r&&o.setAttribute("property",r),document.head.appendChild(o)),o.setAttribute("content",n)}});var r=document.querySelector('link[rel="canonical"]')||document.createElement("link");r.setAttribute("rel","canonical"),r.setAttribute("href",e.canonical),document.querySelector('link[rel="canonical"]')||document.head.appendChild(r)}}(e)},[t,r,p,s,u,d])}},9740(e,t,r){r.d(t,{A:()=>c});var n=r(6540),a=r(8635),o=r(9521),l=r(6344),i=r(4848),s=(0,n.memo)(function(){return(0,i.jsx)("section",{className:"",children:(0,i.jsx)("div",{className:"mx-auto max-w-384 px-4 sm:px-8 lg:px-12",children:(0,i.jsxs)("div",{className:"relative flex min-h-75 flex-col justify-center overflow-hidden rounded-2xl bg-navy p-8 sm:p-10 lg:p-16",children:[(0,i.jsx)("div",{className:"absolute bottom-0 right-0 top-0 hidden w-[45%] lg:block",children:(0,i.jsx)("img",{src:"/cta.webp",alt:"Decorative pattern",className:"h-full w-full object-cover object-left","aria-hidden":"true",loading:"lazy"})}),(0,i.jsxs)("div",{className:"relative z-10 max-w-full space-y-5 sm:max-w-md lg:max-w-137.5 lg:space-y-6",children:[(0,i.jsx)("h2",{className:"font-playfair text-4xl leading-tight text-white lg:text-[56px]",children:"Ready to find your dream home?"}),(0,i.jsx)("p",{className:"text-base leading-6 text-text-light",children:"Join thousands of happy homeowners who found their perfect match through EstateFlow."}),(0,i.jsx)("div",{className:"pt-2",children:(0,i.jsxs)(l.A,{to:o.bw.BUY,className:"inline-flex items-center gap-3 rounded-full bg-white px-5 py-2.5 text-black transition-colors hover:bg-slate-100",children:[(0,i.jsx)("span",{className:"text-sm font-semibold sm:text-base",children:"Browse Properties"}),(0,i.jsx)("span",{className:"flex h-8 w-8 items-center justify-center rounded-full bg-purple",children:(0,i.jsx)(a.A,{className:"h-5 w-5 text-white","aria-hidden":"true"})})]})})]})]})})})});s.displayName="PropertiesCTA";const c=s}}]); \ No newline at end of file diff --git a/dist/js/1393.6082f12c.chunk.js.LICENSE.txt b/dist/js/1393.08461c74.chunk.js.LICENSE.txt similarity index 100% rename from dist/js/1393.6082f12c.chunk.js.LICENSE.txt rename to dist/js/1393.08461c74.chunk.js.LICENSE.txt diff --git a/dist/js/1393.08461c74.chunk.js.map b/dist/js/1393.08461c74.chunk.js.map new file mode 100644 index 0000000..6e671c7 --- /dev/null +++ b/dist/js/1393.08461c74.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/1393.08461c74.chunk.js","mappings":"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","sources":["webpack://react-webpack-tailwind-app/./src/components/mortgage/HeroSection.jsx","webpack://react-webpack-tailwind-app/./src/components/mortgage/mortgageApplicationStorage.js","webpack://react-webpack-tailwind-app/./src/components/mortgage/MortgageCalcSection.jsx","webpack://react-webpack-tailwind-app/./src/components/mortgage/RefinanceCalcSection.jsx","webpack://react-webpack-tailwind-app/./src/components/mortgage/LoanTypesSection.jsx","webpack://react-webpack-tailwind-app/./src/components/mortgage/ApplicationFormSection.jsx","webpack://react-webpack-tailwind-app/./src/pages/Mortgage.jsx","webpack://react-webpack-tailwind-app/./src/hooks/useSEO.js","webpack://react-webpack-tailwind-app/./src/utils/seo.js","webpack://react-webpack-tailwind-app/./src/components/shared/PropertiesCTA.jsx"],"sourcesContent":["import React, { memo } from 'react';\r\nimport AnimatedButton from '../shared/AnimatedButton';\r\n\r\nconst HERO_BG = '/MortgageHeroBg.webp';\r\n\r\nconst HeroSection = memo(() => (\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n

\r\n Mortgage Solutions\r\n

\r\n

\r\n Your Dream Home Starts With the Right Loan\r\n

\r\n

\r\n “Owning a home is the keystone of wealth both financial\r\n affluence and emotional security.” Suze Orman\r\n

\r\n
\r\n \r\n Calculate Now\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n));\r\n\r\nHeroSection.displayName = 'HeroSection';\r\n\r\nexport default HeroSection;\r\n","const STORAGE_KEY = 'skyridge:mortgageApplicationDraft';\r\nconst MORTGAGE_KEY = 'skyridge:mortgageApplicationDraft:mortgage';\r\nconst REFINANCE_KEY = 'skyridge:mortgageApplicationDraft:refinance';\r\nconst ACTIVE_CALCULATOR_KEY = 'skyridge:mortgageApplicationDraft:activeCalculator';\r\n\r\nexport const CALCULATOR_TYPES = {\r\n MORTGAGE: 'mortgage',\r\n REFINANCE: 'refinance',\r\n};\r\n\r\nexport function saveMortgageApplicationDraft(draft) {\r\n if (typeof window === 'undefined') return;\r\n\r\n const payload = {\r\n ...draft,\r\n updatedAt: Date.now(),\r\n };\r\n\r\n const key =\r\n draft?.calculatorType === CALCULATOR_TYPES.REFINANCE\r\n ? REFINANCE_KEY\r\n : MORTGAGE_KEY;\r\n\r\n window.localStorage.setItem(key, JSON.stringify(payload));\r\n window.localStorage.setItem(STORAGE_KEY, JSON.stringify(payload));\r\n}\r\n\r\nexport function getAllMortgageApplicationDrafts() {\r\n if (typeof window === 'undefined') return { mortgage: null, refinance: null, activeCalculator: null };\r\n\r\n const readDraft = (key) => {\r\n const raw = window.localStorage.getItem(key);\r\n if (!raw) return null;\r\n\r\n try {\r\n return JSON.parse(raw);\r\n } catch {\r\n return null;\r\n }\r\n };\r\n\r\n return {\r\n mortgage: readDraft(MORTGAGE_KEY),\r\n refinance: readDraft(REFINANCE_KEY),\r\n activeCalculator: window.localStorage.getItem(ACTIVE_CALCULATOR_KEY),\r\n };\r\n}\r\n\r\nexport function setActiveCalculator(calculatorType) {\r\n if (typeof window === 'undefined') return;\r\n window.localStorage.setItem(ACTIVE_CALCULATOR_KEY, calculatorType || '');\r\n}\r\n\r\nexport function getMortgageApplicationDraft() {\r\n if (typeof window === 'undefined') return null;\r\n\r\n const readDraft = (key) => {\r\n const raw = window.localStorage.getItem(key);\r\n if (!raw) return null;\r\n\r\n try {\r\n return JSON.parse(raw);\r\n } catch {\r\n return null;\r\n }\r\n };\r\n\r\n const activeDraft = readDraft(STORAGE_KEY);\r\n const mortgageDraft = readDraft(MORTGAGE_KEY);\r\n const refinanceDraft = readDraft(REFINANCE_KEY);\r\n const activeCalculator = window.localStorage.getItem(ACTIVE_CALCULATOR_KEY);\r\n\r\n if (activeCalculator === CALCULATOR_TYPES.MORTGAGE && mortgageDraft) {\r\n return mortgageDraft;\r\n }\r\n\r\n if (activeCalculator === CALCULATOR_TYPES.REFINANCE && refinanceDraft) {\r\n return refinanceDraft;\r\n }\r\n\r\n const drafts = [activeDraft, mortgageDraft, refinanceDraft].filter(Boolean);\r\n if (drafts.length === 0) return null;\r\n\r\n return drafts.reduce((latest, current) => {\r\n const latestTime = latest?.updatedAt || 0;\r\n const currentTime = current?.updatedAt || 0;\r\n return currentTime >= latestTime ? current : latest;\r\n });\r\n}\r\n\r\nexport function clearMortgageApplicationDraft() {\r\n if (typeof window === 'undefined') return;\r\n window.localStorage.removeItem(STORAGE_KEY);\r\n window.localStorage.removeItem(MORTGAGE_KEY);\r\n window.localStorage.removeItem(REFINANCE_KEY);\r\n window.localStorage.removeItem(ACTIVE_CALCULATOR_KEY);\r\n}\r\n","import React, { memo, useState, useCallback } from 'react';\r\nimport {\r\n CALCULATOR_TYPES,\r\n saveMortgageApplicationDraft,\r\n setActiveCalculator,\r\n} from './mortgageApplicationStorage';\r\n\r\n// ---------------------------------------------------------------------------\r\n// Math utilities (exported for reuse in RefinanceCalcSection)\r\n// ---------------------------------------------------------------------------\r\nexport function calcPMT(principal, annualRatePct, termYears) {\r\n const r = annualRatePct / 100 / 12;\r\n const n = termYears * 12;\r\n if (!principal || principal <= 0 || !n) return 0;\r\n if (r === 0) return principal / n;\r\n return (principal * r * Math.pow(1 + r, n)) / (Math.pow(1 + r, n) - 1);\r\n}\r\n\r\nexport function fmtUSD(n) {\r\n if (!isFinite(n) || isNaN(n) || n < 0) return '$0.00';\r\n return n.toLocaleString('en-US', {\r\n style: 'currency',\r\n currency: 'USD',\r\n minimumFractionDigits: 2,\r\n maximumFractionDigits: 2,\r\n });\r\n}\r\n\r\n// ---------------------------------------------------------------------------\r\n// Shared sub-components (exported for reuse in RefinanceCalcSection)\r\n// ---------------------------------------------------------------------------\r\nexport const DonutChart = memo(({ items }) => {\r\n const total = items.reduce((s, i) => s + i.value, 0);\r\n if (total <= 0) return null;\r\n const cx = 50,\r\n cy = 50,\r\n r = 35,\r\n sw = 13;\r\n const C = 2 * Math.PI * r;\r\n let cumulative = 0;\r\n const arcs = items.map((item) => {\r\n const len = (item.value / total) * C;\r\n const offset = C - cumulative;\r\n cumulative += len;\r\n return { ...item, len, offset };\r\n });\r\n return (\r\n \r\n \r\n {arcs.map((a, i) => (\r\n \r\n ))}\r\n \r\n );\r\n});\r\nDonutChart.displayName = 'DonutChart';\r\n\r\nexport const InputField = memo(({ label, required, id, children, error }) => (\r\n
\r\n \r\n {children}\r\n {error &&

{error}

}\r\n
\r\n));\r\nInputField.displayName = 'InputField';\r\n\r\nexport const calcInputClass =\r\n 'w-full border border-gray-200 rounded-[10px] px-4 py-2.5 text-base text-ink focus:outline-none focus:ring-2 focus:ring-orange-400 focus:border-transparent transition-all';\r\n\r\nexport const ResultCard = memo(\r\n ({ total, principalInterest, propertyTax, homeInsurance, hoa, onApply }) => {\r\n const items = [\r\n { value: principalInterest, color: '#1e3a8a' },\r\n { value: propertyTax, color: '#f97316' },\r\n { value: homeInsurance, color: '#10b981' },\r\n ...(hoa != null ? [{ value: hoa, color: '#8b5cf6' }] : []),\r\n ];\r\n const rows = [\r\n {\r\n label: 'Principal & Interest',\r\n value: fmtUSD(principalInterest),\r\n color: '#1e3a8a',\r\n },\r\n { label: 'Property Tax', value: fmtUSD(propertyTax), color: '#f97316' },\r\n {\r\n label: 'Home Owner Insurance',\r\n value: fmtUSD(homeInsurance),\r\n color: '#10b981',\r\n },\r\n ...(hoa != null\r\n ? [{ label: 'HOA', value: fmtUSD(hoa), color: '#8b5cf6' }]\r\n : []),\r\n ];\r\n return (\r\n \r\n

Estimated Monthly Payment

\r\n

\r\n \r\n {fmtUSD(total).replace(/\\.00$/, '')}\r\n \r\n /mo\r\n

\r\n
\r\n {rows.map(({ label, value }) => (\r\n
\r\n {label}\r\n \r\n {value}\r\n \r\n
\r\n ))}\r\n
\r\n \r\n {\r\n e.preventDefault();\r\n onApply?.();\r\n document\r\n .getElementById('apply-form')\r\n ?.scrollIntoView({ behavior: 'smooth' });\r\n }}\r\n className='block w-full bg-orange-500 hover:bg-orange-600 text-white text-base font-medium text-center py-3 rounded-lg shadow-md transition-colors duration-150 cursor-pointer'\r\n >\r\n Apply for This Loan\r\n \r\n
\r\n );\r\n },\r\n);\r\nResultCard.displayName = 'ResultCard';\r\n\r\n// ---------------------------------------------------------------------------\r\n// Static data\r\n// ---------------------------------------------------------------------------\r\nconst INITIAL_MORTGAGE = {\r\n purchaseAmount: '',\r\n downPayment: '',\r\n interestRate: '',\r\n loanTerm: '',\r\n};\r\n\r\n// ---------------------------------------------------------------------------\r\n// MortgageCalcSection\r\n// ---------------------------------------------------------------------------\r\nconst MortgageCalcSection = memo(() => {\r\n const [form, setForm] = useState(INITIAL_MORTGAGE);\r\n const set = useCallback(\r\n (field) => (e) =>\r\n setForm((prev) => ({\r\n ...prev,\r\n [field]: e.target.value,\r\n })),\r\n [],\r\n );\r\n\r\n const persistDraft = useCallback(\r\n (nextForm) => {\r\n const loanAmount = Math.max(0, nextForm.purchaseAmount - nextForm.downPayment);\r\n const principalInterest = calcPMT(loanAmount, nextForm.interestRate, nextForm.loanTerm);\r\n const propertyTax = (nextForm.purchaseAmount * 0.01) / 12;\r\n const homeInsurance = 150;\r\n const monthlyPayment = principalInterest + propertyTax + homeInsurance;\r\n\r\n saveMortgageApplicationDraft({\r\n calculatorType: CALCULATOR_TYPES.MORTGAGE,\r\n calculatorData: {\r\n mortgagePurchaseAmount: nextForm.purchaseAmount,\r\n mortgageDownPayment: nextForm.downPayment,\r\n mortgageInterestRate: nextForm.interestRate,\r\n mortgageLoanTerm: nextForm.loanTerm,\r\n mortgageEstMonthly: Number(monthlyPayment.toFixed(2)),\r\n mortgagePrincipalInterest: Number(principalInterest.toFixed(2)),\r\n mortgagePropertyTax: Number(propertyTax.toFixed(2)),\r\n mortgageHomeInsurance: homeInsurance,\r\n },\r\n });\r\n },\r\n [],\r\n );\r\n\r\n const handleFieldChange = useCallback(\r\n (field) => (e) => {\r\n const nextValue = e.target.value;\r\n setForm((prev) => {\r\n const nextForm = { ...prev, [field]: nextValue };\r\n persistDraft(nextForm);\r\n return nextForm;\r\n });\r\n },\r\n [persistDraft],\r\n );\r\n\r\n const handleApply = useCallback(() => {\r\n persistDraft(form);\r\n setActiveCalculator(CALCULATOR_TYPES.MORTGAGE);\r\n }, [form, persistDraft]);\r\n\r\n const purchaseAmount = Number(form.purchaseAmount) || 0;\r\n const downPayment = Number(form.downPayment) || 0;\r\n const interestRate = Number(form.interestRate) || 0;\r\n const loanTerm = Number(form.loanTerm) || 0;\r\n const loanAmount = Math.max(0, purchaseAmount - downPayment);\r\n const pi = calcPMT(loanAmount, interestRate, loanTerm);\r\n const tax = (purchaseAmount * 0.01) / 12;\r\n const insurance = 150;\r\n const total = pi + tax + insurance;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

\r\n Mortgage Calculator\r\n

\r\n

\r\n Estimate your monthly payment in seconds\r\n

\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n});\r\n\r\nMortgageCalcSection.displayName = 'MortgageCalcSection';\r\n\r\nexport default MortgageCalcSection;\r\n","import React, { memo, useState, useCallback } from 'react';\r\nimport {\r\n calcPMT,\r\n fmtUSD,\r\n InputField,\r\n ResultCard,\r\n calcInputClass,\r\n} from './MortgageCalcSection';\r\nimport {\r\n CALCULATOR_TYPES,\r\n saveMortgageApplicationDraft,\r\n setActiveCalculator,\r\n} from './mortgageApplicationStorage';\r\n\r\nconst INITIAL_REFINANCE = {\r\n loanAmount: '',\r\n homeValue: '',\r\n fico: '',\r\n interestRate: '',\r\n loanTerm: '',\r\n};\r\n\r\nconst RefinanceCalcSection = memo(() => {\r\n const [form, setForm] = useState(INITIAL_REFINANCE);\r\n\r\n const persistDraft = useCallback(\r\n (nextForm) => {\r\n const principalInterest = calcPMT(nextForm.loanAmount, nextForm.interestRate, nextForm.loanTerm);\r\n const propertyTax = (nextForm.homeValue * 0.01) / 12;\r\n const homeInsurance = 150;\r\n const hoa = 0;\r\n const monthlyPayment = principalInterest + propertyTax + homeInsurance + hoa;\r\n\r\n saveMortgageApplicationDraft({\r\n calculatorType: CALCULATOR_TYPES.REFINANCE,\r\n calculatorData: {\r\n refinanceLoanAmount: nextForm.loanAmount,\r\n refinanceHomeValue: nextForm.homeValue,\r\n refinanceInterestRate: nextForm.interestRate,\r\n refinanceFico: nextForm.fico,\r\n refinanceLoanTerm: nextForm.loanTerm,\r\n refinanceEstMonthly: Number(monthlyPayment.toFixed(2)),\r\n refinancePrincipalInterest: Number(principalInterest.toFixed(2)),\r\n refinancePropertyTax: Number(propertyTax.toFixed(2)),\r\n refinanceHomeInsurance: homeInsurance,\r\n refinanceHoa: hoa,\r\n },\r\n });\r\n },\r\n [],\r\n );\r\n\r\n const handleFieldChange = useCallback(\r\n (field) => (e) => {\r\n const nextValue = e.target.value;\r\n setForm((prev) => {\r\n const nextForm = { ...prev, [field]: nextValue };\r\n persistDraft(nextForm);\r\n return nextForm;\r\n });\r\n },\r\n [persistDraft],\r\n );\r\n\r\n const handleApply = useCallback(() => {\r\n persistDraft(form);\r\n setActiveCalculator(CALCULATOR_TYPES.REFINANCE);\r\n }, [form, persistDraft]);\r\n\r\n const loanAmount = Number(form.loanAmount) || 0;\r\n const homeValue = Number(form.homeValue) || 0;\r\n const interestRate = Number(form.interestRate) || 0;\r\n const loanTerm = Number(form.loanTerm) || 0;\r\n const pi = calcPMT(loanAmount, interestRate, loanTerm);\r\n const tax = (homeValue * 0.01) / 12;\r\n const insurance = 150;\r\n const hoa = 0;\r\n const total = pi + tax + insurance + hoa;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

\r\n Refinance Calculator\r\n

\r\n

\r\n Estimate your monthly payment in seconds\r\n

\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n});\r\n\r\nRefinanceCalcSection.displayName = 'RefinanceCalcSection';\r\n\r\nexport default RefinanceCalcSection;\r\n","import React, { memo } from 'react';\r\nimport {\r\n TrendingUp,\r\n Percent,\r\n Home as HomeIcon,\r\n ChevronRight,\r\n} from 'lucide-react';\r\n\r\nconst LOAN_TYPES = [\r\n {\r\n Icon: TrendingUp,\r\n title: 'Fixed Rate Mortgage',\r\n description:\r\n 'Predictable monthly payments with the same interest rate for the entire loan term perfect for long term stability.',\r\n },\r\n {\r\n Icon: Percent,\r\n title: 'Adjustable Rate Mortgage',\r\n description:\r\n 'Lower initial rates that adjust over time ideal if you plan to move or refinance within a few years.',\r\n },\r\n {\r\n Icon: HomeIcon,\r\n title: 'First-Time Buyer',\r\n description:\r\n 'Special programs with low down payments and flexible credit requirements designed for new homeowners.',\r\n },\r\n];\r\n\r\nconst LoanTypesSection = memo(() => (\r\n
\r\n
\r\n
\r\n

\r\n Choose Your Loan Type\r\n

\r\n

\r\n Find the mortgage that fits your life\r\n

\r\n
\r\n\r\n
\r\n {LOAN_TYPES.map(({ Icon, title, description }) => (\r\n \r\n
\r\n
\r\n
\r\n

{title}

\r\n

\r\n {description}\r\n

\r\n
\r\n \r\n Learn More\r\n
\r\n ))}\r\n
\r\n \r\n
\r\n));\r\n\r\nLoanTypesSection.displayName = 'LoanTypesSection';\r\n\r\nexport default LoanTypesSection;\r\n","import React, { memo, useState, useCallback } from 'react';\r\nimport { Phone, Mail, Check } from 'lucide-react';\r\nimport toast from 'react-hot-toast';\r\nimport { httpMethods } from '../../services/httpMethods';\r\nimport API_ENDPOINTS from '../../services/httpEndpoint';\r\nimport AnimatedButton from '../shared/AnimatedButton';\r\nimport { InputField } from './MortgageCalcSection';\r\nimport {\r\n getMortgageApplicationDraft,\r\n getAllMortgageApplicationDrafts,\r\n clearMortgageApplicationDraft,\r\n CALCULATOR_TYPES,\r\n} from './mortgageApplicationStorage';\r\n\r\nconst formInputClass =\r\n 'w-full border border-gray-200 rounded-[10px] px-4 py-3 text-base text-ink placeholder:text-[rgba(10,10,10,0.45)] focus:outline-none focus:ring-2 focus:ring-orange-400 focus:border-transparent transition-all';\r\n\r\nconst INITIAL_FORM = {\r\n fullName: '',\r\n email: '',\r\n phone: '',\r\n annualIncome: '',\r\n employmentStatus: '',\r\n desiredLoanAmount: '',\r\n propertyType: '',\r\n notes: '',\r\n agreeToTerms: false,\r\n};\r\n\r\nconst PROPERTY_TYPE_OPTIONS = [\r\n { value: 'SINGLE_FAMILY_HOME', label: 'Single Family Home' },\r\n { value: 'TOWNHOMES', label: 'Townhomes' },\r\n { value: 'LAND', label: 'Land' },\r\n { value: 'COMMERCIAL', label: 'Commercial' },\r\n];\r\n\r\nconst PROPERTY_TYPE_ALIASES = {\r\n DETACHED: 'SINGLE_FAMILY_HOME',\r\n SEMI_DETACHED: 'SINGLE_FAMILY_HOME',\r\n TERRACE: 'TOWNHOMES',\r\n FLAT: 'TOWNHOMES',\r\n BUNGALOW: 'SINGLE_FAMILY_HOME',\r\n OFFICE_SPACE: 'COMMERCIAL',\r\n WAREHOUSE: 'COMMERCIAL',\r\n};\r\n\r\nfunction normalizePropertyType(value) {\r\n if (!value) return '';\r\n return PROPERTY_TYPE_ALIASES[value] || value;\r\n}\r\n\r\nconst ApplicationFormSection = memo(() => {\r\n const [form, setForm] = useState(INITIAL_FORM);\r\n const [errors, setErrors] = useState({});\r\n const [submitting, setSubmitting] = useState(false);\r\n\r\n const sanitizeDecimalInput = useCallback((value) => {\r\n const text = String(value);\r\n const [wholePart, ...decimalParts] = text.replace(/[^\\d.]/g, '').split('.');\r\n if (decimalParts.length === 0) return wholePart;\r\n return `${wholePart}.${decimalParts.join('').replace(/\\./g, '')}`;\r\n }, []);\r\n\r\n const getCalculatorPayload = useCallback(() => {\r\n const drafts = getAllMortgageApplicationDrafts();\r\n const activeDraft = getMortgageApplicationDraft();\r\n if (!activeDraft?.calculatorType || !activeDraft?.calculatorData) return null;\r\n\r\n return {\r\n activeDraft,\r\n allDrafts: drafts,\r\n };\r\n }, []);\r\n\r\n const handleChange = useCallback((e) => {\r\n const { name, value, type, checked } = e.target;\r\n const nextValue =\r\n name === 'phone' || name === 'annualIncome'\r\n ? value.replace(/\\D/g, '')\r\n : name === 'desiredLoanAmount'\r\n ? sanitizeDecimalInput(value)\r\n : value;\r\n\r\n setForm((prev) => ({\r\n ...prev,\r\n [name]: type === 'checkbox' ? checked : nextValue,\r\n }));\r\n setErrors((prev) => ({ ...prev, [name]: '' }));\r\n }, [sanitizeDecimalInput]);\r\n\r\n const isNumericValue = useCallback((value) => {\r\n const text = String(value).trim();\r\n if (!text) return false;\r\n return /^\\d+(\\.\\d+)?$/.test(text.replace(/,/g, ''));\r\n }, []);\r\n\r\n const validate = useCallback(() => {\r\n const errs = {};\r\n if (!form.fullName.trim()) errs.fullName = 'Full name is required.';\r\n if (!form.email.trim()) {\r\n errs.email = 'Email address is required.';\r\n } else if (!/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(form.email)) {\r\n errs.email = 'Please enter a valid email address.';\r\n }\r\n if (!form.phone.trim()) errs.phone = 'Phone number is required.';\r\n if (form.annualIncome.trim() && !isNumericValue(form.annualIncome)) {\r\n errs.annualIncome = 'Please enter a valid annual income.';\r\n }\r\n if (!form.desiredLoanAmount.trim()) {\r\n errs.desiredLoanAmount = 'Desired Loan Amount is required.';\r\n } else if (!isNumericValue(form.desiredLoanAmount)) {\r\n errs.desiredLoanAmount = 'Please enter a number in Desired Loan Amount.';\r\n }\r\n if (!form.agreeToTerms)\r\n errs.agreeToTerms = 'You must agree to the terms and privacy policy.';\r\n return errs;\r\n }, [form, isNumericValue]);\r\n\r\n const handleSubmit = useCallback(\r\n async (e) => {\r\n e.preventDefault();\r\n const errs = validate();\r\n if (Object.keys(errs).length) {\r\n setErrors(errs);\r\n return;\r\n }\r\n\r\n const draft = getCalculatorPayload();\r\n if (!draft) {\r\n toast.error('Please use either the Mortgage Calculator or Refinance Calculator before submitting your application.');\r\n return;\r\n }\r\n\r\n setSubmitting(true);\r\n try {\r\n const calculatorDesiredLoanAmount = (() => {\r\n if (draft.activeDraft.calculatorType === CALCULATOR_TYPES.MORTGAGE) {\r\n const purchaseAmount = draft.activeDraft.calculatorData?.mortgagePurchaseAmount;\r\n const downPayment = draft.activeDraft.calculatorData?.mortgageDownPayment;\r\n if (purchaseAmount != null && downPayment != null) {\r\n return Number(purchaseAmount) - Number(downPayment);\r\n }\r\n return null;\r\n }\r\n\r\n if (draft.activeDraft.calculatorType === CALCULATOR_TYPES.REFINANCE) {\r\n const refinanceLoanAmount = draft.activeDraft.calculatorData?.refinanceLoanAmount;\r\n return refinanceLoanAmount != null ? Number(refinanceLoanAmount) : null;\r\n }\r\n\r\n return null;\r\n })();\r\n\r\n const payload = {\r\n fullName: form.fullName,\r\n email: form.email,\r\n phoneNumber: form.phone,\r\n employmentStatus: form.employmentStatus,\r\n annualIncome: form.annualIncome ? Number(form.annualIncome) : null,\r\n desiredLoanAmount: form.desiredLoanAmount\r\n ? Number(form.desiredLoanAmount)\r\n : calculatorDesiredLoanAmount,\r\n propertyType: normalizePropertyType(form.propertyType),\r\n message: form.notes,\r\n ...draft.activeDraft.calculatorData,\r\n selectedCalculatorType: draft.activeDraft.calculatorType,\r\n mortgageCalculatorData: draft.allDrafts.mortgage?.calculatorData || null,\r\n refinanceCalculatorData: draft.allDrafts.refinance?.calculatorData || null,\r\n };\r\n\r\n const { error } = await httpMethods.post(\r\n API_ENDPOINTS.MORTGAGE_APPLICATIONS.CREATE,\r\n payload,\r\n );\r\n\r\n if (error) throw error;\r\n\r\n toast.success(\r\n 'Application submitted! Our team will contact you shortly.',\r\n );\r\n setForm(INITIAL_FORM);\r\n setErrors({});\r\n clearMortgageApplicationDraft();\r\n } catch {\r\n toast.error('Failed to submit. Please try again.');\r\n } finally {\r\n setSubmitting(false);\r\n }\r\n },\r\n [validate, form, getCalculatorPayload],\r\n );\r\n\r\n return (\r\n \r\n
\r\n
\r\n

\r\n Apply for a Mortgage\r\n

\r\n

\r\n Fill out the form below and our team will respond within 24 hours\r\n

\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n {PROPERTY_TYPE_OPTIONS.map((opt) => (\r\n \r\n ))}\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n
\r\n \r\n {errors.agreeToTerms && (\r\n

\r\n {errors.agreeToTerms}\r\n

\r\n )}\r\n
\r\n\r\n \r\n {submitting ? 'Submitting...' : 'Submit Application'}\r\n \r\n \r\n\r\n \r\n
\r\n
\r\n \r\n );\r\n});\r\n\r\nApplicationFormSection.displayName = 'ApplicationFormSection';\r\n\r\nexport default ApplicationFormSection;\r\n","import React, { memo } from \"react\";\r\nimport { useSEO } from \"../hooks/useSEO\";\r\nimport PropertiesCTA from \"../components/shared/PropertiesCTA\";\r\nimport HeroSection from \"../components/mortgage/HeroSection\";\r\nimport MortgageCalcSection from \"../components/mortgage/MortgageCalcSection\";\r\nimport RefinanceCalcSection from \"../components/mortgage/RefinanceCalcSection\";\r\nimport LoanTypesSection from \"../components/mortgage/LoanTypesSection\";\r\nimport ApplicationFormSection from \"../components/mortgage/ApplicationFormSection\";\r\n\r\nconst Mortgage = memo(() => {\r\n useSEO({\r\n title: \"Mortgage Solutions | Skyridge Group\",\r\n description:\r\n \"Calculate your mortgage payment instantly. Explore fixed-rate, adjustable-rate, and first-time buyer loans. Get pre-approved with Skyridge Group today.\",\r\n keywords: [\r\n \"mortgage calculator\",\r\n \"refinance calculator\",\r\n \"home loan\",\r\n \"mortgage rate\",\r\n \"first-time buyer\",\r\n \"skyridge group\",\r\n ],\r\n });\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n});\r\n\r\nMortgage.displayName = \"Mortgage\";\r\n\r\nexport default Mortgage;\r\n","import { useEffect } from 'react';\r\nimport { generateMetadata, updateMetaTags } from '../utils/seo';\r\n\r\nexport const useSEO = ({\r\n title,\r\n description,\r\n keywords = [],\r\n image = '',\r\n type = 'website',\r\n locale = 'en',\r\n}) => {\r\n const keywordsKey = keywords.join(',');\r\n\r\n useEffect(() => {\r\n const metadata = generateMetadata({\r\n title,\r\n description,\r\n keywords,\r\n image,\r\n type,\r\n locale,\r\n });\r\n\r\n updateMetaTags(metadata);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [title, description, keywordsKey, image, type, locale]);\r\n};\r\n","import { SEO_CONFIG } from '../config';\r\n\r\nexport const generateMetadata = ({\r\n title,\r\n description,\r\n keywords = [],\r\n url = '',\r\n image = '',\r\n type = 'website',\r\n locale = 'en',\r\n}) => {\r\n const baseUrl = typeof window !== 'undefined' ? window.location.origin : '';\r\n const fullUrl =\r\n url || (typeof window !== 'undefined' ? window.location.href : baseUrl);\r\n const siteName = SEO_CONFIG.DEFAULT_TITLE;\r\n\r\n return {\r\n title: title ? `${title} | ${siteName}` : siteName,\r\n description,\r\n keywords: keywords.join(', '),\r\n canonical: fullUrl,\r\n openGraph: { \r\n title,\r\n description,\r\n url: fullUrl,\r\n siteName,\r\n images: image ? [{ url: image }] : [],\r\n locale,\r\n type,\r\n },\r\n twitter: {\r\n card: 'summary_large_image',\r\n title,\r\n description,\r\n images: image ? [image] : [],\r\n },\r\n };\r\n};\r\n\r\nexport const generateStructuredData = (type, data) => {\r\n const baseData = {\r\n '@context': 'https://schema.org',\r\n '@type': type,\r\n };\r\n\r\n return JSON.stringify({ ...baseData, ...data });\r\n};\r\n\r\nexport const updateMetaTags = (metadata) => {\r\n if (typeof document === 'undefined') return;\r\n\r\n document.title = metadata.title;\r\n\r\n const metaTags = [\r\n { name: 'description', content: metadata.description },\r\n { name: 'keywords', content: metadata.keywords },\r\n { property: 'og:title', content: metadata.openGraph.title },\r\n { property: 'og:description', content: metadata.openGraph.description },\r\n { property: 'og:url', content: metadata.openGraph.url },\r\n { property: 'og:site_name', content: metadata.openGraph.siteName },\r\n { property: 'og:locale', content: metadata.openGraph.locale },\r\n { property: 'og:type', content: metadata.openGraph.type },\r\n { name: 'twitter:card', content: metadata.twitter.card },\r\n { name: 'twitter:title', content: metadata.twitter.title },\r\n { name: 'twitter:description', content: metadata.twitter.description },\r\n ];\r\n\r\n if (metadata.openGraph.images.length > 0) {\r\n metaTags.push({\r\n property: 'og:image',\r\n content: metadata.openGraph.images[0].url,\r\n });\r\n }\r\n\r\n if (metadata.twitter.images.length > 0) {\r\n metaTags.push({\r\n name: 'twitter:image',\r\n content: metadata.twitter.images[0],\r\n });\r\n }\r\n\r\n metaTags.forEach(({ name, property, content }) => {\r\n if (!content) return;\r\n\r\n const selector = name\r\n ? `meta[name=\"${name}\"]`\r\n : `meta[property=\"${property}\"]`;\r\n let element = document.querySelector(selector);\r\n\r\n if (!element) {\r\n element = document.createElement('meta');\r\n if (name) element.setAttribute('name', name);\r\n if (property) element.setAttribute('property', property);\r\n document.head.appendChild(element);\r\n }\r\n\r\n element.setAttribute('content', content);\r\n });\r\n\r\n const canonicalLink =\r\n document.querySelector('link[rel=\"canonical\"]') ||\r\n document.createElement('link');\r\n canonicalLink.setAttribute('rel', 'canonical');\r\n canonicalLink.setAttribute('href', metadata.canonical);\r\n if (!document.querySelector('link[rel=\"canonical\"]')) {\r\n document.head.appendChild(canonicalLink);\r\n }\r\n};\r\n\r\nexport const createBreadcrumbStructuredData = (breadcrumbs) => {\r\n const itemListElement = breadcrumbs.map((crumb, index) => ({\r\n '@type': 'ListItem',\r\n position: index + 1,\r\n name: crumb.name,\r\n item: crumb.url,\r\n }));\r\n\r\n return generateStructuredData('BreadcrumbList', { itemListElement });\r\n};\r\n","import React, { memo } from 'react';\r\nimport { ArrowRight } from 'lucide-react';\r\nimport { ROUTES } from '../../config';\r\nimport AnimatedButton from './AnimatedButton';\r\n\r\nconst PropertiesCTA = memo(() => (\r\n
\r\n
\r\n
\r\n \r\n {/* Decorative Right Image Container (Hidden on mobile, block on lg devices) */}\r\n
\r\n
\r\n\r\n {/* Content Container */}\r\n
\r\n

\r\n Ready to find your dream home?\r\n

\r\n

\r\n Join thousands of happy homeowners who found their perfect match\r\n through EstateFlow.\r\n

\r\n\r\n
\r\n \r\n \r\n Browse Properties\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n));\r\n\r\nPropertiesCTA.displayName = 'PropertiesCTA';\r\n\r\nexport default PropertiesCTA;\r\n"],"names":["HeroSection","memo","_jsxs","className","style","height","children","_jsx","src","alt","AnimatedButton","href","displayName","STORAGE_KEY","MORTGAGE_KEY","REFINANCE_KEY","ACTIVE_CALCULATOR_KEY","CALCULATOR_TYPES","saveMortgageApplicationDraft","draft","window","payload","_objectSpread","updatedAt","Date","now","key","calculatorType","localStorage","setItem","JSON","stringify","setActiveCalculator","clearMortgageApplicationDraft","removeItem","calcPMT","principal","annualRatePct","termYears","r","n","Math","pow","fmtUSD","isFinite","isNaN","toLocaleString","currency","minimumFractionDigits","maximumFractionDigits","DonutChart","_ref","items","total","reduce","s","i","value","C","PI","cumulative","arcs","map","item","len","offset","viewBox","cx","cy","fill","stroke","strokeWidth","a","color","strokeDasharray","concat","strokeDashoffset","InputField","_ref2","label","required","id","error","htmlFor","calcInputClass","ResultCard","_ref3","principalInterest","propertyTax","homeInsurance","hoa","onApply","_toConsumableArray","rows","background","replace","_ref4","onClick","e","_document$getElementB","preventDefault","document","getElementById","scrollIntoView","behavior","INITIAL_MORTGAGE","purchaseAmount","downPayment","interestRate","loanTerm","MortgageCalcSection","_useState2","useState","form","setForm","persistDraft","useCallback","field","prev","_defineProperty","target","nextForm","max","monthlyPayment","calculatorData","mortgagePurchaseAmount","mortgageDownPayment","mortgageInterestRate","mortgageLoanTerm","mortgageEstMonthly","Number","toFixed","mortgagePrincipalInterest","mortgagePropertyTax","mortgageHomeInsurance","handleFieldChange","nextValue","handleApply","pi","tax","type","min","step","onChange","placeholder","INITIAL_REFINANCE","loanAmount","homeValue","fico","RefinanceCalcSection","refinanceLoanAmount","refinanceHomeValue","refinanceInterestRate","refinanceFico","refinanceLoanTerm","refinanceEstMonthly","refinancePrincipalInterest","refinancePropertyTax","refinanceHomeInsurance","refinanceHoa","LOAN_TYPES","Icon","TrendingUp","title","description","Percent","HomeIcon","LoanTypesSection","ChevronRight","t","Symbol","iterator","o","toStringTag","c","prototype","Generator","u","Object","create","_regeneratorDefine2","f","p","y","G","v","d","bind","length","l","TypeError","call","done","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","_regenerator","w","m","defineProperty","_invoke","enumerable","configurable","writable","asyncGeneratorStep","Promise","resolve","then","ownKeys","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","push","apply","arguments","forEach","getOwnPropertyDescriptors","defineProperties","_typeof","toPrimitive","String","_toPrimitive","_toPropertyKey","_slicedToArray","_arrayWithHoles","next","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","isArray","formInputClass","INITIAL_FORM","fullName","email","phone","annualIncome","employmentStatus","desiredLoanAmount","propertyType","notes","agreeToTerms","PROPERTY_TYPE_OPTIONS","PROPERTY_TYPE_ALIASES","DETACHED","SEMI_DETACHED","TERRACE","FLAT","BUNGALOW","OFFICE_SPACE","WAREHOUSE","normalizePropertyType","ApplicationFormSection","_useState4","errors","setErrors","_useState6","submitting","setSubmitting","sanitizeDecimalInput","_text$replace$split2","split","_iterableToArray","wholePart","decimalParts","join","getCalculatorPayload","drafts","mortgage","refinance","activeCalculator","readDraft","raw","getItem","parse","_unused","getAllMortgageApplicationDrafts","activeDraft","_unused2","mortgageDraft","refinanceDraft","Boolean","latest","current","latestTime","getMortgageApplicationDraft","allDrafts","handleChange","_e$target","checked","isNumericValue","text","trim","validate","errs","handleSubmit","_callee","_draft$allDrafts$mort","_draft$allDrafts$refi","calculatorDesiredLoanAmount","_yield$httpMethods$po","_context","toast","_draft$activeDraft$ca","_draft$activeDraft$ca2","_draft$activeDraft$ca3","phoneNumber","message","selectedCalculatorType","mortgageCalculatorData","refinanceCalculatorData","httpMethods","post","API_ENDPOINTS","MORTGAGE_APPLICATIONS","CREATE","success","_next","_throw","_x","onSubmit","noValidate","autoComplete","inputMode","pattern","opt","disabled","Check","Phone","Mail","Mortgage","useSEO","keywords","PropertiesCTA","_ref$keywords","_ref$image","image","_ref$type","_ref$locale","locale","keywordsKey","useEffect","metadata","_ref$url","url","baseUrl","location","origin","fullUrl","siteName","SEO_CONFIG","DEFAULT_TITLE","canonical","openGraph","images","twitter","card","generateMetadata","metaTags","content","property","selector","element","querySelector","createElement","setAttribute","head","appendChild","canonicalLink","updateMetaTags","loading","to","ROUTES","BUY","ArrowRight"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/js/1393.6082f12c.chunk.js.map b/dist/js/1393.6082f12c.chunk.js.map deleted file mode 100644 index e9e80b6..0000000 --- a/dist/js/1393.6082f12c.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"js/1393.6082f12c.chunk.js","mappings":"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","sources":["webpack://react-webpack-tailwind-app/./src/components/mortgage/HeroSection.jsx","webpack://react-webpack-tailwind-app/./src/components/mortgage/mortgageApplicationStorage.js","webpack://react-webpack-tailwind-app/./src/components/mortgage/MortgageCalcSection.jsx","webpack://react-webpack-tailwind-app/./src/components/mortgage/RefinanceCalcSection.jsx","webpack://react-webpack-tailwind-app/./src/components/mortgage/LoanTypesSection.jsx","webpack://react-webpack-tailwind-app/./src/components/mortgage/ApplicationFormSection.jsx","webpack://react-webpack-tailwind-app/./src/pages/Mortgage.jsx","webpack://react-webpack-tailwind-app/./src/hooks/useSEO.js","webpack://react-webpack-tailwind-app/./src/utils/seo.js","webpack://react-webpack-tailwind-app/./src/components/shared/PropertiesCTA.jsx"],"sourcesContent":["import React, { memo } from 'react';\r\nimport AnimatedButton from '../shared/AnimatedButton';\r\n\r\nconst HERO_BG = '/MortgageHeroBg.webp';\r\n\r\nconst HeroSection = memo(() => (\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n

\r\n Mortgage Solutions\r\n

\r\n

\r\n Your Dream Home Starts With the Right Loan\r\n

\r\n

\r\n “Owning a home is the keystone of wealth both financial\r\n affluence and emotional security.” Suze Orman\r\n

\r\n
\r\n \r\n Calculate Now\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n));\r\n\r\nHeroSection.displayName = 'HeroSection';\r\n\r\nexport default HeroSection;\r\n","const STORAGE_KEY = 'skyridge:mortgageApplicationDraft';\r\nconst MORTGAGE_KEY = 'skyridge:mortgageApplicationDraft:mortgage';\r\nconst REFINANCE_KEY = 'skyridge:mortgageApplicationDraft:refinance';\r\nconst ACTIVE_CALCULATOR_KEY = 'skyridge:mortgageApplicationDraft:activeCalculator';\r\n\r\nexport const CALCULATOR_TYPES = {\r\n MORTGAGE: 'mortgage',\r\n REFINANCE: 'refinance',\r\n};\r\n\r\nexport function saveMortgageApplicationDraft(draft) {\r\n if (typeof window === 'undefined') return;\r\n\r\n const payload = {\r\n ...draft,\r\n updatedAt: Date.now(),\r\n };\r\n\r\n const key =\r\n draft?.calculatorType === CALCULATOR_TYPES.REFINANCE\r\n ? REFINANCE_KEY\r\n : MORTGAGE_KEY;\r\n\r\n window.localStorage.setItem(key, JSON.stringify(payload));\r\n window.localStorage.setItem(STORAGE_KEY, JSON.stringify(payload));\r\n}\r\n\r\nexport function getAllMortgageApplicationDrafts() {\r\n if (typeof window === 'undefined') return { mortgage: null, refinance: null, activeCalculator: null };\r\n\r\n const readDraft = (key) => {\r\n const raw = window.localStorage.getItem(key);\r\n if (!raw) return null;\r\n\r\n try {\r\n return JSON.parse(raw);\r\n } catch {\r\n return null;\r\n }\r\n };\r\n\r\n return {\r\n mortgage: readDraft(MORTGAGE_KEY),\r\n refinance: readDraft(REFINANCE_KEY),\r\n activeCalculator: window.localStorage.getItem(ACTIVE_CALCULATOR_KEY),\r\n };\r\n}\r\n\r\nexport function setActiveCalculator(calculatorType) {\r\n if (typeof window === 'undefined') return;\r\n window.localStorage.setItem(ACTIVE_CALCULATOR_KEY, calculatorType || '');\r\n}\r\n\r\nexport function getMortgageApplicationDraft() {\r\n if (typeof window === 'undefined') return null;\r\n\r\n const readDraft = (key) => {\r\n const raw = window.localStorage.getItem(key);\r\n if (!raw) return null;\r\n\r\n try {\r\n return JSON.parse(raw);\r\n } catch {\r\n return null;\r\n }\r\n };\r\n\r\n const activeDraft = readDraft(STORAGE_KEY);\r\n const mortgageDraft = readDraft(MORTGAGE_KEY);\r\n const refinanceDraft = readDraft(REFINANCE_KEY);\r\n const activeCalculator = window.localStorage.getItem(ACTIVE_CALCULATOR_KEY);\r\n\r\n if (activeCalculator === CALCULATOR_TYPES.MORTGAGE && mortgageDraft) {\r\n return mortgageDraft;\r\n }\r\n\r\n if (activeCalculator === CALCULATOR_TYPES.REFINANCE && refinanceDraft) {\r\n return refinanceDraft;\r\n }\r\n\r\n const drafts = [activeDraft, mortgageDraft, refinanceDraft].filter(Boolean);\r\n if (drafts.length === 0) return null;\r\n\r\n return drafts.reduce((latest, current) => {\r\n const latestTime = latest?.updatedAt || 0;\r\n const currentTime = current?.updatedAt || 0;\r\n return currentTime >= latestTime ? current : latest;\r\n });\r\n}\r\n\r\nexport function clearMortgageApplicationDraft() {\r\n if (typeof window === 'undefined') return;\r\n window.localStorage.removeItem(STORAGE_KEY);\r\n window.localStorage.removeItem(MORTGAGE_KEY);\r\n window.localStorage.removeItem(REFINANCE_KEY);\r\n window.localStorage.removeItem(ACTIVE_CALCULATOR_KEY);\r\n}\r\n","import React, { memo, useState, useCallback } from 'react';\r\nimport {\r\n CALCULATOR_TYPES,\r\n saveMortgageApplicationDraft,\r\n setActiveCalculator,\r\n} from './mortgageApplicationStorage';\r\n\r\n// ---------------------------------------------------------------------------\r\n// Math utilities (exported for reuse in RefinanceCalcSection)\r\n// ---------------------------------------------------------------------------\r\nexport function calcPMT(principal, annualRatePct, termYears) {\r\n const r = annualRatePct / 100 / 12;\r\n const n = termYears * 12;\r\n if (!principal || principal <= 0 || !n) return 0;\r\n if (r === 0) return principal / n;\r\n return (principal * r * Math.pow(1 + r, n)) / (Math.pow(1 + r, n) - 1);\r\n}\r\n\r\nexport function fmtUSD(n) {\r\n if (!isFinite(n) || isNaN(n) || n < 0) return '$0.00';\r\n return n.toLocaleString('en-US', {\r\n style: 'currency',\r\n currency: 'USD',\r\n minimumFractionDigits: 2,\r\n maximumFractionDigits: 2,\r\n });\r\n}\r\n\r\n// ---------------------------------------------------------------------------\r\n// Shared sub-components (exported for reuse in RefinanceCalcSection)\r\n// ---------------------------------------------------------------------------\r\nexport const DonutChart = memo(({ items }) => {\r\n const total = items.reduce((s, i) => s + i.value, 0);\r\n if (total <= 0) return null;\r\n const cx = 50,\r\n cy = 50,\r\n r = 35,\r\n sw = 13;\r\n const C = 2 * Math.PI * r;\r\n let cumulative = 0;\r\n const arcs = items.map((item) => {\r\n const len = (item.value / total) * C;\r\n const offset = C - cumulative;\r\n cumulative += len;\r\n return { ...item, len, offset };\r\n });\r\n return (\r\n \r\n \r\n {arcs.map((a, i) => (\r\n \r\n ))}\r\n \r\n );\r\n});\r\nDonutChart.displayName = 'DonutChart';\r\n\r\nexport const InputField = memo(({ label, required, id, children, error }) => (\r\n
\r\n \r\n {children}\r\n {error &&

{error}

}\r\n
\r\n));\r\nInputField.displayName = 'InputField';\r\n\r\nexport const calcInputClass =\r\n 'w-full border border-gray-200 rounded-[10px] px-4 py-2.5 text-base text-ink focus:outline-none focus:ring-2 focus:ring-orange-400 focus:border-transparent transition-all';\r\n\r\nexport const ResultCard = memo(\r\n ({ total, principalInterest, propertyTax, homeInsurance, hoa, onApply }) => {\r\n const items = [\r\n { value: principalInterest, color: '#1e3a8a' },\r\n { value: propertyTax, color: '#f97316' },\r\n { value: homeInsurance, color: '#10b981' },\r\n ...(hoa != null ? [{ value: hoa, color: '#8b5cf6' }] : []),\r\n ];\r\n const rows = [\r\n {\r\n label: 'Principal & Interest',\r\n value: fmtUSD(principalInterest),\r\n color: '#1e3a8a',\r\n },\r\n { label: 'Property Tax', value: fmtUSD(propertyTax), color: '#f97316' },\r\n {\r\n label: 'Home Owner Insurance',\r\n value: fmtUSD(homeInsurance),\r\n color: '#10b981',\r\n },\r\n ...(hoa != null\r\n ? [{ label: 'HOA', value: fmtUSD(hoa), color: '#8b5cf6' }]\r\n : []),\r\n ];\r\n return (\r\n \r\n

Estimated Monthly Payment

\r\n

\r\n \r\n {fmtUSD(total).replace(/\\.00$/, '')}\r\n \r\n /mo\r\n

\r\n
\r\n {rows.map(({ label, value }) => (\r\n
\r\n {label}\r\n \r\n {value}\r\n \r\n
\r\n ))}\r\n
\r\n \r\n {\r\n e.preventDefault();\r\n onApply?.();\r\n document\r\n .getElementById('apply-form')\r\n ?.scrollIntoView({ behavior: 'smooth' });\r\n }}\r\n className='block w-full bg-orange-500 hover:bg-orange-600 text-white text-base font-medium text-center py-3 rounded-lg shadow-md transition-colors duration-150 cursor-pointer'\r\n >\r\n Apply for This Loan\r\n \r\n
\r\n );\r\n },\r\n);\r\nResultCard.displayName = 'ResultCard';\r\n\r\n// ---------------------------------------------------------------------------\r\n// Static data\r\n// ---------------------------------------------------------------------------\r\nconst INITIAL_MORTGAGE = {\r\n purchaseAmount: '',\r\n downPayment: '',\r\n interestRate: '',\r\n loanTerm: '',\r\n};\r\n\r\n// ---------------------------------------------------------------------------\r\n// MortgageCalcSection\r\n// ---------------------------------------------------------------------------\r\nconst MortgageCalcSection = memo(() => {\r\n const [form, setForm] = useState(INITIAL_MORTGAGE);\r\n const set = useCallback(\r\n (field) => (e) =>\r\n setForm((prev) => ({\r\n ...prev,\r\n [field]: e.target.value,\r\n })),\r\n [],\r\n );\r\n\r\n const persistDraft = useCallback(\r\n (nextForm) => {\r\n const loanAmount = Math.max(0, nextForm.purchaseAmount - nextForm.downPayment);\r\n const principalInterest = calcPMT(loanAmount, nextForm.interestRate, nextForm.loanTerm);\r\n const propertyTax = (nextForm.purchaseAmount * 0.01) / 12;\r\n const homeInsurance = 150;\r\n const monthlyPayment = principalInterest + propertyTax + homeInsurance;\r\n\r\n saveMortgageApplicationDraft({\r\n calculatorType: CALCULATOR_TYPES.MORTGAGE,\r\n calculatorData: {\r\n mortgagePurchaseAmount: nextForm.purchaseAmount,\r\n mortgageDownPayment: nextForm.downPayment,\r\n mortgageInterestRate: nextForm.interestRate,\r\n mortgageLoanTerm: nextForm.loanTerm,\r\n mortgageEstMonthly: Number(monthlyPayment.toFixed(2)),\r\n mortgagePrincipalInterest: Number(principalInterest.toFixed(2)),\r\n mortgagePropertyTax: Number(propertyTax.toFixed(2)),\r\n mortgageHomeInsurance: homeInsurance,\r\n },\r\n });\r\n },\r\n [],\r\n );\r\n\r\n const handleFieldChange = useCallback(\r\n (field) => (e) => {\r\n const nextValue = e.target.value;\r\n setForm((prev) => {\r\n const nextForm = { ...prev, [field]: nextValue };\r\n persistDraft(nextForm);\r\n return nextForm;\r\n });\r\n },\r\n [persistDraft],\r\n );\r\n\r\n const handleApply = useCallback(() => {\r\n persistDraft(form);\r\n setActiveCalculator(CALCULATOR_TYPES.MORTGAGE);\r\n }, [form, persistDraft]);\r\n\r\n const purchaseAmount = Number(form.purchaseAmount) || 0;\r\n const downPayment = Number(form.downPayment) || 0;\r\n const interestRate = Number(form.interestRate) || 0;\r\n const loanTerm = Number(form.loanTerm) || 0;\r\n const loanAmount = Math.max(0, purchaseAmount - downPayment);\r\n const pi = calcPMT(loanAmount, interestRate, loanTerm);\r\n const tax = (purchaseAmount * 0.01) / 12;\r\n const insurance = 150;\r\n const total = pi + tax + insurance;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

\r\n Mortgage Calculator\r\n

\r\n

\r\n Estimate your monthly payment in seconds\r\n

\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n});\r\n\r\nMortgageCalcSection.displayName = 'MortgageCalcSection';\r\n\r\nexport default MortgageCalcSection;\r\n","import React, { memo, useState, useCallback } from 'react';\r\nimport {\r\n calcPMT,\r\n fmtUSD,\r\n InputField,\r\n ResultCard,\r\n calcInputClass,\r\n} from './MortgageCalcSection';\r\nimport {\r\n CALCULATOR_TYPES,\r\n saveMortgageApplicationDraft,\r\n setActiveCalculator,\r\n} from './mortgageApplicationStorage';\r\n\r\nconst INITIAL_REFINANCE = {\r\n loanAmount: '',\r\n homeValue: '',\r\n fico: '',\r\n interestRate: '',\r\n loanTerm: '',\r\n};\r\n\r\nconst RefinanceCalcSection = memo(() => {\r\n const [form, setForm] = useState(INITIAL_REFINANCE);\r\n\r\n const persistDraft = useCallback(\r\n (nextForm) => {\r\n const principalInterest = calcPMT(nextForm.loanAmount, nextForm.interestRate, nextForm.loanTerm);\r\n const propertyTax = (nextForm.homeValue * 0.01) / 12;\r\n const homeInsurance = 150;\r\n const hoa = 0;\r\n const monthlyPayment = principalInterest + propertyTax + homeInsurance + hoa;\r\n\r\n saveMortgageApplicationDraft({\r\n calculatorType: CALCULATOR_TYPES.REFINANCE,\r\n calculatorData: {\r\n refinanceLoanAmount: nextForm.loanAmount,\r\n refinanceHomeValue: nextForm.homeValue,\r\n refinanceInterestRate: nextForm.interestRate,\r\n refinanceFico: nextForm.fico,\r\n refinanceLoanTerm: nextForm.loanTerm,\r\n refinanceEstMonthly: Number(monthlyPayment.toFixed(2)),\r\n refinancePrincipalInterest: Number(principalInterest.toFixed(2)),\r\n refinancePropertyTax: Number(propertyTax.toFixed(2)),\r\n refinanceHomeInsurance: homeInsurance,\r\n refinanceHoa: hoa,\r\n },\r\n });\r\n },\r\n [],\r\n );\r\n\r\n const handleFieldChange = useCallback(\r\n (field) => (e) => {\r\n const nextValue = e.target.value;\r\n setForm((prev) => {\r\n const nextForm = { ...prev, [field]: nextValue };\r\n persistDraft(nextForm);\r\n return nextForm;\r\n });\r\n },\r\n [persistDraft],\r\n );\r\n\r\n const handleApply = useCallback(() => {\r\n persistDraft(form);\r\n setActiveCalculator(CALCULATOR_TYPES.REFINANCE);\r\n }, [form, persistDraft]);\r\n\r\n const loanAmount = Number(form.loanAmount) || 0;\r\n const homeValue = Number(form.homeValue) || 0;\r\n const interestRate = Number(form.interestRate) || 0;\r\n const loanTerm = Number(form.loanTerm) || 0;\r\n const pi = calcPMT(loanAmount, interestRate, loanTerm);\r\n const tax = (homeValue * 0.01) / 12;\r\n const insurance = 150;\r\n const hoa = 0;\r\n const total = pi + tax + insurance + hoa;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

\r\n Refinance Calculator\r\n

\r\n

\r\n Estimate your monthly payment in seconds\r\n

\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n});\r\n\r\nRefinanceCalcSection.displayName = 'RefinanceCalcSection';\r\n\r\nexport default RefinanceCalcSection;\r\n","import React, { memo } from 'react';\r\nimport {\r\n TrendingUp,\r\n Percent,\r\n Home as HomeIcon,\r\n ChevronRight,\r\n} from 'lucide-react';\r\n\r\nconst LOAN_TYPES = [\r\n {\r\n Icon: TrendingUp,\r\n title: 'Fixed Rate Mortgage',\r\n description:\r\n 'Predictable monthly payments with the same interest rate for the entire loan term perfect for long term stability.',\r\n },\r\n {\r\n Icon: Percent,\r\n title: 'Adjustable Rate Mortgage',\r\n description:\r\n 'Lower initial rates that adjust over time ideal if you plan to move or refinance within a few years.',\r\n },\r\n {\r\n Icon: HomeIcon,\r\n title: 'First-Time Buyer',\r\n description:\r\n 'Special programs with low down payments and flexible credit requirements designed for new homeowners.',\r\n },\r\n];\r\n\r\nconst LoanTypesSection = memo(() => (\r\n
\r\n
\r\n
\r\n

\r\n Choose Your Loan Type\r\n

\r\n

\r\n Find the mortgage that fits your life\r\n

\r\n
\r\n\r\n
\r\n {LOAN_TYPES.map(({ Icon, title, description }) => (\r\n \r\n
\r\n
\r\n
\r\n

{title}

\r\n

\r\n {description}\r\n

\r\n
\r\n \r\n Learn More\r\n
\r\n ))}\r\n
\r\n \r\n
\r\n));\r\n\r\nLoanTypesSection.displayName = 'LoanTypesSection';\r\n\r\nexport default LoanTypesSection;\r\n","import React, { memo, useState, useCallback } from 'react';\r\nimport { Phone, Mail, Check } from 'lucide-react';\r\nimport toast from 'react-hot-toast';\r\nimport { httpMethods } from '../../services/httpMethods';\r\nimport API_ENDPOINTS from '../../services/httpEndpoint';\r\nimport AnimatedButton from '../shared/AnimatedButton';\r\nimport { InputField } from './MortgageCalcSection';\r\nimport {\r\n getMortgageApplicationDraft,\r\n getAllMortgageApplicationDrafts,\r\n clearMortgageApplicationDraft,\r\n CALCULATOR_TYPES,\r\n} from './mortgageApplicationStorage';\r\n\r\nconst formInputClass =\r\n 'w-full border border-gray-200 rounded-[10px] px-4 py-3 text-base text-ink placeholder:text-[rgba(10,10,10,0.45)] focus:outline-none focus:ring-2 focus:ring-orange-400 focus:border-transparent transition-all';\r\n\r\nconst INITIAL_FORM = {\r\n fullName: '',\r\n email: '',\r\n phone: '',\r\n annualIncome: '',\r\n employmentStatus: '',\r\n desiredLoanAmount: '',\r\n propertyType: '',\r\n notes: '',\r\n agreeToTerms: false,\r\n};\r\n\r\nconst PROPERTY_TYPE_OPTIONS = [\r\n { value: 'SINGLE_FAMILY_HOME', label: 'Single Family Home' },\r\n { value: 'TOWNHOMES', label: 'Townhomes' },\r\n { value: 'LAND', label: 'Land' },\r\n { value: 'COMMERCIAL', label: 'Commercial' },\r\n];\r\n\r\nconst PROPERTY_TYPE_ALIASES = {\r\n DETACHED: 'SINGLE_FAMILY_HOME',\r\n SEMI_DETACHED: 'SINGLE_FAMILY_HOME',\r\n TERRACE: 'TOWNHOMES',\r\n FLAT: 'TOWNHOMES',\r\n BUNGALOW: 'SINGLE_FAMILY_HOME',\r\n OFFICE_SPACE: 'COMMERCIAL',\r\n WAREHOUSE: 'COMMERCIAL',\r\n};\r\n\r\nfunction normalizePropertyType(value) {\r\n if (!value) return '';\r\n return PROPERTY_TYPE_ALIASES[value] || value;\r\n}\r\n\r\nconst ApplicationFormSection = memo(() => {\r\n const [form, setForm] = useState(INITIAL_FORM);\r\n const [errors, setErrors] = useState({});\r\n const [submitting, setSubmitting] = useState(false);\r\n\r\n const getCalculatorPayload = useCallback(() => {\r\n const drafts = getAllMortgageApplicationDrafts();\r\n const activeDraft = getMortgageApplicationDraft();\r\n if (!activeDraft?.calculatorType || !activeDraft?.calculatorData) return null;\r\n\r\n return {\r\n activeDraft,\r\n allDrafts: drafts,\r\n };\r\n }, []);\r\n\r\n const handleChange = useCallback((e) => {\r\n const { name, value, type, checked } = e.target;\r\n setForm((prev) => ({\r\n ...prev,\r\n [name]: type === 'checkbox' ? checked : value,\r\n }));\r\n setErrors((prev) => ({ ...prev, [name]: '' }));\r\n }, []);\r\n\r\n const isNumericValue = useCallback((value) => {\r\n const text = String(value).trim();\r\n if (!text) return false;\r\n return /^\\d+(\\.\\d+)?$/.test(text.replace(/,/g, ''));\r\n }, []);\r\n\r\n const validate = useCallback(() => {\r\n const errs = {};\r\n if (!form.fullName.trim()) errs.fullName = 'Full name is required.';\r\n if (!form.email.trim()) {\r\n errs.email = 'Email address is required.';\r\n } else if (!/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(form.email)) {\r\n errs.email = 'Please enter a valid email address.';\r\n }\r\n if (!form.phone.trim()) errs.phone = 'Phone number is required.';\r\n if (form.desiredLoanAmount.trim() && !isNumericValue(form.desiredLoanAmount)) {\r\n errs.desiredLoanAmount = 'Please enter a number in Desired Loan Amount.';\r\n }\r\n if (!form.agreeToTerms)\r\n errs.agreeToTerms = 'You must agree to the terms and privacy policy.';\r\n return errs;\r\n }, [form, isNumericValue]);\r\n\r\n const handleSubmit = useCallback(\r\n async (e) => {\r\n e.preventDefault();\r\n const errs = validate();\r\n if (Object.keys(errs).length) {\r\n setErrors(errs);\r\n return;\r\n }\r\n\r\n const draft = getCalculatorPayload();\r\n if (!draft) {\r\n toast.error('Please use either the Mortgage Calculator or Refinance Calculator before submitting your application.');\r\n return;\r\n }\r\n\r\n setSubmitting(true);\r\n try {\r\n const calculatorDesiredLoanAmount = (() => {\r\n if (draft.activeDraft.calculatorType === CALCULATOR_TYPES.MORTGAGE) {\r\n const purchaseAmount = draft.activeDraft.calculatorData?.mortgagePurchaseAmount;\r\n const downPayment = draft.activeDraft.calculatorData?.mortgageDownPayment;\r\n if (purchaseAmount != null && downPayment != null) {\r\n return Number(purchaseAmount) - Number(downPayment);\r\n }\r\n return null;\r\n }\r\n\r\n if (draft.activeDraft.calculatorType === CALCULATOR_TYPES.REFINANCE) {\r\n const refinanceLoanAmount = draft.activeDraft.calculatorData?.refinanceLoanAmount;\r\n return refinanceLoanAmount != null ? Number(refinanceLoanAmount) : null;\r\n }\r\n\r\n return null;\r\n })();\r\n\r\n const payload = {\r\n fullName: form.fullName,\r\n email: form.email,\r\n phoneNumber: form.phone,\r\n employmentStatus: form.employmentStatus,\r\n annualIncome: form.annualIncome ? Number(form.annualIncome) : null,\r\n desiredLoanAmount: form.desiredLoanAmount\r\n ? Number(form.desiredLoanAmount)\r\n : calculatorDesiredLoanAmount,\r\n propertyType: normalizePropertyType(form.propertyType),\r\n message: form.notes,\r\n ...draft.activeDraft.calculatorData,\r\n selectedCalculatorType: draft.activeDraft.calculatorType,\r\n mortgageCalculatorData: draft.allDrafts.mortgage?.calculatorData || null,\r\n refinanceCalculatorData: draft.allDrafts.refinance?.calculatorData || null,\r\n };\r\n\r\n const { error } = await httpMethods.post(\r\n API_ENDPOINTS.MORTGAGE_APPLICATIONS.CREATE,\r\n payload,\r\n );\r\n\r\n if (error) throw error;\r\n\r\n toast.success(\r\n 'Application submitted! Our team will contact you shortly.',\r\n );\r\n setForm(INITIAL_FORM);\r\n setErrors({});\r\n clearMortgageApplicationDraft();\r\n } catch {\r\n toast.error('Failed to submit. Please try again.');\r\n } finally {\r\n setSubmitting(false);\r\n }\r\n },\r\n [validate, form, getCalculatorPayload],\r\n );\r\n\r\n return (\r\n \r\n
\r\n
\r\n

\r\n Apply for a Mortgage\r\n

\r\n

\r\n Fill out the form below and our team will respond within 24 hours\r\n

\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n {PROPERTY_TYPE_OPTIONS.map((opt) => (\r\n \r\n ))}\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n
\r\n \r\n {errors.agreeToTerms && (\r\n

\r\n {errors.agreeToTerms}\r\n

\r\n )}\r\n
\r\n\r\n \r\n {submitting ? 'Submitting...' : 'Submit Application'}\r\n \r\n \r\n\r\n \r\n
\r\n
\r\n \r\n );\r\n});\r\n\r\nApplicationFormSection.displayName = 'ApplicationFormSection';\r\n\r\nexport default ApplicationFormSection;\r\n","import React, { memo } from \"react\";\r\nimport { useSEO } from \"../hooks/useSEO\";\r\nimport PropertiesCTA from \"../components/shared/PropertiesCTA\";\r\nimport HeroSection from \"../components/mortgage/HeroSection\";\r\nimport MortgageCalcSection from \"../components/mortgage/MortgageCalcSection\";\r\nimport RefinanceCalcSection from \"../components/mortgage/RefinanceCalcSection\";\r\nimport LoanTypesSection from \"../components/mortgage/LoanTypesSection\";\r\nimport ApplicationFormSection from \"../components/mortgage/ApplicationFormSection\";\r\n\r\nconst Mortgage = memo(() => {\r\n useSEO({\r\n title: \"Mortgage Solutions | Skyridge Group\",\r\n description:\r\n \"Calculate your mortgage payment instantly. Explore fixed-rate, adjustable-rate, and first-time buyer loans. Get pre-approved with Skyridge Group today.\",\r\n keywords: [\r\n \"mortgage calculator\",\r\n \"refinance calculator\",\r\n \"home loan\",\r\n \"mortgage rate\",\r\n \"first-time buyer\",\r\n \"skyridge group\",\r\n ],\r\n });\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n});\r\n\r\nMortgage.displayName = \"Mortgage\";\r\n\r\nexport default Mortgage;\r\n","import { useEffect } from 'react';\r\nimport { generateMetadata, updateMetaTags } from '../utils/seo';\r\n\r\nexport const useSEO = ({\r\n title,\r\n description,\r\n keywords = [],\r\n image = '',\r\n type = 'website',\r\n locale = 'en',\r\n}) => {\r\n const keywordsKey = keywords.join(',');\r\n\r\n useEffect(() => {\r\n const metadata = generateMetadata({\r\n title,\r\n description,\r\n keywords,\r\n image,\r\n type,\r\n locale,\r\n });\r\n\r\n updateMetaTags(metadata);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [title, description, keywordsKey, image, type, locale]);\r\n};\r\n","import { SEO_CONFIG } from '../config';\r\n\r\nexport const generateMetadata = ({\r\n title,\r\n description,\r\n keywords = [],\r\n url = '',\r\n image = '',\r\n type = 'website',\r\n locale = 'en',\r\n}) => {\r\n const baseUrl = typeof window !== 'undefined' ? window.location.origin : '';\r\n const fullUrl =\r\n url || (typeof window !== 'undefined' ? window.location.href : baseUrl);\r\n const siteName = SEO_CONFIG.DEFAULT_TITLE;\r\n\r\n return {\r\n title: title ? `${title} | ${siteName}` : siteName,\r\n description,\r\n keywords: keywords.join(', '),\r\n canonical: fullUrl,\r\n openGraph: { \r\n title,\r\n description,\r\n url: fullUrl,\r\n siteName,\r\n images: image ? [{ url: image }] : [],\r\n locale,\r\n type,\r\n },\r\n twitter: {\r\n card: 'summary_large_image',\r\n title,\r\n description,\r\n images: image ? [image] : [],\r\n },\r\n };\r\n};\r\n\r\nexport const generateStructuredData = (type, data) => {\r\n const baseData = {\r\n '@context': 'https://schema.org',\r\n '@type': type,\r\n };\r\n\r\n return JSON.stringify({ ...baseData, ...data });\r\n};\r\n\r\nexport const updateMetaTags = (metadata) => {\r\n if (typeof document === 'undefined') return;\r\n\r\n document.title = metadata.title;\r\n\r\n const metaTags = [\r\n { name: 'description', content: metadata.description },\r\n { name: 'keywords', content: metadata.keywords },\r\n { property: 'og:title', content: metadata.openGraph.title },\r\n { property: 'og:description', content: metadata.openGraph.description },\r\n { property: 'og:url', content: metadata.openGraph.url },\r\n { property: 'og:site_name', content: metadata.openGraph.siteName },\r\n { property: 'og:locale', content: metadata.openGraph.locale },\r\n { property: 'og:type', content: metadata.openGraph.type },\r\n { name: 'twitter:card', content: metadata.twitter.card },\r\n { name: 'twitter:title', content: metadata.twitter.title },\r\n { name: 'twitter:description', content: metadata.twitter.description },\r\n ];\r\n\r\n if (metadata.openGraph.images.length > 0) {\r\n metaTags.push({\r\n property: 'og:image',\r\n content: metadata.openGraph.images[0].url,\r\n });\r\n }\r\n\r\n if (metadata.twitter.images.length > 0) {\r\n metaTags.push({\r\n name: 'twitter:image',\r\n content: metadata.twitter.images[0],\r\n });\r\n }\r\n\r\n metaTags.forEach(({ name, property, content }) => {\r\n if (!content) return;\r\n\r\n const selector = name\r\n ? `meta[name=\"${name}\"]`\r\n : `meta[property=\"${property}\"]`;\r\n let element = document.querySelector(selector);\r\n\r\n if (!element) {\r\n element = document.createElement('meta');\r\n if (name) element.setAttribute('name', name);\r\n if (property) element.setAttribute('property', property);\r\n document.head.appendChild(element);\r\n }\r\n\r\n element.setAttribute('content', content);\r\n });\r\n\r\n const canonicalLink =\r\n document.querySelector('link[rel=\"canonical\"]') ||\r\n document.createElement('link');\r\n canonicalLink.setAttribute('rel', 'canonical');\r\n canonicalLink.setAttribute('href', metadata.canonical);\r\n if (!document.querySelector('link[rel=\"canonical\"]')) {\r\n document.head.appendChild(canonicalLink);\r\n }\r\n};\r\n\r\nexport const createBreadcrumbStructuredData = (breadcrumbs) => {\r\n const itemListElement = breadcrumbs.map((crumb, index) => ({\r\n '@type': 'ListItem',\r\n position: index + 1,\r\n name: crumb.name,\r\n item: crumb.url,\r\n }));\r\n\r\n return generateStructuredData('BreadcrumbList', { itemListElement });\r\n};\r\n","import React, { memo } from 'react';\r\nimport { ArrowRight } from 'lucide-react';\r\nimport { ROUTES } from '../../config';\r\nimport AnimatedButton from './AnimatedButton';\r\n\r\nconst PropertiesCTA = memo(() => (\r\n
\r\n
\r\n
\r\n \r\n {/* Decorative Right Image Container (Hidden on mobile, block on lg devices) */}\r\n
\r\n
\r\n\r\n {/* Content Container */}\r\n
\r\n

\r\n Ready to find your dream home?\r\n

\r\n

\r\n Join thousands of happy homeowners who found their perfect match\r\n through EstateFlow.\r\n

\r\n\r\n
\r\n \r\n \r\n Browse Properties\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n));\r\n\r\nPropertiesCTA.displayName = 'PropertiesCTA';\r\n\r\nexport default PropertiesCTA;\r\n"],"names":["HeroSection","memo","_jsxs","className","style","height","children","_jsx","src","alt","AnimatedButton","href","displayName","STORAGE_KEY","MORTGAGE_KEY","REFINANCE_KEY","ACTIVE_CALCULATOR_KEY","CALCULATOR_TYPES","saveMortgageApplicationDraft","draft","window","payload","_objectSpread","updatedAt","Date","now","key","calculatorType","localStorage","setItem","JSON","stringify","setActiveCalculator","clearMortgageApplicationDraft","removeItem","calcPMT","principal","annualRatePct","termYears","r","n","Math","pow","fmtUSD","isFinite","isNaN","toLocaleString","currency","minimumFractionDigits","maximumFractionDigits","DonutChart","_ref","items","total","reduce","s","i","value","C","PI","cumulative","arcs","map","item","len","offset","viewBox","cx","cy","fill","stroke","strokeWidth","a","color","strokeDasharray","concat","strokeDashoffset","InputField","_ref2","label","required","id","error","htmlFor","calcInputClass","ResultCard","_ref3","principalInterest","propertyTax","homeInsurance","hoa","onApply","_toConsumableArray","rows","background","replace","_ref4","onClick","e","_document$getElementB","preventDefault","document","getElementById","scrollIntoView","behavior","INITIAL_MORTGAGE","purchaseAmount","downPayment","interestRate","loanTerm","MortgageCalcSection","_useState2","useState","form","setForm","persistDraft","useCallback","field","prev","_defineProperty","target","nextForm","max","monthlyPayment","calculatorData","mortgagePurchaseAmount","mortgageDownPayment","mortgageInterestRate","mortgageLoanTerm","mortgageEstMonthly","Number","toFixed","mortgagePrincipalInterest","mortgagePropertyTax","mortgageHomeInsurance","handleFieldChange","nextValue","handleApply","pi","tax","type","min","step","onChange","placeholder","INITIAL_REFINANCE","loanAmount","homeValue","fico","RefinanceCalcSection","refinanceLoanAmount","refinanceHomeValue","refinanceInterestRate","refinanceFico","refinanceLoanTerm","refinanceEstMonthly","refinancePrincipalInterest","refinancePropertyTax","refinanceHomeInsurance","refinanceHoa","LOAN_TYPES","Icon","TrendingUp","title","description","Percent","HomeIcon","LoanTypesSection","ChevronRight","t","Symbol","iterator","o","toStringTag","c","prototype","Generator","u","Object","create","_regeneratorDefine2","f","p","y","G","v","d","bind","length","l","TypeError","call","done","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","_regenerator","w","m","defineProperty","_invoke","enumerable","configurable","writable","asyncGeneratorStep","Promise","resolve","then","ownKeys","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","push","apply","arguments","forEach","getOwnPropertyDescriptors","defineProperties","_typeof","toPrimitive","String","_toPrimitive","_toPropertyKey","_slicedToArray","Array","isArray","_arrayWithHoles","next","_iterableToArrayLimit","_arrayLikeToArray","toString","slice","constructor","name","from","test","_unsupportedIterableToArray","_nonIterableRest","formInputClass","INITIAL_FORM","fullName","email","phone","annualIncome","employmentStatus","desiredLoanAmount","propertyType","notes","agreeToTerms","PROPERTY_TYPE_OPTIONS","PROPERTY_TYPE_ALIASES","DETACHED","SEMI_DETACHED","TERRACE","FLAT","BUNGALOW","OFFICE_SPACE","WAREHOUSE","normalizePropertyType","ApplicationFormSection","_useState4","errors","setErrors","_useState6","submitting","setSubmitting","getCalculatorPayload","drafts","mortgage","refinance","activeCalculator","readDraft","raw","getItem","parse","_unused","getAllMortgageApplicationDrafts","activeDraft","_unused2","mortgageDraft","refinanceDraft","Boolean","latest","current","latestTime","getMortgageApplicationDraft","allDrafts","handleChange","_e$target","checked","isNumericValue","text","trim","validate","errs","handleSubmit","_callee","_draft$allDrafts$mort","_draft$allDrafts$refi","calculatorDesiredLoanAmount","_yield$httpMethods$po","_context","toast","_draft$activeDraft$ca","_draft$activeDraft$ca2","_draft$activeDraft$ca3","phoneNumber","message","selectedCalculatorType","mortgageCalculatorData","refinanceCalculatorData","httpMethods","post","API_ENDPOINTS","MORTGAGE_APPLICATIONS","CREATE","success","_next","_throw","_x","onSubmit","noValidate","autoComplete","inputMode","opt","disabled","Check","Phone","Mail","Mortgage","useSEO","keywords","PropertiesCTA","_ref$keywords","_ref$image","image","_ref$type","_ref$locale","locale","keywordsKey","join","useEffect","metadata","_ref$url","url","baseUrl","location","origin","fullUrl","siteName","SEO_CONFIG","DEFAULT_TITLE","canonical","openGraph","images","twitter","card","generateMetadata","metaTags","content","property","selector","element","querySelector","createElement","setAttribute","head","appendChild","canonicalLink","updateMetaTags","loading","to","ROUTES","BUY","ArrowRight"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/js/6284.275f700f.chunk.js b/dist/js/6284.275f700f.chunk.js deleted file mode 100644 index 585744e..0000000 --- a/dist/js/6284.275f700f.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see 6284.275f700f.chunk.js.LICENSE.txt */ -"use strict";(self.webpackChunkreact_webpack_tailwind_app=self.webpackChunkreact_webpack_tailwind_app||[]).push([[6284],{2723(e,t,r){r.d(t,{A:()=>l});var n=r(6540),a=r(250),i=r(7677),o=r(4848),s=(0,n.memo)(function(e){var t=e.currentPage,r=e.totalPages,n=e.onPageChange,s=[1,2,3].filter(function(e){return e<=r});return(0,o.jsxs)("nav",{"aria-label":"Pagination",className:"flex gap-2 items-center justify-center flex-wrap",children:[(0,o.jsx)("button",{type:"button",onClick:function(){return n(Math.max(1,t-1))},"aria-label":"Previous page",disabled:1===t,className:"bg-white border border-slate-200 rounded-lg flex items-center justify-center size-10 hover:bg-gray-50 transition-colors disabled:opacity-40 disabled:cursor-not-allowed cursor-pointer",children:(0,o.jsx)(a.A,{size:14,className:"text-slate-600","aria-hidden":"true"})}),s.map(function(e){return(0,o.jsx)("button",{type:"button",onClick:function(){return n(e)},"aria-label":"Page ".concat(e),"aria-current":e===t?"page":void 0,className:e===t?"bg-orange-500 rounded-lg flex items-center justify-center size-10 text-white font-bold text-base font-inter cursor-pointer":"bg-white border border-slate-200 rounded-lg flex items-center justify-center size-10 text-slate-900 text-base font-inter hover:bg-gray-50 transition-colors cursor-pointer",children:e},e)}),r>4&&(0,o.jsx)("span",{className:"px-2 text-slate-900 text-base font-inter","aria-hidden":"true",children:"..."}),r>3&&(0,o.jsx)("button",{type:"button",onClick:function(){return n(r)},"aria-label":"Page ".concat(r),"aria-current":t===r?"page":void 0,className:t===r?"bg-orange-500 rounded-lg flex items-center justify-center size-10 text-white font-bold text-base font-inter cursor-pointer":"bg-white border border-slate-200 rounded-lg flex items-center justify-center size-10 text-slate-900 text-base font-inter hover:bg-gray-50 transition-colors cursor-pointer",children:r}),(0,o.jsx)("button",{type:"button",onClick:function(){return n(Math.min(r,t+1))},"aria-label":"Next page",disabled:t===r,className:"bg-white border border-slate-200 rounded-lg flex items-center justify-center size-10 hover:bg-gray-50 transition-colors disabled:opacity-40 disabled:cursor-not-allowed cursor-pointer",children:(0,o.jsx)(i.A,{size:14,className:"text-slate-600","aria-hidden":"true"})})]})});s.displayName="Pagination";const l=s},5493(e,t,r){r.d(t,{P:()=>i});var n=r(6540),a=r(9521),i=function(e){var t=e.title,r=e.description,i=e.keywords,o=void 0===i?[]:i,s=e.image,l=void 0===s?"":s,c=e.type,d=void 0===c?"website":c,u=e.locale,m=void 0===u?"en":u,p=o.join(",");(0,n.useEffect)(function(){var e=function(e){var t=e.title,r=e.description,n=e.keywords,i=void 0===n?[]:n,o=e.url,s=void 0===o?"":o,l=e.image,c=void 0===l?"":l,d=e.type,u=void 0===d?"website":d,m=e.locale,p=void 0===m?"en":m,x="undefined"!=typeof window?window.location.origin:"",f=s||("undefined"!=typeof window?window.location.href:x),h=a.l8.DEFAULT_TITLE;return{title:t?"".concat(t," | ").concat(h):h,description:r,keywords:i.join(", "),canonical:f,openGraph:{title:t,description:r,url:f,siteName:h,images:c?[{url:c}]:[],locale:p,type:u},twitter:{card:"summary_large_image",title:t,description:r,images:c?[c]:[]}}}({title:t,description:r,keywords:o,image:l,type:d,locale:m});!function(e){if("undefined"!=typeof document){document.title=e.title;var t=[{name:"description",content:e.description},{name:"keywords",content:e.keywords},{property:"og:title",content:e.openGraph.title},{property:"og:description",content:e.openGraph.description},{property:"og:url",content:e.openGraph.url},{property:"og:site_name",content:e.openGraph.siteName},{property:"og:locale",content:e.openGraph.locale},{property:"og:type",content:e.openGraph.type},{name:"twitter:card",content:e.twitter.card},{name:"twitter:title",content:e.twitter.title},{name:"twitter:description",content:e.twitter.description}];e.openGraph.images.length>0&&t.push({property:"og:image",content:e.openGraph.images[0].url}),e.twitter.images.length>0&&t.push({name:"twitter:image",content:e.twitter.images[0]}),t.forEach(function(e){var t=e.name,r=e.property,n=e.content;if(n){var a=t?'meta[name="'.concat(t,'"]'):'meta[property="'.concat(r,'"]'),i=document.querySelector(a);i||(i=document.createElement("meta"),t&&i.setAttribute("name",t),r&&i.setAttribute("property",r),document.head.appendChild(i)),i.setAttribute("content",n)}});var r=document.querySelector('link[rel="canonical"]')||document.createElement("link");r.setAttribute("rel","canonical"),r.setAttribute("href",e.canonical),document.querySelector('link[rel="canonical"]')||document.head.appendChild(r)}}(e)},[t,r,p,l,d,m])}},6284(e,t,r){r.r(t),r.d(t,{default:()=>$});var n=r(6540),a=r(5493),i=r(9740),o=r(6344),s=r(4848),l=(0,n.memo)(function(){return(0,s.jsxs)("section",{className:"relative w-full overflow-hidden","aria-label":"New Construction hero",style:{minHeight:"380px",height:"35vw",maxHeight:"520px"},children:[(0,s.jsx)("img",{src:"/BuildAndRenovate/heroBgNewConstruction.webp",alt:"","aria-hidden":"true",className:"absolute inset-0 size-full object-cover pointer-events-none"}),(0,s.jsx)("div",{className:"absolute inset-0 bg-black/50 pointer-events-none","aria-hidden":"true"}),(0,s.jsx)("div",{className:"relative z-10 h-full flex items-center pt-20",children:(0,s.jsxs)("div",{className:"max-w-384 mx-auto px-4 sm:px-8 lg:px-12 w-full flex flex-col items-center text-center gap-6",children:[(0,s.jsx)("h1",{className:"text-white font-bold text-[30px] sm:text-[42px] lg:text-[56px] leading-tight max-w-4xl",children:"Discover Future Living Spaces"}),(0,s.jsx)("p",{className:"text-white font-medium text-lg leading-relaxed max-w-xl",children:"Explore upcoming and under-construction projects"}),(0,s.jsx)(o.A,{href:"#projects",className:"inline-flex items-center justify-center bg-cta-orange hover:bg-orange-600 text-white font-semibold text-sm px-6 py-2.5 rounded-lg transition-colors duration-150",children:"Explore Projects"})]})})]})});l.displayName="HeroSection";const c=l;var d=r(6069),u=r(2538),m=r(6148),p=r(3324),x=r(888),f=r(2723),h=r(961),g=r(8697);const b=function(e){var t=e.isOpen,r=e.onClose,a=e.title,i=e.children,o=e.footer,l=e.size,c=void 0===l?"md":l,d=e.closeOnOverlayClick,u=void 0===d||d,m=e.showCloseButton,p=void 0===m||m,x=e.className,f=void 0===x?"":x;if((0,n.useEffect)(function(){if(t){var e=document.body.style.overflow;return document.body.style.overflow="hidden",function(){document.body.style.overflow=e}}},[t]),!t)return null;var b=(0,s.jsx)(n.Fragment,{children:(0,s.jsx)("div",{className:"fixed inset-0 bg-black/50 backdrop-blur-sm z-50 animate-[fadeIn_0.2s_ease-out]",onClick:function(e){u&&e.target===e.currentTarget&&r()},children:(0,s.jsx)("div",{className:"flex items-center justify-center min-h-screen p-4",children:(0,s.jsxs)("div",{className:"bg-white rounded-xl shadow-2xl w-full ".concat({sm:"max-w-md",md:"w-3/4 max-w-3xl",lg:"w-3/4 max-w-4xl",xl:"w-3/4 max-w-6xl",full:"max-w-full mx-4"}[c]," animate-[slideUp_0.3s_ease-out] ").concat(f),role:"dialog","aria-modal":"true","aria-labelledby":a?"modal-title":void 0,children:[(a||p)&&(0,s.jsxs)("div",{className:"flex items-center justify-between p-6 border-b border-gray-200",children:[a&&(0,s.jsx)("h2",{id:"modal-title",className:"text-xl font-semibold text-gray-900",children:a}),p&&(0,s.jsx)("button",{type:"button",onClick:r,className:"ml-auto text-gray-400 hover:text-gray-600 transition-colors p-1 rounded-lg hover:bg-gray-100 cursor-pointer","aria-label":"Close modal",children:(0,s.jsx)(g.A,{size:22})})]}),(0,s.jsx)("div",{className:"p-6 max-h-[calc(100vh-200px)] overflow-y-auto",children:i}),o&&(0,s.jsx)("div",{className:"flex items-center justify-end gap-3 p-6 border-t border-gray-200 bg-gray-50 rounded-b-xl",children:o})]})})})});return(0,h.createPortal)(b,document.body)};var y=r(9857),v=r(4586);function j(e){return j="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},j(e)}function w(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",a=r.toStringTag||"@@toStringTag";function i(r,n,a,i){var l=n&&n.prototype instanceof s?n:s,c=Object.create(l.prototype);return N(c,"_invoke",function(r,n,a){var i,s,l,c=0,d=a||[],u=!1,m={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,r){return i=t,s=0,l=e,m.n=r,o}};function p(r,n){for(s=r,l=n,t=0;!u&&c&&!a&&t3?(a=x===n)&&(l=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=p&&((a=r<2&&pn||n>x)&&(i[4]=r,i[5]=n,m.n=x,s=0))}if(a||r>1)return o;throw u=!0,n}return function(a,d,x){if(c>1)throw TypeError("Generator is already running");for(u&&1===d&&p(d,x),s=d,l=x;(t=s<2?e:l)||!u;){i||(s?s<3?(s>1&&(m.n=-1),p(s,l)):m.n=l:m.v=l);try{if(c=2,i){if(s||(a="next"),t=i[a]){if(!(t=t.call(i,l)))throw TypeError("iterator result is not an object");if(!t.done)return t;l=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(l=TypeError("The iterator does not provide a '"+a+"' method"),s=1);i=e}else if((t=(u=m.n<0)?l:r.call(n,m))!==o)break}catch(t){i=e,s=1,l=t}finally{c=1}}return{value:t,done:u}}}(r,a,i),!0),c}var o={};function s(){}function l(){}function c(){}t=Object.getPrototypeOf;var d=[][n]?t(t([][n]())):(N(t={},n,function(){return this}),t),u=c.prototype=s.prototype=Object.create(d);function m(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,c):(e.__proto__=c,N(e,a,"GeneratorFunction")),e.prototype=Object.create(u),e}return l.prototype=c,N(u,"constructor",c),N(c,"constructor",l),l.displayName="GeneratorFunction",N(c,a,"GeneratorFunction"),N(u),N(u,a,"Generator"),N(u,n,function(){return this}),N(u,"toString",function(){return"[object Generator]"}),(w=function(){return{w:i,m}})()}function N(e,t,r,n){var a=Object.defineProperty;try{a({},"",{})}catch(e){a=0}N=function(e,t,r,n){function i(t,r){N(e,t,function(e){return this._invoke(t,r,e)})}t?a?a(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))},N(e,t,r,n)}function k(e,t,r,n,a,i,o){try{var s=e[i](o),l=s.value}catch(e){return void r(e)}s.done?t(l):Promise.resolve(l).then(n,a)}function C(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var i=e.apply(t,r);function o(e){k(i,n,a,o,s,"next",e)}function s(e){k(i,n,a,o,s,"throw",e)}o(void 0)})}}function P(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function S(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r0?"border-l border-gray-200":""," ").concat(i===e.id?"bg-indigo-dark text-white":"bg-white text-gray-600 hover:bg-gray-50"),children:e.label},e.id)})}),"overview"===i&&(0,s.jsxs)("div",{className:"flex flex-col gap-5",children:[(0,s.jsx)("div",{className:"h-52 rounded-lg overflow-hidden shrink-0",children:(0,s.jsx)("img",{src:t.img,alt:t.name,className:"size-full object-cover"})}),(0,s.jsxs)("div",{className:"flex justify-between gap-4",children:[(0,s.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,s.jsx)("span",{className:"text-xs text-gray-400 font-medium uppercase tracking-wide",children:"Developer"}),(0,s.jsx)("span",{className:"text-sm font-semibold text-ink",children:t.developer})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-0.5 text-right",children:[(0,s.jsx)("span",{className:"text-xs text-gray-400 font-medium uppercase tracking-wide",children:"Location"}),(0,s.jsx)("span",{className:"text-sm font-semibold text-ink",children:t.location})]})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,s.jsx)("h3",{className:"font-semibold text-base text-ink",children:"Description"}),(0,s.jsx)("p",{className:"text-sm text-muted-slate leading-relaxed",children:t.description})]}),(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,s.jsxs)("div",{className:"bg-gray-50 border border-gray-100 rounded-lg p-4 flex flex-col gap-1",children:[(0,s.jsx)("span",{className:"text-xs text-gray-500 font-medium",children:"Expected ROI"}),(0,s.jsx)("span",{className:"text-2xl font-bold text-green-600 leading-tight",children:t.roi})]}),(0,s.jsxs)("div",{className:"bg-gray-50 border border-gray-100 rounded-lg p-4 flex flex-col gap-1",children:[(0,s.jsx)("span",{className:"text-xs text-gray-500 font-medium",children:"Area Growth"}),(0,s.jsx)("span",{className:"text-2xl font-bold text-blue-600 leading-tight",children:t.areaGrowth})]})]})]}),"payment"===i&&(0,s.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,s.jsx)("h3",{className:"text-base font-semibold text-ink",children:"Payment Plan Breakdown"}),(0,s.jsx)("div",{className:"rounded-lg border border-gray-200 overflow-hidden",children:(t.paymentPlan||z).map(function(e,r){var n=r===(t.paymentPlan||z).length-1;return(0,s.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 ".concat(r>0?"border-t border-gray-100":""," ").concat(n?"bg-gray-50":"bg-white"),children:[(0,s.jsx)("span",{className:"text-sm ".concat(n?"font-bold text-ink":"font-medium text-ink"),children:e.milestone}),(0,s.jsx)("span",{className:"text-sm ".concat(n?"font-bold text-ink":"text-gray-600"),children:e.timing})]},e.milestone)})}),(0,s.jsx)("div",{className:"bg-green-50 border border-green-200 rounded-lg p-4",children:(0,s.jsxs)("p",{className:"text-sm text-green-800 leading-relaxed",children:[(0,s.jsx)("span",{className:"font-semibold",children:"Flexible Financing:"})," We offer various payment plans and can connect you with preferred lenders for mortgage pre-approval."]})})]}),"book"===i&&(0,s.jsxs)("form",{onSubmit:g,className:"flex flex-col gap-4",noValidate:!0,children:[(0,s.jsxs)("p",{className:"text-sm text-muted-slate leading-relaxed",children:["Reserve your unit at ",(0,s.jsx)("strong",{children:t.name}),". Our team will reach out within 24 hours."]}),(0,s.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,s.jsxs)("label",{htmlFor:"book-name",className:"text-sm font-medium text-ink",children:["Full Name"," ",(0,s.jsx)("span",{className:"text-red-500","aria-hidden":"true",children:"*"})]}),(0,s.jsx)("input",{id:"book-name",name:"name",type:"text",value:d.name,onChange:h,placeholder:"Enter your full name",className:T,autoComplete:"name",required:!0})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,s.jsxs)("label",{htmlFor:"book-email",className:"text-sm font-medium text-ink",children:["Email Address"," ",(0,s.jsx)("span",{className:"text-red-500","aria-hidden":"true",children:"*"})]}),(0,s.jsx)("input",{id:"book-email",name:"email",type:"email",value:d.email,onChange:h,placeholder:"Enter your email address",className:T,autoComplete:"email",required:!0})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,s.jsxs)("label",{htmlFor:"book-phone",className:"text-sm font-medium text-ink",children:["Phone Number"," ",(0,s.jsx)("span",{className:"text-red-500","aria-hidden":"true",children:"*"})]}),(0,s.jsx)("input",{id:"book-phone",name:"phone",type:"tel",value:d.phone,onChange:h,placeholder:"Enter your phone number",className:T,autoComplete:"tel",required:!0})]}),(0,s.jsx)(o.A,{type:"submit",disabled:p,className:"inline-flex items-center justify-center w-full bg-cta-orange hover:bg-orange-600 disabled:opacity-60 disabled:cursor-not-allowed cursor-pointer text-white font-semibold text-sm px-6 py-3 rounded-lg transition-colors duration-150",children:p?"Submitting...":"Submit Booking Request"})]})]})});B.displayName="ProjectModal";var q=(0,n.memo)(function(e){var t=e.project,r=e.onViewProject,n=t.name,a=t.developer,i=t.location,l=t.beds,c=t.bathrooms,x=t.area,f=t.price,h=t.img;return(0,s.jsxs)("article",{className:"bg-white rounded-xl border border-gray-200 shadow-sm overflow-hidden flex flex-col",children:[(0,s.jsx)("div",{className:"relative h-56 shrink-0",children:(0,s.jsx)("img",{src:h,alt:n,className:"absolute inset-0 size-full object-cover",loading:"lazy"})}),(0,s.jsxs)("div",{className:"flex flex-col p-5 flex-1",children:[(0,s.jsx)("h2",{className:"font-bold text-ink text-lg leading-6 mb-1",children:n}),(0,s.jsx)("p",{className:"text-muted-slate text-sm leading-5 mb-2",children:a}),(0,s.jsxs)("div",{className:"flex items-center gap-1.5 mb-5",children:[(0,s.jsx)(d.A,{size:14,className:"text-muted-slate shrink-0","aria-hidden":"true"}),(0,s.jsx)("span",{className:"text-muted-slate text-sm leading-5",children:i})]}),(0,s.jsx)("div",{className:"border-t border-gray-100 mb-4"}),(0,s.jsxs)("div",{className:"flex items-center gap-5 mb-5",children:[(0,s.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,s.jsx)(u.A,{size:15,className:"text-indigo-dark shrink-0","aria-hidden":"true"}),(0,s.jsxs)("span",{className:"text-sm text-muted-slate",children:[l," Beds"]})]}),(0,s.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,s.jsx)(m.A,{size:15,className:"text-indigo-dark shrink-0","aria-hidden":"true"}),(0,s.jsxs)("span",{className:"text-sm text-muted-slate",children:[c," Bathrooms"]})]}),(0,s.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,s.jsx)(p.A,{size:14,className:"text-indigo-dark shrink-0","aria-hidden":"true"}),(0,s.jsx)("span",{className:"text-sm text-muted-slate",children:I(x)})]})]}),(0,s.jsxs)("div",{className:"flex items-center justify-between mt-auto pt-4 border-t border-gray-100",children:[(0,s.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,s.jsx)("span",{className:"text-muted-slate text-xs",children:"Starting From"}),(0,s.jsx)("span",{className:"font-bold text-xl text-deep-navy leading-7",children:f})]}),(0,s.jsx)(o.A,{onClick:function(){return r(t)},className:"inline-flex items-center justify-center bg-cta-orange hover:bg-orange-600 text-white font-semibold text-sm px-5 py-2 rounded-lg transition-colors duration-150 shrink-0 cursor-pointer",children:"View Project"})]})]})]})});q.displayName="ProjectCard";var D=(0,n.memo)(function(){var e,t=O((0,n.useState)(1),2),r=t[0],a=t[1],i=O((0,n.useState)([]),2),o=i[0],l=i[1],c=O((0,n.useState)(1),2),d=c[0],u=c[1],m=O((0,n.useState)(!0),2),p=m[0],h=m[1],g=O((0,n.useState)(null),2),j=g[0],N=g[1],k=O((0,n.useState)(!1),2),P=k[0],S=k[1],A=(0,n.useCallback)(C(w().m(function e(){var t,n,a,i,o,s,c,d,m,p;return w().w(function(e){for(;;)switch(e.n){case 0:return h(!0),e.n=1,y.R.get(v.S.CONSTRUCTIONS.LIST,{params:{page:r,limit:10}});case 1:if(o=e.v,s=o.data,!(c=o.error)){e.n=2;break}return x.Ay.error((null==c||null===(d=c.data)||void 0===d?void 0:d.message)||(null==c?void 0:c.message)||"Failed to load projects."),l([]),u(1),h(!1),e.a(2);case 2:m=null!==(t=null!==(n=null==s?void 0:s.data)&&void 0!==n?n:s)&&void 0!==t?t:{},p=Array.isArray(null==m?void 0:m.constructions)?m.constructions:[],l(p.map(_)),u(null!==(a=null==m||null===(i=m.pagination)||void 0===i?void 0:i.totalPages)&&void 0!==a?a:1),h(!1);case 3:return e.a(2)}},e)})),[r]);(0,n.useEffect)(function(){A()},[A]);var E=(0,n.useCallback)(function(e){var t;a(e),null===(t=document.getElementById("projects"))||void 0===t||t.scrollIntoView({behavior:"smooth",block:"start"})},[]),z=(0,n.useCallback)(function(e){N(e),S(!0)},[]),G=(0,n.useCallback)(function(){S(!1)},[]);return(0,s.jsxs)("section",{id:"projects",className:"bg-white py-16 lg:py-20","aria-labelledby":"projects-heading",children:[(0,s.jsxs)("div",{className:"max-w-384 mx-auto px-4 sm:px-8 lg:px-12 flex flex-col gap-10",children:[(0,s.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-6",children:p?(0,s.jsx)("p",{className:"sm:col-span-2 text-center text-gray-400 py-12 text-sm",children:"Loading projects..."}):0===o.length?(0,s.jsx)("p",{className:"sm:col-span-2 text-center text-gray-400 py-12 text-sm",children:"No projects found."}):o.map(function(e){return(0,s.jsx)(q,{project:e,onViewProject:z},e.id)})}),(0,s.jsx)("div",{className:"flex justify-center",children:(0,s.jsx)(f.A,{currentPage:r,totalPages:d,onPageChange:E})})]}),(0,s.jsx)(b,{isOpen:P,onClose:G,title:null!==(e=null==j?void 0:j.name)&&void 0!==e?e:"",size:"sm",children:j&&(0,s.jsx)(B,{project:j,onClose:G})})]})});D.displayName="ProjectsSection";const L=D;var R=r(6316),H=r(1805),U=[{id:"roi",Icon:R.A,title:"High ROI Potential",desc:"Pre-construction purchases typically offer 15-25% returns upon project completion."},{id:"location",Icon:d.A,title:"Prime Locations",desc:"Projects strategically placed in rapidly developing areas with strong growth potential."},{id:"amenities",Icon:H.A,title:"Modern Amenities",desc:"Latest designs, smart home features, and premium finishes throughout every unit."}],M=(0,n.memo)(function(){return(0,s.jsx)("section",{className:"bg-site-bg py-16 lg:py-20","aria-labelledby":"why-invest-heading",children:(0,s.jsxs)("div",{className:"max-w-384 mx-auto px-4 sm:px-8 lg:px-12 flex flex-col gap-12",children:[(0,s.jsx)("h2",{id:"why-invest-heading",className:"text-center font-bold text-ink text-3xl leading-tight",children:"Why Invest in New Construction?"}),(0,s.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-6",children:U.map(function(e){var t=e.id,r=e.Icon,n=e.title,a=e.desc;return(0,s.jsxs)("div",{className:"bg-white rounded-xl border border-gray-100 shadow-sm p-8 flex flex-col items-center gap-4 text-center",children:[(0,s.jsx)("div",{className:"w-12 h-12 rounded-full bg-indigo-tint flex items-center justify-center shrink-0","aria-hidden":"true",children:(0,s.jsx)(r,{size:24,className:"text-indigo-dark"})}),(0,s.jsx)("h3",{className:"font-semibold text-ink text-lg leading-snug",children:n}),(0,s.jsx)("p",{className:"text-muted-slate text-base leading-relaxed",children:a})]},t)})})]})})});M.displayName="WhyInvestSection";const V=M;var W=(0,n.memo)(function(){return(0,a.P)({title:"New Construction | Skyridge Group",description:"Explore upcoming and under-construction residential projects by Skyridge Group. Find your future home today.",keywords:["new construction","residential build","under construction","upcoming projects","skyridge group"]}),(0,s.jsxs)("div",{className:"min-h-screen bg-white",children:[(0,s.jsx)(c,{}),(0,s.jsx)(L,{}),(0,s.jsx)(V,{}),(0,s.jsx)("div",{className:"py-20",children:(0,s.jsx)(i.A,{})})]})});W.displayName="NewConstruction";const $=W},9740(e,t,r){r.d(t,{A:()=>c});var n=r(6540),a=r(8635),i=r(9521),o=r(6344),s=r(4848),l=(0,n.memo)(function(){return(0,s.jsx)("section",{className:"",children:(0,s.jsx)("div",{className:"mx-auto max-w-384 px-4 sm:px-8 lg:px-12",children:(0,s.jsxs)("div",{className:"relative flex min-h-75 flex-col justify-center overflow-hidden rounded-2xl bg-navy p-8 sm:p-10 lg:p-16",children:[(0,s.jsx)("div",{className:"absolute bottom-0 right-0 top-0 hidden w-[45%] lg:block",children:(0,s.jsx)("img",{src:"/cta.webp",alt:"Decorative pattern",className:"h-full w-full object-cover object-left","aria-hidden":"true",loading:"lazy"})}),(0,s.jsxs)("div",{className:"relative z-10 max-w-full space-y-5 sm:max-w-md lg:max-w-137.5 lg:space-y-6",children:[(0,s.jsx)("h2",{className:"font-playfair text-4xl leading-tight text-white lg:text-[56px]",children:"Ready to find your dream home?"}),(0,s.jsx)("p",{className:"text-base leading-6 text-text-light",children:"Join thousands of happy homeowners who found their perfect match through EstateFlow."}),(0,s.jsx)("div",{className:"pt-2",children:(0,s.jsxs)(o.A,{to:i.bw.BUY,className:"inline-flex items-center gap-3 rounded-full bg-white px-5 py-2.5 text-black transition-colors hover:bg-slate-100",children:[(0,s.jsx)("span",{className:"text-sm font-semibold sm:text-base",children:"Browse Properties"}),(0,s.jsx)("span",{className:"flex h-8 w-8 items-center justify-center rounded-full bg-purple",children:(0,s.jsx)(a.A,{className:"h-5 w-5 text-white","aria-hidden":"true"})})]})})]})]})})})});l.displayName="PropertiesCTA";const c=l}}]); \ No newline at end of file diff --git a/dist/js/6284.275f700f.chunk.js.map b/dist/js/6284.275f700f.chunk.js.map deleted file mode 100644 index 162a246..0000000 --- a/dist/js/6284.275f700f.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"js/6284.275f700f.chunk.js","mappings":"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","sources":["webpack://react-webpack-tailwind-app/./src/components/shared/Pagination.jsx","webpack://react-webpack-tailwind-app/./src/hooks/useSEO.js","webpack://react-webpack-tailwind-app/./src/utils/seo.js","webpack://react-webpack-tailwind-app/./src/components/new-construction/HeroSection.jsx","webpack://react-webpack-tailwind-app/./src/components/shared/Modal.jsx","webpack://react-webpack-tailwind-app/./src/components/new-construction/ProjectsSection.jsx","webpack://react-webpack-tailwind-app/./src/components/new-construction/WhyInvestSection.jsx","webpack://react-webpack-tailwind-app/./src/pages/NewConstruction.jsx","webpack://react-webpack-tailwind-app/./src/components/shared/PropertiesCTA.jsx"],"sourcesContent":["import React, { memo } from 'react';\r\nimport { ChevronLeft, ChevronRight } from 'lucide-react';\r\n\r\nconst Pagination = memo(({ currentPage, totalPages, onPageChange }) => {\r\n const visiblePages = [1, 2, 3].filter((p) => p <= totalPages);\r\n\r\n return (\r\n \r\n onPageChange(Math.max(1, currentPage - 1))}\r\n aria-label='Previous page'\r\n disabled={currentPage === 1}\r\n className='bg-white border border-slate-200 rounded-lg flex items-center justify-center size-10 hover:bg-gray-50 transition-colors disabled:opacity-40 disabled:cursor-not-allowed cursor-pointer'\r\n >\r\n