1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2855],{2855:function(e,l,t){t.r(l);var a=t(27573),s=t(7653),i=t(50294),c=t(2734);l.default=e=>{let{title:l,description:t,images:n,layout:r="grid",columns:o=3,show_captions:d=!0}=e,[x,h]=(0,s.useState)(null);return(null==n?void 0:n.length)?(0,a.jsx)("section",{className:"py-6",children:(0,a.jsxs)("div",{className:"container mx-auto px-4",children:[(l||t)&&(0,a.jsxs)("div",{className:"text-center mb-8",children:[l&&(0,a.jsx)("h2",{className:"text-2xl md:text-3xl lg:text-4xl font-bold text-gray-900 mb-4",children:l}),t&&(0,a.jsx)("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:t})]}),(0,a.jsx)("div",{className:(0,c.cn)({grid:"grid gap-4 ".concat(2===o?"grid-cols-1 md:grid-cols-2":3===o?"grid-cols-1 md:grid-cols-2 lg:grid-cols-3":"grid-cols-1 md:grid-cols-".concat(Math.min(o,4))),masonry:"columns-1 md:columns-2 lg:columns-3 gap-4 space-y-4",carousel:"flex gap-4 overflow-x-auto pb-4",single:"flex justify-center"}[r]),children:n.map((e,l)=>(0,a.jsx)("div",{className:(0,c.cn)("group cursor-pointer transition-transform hover:scale-105","masonry"===r&&"break-inside-avoid mb-4","carousel"===r&&"flex-shrink-0 w-80"),onClick:()=>h(l),onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),h(l))},role:"button",tabIndex:0,"aria-label":"View image ".concat(l+1,": ").concat(e.alternativeText||e.caption||"Gallery image"),children:(0,a.jsxs)("div",{className:"relative overflow-hidden rounded-lg shadow-lg",children:[(0,a.jsx)(i.default,{src:e.url,alt:e.alternativeText||"Gallery image ".concat(l+1),width:e.width,height:e.height,className:"w-full h-auto object-cover transition-transform group-hover:scale-110"}),d&&e.caption&&(0,a.jsx)("div",{className:"absolute bottom-0 left-0 right-0 bg-black/70 text-white p-3",children:(0,a.jsx)("p",{className:"text-sm",children:e.caption})})]})},e.url))}),null!==x&&(0,a.jsx)("div",{className:"fixed inset-0 z-50 bg-black/90 flex items-center justify-center p-4",onClick:()=>h(null),onKeyDown:e=>{"Escape"===e.key&&h(null)},role:"button",tabIndex:0,"aria-label":"Close lightbox (press Escape to close)",children:(0,a.jsxs)("div",{className:"relative max-w-4xl max-h-full",children:[(0,a.jsx)(i.default,{src:n[x].url,alt:n[x].alternativeText||"",width:n[x].width,height:n[x].height,className:"max-w-full max-h-full object-contain"}),(0,a.jsx)("button",{type:"button",className:"absolute top-4 right-4 text-white text-2xl hover:text-gray-300",onClick:()=>h(null),"aria-label":"Close lightbox",children:"\xd7"})]})})]})}):null}}}]);
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.