1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[26],{789:(e,t)=>{"use strict";var r="function"==typeof Symbol&&Symbol.for,n=r?Symbol.for("react.element"):60103,o=r?Symbol.for("react.portal"):60106,a=r?Symbol.for("react.fragment"):60107,i=r?Symbol.for("react.strict_mode"):60108,s=r?Symbol.for("react.profiler"):60114,c=r?Symbol.for("react.provider"):60109,p=r?Symbol.for("react.context"):60110,l=r?Symbol.for("react.async_mode"):60111,d=r?Symbol.for("react.concurrent_mode"):60111,u=r?Symbol.for("react.forward_ref"):60112,h=r?Symbol.for("react.suspense"):60113,f=r?Symbol.for("react.suspense_list"):60120,m=r?Symbol.for("react.memo"):60115,y=r?Symbol.for("react.lazy"):60116,g=r?Symbol.for("react.block"):60121,b=r?Symbol.for("react.fundamental"):60117,v=r?Symbol.for("react.responder"):60118,w=r?Symbol.for("react.scope"):60119;function x(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case n:switch(e=e.type){case l:case d:case a:case s:case i:case h:return e;default:switch(e=e&&e.$$typeof){case p:case u:case y:case m:case c:return e;default:return t}}case o:return t}}}function S(e){return x(e)===d}t.AsyncMode=l,t.ConcurrentMode=d,t.ContextConsumer=p,t.ContextProvider=c,t.Element=n,t.ForwardRef=u,t.Fragment=a,t.Lazy=y,t.Memo=m,t.Portal=o,t.Profiler=s,t.StrictMode=i,t.Suspense=h,t.isAsyncMode=function(e){return S(e)||x(e)===l},t.isConcurrentMode=S,t.isContextConsumer=function(e){return x(e)===p},t.isContextProvider=function(e){return x(e)===c},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===n},t.isForwardRef=function(e){return x(e)===u},t.isFragment=function(e){return x(e)===a},t.isLazy=function(e){return x(e)===y},t.isMemo=function(e){return x(e)===m},t.isPortal=function(e){return x(e)===o},t.isProfiler=function(e){return x(e)===s},t.isStrictMode=function(e){return x(e)===i},t.isSuspense=function(e){return x(e)===h},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===d||e===s||e===i||e===h||e===f||"object"==typeof e&&null!==e&&(e.$$typeof===y||e.$$typeof===m||e.$$typeof===c||e.$$typeof===p||e.$$typeof===u||e.$$typeof===b||e.$$typeof===v||e.$$typeof===w||e.$$typeof===g)},t.typeOf=x},3520:(e,t,r)=>{"use strict";var n=r(7225),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function c(e){return n.isMemo(e)?i:s[e.$$typeof]||o}s[n.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[n.Memo]=i;var p=Object.defineProperty,l=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,u=Object.getOwnPropertyDescriptor,h=Object.getPrototypeOf,f=Object.prototype;e.exports=function e(t,r,n){if("string"!=typeof r){if(f){var o=h(r);o&&o!==f&&e(t,o,n)}var i=l(r);d&&(i=i.concat(d(r)));for(var s=c(t),m=c(r),y=0;y<i.length;++y){var g=i[y];if(!a[g]&&!(n&&n[g])&&!(m&&m[g])&&!(s&&s[g])){var b=u(r,g);try{p(t,g,b)}catch(e){}}}}return t}},3717:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},5062:(e,t,r)=>{e.exports=r(9706)()},7104:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(7161).A)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]])},7161:(e,t,r)=>{"use strict";r.d(t,{A:()=>c});var n=r(4232);let o=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)},a=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim();var i={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let s=(0,n.forwardRef)(({color:e="currentColor",size:t=24,strokeWidth:r=2,absoluteStrokeWidth:o,className:s="",children:c,iconNode:p,...l},d)=>(0,n.createElement)("svg",{ref:d,...i,width:t,height:t,stroke:e,strokeWidth:o?24*Number(r)/Number(t):r,className:a("lucide",s),...!c&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0})(l)&&{"aria-hidden":"true"},...l},[...p.map(([e,t])=>
1(0,n.createElement)(e,t)),...Array.isArray(c)?c:[c]])),c=(e,t)=>{let r=(0,n.forwardRef)(({className:r,...i},c)=>(0,n.createElement)(s,{ref:c,iconNode:t,className:a(`lucide-${o(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,r),...i}));return r.displayName=o(e),r}},7225:(e,t,r)=>{"use strict";e.exports=r(789)},7328:(e,t,r)=>{e.exports=r(8022)},8270:(e,t,r)=>{"use strict";r.d(t,{$:()=>S});var n,o,a=r(7876),i=r(4232);(()=>{if("u">typeof localStorage)return})(),r(5364);var s=r(5062),c=r.n(s),p=["sitekey","onChange","theme","type","tabindex","onExpired","onErrored","size","stoken","grecaptcha","badge","hl","isolated"];function l(){return(l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function d(e){if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function u(e,t){return(u=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}var h=function(e){function t(){var t;return(t=e.call(this)||this).handleExpired=t.handleExpired.bind(d(t)),t.handleErrored=t.handleErrored.bind(d(t)),t.handleChange=t.handleChange.bind(d(t)),t.handleRecaptchaRef=t.handleRecaptchaRef.bind(d(t)),t}t.prototype=Object.create(e.prototype),t.prototype.constructor=t,u(t,e);var r=t.prototype;return r.getCaptchaFunction=function(e){return this.props.grecaptcha?this.props.grecaptcha.enterprise?this.props.grecaptcha.enterprise[e]:this.props.grecaptcha[e]:null},r.getValue=function(){var e=this.getCaptchaFunction("getResponse");return e&&void 0!==this._widgetId?e(this._widgetId):null},r.getWidgetId=function(){return this.props.grecaptcha&&void 0!==this._widgetId?this._widgetId:null},r.execute=function(){var e=this.getCaptchaFunction("execute");if(e&&void 0!==this._widgetId)return e(this._widgetId);this._executeRequested=!0},r.executeAsync=function(){var e=this;return new Promise(function(t,r){e.executionResolve=t,e.executionReject=r,e.execute()})},r.reset=function(){var e=this.getCaptchaFunction("reset");e&&void 0!==this._widgetId&&e(this._widgetId)},r.forceReset=function(){var e=this.getCaptchaFunction("reset");e&&e()},r.handleExpired=function(){this.props.onExpired?this.props.onExpired():this.handleChange(null)},r.handleErrored=function(){this.props.onErrored&&this.props.onErrored(),this.executionReject&&(this.executionReject(),delete this.executionResolve,delete this.executionReject)},r.handleChange=function(e){this.props.onChange&&this.props.onChange(e),this.executionResolve&&(this.executionResolve(e),delete this.executionReject,delete this.executionResolve)},r.explicitRender=function(){var e=this.getCaptchaFunction("render");if(e&&void 0===this._widgetId){var t=document.createElement("div");this._widgetId=e(t,{sitekey:this.props.sitekey,callback:this.handleChange,theme:this.props.theme,type:this.props.type,tabindex:this.props.tabindex,"expired-callback":this.handleExpired,"error-callback":this.handleErrored,size:this.props.size,stoken:this.props.stoken,hl:this.props.hl,badge:this.props.badge,isolated:this.props.isolated}),this.captcha.appendChild(t)}this._executeRequested&&this.props.grecaptcha&&void 0!==this._widgetId&&(this._executeRequested=!1,this.execute())},r.componentDidMount=function(){this.explicitRender()},r.componentDidUpdate=function(){this.explicitRender()},r.handleRecaptchaRef=function(e){this.captcha=e},r.render=function(){var e=this.props,t=(e.sitekey,e.onChange,e.theme,e.type,e.tabindex,e.onExpired,e.onErrored,e.size,e.stoken,e.grecaptcha,e.badge,e.hl,e.isolated,function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,p));return i.createElement("div",l({},t,{ref:this.handleRecaptchaRef}))},t}(i.Component);h.displayName="ReCAPTCHA",h.propTypes={sitekey:c().string.isRequired,onChange:c().func,grecaptcha:c().object,theme:c().oneOf(["dark","light"]),type:c().oneOf(["image","audio"]),tabindex:c().number,onExpired:c().func,onErrored:c().func,size:c().oneOf(["compact","normal","invisible"]),stoken:c().string,hl:c().string,badge:c().oneOf(["bottomright","bottomleft","inline"]),isolated:c().bool}
1,h.defaultProps={onChange:function(){},theme:"light",type:"image",tabindex:0,size:"normal",badge:"bottomright"};var f=r(3520),m=r.n(f);function y(){return(y=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}var g={},b=0,v="onloadcallback";function w(){return"u">typeof window&&window.recaptchaOptions||{}}let x=(n=function(){var e=w(),t=e.useRecaptchaNet?"recaptcha.net":"www.google.com";return e.enterprise?"https://"+t+"/recaptcha/enterprise.js?onload="+v+"&render=explicit":"https://"+t+"/recaptcha/api.js?onload="+v+"&render=explicit"},o=o={callbackName:v,globalName:"grecaptcha",attributes:w().nonce?{nonce:w().nonce}:{}},function(e){var t=e.displayName||e.name||"Component",r=function(t){function r(e,r){var n;return(n=t.call(this,e,r)||this).state={},n.__scriptURL="",n}r.prototype=Object.create(t.prototype),r.prototype.constructor=r,r.__proto__=t;var a=r.prototype;return a.asyncScriptLoaderGetScriptLoaderID=function(){return this.__scriptLoaderID||(this.__scriptLoaderID="async-script-loader-"+b++),this.__scriptLoaderID},a.setupScriptURL=function(){return this.__scriptURL="function"==typeof n?n():n,this.__scriptURL},a.asyncScriptLoaderHandleLoad=function(e){var t=this;this.setState(e,function(){return t.props.asyncScriptOnLoad&&t.props.asyncScriptOnLoad(t.state)})},a.asyncScriptLoaderTriggerOnScriptLoaded=function(){var e=g[this.__scriptURL];if(!e||!e.loaded)throw Error("Script is not loaded.");for(var t in e.observers)e.observers[t](e);delete window[o.callbackName]},a.componentDidMount=function(){var e=this,t=this.setupScriptURL(),r=this.asyncScriptLoaderGetScriptLoaderID(),n=o,a=n.globalName,i=n.callbackName,s=n.scriptId;if(a&&void 0!==window[a]&&(g[t]={loaded:!0,observers:{}}),g[t]){var c=g[t];return c&&(c.loaded||c.errored)?void this.asyncScriptLoaderHandleLoad(c):void(c.observers[r]=function(t){return e.asyncScriptLoaderHandleLoad(t)})}var p={};p[r]=function(t){return e.asyncScriptLoaderHandleLoad(t)},g[t]={loaded:!1,observers:p};var l=document.createElement("script");for(var d in l.src=t,l.async=!0,o.attributes)l.setAttribute(d,o.attributes[d]);s&&(l.id=s);var u=function(e){if(g[t]){var r=g[t].observers;for(var n in r)e(r[n])&&delete r[n]}};i&&"u">typeof window&&(window[i]=function(){return e.asyncScriptLoaderTriggerOnScriptLoaded()}),l.onload=function(){var e=g[t];e&&(e.loaded=!0,u(function(t){return!i&&(t(e),!0)}))},l.onerror=function(){var e=g[t];e&&(e.errored=!0,u(function(t){return t(e),!0}))},document.body.appendChild(l)},a.componentWillUnmount=function(){var e=this.__scriptURL;if(!0===o.removeOnUnmount)for(var t=document.getElementsByTagName("script"),r=0;r<t.length;r+=1)t[r].src.indexOf(e)>-1&&t[r].parentNode&&t[r].parentNode.removeChild(t[r]);var n=g[e];n&&(delete n.observers[this.asyncScriptLoaderGetScriptLoaderID()],!0===o.removeOnUnmount&&delete g[e])},a.render=function(){var t=o.globalName,r=this.props,n=(r.asyncScriptOnLoad,r.forwardedRef),a=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)t.indexOf(r=a[n])>=0||(o[r]=e[r]);return o}(r,["asyncScriptOnLoad","forwardedRef"]);return t&&"u">typeof window&&(a[t]=void 0!==window[t]?window[t]:void 0),a.ref=n,(0,i.createElement)(e,a)},r}(i.Component),a=(0,i.forwardRef)(function(e,t){return(0,i.createElement)(r,y({},e,{forwardedRef:t}))});return a.displayName="AsyncScriptLoader("+t+")",a.propTypes={asyncScriptOnLoad:c().func},m()(a,e)})(h);function S({showToast:e=!1,submitText:t="Submit",toastMessage:r="Thanks for reaching out!",useCaptcha:n=!1,captchaSiteKey:o,toEmail:s,apiPath:c="/api/contact",smtpHost:p,smtpPort:l,smtpUser:d,smtpPass:u,smtpSecure:h}){let[f,m]=(0,i.useState)({name:"",email:"",phone:"",message:"",website:""}),[y,g]=(0,i.useState)(!1),[b,v]=(0,i.useState)({show:!1}),[w,_]=(0,i.useState)(0),[C,O]=(0,i.useState)(null),[j,R]=(0,i.useState)(null),E=(0,i.useRef)(null),[k,L]=(0,i.useState)(null);(0,i.useEffect)(()=>{_(Date.now())},[]),(0,i.useEffect)(()=>{n&&!o&&console.warn("Captcha usage requires a site key. Provide NEXT_PUBLIC_RECAPTCHA_SITE_KEY via props.")},[n,o]);let N=e=>{let{name:t,value:r}=e.target;m(e=>Object.assign(Object.assign({},e),{[t]:r}))};return(0,a.jsxs)("form",{className:"cs-form",onSubmit:e=>{if(e.preventDefault(),y)return;if(Date.now()-w<5e3)return void console.warn("Spam blocked: submitted too fast.");if(f.website)return void console.warn("Spam blocked: honeypot filled.");
1if(n&&!C)return void R("Please complete the captcha before submitting.");let t=f.message.length>2e3?f.message.slice(0,2e3)+"\n\n[Message truncated]":f.message,r=Object.assign(Object.assign({},f),{message:t+` 2 3From: ${f.email}`,toEmail:s,smtpHost:p,smtpPort:l,smtpUser:d,smtpPass:u,smtpSecure:h,captchaToken:n?C:void 0});!o&&n&&console.warn("Captcha is enabled but no site key provided."),g(!0),v({show:!1}),L(null),fetch(c,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)}).then(async e=>{if(e.ok)return;let t="Failed to send message.";try{let r=await e.json();r&&"string"==typeof r.error&&(t=r.error)}catch(e){}throw Error(t)}).then(()=>{var e;v({show:!0}),m({name:"",email:"",phone:"",message:"",website:""}),_(Date.now()),n&&(null==(e=E.current)||e.reset(),O(null),R(null)),setTimeout(()=>v({show:!1}),5e3)}).catch(e=>{console.error("ContactFormV2 submission error:",e),L(e instanceof Error&&e.message?e.message:"Something went wrong. Please try again."),v({show:!0}),setTimeout(()=>v({show:!1}),5e3)}).finally(()=>g(!1))},children:[(0,a.jsxs)("label",{className:"cs-label",children:["Name",(0,a.jsx)("input",{className:"cs-input cs-name",type:"text",name:"name",placeholder:"Name",value:f.name,onChange:N,required:!0})]}),(0,a.jsxs)("label",{className:"cs-label cs-email",children:["Email",(0,a.jsx)("input",{className:"cs-input",type:"email",name:"email",placeholder:"Email",value:f.email,onChange:N,required:!0})]}),(0,a.jsxs)("label",{className:"cs-label cs-phone",children:["Phone",(0,a.jsx)("input",{className:"cs-input",type:"tel",name:"phone",placeholder:"Phone",value:f.phone,onChange:N,required:!0})]}),(0,a.jsxs)("label",{className:"cs-label",children:["Message",(0,a.jsx)("textarea",{className:"cs-input cs-textarea",name:"message",placeholder:"Write message...",value:f.message,onChange:N,required:!0,maxLength:2e3})]}),(0,a.jsx)("input",{type:"text",name:"website",tabIndex:-1,autoComplete:"off",value:f.website,onChange:N,style:{display:"none"}}),n&&o&&(0,a.jsxs)("div",{className:"cs-captcha",children:[(0,a.jsx)(x,{sitekey:o,onChange:e=>{O(e),R(e?null:"Please complete the captcha.")},ref:e=>{E.current=e}}),j&&(0,a.jsx)("p",{className:"cs-captcha-error",children:j})]}),k&&(0,a.jsx)("p",{className:"cs-error",children:k}),(0,a.jsx)("button",{className:"cs-button-solid cs-submit",type:"submit",disabled:y||n&&(!C||!o),children:y?"Submitting...":t}),(b.show||e)&&(0,a.jsx)("div",{className:"toast",children:r})]})}},9158:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(7161).A)("phone",[["path",{d:"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z",key:"foiqr5"}]])},9370:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(7161).A)("map-pin",[["path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",key:"1r0f0z"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}]])},9706:(e,t,r)=>{"use strict";var n=r(3717);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,r,o,a,i){if(i!==n){var s=Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var r={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return r.PropTypes=r,r}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.