1import{i as e,t}from"./jsx-runtime-DUAcabCT.js";import{r as n}from"./useRouter-Dongij8b.js";import{t as r}from"./link-B3HUh8nW.js";import{t as i}from"./useSuspenseQuery-GD2uxMtF.js";import{t as a}from"./map-pin-CIGQU-KJ.js";import{l as o}from"./seo-BuGUyQo5.js";import{o as s}from"./partner-pages-CIz_BDwn.js";import{$t as c,Cn as l,On as u,Sn as d,Wr as f,mr as p,wn as m}from"./index-Cj1cwOZV.js";import{t as h}from"./cross-listings-CG85udY7.js";var g=e(n()),_=t(),v=[{slug:`waterfront`,label:`Waterfront Dining`,match:/waterfront|lakefront|dockside|on the water|marina|patio|cove/i},{slug:`breakfast`,label:`Breakfast & Coffee`,match:/breakfast|brunch|coffee|espresso|caf(e|é)|bakery|donut|diner/i},{slug:`bars`,label:`Bars & Nightlife`,match:/bar\b|pub|tavern|cantina|brew|saloon|nightlife|live music|cocktail|tiki/i},{slug:`casual`,label:`Casual Dining`,match:/burger|bbq|barbecue|pizza|mexican|taco|grill|sandwich|wings|family|casual|deli/i},{slug:`fine`,label:`Fine Dining`,match:/fine dining|steak|upscale|chophouse|wine|elegant|chef/i}];function y(){let e=f({strict:!1}),t=v.find(t=>t.slug===e.style)??null,[n,y]=(0,g.useState)(``),{data:b}=i(c),x=(0,g.useMemo)(()=>{let e=n.trim().toLowerCase();return b.filter(e=>h(`restaurants`,e,o)).filter(e=>{if(!t)return!0;let n=`${e.name} ${e.category} ${e.tagline??``} ${e.description} ${e.services.join(` `)} ${e.amenities.join(` `)}`;return t.match.test(n)}).filter(t=>!e||t.name.toLowerCase().includes(e)||(t.town??``).toLowerCase().includes(e)||(t.tagline??``).toLowerCase().includes(e)||t.description.toLowerCase().includes(e)).sort((e,t)=>e.featuredRank-t.featuredRank||e.name.localeCompare(t.name))},[b,n,t]),S=x.filter(e=>e.featuredRank<500),C=x.filter(e=>e.featuredRank>=500);return(0,_.jsxs)(`div`,{className:`min-h-screen bg-background`,children:[(0,_.jsx)(l,{eyebrow:`Restaurant Guide`,title:t?`${t.label} on Grand Lake`:`Where to Eat on Grand Lake`,description:`From waterfront patios to hometown cafés â find your next great meal.`,image:u.restaurants,vibe:`food`,children:(0,_.jsxs)(`div`,{className:`relative max-w-md`,children:[(0,_.jsx)(p,{className:`pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground`}),(0,_.jsx)(`input`,{value:n,onChange:e=>y(e.target.value),placeholder:`Search restaurants, towns, dishesâ¦`,className:`w-full rounded-full border-0 bg-background/95 py-2.5 pl-10 pr-4 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-accent`})]})}),(0,_.jsxs)(`main`,{className:`mx-auto max-w-6xl px-5 py-8 sm:px-8`,children:[(0,_.jsxs)(`div`,{className:`mb-6 flex flex-wrap gap-2`,children:[(0,_.jsx)(r,{to:`/restaurants`,className:`rounded-full px-3.5 py-2 text-sm font-semibold transition ${t?`border border-border text-foreground hover:bg-muted`:`bg-primary text-primary-foreground`}`,children:`All Restaurants`}),v.map(e=>(0,_.jsx)(r,{to:`/restaurants`,search:{style:e.slug},className:`rounded-full px-3.5 py-2 text-sm font-semibold transition ${t?.slug===e.slug?`bg-primary text-primary-foreground`:`border border-border text-foreground hover:bg-muted`}`,children:e.label},e.slug))]}),S.length>0&&(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(m,{label:`â
Featured Advertisers`,count:S.length,hint:`Local restaurants that support 360GrandLake â full menus, photos & hours.`}),(0,_.jsx)(`div`,{className:`grid gap-5 sm:grid-cols-2`,children:S.map(e=>(0,_.jsx)(d,{name:e.name,location:e.town??void 0,hook:e.tagline??e.description,photo:e.heroPhoto??e.photos[0]??u.restaurants,featured:!0,to:s(e),partnerId:e.id,surface:`restaurants`,cta:`View listing`},e.slug))})]}),C.length>0&&(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(m,{label:`All Restaurants`,count:C.length,hint:`Basic listings â own one of these? Claim it to add photos, menus & hours.`}),(0,_.jsx)(`div`,{className:`grid gap-3 sm:grid-cols-2 lg:grid-cols-3`,children:C.map(e=>(0,_.jsxs)(`article`,{className:`flex flex-col rounded-xl border border-border bg-card p-4`,children:[(0,_.jsx)(r,{to:s(e),className:`font-display text-base font-semibold text-foreground`,children:e.name}),e.town&&(0,_.jsxs)(`div`,{className:`mt-0.5 flex items-center gap-1 text-xs text-muted-foreground`,children:[(0,_.jsx)(a,{className:`h-3 w-3`}),e.town]}),(0,_.jsx)(`p`,{className:`mt-2 line-clamp-3 flex-1 text-sm text-muted-foreground`,children:e.tagline??e.description})]},e.slug))})]}),x.length===0&&(0,_.jsx)(`div`,{className:`rounded-2xl border border-dashed border-border p-10 text-center text-muted-foreground`,children:`No restaurants match that search yet.`})]})]})}export{y as component};
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.