try{!function(){var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},r=(new e.Error).stack;r&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[r]="10ce368b-0550-40fa-a120-49c410fc02b9",e._sentryDebugIdIdentifier="sentry-dbid-10ce368b-0550-40fa-a120-49c410fc02b9")}()}catch(e){}"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7641],{37641:(e,r,a)=>{a.r(r),a.d(r,{ContactModal:()=>o});var l=a(11824),t=a(72071),n=a(79100),s=a(52113),d=a(15274);let o=(0,n.memo)(e=>{let{isOpen:r,onOpenChange:o}=e,[i,c]=(0,n.useState)("");return(0,n.useEffect)(()=>{(async()=>{try{let{config:e}=await Promise.resolve().then(a.bind(a,77617));e.contactEmail&&c(e.contactEmail)}catch(e){console.error("Failed to load config:",e)}})()},[]),(0,l.jsx)(t.aF,{isOpen:r,onOpenChange:o,"aria-label":"Contact form modal",children:(0,l.jsx)(t.$m,{className:"pb-0",onOpenChange:o,children:e=>(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(t.rQ,{className:"flex flex-col gap-1",children:(0,l.jsxs)("div",{className:"flex items-center justify-between",children:[(0,l.jsx)("h2",{className:"text-lg font-semibold",children:"Contact me"}),(0,l.jsx)(t.$n,{variant:"ghost",size:"sm",onClick:e,className:"p-2 h-8 w-8 min-w-0 rounded-full hover:bg-gray-100","aria-label":"Close contact modal",children:"✕"})]})}),(0,l.jsxs)(t.cw,{children:[(0,l.jsxs)("p",{children:["Fill in the form below or email me at"," ",(0,l.jsx)("span",{className:"select-all","aria-label":"Email address: ".concat(i),children:(0,d.X)(i)})]}),(0,l.jsx)("p",{children:"I read all emails personally and usually reply within 24h."}),(0,l.jsx)(s.default,{})]})]})})})});o.displayName="ContactModal"},58427:(e,r,a)=>{a.d(r,{P:()=>d});var l=a(11824);a(79100);var t=a(3354);let n={sm:"w-4 h-4",md:"w-6 h-6",lg:"w-8 h-8"},s={primary:"text-primary",secondary:"text-muted",success:"text-success",warning:"text-warning",danger:"text-error"};function d(e){let{size:r="md",color:a="primary",className:d,"aria-label":o="Loading..."}=e;return(0,l.jsx)("div",{className:(0,t.QP)("inline-block",n[r],d),role:"status","aria-label":o,children:(0,l.jsxs)("svg",{className:(0,t.QP)("animate-spin",n[r],s[a]),xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[(0,l.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,l.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]})})}},72071:(e,r,a)=>{a.d(r,{$n:()=>l.$,aF:()=>d,cw:()=>c,$m:()=>o,rQ:()=>i}),a(97695);var l=a(53893);a(29686);var t=a(11824),n=a(79100);a(82422),a(58427);var s=a(3354);function d(e){let{children:r,isOpen:a,onOpenChange:l,className:d}=e,o=(0,n.useCallback)(e=>{"Escape"===e.key&&l(!1)},[l]);return((0,n.useEffect)(()=>{if(a)return document.addEventListener("keydown",o),()=>{document.removeEventListener("keydown",o)}},[a,o]),a)?(0,t.jsxs)("div",{className:(0,s.QP)("fixed inset-0 z-50 flex items-center justify-center bg-black/50",d),onClick:e=>{e.target===e.currentTarget&&l(!1)},onKeyDown:e=>{"Escape"===e.key&&l(!1)},role:"button",tabIndex:0,"aria-label":"Click outside or press Escape to close this modal","aria-describedby":"modal-backdrop-description",children:[(0,t.jsx)("div",{id:"modal-backdrop-description",className:"sr-only",children:"Click outside or press Escape to close this modal"}),r]}):null}function o(e){let{children:r,className:a,onOpenChange:l}=e;return(0,t.jsx)("div",{className:(0,s.QP)("relative bg-white rounded-lg shadow-xl max-w-xl w-full mx-4 max-h-[90vh] overflow-hidden",a),children:"function"==typeof r?r(()=>l(!1)):r})}function i(e){let{children:r,className:a}=e;return(0,t.jsx)("div",{className:(0,s.QP)("px-6 py-4 border-b border-gray-200",a),children:r})}function c(e){let{children:r,className:a}=e;return(0,t.jsx)("div",{className:(0,s.QP)("px-6 py-4",a),children:r})}},82422:(e,r,a)=>{a.d(r,{E:()=>o});var l=a(11824);a(79100);var t=a(3354);let n={default:"bg-gray-100 text-gray-800 border border-gray-200",primary:"bg-primary text-white border border-primary",secondary:"bg-gray-200 text-gray-700 border border-gray-400",success:"bg-success-light text-green-800 border border-success-border",warning:"bg-warning-light text-yellow-800 border border-warning-border",danger:"bg-error-light text-red-800 border border-error-border",info:"bg-info-light text-blue-800 border border-info-border",bordered:"bg-white text-gray-700 border-2 border-gray-400"},s={sm:"px-2 py-1 text-xs",md:"px-3 py-1.5 text-sm",lg:"px-4 py-2 text-base"},d={none:"",sm:"rounded-sm",md:"rounded-md",lg:"rounded-lg",full:"rounded-full"};function o(e){let{children:r,className:a,variant:o="default",size:i="md",rounded:c="md"}=e,m=(0,t.QP)("inline-flex items-center font-medium",n[o],s[i],d[c],a);return(0,l.jsx)("span",{className:m,children:r})}},97695:(e,r,a)=>{a.d(r,{Zp:()=>i,aR:()=>c,bw:()=>m,wL:()=>b});var l=a(11824),t=a(79100),n=a(3354);let s={default:"bg-white",bordered:"bg-white border border-gray-300",shadow:"bg-white shadow-md border border-gray-300",elevated:"bg-white shadow-lg border border-gray-300"},d={none:"",sm:"p-2",md:"p-4",lg:"p-6"},o={none:"",sm:"rounded-sm",md:"rounded-md",lg:"rounded-lg",xl:"rounded-xl"},i=t.forwardRef(function(e,r){let{children:a,className:t,as:i="div",href:c,onClick:m,variant:b="default",padding:u="md",rounded:g="lg",style:f}=e,x={className:(0,n.QP)("transition-all duration-200",s[b],d[u],o[g],t),...m&&{onClick:m},...c&&{href:c},...f&&{style:f},ref:r};return(0,l.jsx)(i,{...x,children:a})});function c(e){let{children:r,className:a,padding:t="md"}=e;return(0,l.jsx)("div",{className:(0,n.QP)("flex flex-col gap-1",d[t],a),children:r})}function m(e){let{children:r,className:a,padding:t="md",style:s}=e;return(0,l.jsx)("div",{className:(0,n.QP)("flex flex-col gap-2",d[t],a),style:s,children:r})}function b(e){let{children:r,className:a,padding:t="md"}=e;return(0,l.jsx)("div",{className:(0,n.QP)("flex items-center justify-between",d[t],a),children:r})}}}]);