PageSourceSearch

https://vitaapps.dev/assets/Experience-dDqJmMtq.js

js vitaapps.dev collected 2026-09-24 15:00:06 UTC 3,418 bytes, 1 lines download raw bytes

1import{j as e,s as p,V as C,g as H,u as w,h as $,i as k}from"./index-376A2J5H.js";import{r as o}from"./vendor-react-0R6VX6ld.js";import{S as I}from"./SectionWrapper-NI7lePfn.js";import{t as A}from"./motion-ER0uwqDF.js";import{m as x}from"./vendor-framer-JqHIcSWX.js";import"./vendor-three-dec0Z_i3.js";import"./vendor-icons-LlCGcXb-.js";const M=({useMotion:i,p:n,h2:t,title:s})=>{const r=()=>e.jsxs(e.Fragment,{children:[n&&e.jsx("p",{className:p.sectionSubText,children:n}),t&&e.jsx("h2",{className:p.sectionHeadText,children:t}),s&&e.jsx("h2",{className:p.sectionHeadText,children:s})]});return i?e.jsx(x.div,{variants:A(),children:e.jsx(r,{})}):e.jsx(r,{})};var E={VerticalTimeline:C.default,VerticalTimelineElement:H.default};const B=({isActive:i,isVisible:n,...t})=>{const{t:s}=w();return e.jsx(E.VerticalTimelineElement,{contentStyle:{background:"rgba(29, 24, 54, 0.65)",backdropFilter:"blur(10px)",border:"1px solid rgba(255, 255, 255, 0.1)",boxShadow:"0 8px 22px 0 rgba(31, 38, 135, 0.37)",color:"#fff",opacity:i?1:.2,transform:i?"translateY(-10px)":"translateY(0)",transition:"all 0.5s ease-out"},contentArrowStyle:{borderRight:"7px solid rgba(35, 38, 49, 0.8)"},date:s(`experience.${t.id}.date`),iconStyle:{background:t.iconBg,display:"flex",alignItems:"center",justifyContent:"center",transition:"transform 0.3s ease"},icon:e.jsx(x.div,{whileHover:{scale:1.1,rotate:5},className:"flex h-full w-full items-center justify-center",children:e.jsx("img",{src:t.icon,alt:t.companyName,className:"h-[60%] w-[60%] object-contain"})}),children:e.jsxs("div",{children:[e.jsx("h3",{className:"text-[24px] font-bold text-white",children:s(`experience.${t.id}.title`)}),e.jsx("p",{className:"text-secondary text-[16px] font-semibold",style:{margin:0},children:t.companyName}),e.jsx("ul",{className:"ml-5 mt-5 list-disc space-y-2",children:t.points.map((r,c)=>e.jsx("li",{className:"text-white-100 pl-1 text-[14px] tracking-wider",children:s(`experience.${t.id}.points.${c}`)},`experience-point-${c}`))})]})})},F=()=>{const{t:i}=w(),n=o.useRef(null),[,t]=o.useState(0),[s,r]=o.useState([]),[c,v]=o.useState(null);return o.useEffect(()=>{const l=()=>{const a=n.current;if(!a)return;const u=a.getBoundingClientRect(),m=window.innerHeight,N=(m-u.top)/(u.height+m),h=Math.min(Math.max(N,0),1);t(h),document.documentElement.style.setProperty("--timeline-progress",h.toString());const S=Array.from(document.querySelectorAll(".vertical-timeline-element")),f=[];let g=null,j=1/0;const V=m/2;S.forEach((T,b)=>{const d=T.getBoundingClientRect();d.top<m*.75&&d.bottom>0&&f.push(b);const R=d.top+d.height/2,y=Math.abs(R-V);y<j&&(j=y,g=b)}),r(f),v(g)};return window.addEventListener("scroll",l),l(),()=>window.removeEventListener("scroll",l)},[]),e.jsxs(e.Fragment,{children:[e.jsx(M,{useMotion:!0,...$.sections.experience}),e.jsxs("div",{className:"experience-header",children:[e.jsx(x.p,{className:"experience-subtitle",initial:{opacity:0}
1,animate:{opacity:1},transition:{duration:1,delay:.5},children:i("experience.subtitle")}),e.jsx(x.h2,{className:"experience-title",initial:{opacity:0},animate:{opacity:1},transition:{duration:1,delay:1},children:i("experience.title")})]}),e.jsx("div",{className:"mt-20 flex flex-col",ref:n,children:e.jsx(E.VerticalTimeline,{className:"progress-timeline",animate:!1,children:k.map((l,a)=>e.jsx(B,{...l,isActive:c===a,isVisible:s.includes(a)},l.id))})})]})},G=I(F,"work");export{G 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.