PageSourceSearch

https://review-it.ai/assets/ContactUs-DZu0x34c.js

js review-it.ai collected 2026-10-05 12:33:14 UTC 21,975 bytes, 356 lines download raw bytes

1import{f as n,k as e}from"./index-7gweHwcy.js";import{u as L,c as I,a as g}from"./index.esm-DreAZqDR.js";import{n as M,a as N,q as W,N as A,F as P}from"./App-D2WufwZa.js";const T=()=>{if(document.getElementById("contact-anim-styles"))return;const i=document.createElement("style");i.id="contact-anim-styles",i.textContent=`
2    @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');
3
4    .contact-root {
5      font-family: 'Inter', sans-serif;
6      min-height: 100vh;
7      background: linear-gradient(135deg, #f0f4ff 0%, #ffffff 50%, #f5f0ff 100%);
8      position: relative;
9      overflow: hidden;
10    }
11
12    /* Floating blobs */
13    .contact-blob {
14      position: absolute;
15      border-radius: 50%;
16      filter: blur(80px);
17      opacity: 0.35;
18      pointer-events: none;
19      z-index: 0;
20      animation: blobFloat 8s ease-in-out infinite;
21    }
22    .contact-blob-1 { width: 400px; height: 400px; background: #3E59DD; top: -100px; right: -100px; animation-delay: 0s; }
23    .contact-blob-2 { width: 300px; height: 300px; background: #8B5CF6; bottom: 50px; left: -80px; animation-delay: 3s; }
24    .contact-blob-3 { width: 200px; height: 200px; background: #06B6D4; top: 40%; left: 30%; animation-delay: 5s; }
25
26    @keyframes blobFloat {
27      0%, 100% { transform: translateY(0px) scale(1); }
28      50%       { transform: translateY(-30px) scale(1.05); }
29    }
30
31    /* Stage */
32    .contact-stage {
33      position: relative;
34      z-index: 1;
35      display: flex;
36      flex-direction: column;
37      align-items: center;
38      justify-content: center;
39      padding: 0 16px 60px;
40    }
41
42    /* Progress bar */
43    .progress-bar-wrap {
44      width: 100%;
45      max-width: 600px;
46      margin: 0 auto 32px;
47      padding: 0 4px;
48    }
49    .progress-track {
50      height: 5px;
51      background: rgba(62,89,221,0.12);
52      border-radius: 99px;
53      overflow: hidden;
54    }
55    .progress-fill {
56      height: 100%;
57      background: linear-gradient(90deg, #3E59DD, #8B5CF6);
58      border-radius: 99px;
59      transition: width 0.6s cubic-bezier(.4,0,.2,1);
60    }
61    .progress-label {
62      font-size: 12px;
63      font-weight: 600;
64      color: #3E59DD;
65      text-align: right;
66      margin-top: 6px;
67      letter-spacing: 0.5px;
68    }
69
70    /* Mascot */
71    .mascot-wrap {
72      display: flex;
73      flex-direction: column;
74      align-items: center;
75      margin-bottom: 24px;
76      position: relative;
77    }
78    .speech-bubble {
79      background: #fff;
80      border: 2px solid rgba(62,89,221,0.18);
81      border-radius: 18px 18px 18px 4px;
82      padding: 12px 20px;
83      font-size: 14px;
84      font-weight: 600;
85      color: #3E59DD;
86      margin-bottom: 12px;
87      max-width: 260px;
88      text-align: center;
89      box-shadow: 0 4px 20px rgba(62,89,221,0.12);
90      position: relative;
91      animation: bubblePop 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
92    }
93    .speech-bubble::after {
94      content: '';
95      position: absolute;
96      bottom: -12px;
97      left: 20px;
98      width: 0; height: 0;
99      border-left: 12px solid transparent;
100      border-right: 0px solid transparent;
101      border-top: 12px solid #fff;
102      filter: drop-shadow(0 2px 2px rgba(62,89,221,0.08));
103    }
104
105    @keyframes bubblePop {
106      0%   { opacity: 0; transform: scale(0.7) translateY(10px); }
107      100% { opacity: 1; transform: scale(1) translateY(0); }
108    }
109
110    .mascot-svg {
111      filter: drop-shadow(0 8px 24px rgba(62,89,221,0.2));
112    }
113
114    /* Character arm animations */
115    .arm-wave { animation: wave 0.8s ease-in-out 2; transform-origin: 50% 80%; }
116    @keyframes wave {
117      0%,100% { transform: rotate(0deg); }
118      25%      { transform: rotate(20deg); }
119      75%      { transform: rotate(-15deg); }
120    }
121    .body-bounce { animation: bounce 1s ease-in-out infinite; }
122    @keyframes bounce {
123      0%,100% { transform: translateY(0); }
124      50%      { transform: translateY(-8px); }
125    }
126    .body-celebrate { animation: celebrate 0.6s ease-in-out 3; }
127    @keyframes celebrate {
128      0%,100% { transform: translateY(0) rotate(0deg); }
129      25%      { transform: translateY(-12px) rotate(-5deg); }
130      75%      { transform: translateY(-12px) rotate(5deg); }
131    }
132
133    /* Step card */
134    .step-card {
135      background: rgba(255,255,255,0.92);
136      backdrop-filter: blur(24px);
137      border: 1.5px solid rgba(62,89,221,0.1);
138      border-radius: 24px;
139      padding: 40px 44px;
140      width: 100%;
141      max-width: 560px;
142      box-shadow: 0 20px 60px rgba(62,89,221,0.1), 0 4px 16px rgba(0,0,0,0.04);
143      position: relative;
144    }
145
146    .step-question {
147      font-size: 22px;
148      font-weight: 800;
149      color: #1E293B;
150      margin-bottom: 8px;
151      line-height: 1.3;
152    }
153    .step-hint {
154      font-size: 13px;
155      color: #94A3B8;
156      margin-bottom: 24px;
157      font-weight: 500;
158    }
159
160    /* Input */
161    .contact-input {
162      width: 100%;
163      padding: 16px 18px;
164      font-size: 16px;
165      font-weight: 500;
166      font-family: 'Inter', sans-serif;
167      color: #1E293B;
168      background: #F8FAFF;
169      border: 2px solid rgba(62,89,221,0.15);
170      border-radius: 14px;
171      outline: none;
172      transition: all 0.25s ease;
173      box-sizing: border-box;
174    }
175    .contact-input:focus {
176      border-color: #3E59DD;
177      background: #fff;
178      box-shadow: 0 0 0 4px rgba(62,89,221,0.1);
179    }
180    .contact-input.has-error {
181      border-color: #EF4444;
182      background: #FFF5F5;
183    }
184    .contact-input.has-error:focus {
185      box-shadow: 0 0 0 4px rgba(239,68,68,0.1);
186    }
187    .contact-textarea {
188      resize: none;
189      min-height: 130px;
190    }
191    .error-text {
192      font-size: 12px;
193      color: #EF4444;
194      font-weight: 500;
195      margin-top: 6px;
196    }
197
198    /* Name step – two fields side by side */
199    .name-row {
200      display: flex;
201      gap: 14px;
202    }
203    .name-col { flex: 1; }
204
205    /* Buttons */
206    .btn-primary {
207      display: inline-flex;
208      align-items: center;
209      justify-content: center;
210      gap: 8px;
211      background: linear-gradient(135deg, #3E59DD 0%, #5B7FFF 100%);
212      color: #fff;
213      font-family: 'Inter', sans-serif;
214      font-size: 15px;
215      font-weight: 700;
216      padding: 14px 32px;
217      border: none;
218      border-radius: 14px;
219      cursor: pointer;
220      transition: all 0.25s cubic-bezier(.4,0,.2,1);
221      box-shadow: 0 4px 20px rgba(62,89,221,0.35);
222      width: 100%;
223      margin-top: 20px;
224    }
225    .btn-primary:hover:not(:disabled) {
226      transform: translateY(-2px);
227      box-shadow: 0 8px 30px rgba(62,89,221,0.45);
228      background: linear-gradient(135deg, #3248c5 0%, #4A6BFF 100%);
229    }
230    .btn-primary:active:not(:disabled) { transform: translateY(0); }
231    .btn-primary:disabled {
232      opacity: 0.6;
233      cursor: not-allowed;
234    }
235    .btn-back {
236      background: none;
237      border: none;
238      font-family: 'Inter', sans-serif;
239      font-size: 13px;
240      font-weight: 600;
241      color: #94A3B8;
242      cursor: pointer;
243      padding: 8px 0;
244      margin-top: 8px;
245      transition: color 0.2s;
246      display: block;
247      text-align: center;
248      width: 100%;
249    }
250    .btn-back:hover { color: #3E59DD; }
251
252    /* Slide animations */
253    @keyframes slideInRight {
254      from { opacity: 0; transform: translateX(60px); }
255      to   { opacity: 1; transform: translateX(0); }
256    }
257    @keyframes slideInLeft {
258      from { opacity: 0; transform: translateX(-60px); }
259      to   { opacity: 1; transform: translateX(0); }
260    }
261    @keyframes slideOutLeft {
262      from { opacity: 1; transform: translateX(0); }
263      to   { opacity: 0; transform: translateX(-60px); }
264    }
265    .slide-in-right { animation: slideInRight 0.4s cubic-bezier(.4,0,.2,1) forwards; }
266    .slide-in-left  { animation: slideInLeft  0.4s cubic-bezier(.4,0,.2,1) forwards; }
267
268    /* Success */
269    .success-icon-ring {
270      width: 88px; height: 88px;
271      background: linear-gradient(135deg, #10B981, #059669);
272      border-radius: 50%;
273      display: flex; align-items: center; justify-content: center;
274      margin: 0 auto 20px;
275      box-shadow: 0 8px 32px rgba(16,185,129,0.35);
276      animation: successPop 0.6s cubic-bezier(0.34,1.56,0.64,1);
277    }
278    @keyframes successPop {
279      0%   { transform: scale(0); opacity: 0; }
280      100% { transform: scale(1); opacity: 1; }
281    }
282    .success-title {
283      font-size: 26px;
284      font-weight: 800;
285      color: #1E293B;
286      margin-bottom: 10px;
287      text-align: center;
288    }
289    .success-sub {
290      font-size: 15px;
291      color: #64748B;
292      text-align: center;
293      line-height: 1.6;
294    }
295
296    /* Confetti canvas */
297    #confetti-canvas {
298      position: fixed;
299      top: 0; left: 0;
300      width: 100%; height: 100%;
301      pointer-events: none;
302      z-index: 999;
303    }
304
305    /* Kbd hint */
306    .kbd-hint {
307      font-size: 11px;
308      color: #CBD5E1;
309      text-align: center;
310      margin-top: 10px;
311      font-weight: 500;
312    }
313    .kbd-hint kbd {
314      background: #F1F5F9;
315      border: 1px solid #E2E8F0;
316      border-radius: 4px;
317      padding: 1px 5px;
318      font-family: monospace;
319      color: #64748B;
320    }
321
322    /* Step dots */
323    .step-dots {
324      display: flex;
325      gap: 8px;
326      justify-content: center;
327      margin-bottom: 28px;
328    }
329    .step-dot {
330      width: 8px; height: 8px;
331      border-radius: 50%;
332      background: rgba(62,89,221,0.15);
333      transition: all 0.3s ease;
334    }
335    .step-dot.active {
336      background: #3E59DD;
337      width: 24px;
338      border-radius: 4px;
339    }
340    .step-dot.done {
341      background: #10B981;
342    }
343
344    /* Responsive */
345    @media (max-width: 600px) {
346      .step-card { padding: 28px 20px; border-radius: 20px; }
347      .step-question { font-size: 18px; }
348      .name-row { flex-direction: column; gap: 12px; }
349      .contact-blob-3 { display: none; }
350    }
351  `,document.head.appendChild(i)},Y=({mood:i="wave"})=>{const b=i==="celebrate"?"body-celebrate":i==="think"?"body-bounce":"",s=i==="wave"?"arm-wave":"";return e.jsxs("svg",{className:"mascot-svg",width:"120",height:"140",viewBox:"0 0 120 140",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[e.jsxs("g",{className:b,children:[e.jsx("ellipse",{cx:"60",cy:"134",rx:"28",ry:"6",fill:"rgba(62,89,221,0.12)"}),e.jsx("rect",{x:"35",y:"72",width:"50",height:"50",rx:"14",fill:"url(#bodyGrad)"}),e.jsx("rect",{x:"44",y:"82",width:"32",height:"28",rx:"8",fill:"rgba(255,255,255,0.25)"}),e.jsx("text",{x:"60",y:"100",textAnchor:"middle",fontSize:"9",fontWeight:"700",fill:"#fff",fontFamily:"Inter,sans-serif",children:"R·IT"}),e.jsx("rect",{x:"18",y:"76",width:"18",height:"10",rx:"5",fill:"#3E59DD"}),e.jsxs("g",{className:s,style:{transformOrigin:"88px 76px"},children:[e.jsx("rect",{x:"84",y:"76",width:"18",height:"10",rx:"5",fill:"#3E59DD"}),e.jsx("circle",{cx:"103",cy:"81",r:"5",fill:"#5B7FFF"})]}),e.jsx("rect",{x:"43",y:"118",width:"13",height:"18",rx:"6",fill:"#3E59DD"}),e.jsx("rect",{x:"63",y:"118",width:"13",height:"18",rx:"6",fill:"#3E59DD"}),e.jsx("ellipse",{cx:"49",cy:"136",rx:"9",ry:"5",fill:"#2A3EB1"}),e.jsx("ellipse",{cx:"69",cy:"136",rx:"9",ry:"5",fill:"#2A3EB1"}),e.jsx("rect",{x:"28",y:"28",width:"64",height:"52",rx:"20",fill:"url(#headGrad)"}),e.jsx("rect",{x:"16",y:"38",width:"14",height:"24",rx:"7",fill:"#3E59DD"}),e.jsx("rect",{x:"90",y:"38",width:"14",height:"24",rx:"7",fill:"#3E59DD"}
351),e.jsx("rect",{x:"19",y:"44",width:"8",height:"12",rx:"4",fill:"#5B7FFF"}),e.jsx("rect",{x:"93",y:"44",width:"8",height:"12",rx:"4",fill:"#5B7FFF"}),e.jsx("line",{x1:"60",y1:"28",x2:"60",y2:"14",stroke:"#3E59DD",strokeWidth:"3",strokeLinecap:"round"}),e.jsx("circle",{cx:"60",cy:"11",r:"6",fill:"#5B7FFF"}),e.jsx("circle",{cx:"60",cy:"11",r:"3",fill:"#fff"}),e.jsx("rect",{x:"37",y:"40",width:"18",height:"16",rx:"5",fill:"#fff"}),e.jsx("rect",{x:"65",y:"40",width:"18",height:"16",rx:"5",fill:"#fff"}),i==="celebrate"?e.jsxs(e.Fragment,{children:[e.jsx("text",{x:"46",y:"53",textAnchor:"middle",fontSize:"11",fill:"#F59E0B",children:"★"}),e.jsx("text",{x:"74",y:"53",textAnchor:"middle",fontSize:"11",fill:"#F59E0B",children:"★"})]}):i==="think"?e.jsxs(e.Fragment,{children:[e.jsx("circle",{cx:"46",cy:"49",r:"4",fill:"#3E59DD"}),e.jsx("circle",{cx:"74",cy:"49",r:"4",fill:"#3E59DD"}),e.jsx("circle",{cx:"48",cy:"47",r:"1.5",fill:"#fff"}),e.jsx("circle",{cx:"76",cy:"47",r:"1.5",fill:"#fff"})]}):e.jsxs(e.Fragment,{children:[e.jsx("circle",{cx:"46",cy:"49",r:"5",fill:"#3E59DD"}),e.jsx("circle",{cx:"74",cy:"49",r:"5",fill:"#3E59DD"}),e.jsx("circle",{cx:"48",cy:"47",r:"2",fill:"#fff"}),e.jsx("circle",{cx:"76",cy:"47",r:"2",fill:"#fff"})]}),i==="celebrate"?e.jsx("path",{d:"M 44 65 Q 60 75 76 65",stroke:"#3E59DD",strokeWidth:"3",fill:"none",strokeLinecap:"round"}):i==="think"?e.jsx("path",{d:"M 46 66 Q 60 63 74 66",stroke:"#3E59DD",strokeWidth:"2.5",fill:"none",strokeLinecap:"round"}):e.jsx("path",{d:"M 44 66 Q 60 74 76 66",stroke:"#3E59DD",strokeWidth:"2.5",fill:"none",strokeLinecap:"round"}),e.jsx("ellipse",{cx:"50",cy:"36",rx:"8",ry:"4",fill:"rgba(255,255,255,0.3)"})]}),e.jsxs("defs",{children:[e.jsxs("linearGradient",{id:"headGrad",x1:"28",y1:"28",x2:"92",y2:"80",gradientUnits:"userSpaceOnUse",children:[e.jsx("stop",{offset:"0%",stopColor:"#6B8FFF"}),e.jsx("stop",{offset:"100%",stopColor:"#3E59DD"})]}),e.jsxs("linearGradient",{id:"bodyGrad",x1:"35",y1:"72",x2:"85",y2:"122",gradientUnits:"userSpaceOnUse",children:[e.jsx("stop",{offset:"0%",stopColor:"#5B7FFF"}),e.jsx("stop",{offset:"100%",stopColor:"#3248C5"})]})]})]})},a=[{id:"name",bubble:"Hey there! 👋 Nice to meet you!",question:"What's your name?",hint:"Enter your first and last name",mood:"wave",fields:["firstName","lastName"]},{id:"email",bubble:"Great name! How can I reach you? 📬",question:"What's your email address?",hint:"We'll reply right here",mood:"think",fields:["email"]},{id:"query",bubble:"I'm all ears! Tell me everything 🤔",question:"What can we help you with?",hint:"Share your question, feedback, or request",mood:"think",fields:["query"]},{id:"done",bubble:"Woo-hoo! Message received! 🎉",question:"",hint:"",mood:"celebrate",fields:[]}],U=({token:i,user:b})=>{const[s,h]=n.useState(0),[D,f]=n.useState("right"),[y,j]=n.useState(!1),[x,w]=n.useState(!1),[F,m]=n.useState(0),p=n.useRef(null);n.useEffect(()=>{T()},[]),n.useEffect(()=>{const r=setTimeout(()=>{p.current&&p.current.focus()},420);return()=>clearTimeout(r)},[s]);const t=L({initialValues:{firstName:"",lastName:"",email:"",query:""},validationSchema:I({firstName:g().required("First name is required"),lastName:g().required("Last name is required"),email:g().email("Invalid email address").required("Email is required"),query:g().required("Please enter your message")}),validateOnChange:!0,validateOnBlur:!0,onSubmit:async()=>{}}),l=a[s]||a[a.length-1];n.useCallback(()=>{const r=a[s];return!r||r.fields.length===0?!0:r.fields.every(d=>!t.errors[d]&&t.values[d])},[s,t.errors,t.values]);const u=n.useCallback(async()=>{const r=a[s];r.fields.forEach(o=>t.setFieldTouched(o,!0,!0));const d=await t.validateForm();if(!r.fields.some(o=>d[o]))if(s===a.length-2){j(!0);try{const{firstName:o,lastName:C,email:S,query:q}=t.values;await M("email/contactUs",{firstName:o,lastName:C,email:S,query:q},i)==="Email sent successfully"?(f("right"),h(a.length-1),m(z=>z+1),w(!0)):N.fire({icon:"error",title:"Oops!",text:"Something went wrong. Please try again.",background:"#fff",confirmButtonColor:"#3E59DD"})}catch{N.fire({icon:"error",title:"Oops!",text:"Something went wrong. Please try again.",background:"#fff",confirmButtonColor:"#3E59DD"})}finally{j(!1)}}else f("right"),h(o=>o+1),m(o=>o+1)},[s,t,i]),v=()=>{s===0||x||(f("left"),h(r=>r-1),m(r=>r+1))},k=r=>{if(r.key==="Enter"&&!r.shiftKey){if(r.target.tagName==="TEXTAREA")return;r.preventDefault(),u()}},E=x?100:Math.round(s/(a.length-1)*100),B=D==="right"?"slide-in-right":"slide-in-left",c=r=>t.touched[r]&&t.errors[r];return e.jsxs(e.Fragment,{children:[e.jsx(W,{title:"Contact Us - Support & Feedback",description:"Get in touch with the Review-it team for support, feature requests, or queries regarding AI peer reviews and manuscript checks.",keywords:"contact review-it, customer support, academic paper feedback help, peer review support, contact journal finder"}),e.jsxs("div",{className:"contact-root",children:[e.jsx("div",{className:"contact-blob contact-blob-1"}),e.jsx("div",{className:"contact-blob contact-blob-2"}),e.jsx("div",{className:"contact-blob contact-blob-3"}),e.jsx(A,{token:i,user:b}),e.jsxs("div",{className:"contact-stage",style:{paddingTop:"80px"},children:[e.jsxs("div",{className:"progress-bar-wrap",children:[e.jsx("div",{className:"step-dots",children:a.slice(0,a.length-1).map((r,d)=>e.jsx("div",{className:`step-dot ${x||d<s?"done":d===s?"active":""}`},d))}),e.jsx("div",{className:"progress-track",children:e.jsx("div",{className:"progress-fill",style:{width:`${E}%`}})}),e.jsx("div",{className:"progress-label",children:x?"Done! ✓":`Step ${s+1} of ${a.length-1}`})]}),e.jsxs("div",{className:"mascot-wrap",children:[e.jsx("div",{className:"speech-bubble",children:l.bubble},F),e.jsx(Y,{mood:l.mood})]}),e.jsx("div",{className:`step-card ${B}`,children:x?e.jsxs("div",{style:{textAlign:"center",padding:"8px 0"},children:[e.jsx("div",{className:"success-icon-ring",children:e.jsx("svg",{width:"40",height:"40",viewBox:"0 0 40 40",fill:"none",children:e.jsx("path",{d:"M10 20L17 27L30 13",stroke:"#fff",strokeWidth:"3.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),e.jsx("div",{className:"success-title",children:"Message Sent! 🎉"}),e.jsxs("div",{className:"success-sub",children:["Thanks,"," ",e.jsx("strong",{style:{color:"#3E59DD"},children:t.values.firstName}),"! We've received your message and will reply to"," ",e.jsx("strong",{children:t.values.email})," within 24 hours."]}),e.jsxs("button",{className:"btn-primary",style:{marginTop:28,background:"linear-gradient(135deg,#10B981,#059669)",boxShadow:"0 4px 20px rgba(16,185,129,0.3)"},onClick:()=>{t.resetForm(),h(0),w(!1),m(r=>r+1),f("left")},children:[e.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"}),e.jsx("path",{d:"M3 3v5h5"})]}),"Send Another Message"]})]}):s===0?e.jsxs("div",{onKeyDown:k,children:[e.jsx("div",{className:"step-question",children:l.question}),e.jsx("div",{className:"step-hint",children:l.hint}),e.jsxs("div",{className:"name-row",children:[e.jsxs("div",{className:"name-col",children:[e.jsx("input",{ref:p,className:`contact-input${c("firstName")?" has-error":""}`,id:"firstName",name:"firstName",placeholder:"First name",value:t.values.firstName,onChange:t.handleChange,onBlur:t.handleBlur}),c("firstName")&&e.jsx("div",{className:"error-text",children:t.errors.firstName})]}),e.jsxs("div",{className:"name-col",children:[e.jsx("input",{className:`contact-input${c("lastName")?" has-error":""}`,id:"lastName",name:"lastName",placeholder:"Last name",value:t.values.lastName,onChange:t.handleChange,onBlur:t.handleBlur}),c("lastName")&&e.jsx("div",{className:"error-text",children:t.errors.lastName})]})]}),e.jsxs("button",{className:"btn-primary",onClick:u,children:["Continue",e.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("path",{d:"M5 12h14"}),e.jsx("path",{d:"m12 5 7 7-7 7"})]})]}),e.jsxs("div",{className:"kbd-hint",children:["Press ",e.jsx("kbd",{children:"Enter"})," to continue"]})]}):s===1?e.jsxs("div",{onKeyDown:k,children:[e.jsx("div",{className:"step-question",children:l.question}),e.jsx("div",{className:"step-hint",children:l.hint}),e.jsx("input",{ref:p,className:`contact-input${c("email")?" has-error":""}`,id:"email",name:"email",type:"email",placeholder:"[email protected]",value:t.values.email,onChange:t.handleChange,onBlur:t.handleBlur}),c("email")&&e.jsx("div",{className:"error-text",children:t.errors.email}),e.jsxs("button",{className:"btn-primary",onClick:u,children:["Continue",e.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("path",{d:"M5 12h14"}),e.jsx("path",{d:"m12 5 7 7-7 7"})]})]}),e.jsx("button",{className:"btn-back",onClick:v,children:"← Go back"}),e.jsxs("div",{className:"kbd-hint",children:["Press ",e.jsx("kbd",{children:"Enter"})," to continue"]})]}):s===2?e.jsxs("div",{children:[e.jsx("div",{className:"step-question",children:l.question}),e.jsx("div",{className:"step-hint",children:l.hint}),e.jsx("textarea",{ref:p,className:`contact-input contact-textarea${c("query")?" has-error":""}
351`,id:"query",name:"query",placeholder:"Tell us how we can help…",value:t.values.query,onChange:t.handleChange,onBlur:t.handleBlur}),c("query")&&e.jsx("div",{className:"error-text",children:t.errors.query}),e.jsx("button",{className:"btn-primary",onClick:u,disabled:y,style:y?{opacity:.7}:{},children:y?e.jsxs(e.Fragment,{children:[e.jsx("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",style:{animation:"spin 1s linear infinite"},children:e.jsx("path",{d:"M21 12a9 9 0 1 1-6.219-8.56"})}),"Sending…"]}):e.jsxs(e.Fragment,{children:["Send Message",e.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("path",{d:"m22 2-7 20-4-9-9-4Z"}),e.jsx("path",{d:"M22 2 11 13"})]})]})}),e.jsx("button",{className:"btn-back",onClick:v,children:"← Go back"})]}):null},s)]}),e.jsx("style",{children:`
352          @keyframes spin {
353            from { transform: rotate(0deg); }
354            to   { transform: rotate(360deg); }
355          }
356        `}),e.jsx(P,{})]})]})};export{U as default};

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.