1import{r as c,j as e,L as x}from"./react-vendor-BDHNqS4B.js";import{b as He,L as $e}from"./Header-BkbupWq-.js";import{F as Fe}from"./Footer-CtylQEAH.js";import{W as Ve}from"./WishlistHeartButton-XMsXQ-jB.js";import{L as _e,C as Ge,P as Oe}from"./CompareBar-D-l8D0iQ.js";import{c as F,a_ as Ue,a$ as qe,e as Ke,h as De,b,a3 as Ze,I as ee,X as ge,U as T,B,n as ye}from"./main-m_sUF2N4.js";import{C as se}from"./checkbox-BkyFxaQM.js";import{S as K,a as D,b as Z,c as Q,d as k}from"./select-fZgDq8v8.js";import{u as Qe}from"./useSEO-CoArDrdl.js";import{u as ve,g as N,T as Xe}from"./usePriceReviewProducts-BeYKlbKA.js";import{R as L,a as Je}from"./ReviewPriceDisplay-DfIoLGNY.js";import{P as ke}from"./ProductReviewRatingBadge-CyxkMrfM.js";import{s as g,b as fe,a as H,r as te,g as $}from"./priceReviewPricing-BlvAWvXm.js";import{S as Ye}from"./search-BSw3vufk.js";import{F as es}from"./flame-HVLv3H1b.js";import{C as re,A as Ce}from"./chevron-right-CpkQxGj-.js";import{S as w}from"./store-DWI30bPC.js";import{C as ss}from"./clock-CRHi7pcr.js";import{S as ts}from"./shield-check-we62WOC3.js";import{Z as je}from"./zap-CowlN_Ex.js";import{H as rs}from"./heart-DRwCktcb.js";import{S as as}from"./scale-B2l5za8q.js";import{B as is}from"./badge-check-CHAeghjg.js";import{G as ls}from"./grid-3x3-AJB6zdOl.js";import{S as ns}from"./sparkles-BcmYxR0H.js";import{C as os}from"./chevron-left-Jw0Ezjn9.js";import{U as cs}from"./utensils-DXFnnphK.js";import"./amplify-DYDcjoow.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"./phone-B2rvvDkK.js";import"./type-CVgQCqWZ.js";import"./index-CFf87M6S.js";import"./chevron-up-Cb9C18fB.js";import"./priceReviewApi-BFijUeFQ.js";import"./star-Dim9pf51.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 ds=F("Cookie",[["path",{d:"M12 2a10 10 0 1 0 10 10 4 4 0 0 1-5-5 4 4 0 0 1-5-5",key:"laymnq"}],["path",{d:"M8.5 8.5v.01",key:"ue8clq"}],["path",{d:"M16 15.5v.01",key:"14dtrp"}],["path",{d:"M12 12v.01",key:"u5ubse"}],["path",{d:"M11 17v.01",key:"1hyl5a"}],["path",{d:"M7 14v.01",key:"uct60s"}]]);/** 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 ms=F("Ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]]);/** 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 xs=F("LayoutGrid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]);/** 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 hs=F("Pill",[["path",{d:"m10.5 20.5 10-10a4.95 4.95 0 1 0-7-7l-10 10a4.95 4.95 0 1 0 7 7Z",key:"wa1lgi"}],["path",{d:"m8.5 8.5 7 7",key:"rvfmvr"}]]),X=[{id:"all",label:"å ¨é¨",icon:xs},{id:"food",label:"ç³§é£",icon:cs},{id:"medicine",label:"è¥å",icon:hs},{id:"treats",label:"é¶é£",icon:ds},{id:"supplies",label:"æ¥ç¨å",icon:Oe},{id:"unknown",label:"å ¶ä»",icon:ms}],ps=["Royal Canin","è²ç ","Hill's i/d","Orijen","Frontline"],us=[{label:"æ ¼å¹é¦é ",href:"#review-top",hash:!0},{label:"ç±éæ¯å¹",href:"#review-results",hash:!0},{label:"å¿æ°´æ¸ å®",href:"/wishlist",hash:!1},{label:"ç¢åæ¯è¼",href:"/compare",hash:!1},{label:"åºä¸»åä½",href:"/other-services",hash:!1}],we=[{id:"deals",title:"仿¥ææµ",sub:"æ ³æå¤",filter:"deals"},{id:"stores",title:"æå¤åºè",sub:"鏿å¤",filter:"stores"},{id:"food",title:"ç³§é£å°å",sub:"主糧ç½é ",filter:"food"},{id:"medicine",title:"è¥åå°å",sub:"é© è²è·ç",filter:"medicine"},{id:"treats",title:"é¶é£å°å",sub:"çåµå°é£",filter:"treats"},{id:"supplies",title:"ç¨åå°å",sub:"æ¥å¸¸è·ç",filter:"supplies"}],gs=[{value:"default",label:"æ¨è¦"},{value:"price-asc",label:"广 ¼ â"},{value:"price-desc",label:"广 ¼ â"},{value:"savings",label:"æ ³æå¤"},{value:"stores",label:"åºèæå¤"}],dt=()=>{var ue;const[r,a]=c.useState(""),[l,i]=c.useState("all"),[o,d]=c.useState("all"),[n,u]=c.useState("10"),[v,V]=c.useState(0),[ae,ie]=c.useState([void 0]),[h,C]=c.useState(null),[le,ne]=c.useState("æ ¼å¹é¦é "),[z,Pe]=c.useState("default"),[_,oe]=c.useState("grid"),{isSelected:E,toggle:A,ids:ce}=Ue(),{items:Se}=qe(),{isAuthenticated:de}=Ke(),{openPanel:Ie}=De();c.useEffect(()=>{V(0),ie([void 0])},[r,l,o,n,h]);const Re=c.useMemo(()=>({search:r.trim()||void 0,category:l==="all"?void 0:l,brand:o==="all"?void 0:o,limit:Number(n),cursor:ae[v]}
21),[r,l,o,n,ae,v]),{data:m,isLoading:Be,isError:Le,error:ze,isFetching:me}=ve(Re),Ee=(m==null?void 0:m.items)||[],P=(m==null?void 0:m.brands)||[],y=v>0,M=!!(m!=null&&m.nextCursor),{data:G}=ve({limit:48}),f=(G==null?void 0:G.items)||[],S=c.useMemo(()=>[...f].sort((s,t)=>g(t)-g(s)).slice(0,12),[f]),I=c.useMemo(()=>[...f].sort((s,t)=>t.storeCount-s.storeCount).slice(0,12),[f]),p=S[0]||I[0]||f[0],Ae=c.useMemo(()=>{switch(h){case"deals":return S;case"stores":return I;case"food":case"medicine":case"treats":case"supplies":return f.filter(s=>s.category===h);default:return f}},[h,S,I,f]),xe=h?Ae.slice(0,Number(n)):Ee,R=c.useMemo(()=>{const s=[...xe];switch(z){case"price-asc":return fe(s,"asc");case"price-desc":return fe(s,"desc");case"savings":return s.sort((t,j)=>g(j)-g(t));case"stores":return s.sort((t,j)=>j.storeCount-t.storeCount);case"default":return s;default:return z}},[xe,z]),he=c.useCallback(()=>{var s;m!=null&&m.nextCursor&&(ie(t=>{if(t[v+1]===m.nextCursor)return t;const j=t.slice(0,v+1);return j.push(m.nextCursor||void 0),j}),V(t=>t+1),(s=document.getElementById("review-results"))==null||s.scrollIntoView({behavior:"smooth",block:"start"}))},[m==null?void 0:m.nextCursor,v]),pe=c.useCallback(()=>{var s;y&&(V(t=>Math.max(0,t-1)),(s=document.getElementById("review-results"))==null||s.scrollIntoView({behavior:"smooth",block:"start"}))},[y]);Qe({title:"寵ç©ç¨åæ ¼å¹æ¯è¼ | PetWell Review",description:"æ¯è¼é¦æ¸¯å¯µç©ç³§é£ãè¥åãç¨åç坦广 ¼ï¼çæ¸
æ¥ééææµã",canonicalUrl:"https://petwellhk.com/review"});const O=l!=="all"||o!=="all"||!!r.trim()||!!h,Me=()=>{a(""),i("all"),d("all"),C(null)},U=s=>{var t;i(s),C(null),(t=document.getElementById("review-results"))==null||t.scrollIntoView({behavior:"smooth"})},q=s=>{var t;C(s),i(s==="food"||s==="medicine"||s==="treats"||s==="supplies"?s:"all"),d("all"),a(""),(t=document.getElementById("review-results"))==null||t.scrollIntoView({behavior:"smooth"})},Te=!O&&!r.trim(),We=P.length>0?`${P.length}+`:"20+";return e.jsxs("div",{className:b("review-page min-h-screen",ce.length&&"pb-20 md:pb-24"),children:[e.jsx(He,{}),e.jsx("section",{id:"review-top",className:"review-panel border-x-0 border-t-0 bg-white",children:e.jsxs("div",{className:"container mx-auto px-4 py-4 md:py-5",children:[e.jsxs("div",{className:"flex flex-col gap-4 lg:flex-row lg:items-center",children:[e.jsxs(x,{to:"/review",className:"flex shrink-0 items-center gap-2.5",children:[e.jsx("img",{src:Ze,alt:"PetWell",className:"h-9 w-9 object-contain md:h-10 md:w-10"}),e.jsxs("div",{children:[e.jsx("p",{className:"text-[15px] font-semibold leading-tight text-foreground md:text-base",children:"PetWell æ ¼å¹"}),e.jsx("p",{className:"text-[12px] text-muted-foreground",children:"馿¸¯å¯µç©ç¨åæ¯å¹"})]})]}),e.jsxs("div",{className:"min-w-0 flex-1 lg:max-w-2xl lg:mx-auto",children:[e.jsxs("div",{className:"review-search flex h-11 border-2 border-primary transition-shadow md:h-12",children:[e.jsxs("div",{className:"flex min-w-0 flex-1 items-center gap-2 bg-white px-3",children:[e.jsx(Ye,{className:"h-4 w-4 shrink-0 text-primary/70"}),e.jsx(ee,{value:r,onChange:s=>{a(s.target.value),C(null)},onKeyDown:s=>{var t;s.key==="Enter"&&((t=document.getElementById("review-results"))==null||t.scrollIntoView({behavior:"smooth"}))},placeholder:"æå°åçãç¢åå稱â¦",className:"h-full border-0 px-0 text-[14px] shadow-none focus-visible:ring-0 md:text-[15px]"}),r&&e.jsx("button",{type:"button",onClick:()=>a(""),"aria-label":"æ¸
餿å°",className:"rounded-sm p-0.5 text-muted-foreground hover:bg-muted hover:text-foreground",children:e.jsx(ge,{className:"h-4 w-4"})})]}),e.jsx("button",{type:"button",onClick:()=>{var s;return(s=document.getElementById("review-results"))==null?void 0:s.scrollIntoView({behavior:"smooth"})},className:"shrink-0 bg-primary px-5 text-[14px] font-semibold text-primary-foreground transition-colors hover:bg-primary-hover md:px-8",children:"æå°"})]}),e.jsxs("div",{className:"mt-2 flex flex-wrap items-center gap-x-2 gap-y-1 text-[12px]",children:[e.jsxs("span",{className:"inline-flex items-center gap-1 text-muted-foreground",children:[e.jsx(es,{className:"h-3 w-3 text-primary"})," ç±æ"]}
21),ps.map(s=>e.jsx("button",{type:"button",onClick:()=>{var t;a(s),C(null),(t=document.getElementById("review-results"))==null||t.scrollIntoView({behavior:"smooth"})},className:"review-chip border border-[hsl(var(--review-line))] bg-white px-2 py-0.5 text-foreground/80 transition-colors hover:border-primary/40 hover:text-primary",children:s},s))]})]})]}),e.jsx("nav",{className:"mt-3 flex flex-wrap gap-1 border-t border-[hsl(var(--review-line))] pt-1",children:us.map(s=>s.hash?e.jsx("a",{href:s.href,"data-active":le===s.label,className:"review-nav-tab",onClick:()=>ne(s.label),children:s.label},s.label):e.jsx(x,{to:s.href,"data-active":le===s.label,className:"review-nav-tab",onClick:()=>ne(s.label),children:s.label},s.label))})]})}),Te&&e.jsx("section",{className:"container mx-auto px-4 py-3 md:py-4",children:e.jsxs("div",{className:"flex gap-3",children:[e.jsxs("aside",{className:"hidden w-[188px] shrink-0 lg:block",children:[e.jsxs("div",{className:"review-category-rail bg-primary text-primary-foreground",children:[e.jsx("div",{className:"border-b border-white/15 px-3 py-2 text-[12px] font-semibold",children:"åååé¡"}),e.jsx("ul",{children:X.map(s=>e.jsx("li",{children:e.jsxs("button",{type:"button",onClick:()=>U(s.id),className:"flex w-full items-center gap-2 border-b border-white/10 px-3 py-2.5 text-left text-[13px] last:border-b-0 hover:bg-white/10",children:[e.jsx(s.icon,{className:"h-3.5 w-3.5 shrink-0 opacity-90",strokeWidth:2}),e.jsx("span",{className:"flex-1",children:s.label}),e.jsx(re,{className:"h-3.5 w-3.5 opacity-50"})]})},s.id))})]}),e.jsxs("div",{className:"review-panel mt-2 space-y-2 p-3 text-[12px] text-muted-foreground",children:[e.jsx(J,{icon:w,label:`${We} é馿¸¯å¯µç©åº`}),e.jsx(J,{icon:ss,label:"æ¯æ¥æ´æ°å ±å¹"}),e.jsx(J,{icon:ts,label:"ä¸ç«æ ¼å¹å¹³å°"})]})]}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row",children:[p&&e.jsxs(x,{to:N(p),className:"review-panel review-hero-deal review-card-product group relative flex min-h-[210px] min-w-0 flex-1 flex-col overflow-hidden sm:max-w-[42%]",children:[p.image&&e.jsx("img",{src:p.image,alt:"",className:"absolute -right-2 top-1/2 h-[120px] w-[120px] -translate-y-1/2 object-contain transition-transform duration-300 group-hover:scale-105 sm:h-[140px] sm:w-[140px]"}),e.jsxs("div",{className:"relative flex h-full flex-col p-4 md:p-5",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("span",{className:"review-savings-pill inline-flex items-center gap-1 rounded-sm px-2 py-0.5 text-[11px]",children:[e.jsx(je,{className:"h-3 w-3"})," 仿¥ææµ"]}),g(p)>0&&e.jsxs("span",{className:"text-[11px] font-semibold text-primary",children:["æ
³ ",g(p),"%"]})]}),e.jsx("p",{className:"mt-3 line-clamp-2 max-w-[58%] text-[14px] font-semibold leading-snug text-foreground md:text-[15px]",children:p.name}),e.jsx("p",{className:"mt-0.5 max-w-[58%] truncate text-[12px] text-primary",children:p.brand}),e.jsxs("div",{className:"mt-auto pt-3",children:[e.jsx(L,{product:p,size:"lg"}),H(p)>0&&e.jsxs("div",{className:"mt-1.5 flex flex-wrap items-center gap-2",children:[e.jsxs("span",{className:"review-price-struck",children:["HK$",te($(p).highestPrice)]}),e.jsxs("span",{className:"text-[11px] font-medium text-primary",children:["æ
³ HK$",H(p)]})]}),e.jsxs("div",{className:"mt-2 max-w-[70%]",children:[e.jsx("div",{className:"review-spread-bar","aria-hidden":!0}),e.jsxs("p",{className:"mt-1.5 flex items-center gap-1 text-[11px] text-muted-foreground",children:[e.jsx(w,{className:"h-3 w-3"}),p.storeCount," éåºèå ±å¹ Â· çå
¨é¨",e.jsx(Ce,{className:"h-3 w-3 opacity-0 transition-opacity group-hover:opacity-100"})]})]})]})]})]}),e.jsx("div",{className:"review-panel grid min-h-[210px] flex-1 grid-cols-3 grid-rows-2 divide-x divide-y divide-[hsl(var(--review-line))] overflow-hidden",children:we.map(s=>{const t=vs(f,s.filter),j=h===s.filter;return e.jsxs("button",{type:"button","data-active":j,onClick:()=>q(s.filter),className:"review-promo-tile flex flex-col border border-transparent bg-white p-2.5 text-left",children:[e.jsx("p",{className:"text-[13px] font-semibold text-foreground",children:s.title}),e.jsx("p",{className:"text-[11px] text-muted-foreground",children:s.sub}),t&&e.jsxs("div",{className:"mt-auto flex items-end justify-between gap-1 pt-2",children:[t.image?e.jsx("img",{src:t.image,alt:"",className:"h-9 w-9 object-contain",loading:"lazy"}):e.jsx("span",{className:"h-9 w-9"}),e.jsx(Je,{amount:$(t).lowestPrice,size:"sm"})]})]},s.id)})})]}),S.length>1&&e.jsx(be,{title:"仿¥ææµ",icon:je,products:S.slice(1,9),onSeeAll:()=>q("deals"),isSelected:E,onToggleCompare:s=>{const t=A(s);!t.ok&&t.reason&&T.error(t.reason,{duration:3e3})}}),I.length>0&&e.jsx(be,{title:"æå¤åºèæ¯å¹",icon:w,products:I.slice(0,8),onSeeAll:()=>q("stores"),isSelected:E,onToggleCompare:s=>{const t=A(s);!t.ok&&t.reason&&T.error(t.reason,{duration:3e3})}}),e.jsx("div",{className:"mt-2 grid grid-cols-6 gap-1.5 lg:hidden",children:X.map(s=>e.jsxs("button",{type:"button",onClick:()=>U(s.id),className:"review-panel flex flex-col items-center gap-1 py-2.5",children:[e.jsx(s.icon,{className:"h-4 w-4 text-primary",strokeWidth:2}),e.jsx("span",{className:"text-[11px] font-medium text-foreground
21/80",children:s.label})]},s.id))}),P.length>0&&e.jsxs("div",{className:"review-panel mt-2 px-3 py-2.5",children:[e.jsx("p",{className:"mb-2 text-[12px] font-medium text-muted-foreground",children:"ç±éåç"}),e.jsx("div",{className:"-mx-1 flex gap-2 overflow-x-auto pb-0.5 scrollbar-none",children:P.slice(0,24).map(s=>e.jsx(x,{to:`/review/brand/${encodeURIComponent(s)}`,className:"shrink-0 review-chip border border-[hsl(var(--review-line))] bg-white px-2.5 py-0.5 text-[12px] text-foreground/85 hover:border-primary hover:text-primary",children:s},s))})]})]}),e.jsxs("aside",{className:"hidden w-[212px] shrink-0 xl:block",children:[e.jsxs("div",{className:"review-panel p-4",children:[e.jsxs("p",{className:"text-[13px] text-muted-foreground",children:[fs(),"ï¼",de?"æ¡è¿è¿å":"æ¡è¿"]}),de?e.jsx(x,{to:"/owner-zone",className:"mt-3 block",children:e.jsx(B,{variant:"outline",className:"h-9 w-full rounded-md text-[13px]",size:"sm",children:"æç帳æ¶"})}):e.jsxs(B,{onClick:()=>Ie("LANDING"),className:"mt-3 h-9 w-full rounded-md text-[13px]",size:"sm",children:[e.jsx($e,{className:"mr-1.5 h-3.5 w-3.5"}),"ç»å
¥ / 註å"]}),e.jsxs("div",{className:"review-panel-inset mt-4 grid grid-cols-2 gap-px overflow-hidden border border-[hsl(var(--review-line))] bg-[hsl(var(--review-line))]",children:[e.jsx(W,{to:"/wishlist",icon:rs,label:"å¿æ°´",count:Se.length}),e.jsx(W,{to:"/compare",icon:as,label:"æ¯è¼",count:ce.length}),e.jsx(W,{to:"/review",icon:w,label:"æ ¼å¹"}),e.jsx(W,{to:"/other-services",icon:is,label:"åä½"})]})]}),e.jsxs("div",{className:"review-panel mt-2 border-primary/20 bg-secondary/50 p-3 text-center",children:[e.jsx("p",{className:"text-[13px] font-semibold text-primary",children:"广 ¼æ°¸ä¹
å
è²»"}),e.jsx("p",{className:"mt-1 text-[12px] leading-relaxed text-muted-foreground",children:"æååè³£å¢ï¼åªå¹«ä½ çæ¸
æ¥ééææµ"})]})]})]})}),e.jsxs("section",{id:"review-results",className:"scroll-mt-[calc(var(--header-height)+0.25rem)]",children:[e.jsx("div",{className:"sticky top-[var(--header-height)] z-20 border-y border-[hsl(var(--review-line))] bg-white/95 backdrop-blur-sm",children:e.jsx("div",{className:"container mx-auto px-4 py-2.5",children:e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsxs("div",{className:"mr-auto flex min-w-0 items-center gap-2",children:[e.jsx("h2",{className:"shrink-0 text-[14px] font-semibold text-foreground",children:h?((ue=we.find(s=>s.filter===h))==null?void 0:ue.title)??"ç²¾é¸":O?"æå°çµæ":"çä½ é¾æ"}),R.length>0&&e.jsxs("span",{className:"review-stat-pill hidden px-2 py-0.5 text-[11px] text-muted-foreground sm:inline",children:[R.length," ä»¶"]})]}),e.jsx("div",{className:"flex min-w-0 flex-1 gap-1 overflow-x-auto scrollbar-none lg:flex-none lg:overflow-visible",children:X.map(s=>e.jsx(js,{active:l===s.id,onClick:()=>U(s.id),children:s.label},s.id))}),e.jsxs(K,{value:o,onValueChange:d,children:[e.jsx(D,{className:"review-chip h-7 w-[118px] shrink-0 border-[hsl(var(--review-line))] bg-white text-[12px]",children:e.jsx(Z,{placeholder:"åç"})}),e.jsxs(Q,{children:[e.jsx(k,{value:"all",children:"å
¨é¨åç"}),P.map(s=>e.jsx(k,{value:s,children:s},s))]})]}),e.jsxs(K,{value:z,onValueChange:s=>Pe(s),children:[e.jsx(D,{className:"review-chip h-7 w-[96px] shrink-0 border-[hsl(var(--review-line))] bg-white text-[12px]",children:e.jsx(Z,{})}),e.jsx(Q,{children:gs.map(s=>e.jsx(k,{value:s.value,children:s.label},s.value))})]}),!h&&e.jsxs(K,{value:n,onValueChange:u,children:[e.jsx(D,{className:"review-chip hidden h-7 w-[84px] shrink-0 border-[hsl(var(--review-line))] bg-white text-[12px] sm:flex",children:e.jsx(Z,{})}),e.jsxs(Q,{children:[e.jsx(k,{value:"10",children:"10 ä»¶"}),e.jsx(k,{value:"20",children:"20 ä»¶"}),e.jsx(k,{value:"40",children:"40 ä»¶"})]})]}),e.jsxs("div",{className:"hidden items-center rounded-md border border-[hsl(var(--review-line))] sm:flex",children:[e.jsx("button",{type:"button",onClick:()=>oe("grid"),"aria-label":"æ ¼çæª¢è¦",className:b("flex h-7 w-8 items-center justify-center transition-colors",_==="grid"?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground"),children:e.jsx(ls,{className:"h-3.5 w-3.5"})}),e.jsx("button",{type:"button",onClick:()=>oe("list"),"aria-label":"å表檢è¦",className:b("flex h-7 w-8 items-center justify-center border-l border-[hsl(var(--review-line))] transition-colors",_==="list"?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground"),children:e.jsx(_e,{className:"h-3.5 w-3.5"})})]}),O&&e.jsxs("button",{type:"button",onClick:Me,className:"inline-flex shrink-0 items-center gap-0.5 text-[12px] text-primary hover:underline",children:[e.jsx(ge,{className:"h-3 w-3"})," æ¸
é¤"]})]})})}),e.jsx("div",{className:"container mx-auto px-4 py-3 md:py-4",children:Be&&!h?e.jsx(Ns,{}):Le&&!h?e.jsx(ys,{message:ze.message}):R.length===0?e.jsx(ks,{initialQuery:r}):_==="list"?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"review-stagger space-y-1.5",children:R.map(s=>e.jsx(bs,{product:s,isSelected:E(s.id),onToggleCompare:()=>{const t=A(s.id);!t.ok&&t.reason&&T.error(t.reason,{duration:3e3})}},s.id))}),!h&&(y||M)&&e.jsx(Ne,{pageIndex:v,hasPreviousPage:y,hasNextPage:M,isFetching:me,onPrevious:pe,onNext:he})]}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"review-product-grid review-stagger grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6",children:R.map(s=>e.jsx(ws,{product:s,isSelected:E(s.id),onToggleCompare:()=>{const t=A(s.id);!t.ok&&t.reason&&T.error(t.reason,{duration:3e3})}},s.id))}),!h&&(y||M)&&e.jsx(Ne,{pageIndex:v,hasPreviousPage:y,hasNextPage:M,isFetching:me,onPrevious:pe,onNext:he})]})})]}),e.jsx("section",{className:"mt-2 border-t border-[hsl(var(--review-line))] bg-white",children:e.jsxs("div",{className:"container mx-auto grid gap-6 px-4 py-8 md:grid-cols-[1.4fr_1fr] md:py-10",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-[12px] text-muted-foreground",children:"éæ¼ PetWell æ ¼å¹"}),e.jsxs("h2",{className:"review-display mt-2 text-xl leading-snug md:text-2xl",children:["æååè³£å¢ï¼åªä¿å¹«ä½ ",e.jsx("span",{className:"text-primary",children:"çæ¸
æ¥"}),"å¹é¢"]}),e.jsx("p",{className:"mt-2 max-w-lg text-[14px] leading-relaxed text-muted-foreground",children:"ææå¹æ ¼ç± PetWell ç·¨
21è¼¯é¨æ´çèªé¦æ¸¯å¯µç©åºå
¬éå ±å¹ã广 ¼è庫åå¯è½é¨æè®åï¼è½å®åè«ä»¥åºèé é¢çºæºã"})]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(Y,{icon:ns,label:"æ³æåå 鿬¾ï¼",sub:"WhatsApp 編輯é¨",href:"https://wa.me/85255954078"}),e.jsx(Y,{icon:w,label:"åºä¸»åä½",sub:"å å
¥æ¯å¹è¯ç",href:"/other-services",internal:!0}),e.jsx(Y,{icon:Xe,label:"æ ¼å¹å
¬å¹³å®å",sub:"é»è§£ä¿¡å¾é",href:"/about",internal:!0})]})]})}),e.jsx(Fe,{}),e.jsx(Ge,{})]})};function vs(r,a){return a==="deals"?[...r].sort((l,i)=>g(i)-g(l))[0]:a==="stores"?[...r].sort((l,i)=>i.storeCount-l.storeCount)[0]:r.find(l=>l.category===a)}function fs(){const r=new Date().getHours();return r<12?"æ©æ¨":r<18?"åå®":"æå®"}function J({icon:r,label:a}){return e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(r,{className:"h-3.5 w-3.5 shrink-0 text-primary",strokeWidth:2}),e.jsx("span",{children:a})]})}function W({to:r,icon:a,label:l,count:i}){return e.jsxs(x,{to:r,className:"flex flex-col items-center bg-white py-3 text-center hover:bg-[hsl(var(--review-canvas))]",children:[e.jsx(a,{className:"h-4 w-4 text-foreground/70",strokeWidth:1.75}),e.jsx("span",{className:"mt-1 text-[11px] font-medium text-foreground/80",children:l}),i!==void 0&&i>0&&e.jsx("span",{className:"text-[11px] tabular-nums text-primary",children:i})]})}function js({active:r,onClick:a,children:l}){return e.jsx("button",{type:"button",onClick:a,className:b("review-chip shrink-0 border px-2.5 py-0.5 text-[12px] font-medium transition-colors",r?"border-primary bg-primary text-primary-foreground":"border-[hsl(var(--review-line))] bg-white text-muted-foreground hover:border-primary/40 hover:text-foreground"),children:l})}function Y({icon:r,label:a,sub:l,href:i,internal:o}){const d="group flex items-center gap-3 rounded-lg border border-[hsl(var(--review-line))] bg-white px-3 py-2.5 hover:border-primary/30",n=e.jsxs(e.Fragment,{children:[e.jsx(r,{className:"h-4 w-4 text-primary",strokeWidth:2}),e.jsxs("div",{className:"flex-1 text-left",children:[e.jsx("p",{className:"text-[14px] font-medium",children:a}),e.jsx("p",{className:"text-[12px] text-muted-foreground",children:l})]}),e.jsx(Ce,{className:"h-3.5 w-3.5 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100"})]});return o?e.jsx(x,{to:i,className:d,children:n}):e.jsx("a",{href:i,target:"_blank",rel:"noopener noreferrer",className:d,children:n})}const ws=c.memo(function({product:a,isSelected:l,onToggleCompare:i}){const o=g(a),d=H(a),n=$(a);return e.jsxs("article",{className:"review-panel review-card-product group flex h-full flex-col overflow-hidden bg-white",children:[e.jsxs(x,{to:N(a),className:"relative block aspect-square bg-[hsl(var(--review-canvas))]/40 p-2.5",children:[a.image?e.jsx("img",{src:a.image,alt:a.name,loading:"lazy",className:"h-full w-full object-contain transition-transform duration-300 group-hover:scale-[1.03]"}):e.jsx("div",{className:"flex h-full items-center justify-center text-[12px] text-muted-foreground",children:"â"}),o>0&&e.jsxs("span",{className:"review-savings-pill absolute left-2 top-2 rounded-sm px-1.5 py-0.5 text-[10px] leading-none",children:["æ
³",o,"%"]}),e.jsx("div",{className:"absolute bottom-2 right-2 opacity-0 transition-opacity group-hover:opacity-100",children:e.jsx(Ve,{productId:a.id,currentLowest:n.lowestPrice,size:"sm"})})]}),e.jsxs("div",{className:"flex flex-1 flex-col gap-1 p-2.5 pt-2",children:[e.jsx(x,{to:`/review/brand/${encodeURIComponent(a.brand)}`,className:"truncate text-[11px] font-medium text-primary hover:underline",children:a.brand}),e.jsx(x,{to:N(a),children:e.jsx("h3",{className:"line-clamp-2 min-h-[2.25rem] text-[12px] leading-snug text-foreground group-hover:text-primary",children:a.name})}),e.jsxs("div",{className:"mt-auto space-y-1 pt-1",children:[e.jsx(L,{product:a,size:"sm"}),d>0&&e.jsxs("div",{className:"flex flex-wrap items-center gap-1.5",children:[e.jsxs("span",{className:"review-price-struck",children:["HK$",te(n.highestPrice)]}),e.jsxs("span",{className:"text-[10px] font-medium text-primary",children:["æ
³ HK$",d]})]}),e.jsxs("div",{className:"flex items-end justify-between gap-1",children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsxs("p",{className:"flex items-center gap-0.5 text-[11px] text-muted-foreground",children:[e.jsx(w,{className:"h-3 w-3 shrink-0"}),a.storeCount," é"]}),e.jsx(ke,{avgRating:a.avgRating,numReviews:a.numReviews})]}),e.jsxs("label",{className:b("inline-flex shrink-0 cursor-pointer items-center gap-1 rounded-sm px-1 py-0.5 text-[10px] font-medium transition-colors",l?"bg-primary/10 text-primary":"text-muted-foreground hover:bg-muted hover:text-foreground"),onClick:u=>u.stopPropagation(),children:[e.jsx(se,{checked:l,onCheckedChange:i,className:"h-3 w-3"}),"æ¯è¼"]})]})]})]})]})});function bs({product:r,isSelected:a,onToggleCompare:l}){const i=g(r),o=H(r),d=$(r);return e.jsxs("article",{className:"review-panel review-card-product review-list-row bg-white px-3 py-2.5 md:px-4 md:py-3",children:[e.jsx(x,{to:N(r),className:"relative block h-14 w-14 shrink-0 overflow-hidden rounded-md bg-[hsl(var(--review-canvas))]/50 p-1 md:h-16 md:w-16",children:r.image?e.jsx("img",{src:r.image,alt:"",loading:"lazy",className:"h-full w-full object-contain"}):e.jsx("div",{className:"flex h-full items-center justify-center text-[10px] text-muted-foreground",children:"â"})}),e.jsxs("div",{className:"min-w-0",children:[e.jsx(x,{to:`/review/brand/${encodeURIComponent(r.brand)}`,className:"text-[11px] font-medium text-primary hover:underline",children:r.brand}),e.jsx(x,{to:N(r),children:e.jsx("h3",{className:"line-clamp-2 text-[13px] font-medium leading-snug text-foreground hover:text-primary md:line-clamp-1",children:r.name})}),e.jsxs("p",{className:"mt-0.5 hidden items-center gap-2 text-[11px] text-muted-foreground md:flex",children:[e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx(w,{className:"h-3 w-3"})," ",r.storeCount," éåºè"]}),e.jsx(ke,{avgRating:r.avgRating,numReviews:r.numReviews})]})]}),e.jsxs("div",{className:"hidden text-right md:block",children:[e.jsx(L,{product:r,size:"sm"}),e.jsx("p",{className:"mt-0.5 text-[10px] text-muted-foreground",children:"æä½"})]}),e.jsx("div",{className:"hidden text-right md:block",children:d.highestPrice>d.lowestPrice?e.jsxs(e.Fragment,{children:[e.jsxs("span",{className:"review-price-struck text-[13px]",children:["HK$",te(d.highe
21stPrice)]}),e.jsx("p",{className:"mt-0.5 text-[10px] text-muted-foreground",children:"æé«"})]}):e.jsx("span",{className:"text-[12px] text-muted-foreground",children:"â"})}),e.jsxs("div",{className:"hidden text-center md:block",children:[i>0?e.jsxs("span",{className:"review-savings-pill inline-block rounded-sm px-1.5 py-0.5 text-[11px]",children:["æ
³ ",i,"%"]}):e.jsx("span",{className:"text-[12px] text-muted-foreground",children:"â"}),o>0&&e.jsxs("p",{className:"mt-0.5 text-[10px] text-primary",children:["HK$",o]})]}),e.jsxs("div",{className:"text-right md:hidden",children:[e.jsx(L,{product:r,size:"sm"}),i>0&&e.jsxs("span",{className:"mt-0.5 inline-block text-[10px] font-medium text-primary",children:["æ
³",i,"%"]})]}),e.jsx("label",{className:b("flex cursor-pointer items-center justify-end",a?"text-primary":"text-muted-foreground"),onClick:n=>n.stopPropagation(),children:e.jsx(se,{checked:a,onCheckedChange:l,className:"h-4 w-4"})})]})}function be({title:r,icon:a,products:l,onSeeAll:i,isSelected:o,onToggleCompare:d}){return l.length===0?null:e.jsxs("div",{className:"review-panel mt-2 overflow-hidden",children:[e.jsxs("div",{className:"flex items-center justify-between border-b border-[hsl(var(--review-line))] px-3 py-2",children:[e.jsxs("h3",{className:"flex items-center gap-1.5 text-[13px] font-semibold text-foreground",children:[e.jsx(a,{className:"h-3.5 w-3.5 text-primary",strokeWidth:2.5}),r]}),e.jsxs("button",{type:"button",onClick:i,className:"flex items-center gap-0.5 text-[12px] font-medium text-primary hover:underline",children:["çå
¨é¨ ",e.jsx(re,{className:"h-3.5 w-3.5"})]})]}),e.jsx("div",{className:"review-deal-rail flex gap-2 overflow-x-auto p-2.5",children:l.map(n=>{const u=g(n);return e.jsxs("div",{className:"review-deal-rail-item review-card-product review-panel w-[132px] shrink-0 overflow-hidden bg-white sm:w-[148px]",children:[e.jsxs(x,{to:N(n),className:"relative block aspect-square bg-[hsl(var(--review-canvas))]/30 p-2",children:[n.image?e.jsx("img",{src:n.image,alt:"",loading:"lazy",className:"h-full w-full object-contain"}):e.jsx("div",{className:"flex h-full items-center justify-center text-[10px] text-muted-foreground",children:"â"}),u>0&&e.jsxs("span",{className:"review-savings-pill absolute left-1 top-1 rounded-sm px-1 py-px text-[9px] leading-none",children:["-",u,"%"]})]}),e.jsxs("div",{className:"space-y-1 p-2 pt-1.5",children:[e.jsx(x,{to:N(n),children:e.jsx("p",{className:"line-clamp-2 min-h-[2rem] text-[11px] leading-snug text-foreground",children:n.name})}),e.jsx(L,{product:n,size:"sm",showPurchaseNote:!1}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("span",{className:"text-[10px] text-muted-foreground",children:[n.storeCount," åº"]}),e.jsx("label",{className:b("cursor-pointer",o(n.id)?"text-primary":"text-muted-foreground"),onClick:v=>v.stopPropagation(),children:e.jsx(se,{checked:o(n.id),onCheckedChange:()=>d(n.id),className:"h-3 w-3"})})]})]})]},n.id)})})]})}function Ne({pageIndex:r,hasPreviousPage:a,hasNextPage:l,isFetching:i,onPrevious:o,onNext:d}){return e.jsxs("div",{className:"mt-6 flex items-center justify-center gap-3",children:[e.jsxs(B,{variant:"outline",size:"sm",onClick:o,disabled:!a||i,className:"h-8 rounded-md border-[hsl(var(--review-line))] text-[13px]",children:[e.jsx(os,{className:"mr-1 h-4 w-4"})," ä¸ä¸é "]}),e.jsxs("span",{className:"min-w-[4rem] text-center text-[13px] text-muted-foreground",children:["第 ",r+1," é "]}),e.jsxs(B,{variant:"outline",size:"sm",onClick:d,disabled:!l||i,className:"h-8 rounded-md border-[hsl(var(--review-line))] text-[13px]",children:[i?e.jsx(ye,{className:"mr-1 h-4 w-4 animate-spin"}):null,"ä¸ä¸é ",e.jsx(re,{className:"ml-1 h-4 w-4"})]})]})}function Ns(){return e.jsxs("div",{className:"review-panel flex items-center justify-center p-12 text-[14px] text-muted-foreground",children:[e.jsx(ye,{className:"mr-2 h-5 w-5 animate-spin text-primary"}),"æ£å¨æ´çå ±å¹â¦"]})}function ys({message:r}){return e.jsxs("div",{className:"review-panel border-destructive/30 p-6 text-center",children:[e.jsx("h3",{className:"review-display text-xl",children:"æ«ææªè½è¼å
¥"}),e.jsx("p",{className:"mx-auto mt-2 max-w-xl text-[14px] text-muted-foreground",children:r})]})}function ks({initialQuery:r}){const[a,l]=c.useState(""),[i,o]=c.useState(r),d=a.trim().length>0&&i.trim().length>0,n=()=>
21{if(!d)return;const u=`[ç¢å建è°] 22æ³çå ç¢åï¼${i.trim()} 23è¯çµ¡æ¹å¼ï¼é»è©± / IGï¼ï¼${a.trim()} 24 25éº»ç © PetWell æ´æ°å¾ DM æï¼å¤è¬ï¼`;window.open(`https://wa.me/85255954078?text=${encodeURIComponent(u)}`,"_blank","noopener,noreferrer")};return e.jsx("div",{className:"review-panel p-8 md:p-10",children:e.jsxs("div",{className:"mx-auto max-w-md text-center",children:[e.jsx("h3",{className:"review-display text-2xl",children:"æªæµå°ï¼è©±æåç¥"}),e.jsx("p",{className:"mt-2 text-[14px] text-muted-foreground",children:"çä½è¯çµ¡æ¹æ³åç¢ååï¼æ´æ°å¾å³å»éç¥ä½ "}),e.jsxs("div",{className:"mt-5 space-y-2 text-left",children:[e.jsx(ee,{placeholder:"ä¾å¦ï¼Royal Canin æè²ç³§",value:i,onChange:u=>o(u.target.value),maxLength:200}),e.jsx(ee,{placeholder:"é»è©± æ IG",value:a,onChange:u=>l(u.target.value),maxLength:100}),e.jsx(B,{onClick:n,disabled:!d,className:"w-full rounded-md",size:"lg",children:"æäº¤å»ºè°"})]})]})})}export{dt 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.