PageSourceSearch

https://celebrateaz.lovable.app/assets/activities-BIWrDwL3.js

js celebrateaz.lovable.app collected 2026-10-03 03:24:14 UTC 4,125 bytes, 1 lines download raw bytes

1import{x,r as a,j as e,L as p}from"./index-Dy5Tkzb0.js";import{u as g}from"./useSuspenseQuery-DQYcWnzr.js";import{S as h}from"./star-WqO7MA50.js";import{M as u}from"./map-pin-EMVvz2Ro.js";import{C as f}from"./clock-EpLWSRW-.js";function y(){const{data:n}=g(x),r=n.items,[i,o]=a.useState("All"),[l,c]=a.useState("All"),d=a.useMemo(()=>["All",...Array.from(new Set(r.map(s=>s.region).filter(Boolean))).sort()],[r]),m=a.useMemo(()=>["All",...Array.from(new Set(r.map(s=>s.category).filter(Boolean))).sort()],[r]),t=r.filter(s=>(i==="All"||s.region===i)&&(l==="All"||s.category===l));return e.jsxs("div",{className:"bg-paper text-ink",children:[e.jsx("header",{className:"border-b border-rule",children:e.jsxs("div",{className:"container mx-auto px-4 py-14 text-center",children:[e.jsx("div",{className:"kicker text-az-red",children:"The Field Guide"}),e.jsxs("h1",{className:"mt-4 font-display text-5xl md:text-7xl font-black tracking-tight leading-[0.95]",children:["Things to Do in ",e.jsx("span",{className:"italic font-normal",children:"Arizona."})]}),e.jsxs("p",{className:"mx-auto mt-5 max-w-2xl font-serif text-lg text-muted-foreground",children:["A curated catalogue of ",r.length,"+ iconic experiences across the state — pulled from the National Park Service, Visit Arizona, and official regional tourism boards."]})]})}),e.jsx("section",{className:"border-b border-rule bg-paper-soft sticky top-[var(--site-header-h,0)] z-20",children:e.jsxs("div",{className:"container mx-auto px-4 py-4 space-y-3",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("span",{className:"kicker text-muted-foreground mr-2",children:"Region:"}),d.map(s=>e.jsx("button",{onClick:()=>o(s),className:`kicker px-3 py-1.5 border transition ${i===s?"bg-midnight text-cream border-ink":"border-rule text-ink/70 hover:border-ink"}`,children:s},s))]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("span",{className:"kicker text-muted-foreground mr-2",children:"Category:"}),m.map(s=>e.jsx("button",{onClick:()=>c(s),className:`kicker px-3 py-1.5 border transition ${l===s?"bg-az-red text-cream border-az-red":"border-rule text-ink/70 hover:border-ink"}`,children:s},s))]})]})}),e.jsxs("section",{className:"container mx-auto px-4 py-12",children:[e.jsx("div",{className:"rule-double pt-4 mb-8 flex items-end justify-between",children:e.jsxs("h2",{className:"font-display text-3xl md:text-4xl font-black",children:[t.length," ",t.length===1?"activity":"activities"]})}),t.length===0?e.jsx("div",{className:"border border-dashed border-rule p-10 text-center font-serif text-muted-foreground",children:"No activities match those filters."}):e.jsx("div",{className:"grid gap-8 md:grid-cols-2 lg:grid-cols-3",children:t.map(s=>e.jsxs(p,{to:"/activities/$slug",params:{slug:s.slug},className:"group block border border-rule bg-card hover:shadow-elegant transition",children:[s.image_url&&e.jsx("div",{className:"aspect-[4/3] overflow-hidden",children:e.jsx("img",{src:s.image_url,alt:s.name,loading:"lazy",className:"h-full w-full object-cover hover-zoom",decoding:"async"})}),e.jsxs("div",{className:"p-5",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("div",{className:"kicker text-az-red",children:s.category}),s.featured&&e.jsxs("span",{className:"inline-flex items-center gap-1 kicker text-az-gold",children:[e.jsx(h,{className:"h-3 w-3 fill-current"})," Featured"]})]}),e.jsx("h3",{className:"mt-2 font-display text-2xl font-bold leading-tight group-hover:text-az-red",children:s.name}),s.short_description&&e.jsx("p",{className:"mt-2 font-serif text-sm text-muted-foreground line-clamp-3 leading-relaxed",children:s.short_description}),e.jsxs("div",{className:"mt-3 byline flex flex-wrap items-center gap-4",children:[s.city&&e.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[e.jsx(u,{className:"h-3 w-3"}),s.city,s.region&&` · ${s.region}`]}),s.duration&&e.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[e.jsx(f,{className:"h-3 w-3"}),s.duration]})]})]})]},s.id))})]})]})}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.