PageSourceSearch

https://wellanddentalcentre.ca/assets/VideoTestimonials-CBNCuASn.js

js wellanddentalcentre.ca collected 2026-10-09 22:04:12 UTC 8,277 bytes, 4 lines download raw bytes

1import{r as e,t}from"./jsx-runtime-DGeXAQPT.js";import{V as n,a as r,c as i,i as a,n as o,r as s}from"./ui-CIK4F1hD.js";import{S as c,_ as l,g as u}from"./Header-BrZONw3U.js";import{n as d}from"./Footer-Ca6u1u1-.js";import{pn as f}from"./index-CJefOU1Z.js";var p=i(`clock`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 6v6l4 2`,key:`mmk7yg`}]]),m=i(`external-link`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`M10 14 21 3`,key:`gplh6r`}],[`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`,key:`a6xqqp`}]]),h=i(`quote`,[[`path`,{d:`M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z`,key:`rib7q0`}],[`path`,{d:`M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z`,key:`1ymkrd`}]]),g=e(n(),1),_=t(),v=`https://www.google.com/maps/place/Welland+Dental+Centre/@42.9897912,-79.2622699,17z/data=!4m6!3m5!1s0x89d349c50408aa05:0x8e6e50c0e37e4366!8m2!3d42.9897966!4d-79.2596264!16s%2Fg%2F1ttdzf7l`,y=`9TjmVoXb5BNHIQoNo99f`;function b(e={}){let[t,n]=(0,g.useState)(!1);return(0,g.useEffect)(()=>{n(!0)},[]),(0,_.jsx)(`section`,{id:`booking`,className:`w-full`,children:(0,_.jsxs)(`div`,{className:`shell section-y`,children:[(0,_.jsxs)(`div`,{className:`flex flex-col items-center gap-4 text-center`,children:[(0,_.jsx)(`span`,{className:`eyebrow`,children:`Contact`}),(0,_.jsx)(`h2`,{className:`max-w-3xl text-3xl leading-[1.1] font-semibold text-balance sm:text-4xl lg:text-5xl`,children:`Book your appointment`}),(0,_.jsx)(`p`,{className:`max-w-xl text-muted-foreground`,children:`Send us an appointment request and our front desk will contact you to confirm availability and the next steps.`})]}),(0,_.jsxs)(`div`,{id:`contact`,className:`mt-14 grid gap-8 lg:grid-cols-2 lg:gap-12`,children:[(0,_.jsx)(`div`,{className:`surface-card overflow-hidden p-2 sm:p-4`,suppressHydrationWarning:!0,children:t?(0,_.jsx)(`iframe`,{src:`https://api.leadconnectorhq.com/widget/form/${y}`,style:{width:`100%`,border:`none`,borderRadius:`4px`},id:`inline-${y}`,"data-layout":`{"id":"INLINE"}`,"data-trigger-type":`alwaysShow`,"data-trigger-value":``,"data-activation-type":`alwaysActivated`,"data-activation-value":``,"data-deactivation-type":`neverDeactivate`,"data-deactivation-value":``,"data-form-name":`Appointment Form - General Form`,"data-height":`838`,"data-layout-iframe-id":`inline-${y}`,"data-form-id":y,"data-cookie-consent":`true`,"data-cookie-consent-provider":`auto`,title:`Appointment Form - General Form`,className:`h-[902px] w-full sm:h-[838px]`}):(0,_.jsx)(`div`,{className:`h-[902px] w-full sm:h-[838px]`,"aria-hidden":`true`})}),(0,_.jsxs)(`div`,{className:`flex min-h-full flex-col gap-6`,children:[(0,_.jsxs)(`div`,{className:`relative min-h-72 flex-1 overflow-hidden rounded-4xl`,children:[(0,_.jsx)(`iframe`,{title:`Welland Dental Centre location on Google Maps`,src:`https://www.google.com/maps/embed?pb=!1m14!1m8!1m3!1d2880.4524875181723!2d-79.2622699!3d42.9897912!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x89d349c50408aa05%3A0x8e6e50c0e37e4366!2sWelland%20Dental%20Centre!5e1!3m2!1sen!2sfr!4v1785254606873!5m2!1sen!2sfr`,loading:`lazy`,allowFullScreen:!0,referrerPolicy:`strict-origin-when-cross-origin`,className:`absolute inset-0 h-full w-full border-0`}),(0,_.jsxs)(`a`,{href:v,target:`_blank`,rel:`noopener noreferrer`,className:`absolute right-4 bottom-4 inline-flex items-center gap-2 rounded-full bg-card px-4 py-2 text-sm font-medium shadow-[var(--shadow-card)] transition-colors hover:bg-secondary`,children:[`Open in Google Maps `,(0,_.jsx)(m,{className:`h-4 w-4`})]})]}),(0,_.jsx)(`div`,{className:`surface-card grid gap-5 p-7`,children:[{Icon:l,label:`Visit us`,value:`7 Riverside Dr, Welland, ON L3C 5C6, Canada`,href:v,external:!0},{Icon:u,label:`Call us`,value:`(905) 735-7571`,href:`tel:+19057357571`},{Icon:d,label:`Email`,value:`[email protected]`,href:`mailto:[email protected]`},{Icon:p,label:`Hours`,value:`Mon–Thu 9am–5pm
2Fri 9am–3pm
3Sat 9am–3pm (Once a month)
4Sun closed`,href:`#booking`}].map(({Icon:e,label:t,value:n,href:r,external:i})=>(0,_.jsxs)(`a`,{href:r,...i?{target:`_blank`,rel:`noopener noreferrer`}:{},className:`group flex min-w-0 items-start gap-4`,children:[(0,_.jsx)(`span`,{className:`grid h-10 w-10 shrink-0 place-items-center rounded-xl bg-secondary text-primary transition-colors group-hover:bg-primary group-hover:text-primary-foreground`,children:(0,_.jsx)(e,{className:`h-5 w-5`})}),(0,_.jsxs)(`div`,{className:`min-w-0`,children:[(0,_.jsx)(`p`,{className:`text-xs tracking-[0.14em] text-muted-foreground uppercase`,children:t}),(0,_.jsx)(`p`,{className:`text-sm font-medium whitespace-pre-line transition-colors group-hover:text-primary`,children:n})]})]},t))})]})]})]})})}function x(){let{data:e}=c({queryKey:[`google-place-stats`],queryFn:async()=>{let{data:e,error:t}=await f.from(`google_place_stats`).select(`rating, reviews_count`).order(`updated_at`,{ascending:!1}).limit(1).maybeSingle();return t?(console.error(`Failed to load Google stats:`,t.message),null):e?{rating:e.rating===null?null:Number(e.rating),reviewsCount:e.reviews_count??null}:null},staleTime:1e3*60*60});return e??null}function S(){let{data:e}=c({queryKey:[`google-reviews`],queryFn:async()=>{let{data:e,error:t}=await f.from(`google_reviews`).select(`review_id, text, author_name, author_photo_url, google_review_url`).eq(`is_displayed`,!0).eq(`stars`,5).order(`published_at_date`,{ascending:!1}).limit(6);return t?(console.error(`Failed to load Google reviews:`,t.message),[]):e??[]},staleTime:1e3*60*60});return e??[]}
4function C(e){return e.split(` `).filter(Boolean).slice(0,2).map(e=>e[0]).join(``).toUpperCase()}function w(){let e=S(),t=x();return(0,_.jsx)(`section`,{className:`w-full bg-secondary/60`,children:(0,_.jsxs)(`div`,{className:`shell section-y`,children:[(0,_.jsxs)(`div`,{className:`flex flex-col items-center gap-6`,children:[(0,_.jsx)(a,{label:`Testimonials`,title:`What our patients say about us`}),(0,_.jsxs)(`a`,{href:o,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-3 rounded-full border border-border bg-card px-4 py-1.5 shadow-[var(--shadow-soft)] transition-all hover:-translate-y-0.5 hover:brightness-105`,children:[(0,_.jsx)(`span`,{className:`grid h-7 w-7 place-items-center rounded-full bg-background ring-1 ring-border`,children:(0,_.jsx)(s,{className:`h-4 w-4`})}),t?.rating==null?null:(0,_.jsx)(`span`,{className:`text-sm font-semibold`,children:t.rating.toFixed(1)}),(0,_.jsx)(r,{className:`text-[#FBBC05]`}),t?.reviewsCount==null?(0,_.jsx)(`span`,{className:`text-sm font-semibold text-foreground`,children:`Google reviews`}):(0,_.jsxs)(`span`,{className:`text-sm font-semibold text-foreground`,children:[t.reviewsCount,` Google reviews`]})]})]}),e.length>0?(0,_.jsx)(`div`,{className:`mt-14 grid gap-6 md:grid-cols-2 lg:grid-cols-3`,children:e.map(e=>{let t=e.author_name?.trim()||`Google reviewer`,n=(0,_.jsxs)(`figure`,{className:`surface-card flex h-full flex-col p-8`,children:[(0,_.jsx)(h,{className:`h-8 w-8 text-primary/25`}),(0,_.jsxs)(`blockquote`,{className:`mt-4 grow text-[15px] leading-relaxed`,children:[`"`,e.text,`"`]}),(0,_.jsxs)(`figcaption`,{className:`mt-6 flex items-center gap-3 border-t border-border pt-5`,children:[e.author_photo_url?(0,_.jsx)(`img`,{src:e.author_photo_url,alt:t,loading:`lazy`,className:`h-11 w-11 shrink-0 rounded-full object-cover`}):(0,_.jsx)(`span`,{className:`grid h-11 w-11 shrink-0 place-items-center rounded-full gradient-deep font-display text-sm font-bold text-on-dark`,children:C(t)}),(0,_.jsxs)(`div`,{className:`min-w-0`,children:[(0,_.jsx)(`p`,{className:`font-semibold`,children:t}),(0,_.jsxs)(`div`,{className:`mt-1 flex items-center gap-2`,children:[(0,_.jsx)(s,{className:`h-4 w-4 shrink-0`}),(0,_.jsx)(r,{})]})]})]})]});return e.google_review_url?(0,_.jsx)(`a`,{href:e.google_review_url,target:`_blank`,rel:`noopener noreferrer`,className:`block h-full transition-transform hover:-translate-y-1`,children:n},e.review_id):(0,_.jsx)(`div`,{className:`h-full`,children:n},e.review_id)})}):null]})})}function T(){let[e,t]=(0,g.useState)(!1);return null}export{p as a,b as i,w as n,x as r,T as t};

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.