PageSourceSearch

https://cristian-prunaru.com/_nuxt/CN6PIP4h.js

js cristian-prunaru.com collected 2026-10-02 01:26:33 UTC 15,455 bytes, 32 lines download raw bytes

1import{p as Z,s as ee,_ as te,c as se,i as oe,b as ie,T as ne}from"./g-zLAJC-.js";import{I as ce,C as ae}from"./q8_rkKdg.js";import{c as k,X as le,U as re}from"./DTPuilTS.js";import{e as F,r as de,c as n,o,a as t,b as h,A as L,w as B,m as d,u as s,T as I,t as r,_ as $,s as ue,l as P,F as g,i as x,C as he,n as l,h as m,D as ve,g as pe,f as A,j as D}from"#entry";import{a as me}from"./Cz58xXqY.js";import"./BWE-XP1_.js";/**
2 * @license lucide-vue-next v0.544.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 _e=k("cog",[["path",{d:"M11 10.27 7 3.34",key:"16pf9h"}],["path",{d:"m11 13.73-4 6.93",key:"794ttg"}],["path",{d:"M12 22v-2",key:"1osdcq"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M14 12h8",key:"4f43i9"}],["path",{d:"m17 20.66-1-1.73",key:"eq3orb"}],["path",{d:"m17 3.34-1 1.73",key:"2wel8s"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"m20.66 17-1.73-1",key:"sg0v6f"}],["path",{d:"m20.66 7-1.73 1",key:"1ow05n"}],["path",{d:"m3.34 17 1.73-1",key:"nuk764"}],["path",{d:"m3.34 7 1.73 1",key:"1ulond"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["circle",{cx:"12",cy:"12",r:"8",key:"46899m"}]]);/**
7 * @license lucide-vue-next v0.544.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 ye=k("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/**
12 * @license lucide-vue-next v0.544.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 be=k("lightbulb",[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]]);/**
17 * @license lucide-vue-next v0.544.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 ge=k("rocket",[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]]);/**
22 * @license lucide-vue-next v0.544.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 ke=k("target",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]);/**
27 * @license lucide-vue-next v0.544.0 - ISC
28 *
29 * This source code is licensed under the ISC license.
30 * See the LICENSE file in the root directory of this source tree.
31 */const fe=k("trending-up",[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]]),xe=["src","alt"],we={class:"modal-content",role:"dialog","aria-modal":"true"},Te=["src","alt"],Se={key:0,class:"modal-caption"},Ce=F({__name:"ExpandableImage",props:{src:{},thumbnailSrc:{},alt:{},caption:{},imgStyle:{}},emits:["close"],setup(V,{expose:S,emit:e}){const C=e,y=de(!1);S({open:w,close:f,isOpen:y});function w(){y.value=!0,document.body.style.overflow="hidden"}function f(){y.value=!1,document.body.style.overflow="",C("close")}function T(u){u.target===u.currentTarget&&f()}return(u,v)=>{const _=le;return o(),n("div",null,[t("img",{src:u.thumbnailSrc?u.thumbnailSrc:u.src,alt:u.alt||"Expandable image",class:"expandable-image",style:L(u.imgStyle),onClick:w},null,12,xe),h(I,{name:"modal-fade"},{default:B(()=>[s(y)?(o(),n("div",{key:0,class:"modal-overlay",onClick:T},[t("div",we,[h(I,{name:"image-scale",appear:""},{default:B(()=>[t("img",{src:u.src,alt:u.alt||"Expanded image",class:"modal-image",loading:"lazy",decoding:"async"},null,8,Te)]),_:1}),u.caption?(o(),n("p",Se,r(u.caption),1)):d("",!0),t("button",{class:"modal-close-btn",onClick:f,"aria-label":"Close image modal"},[h(_)])])])):d("",!0)]),_:1})])}}}),Ae=Object.assign($(Ce,[["__scopeId","data-v-4793dd9f"]]),{__name:"ExpandableImage"}),je={key:0,id:"hero",class:"project-hero sec-secondary"},Le={class:"container hero-container"},Me={class:"hero-grid"},Be={class:"hero-info"},Ie={class:"hero-header-group"},Pe={class:"preserve-lines"},De={class:"technologies-used"},Fe={class:"hero-image"},$e=["src","alt"],Ve={key:1,id:"hero",class:"project-hero sec-secondary"},ze={class:"container reusable-container"},Ee={class:"section-header"},Ne={class:"section-icon si-blue"},Re={class:"preserve-lines"},Oe={class:"container reusable-container"},Ue={class:"section-header"},qe={class:"section-icon si-red"},He={class:"preserve-lines"},We={class:"container reusable-container"},Ke={class:"section-header"},Xe={class:"section-icon si-green"},Ye={class:"preserve-lines"},Ge={class:"container reusable-container"},Je={class:"section-header"},Qe={class:"section-icon si-blue"},Ze={class:"tech-stack"},et={class:"container reusable-container"},tt={class:"section-header"},st={class:"section-icon si-orange"},ot={class:"preserve-lines"}
31,it={class:"container visuals-container"},nt={class:"section-header"},ct={class:"section-icon si-purple"},at={key:0,class:"visual-item"},lt={key:1,class:"visual-item"},rt=["src","poster"],dt={key:2,class:"caption preserve-lines"},ut={class:"container technical-details-container"},ht={class:"section-header"},vt={class:"section-icon si-blue"},pt={class:"technical-details-section-header"},mt={key:0,class:"technical-details-section-header-icon"},_t={class:"preserve-lines"},yt={class:"container technical-details-container"},bt={class:"section-header"},gt={class:"section-icon si-orange"},kt={class:"technical-details-section-header"},ft={key:0,class:"technical-details-section-header-icon"},xt={class:"preserve-lines"},wt={class:"container reusable-container"},Tt={class:"section-header"},St={class:"section-icon si-green"},Ct={class:"preserve-lines"},At={class:"container reusable-container"},jt={class:"section-header"},Lt={class:"section-icon si-purple"},Mt={class:"container reusable-container"},Bt={class:"section-header"},It={class:"section-title"},Pt={class:"cta-desc preserve-lines"},Dt={key:0,class:"cta-buttons-container"},j=400,Ft=F({__name:"[slug]",setup(V){const S=ue(),e=Z.find(a=>a.slug===S.params.slug);me({title:e?`${e.title} • Project`:"Project Not Found",description:e?.overview||"Detailed overview of the project.",ogTitle:e?`${e.title} • Project`:"Project Not Found",ogDescription:e?.overview||"Detailed overview of the project.",ogImage:e?.heroImage||e?.image||e?.visuals?.[0]?.src||void 0,ogType:"article",articleAuthor:[oe.name]});const C=["overview","problem","solution","tech-stack","challenges","visuals","technical-details","future-plans","outcome","my-role","call-to-action"],y={overview:"overview",problem:"problem",solution:"solution","tech-stack":"techStack",challenges:"challenges",visuals:"visuals","technical-details":"technicalDetails","future-plans":"futurePlans",outcome:"outcome","my-role":"myRole","call-to-action":"callToAction"};function w(a){if(!e)return;const i=y[a];if(!(i==="overview"&&e.overview&&e.overview.length<=j))return e[i]}function f(a){const i=w(a);return i==null?!1:Array.isArray(i)?i.length>0:!!i}const T=P(()=>C.filter(a=>f(a)));function u(a){return T.value.indexOf(a)}function v(a){const i=u(a);return i===-1?"sec-secondary":i%2===0?"sec-primary":"sec-secondary"}function _(a){const i=u(a);return i===-1?"reusable-box-secondary":i%2===0?"reusable-box-primary":"reusable-box-secondary"}function z(){const a=u("tech-stack");return a===-1||a%2===0?"tech-stack-item-secondary":"tech-stack-item-primary"}const E=P(()=>{const a=T.value.length-1;return a===-1||a%2===0?"secondary":"primary"});function M(a,i="_self"){if(a){if(a.startsWith("#")){ee(a.substring(1));return}if(a.startsWith("/")){ve(a,{open:{target:i}});return}window.open(a,i)}}return(a,i)=>{const N=te,R=ce,O=ke,U=be,q=ie,H=ae,W=ye,K=Ae,X=_e,Y=ge,G=fe,J=re,Q=se,p=pe("gsap");return o(),n(g,null,[h(N,{"show-back":!0,title:s(e)?.title||"Project","hide-right":!0,"back-to":"/","back-label":"Home"},null,8,["title"]),s(e)?(o(),n("section",je,[i[2]||(i[2]=t("div",{class:"grid-pattern"},null,-1)),t("div",Le,[t("div",Me,[t("div",Be,[t("div",Ie,[t("h1",null,r(s(e).title),1),t("h2",null,r(s(e).tagline),1)]),t("div",Pe,r(s(e).overview&&s(e).overview.length>j?s(e).description:s(e).overview||""),1),t("div",De,[(o(!0),n(g,null,x(s(e).techStack,c=>(o(),A(ne,{"text-content":c},null,8,["text-content"]))),256))])]),t("div",Fe,[t("img",{src:s(e).heroImage,alt:`Screenshot of ${s(e).title}`},null,8,$e)])])])])):(o(),n("section",Ve,[...i[3]||(i[3]=[he('<div class="grid-pattern" data-v-608271b4></div><div class="container hero-container" data-v-608271b4><div class="hero-grid" data-v-608271b4><div class="hero-info" data-v-608271b4><div class="hero-header-group" data-v-608271b4><h1 data-v-608271b4>Project Not Found</h1><h2 data-v-608271b4>The project you are looking for does not exist.</h2></div><p data-v-608271b4>Please check the URL or return to the projects page.</p></div></div></div>',2)])])),s(e)&&s(e).overview&&s(e).overview.length>j?(o(),n("section",{key:2,id:"overview",class:l(v("overview"))},[m((o(),n("div",ze,[t("div",Ee,[t("div",Ne,[h(R)]),i[4]||(i[4]=t("h2",{class:"section-title"},"Overview",-1))]),t("div",{class:l(["reusable-box",_("overview")])},[t("div",Re,r(s(e).overview),1)],2)])),[[p,void 0,void 0,{entrance:!0,"slide-bottom":!0}]])],2)):d("",!0),s(e)&&s(e).problem?(o(),n("section",{key:3,id:"problem",class:l(v("problem"))},[m((o(),n("div",Oe,[t("div",Ue,[t("div",qe,[h(O)]),i[5]||(i[5]=t("h2",{class:"section-title"},"The Problem",-1))]),t("div",{class:l(["reusable-box",_("problem")])},[t("div",He,r(s(e).problem),1)],2)])),[[p,void 0,void 0,{entrance:!0,"slide-bottom":!0}]])],2)):d("",!0),s(e)&&s(e).solution?(o(),n("section",{key:4,id:"solution",class:l(v("solution"))},[m((o(),n("div",We,[t("div",Ke,[t("div",Xe,[h(U)]),i[6]||(i[6]=t("h2",{class:"section-title"},"The Solution",-1))]),t("div",{class:l(["reusable-box",_("solution")])},[t("div",Ye,r(s(e).solution),1)],2)])),[[p,void 0,void 0,{entrance:!0,"slide-bottom":!0}]])],2)):d("",!0),s(e)&&s(e).techStack&&s(e).techStack.length>0?(o(),n("section",{key:5,id:"tech-stack",class:l(v("tech-stack"))},[m((o(),n("div",Ge,[t("div",Je,[t("div",Qe,[h(q)]),i[7]||(i[7]=t("h2",{class:"section-title"},"Tech Stack",-1))]),t("div",Ze,[(o(!0),n(g,null,x(s(e).techStack,c=>(o(),n("div",{class:l(["tech-stack-item",z()])},r(c),3))),256))])])),[[p,void 0,void 0,{entrance:!0,"slide-bottom":!0}]])],2)):d("",!0),s(e)&&s(e).challenges?(o(),n("section",{key:6,id:"challenges",class:l(v("challenges"))},[m((o(),n("div",et,[t("div",tt,[t("div",st,[h(H)]),i[8]||(i[8]=t("h2",{class:"section-title"},"Challenges & Learnings",-1))]),t("div",{class:l(["reusable-box",_("challenges")])},[t("div",ot,r(s(e).challenges),1)],2)])),[[p,void 0,void 0,{entrance:!0,"slide-bottom":!0}
31]])],2)):d("",!0),s(e)&&s(e).visuals&&s(e).visuals.length>0?(o(),n("section",{key:7,id:"visuals",class:l(v("visuals"))},[m((o(),n("div",it,[t("div",nt,[t("div",ct,[h(W)]),i[9]||(i[9]=t("h2",{class:"section-title"},"Visuals",-1))]),t("div",{class:l(["visuals-grid",s(e).visuals.length===1?"visuals-grid-single":""])},[(o(!0),n(g,null,x(s(e).visuals,(c,b)=>(o(),n("div",{key:b,class:"visual-item-container"},[c.type==="image"?(o(),n("div",at,[h(K,{class:"visual-item-image",src:c.src,alt:c.alt||`Visual ${b+1}`,caption:c.caption,"thumbnail-src":c.thumbnail,"img-style":`aspect-ratio: 16 / 9; overflow: hidden; border-radius: 0.75rem;\r
32                        box-shadow: 0 10px 30px rgba(2, 6, 23, 0.08); width: 100%; height: 100%; object-fit: cover;`},null,8,["src","alt","caption","thumbnail-src"])])):c.type==="video"?(o(),n("div",lt,[t("video",{controls:"",src:c.src,preload:"none",poster:c.thumbnail}," Your browser does not support the video tag. ",8,rt)])):d("",!0),c.caption?(o(),n("p",dt,r(c.caption),1)):d("",!0)]))),128))],2)])),[[p,[{y:32},{y:0,clearProps:"transform"}],void 0,{whenVisible:!0,fromInvisible:!0,once:!0,fromTo:!0}]])],2)):d("",!0),s(e)&&s(e).technicalDetails&&s(e).technicalDetails.length>0?(o(),n("section",{key:8,id:"technical-details",class:l(v("technical-details"))},[m((o(),n("div",ut,[t("div",ht,[t("div",vt,[h(X)]),i[10]||(i[10]=t("h2",{class:"section-title"},"Technical Details",-1))]),t("div",{class:l(["reusable-box","technical-details-box",_("technical-details")])},[(o(!0),n(g,null,x(s(e).technicalDetails,(c,b)=>(o(),n("div",{key:b,class:"technical-detail"},[t("div",pt,[c.icon?(o(),n("div",mt,[(o(),A(D(c.icon.comp),{style:L({color:c.icon.color})},null,8,["style"]))])):d("",!0),t("h3",null,r(c.title),1)]),t("p",_t,r(c.content),1)]))),128))],2)])),[[p,void 0,void 0,{entrance:!0,"slide-bottom":!0}]])],2)):d("",!0),s(e)&&s(e).futurePlans?(o(),n("section",{key:9,id:"future-plans",class:l(v("future-plans"))},[m((o(),n("div",yt,[t("div",bt,[t("div",gt,[h(Y)]),i[11]||(i[11]=t("h2",{class:"section-title"},"Future Plans",-1))]),t("div",{class:l(["reusable-box","technical-details-box",_("future-plans")])},[(o(!0),n(g,null,x(s(e).futurePlans,(c,b)=>(o(),n("div",{key:b,class:"technical-detail"},[t("div",kt,[c.icon?(o(),n("div",ft,[(o(),A(D(c.icon.comp),{style:L({color:c.icon.color})},null,8,["style"]))])):d("",!0),t("h3",null,r(c.title),1)]),t("p",xt,r(c.content),1)]))),128))],2)])),[[p,void 0,void 0,{entrance:!0,"slide-bottom":!0}]])],2)):d("",!0),s(e)&&s(e).outcome?(o(),n("section",{key:10,id:"outcome",class:l(v("outcome"))},[m((o(),n("div",wt,[t("div",Tt,[t("div",St,[h(G)]),i[12]||(i[12]=t("h2",{class:"section-title"},"Outcome & Impact",-1))]),t("div",{class:l(["reusable-box",_("outcome")])},[t("div",Ct,r(s(e).outcome),1)],2)])),[[p,void 0,void 0,{entrance:!0,"slide-bottom":!0}]])],2)):d("",!0),s(e)&&s(e).myRole?(o(),n("section",{key:11,id:"my-role",class:l(v("my-role"))},[m((o(),n("div",At,[t("div",jt,[t("div",Lt,[h(J)]),i[13]||(i[13]=t("h2",{class:"section-title"},"My Role",-1))]),t("div",{class:l(["reusable-box",_("my-role")])},[t("p",null,r(s(e).myRole),1)],2)])),[[p,void 0,void 0,{entrance:!0,"slide-bottom":!0}]])],2)):d("",!0),s(e)&&s(e).callToAction?(o(),n("section",{key:12,id:"call-to-action",class:l(v("call-to-action"))},[m((o(),n("div",Mt,[t("div",Bt,[t("h2",It,r(s(e).callToAction.title),1),t("p",Pt,r(s(e).callToAction.description),1)]),s(e).callToAction.primaryButton||s(e).callToAction.secondaryButton?(o(),n("div",Dt,[s(e).callToAction.primaryButton?(o(),n("button",{key:0,onClick:i[0]||(i[0]=c=>M(s(e).callToAction.primaryButton.url,s(e).callToAction.primaryButton.target)),class:"action-btn action-btn-primary"},r(s(e).callToAction.primaryButton.text),1)):d("",!0),s(e).callToAction.secondaryButton?(o(),n("button",{key:1,onClick:i[1]||(i[1]=c=>M(s(e).callToAction.secondaryButton.url,s(e).callToAction.secondaryButton.target)),class:"action-btn action-btn-secondary"},r(s(e).callToAction.secondaryButton.text),1)):d("",!0)])):d("",!0)])),[[p,void 0,void 0,{entrance:!0,"slide-bottom":!0}]])],2)):d("",!0),h(Q,{variant:s(E)},null,8,["variant"])],64)}}}),Ot=$(Ft,[["__scopeId","data-v-608271b4"]]);export{Ot 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.