PageSourceSearch

https://royal-indian-cuisine.netlify.app/static/js/559.deb44d35.chunk.js

js royal-indian-cuisine.netlify.app collected 2026-10-03 11:21:40 UTC 17,565 bytes, 2 lines download raw bytes

1"use strict";(self.webpackChunkroyal_indian_cuisine=self.webpackChunkroyal_indian_cuisine||[]).push([[559],{919:(n,e,a)=>{n.exports=a.p+"static/media/10.8cf0673e9c36d8625621.webp"},4588:(n,e,a)=>{n.exports=a.p+"static/media/2.d9680d7577d9c515e19e.webp"},6559:(n,e,a)=>{a.r(e),a.d(e,{Gallery:()=>z});var t=a(65043),i=a(40111),r=a(85781),s=a(13133),o=a(35014),l=a(12027),c=a(91706),d=(a(69189),a(80033)),p=a(60519),m=a(57483),g=a(42993),y=(a(4399),a(14490)),h=a(28556),f=a(4588),x=a(61679),u=a(22898),w=a(25661),b=a(31408),v=a(8410),j=a(92214),k=a(56945),N=a(919),C=a(70579);const S=[{src:h,category:"restaurant",isVideo:!0,isVertical:!0},{src:f,category:"restaurant"},{src:x,category:"restaurant"},{src:u,category:"restaurant"},{src:w,category:"restaurant"},{src:b,category:"restaurant"},{src:v,category:"restaurant",isVideo:!0,isVertical:!0},{src:j,category:"restaurant"},{src:k,category:"restaurant"},{src:N,category:"restaurant"}],V=n=>{let{image:e,index:a,progress:t,onClick:o}=n;const l=[-70,38,-52,26,-44,30,-64,18],c=(0,i.I)()?0:l[a%l.length],d=(0,r.G)(t,[0,1],[c,-c]);return(0,C.jsxs)(s.P.div,{style:{y:d},className:"rc-gtile ".concat(e.isVertical?"rc-tall":""),onClick:o,initial:{opacity:0,scale:.92},whileInView:{opacity:1,scale:1},viewport:{once:!0,margin:"-40px"},transition:{duration:.6,delay:a%4*.06,ease:[.2,.7,.2,1]},children:[e.isVideo?(0,C.jsx)("video",{src:e.src,autoPlay:!0,loop:!0,muted:!0,playsInline:!0,preload:"metadata",style:{backgroundColor:"#000"}}):(0,C.jsx)("img",{src:e.src,alt:"",decoding:"async"}),(0,C.jsx)("span",{className:"rc-gring"}),(0,C.jsx)("div",{className:"rc-gicon",children:(0,C.jsx)("i",{className:e.isVideo?"fas fa-play":"fas fa-search-plus"})})]})};function z(n){let{language:e}=n;const a=(0,t.useRef)(null),{scrollYProgress:i}=(0,o.L)({target:a,offset:["start end","end start"]}),{colors:r}=y.restaurantConfig,[s,h]=(0,t.useState)(!1),[f,x]=(0,t.useState)(0),[u,w]=(0,t.useState)(window.innerWidth<=768),[b,v]=(0,t.useState)(!1),[j,k]=(0,t.useState)("");(0,t.useEffect)((()=>{const n=()=>{w(window.innerWidth<=768)};return window.addEventListener("resize",n),()=>window.removeEventListener("resize",n)}),[]);const N=S,z=N.map((n=>n.isVideo?{type:"video",width:n.isVertical?480:1280,height:n.isVertical?853:720,poster:"",sources:[{src:n.src,type:"video/mp4"}]}:{src:n.src})),I=(n,e)=>{x(e),h(!0)};return(0,C.jsxs)("section",{id:"gallery",className:"gallery-section py-16 bg-white",children:[(0,C.jsxs)("div",{className:"container mx-auto px-4",children:[(0,C.jsxs)("div",{className:"section-title",children:[(0,C.jsx)("h2",{children:"en"===e?"Our Gallery":"A Nossa Galeria"}),(0,C.jsx)("div",{className:"title-separator",style:{backgroundColor:y.restaurantConfig.colors.primary}}),(0,C.jsx)("p",{className:"section-subtitle",children:"en"===e?"A space crafted with heart and soul, made for those who celebrate life in every moment.":"Um espa\xe7o criado com carinho e alma, pensado para quem celebra a vida em cada momento."})]}),u?(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(l.default,{images:N,onImageClick:I}),(0,C.jsx)("div",{className:"swipe-hint text-center text-sm text-gray-500 mt-4",children:(0,C.jsxs)("p",{children:[(0,C.jsx)("i",{className:"fas fa-hand-point-right mr-2"}),"en"===e?"Swipe to see more photos":"Deslize para ver mais fotos"]})})]}):(0,C.jsx)("div",{ref:a,className:"rc-gallery-grid mt-10",children:N.map(((n,e)=>(0,C.jsx)(V,{image:n,index:e,progress:i,onClick:()=>I(0,e)},"gallery-".concat(e))))}),(0,C.jsx)("div",{className:"instagram-button-container mt-10 mb-16 flex justify-center px-4 md:px-0",children:(0,C.jsxs)("button",{className:"w-full md:w-auto uppercase font-medium border-4 border-[var(--color-primary)] text-[var(--color-primary)] py-4 px-8 tracking-widest hover:bg-[var(--color-primary)] hover:text-white transition-all duration-500 text-base md:text-lg rounded-lg flex items-center justify-center",onClick:()=>window.open("https://www.instagram.com/royalindiancuisine_lagos/","_blank"),children:[(0,C.jsx)("i",{className:"fab fa-instagram mr-2 text-xl"}),"en"===e?"See More on Instagram":"pt"===e?"Ver Mais no Instagram":"Vedi di Pi\xf9 su Instagram"]})})]}),(0,C.jsx)(c.Ay,{open:s,close:()=>h(!1),slides:z,index:f,plugins:[d.A,p.A,m.A,g.A],carousel:{finite:N.length<=5},animation:{swipe:250},controller:{closeOnBackdropClick:!0},thumbnails:{position:"bottom",width:120,height:80,gap:10,vignette:!0},video:{autoPlay:!0,controls:!0},styles:{container:{backgroundColor:"rgba(0, 0, 0, .9)"},thumbnailsContainer:{backgroundColor:"rgba(0, 0, 0, .8)"}
1,thumbnail:{border:"2px solid ".concat(r.primary)},thumbnailsTrack:{padding:"10px 0"}}}),(0,C.jsx)("style",{children:"\n        /* Gallery Styles */\n        .gallery-section {\n          padding: 4rem 0;\n          background-color: #fff;\n        }\n\n        /* Gallery Categories Tabs */\n        .gallery-categories {\n          margin-bottom: 30px;\n        }\n        \n        .gallery-tabs {\n          display: flex;\n          justify-content: center;\n          flex-wrap: wrap;\n          gap: 10px;\n        }\n        \n        .gallery-tab:hover {\n          background: #eaeaea;\n          transform: translateY(-2px);\n        }\n        \n        .team-icon {\n          font-size: 0.9em;\n          margin-left: 4px;\n        }\n\n        .gallery-masonry {\n          display: grid;\n          grid-template-columns: repeat(2, 1fr);\n          grid-auto-rows: 1fr;\n          gap: 1rem;\n        }\n\n        @media (min-width: 576px) {\n          .gallery-masonry {\n            grid-template-columns: repeat(2, 1fr);\n          }\n        }\n\n        @media (min-width: 768px) {\n          .gallery-masonry {\n            grid-template-columns: repeat(3, 1fr);\n          }\n        }\n\n        @media (min-width: 1200px) {\n          .gallery-masonry {\n            grid-template-columns: repeat(4, 1fr);\n          }\n        }\n\n        .gallery-item-wrapper {\n          cursor: pointer;\n          overflow: hidden;\n          border-radius: 8px;\n          box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\n          transition: transform 0.3s ease;\n        }\n\n        /* Style for vertical videos (spans two rows) */\n        .vertical-video {\n          grid-row: span 2;\n        }\n\n        /* Make sure vertical videos maintain proper aspect ratio */\n        @media (max-width: 767px) {\n          .vertical-video {\n            grid-column: span 2;\n            grid-row: span 1;\n          }\n        }\n\n        .gallery-item-wrapper:hover {\n          transform: translateY(-5px);\n        }\n\n        .gallery-item {\n          position: relative;\n          overflow: hidden;\n          width: 100%;\n          height: 100%;\n          aspect-ratio: 1;\n        }\n\n        /* For vertical videos, adjust aspect ratio */\n        .vertical-video .gallery-item {\n          height: 100%;\n          aspect-ratio: auto;\n        }\n\n        .vertical-video .gallery-image {\n          height: 100%;\n          object-fit: cover;\n          object-position: center;\n        }\n\n        .gallery-image {\n          width: 100%;\n          height: 100%;\n          object-fit: cover;\n          transition: transform 0.5s ease;\n        }\n\n        .gallery-item-overlay {\n          position: absolute;\n          top: 0;\n          left: 0;\n          width: 100%;\n          height: 100%;\n          background-color: rgba(0, 0, 0, 0.4);\n          display: flex;\n          justify-content: center;\n          align-items: center;\n          opacity: 0;\n          transition: opacity 0.3s ease;\n        }\n\n        .gallery-item:hover .gallery-item-overlay {\n          opacity: 1;\n        }\n\n        .gallery-item:hover .gallery-image {\n          transform: scale(1.1);\n        }\n\n        .gallery-item-icon {\n          color: white;\n          font-size: 1.5rem;\n        }\n\n        /* Image Modal Styles */\n        .image-modal-overlay {\n          position: fixed;\n          top: 0;\n          left: 0;\n          right: 0;\n          bottom: 0;\n          background-color: rgba(0, 0, 0, 0.9);\n          z-index: 1000;\n          display: flex;\n          justify-content: center;\n          align-items: center;\n          padding: 1rem;\n        }\n\n        .image-modal-content {\n          position: relative;\n          max-width: 100%;\n          max-height: 100%;\n          display: flex;\n          flex-direction: column;\n          justify-content: center;\n          align-items: center;\n        }\n\n        .image-modal-img-container {\n          width: 100%;\n          height: 100%;\n          display: flex;\n          align-items: center;\n          justify-content: center;\n          overflow: hidden;\n        }\n\n        .image-modal-img {\n          max-width: 100%;\n          max-height: 85vh;\n          object-fit: contain;\n        }\n\n        .image-modal-counter {\n          color: white;\n          position: absolute;\n          bottom: -25px;\n          font-size: 0.9rem;\n        }\n\n        .image-modal-close {\n          position: absolute;\n          top: -40px;\n          right: 0;\n          background: transparent;\n          border: none;\n          color: white;\n          font-size: 1.5rem;\n          cursor: pointer;\n          padding: 0.5rem;\n          z-index: 1001;\n        }\n\n        .image-modal-nav {\n          position: absolute;\n          top: 50%;\n          transform: translateY(-50%);\n          background: rgba(255, 255, 255, 0.2);\n          border: none;\n          border-radius: 50%;\n          width: 40px;\n          height: 40px;\n          display: flex;\n          align-items: center;\n          justify-content: center;\n          color: white;\n          font-size: 1.2rem;\n          cursor: pointer;\n          transition: background 0.3s ease;\n          z-index: 1001;\n        }\n\n        .image-modal-prev {\n          left: 20px;\n        }\n\n        .image-modal-next {\n          right: 20px;\n        }\n\n        .image-modal-nav:hover {\n          background: rgba(255, 255, 255, 0.4);\n        }\n\n        @media (max-width: 768px) {\n          .image-modal-content {\n            width: 100%;\n          }\n          .image-modal-nav {\n            width: 35px;\n            height: 35px;\n            font-size: 1rem;\n          }\n          .image-modal-close {\n            top: -30px;\n            font-size: 1.2rem;\n          }\n          .gallery-tabs {\n            flex-wrap: wrap;\n            gap: 8px;\n          }\n        }\n\n        /* Mobile Gallery Swiper Styles */\n        .gallery-swiper {\n          width: 100%;\n          padding: 0 10px;\n        }\n\n        .gallery-swiper .swiper-slide {\n          height: 250px;\n          display: flex;\n          align-items: center;\n          justify-content: center;\n        }\n\n        .gallery-swiper .gallery-item {\n          width: 100%;\n          height: 100%;\n          border-radius: 8px;\n          overflow: hidden;\n          box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n        }\n\n        .gallery-swiper .gallery-image {\n          width: 100%;\n          height: 100%;\n          object-fit: cover;\n        }\n\n        .gallery-swiper .swiper-pagination,\n        .swiper-pagination-gallery {\n          position: relative;\n          bottom: 0 !important;\n          margin-top: 15px;\n          display: flex;\n          justify-content: center;\n        }\n\n        .gallery-swiper .swiper-pagination-bullet,\n        .swiper-pagination-gallery .swiper-pagination-bullet {\n          width: 8px;\n          height: 8px;\n          transition: all 0.3s ease;\n          opacity: 0.7;\n          background: #ccc;\n          margin: 0 5px;\n        }\n\n        .gallery-swiper .swiper-pagination-bullet-active,\n        .swiper-pagination-gallery .swiper-pagination-bullet-active {\n          background-color: ".concat(r.primary,";\n          transform: scale(1.3);\n          opacity: 1;\n        }\n\n        @media (max-width: 768px) {\n          .gallery-swiper {\n            margin-bottom: 10px;\n          }\n          .gallery-swiper .swiper-slide {\n            height: 200px;\n          }\n        }\n\n        /* Swipe Hint */\n        .swipe-hint {\n          text-align: center;\n          color: #555;\n          margin: 15px 0 5px;\n          font-size: 0.9rem;\n          opacity: 0.9;\n          animation: fadeInUp 1s ease forwards;\n        }\n        \n        .swipe-hint i {\n          color: ").concat(r.primary,";\n          animation: pulse 1.5s infinite;\n          display: inline-block;\n          margin-right: 6px;\n        }\n        \n        @keyframes pulse {\n          0% {\n            opacity: 0.6;\n            transform: scale(0.9);\n          }\n          50% {\n            opacity: 1;\n            transform: scale(1.1);\n          }\n          100% {\n            opacity: 0.6;\n            transform: scale(0.9);\n          }\n        }\n        \n        @keyframes fadeInUp {\n          from {\n            opacity: 0;\n            transform: translateY(10px);\n          }\n          to {\n            opacity: 0.9;\n            transform: translateY(0);\n          }\n        }\n      ")})]})}},8410:(n,e,a)=>{n.exports=a.p+"static/media/7.bab6a708d416fa43cfc2.mp4"},12027:(n,e,a)=>{a.r(e),a.d(e,{default:()=>s});a(65043);var t=a(74975),i=(a(44014),a(5084),a(15551),a(45856),a(72692)),r=a(70579);const s=n=>{let{images:e,onImageClick:a}=n;return(0,r.jsxs)("div",{className:"gallery-swiper mt-8",children:[(0,r.jsx)(t.RC,{modules:[i.dK,i.Ij,i.t9],spaceBetween:20,slidesPerView:1.3,centeredSlides:!0,pagination:{clickable:!0,el:".swiper-pagination-gallery",bulletActiveClass:"swiper-pagination-bullet-active"},loop:!0,autoplay:{delay:4e3,disableOnInteraction:!1,pauseOnMouseEnter:!0},speed:800,effect:"coverflow",coverflowEffect:{rotate:0,stretch:0,depth:100,modifier:1.5,slideShadows:!0},children:e.map(((n,e)=>(0,r.jsx)(t.qr,{children:(0,r.jsxs)("div",{className:"gallery-item ".concat(n.isVertical?"vertical-video-slide":""),onClick:()=>a(n,e),children:[n.isVideo?(0,r.jsx)("video",{src:n.src,className:"gallery-image",autoPlay:!0,loop:!0,muted:!0,playsInl
1ine:!0}):(0,r.jsx)("img",{src:n.src,alt:"",className:"gallery-image",loading:"lazy"}),(0,r.jsx)("div",{className:"gallery-item-overlay",children:(0,r.jsx)("div",{className:"gallery-item-icon",children:n.isVideo?(0,r.jsx)("i",{className:"fas fa-play"}):(0,r.jsx)("i",{className:"fas fa-search-plus"})})})]})},"slide-".concat(e))))}),(0,r.jsx)("div",{className:"swiper-pagination-gallery",style:{display:"flex",justifyContent:"center",marginTop:"20px"}}),(0,r.jsx)("style",{dangerouslySetInnerHTML:{__html:"\n        .gallery-item {\n          position: relative;\n          overflow: hidden;\n          width: 100%;\n          height: 100%;\n          aspect-ratio: 1;\n          border-radius: 0;\n          box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);\n          transition: transform 0.3s ease;\n        }\n        \n        .gallery-image {\n          width: 100%;\n          height: 100%;\n          object-fit: cover;\n          transition: transform 0.5s ease;\n        }\n        \n        /* Special styling for vertical videos */\n        .vertical-video-slide {\n          aspect-ratio: 9/16;\n          height: 320px;\n        }\n        \n        .vertical-video-slide video {\n          width: 100%;\n          height: 100%;\n          object-fit: cover;\n        }\n        \n        .gallery-item-overlay {\n          position: absolute;\n          top: 0;\n          left: 0;\n          width: 100%;\n          height: 100%;\n          background-color: rgba(0, 0, 0, 0.3);\n          display: flex;\n          justify-content: center;\n          align-items: center;\n          opacity: 0;\n          transition: opacity 0.3s ease;\n        }\n        \n        .gallery-item:hover .gallery-item-overlay {\n          opacity: 1;\n        }\n        \n        .gallery-item-icon {\n          color: white;\n          font-size: 2rem;\n          background-color: rgba(255, 200, 0, 0.8);\n          border-radius: 50%;\n          width: 60px;\n          height: 60px;\n          display: flex;\n          align-items: center;\n          justify-content: center;\n          transform: scale(0.8);\n          transition: transform 0.3s ease;\n        }\n        \n        .gallery-item:hover .gallery-item-icon {\n          transform: scale(1);\n        }\n        \n        .swiper-pagination-bullet {\n          width: 10px;\n          height: 10px;\n          background-color: #ccc;\n          opacity: 0.7;\n          margin: 0 5px;\n          transition: all 0.3s ease;\n        }\n        \n        .swiper-pagination-bullet-active {\n          background-color: #ffc800 !important;\n          transform: scale(1.3);\n          opacity: 1;\n        }\n        \n        .swiper-slide-active .gallery-item {\n          transform: scale(1.05);\n        }\n      "}})]})}},22898:(n,e,a)=>{n.exports=a.p+"static/media/4.6345d270e0fce1d9965d.webp"},25661:(n,e,a)=>{n.exports=a.p+"static/media/5.21372512b1d9756a4bae.webp"},28556:(n,e,a)=>{n.exports=a.p+"static/media/1.824b7274d0a432ec01bc.mp4"},31408:(n,e,a)=>{n.exports=a.p+"static/media/6.18f98383f7510d94d24e.webp"},56945:(n,e,a)=>{n.exports=a.p+"static/media/9.ce4cf9cff06450149dbb.webp"},61679:(n,e,a)=>{n.exports=a.p+"static/media/3.cdabe24c7012108be3af.webp"},92214:(n,e,a)=>{n.exports=a.p+"static/media/8.f718fe54e8459dffdfe2.webp"}}]);
2//# sourceMappingURL=559.deb44d35.chunk.js.map

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.