1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[977],{1776:(e,r,t)=>{"use strict";t.d(r,{A:()=>s});let s=(0,t(94500).A)("CircleAlert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]])},16698:(e,r,t)=>{"use strict";t.d(r,{s:()=>l,t:()=>a});var s=t(88677);function n(e,r){if("function"==typeof e)return e(r);null!=e&&(e.current=r)}function a(...e){return r=>{let t=!1,s=e.map(e=>{let s=n(e,r);return t||"function"!=typeof s||(t=!0),s});if(t)return()=>{for(let r=0;r<s.length;r++){let t=s[r];"function"==typeof t?t():n(e[r],null)}}}}function l(...e){return s.useCallback(a(...e),e)}},22815:(e,r,t)=>{"use strict";t.d(r,{DX:()=>u,TL:()=>c});var s,n=t(88677),a=t(16698),l=t(82785),i=Symbol.for("react.lazy"),o=(s||(s=t.t(n,2)))[" use ".trim().toString()];function d(e){var r;return null!=e&&"object"==typeof e&&"$$typeof"in e&&e.$$typeof===i&&"_payload"in e&&"object"==typeof(r=e._payload)&&null!==r&&"then"in r}function c(e){var r;let t,s=(r=e,(t=n.forwardRef((e,r)=>{let{children:t,...s}=e;if(d(t)&&"function"==typeof o&&(t=o(t._payload)),n.isValidElement(t)){var l;let e,i,o=(l=t,(i=(e=Object.getOwnPropertyDescriptor(l.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?l.ref:(i=(e=Object.getOwnPropertyDescriptor(l,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?l.props.ref:l.props.ref||l.ref),d=function(e,r){let t={...r};for(let s in r){let n=e[s],a=r[s];/^on[A-Z]/.test(s)?n&&a?t[s]=(...e)=>{let r=a(...e);return n(...e),r}:n&&(t[s]=n):"style"===s?t[s]={...n,...a}:"className"===s&&(t[s]=[n,a].filter(Boolean).join(" "))}return{...e,...t}}(s,t.props);return t.type!==n.Fragment&&(d.ref=r?(0,a.t)(r,o):o),n.cloneElement(t,d)}return n.Children.count(t)>1?n.Children.only(null):null})).displayName=`${r}.SlotClone`,t),i=n.forwardRef((e,r)=>{let{children:t,...a}=e;d(t)&&"function"==typeof o&&(t=o(t._payload));let i=n.Children.toArray(t),c=i.find(p);if(c){let e=c.props.children,t=i.map(r=>r!==c?r:n.Children.count(e)>1?n.Children.only(null):n.isValidElement(e)?e.props.children:null);return(0,l.jsx)(s,{...a,ref:r,children:n.isValidElement(e)?n.cloneElement(e,void 0,t):null})}return(0,l.jsx)(s,{...a,ref:r,children:t})});return i.displayName=`${e}.Slot`,i}var u=c("Slot"),f=Symbol("radix.slottable");function p(e){return n.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===f}},24627:(e,r,t)=>{"use strict";t.d(r,{cn:()=>a});var s=t(42305),n=t(16357);function a(...e){return(0,n.QP)((0,s.$)(e))}},35737:(e,r,t)=>{"use strict";t.d(r,{A:()=>s});let s=(0,t(94500).A)("Send",[["path",{d:"m22 2-7 20-4-9-9-4Z",key:"1q3vgg"}],["path",{d:"M22 2 11 13",key:"nzbqef"}]])},45679:(e,r,t)=>{"use strict";t.d(r,{A:()=>s});let s=(0,t(94500).A)("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},47548:(e,r,t)=>{"use strict";t.d(r,{default:()=>y});var s=t(82785),n=t(88677),a=t(83446),l=t(99108),i=t(50264),o=t(84214),d=t(75926),c=t(87676),u=t(75581),f=t(1776),p=t(45679),m=t(35737);function y({userEmail:e}){let[r,t]=(0,n.useState)(""),[y,g]=(0,n.useState)(""),[h,b]=(0,n.useState)(!1),[x,v]=(0,n.use
1State)(null),w=async e=>{if(e.preventDefault(),!r.trim()||!y.trim())return void v({type:"error",text:"Please fill in all fields"});b(!0),v(null);try{let e=await fetch("/api/contact",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({subject:r,message:y})}),s=await e.json();e.ok?(v({type:"success",text:"Message sent! We'll get back to you soon."}),t(""),g("")):v({type:"error",text:s.error||"Failed to send message"})}catch{v({type:"error",text:"Failed to send message. Please try again."})}finally{b(!1)}};return(0,s.jsx)("div",{className:"space-y-6",children:(0,s.jsxs)(a.Zp,{className:"border-border bg-card",children:[(0,s.jsxs)(a.aR,{children:[(0,s.jsxs)(a.ZB,{className:"flex items-center gap-2",children:[(0,s.jsx)(d.A,{className:"h-5 w-5 text-primary"}),"Send a Message"]}),(0,s.jsx)(a.BT,{children:"We typically respond within 24 hours"})]}),(0,s.jsx)(a.Wu,{children:(0,s.jsxs)("form",{onSubmit:w,className:"space-y-4",children:[(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)(o.J,{htmlFor:"email",children:"From"}),(0,s.jsxs)("div",{className:"flex items-center gap-2 p-3 rounded-lg bg-muted/50 border border-border",children:[(0,s.jsx)(c.A,{className:"h-4 w-4 text-muted-foreground"}),(0,s.jsx)("span",{className:"text-sm",children:e})]})]}),(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)(o.J,{htmlFor:"subject",children:"Subject"}),(0,s.jsx)(i.p,{id:"subject",placeholder:"What's this about?",value:r,onChange:e=>t(e.target.value),disabled:h})]}),(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)(o.J,{htmlFor:"message",children:"Message"}),(0,s.jsx)("textarea",{id:"message",placeholder:"Tell us more...",value:y,onChange:e=>g(e.target.value),disabled:h,rows:6,className:"w-full px-3 py-2 rounded-lg bg-background border border-border focus:outline-none focus:ring-2 focus:ring-primary resize-none"})]}),x&&(0,s.jsxs)("div",{className:`p-4 rounded-lg flex items-center gap-3 ${"success"===x.type?"bg-green-500/10 border border-green-500/30 text-green-500":"bg-red-500/10 border border-red-500/30 text-red-500"}`,children:["success"===x.type?(0,s.jsx)(u.A,{className:"h-5 w-5"}):(0,s.jsx)(f.A,{className:"h-5 w-5"}),(0,s.jsx)("span",{children:x.text})]}),(0,s.jsx)(l.$,{type:"submit",disabled:h,className:"w-full",children:h?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(p.A,{className:"h-4 w-4 animate-spin mr-2"}),"Sending..."]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(m.A,{className:"h-4 w-4 mr-2"}),"Send Message"]})})]})})]})})}},50264:(e,r,t)=>{"use strict";t.d(r,{p:()=>l});var s=t(82785),n=t(88677),a=t(24627);let l=n.forwardRef(({className:e,type:r,...t},n)=>(0,s.jsx)("input",{type:r,className:(0,a.cn)("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm r
1ing-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",e),ref:n,...t}));l.displayName="Input"},64873:(e,r,t)=>{"use strict";t.d(r,{F:()=>l});var s=t(42305);let n=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,a=s.$,l=(e,r)=>t=>{var s;if((null==r?void 0:r.variants)==null)return a(e,null==t?void 0:t.class,null==t?void 0:t.className);let{variants:l,defaultVariants:i}=r,o=Object.keys(l).map(e=>{let r=null==t?void 0:t[e],s=null==i?void 0:i[e];if(null===r)return null;let a=n(r)||n(s);return l[e][a]}),d=t&&Object.entries(t).reduce((e,r)=>{let[t,s]=r;return void 0===s||(e[t]=s),e},{});return a(e,o,null==r||null==(s=r.compoundVariants)?void 0:s.reduce((e,r)=>{let{class:t,className:s,...n}=r;return Object.entries(n).every(e=>{let[r,t]=e;return Array.isArray(t)?t.includes({...i,...d}[r]):({...i,...d})[r]===t})?[...e,t,s]:e},[]),null==t?void 0:t.class,null==t?void 0:t.className)}},71423:(e,r,t)=>{Promise.resolve().then(t.t.bind(t,99391,23)),Promise.resolve().then(t.bind(t,47548))},75581:(e,r,t)=>{"use strict";t.d(r,{A:()=>s});let s=(0,t(94500).A)("CircleCheckBig",[["path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14",key:"g774vq"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]])},75926:(e,r,t)=>{"use strict";t.d(r,{A:()=>s});let s=(0,t(94500).A)("MessageSquare",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]])},83446:(e,r,t)=>{"use strict";t.d(r,{BT:()=>d,Wu:()=>c,ZB:()=>o,Zp:()=>l,aR:()=>i});var s=t(82785),n=t(88677),a=t(24627);let l=n.forwardRef(({className:e,...r},t)=>(0,s.jsx)("div",{ref:t,className:(0,a.cn)("rounded-lg border border-zinc-200 dark:border-zinc-800 bg-white dark:bg-zinc-900 text-zinc-950 dark:text-zinc-50 shadow-sm",e),...r}));l.displayName="Card";let i=n.forwardRef(({className:e,...r},t)=>(0,s.jsx)("div",{ref:t,className:(0,a.cn)("flex flex-col space-y-1.5 p-6",e),...r}));i.displayName="CardHeader";let o=n.forwardRef(({className:e,...r},t)=>(0,s.jsx)("h3",{ref:t,className:(0,a.cn)("text-2xl font-semibold leading-none tracking-tight text-zinc-900 dark:text-zinc-50",e),...r}));o.displayName="CardTitle";let d=n.forwardRef(({className:e,...r},t)=>(0,s.jsx)("p",{ref:t,className:(0,a.cn)("text-sm text-zinc-500 dark:text-zinc-400",e),...r}));d.displayName="CardDescription";let c=n.forwardRef(({className:e,...r},t)=>(0,s.jsx)("div",{ref:t,className:(0,a.cn)("p-6 pt-0",e),...r}));c.displayName="CardContent",n.forwardRef(({className:e,...r},t)=>(0,s.jsx)("div",{ref:t,className:(0,a.cn)("flex items-center p-6 pt-0",e),...r})).displayName="CardFooter"},84078:(e,r,t)=>{"use strict";t.d(r,{b:()=>o});var s=t(88677);t(58568);var n=t(22815),a=t(82785),l=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,r)=>{let t=(0,n.TL)(`Primitive.${r}`),l=s.forwardRef((e,s)=>{let{asChild:n,...l}=e;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,a.jsx)(n?t:r,{...l,ref:s})});return l.displayName=`Primitive.${r}`,{...e,[r]:l}},{}),i=s.forwardRef((e,r)=>(0,a.jsx)(l.label,{...e,ref:r,onMouseDown:r=>{r.target.closest("button, input, select, textarea")||(e.onMouseDown?.(r),!r.defaultPrevented&&r.detail>1&&r.preventDefault())}}));i.displayName="Label";var o=i},84214:(e,r,t)=>{"use strict";t.d(r,{J:()=>d});var s=t(82785),n=t(88677),a=t(84078),l=t(64873),i=t(24627);let o=(0,l.F)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),d=n.forwardRef(({className:e,...r},t)=>(0,s.jsx)(a.b,{ref:t,className:(0,i.cn)(o(),e),...r}));d.displayName=a.b.displayName},87676:(e,r,t)=>{"use strict";t.d(r,{A:()=>s});let s=(0,t(94500).A)("Mail",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}]])},94500:(e,r,t)=>{"use strict";t.d(r,{A:()=>i});var s=t(88677);let n=(...e)=>e.filter((e,r,t)=>!!e&&t.indexOf(e)===r).join(" ");var a={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 l=(0,s.forwardRef)(({color:e="currentColor",size:r=24,strokeWidth:t=2,absoluteStrokeWidth:l,className:i="",children:o,iconNode:d,...c},u)=>(0,s.createElement)("svg",{ref:u,...a,width:r,height:r,stroke:e,strokeWidth:l?24*Number(t)/Number(r):t,className:n("lucide",i),...c},[...d.map(([e,r])=>(0,s.createElement)(e,r)),...Array.isArray(o)?o:[o]])),i=(e,r)=>{let t=(0,s.forwardRef)(({className:t,...a},i)=>(0,s.createElement)(l,{ref:i,iconNode:r,className:n(`lucide-${e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,t),...a}));return t.displayName=`${e}`,t}},99108:(e,r,t)=>{"use strict";t.d(r,{$:()=>d});
1var s=t(82785),n=t(88677),a=t(22815),l=t(64873),i=t(24627);let o=(0,l.F)("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline",success:"bg-green-600 text-white hover:bg-green-700",warning:"bg-yellow-600 text-white hover:bg-yellow-700"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),d=n.forwardRef(({className:e,variant:r,size:t,asChild:n=!1,...l},d)=>{let c=n?a.DX:"button";return(0,s.jsx)(c,{className:(0,i.cn)(o({variant:r,size:t,className:e})),ref:d,...l})});d.displayName="Button"}},e=>{e.O(0,[9391,2373,7004,4590,7358],()=>e(e.s=71423)),_N_E=e.O()}]);
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.