(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8974],{4102:(e,t,i)=>{"use strict";i.d(t,{Ay:()=>n});var o=i(5155),a=i(2115);function n(e){let{src:t,alt:i,className:n="",size:s="full",isModal:l=!1,loading:c="lazy",onLoad:r,onError:d,onClick:m,style:u,draggable:h=!1,onContextMenu:b,title:g,"aria-label":p,objectFit:v="contain",...j}=e,[x,f]=(0,a.useState)(""),[w,y]=(0,a.useState)(!1),[N,k]=(0,a.useState)(!1),[C,F]=(0,a.useState)(!0);return((0,a.useEffect)(()=>{l||"full"===s?f(t):f(function(e){if(!e||e.startsWith("data:")||e.startsWith("http")||e.includes("/icons/")||e.toLowerCase().endsWith(".gif"))return e;let t=(e.startsWith("/")?e.slice(1):e).split("/"),i=t[t.length-1].replace(/\.[^/.]+$/,""),o=e.toLowerCase();return o.includes(".mp4")||o.includes(".webm")||o.includes(".mov")||o.includes(".avi")?"/thumbnails/".concat(i,".webm"):"/thumbnails/".concat(i,".webp")}(t)),y(!1),k(!1),F(!0)},[t,s,l]),x&&""!==x)?(0,o.jsxs)("div",{className:"optimized-image-container",style:{position:"relative",width:"100%",height:"100%"},children:[C&&"thumbnail"===s&&(0,o.jsx)("div",{className:"image-loading-overlay",children:(0,o.jsx)("div",{className:"image-throbber"})}),(0,o.jsx)("img",{src:x,alt:i,className:"optimized-image ".concat(n," ").concat(N?"loaded":"loading"),loading:c,onLoad:()=>{k(!0),F(!1),r&&r()},onError:()=>{F(!1),w||l||"full"===s?d&&d():(y(!0),f(t),F(!0))},onClick:m,style:{...(()=>{let e={};switch(v){case"cover":default:e.objectFit="cover";break;case"contain":e.objectFit="contain";break;case"align-top":e.objectFit="cover",e.objectPosition="top center";break;case"align-bottom":e.objectFit="cover",e.objectPosition="bottom center";break;case"align-left":e.objectFit="cover",e.objectPosition="left center";break;case"align-right":e.objectFit="cover",e.objectPosition="right center";break;case"align-centre":e.objectFit="cover",e.objectPosition="center center"}return e})(),...u,opacity:+!!N,transition:"opacity 0.3s ease-in-out"},draggable:h,onContextMenu:b,title:g,"aria-label":p,...j})]}):null}},4396:(e,t,i)=>{Promise.resolve().then(i.bind(i,9428))},8805:()=>{},9428:(e,t,i)=>{"use strict";i.r(t),i.d(t,{default:()=>v});var o=i(5155),a=i(2115),n=i(5695);i(8805),i(4393),i(2015);var s=i(9848),l=i(4102);function c(e){let{src:t,alt:i="",className:n="",size:s="full",isModal:l=!1,loading:c="lazy",onLoad:r,onError:d,onClick:m,style:u,onContextMenu:h,title:b,"aria-label":g,objectFit:p="contain",autoPlay:v=!0,loop:j=!0,muted:x=!0,controls:f=!1,...w}=e,[y,N]=(0,a.useState)(""),[k,C]=(0,a.useState)(!1),[F,W]=(0,a.useState)(!1),[M,z]=(0,a.useState)(!0),E=(0,a.useRef)(null);(0,a.useEffect)(()=>{l||"full"===s?N(t):N(function(e){if(!e||e.startsWith("data:")||e.startsWith("http"))return e;let t=(e.startsWith("/")?e.slice(1):e).split("/"),i=t[t.length-1].replace(/\.[^/.]+$/,"");return"/thumbnails/".concat(i,".webm")}(t)),C(!1),W(!1),z(!0)},[t,s,l]);let S=()=>{W(!0),z(!1),r&&r()},P=()=>{if(z(!1),k||l||"full"===s)d&&d();else{C(!0);let e=(t.startsWith("/")?t.slice(1):t).split("/"),i=e[e.length-1].replace(/\.[^/.]+$/,"");N("/thumbnails/".concat(i,".webp")),z(!0)}},D=()=>{let e={};switch(p){case"cover":default:e.objectFit="cover";break;case"contain":e.objectFit="contain";break;case"align-top":e.objectFit="cover",e.objectPosition="top center";break;case"align-bottom":e.objectFit="cover",e.objectPosition="bottom center";break;case"align-left":e.objectFit="cover",e.objectPosition="left center";break;case"align-right":e.objectFit="cover",e.objectPosition="right center";break;case"align-centre":e.objectFit="cover",e.objectPosition="center center"}return e};if(!y||""===y)return null;let L=M&&"thumbnail"===s;return k&&y.endsWith(".webp")?(0,o.jsxs)("div",{className:"optimized-video-container",style:{position:"relative",width:"100%",height:"100%"},children:[L&&(0,o.jsx)("div",{className:"image-loading-overlay",children:(0,o.jsx)("div",{className:"image-throbber"})}),(0,o.jsx)("img",{src:y,alt:i,className:"optimized-video ".concat(n," ").concat(F?"loaded":"loading"),loading:c,onLoad:S,onError:P,onClick:m,style:{...D(),...u,opacity:+!!F,transition:"opacity 0.3s ease-in-out"},onContextMenu:h,title:b,"aria-label":g,...w})]}):(0,o.jsxs)("div",{className:"optimized-video-container",style:{position:"relative",width:"100%",height:"100%"},children:[L&&(0,o.jsx)("div",{className:"image-loading-overlay",children:(0,o.jsx)("div",{className:"image-throbber"})}),(0,o.jsx)("video",{ref:E,src:y,className:"optimized-video ".concat(n," ").concat(F?"loaded":"loading"),onLoadedData:S,onError:P,onClick:m,style:{...D(),...u,opacity:+!!F,transition:"opacity 0.3s ease-in-out",width:"100%",height:"100%",borderRadius:"7px"},onContextMenu:h,title:b,"aria-label":g,autoPlay:v&&!l,loop:j,muted:x,controls:f||l,playsInline:!0,...w})]})}function r(e){let{src:t,alt:i,className:n="",size:s="full",isModal:r=!1,loading:d="lazy",onLoad:m,onError:u,onClick:h,style:b,draggable:g=!1,onContextMenu:p,title:v,"aria-label":j,objectFit:x="contain",...f}=e;return(0,a.useMemo)(()=>{let e=t.toLowerCase();return e.includes(".mp4")||e.includes(".webm")||e.includes(".mov")||e.includes(".avi")},[t])?(0,o.jsx)(c,{src:t,alt:i,className:n,size:s,isModal:r,loading:d,onLoad:m,onError:u,onClick:h,style:b,onContextMenu:p,title:v,"aria-label":j,objectFit:x,autoPlay:!r,loop:!r,muted:!0,controls:r,...f}):(0,o.jsx)(l.Ay,{src:t,alt:i,className:n,size:s,isModal:r,loading:d,onLoad:m,onError:u,onClick:h,style:b,draggable:g,onContextMenu:p,title:v,"aria-label":j,objectFit:x,...f})}var d=i(3395);let m=()=>Object.keys(d.m).filter(e=>{let t=e.startsWith("/images/")&&(e.endsWith(".webp")||e.endsWith(".jpg")||e.endsWith(".png")||e.endsWith(".gif")),i=e.startsWith("/videos/")&&(e.endsWith(".mp4")||e.endsWith(".webm")||e.endsWith(".mov")||e.endsWith(".avi"));return t||i}),u=e=>e.startsWith("/videos/")&&(e.endsWith(".mp4")||e.endsWith(".webm")||e.endsWith(".mov")||e.endsWith(".avi")),h=e=>{let t=[...e];for(let e=t.length-1;e>0;e--){let i=Math.floor(Math.random()*(e+1));[t[e],t[i]]=[t[i],t[e]]}return t},b=(e,t,i)=>{let o=h(e),a=[],n=0,s=t*i*2,l=[];for(;l.length{let{isOpen:t,onClose:i,image:l}=e,c=(0,n.useRouter)();if(!t||!l)return null;let m=d.m[l]||{title:"Media Information",description:"No specific information is available for this item."},h=e=>{e.preventDefault()};return(0,o.jsx)("div",{className:"modal-overlay",onClick:i,onContextMenu:h,onKeyDown:e=>{(e.ctrlKey||e.metaKey)&&("s"===e.key||"p"===e.key||"c"===e.key)&&e.preventDefault()},tabIndex:0,children:(0,o.jsxs)("div",{className:"modal-content ".concat(m.redirectUrl?"has-redirect-button":""),onClick:e=>e.stopPropagation(),onContextMenu:h,children:[(0,o.jsx)("button",{className:"modal-close",onClick:i,"aria-label":"Close",children:(0,o.jsx)(s.WQq,{})}),(0,o.jsx)("div",{className:"modal-media-container",children:(0,o.jsx)("div",{style:{position:"relative",height:"100%",display:"flex",alignItems:"center"},children:u(l)?(0,o.jsx)("video",{src:l,controls:!0,className:"modal-media modal-video",style:{maxWidth:"100%",maxHeight:"100%",objectFit:"contain"},onClick:e=>e.stopPropagation(),onDoubleClick:e=>e.stopPropagation(),onMouseDown:e=>e.stopPropagation(),onMouseUp:e=>e.stopPropagation()}):(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(r,{src:l,alt:m.title,size:"full",isModal:!0,className:"modal-media modal-image protected-image",draggable:!1,onContextMenu:h,objectFit:m.objectFit||"contain"}),(0,o.jsx)("div",{className:"modal-protection"})]})})}),(0,o.jsxs)("div",{className:"modal-info-container",children:[m.type&&(0,o.jsx)("p",{className:"modal-type",children:m.type}),(0,o.jsx)("h2",{className:"modal-title",children:m.title}),(0,o.jsx)("div",{className:"modal-description",children:m.description.split("\n").map((e,t)=>(0,o.jsxs)(a.Fragment,{children:[e,t{i(),c.push(m.redirectUrl)},"aria-label":"Visit related page",children:[(0,o.jsx)("span",{className:"modal-redirect-text",children:"Visit Page"}),(0,o.jsx)(r,{src:m.redirectIcon||"/images/icons/general/arrow_right-64px.png",alt:"Redirect icon",className:"modal-redirect-icon",size:"thumbnail",loading:"eager",draggable:!1,onContextMenu:e=>e.preventDefault(),objectFit:"contain"})]})]})})},p={showOnMobile:!0,platforms:[{name:"Reddit",icon:"/images/icons/websites/reddit-64px.png",url:"https://reddit.com/r/liliovali",color:"#FF4500"},{name:"Discord",icon:"/images/icons/websites/discord-64px.png",url:"https://discordapp.com/channels/@me/liliovali/",color:"#5865F2"},{name:"Instagram",icon:"/images/icons/websites/instagram-64px.png",url:"https://instagram.com/liliovali",color:"linear-gradient(45deg, #FFDC80 0%, #E4405F 50%, #405DE6 100%)"},{name:"YouTube",icon:"/images/icons/websites/youtube-64px.png",url:"https://youtube.com/@liliovali",color:"#FF0000"}]};function v(){let[e,t]=(0,a.useState)([]),[i,n]=(0,a.useState)(!1),[l,c]=(0,a.useState)(null),[u,h]=(0,a.useState)(120),[v,j]=(0,a.useState)(!1),[x,f]=(0,a.useState)(!1),[w,y]=(0,a.useState)(!1),[N,k]=(0,a.useState)(!1);(0,a.useEffect)(()=>{t(b(m(),5,30))},[]),(0,a.useEffect)(()=>{e.length>0&&!N&&(k(!0),setTimeout(()=>{var t;let i=document.querySelectorAll(".grid-item"),o=(null==(t=e[0])?void 0:t.length)||0;i.forEach((e,t)=>{let i=Math.floor(t/(2*o));setTimeout(()=>{e.style.animation="cascadeBounceIn 0.6s ease-out forwards",setTimeout(()=>{e.style.animation="",e.style.transform="scale(1)",e.style.opacity="1"},600)},20*(i+t%(2*o)+i*(window.innerWidth<=768?.5:-2)))})},300))},[e,N]),(0,a.useEffect)(()=>{let e=()=>{f(window.innerWidth<=768)};e(),window.addEventListener("resize",e);let t=setTimeout(()=>{"true"!==sessionStorage.getItem("constructionNoticeDismissed")&&j(!0)},100);return()=>{window.removeEventListener("resize",e),clearTimeout(t)}},[]),(0,a.useEffect)(()=>{let e=()=>{let e=window.innerHeight;window.innerWidth<=768?h(Math.max(Math.floor((e-120-20)/5),50)):h(Math.max(Math.floor((e-60-40)/5),80))};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]);let C=e=>{c(e),n(!0)},F=()=>{y(!0),setTimeout(()=>{j(!1),y(!1),sessionStorage.setItem("constructionNoticeDismissed","true")},x?250:300)};return(0,o.jsxs)("main",{className:"new-home-main",children:[v&&!x&&(0,o.jsxs)("div",{className:"construction-notice-desktop ".concat(w?"closing":""),children:[(0,o.jsx)("button",{className:"construction-close-btn",onClick:F,"aria-label":"Close construction notice",children:(0,o.jsx)(s.WQq,{})}),(0,o.jsx)("h3",{className:"construction-title",children:"Under Construction"}),(0,o.jsx)("p",{className:"construction-body",children:"This website is still in development ! \xa0\xa0I'm working hard to add my portfolio of creative works, and am always working on new projects too ! \xa0\xa0Check back occasionally to see what I've been up to !"})]}),v&&x&&(0,o.jsx)("div",{className:"construction-notice-mobile ".concat(w?"closing":""),children:(0,o.jsxs)("div",{className:"construction-content-mobile",children:[(0,o.jsxs)("div",{className:"construction-text-mobile",children:[(0,o.jsx)("h4",{className:"construction-title-mobile",children:"Under Construction"}),(0,o.jsx)("p",{className:"construction-body-mobile",children:"Check back soon for new content!"})]}),(0,o.jsx)("button",{className:"construction-close-btn-mobile",onClick:F,"aria-label":"Close construction notice",children:(0,o.jsx)(s.WQq,{})})]})}),(0,o.jsx)("div",{className:"scrolling-grid-container",children:(0,o.jsx)("div",{className:"scrolling-grid",children:e.map((e,t)=>(0,o.jsx)("div",{className:"grid-row",style:{height:"".concat(u,"px")},children:(0,o.jsx)("div",{className:"grid-row-content",style:{"--animation-duration":"120s","--animation-delay":"".concat(-(24*t),"s")},children:[...e,...e].map((e,i)=>{var a,n;return(0,o.jsx)("div",{className:"grid-item",style:{width:"".concat(u,"px"),height:"".concat(u,"px")},onClick:()=>C(e),children:(0,o.jsx)(r,{src:e,alt:(null==(a=d.m[e])?void 0:a.title)||"Gallery media",className:"grid-image",size:"thumbnail",loading:t<2?"eager":"lazy",draggable:!1,onContextMenu:e=>e.preventDefault(),objectFit:(null==(n=d.m[e])?void 0:n.objectFit)||"cover"})},"".concat(t,"-").concat(i))})})},t))})}),(0,o.jsxs)("a",{href:"https://ko-fi.com/liliovali#",target:"_blank",rel:"noopener noreferrer",className:"kofi-button ".concat(v&&x?"kofi-button-elevated":""),"aria-label":"Support my work on Ko-fi",children:[(0,o.jsx)(r,{src:"/images/icons/websites/ko-fi_logo.webp",alt:"Ko-fi logo",className:"kofi-logo",size:"thumbnail",loading:"eager",draggable:!1,onContextMenu:e=>e.preventDefault(),objectFit:"contain"}),(0,o.jsx)("span",{className:"kofi-text",children:"support my work !"})]}),(!x||p.showOnMobile)&&(0,o.jsx)("div",{className:"social-buttons-container ".concat(v&&x?"social-buttons-elevated":""),children:p.platforms.map((e,t)=>(0,o.jsx)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:"social-button",style:{"--platform-color":e.color,"--button-index":t},"aria-label":"Visit ".concat(e.name),children:(0,o.jsx)(r,{src:e.icon,alt:"".concat(e.name," logo"),className:"social-logo",size:"thumbnail",loading:"eager",draggable:!1,onContextMenu:e=>e.preventDefault(),objectFit:"contain"})},e.name))}),(0,o.jsx)(g,{isOpen:i,onClose:()=>{n(!1),c(null)},image:l})]})}}},e=>{var t=t=>e(e.s=t);e.O(0,[2692,4786,9270,8640,2274,8441,1684,7358],()=>t(4396)),_N_E=e.O()}]);