import{d as T,y as j,z as $,r as D,g as L,n as U,A as V,B as H,C as z,D as M,E as B,F as O,G as W,H as F,I as G,l as g,h as E,j as J,k as K,J as Q,K as Y,L as X,M as Z,_ as w,c as P,o as N,a as C,b as S,N as q,e as A,O as ee,u as te,q as ae,P as ne}from"./DBu2NbMf.js";const re=(...t)=>t.find(a=>a!==void 0);function le(t){const a=t.componentName||"NuxtLink";function s(e){return typeof e=="string"&&e.startsWith("#")}function b(e,i,v){const r=v??t.trailingSlash;if(!e||r!=="append"&&r!=="remove")return e;if(typeof e=="string")return k(e,r);const u="path"in e&&e.path!==void 0?e.path:i(e).path;return{...e,name:void 0,path:k(u,r)}}function R(e){const i=j(),v=K(),r=g(()=>!!e.target&&e.target!=="_self"),u=g(()=>{const o=e.to||e.href||"";return typeof o=="string"&&E(o,{acceptRelative:!0})}),p=O("RouterLink"),h=p&&typeof p!="string"?p.useLink:void 0,f=g(()=>{if(e.external)return!0;const o=e.to||e.href||"";return typeof o=="object"?!1:o===""||u.value}),l=g(()=>{const o=e.to||e.href||"";return f.value?o:b(o,i.resolve,e.trailingSlash)}),_=f.value?void 0:h?.({...e,to:l}),m=g(()=>{const o=e.trailingSlash??t.trailingSlash;if(!l.value||u.value||s(l.value))return l.value;if(f.value){const y=typeof l.value=="object"&&"path"in l.value?F(l.value):l.value,x=typeof y=="object"?i.resolve(y).href:y;return k(x,o)}return typeof l.value=="object"?i.resolve(l.value)?.href??null:k(J(v.app.baseURL,l.value),o)});return{to:l,hasTarget:r,isAbsoluteUrl:u,isExternal:f,href:m,isActive:_?.isActive??g(()=>l.value===i.currentRoute.value.path),isExactActive:_?.isExactActive??g(()=>l.value===i.currentRoute.value.path),route:_?.route??g(()=>i.resolve(l.value)),async navigate(o){await Q(m.value,{replace:e.replace,external:f.value||r.value})}}}return T({name:a,props:{to:{type:[String,Object],default:void 0,required:!1},href:{type:[String,Object],default:void 0,required:!1},target:{type:String,default:void 0,required:!1},rel:{type:String,default:void 0,required:!1},noRel:{type:Boolean,default:void 0,required:!1},prefetch:{type:Boolean,default:void 0,required:!1},prefetchOn:{type:[String,Object],default:void 0,required:!1},noPrefetch:{type:Boolean,default:void 0,required:!1},activeClass:{type:String,default:void 0,required:!1},exactActiveClass:{type:String,default:void 0,required:!1},prefetchedClass:{type:String,default:void 0,required:!1},replace:{type:Boolean,default:void 0,required:!1},ariaCurrentValue:{type:String,default:void 0,required:!1},external:{type:Boolean,default:void 0,required:!1},custom:{type:Boolean,default:void 0,required:!1},trailingSlash:{type:String,default:void 0,required:!1}},useLink:R,setup(e,{slots:i}){const v=j(),{to:r,href:u,navigate:p,isExternal:h,hasTarget:f,isAbsoluteUrl:l}=R(e),_=$(!1),m=D(null),o=c=>{m.value=e.custom?c?.$el?.nextElementSibling:c?.$el};function y(c){return!_.value&&(typeof e.prefetchOn=="string"?e.prefetchOn===c:e.prefetchOn?.[c]??t.prefetchOn?.[c])&&(e.prefetch??t.prefetch)!==!1&&e.noPrefetch!==!0&&e.target!=="_blank"&&!oe()}async function x(c=L()){if(_.value)return;_.value=!0;const d=typeof r.value=="string"?r.value:h.value?F(r.value):v.resolve(r.value).fullPath,n=h.value?new URL(d,window.location.href).href:d;await Promise.all([c.hooks.callHook("link:prefetch",n).catch(()=>{}),!h.value&&!f.value&&G(r.value,v).catch(()=>{})])}if(y("visibility")){const c=L();let d,n=null;U(()=>{const I=ue();V(()=>{d=H(()=>{m?.value?.tagName&&(n=I.observe(m.value,async()=>{n?.(),n=null,await x(c)}))})})}),z(()=>{d&&M(d),n?.(),n=null})}return()=>{if(!h.value&&!f.value&&!s(r.value)){const n={ref:o,to:r.value,activeClass:e.activeClass||t.activeClass,exactActiveClass:e.exactActiveClass||t.exactActiveClass,replace:e.replace,ariaCurrentValue:e.ariaCurrentValue,custom:e.custom};return e.custom||(y("interaction")&&(n.onPointerenter=x.bind(null,void 0),n.onFocus=x.bind(null,void 0)),_.value&&(n.class=e.prefetchedClass||t.prefetchedClass),n.rel=e.rel||void 0),B(O("RouterLink"),n,i.default)}const c=e.target||null,d=re(e.noRel?"":e.rel,t.externalRelAttribute,l.value||f.value?"noopener noreferrer":"")||null;return e.custom?i.default?i.default({href:u.value,navigate:p,prefetch:x,get route(){if(!u.value)return;const n=new URL(u.value,window.location.href);return{path:n.pathname,fullPath:n.pathname,get query(){return W(n.search)},hash:n.hash,params:{},name:void 0,matched:[],redirectedFrom:void 0,meta:{},href:u.value}},rel:d,target:c,isExternal:h.value||f.value,isActive:!1,isExactActive:!1}):null:B("a",{ref:m,href:u.value||null,rel:d,target:c,onClick:n=>{if(!(h.value||f.value))return n.preventDefault(),e.replace?v.replace(u.value):v.push(u.value)}},i.default?.())}}})}const se=le(Z);function k(t,a){const s=a==="append"?Y:X;return E(t)&&!t.startsWith("http")?t:s(t,!0)}function ue(){const t=L();if(t._observer)return t._observer;let a=null;const s=new Map,b=(e,i)=>(a||=new IntersectionObserver(v=>{for(const r of v){const u=s.get(r.target);(r.isIntersecting||r.intersectionRatio>0)&&u&&u()}}),s.set(e,i),a.observe(e),()=>{s.delete(e),a?.unobserve(e),s.size===0&&(a?.disconnect(),a=null)});return t._observer={observe:b}}const ie=/2g/;function oe(){const t=navigator.connection;return!!(t&&(t.saveData||ie.test(t.effectiveType)))}const ce={},fe={class:"navbar"},ve={class:"navbar-brand"},de={class:"navbar-right"};function he(t,a){const s=se;return N(),P("nav",fe,[C("div",ve,[S(s,{to:"/"},{default:q(()=>[...a[0]||(a[0]=[A("> ruipereira.dev",-1)])]),_:1})]),C("div",de,[S(s,{to:"/about"},{default:q(()=>[...a[1]||(a[1]=[A("About",-1)])]),_:1}),a[3]||(a[3]=C("span",{class:"separator"},"//",-1)),S(s,{to:"/projects"},{default:q(()=>[...a[2]||(a[2]=[A("Projects",-1)])]),_:1})])])}const _e=Object.assign(w(ce,[["render",he],["__scopeId","data-v-57a3a3ea"]]),{__name:"Navbar"}),ge={class:"footer"},be=T({__name:"Footer",setup(t){const a=new Date().getFullYear();return(s,b)=>(N(),P("footer",ge," © 2018 - "+ee(te(a))+" Rui Pereira ",1))}}),pe=Object.assign(w(be,[["__scopeId","data-v-fb2a735d"]]),{__name:"Footer"}),me={},ye={class:"main"};function xe(t,a){const s=_e,b=pe;return N(),P(ne,null,[S(s),C("main",ye,[ae(t.$slots,"default",{},void 0,!0)]),S(b)],64)}const ke=w(me,[["render",xe],["__scopeId","data-v-9f6a13a6"]]);export{ke as default};