1import{c as n,r as a,a as e,b as f}from"./index-BTsKHbkE.js";/** 2 * @license lucide-react v0.462.0 - ISC 3 * 4 * This source code is licensed under the ISC license. 5 * See the LICENSE file in the root directory of this source tree. 6 */const y=n("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);/** 7 * @license lucide-react v0.462.0 - ISC 8 * 9 * This source code is licensed under the ISC license. 10 * See the LICENSE file in the root directory of this source tree. 11 */const v=n("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);/** 12 * @license lucide-react v0.462.0 - ISC 13 * 14 * This source code is licensed under the ISC license. 15 * See the LICENSE file in the root directory of this source tree. 16 */const k=n("Menu",[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]]);/** 17 * @license lucide-react v0.462.0 - ISC 18 * 19 * This source code is licensed under the ISC license. 20 * See the LICENSE file in the root directory of this source tree. 21 */const w=n("Moon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]);/** 22 * @license lucide-react v0.462.0 - ISC 23 * 24 * This source code is licensed under the ISC license. 25 * See the LICENSE file in the root directory of this source tree. 26 */const M=n("Sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]),l=768;function g(){const[s,o]=a.useState(void 0);return a.useEffect(()=>{const r=window.matchMedia(`(max-width: ${l-1}px)`),t=()=>{o(window.innerWidth<l)};return r.addEventListener("change",t),o(window.innerWidth<l),()=>r.removeEventListener("change",t)},[]),!!s}const j=({children:s,animation:o="fade-in",threshold:r=.1,once:t=!0,className:m,...h})=>{const[u,x]=a.useState(!1),i=a.useRef(null);return a.useEffect(()=>{const d=new IntersectionObserver(([p])=>{p.isIntersecting?(x(!0),t&&i.current&&d.unobserve(i.current)):t||x(!1)},{threshold:r,rootMargin:"0px 0px -100px 0px"}),c=i.current;return c&&d.observe(c),()=>{c&&d.unobserve(c)}},[r,t]),e.jsx("div",{ref:i,className:f("transition-opacity duration-500",u?`animate-${o}`:"opacity-0",m),...h,children:s})},N=()=>{const s=()=>{window.scrollTo({top:0,behavior:"smooth"})};return e.jsx("footer",{className:"bg-secondary/50 dark:bg-secondary/20 py-10 px-6",children:e.jsxs("div",{className:"max-w-5xl mx-auto",children:[e.jsxs("div",{className:"flex flex-col md:flex-row justify-between items-center",children:[e.jsxs("div",{className:"mb-6 md:mb-0",children:[e.jsxs("div",{className:"text-xl font-serif font-bold text-foreground mb-2",children:["João",e.jsx("span",{className:"text-cloudflare",children:"Tomé"})]}),e.jsx("p",{className:"text-muted-foreground text-sm",children:"Data Editor ⢠Writer ⢠Storyteller"})]}),e.jsx("div",{className:"flex items-center gap-2",children:e.jsx("button",{onClick:s,className:"p-3 rounded-full bg-card dark:bg-card/70 shadow-sm hover:shadow-md transition-shadow","aria-label":"Scroll to top",children:e.jsx(y,{size:20,className:"text-foreground"})})})]}),e.jsx("div",{className:"mt-8 pt-8 border-t border-border text-center",children:e.jsxs("p",{className:"text-muted-foreground text-sm",children:["© ",new Date().getFullYear()," João Tomé. All rights reserved."]})})]})})};export{v as E,N as F,w as M,M as S,k as a,j as b,g as u};
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.