PageSourceSearch

https://2112.pro/assets/case-study-C_CK2VMj.js

js 2112.pro collected 2026-10-08 15:58:29 UTC 3,471 bytes, 1 lines download raw bytes

1import{j as e,a as m,u as j}from"./vendor-query-Enij0fyd.js";import{u,L as p}from"./index-Du5r5_st.js";import{u as g,S as f,I as d,a as y}from"./site-DNwLUrCG.js";import"./vendor-ui-CYPCLr9a.js";const x=/\[\[red\]\]([\s\S]*?)\[\[\/red\]\]/g;function h(c){if(!c)return null;const i=[];let l=0,s;x.lastIndex=0;let n=0;for(;(s=x.exec(c))!==null;)s.index>l&&i.push(e.jsx(m.Fragment,{children:c.slice(l,s.index)},n++)),i.push(e.jsx("span",{className:"red",children:s[1]},n++)),l=s.index+s[0].length;return l<c.length&&i.push(e.jsx(m.Fragment,{children:c.slice(l)},n++)),i}function v({items:c}){return e.jsx("div",{className:"case-meta",children:c.map((i,l)=>e.jsxs("div",{children:[i.label,e.jsx("b",{children:i.value})]},l))})}function N({c}){const i=g(),{t:l}=u(),{content:s}=c,n=c.image;return m.useEffect(()=>{document.title=`${c.title} · STUDIO 2112`},[c.title]),e.jsxs("div",{className:"s2112",ref:i,children:[e.jsx(f,{}),e.jsxs("section",{className:"case-hero",children:[n&&e.jsx(d,{className:"cbg",src:n.src,width:n.w??void 0,height:n.h??void 0,alt:"",fetchPriority:"high",decoding:"async",style:s.heroPosition?{objectPosition:s.heroPosition}:void 0}),e.jsxs("div",{className:"case-hero-inner",children:[s.eyebrow&&e.jsx("p",{className:"case-eyebrow reveal",children:s.eyebrow}),e.jsx("h1",{className:"case-h1 display reveal",style:{"--d":".12s"},children:s.titleLines.map((a,r)=>e.jsxs("span",{children:[h(a),r<s.titleLines.length-1&&e.jsx("br",{})]},r))}),s.meta.length>0&&e.jsx(v,{items:s.meta})]})]}),e.jsxs("article",{className:"case-body",children:[s.pull&&e.jsx("p",{className:"case-pull",children:h(s.pull)}),s.blocks.map((a,r)=>a.type==="pair"?e.jsx("div",{className:"case-pair",children:a.items.map((t,o)=>e.jsxs("figure",{children:[t.label&&e.jsx("p",{className:"lbl",children:t.label}),e.jsx(d,{src:t.image,width:t.w??void 0,height:t.h??void 0,alt:t.label??"",loading:"lazy",decoding:"async"})]},o))},r):a.type==="section"?e.jsxs("div",{className:"case-sec",children:[e.jsx("h2",{children:a.h2}),a.paragraphs.map((t,o)=>e.jsx("p",{children:h(t)},o))]},r):e.jsxs("figure",{className:"case-figure",children:[e.jsx(d,{src:a.image,width:a.w??void 0,height:a.h??void 0,alt:a.caption??"",loading:"lazy",decoding:"async"}),a.caption&&e.jsx("figcaption",{className:"case-figcap",children:a.caption})]},r)),s.spec.length>0&&e.jsx("div",{className:"case-spec",children:s.spec.map((a,r)=>e.jsxs("div",{children:[a.label,e.jsx("b",{children:a.value})]},r))})]}),e.jsxs("nav",{className:"case-foot",children:[e.jsxs("a",{className:"cf-back",href:"/#work",children:["← ",l("caseFoot.allWork")]}),s.next&&e.jsxs(p,{className:"cf-next",href:`/work/${s.next.slug}`,children:[e.jsx("span",{children:l("caseFoot.nextProject")}),e.jsxs("b",{children:[s.next.label," →"]})]})]})]})}function L({params:c}){const i=c.slug,{t:l}=u(),{data:s,isLoading:n,isError:a}=j({queryKey:["case",i],queryFn:()=>y(i)});return n?e.jsx("div",{className:"s2112",style:{minHeight:"100vh",background:"var(--ink)"}}):a||!s?e.jsxs("div",{className:"s2112",style:{minHeight:"100vh",background:"var(--ink)",color:"#fff",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:18,textAlign:"center",padding:24},children:[e.jsx("p",{className:"display",style:{fontSize:"2rem"},children:l("caseFoot.notFound")}),e.jsxs("a",{className:"cf-back",href:"/#work",style:{color:"var(--accent)"},children:["← ",l("caseFoot.allWork")]})]}):e.jsx(N,{c:s})}export{L 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.