1import{f as L}from"./date-DvFu8Nqb.js";import{d as z,h as $,r as Z,c as n,o as s,a as l,b as g,w as j,p as ee,e as x,f as i,g as y,i as k,j as R,k as o,F as h,l as w,_ as te,N as ae,u as S,t as f,m as A,n as se,q as ne,B as oe,s as le,v as ie,x as re}from"./index-DnHCe6iX.js";import{u as ce}from"./useAvif-DZZmDWul.js";import{s as de,r as ue,_ as _e}from"./RadioGroup-BOh6-tCE.js";import{_ as me}from"./Tree-GZLIUaB5.js";import{_ as ve,a as he}from"./Grid-Dw2Cmv5-.js";import"./use-locale-YH0DJfoG.js";import"./Checkbox-Ci2slcqe.js";import"./next-frame-once-C5Ksf8W7.js";import"./fade-in-height-expand.cssr-8ADOQqih.js";const fe=z({name:"RadioButton",props:ue,setup:de,render(){const{mergedClsPrefix:c}=this;return $("label",{class:[`${c}-radio-button`,this.mergedDisabled&&`${c}-radio-button--disabled`,this.renderSafeChecked&&`${c}-radio-button--checked`,this.focus&&[`${c}-radio-button--focus`]]},$("input",{ref:"inputRef",type:"radio",class:`${c}-radio-input`,value:this.value,name:this.mergedName,checked:this.renderSafeChecked,disabled:this.mergedDisabled,onChange:this.handleRadioInputChange,onFocus:this.handleRadioInputFocus,onBlur:this.handleRadioInputBlur}),$("div",{class:`${c}-radio-button__state-border`}),Z(this.$slots.default,_=>!_&&!this.label?null:$("div",{ref:"labelRef",class:`${c}-radio__label`},_||this.label)))}}),pe={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},ge=z({name:"Grid24Regular",render:function(_,v){return s(),n("svg",pe,v[0]||(v[0]=[l("g",{fill:"none"},[l("path",{d:"M8.75 13A2.25 2.25 0 0 1 11 15.25v3.5A2.25 2.25 0 0 1 8.75 21h-3.5A2.25 2.25 0 0 1 3 18.75v-3.5A2.25 2.25 0 0 1 5.25 13h3.5zm10 0A2.25 2.25 0 0 1 21 15.25v3.5A2.25 2.25 0 0 1 18.75 21h-3.5A2.25 2.25 0 0 1 13 18.75v-3.5A2.25 2.25 0 0 1 15.25 13h3.5zm-10 1.5h-3.5a.75.75 0 0 0-.75.75v3.5c0 .414.336.75.75.75h3.5a.75.75 0 0 0 .75-.75v-3.5a.75.75 0 0 0-.75-.75zm10 0h-3.5a.75.75 0 0 0-.75.75v3.5c0 .414.336.75.75.75h3.5a.75.75 0 0 0 .75-.75v-3.5a.75.75 0 0 0-.75-.75zM8.75 3A2.25 2.25 0 0 1 11 5.25v3.5A2.25 2.25 0 0 1 8.75 11h-3.5A2.25 2.25 0 0 1 3 8.75v-3.5A2.25 2.25 0 0 1 5.25 3h3.5zm10 0A2.25 2.25 0 0 1 21 5.25v3.5A2.25 2.25 0 0 1 18.75 11h-3.5A2.25 2.25 0 0 1 13 8.75v-3.5A2.25 2.25 0 0 1 15.25 3h3.5zm-10 1.5h-3.5a.75.75 0 0 0-.75.75v3.5c0 .414.336.75.75.75h3.5a.75.75 0 0 0 .75-.75v-3.5a.75.75 0 0 0-.75-.75zm10 0h-3.5a.75.75 0 0 0-.75.75v3.5c0 .414.336.75.75.75h3.5a.75.75 0 0 0 .75-.75v-3.5a.75.75 0 0 0-.75-.75z",fill:"currentColor"})],-1)]))}}),ye={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},ke=z({name:"TextBulletListTree24Regular",render:function(_,v){return s(),n("svg",ye,v[0]||(v[0]=[l("g",{fill:"none"},[l("path",{d:"M7.25 17.5a1.25 1.25 0 1 1 0 2.499a1.25 1.25 0 0 1 0-2.499zm3.5.5h10.5a.75.75 0 0 1 .102 1.493l-.102.007h-10.5a.75.75 0 0 1-.102-1.493L10.75 18h10.5h-10.5zm-7.5-7a1.25 1.25 0 1 1 0 2.499a1.25 1.25 0 0 1 0-2.499zm3.5.5h14.5a.75.75 0 0 1 .102 1.493L21.25 13H6.75a.75.75 0 0 1-.102-1.493l.102-.007h14.5h-14.5zm-3.5-7a1.25 1.25 0 1 1 0 2.499a1.25 1.25 0 0 1 0-2.499zm3.5.5h14.5a.75.75 0 0 1 .102 1.493l-.102.007H6.75a.75.75 0 0 1-.102-1.493L6.75 5h14.5h-14.5z",fill:"
1currentColor"})],-1)]))}}),we=c=>(le("data-v-da50ff53"),c=c(),ie(),c),be={class:"home"},$e={key:0,class:"toggle-wrapper"},xe={key:1,class:"tree-view-container"},Se={class:"tree-sidebar"},Ae={class:"tree-content"},ze=["id"],Ce={class:"post-date"},Ie={class:"post-title squid-title"},Be={class:"project-media-container"},Te={key:0},Ee=["srcset"],Fe=["src","alt","onError"],Ne=["src","alt"],Pe=["src","alt","onError"],De=["src"],Le={class:"card-content project-desc"},Re={class:"project-footer"},Ve={class:"card-header"},Me={class:"card-title squid-title"},qe={class:"card-date"},Ge={key:0},He=["srcset"],Ke=["src","alt","onError"],Oe=["src","alt"],Ue=["src","alt","onError"],We=["src"],Ye={class:"card-content"},Je={key:3,class:"sticky-filter-wrapper"},Qe={key:0,class:"filter-space glass-pill"},Xe=we(()=>l("span",null,"Filtering by:",-1)),Ze=z({__name:"Projects",setup(c){const _=g(localStorage.getItem("viewMode")||"tree");j(_,t=>{localStorage.setItem("viewMode",t)});const v=g(null),u=g([]),V=g(ee.filter(t=>!t.hidden)),{deriveAvifPath:M}=ce(),m=g(new Set),B=x(()=>[...V.value].sort((t,a)=>new Date(a.date).getTime()-new Date(t.date).getTime())),q=x(()=>{const t={};return T.value.forEach(a=>{const r=new Date(a.date).getFullYear().toString();t[r]||(t[r]=[]),t[r].push({label:a.name,key:a.name,isLeaf:!0})}),Object.keys(t).sort((a,r)=>Number(r)-Number(a)).map(a=>({label:a,key:`year-${a}`,children:t[a]}))});function G(t,a){if(t.length>0){const r=a[0];if(r!=null&&r.isLeaf){v.value=r.key;const b=`project-${r.key}`,p=document.getElementById(b);p&&p.scrollIntoView({behavior:"smooth",block:"start"})}else v.value=null}else v.value=null}const T=x(()=>u.value.length===0?B.value:B.value.filter(t=>u.value.every(a=>t.keywords.includes(a)))),E=x(()=>T.value.map(t=>{const r=t.src.toLowerCase().endsWith(".avif")?t.src:M(t.src);return{...t,avifSrc:r,originalSrc:t.src}}));function F(t){if(!m.value.has(t.name)){const a=new Set(m.value);a.add(t.name),m.value=a}}function N(t){if(!m.value.has(t.name)){const a=new Set(m.value);a.add(t.name),m.value=a}}function P(t){const a=u.value.indexOf(t);a===-1?u.value.push(t):u.value.splice(a,1)}function H(t){const a=u.value.indexOf(t);a>-1&&u.value.splice(a,1)}function K(){u.value=[]}return(t,a)=>{const r=R("router-view"),b=ae,p=fe,O=_e,U=me,D=R("router-link"),C=se,I=te,W=ne,Y=he,J=ve,Q=oe;return s(),n("div",be,[i(r),t.$route.name==="projects"?(s(),n("div",$e,[i(O,{value:_.value,"onUpdate:value":a[0]||(a[0]=e=>_.value=e),size:"medium"},{default:o(()=>[i(p,{value:"tree",title:"Tree View"},{default:o(()=>[i(b,{size:"18",style:{"vertical-align":"middle"}},{default:o(()=>[i(S(ke))]),_:1})]),_:1}),i(p,{value:"grid",title:"Grid View"},{default:o(()=>[i(b,{size:"18",style:{"vertical-align":"middle"}},{default:o(()=>[i(S(ge))]),_:1})]),_:1})]),_:1},8,["value"])])):y("",!0),t.$route.name==="projects"&&_.value==="tree"?(s(),n("div",xe,[l("div",Se,[i(U,{"block-line":"","expand-on-click":"",selectable:"","default-expand-all":"",data:q.value,"onUpdate:selectedKeys":G},null,8,["data"])]),l("div",Ae,[(s(!0),n(h,null,w(E.value,e=>(s(),n("div",{key:e.name,id:"project-"+e.name,class:"project-details"},[l("div",Ce,f(S(L)(e.date)),1),l("div",Ie,f(e.name),1),l("div",Be,[i(D,{to:{name:e.routeName}},{default:o(()=>[e.srcType==="image"?(s(),n(h,{key:0},[m.value.has(e.name)?(s(),n("img",{key:1,class:"project-media",src:e.originalSrc,alt:e.name+" preview",loading:"lazy"},null,8,Ne)):(s(),n("picture",Te,[l("source",{srcset:e.avifSrc,type:"image/avif"},null,8,Ee),l("img",{class:"project-media",src:e.originalSrc,alt:e.name+" preview",loading:"lazy",onError:d=>F(e)},null,40,Fe)]))],64)):(s(),n(h,{key:1},[m.value.has(e.name)?(s(),n("video",{key:1,class:"project-media",src:e.originalSrc,autoplay:"",loop:"",muted:"",playsinline:"",preload:"auto"},null,8,De)):(s(),n("img",{key:0,class:"project-media",src:e.avifSrc,alt:e.name+" video preview",loading:"lazy",onError:d=>N(e)},null,40,Pe))],64))]),_:2},1032,["to"])]),l("div",Le,f(e.description),1),l("div",Re,[i(I,null,{default:o(()=>[(s(!0),n(h,null,w(e.keywords,d=>(s(),k(C,{size:"small",key:d,class:"keyword-tag",type:u.value.includes(d)?"info":"success",bordered:!1,onClick:X=>P(d)},{default:o(()=>[A(f(d),1)]),_:2},1032,["type","onClick"]))),128))]),_:2},1024)])],8,ze))),128))])])):y("",!0),t.$route.name==="projects"&&_.value==="grid"?(s(),k(J,{key:2,cols:"1 s:2 m:2 l:3","x-gap":24,"y-gap":24,responsive:"screen"},{default:o(()=>[(s(!0),n(h,null,w(E.value,e=>(s(),k(Y,{key:e.name},{default:o(()=>[i(W,{class:"card",hoverable:""},{header:o(()=>[l("div",Ve,[l("span",Me,f(e.name),1),l("span",qe,f(S(L)(e.date)),1)])]),cover:o(()=>[i(D,{to:{name:e.routeName}},{default:o(()=>[e.srcType==="image"?(s(),n(h,{key:0},[m.value.has(e.name)?(s(),n("img",{key:1,class:"card-image",src:e.originalSrc,alt:e.name+" preview"},null,8,Oe)):(s(),n("picture",Ge,[l("source",{srcset:e.avifSrc,type:"image/avif"},null,8,He),l("img",{class:"card-image",src:e.originalSrc,alt:e.name+" preview",onError:d=>F(e)},null,40,Ke)]))],64)):(s(),n(h,{key:1},[m.value.has(e.name)?(s(),n("video",{key:1,class:"card-video",src:e.originalSrc,autoplay:"",loop:"",muted:"",playsinline:"",preload:"auto"},null,8,We)):(s(),n("img",{key:0,class:"card-image",src:e.avifSrc,alt:e.name+" video preview",onError:d=>N(e)},null,40,Ue))],64))]),_:2},1032,["to"])]),footer:o(()=>[i(I,null,{default:o(()=>
1[(s(!0),n(h,null,w(e.keywords,d=>(s(),k(C,{size:"small",key:d,class:"keyword-tag",type:u.value.includes(d)?"info":"success",bordered:!1,onClick:X=>P(d)},{default:o(()=>[A(f(d),1)]),_:2},1032,["type","onClick"]))),128))]),_:2},1024)]),default:o(()=>[l("div",Ye,f(e.description),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})):y("",!0),t.$route.name==="projects"?(s(),n("div",Je,[u.value.length>0?(s(),n("div",Qe,[i(I,{align:"center"},{default:o(()=>[Xe,(s(!0),n(h,null,w(u.value,e=>(s(),k(C,{key:e,type:"info",closable:"",onClose:d=>H(e)},{default:o(()=>[A(f(e),1)]),_:2},1032,["onClose"]))),128)),i(Q,{text:"",type:"error",onClick:K},{default:o(()=>[A("Clear All")]),_:1})]),_:1})])):y("",!0)])):y("",!0)])}}}),ct=re(Ze,[["__scopeId","data-v-da50ff53"]]);export{ct as default};
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.