PageSourceSearch

https://petwellhk.com/assets/TestBooking-CS7MUhum.js

js petwellhk.com collected 2026-10-06 05:23:30 UTC 28,471 bytes, 48 lines download raw bytes

1import{r as i,j as e}from"./react-vendor-BDHNqS4B.js";import{b as xe,S as ue}from"./Header-BkbupWq-.js";import{M as ke,F as fe}from"./Footer-CtylQEAH.js";import{B as y}from"./badge-BYBBu8xB.js";import{C as I,a as M,b as se,c as oe}from"./card-U4xgiZnN.js";import{c as q,a4 as Y,u as be,d as Ne,e as je,h as Be,B as D,n as ae,D as ve,j as we,k as ye,l as Ce,m as Pe,L as j,I as L,ai as Te}from"./main-m_sUF2N4.js";import{S as Se,a as Ee,b as Fe,c as Ie,d as Me}from"./select-fZgDq8v8.js";import{T as De}from"./textarea-D7qsgB_p.js";import{u as Le}from"./useSEO-CoArDrdl.js";import{S as _e}from"./shield-check-we62WOC3.js";import{C as U}from"./clock-CRHi7pcr.js";import{C as ze}from"./circle-check-DgLC__8_.js";import{P as qe}from"./phone-B2rvvDkK.js";import"./amplify-DYDcjoow.js";import"./chevron-right-CpkQxGj-.js";import"./check-DS0-tR9o.js";import"./tag-D40gy_Nl.js";import"./query-7-WHkg5t.js";import"./reportService-tEzofQZ6.js";import"./type-CVgQCqWZ.js";import"./index-CFf87M6S.js";import"./chevron-up-Cb9C18fB.js";/**
2 * @license lucide-react v0.462.0 - ISC
3 *
4 * This source code is licensed under the ISC license.
5 * See the LICENSE file in the root directory of this source tree.
6 */const Ae=q("Activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);/**
7 * @license lucide-react v0.462.0 - ISC
8 *
9 * This source code is licensed under the ISC license.
10 * See the LICENSE file in the root directory of this source tree.
11 */const Re=q("FileText",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);/**
12 * @license lucide-react v0.462.0 - ISC
13 *
14 * This source code is licensed under the ISC license.
15 * See the LICENSE file in the root directory of this source tree.
16 */const H=q("Microscope",[["path",{d:"M6 18h8",key:"1borvv"}],["path",{d:"M3 22h18",key:"8prr45"}],["path",{d:"M14 22a7 7 0 1 0 0-14h-1",key:"1jwaiy"}],["path",{d:"M9 14h2",key:"197e7h"}],["path",{d:"M9 12a2 2 0 0 1-2-2V6h6v4a2 2 0 0 1-2 2Z",key:"1bmzmy"}],["path",{d:"M12 6V3a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v3",key:"1drr47"}]]);/**
17 * @license lucide-react v0.462.0 - ISC
18 *
19 * This source code is licensed under the ISC license.
20 * See the LICENSE file in the root directory of this source tree.
21 */const Oe=q("TestTubeDiagonal",[["path",{d:"M21 7 6.82 21.18a2.83 2.83 0 0 1-3.99-.01a2.83 2.83 0 0 1 0-4L17 3",key:"1ub6xw"}],["path",{d:"m16 2 6 6",key:"1gw87d"}],["path",{d:"M12 16H4",key:"1cjfip"}]]),$e=`
22  mutation CreatePaymentLink($input: CreatePaymentLinkInput!) {
23    createPaymentLink(input: $input) {
24      id
25      url
26      amount
27      currency
28      status
29      expires_at
30    }
31  }
32`,Ke="BOOKING_META::",Ue=t=>{const d=JSON.stringify(t),l=btoa(unescape(encodeURIComponent(d))).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/g,"");return`${Ke}${l}`},He=`
33  query ClientsByEmail($email: ID!, $limit: Int) {
34    clientsByEmail(email: $email, limit: $limit) {
35      items {
36        id
37      }
38    }
39  }
40`,Ye=`
41  query GetClientByEmail($email: ID!) {
42    listClients(filter: { email: { eq: $email } }, limit: 1) {
43      items {
44        id
45      }
46    }
47  }
48`,Ge=async t=>{var o,C,k,f,c,x;const d=t.trim().toLowerCase();try{const p=((k=(C=(o=(await Y(He,{email:d,limit:1})).clientsByEmail)==null?void 0:o.items)==null?void 0:C[0])==null?void 0:k.id)??void 0;if(p)return p}catch{}return((x=(c=(f=(await Y(Ye,{email:d})).listClients)==null?void 0:f.items)==null?void 0:c[0])==null?void 0:x.id)??void 0},Ve=t=>`guest_${t.trim().toLowerCase().replace(/[^a-zA-Z0-9_-]/g,"_").slice(0,96)||"checkout"}`,Ze=t=>{const d=t.replace(/[^a-zA-Z0-9_-]/g,"_"),l=Math.random().toString(36).slice(2,8);return`tb_${d}_${Date.now()}_${l}`};async function Qe(t){var x,B,p,P,T,S;const d=(x=t.userEmail)==null?void 0:x.trim().toLowerCase(),l=t.shopperEmail.trim().toLowerCase(),o=d||l,k=await Ge(o)||Ve(o),f={amount:t.amount,currency:t.currency,paymentSourceId:Ze(t.productC
48ode),paymentSourceType:"ORGANIZED_EVENT_BOOKING",clientId:k,description:Ue({testType:t.productName,petName:t.petName.trim(),bookingClinic:t.bookingClinic.trim(),bookingTime:t.bookingTime.trim(),notes:((B=t.notes)==null?void 0:B.trim())||""}),returnUrl:t.returnUrl,shopperEmail:l,shopperFirstName:(p=t.shopperFirstName)==null?void 0:p.trim(),shopperLastName:(P=t.shopperLastName)==null?void 0:P.trim(),shopperPhoneNumber:(T=t.shopperPhoneNumber)==null?void 0:T.trim()},c=await Y($e,{input:f},t.usePublicAuth?{authMode:"apiKey"}:void 0);if(!((S=c==null?void 0:c.createPaymentLink)!=null&&S.url))throw new Error("Payment link was not returned by server.");return{id:c.createPaymentLink.id,url:c.createPaymentLink.url}}const _="HKD",ie={"allergen-ige-125":2800,"pcr-100-plus":2800},re=.2,We="testBooking.medicalDisclaimer",Nt=()=>{const{t}=be(),{toast:d}=Ne(),{isAuthenticated:l,userInfo:o}=je(),{openPanel:C}=Be(),[k,f]=i.useState(""),[c,x]=i.useState(""),[B,p]=i.useState((o==null?void 0:o.email)||""),[P,T]=i.useState(""),[S,ne]=i.useState(""),[A,le]=i.useState(""),[G,de]=i.useState(""),[E,V]=i.useState(null),[b,ce]=i.useState(null),[me,R]=i.useState(!1),O=i.useRef(null);i.useEffect(()=>{o!=null&&o.email&&p(s=>s||o.email)},[o==null?void 0:o.email]),i.useEffect(()=>{(async()=>{var r,h;if(!(l!==!0||!(o!=null&&o.email)))try{const n=[...await Te(o.email)].sort((a,g)=>{const J=K=>{var X,ee,te;return+!!((X=K.firstName)!=null&&X.trim())+ +!!((ee=K.lastName)!=null&&ee.trim())+ +!!((te=K.phone)!=null&&te.trim())};return J(g)-J(a)})[0],m=a=>{const g=(a||"").replace(/\D/g,"");return g?g.startsWith("852")&&g.length>8?g.slice(3):g:""},N=(()=>{const a=(o.username||"").trim();if(!a||a.includes("@"))return{firstName:"",lastName:""};const g=a.split(/\s+/).filter(Boolean);return{firstName:g[0]||"",lastName:g.slice(1).join(" ")}})(),z=((r=n==null?void 0:n.firstName)==null?void 0:r.trim())||N.firstName,$=((h=n==null?void 0:n.lastName)==null?void 0:h.trim())||N.lastName,w=m(n==null?void 0:n.phone);f(a=>a||z),x(a=>a||$),p(a=>a||o.email),T(a=>a||w)}catch(u){console.warn("Unable to prefill booking contact info:",u)}})()},[l,o==null?void 0:o.email]);const Z=i.useMemo(()=>[{id:"allergen-ige-125",name:t("testBooking.products.allergen.name"),shortName:t("testBooking.products.allergen.shortName"),price:ie["allergen-ige-125"],description:t("testBooking.products.allergen.description"),highlights:[t("testBooking.products.allergen.h1"),t("testBooking.products.allergen.h2"),t("testBooking.products.allergen.h3")],bestFor:t("testBooking.products.allergen.bestFor"),method:t("testBooking.products.allergen.method"),sample:t("testBooking.products.allergen.sample"),turnaround:t("testBooking.products.allergen.turnaround"),clinicalKeywords:[t("testBooking.keywords.ige"),t("testBooking.keywords.rast"),t("testBooking.keywords.auMl"),t("testBooking.keywords.serum"),t("testBooking.keywords.enzymeImmunoblot")]},{id:"pcr-100-plus",name:t("testBooking.products.pcr.name"),shortName:t("testBooking.products.pcr.shortName"),price:ie["pcr-100-plus"],description:t("testBooking.products.pcr.description"),highlights:[t("testBooking.products.pcr.h1"),t("testBooking.products.pcr.h2"),t("testBooking.products.pcr.h3")],bestFor:t("testBooking.products.pcr.bestFor"),method:t("testBooking.products.pcr.method"),sample:t("testBooking.products.pcr.sample"),turnaround:t("testBooking.products.pcr.turnaround"),clinicalKeywords:[t("testBooking.keywords.pcr"),t("testBooking.keywords.respiratory"),t("testBooking.keywords.gastrointestinal"),t("testBooking.keywords.zoonotic"),t("testBooking.keywords.pcrTargets")]}],[t]),Q=i.useMemo(()=>[{id:"fairview",name:t("testBooking.clinics.fairview.name"),phone:t("testBooking.clinics.fairview.phone"),address:t("testBooking.clinics.fairview.address"),hours:t("testBooking.clinics.fairview.hours")},{id:"ivet",name:t("testBooking.clinics.ivet.name"),phone:t("testBooking.clinics.ivet.phone"),address:t("testBooking.clinics.ivet.address"),hours:t("testBooking.clinics.ivet.hours")},{id:"parkIsland",name:t("testBooking.clinics.parkIsland.name"),phone:t("testBooking.clinics.parkIsland.phone"),address:t("testBooking.clinics.parkIsland.address"),hours:t("testBooking.clinics.parkIsland.hours")}],[t]),F=Q.find(s=>s.name===A);Le({title:t("testBooking.seoTitle"),description:t("testBooking.seoDescription"),keywords:t("testBooking.seoKeywords"),canonicalUrl:"https://petwellhk.com/test-booking",structuredData:{"@context":"https://schema.org","@type":"ItemList",name:t("testBooking.structuredDataName"),itemListElement:Z.map((s,r)=>({"@type":"ListItem",position:r+1,item:{"@type":"MedicalTest",name:s.name,description:s.description,usedToDiagnose:s.bestFor,relevantSpecialty:t("testBooking.structuredDataSpecialty"),offers:{"@type":"Offer",priceCurrency:_,price:s.price,availability:"https://schema.org/InStock"}}}))},faqItems:[{question:t("testBooking.faq.q1"),answer:t("testBooking.faq.a1")},{question:t("testBooking.faq.q2"),answer:t("testBooking.faq.a2")},{question:t("testBooking.faq.q3"),answer:t("testBooking.faq.a3")}]});const ge=async s=>{const r=B.trim().toLowerCase(),h=k.trim(),u=c.trim(),n=P.trim(),m=l===!0&&!!(o!=null&&o.email),N=S.trim(),z=A.trim(),$=t("testBooking.form.bookingTimeContactRecord");
48if(!h||!u||!r||!n||!N||!z){d({title:t("testBooking.toast.missingFieldsTitle"),description:t("testBooking.toast.missingFieldsDesc"),variant:"destructive"});return}V(s.id);try{const w=await Qe({userEmail:m?o.email:r,amount:s.price,currency:_,productCode:s.id,productName:s.name,shopperEmail:r,shopperFirstName:h,shopperLastName:u,shopperPhoneNumber:n,petName:N,bookingClinic:z,bookingTime:$,notes:G.trim(),returnUrl:`${window.location.origin}/test-booking?status=paid`,usePublicAuth:!m});R(!1),window.location.assign(w.url)}catch(w){d({title:t("testBooking.toast.paymentFailedTitle"),description:w instanceof Error?w.message:t("testBooking.toast.paymentFailedDesc"),variant:"destructive"})}finally{V(null)}},pe=s=>{ce(s),R(!0)},W=()=>{if(!O.current)return;const s=O.current.getBoundingClientRect().top+window.scrollY-96;window.scrollTo({top:s,behavior:"smooth"})},he=s=>{E||R(s)},v=s=>{if(window.innerWidth>=768)return;const r=s.currentTarget;window.setTimeout(()=>{r.scrollIntoView({behavior:"smooth",block:"center"})},220)};return e.jsxs("div",{className:"min-h-screen bg-gradient-to-b from-orange-50/40 via-background to-background",children:[e.jsx(xe,{}),e.jsxs("main",{className:"container mx-auto max-w-6xl px-4 py-5 md:py-12",children:[e.jsxs("section",{className:"relative overflow-hidden rounded-3xl border border-orange-200/70 bg-background shadow-lg animate-in fade-in-50 slide-in-from-bottom-3 duration-700 md:rounded-[2rem]",children:[e.jsx("div",{className:"absolute right-0 top-0 h-44 w-44 rounded-full bg-orange-200/30 blur-3xl animate-in fade-in-0 zoom-in-95 duration-1000 md:h-72 md:w-72"}),e.jsx("div",{className:"absolute bottom-0 left-1/3 h-40 w-40 rounded-full bg-amber-100/50 blur-3xl animate-in fade-in-0 zoom-in-95 duration-1000 delay-150 md:h-56 md:w-56"}),e.jsxs("div",{className:"relative grid gap-5 p-5 md:grid-cols-[1.2fr_0.8fr] md:gap-8 md:p-10",children:[e.jsxs("div",{className:"animate-in fade-in-50 slide-in-from-left-4 duration-700",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 rounded-full border border-primary/20 bg-primary/5 px-3 py-1 text-[11px] font-semibold uppercase tracking-[0.16em] text-primary md:text-xs md:tracking-[0.2em]",children:[e.jsx(Oe,{className:"h-4 w-4"}),t("testBooking.badge")]}),e.jsx("h1",{className:"mt-4 max-w-3xl text-3xl font-bold tracking-tight text-foreground md:mt-5 md:text-6xl",children:t("testBooking.title")}),e.jsx("p",{className:"mt-4 max-w-2xl overflow-hidden text-sm leading-6 text-muted-foreground [display:-webkit-box] [-webkit-box-orient:vertical] [-webkit-line-clamp:3] md:mt-5 md:block md:text-lg md:leading-7",children:t("testBooking.subtitle")}),e.jsx("div",{className:"mt-4 grid grid-cols-3 gap-2 rounded-2xl border border-orange-100 bg-orange-50/60 p-3 md:hidden",children:[{label:t("testBooking.stats.allergens"),value:"125"},{label:t("testBooking.stats.sample"),value:"50 μL"},{label:t("testBooking.stats.rast"),value:"0-3"}].map(s=>e.jsxs("div",{className:"text-center",children:[e.jsx("div",{className:"text-lg font-black text-orange-600",children:s.value}),e.jsx("div",{className:"mt-0.5 text-[10px] font-medium leading-tight text-muted-foreground",children:s.label})]},s.label))}),e.jsx("div",{className:"mt-4 flex flex-wrap gap-2 md:mt-6",children:[t("testBooking.heroKeywords.igeAllergy"),t("testBooking.heroKeywords.pcrPathogen"),t("testBooking.heroKeywords.rastClass"),t("testBooking.heroKeywords.serumSample"),t("testBooking.heroKeywords.veterinaryDiagnostics")].map((s,r)=>e.jsx(y,{variant:"secondary",className:`rounded-full px-3 py-1 text-[11px] md:text-xs ${r>2?"hidden sm:inline-flex":""}`,children:s},s))}),e.jsxs("div",{className:"mt-5 flex flex-col gap-3 sm:flex-row md:mt-8",children:[e.jsx(D,{size:"lg",onClick:W,className:"border-2 border-orange-500 bg-orange-500 text-white shadow-sm hover:bg-orange-600",children:t("testBooking.heroPrimaryCta")}),e.jsx(D,{size:"lg",onClick:W,className:"border-2 border-orange-500 bg-orange-500 text-white shadow-sm hover:bg-orange-600",children:t("testBooking.heroSecondaryCta")})]})]}),e.jsxs(I,{className:"relative hidden overflow-hidden border-orange-300/80 bg-gradient-to-br from-orange-200/80 via-orange-100/60 to-amber-50 text-foreground shadow-xl animate-in fade-in-50 slide-in-from-right-4 duration-700 delay-150 md:block",children:[e.jsx("div",{className:"absolute bottom-0 left-6 right-6 h-1 rounded-t-full bg-orange-400"}),e.jsxs(M,{className:"p-6",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"rounded-2xl border border-orange-200 bg-white/70 p-3 shadow-sm",children:e.jsx(H,{className:"h-6 w-6 text-orange-600"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium text-orange-700",children:t("testBooking.labCardLabel")}),e.jsx("h2",{className:"text-xl font-semibold text-foreground",children:t("testBooking.labCardTitle")})]})]}),e.jsx("div",{className:"my-5 h-px bg-gradient-to-r from-transparent via-orange-300 to-transparent"}),e.jsx("div",{className:"grid gap-3",children:[{label:t("testBooking.stats.allergens"),value:"125"},{label:t("testBooking.stats.pcrTargets"),value:"100+"},{label:t("testBooking.stats.sample"),value:"50 μL"},{label:t("testBooking.stats.rast"),value:"0-3"}].map(s=>e.jsxs("div",{className:"flex items-center justify-between rounded-2xl border border-orange-200/80 bg-white/80 px-4 py-3 shadow-sm",children:[e.jsx("span",{className:"text-sm font-medium text-muted-foreground",children:s.label}),e.jsx("span",{className:"text-2xl font-bold text-orange-600",children:s.value})]},s.label))}),e.jsx("div",{className:"my-5 h-px bg-gradient-to-r from-transparent via-orange-300 to-transparent"}),e.jsxs("div",{className:"rounded-2xl border border-orange-200 bg-orange-50/80 p-4 text-sm leading-6 text-muted-foreground shadow-sm",children:[e.jsx(_e,{className:"mb-2 h-5 w-5 text-orange-600"}),t("testBooking.labCardDesc")]})]})]})]})]}),e.jsx("section",{className:"mt-8 hidden gap-4 md:grid md:grid-cols-4",children:[{icon:H,title:t("testBooking.valueProps.quantitativeTitle"),desc:t("testBooking.valueProps.quantitativeDesc")}
48,{icon:Ae,title:t("testBooking.valueProps.clinicalTitle"),desc:t("testBooking.valueProps.clinicalDesc")},{icon:Re,title:t("testBooking.valueProps.reportTitle"),desc:t("testBooking.valueProps.reportDesc")},{icon:U,title:t("testBooking.valueProps.workflowTitle"),desc:t("testBooking.valueProps.workflowDesc")}].map(s=>e.jsx(I,{className:"border-primary/10 animate-in fade-in-50 slide-in-from-bottom-3 duration-700",children:e.jsxs(M,{className:"p-5",children:[e.jsx(s.icon,{className:"h-6 w-6 text-primary"}),e.jsx("h3",{className:"mt-4 font-semibold",children:s.title}),e.jsx("p",{className:"mt-2 text-sm leading-6 text-muted-foreground",children:s.desc})]})},s.title))}),e.jsx("section",{ref:O,className:"mt-6 scroll-mt-20 animate-in fade-in-50 slide-in-from-bottom-3 duration-700 delay-100 md:mt-10 md:scroll-mt-24",children:e.jsxs("div",{className:"max-w-3xl",children:[e.jsx(y,{variant:"outline",className:"mb-3",children:t("testBooking.productSectionBadge")}),e.jsx("h2",{className:"text-2xl font-bold tracking-tight md:text-4xl",children:t("testBooking.productSectionTitle")}),e.jsx("p",{className:"mt-3 hidden text-muted-foreground sm:block",children:t("testBooking.productSectionDesc")})]})}),e.jsx("section",{className:"mt-4 grid items-stretch gap-4 md:mt-6 md:grid-cols-2 md:gap-5",children:Z.map(s=>{const r=E===s.id,h=s.id==="pcr-100-plus",u=s.price/(1-re),n=u-s.price;return e.jsxs(I,{className:"group flex h-full flex-col overflow-hidden border-orange-200/70 shadow-sm transition hover:-translate-y-1 hover:shadow-lg animate-in fade-in-50 slide-in-from-bottom-4 duration-700",children:[e.jsx(se,{className:"border-b bg-gradient-to-br from-primary/10 to-transparent p-4 md:p-6",children:e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{children:[e.jsx(y,{className:"mb-2 rounded-full md:mb-3",children:s.shortName}),e.jsx(oe,{className:"text-xl leading-tight md:text-2xl",children:s.name})]}),e.jsx("div",{className:"rounded-2xl bg-background p-2 shadow-sm md:p-3",children:s.id==="allergen-ige-125"?e.jsx(ue,{className:"h-6 w-6 text-primary"}):e.jsx(H,{className:"h-6 w-6 text-primary"})})]})}),e.jsxs(M,{className:"flex flex-1 flex-col p-4 md:p-6",children:[e.jsx("p",{className:"overflow-hidden text-sm leading-6 text-muted-foreground [display:-webkit-box] [-webkit-box-orient:vertical] [-webkit-line-clamp:2] md:block",children:s.description}),e.jsxs("div",{className:"mt-5 hidden gap-3 rounded-2xl border bg-muted/30 p-4 text-sm sm:grid",children:[e.jsxs("div",{className:"flex justify-between gap-4",children:[e.jsx("span",{className:"text-muted-foreground",children:t("testBooking.productMeta.bestFor")}),e.jsx("span",{className:"text-right font-medium",children:s.bestFor})]}),e.jsxs("div",{className:"flex justify-between gap-4",children:[e.jsx("span",{className:"text-muted-foreground",children:t("testBooking.productMeta.method")}),e.jsx("span",{className:"text-right font-medium",children:s.method})]}),e.jsxs("div",{className:"flex justify-between gap-4",children:[e.jsx("span",{className:"text-muted-foreground",children:t("testBooking.productMeta.sample")}),e.jsx("span",{className:"text-right font-medium",children:s.sample})]}),e.jsxs("div",{className:"flex justify-between gap-4",children:[e.jsx("span",{className:"text-muted-foreground",children:t("testBooking.productMeta.turnaround")}),e.jsx("span",{className:"text-right font-medium",children:s.turnaround})]})]}),e.jsx("ul",{className:"mt-4 space-y-2 text-sm md:mt-5 md:space-y-3",children:s.highlights.map((m,N)=>e.jsxs("li",{className:`items-start gap-2 ${N>1?"hidden sm:flex":"flex"}`,children:[e.jsx(ze,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-emerald-600"}),e.jsx("span",{children:m})]},m))}),e.jsx("div",{className:"mt-5 hidden flex-wrap gap-2 sm:flex",children:s.clinicalKeywords.map(m=>e.jsx(y,{variant:"outline",className:"rounded-full",children:m},m))}),e.jsxs("div",{className:"mt-auto pt-4 md:pt-6",children:[h?e.jsxs("div",{className:"relative overflow-hidden rounded-2xl border border-slate-200 bg-slate-50 p-4 shadow-sm md:rounded-3xl",children:[e.jsx("div",{className:"absolute -right-10 -top-10 h-24 w-24 rounded-full bg-slate-200/70"}),e.jsx(y,{variant:"outline",className:"relative border-slate-300 bg-white text-slate-700",children:t("testBooking.comingSoon.badge")}),e.jsx("h3",{className:"relative mt-3 text-lg font-bold text-slate-900",children:t("testBooking.comingSoon.title")}),e.jsx("p",{className:"relative mt-2 text-sm leading-6 text-slate-600",children:t("testBooking.comingSoon.desc")})]}):e.jsxs("div",{className:"relative overflow-hidden rounded-2xl border border-amber-200/90 bg-stone-50 shadow-sm md:rounded-3xl",children:[e.jsx("div",{className:"absolute -right-10 -top-10 h-24 w-24 rounded-full bg-amber-100/80"}),e.jsxs("div",{className:"relative flex items-center justify-between border-b border-amber-200 bg-gradient-to-r from-stone-100 via-amber-50 to-orange-50 px-3 py-2.5 md:px-4 md:py-3",children:[e.jsxs("div",{children:[e.jsx("span",{className:"text-[11px] font-semibold uppercase tracking-[0.22em] text-amber-800",children:t("testBooking.offer.label")}),e.jsx("p",{className:"mt-0.5 text-sm font-bold text-stone-900",children:t("testBooking.offer.title")})]}),e.jsxs("div",{className:"rounded-2xl border border-amber-200 bg-white px-3 py-2 text-center text-amber-700 shadow-sm",children:[e.jsxs("span",{className:"block text-xl font-black leading-none",children:[Math.round(re*100),"%"]}),e.jsx("span",{className:"block text-[10px] font-bold uppercase leading-none",children:t("testBooking.offer.off")})]})]}),e.jsxs("div",{className:"relative grid grid-cols-[1fr_auto] items-end gap-3 px-3 py-3 md:px-4 md:py-4",children:[e.jsxs("div",{className:"flex flex-col",children:[e.jsx("span",{className:"text-xs font-semibold uppercase tracking-wide text-amber-800",children:t("testBooking.offer.originalPrice")}),e.jsxs("span",{className:"mt-1 text-sm text-muted-foreground line-through md:text-base",children:[_," ",u.toFixed(1)]})]}),e.jsxs("div",{className:"text-right",children:[e.jsx("span",{className:"text-xs font-semibold uppercase tracking-wide text-amber-800",children:t("testBooking.offer.todayPrice")}),e.jsxs("p",{className:"mt-1 text-2xl font-black leading-none text-stone-900 md:text-3xl",children:[_," ",s.price.toFixed(1)]})]})]}),e.jsx("div",{className:"border-t border-amber-200 bg-white/70 px-4 py-2.5",children:e.jsx("p",{className:"text-sm font-bold text-emerald-700",children:t("testBooking.offer.savings",{currency:_,amount:n.toFixed(1)})})})]}),e.jsx(D,{size:"lg",className:"mt-3 w-full bg-orange-500 text-white shadow-md hover:bg-orange-600 disabled:bg-slate-200 disabled:text-slate-500 disabled:shadow-none md:mt-4",onClick:()=>pe(s),disabled:h||!!E,children:h?t("testBooking.comingSoon.button"):r?e.jsxs(e.Fragment,{children:[e.jsx(ae,{className:"mr-2 h-4 w-4 animate-spin"}),t("testBooking.processing")]}):t("testBooking.buyNow")})]})]})]},s.id)})}),e.jsxs("section",{className:"mt-12 hidden gap-6 md:grid lg:grid-cols-[0.9fr_1.1fr]",children:[e.jsxs(I,{className:"border-primary/10",children:[e.jsxs(se,{children:[e.jsx(y,{variant:"outline",className:"w-fit",children:t("testBooking.methodology.badge")}),e.jsx(oe,{className:"text-2xl",children:t("testBooking.methodology.title")})]}),e.jsxs(M,{className:"space-y-4 text-sm leading-7 text-muted-foreground",children:[e.jsx("p",{children:t("testBooking.methodology.desc1")}),e.jsx("p",{children:t("testBooking.methodology.desc2")}),e.jsx("div",{className:"rounded-2xl bg-amber-50 p-4 text-amber-900",children:t(We)})]})]}),e.jsx("div",{className:"grid gap-4 sm:grid-cols-2",children:[{step:"01",title:t("testBooking.workflow.step1Title"),desc:t("testBooking.workflow.step1Desc")},{step:"02",title:t("testBooking.workflow.step2Title"),desc:t("testBooking.workflow.step2Desc")},{step:"03",title:t("testBooking.workflow.step3Title"),desc:t("testBooking.workflow.step3Desc")},{step:"04",title:t("testBooking.workflow.step4Title"),desc:t("testBooking.workflow.step4Desc")}].map(s=>e.jsx(I,{className:"border-primary/10",children:e.jsxs(M,{className:"p-5",children:[e.jsx("span",{className:"text-sm font-bold text-primary",children:s.step}),e.jsx("h3",{className:"mt-2 font-semibold",children:s.title}),e.jsx("p",{className:"mt-2 text-sm leading-6 text-muted-foreground",children:s.desc})]})},s.step))})]})]}),e.jsx(ve,{open:me,onOpenChange:he,children:e.jsxs(we,{className:"top-[max(0.75rem,env(safe-area-inset-top))] max-h-[calc(100dvh-1.5rem)] translate-y-0 overflow-y-auto pb-4 sm:top-[50%] sm:max-h-[85vh] sm:max-w-xl sm:-translate-y-1/2",children:[e.jsxs(ye,{children:[e.jsx(Ce,{children:t("testBooking.checkoutModalTitle")}),e.jsx(Pe,{children:b?t("testBooking.checkoutModalDesc",{productName:b.name}):t("testBooking.buyerInfoDesc")})]}),l===!1?e.jsxs("div",{className:"mt-1 flex flex-col gap-3 rounded-xl border border-primary/20 bg-primary/5 p-3 sm:flex-row sm:items-center sm:justify-between",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium text-foreground",children:t("testBooking.authChoiceTitle")}),e.jsx("p",{className:"text-xs text-muted-foreground",children:t("testBooking.authChoiceDesc")})]}),e.jsx(D,{type:"button",variant:"outline",onClick:()=>C("LANDING"),children:t("testBooking.loginToContinue")})]}):null,e.jsxs("div",{className:"grid gap-4 pt-1 md:grid-cols-2",children:[e.jsxs("div",{children:[e.jsx(j,{htmlFor:"modal-shopper-first-name",children:t("testBooking.form.firstName")}
48),e.jsx(L,{id:"modal-shopper-first-name",value:k,onChange:s=>f(s.target.value),onFocus:v,placeholder:t("testBooking.form.firstNamePlaceholder")})]}),e.jsxs("div",{children:[e.jsx(j,{htmlFor:"modal-shopper-last-name",children:t("testBooking.form.lastName")}),e.jsx(L,{id:"modal-shopper-last-name",value:c,onChange:s=>x(s.target.value),onFocus:v,placeholder:t("testBooking.form.lastNamePlaceholder")})]}),e.jsxs("div",{children:[e.jsx(j,{htmlFor:"modal-shopper-email",children:t("testBooking.form.email")}),e.jsx(L,{id:"modal-shopper-email",type:"email",value:B,onChange:s=>p(s.target.value),onFocus:v,placeholder:t("testBooking.form.emailPlaceholder")})]}),e.jsxs("div",{children:[e.jsx(j,{htmlFor:"modal-shopper-phone",children:t("testBooking.form.phone")}),e.jsx(L,{id:"modal-shopper-phone",type:"tel",inputMode:"numeric",value:P,onChange:s=>T(s.target.value),onFocus:v,placeholder:t("testBooking.form.phonePlaceholder"),required:!0})]}),e.jsxs("div",{children:[e.jsx(j,{htmlFor:"modal-pet-name",children:t("testBooking.form.petName")}),e.jsx(L,{id:"modal-pet-name",value:S,onChange:s=>ne(s.target.value),onFocus:v,placeholder:t("testBooking.form.petNamePlaceholder")})]}),e.jsxs("div",{className:"md:col-span-2",children:[e.jsx(j,{htmlFor:"modal-booking-clinic",children:t("testBooking.form.bookingClinic")}),e.jsxs(Se,{value:A,onValueChange:le,children:[e.jsx(Ee,{id:"modal-booking-clinic",className:"mt-1",children:e.jsx(Fe,{placeholder:t("testBooking.form.bookingClinicPlaceholder")})}),e.jsx(Ie,{children:Q.map(s=>e.jsx(Me,{value:s.name,children:s.name},s.id))})]}),F?e.jsx("div",{className:"mt-3 rounded-2xl border border-orange-100 bg-orange-50/60 p-4 text-sm",children:e.jsxs("div",{className:"grid gap-3",children:[e.jsxs("a",{href:`tel:${F.phone.replace(/\s+/g,"")}`,className:"flex items-start gap-3 text-foreground transition hover:text-orange-700",children:[e.jsx(qe,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-orange-600"}),e.jsxs("span",{children:[e.jsx("span",{className:"block text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:t("testBooking.clinicInfo.phone")}),F.phone]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(ke,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-orange-600"}),e.jsxs("span",{children:[e.jsx("span",{className:"block text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:t("testBooking.clinicInfo.address")}),F.address]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(U,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-orange-600"}),e.jsxs("span",{children:[e.jsx("span",{className:"block text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:t("testBooking.clinicInfo.hours")}),F.hours]})]})]})}):null,e.jsxs("div",{className:"mt-3 rounded-2xl border border-amber-200 bg-amber-50/80 p-4 text-sm leading-6 text-amber-900",children:[e.jsx(U,{className:"mb-2 h-4 w-4 text-amber-700"}),t("testBooking.form.bookingTimeContactPrompt")]})]}),e.jsxs("div",{className:"md:col-span-2",children:[e.jsx(j,{htmlFor:"modal-notes",children:t("testBooking.form.notes")}),e.jsx(De,{id:"modal-notes",value:G,onChange:s=>de(s.target.value),onFocus:v,placeholder:t("testBooking.form.notesPlaceholder")})]})]}),e.jsx(D,{className:"mt-2 w-full",onClick:()=>{b&&ge(b)},disabled:!b||!!E,children:b&&E===b.id?e.jsxs(e.Fragment,{children:[e.jsx(ae,{className:"mr-2 h-4 w-4 animate-spin"}),t("testBooking.processing")]}):t("testBooking.buyNow")})]})}),e.jsx(fe,{})]})};export{Nt 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.