PageSourceSearch

https://www.jasminejones.design/_next/static/chunks/app/work/%5Bslug%5D/page-944f216b09a44835.js

js jasminejones.design collected 2026-10-08 20:25:54 UTC 10,330 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[774],{668:(e,t,l)=>{Promise.resolve().then(l.bind(l,4506)),Promise.resolve().then(l.bind(l,4630))},4506:(e,t,l)=>{"use strict";l.d(t,{NotionProjectDetail:()=>m});var a=l(5155),r=l(2115),n=l(5239),i=l(2619),s=l.n(i),o=l(6042),c=l(3376),d=l(7653),x=l(9329);function m(e){let{project:t}=e,l=(0,r.useRef)(null),i=(0,r.useRef)(new Map),[m,h]=(0,r.useState)(0),[f,g]=(0,r.useState)(0),[b,j]=(0,r.useState)(0),y=(0,r.useRef)(!1),v=(0,r.useRef)(null),[k,w]=(0,r.useState)(null),[N,C]=(0,r.useState)(""),[L,_]=(0,r.useState)("loading"),S=(0,r.useCallback)((e,t)=>{w(e),C(t)},[]),E=(0,r.useCallback)(()=>{w(null),C("")},[]),I=(0,r.useMemo)(()=>(function(e,t){let l=e.reduce((e,t,l)=>("heading_1"===t.type&&e.push(l),e),[]);if(0===l.length)return[{index:0,title:"Content",blocks:e}];let a=[];for(let t=0;t<l.length;t++){let r=e[l[t]].richText.map(e=>e.plainText).join(""),n=t<l.length-1?l[t+1]:e.length,i=0===t?[...e.slice(0,l[0]),...e.slice(l[0]+1,n)]:e.slice(l[t]+1,n);a.push({index:t,title:r,blocks:i})}return a})(t.blocks,t.title),[t.blocks,t.title]),M=!!t.coverImage,z=(0,r.useMemo)(()=>[...M?[{index:0,title:"Cover",blocks:[]}]:[],...I.map((e,t)=>({...e,index:+!!M+t}))],[I,M]);(0,r.useEffect)(()=>{let e=l.current;if(!e)return;let t=()=>{let t=e.scrollHeight-e.clientHeight;g(t>0?e.scrollTop/t*100:0);let l=i.current.get(m);if(l){let t=e.getBoundingClientRect(),a=l.getBoundingClientRect(),r=a.top-t.top,n=a.height-t.height;j(n>0?Math.max(0,Math.min(1,-r/n)):0)}};return e.addEventListener("scroll",t,{passive:!0}),()=>e.removeEventListener("scroll",t)},[m]),(0,r.useEffect)(()=>{let e=l.current;if(!e)return;let t=new IntersectionObserver(e=>{if(!y.current){for(let t of e)if(t.isIntersecting){let e=Number(t.target.getAttribute("data-chapter-index"));Number.isNaN(e)||h(e)}}},{root:e,rootMargin:"-10% 0px -70% 0px",threshold:0});return i.current.forEach(e=>t.observe(e)),()=>t.disconnect()},[z.length]);let R=(0,r.useCallback)(e=>{let t=i.current.get(e);if(!t)return;h(e),y.current=!0,v.current&&clearTimeout(v.current),t.scrollIntoView({behavior:"smooth",block:"start"});let a=l.current;if(!a)return;let r=()=>{v.current&&clearTimeout(v.current),v.current=setTimeout(()=>{y.current=!1,a.removeEventListener("scroll",r)},100)};a.addEventListener("scroll",r,{passive:!0})},[]),B=(0,r.useCallback)(e=>t=>{t?i.current.set(e,t):i.current.delete(e)},[]);return null!=z[m]||z[0],(0,a.jsxs)("div",{className:"h-screen overflow-hidden bg-page-bg",children:[(0,a.jsxs)("div",{className:"grid h-full grid-cols-1 grid-rows-[44px_1fr] xl:grid-cols-[290px_1fr_120px]",children:[(0,a.jsx)("header",{className:"col-span-full border-b border-stroke px-6 py-2.5 xl:px-12",children:(0,a.jsxs)("div",{className:"flex items-center",children:[(0,a.jsx)("div",{className:"flex min-w-0 flex-1 justify-start",children:(0,a.jsx)(s(),{href:"/",className:"font-display text-body-subtitle text-grey-1 transition-opacity hover:opacity-60","aria-label":"Back to home",children:"← Back"})}),(0,a.jsxs)("div",{className:"flex shrink-0 items-center gap-4 font-display text-body-subtitle tracking-wider text-grey-1",children:[(0,a.jsx)("span",{children:M&&0===m?"Cover":"Chapter ".concat(M?m:m+1)}),(0,a.jsxs)("span",{children:[f.toFixed(2),"%"]})]}),(0,a.jsx)("div",{className:"min-w-0 flex-1","aria-hidden":!0})]})}),(0,a.jsx)("aside",{className:"hide-scrollbar hidden flex-col items-center gap-4 overflow-y-auto px-4 py-8 xl:flex",children:z.map(e=>{let t=m===e.index;return(0,a.jsxs)(o.P.button,{layout:!0,onClick:()=>R(e.index),"aria-label":"Go to ".concat(e.title),animate:{height:t?280:146},transition:{height:{duration:.45,ease:[.16,1,.3,1]},layout:{duration:.45,ease:[.16,1,.3,1]}},className:["relative flex w-[235px] shrink-0 flex-col justify-between overflow-hidden rounded-2xl border p-4 text-left",t?"border-text-main bg-text-main text-page-bg":"border-[rgb(60_59_57)] bg-page-bg text-text-main hover:border-text-main"].join(" "),children:[(0,a.jsx)("span",{className:"font-sans text-section-header",children:"Cover"===e.title?"Cover":String(M?e.index:e.index+1).padStart(2,"0")}),(0,a.jsx)("span",{className:["font-display text-[13px] leading-snug opacity-60",t?"":"line-clamp-1"].join(" "),children:e.title}),t&&(0,a.jsx)("div",{className:"absolute bottom-4 right-3 top-10 w-px bg-current/20",children:(0,a.jsx)(o.P.div,{className:"absolute -left-[3px] h-2 w-2 rounded-full bg-current",style:{to
1p:"".concat(100*b,"%")},transition:{type:"spring",stiffness:300,damping:30}})})]},e.index)})}),(0,a.jsxs)("div",{ref:l,className:"hide-scrollbar overflow-y-auto overflow-x-hidden border-stroke xl:border-x",children:[t.coverImage&&(0,a.jsxs)("section",{ref:B(0),"data-chapter-index":0,className:"relative h-[300px] max-h-[724px] overflow-hidden lg:h-[600px]",onClick:()=>"loaded"===L?S(t.coverImage,t.title):void 0,children:[(0,a.jsx)("div",{className:"absolute inset-0 z-10 flex items-center justify-center border border-stroke/40 bg-white/25 backdrop-blur-xl transition-opacity duration-300 dark:bg-black/30 ".concat("loaded"===L||"error"===L?"pointer-events-none opacity-0":"opacity-100"),"aria-hidden":!0}),"error"===L&&(0,a.jsx)("div",{className:"absolute inset-0 z-10 flex items-center justify-center border border-stroke/50 bg-white/20 backdrop-blur-xl dark:bg-black/25","aria-label":"Cover image failed to load",children:(0,a.jsx)("span",{className:"text-sm text-text-subtle",children:"Cover image unavailable"})}),(0,a.jsx)(n.default,{src:t.coverImage,alt:t.title,fill:!0,className:"object-cover max-h-[1600px] transition-opacity duration-300 ".concat("loaded"===L?"cursor-zoom-in opacity-100":"opacity-0"),sizes:"(min-width: 1280px) calc(100vw - 410px), 100vw",quality:90,priority:!0,onLoad:()=>_("loaded"),onError:()=>_("error")})]}),(0,a.jsx)("div",{className:"h-px w-full bg-stroke"}),(0,a.jsx)("div",{className:"flex w-full flex-col pb-[200px] pt-9",children:I.map((e,l)=>{var r,n,i,s,d,x;let m=M?e.index+1:e.index;return(0,a.jsxs)(o.P.section,{ref:B(m),"data-chapter-index":m,initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0,margin:"-5%"},transition:{duration:.5,ease:"easeOut"},children:[(0,a.jsxs)("div",{className:"mx-auto flex w-full max-w-[1200px] flex-col gap-[100px] px-6 py-10",children:[t.summary&&0===l&&(0,a.jsx)("p",{className:"mx-auto mb-6 max-w-3xl px-6 font-display text-content-body text-text-main xl:px-20",children:t.summary}),(0,a.jsxs)("div",{className:"mt-8 flex flex-col gap-6",children:[(0,a.jsx)("p",{className:"font-display text-body-subtitle tracking-wider text-text-subtle",children:String(M?m:m+1).padStart(2,"0")}),0===l&&(t.companyLogo||t.year||t.timeframe||(null==(r=t.role)?void 0:r.length))&&(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2 font-display text-body-subtitle leading-[1.8] text-text-subtle",children:[t.companyLogo&&(0,a.jsx)("span",{className:"relative inline-flex h-[23px] shrink-0",children:t.companyLogoDark?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("img",{src:t.companyLogo,alt:null!=(i=t.company)?i:"Company logo",className:"h-[23px] w-auto max-w-[98px] object-contain object-left dark:hidden",loading:"lazy",decoding:"async"}),(0,a.jsx)("img",{src:t.companyLogoDark,alt:null!=(s=t.company)?s:"Company logo",className:"hidden h-[23px] w-auto max-w-[98px] object-contain object-left dark:block",loading:"lazy",decoding:"async"})]}):(0,a.jsx)("img",{src:t.companyLogo,alt:null!=(d=t.company)?d:"Company logo",className:"h-[23px] w-auto max-w-[98px] object-contain object-left",loading:"lazy",decoding:"async"})}),(0,a.jsxs)("span",{className:"shrink-0",children:[t.companyLogo?" / ":"",[null!=(x=t.timeframe)?x:t.year?String(t.year):null,null==(n=t.role)?void 0:n.join(", ")].filter(Boolean).join(" / ")]}),t.figma&&(0,a.jsx)("a",{href:t.figma,target:"_blank",rel:"noreferrer",className:"link-underline ml-1 text-text-main",children:"View in Figma"})]})]}),(0,a.jsx)("h1",{className:"font-display text-[32px] font-light leading-[1.4] text-text-main xl:text-[50px]",children:e.title})]}),(0,a.jsx)("div",{className:0===l?"py-10":"",children:(0,a.jsx)(c.o,{blocks:e.blocks,paused:!!k,onImageClick:S})})]},e.index)})})]}),(0,a.jsxs)("aside",{className:"hidden flex-col items-center justify-between py-8 xl:flex",children:[(0,a.jsxs)(s(),{href:"/",className:"link-underline flex items-center gap-0.5 font-display text-body-subtitle text-text-main",children:["Home",(0,a.jsx)(u,{})]}),(0,a.jsx)("nav",{className:"flex flex-col items-center gap-10",children:[{label:"Resume",href:"/resume.pdf",download:"Jasmine-Jones-Resume.pdf"},{label:"LinkedIn",href:x.D,external:!0}].map(e=>(0,a.jsx)("a",{href:e.href,...e.download?{download:e.download}:{},...e.external?{target:"_blank",rel:"noreferrer"}:{},className:"font-display text-body-subtitle text-text-main",style:{writingMode:"vertical-rl"},children:e.label},e.label))}),(0,a.jsx)("div",{className:"flex flex-col items-center gap-4",children:(0,a.jsxs)("a",{href:x.D,target:"_blank",rel:"noreferrer",className:"link-un
1derline flex items-center gap-0.5 font-display text-body-subtitle text-text-main",children:["Contact",(0,a.jsx)(u,{})]})})]})]}),(0,a.jsx)(p,{chapters:z,activeChapter:m,onSelect:R}),(0,a.jsx)(d.a,{src:k,alt:N,onClose:E})]})}function p(e){let{chapters:t,activeChapter:l,onSelect:r}=e;return(0,a.jsx)("div",{className:"fixed bottom-[max(1.5rem,env(safe-area-inset-bottom,0px))] left-1/2 z-50 -translate-x-1/2 xl:hidden md:bottom-6",children:(0,a.jsx)("div",{className:"flex gap-2 rounded-full border border-stroke bg-page-bg/90 px-3 py-2 shadow-soft-lg backdrop-blur-md",children:t.map(e=>(0,a.jsx)("button",{onClick:()=>r(e.index),className:["flex h-8 w-8 items-center justify-center rounded-full font-sans text-[12px] transition-colors",l===e.index?"bg-text-main text-page-bg":"text-text-main hover:bg-text-main/10"].join(" "),children:String(e.index).padStart(2,"0")},e.index))})})}function u(){return(0,a.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,a.jsx)("path",{d:"M7 17 17 7"}),(0,a.jsx)("path",{d:"M7 7h10v10"})]})}},9329:(e,t,l)=>{"use strict";l.d(t,{D:()=>a});let a="https://www.linkedin.com/in/jasminejonesprofile/"}},e=>{e.O(0,[611,239,433,441,255,358],()=>e(e.s=668)),_N_E=e.O()}]);

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.