PageSourceSearch

https://www.quicksites.ai/_next/static/chunks/72897.25b79c0efce5998d.js

js quicksites.ai collected 2026-10-05 14:40:32 UTC 3,409 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[72897],{72897:(t,e,l)=>{l.r(e),l.d(e,{default:()=>n});var a=l(95155),s=l(12115),o=l(64420);let r=t=>"string"==typeof t?t.trim():"";function n(t){var e;let{block:l,content:n,previewOnly:i}=t,c=null!==(e=null!=n?n:null==l?void 0:l.content)&&void 0!==e?e:{},u=r(c.title)||"Gallery",d=Math.min(4,Math.max(2,Number(c.columns)||3)),x=(Array.isArray(c.images)?c.images:[]).filter(t=>r(t.url)),[h,m]=s.useState(null),g=s.useCallback(()=>m(null),[]),p=s.useCallback(t=>m(e=>null==e?e:(e+t+x.length)%x.length),[x.length]);if(s.useEffect(()=>{if(null==h)return;let t=t=>{"Escape"===t.key?g():"ArrowRight"===t.key?p(1):"ArrowLeft"===t.key&&p(-1)};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[h,g,p]),!x.length)return(0,o.H)(i)?(0,a.jsxs)("div",{className:"rounded-lg border border-dashed border-border px-4 py-6 text-center text-sm text-muted-foreground",children:[(0,a.jsx)("div",{className:"text-base",children:"\uD83D\uDDBC️"}),"Photo gallery — add images in this block's panel. Nothing shows on your live site until you do."]}):null;let b={"@context":"https://schema.org","@type":"ImageGallery",...r(c.title)?{name:r(c.title)}:{},image:x.map(t=>r(t.url))};return(0,a.jsxs)("section",{className:"mx-auto w-full max-w-6xl px-4 py-10",children:[(0,a.jsx)("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(b)}}),(0,a.jsx)("h2",{className:"mb-6 text-2xl font-bold tracking-tight",children:u}),(0,a.jsx)("div",{className:"grid grid-cols-2 gap-3 ".concat(2===d?"sm:grid-cols-2":4===d?"sm:grid-cols-3 lg:grid-cols-4":"sm:grid-cols-2 lg:grid-cols-3"),children:x.map((t,e)=>(0,a.jsxs)("button",{type:"button",onClick:()=>m(e),className:"group relative aspect-square overflow-hidden rounded-xl border border-border bg-muted focus:outline-none focus:ring-2 focus:ring-primary",children:[(0,a.jsx)("img",{src:r(t.url),alt:r(t.alt)||r(t.caption)||"Photo ".concat(e+1),loading:"lazy",className:"h-full w-full object-cover transition duration-300 group-hover:scale-105"}),r(t.caption)&&(0,a.jsx)("span",{className:"absolute inset-x-0 bottom-0 bg-gradient-to-t from-black/70 to-transparent p-2 text-left text-xs font-medium text-white",children:r(t.caption)})]},e))}),null!=h&&(0,a.jsxs)("div",{role:"dialog","aria-modal":"true",onClick:g,className:"fixed inset-0 z-[100] flex items-center justify-center bg-black/90 p-4",children:[(0,a.jsx)("button",{type:"button",onClick:g,"aria-label":"Close",className:"absolute right-4 top-4 text-2xl text-white/80 hover:text-white",children:"✕"}),x.length>1&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("button",{type:"button",onClick:t=>{t.stopPropagation(),p(-1)},"aria-label":"Previous",className:"absolute left-2 text-3xl text-white/70 hover:text-white sm:left-6",children:"‹"}),(0,a.jsx)("button",{type:"button",onClick:t=>{t.stopPropagation(),p(1)},"aria-label":"Next",className:"absolute right-2 text-3xl text-white/70 hover:text-white sm:right-6",children:"›"})]}),(0,a.jsxs)("figure",{onClick:t=>t.stopPropagation(),className:"max-h-full max-w-4xl",children:[(0,a.jsx)("img",{src:r(x[h].url),alt:r(x[h].alt)||r(x[h].caption)||"Photo",className:"max-h-[85vh] w-auto rounded-lg object-contain"}),r(x[h].caption)&&(0,a.jsx)("figcaption",{className:"mt-2 text-center text-sm text-white/80",children:r(x[h].caption)})]})]})]})}}}]);

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.