1import{p as U,r as c,j as e,L as S}from"./react-vendor-BDHNqS4B.js";import{b as v,e as z}from"./Header-BkbupWq-.js";import{F as w,M as E,I as W,a as K,P as G}from"./Footer-CtylQEAH.js";import{c as Q,u as Y,n as q,B as T}from"./main-m_sUF2N4.js";import{B as j}from"./badge-BYBBu8xB.js";import{C as J,a as X,b as Z}from"./collapsible-XeBmzMPY.js";import{c as ee,t as se,d as ae,f as te,g as P,e as re,b as le}from"./useHomeVisitProviders-BVHuzPdz.js";import{u as ie}from"./useSEO-CoArDrdl.js";import{C as ne}from"./ClinicImage-CFSfW4FY.js";import{A as oe}from"./AppDownloadCTA-DAEixTy3.js";import{D as me}from"./DiscoverPlaceTabs-DPoC_wAS.js";import{n as ce,g as de,l as xe,a as he}from"./availableHours-DsyGI15X.js";import{C as pe}from"./clock-CRHi7pcr.js";import{M as k}from"./message-circle-B5m25ymx.js";import{P as V}from"./phone-B2rvvDkK.js";import{G as ge}from"./type-CVgQCqWZ.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"./textarea-D7qsgB_p.js";import"./reportService-tEzofQZ6.js";import"./index-BZFL-brE.js";import"./distance-Bwcv1qLg.js";import"./hongKongDistricts--r8_jlh4.js";import"./skeleton-CDto_fTL.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 F=Q("CalendarCheck2",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M21 14V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8",key:"bce9hv"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"m16 20 2 2 4-4",key:"13tcca"}]]),O=["mon","tue","wed","thu","fri","sat","sun"],ze=()=>{const{providerId:g}=U(),{i18n:u,t:a}=Y(),{data:f,isLoading:A,error:L}=ee(g),n=u.language==="en"?"en":"zh",[N,R]=c.useState(!1),[_,C]=c.useState(!1),s=c.useMemo(()=>f?se(f,u.language):null,[f,u.language]),d=c.useMemo(()=>ce(s==null?void 0:s.availableHours),[s==null?void 0:s.availableHours]),I=de(s==null?void 0:s.availableHours,s==null?void 0:s.is247,a),b=xe(I||(s==null?void 0:s.hoursSummary)||null,u.language)||null,y=c.useMemo(()=>O.some(t=>{var i;return(((i=d==null?void 0:d[t])==null?void 0:i.length)??0)>0}),[d]),o=ae(s==null?void 0:s.whatsapp),r=s==null?void 0:s.serviceCoverage,H=c.useMemo(()=>{if(!s)return[];const t=new Map;for(const i of s.services){const l=i.category||"other",m=t.get(l)||[];m.push(i),t.set(l,m)}return Array.from(t.entries())},[s]),B=c.useMemo(()=>{if(s)return{"@context":"https://schema.org","@type":"LocalBusiness",name:s.name,description:s.description||s.coverageSummary,telephone:s.phone||void 0,email:s.email||void 0,url:`https://petwellhk.com/home-visits/${g}`,image:s.image||void 0,areaServed:s.coverageSummary,...s.rating>0&&{aggregateRating:{"@type":"AggregateRating",ratingValue:s.rating,bestRating:5,reviewCount:s.totalReviews||0}}}},[s,g]);if(ie({title:s?`${s.name}ï½é¦æ¸¯å¯µç©ä¸éæåï½PetWell HK`:"寵ç©ä¸éæå詳æ ï½PetWell HK",description:s?`${s.name}æä¾å¯µç©ä¸éæåãæåç¯åï¼${s.coverageSummary}ã${s.description?s.description.slice(0,80):"WhatsAppï¼é»è©±æ¥è©¢é ç´ã"}`:"æ¥ç馿¸¯å¯µç©ä¸éæåè©³ç´°è³æãæåç¯ååè¯çµ¡æ¹å¼",keywords:s?`${s.name},寵ç©ä¸é,${s.district||"馿¸¯"}ä¸éç¸é«,home visit`:"寵ç©ä¸éæå,馿¸¯ä¸éç¸é«",canonicalUrl:`https://petwellhk.com/home-visits/${g}`,ogImage:s==null?void 0:s.image,structuredData:B}),A)return e.jsxs("div",{className:"flex min-h-screen flex-col",children:[e.jsx(v,{}),e.jsx("main",{className:"flex flex-1 items-center justify-center py-16 md:py-20",children:e.jsx(q,{className:"h-8 w-8 animate-spin text-primary"})}),e.jsx(w,{})]});if(L||!s||!f)return e.jsxs("div",{className:"flex min-h-screen flex-col",children:[e.jsx(v,{}),e.jsx("main",{className:"flex-1 py-12 md:py-16",children:e.jsxs("div",{className:"container mx-auto max-w-3xl px-4 text-center",children:[e.jsx("h1",{className:"mb-4 text-3xl font-bold",children:a("homeVisitPlaces.detail.notFound")}),e.jsx(S,{to:"/home-visits",children:e.jsx(T,{children:a("homeVisitPlaces.backToList")})})]})}),e.jsx(w,{})]});const D=s.gallery.length>0?s.gallery:s.image?[s.image]:[];return e.jsxs("div",{className:"flex min-h-screen flex-col pb-20 lg:pb-0",children:[e.jsx(v,{}),e.jsx("main",{className:"flex-1",children:e.jsxs("div",{className:"container mx-auto max-w-5xl px-4 py-6 md:py-10",children:[e.jsx(me,{className:"mb-6"}),e.jsxs("div",{className:"overflow-hidden rounded-2xl border border-border bg-card",children:[e.jsx("div",{className:"relative aspect-[16/9] md:aspect-[21/9]",children:e.jsx(ne,{imageKey:D[0]||s.image,alt:s.name,className:"h-full w-full"})}),e.jsxs("div",{className:"space-y-4 p-5 md:p-7",children:[e.jsxs("div",{children:[e.jsx("p",{className:"mb-2 text-xs font-medium uppercase tracking-wide text-muted-foreground",children:a("homeVisitPlaces.pageTitle")}),s.is247?e.jsx("div",{className:"mb-3 flex flex-wrap items-center gap-2",children:e.jsxs(j,{variant:"outline",className:"gap-1",children:[e.jsx(pe,{className:"h-3 w-3"}),a("homeVisitPlaces.filter24Hour")]})}):null,e.jsx("h1",{className:"text-2xl font-bold tracking-tight md:text-3xl",children:s.name}),s.rating>0&&e.jsxs("p",{className:"mt-2 text-sm text-muted-foreground",children:["â ",s.rating.toFixed(1),s.totalReviews>0?` · ${a("homeVisitPlaces.detail.reviews",{count:s.totalReviews})}`:""]})]}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[o&&e.jsxs("a",{href:o,target:"_blank",rel:"noreferrer",className:"inline-flex items-center gap-2 rounded-lg bg-primary px-4 py-2.5 text-sm font-semibold text-primary-foreground",children:[e.jsx(k,{className:"h-4 w-4"}),a("homeVisitPlaces.detail.whatsapp")]}),s.phone&&e.jsxs("a",{href:`tel:${s.phone}`,className:"inline-flex items-center gap-2 rounded-lg border border-border px-4 py-2.5 text-sm font-semibold",children:[e.jsx(V,{className:"h-4 w-4"}),a("homeVisitPlaces.detail.call")]}),s.bookingUrl&&e.jsxs("a",{href:s.bookingUrl,target:"_blank",rel:"noreferrer",className:"inline-flex items-center gap-2 rounded-lg border border-border px-4 py-2.5 text-sm font-semibold",children:[e.jsx(F,{className:"h-4 w-4"}),a("homeVisitPlaces.detail.bookOnline")]})]})]})]}),e.jsxs("div",{className:"mt-8 grid gap-6 lg:grid-cols-[minmax(0,1fr)_280px]",children:[e.jsxs("div",{className:"space-y-6",children:[e.jsxs("section",{className:"rounded-xl border border-border p-5",children:[e.jsxs("h2",{className:"mb-3 flex items-center gap-2 text-lg font-semibold",children:[e.jsx(E,{className:"h-4 w-4 text-primary"}),a("homeVisitPlaces.detail.coverage")]}),e.jsx("p",{className:"text-base font-medium",children:te(r,n,s.district)}),(r==null?void 0:r.districts)&&r.districts.length>0&&e.jsx("div",{className:"mt-3 flex flex-wrap gap-2",children:r.districts.map(t=>e.jsx(j,{variant:"outline",children:t},t))}),(r==null?void 0:r.notes)&&e.jsx("p",{className:"mt-3 text-sm text-muted-foreground",children:r.notes}),(r==null?void 0:r.travelFeeNote)&&e.jsxs("p",{className:"mt-2 text-sm text-muted-foreground",children:[a("homeVisitPlaces.detail.travelFee"),": ",r.travelFeeNote]}),s.address?e.jsxs("p",{className:"mt-4 text-sm text-muted-foreground",children:[a("homeVisitPlaces.address"),": ",s.address]}):null]}),s.description?e.jsxs("section",{className:"rounded-xl border border-border p-5",children:[e.jsx("h2",{className:"mb-3 text-lg font-semibold",children:a("homeVisitPlaces.detail.about")}),e.jsx("p",{className:"whitespace-pre-wrap text-sm leading-relaxed text-muted-foreground",children:s.description})]}):null,H.length>0?e.jsxs("section",{className:"rounded-xl border border-border p-5",children:[e.jsx("h2",{className:"text-lg font-semibold",children:a("homeVisitPlaces.detail.services")}),e.jsx("p",{className:"mt-1 mb-4 text-sm leading-relaxed text-muted-foreground",children:a("homeVisitPlaces.detail.referenceDisclaimer")}),e.jsx("div",{className:"space-y-5",children:H.map(([t,i])=>e.jsxs("div",{children:[e.jsx("h3",{className:"mb-2 text-sm font-semibold text-foreground",children:P(t,n)}),e.jsx("ul",{className:"space-y-2",children:i.map((l,m)=>{var h,p,$,M;const x=(n==="en"?((h=l.name)==null?void 0:h.en)||((p=l.name)==null?void 0:p.zh):(($=l.name)==null?void 0:$.zh)||((M=l.name)==null?void 0:M.en))||P(l.category,n);return e.jsxs("li",{className:"rounded-lg bg-muted/40 px-3 py-2 text-sm",children:[e.jsx("div",{className:"font-medium",children:x}),l.description?e.jsx("p",{className:"mt-1 text-muted-foreground",children:l.description}):null]},`${t}-${m}-${x}`)})})]},t))})]}):s.serviceOfferings.length>0?e.jsxs("section",{className:"rounded-xl border border-border p-5",children:[e.jsx("h2",{className:"text-lg font-semibold",children:a("homeVisitPlaces.detail.services")}),e.jsx("p",{className:"mt-1 mb-3 text-sm leading-relaxed text-muted-foreground",children:a("homeVisitPlaces.detail.referenceDisclaimer")}),e.jsx("div",{className:"flex flex-wrap gap-2",children:s.serviceOfferings.map(t=>e.jsx(j,{variant:"outline",children:t},t))})]}):null,e.jsxs("section",{className:"rounded-xl border border-border p-5",children:[e.jsx("h2",{className:"text-lg font-semibold",children:a("homeVisitPlaces.detail.pricing")}),e.jsx("p",{className:"mt-1 mb-3 text-sm leading-relaxed text-muted-foreground",children:a("homeVisitPlaces.detail.referenceDisclaimer")}),s.pricing.length>0?e.jsx("ul",{className:"divide-y divide-border",children:s.pricing.map((t,i)=>{var h,p;const l=((h=t.rawText)==null?void 0:h.trim())||re(t.currency,t.amountMin,t.amountMax,n)||null,m=[P(t.serviceCategory,n),t.includesTravel?a("homeVisitPlaces.detail.includesTravel"):""].filter(
6Boolean).join(" · "),x=(p=t.notes)!=null&&p.trim()&&t.notes.trim()!==l?t.notes.trim():null;return e.jsxs("li",{className:"space-y-1 py-3 first:pt-0 last:pb-0",children:[e.jsxs("div",{className:"flex flex-col gap-1 sm:flex-row sm:items-start sm:justify-between sm:gap-4",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("p",{className:"font-medium leading-snug",children:t.label}),m?e.jsx("p",{className:"mt-0.5 text-xs text-muted-foreground",children:m}):null]}),l?e.jsx("p",{className:"text-sm font-semibold leading-relaxed break-words text-primary sm:max-w-[45%] sm:text-right",children:l}):null]}),x?e.jsx("p",{className:"text-sm leading-relaxed break-words text-muted-foreground",children:x}):null]},`${t.label}-${i}`)})}):e.jsx("p",{className:"text-sm text-muted-foreground",children:a("homeVisitPlaces.detail.pricingEmpty")})]}),(s.speciesServed.length>0||b||y)&&e.jsxs("section",{className:"rounded-xl border border-border p-5",children:[s.speciesServed.length>0&&e.jsxs("div",{className:"mb-5",children:[e.jsx("h2",{className:"mb-3 text-lg font-semibold",children:a("homeVisitPlaces.detail.species")}),e.jsx("div",{className:"flex flex-wrap gap-2",children:s.speciesServed.map(t=>e.jsx(j,{variant:"secondary",children:le(t,n)},t))})]}),(b||y)&&e.jsxs("div",{children:[e.jsx("h2",{className:"mb-3 text-lg font-semibold",children:a("homeVisitPlaces.openingHours")}),b&&e.jsx("p",{className:"text-sm text-muted-foreground",children:b}),y&&e.jsxs(J,{open:N,onOpenChange:R,children:[e.jsxs(X,{className:"mt-3 inline-flex items-center gap-1 text-sm font-medium text-primary",children:[a(N?"homeVisitPlaces.detail.hideFullHours":"homeVisitPlaces.detail.viewFullHours"),e.jsx(z,{className:`h-4 w-4 transition-transform ${N?"rotate-180":""}`})]}),e.jsx(Z,{className:"mt-3 space-y-1.5 text-sm text-muted-foreground",children:O.map(t=>e.jsxs("div",{className:"flex justify-between gap-4",children:[e.jsx("span",{children:a(`hours.${t}`)}),e.jsx("span",{children:he(d,t)||a("homeVisitPlaces.closed")})]},t))})]})]})]})]}),e.jsxs("aside",{className:"space-y-4",children:[e.jsxs("div",{className:"rounded-xl border border-border p-4",children:[e.jsx("h2",{className:"mb-3 text-sm font-semibold",children:a("homeVisitPlaces.detail.contact")}),e.jsxs("div",{className:"space-y-2",children:[o&&e.jsxs("a",{href:o,target:"_blank",rel:"noreferrer",className:"flex items-center gap-2 text-sm hover:text-primary",children:[e.jsx(k,{className:"h-4 w-4"}),a("homeVisitPlaces.detail.whatsapp")]}),s.phone&&e.jsxs("a",{href:`tel:${s.phone}`,className:"flex items-center gap-2 text-sm hover:text-primary",children:[e.jsx(V,{className:"h-4 w-4"}),s.phone]}),s.website&&e.jsxs("a",{href:s.website,target:"_blank",rel:"noreferrer",className:"flex items-center gap-2 text-sm hover:text-primary",children:[e.jsx(ge,{className:"h-4 w-4"}),a("homeVisitPlaces.website")]}),s.instagram&&e.jsxs("a",{href:s.instagram,target:"_blank",rel:"noreferrer",className:"flex items-center gap-2 text-sm hover:text-primary",children:[e.jsx(W,{className:"h-4 w-4"}),"Instagram"]}),s.facebook&&e.jsxs("a",{href:s.facebook,target:"_blank",rel:"noreferrer",className:"flex items-center gap-2 text-sm hover:text-primary",children:[e.jsx(K,{className:"h-4 w-4"}),"Facebook"]})]})]}),e.jsx(T,{type:"button",variant:"outline",className:"w-full",onClick:()=>C(!0),children:a("homeVisitPlaces.detail.report")}),e.jsx("div",{className:"rounded-xl border border-border p-4",children:e.jsx(oe,{title:a("homeVisitPlaces.ctaTitle")})}),e.jsxs(S,{to:"/home-visits",className:"inline-flex text-sm font-medium text-primary hover:underline",children:["â ",a("homeVisitPlaces.backToList")]})]})]})]})}),e.jsxs("div",{className:"fixed inset-x-0 bottom-0 z-40 flex gap-2 border-t border-border bg-background/95 p-3 backdrop-blur lg:hidden",role:"toolbar","aria-label":"Quick actions",children:[o&&e.jsxs("a",{href:o,target:"_blank",rel:"noreferrer",className:"inline-flex flex-1 items-center justify-center gap-2 rounded-lg bg-primary px-3 py-2.5 text-sm font-semibold text-primary-foreground",children:[e.jsx(k,{className:"h-4 w-4"}),a("homeVisitPlaces.detail.whatsapp")]}),s.phone&&e.jsxs("a",{href:`tel:${s.phone}`,className:"inline-flex flex-1 items-center justify-center gap-2 rounded-lg border border-border px-3 py-2.5 text-sm font-semibold",children:[e.jsx(V,{className:"h-4 w-4"}),a("homeVisitPlaces.detail.call")]}),!o&&!s.phone&&s.bookingUrl&&e.jsxs("a",{href:s.bookingUrl,target:"_blank",rel:"noreferrer",className:"inline-flex flex-1 items-center justify-center gap-2 rounded-lg bg-primary px-3 py-2.5 text-sm font-semibold text-primary-foreground",children:[e.jsx(F,{className:"h-4 w-4"}),a("homeVisitPlaces.detail.bookOnline")]})]}),e.jsx(w,{}),e.jsx(G,{open:_,onOpenChange:C,placeId:s.id,placeName:s.name,placeType:"homeVisit"})]})};export{ze 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.