PageSourceSearch

https://projectmateria.com/assets/artist._slug-DhYQK-FH.js

js projectmateria.com collected 2026-10-08 04:32:09 UTC 8,296 bytes, 1 lines download raw bytes

1import{ag as I,ab as v,y as P,r as p,d as M,h as S,ah as $,j as e,L as i,D}from"./index-Ci53hMpI.js";import{P as E}from"./ProductCard-D3Z48A55.js";import{I as A}from"./InquiryDialog-CzGGljdy.js";import"./form-emails.functions-BNdvm-G1.js";function T(){const{artist:t}=I.useLoaderData(),f=v.findIndex(s=>s.slug===t.slug),d=v[(f+1)%v.length],n=P(t.slug),r=t.portrait??n.hero,[c,m]=p.useState({}),[o,x]=p.useState([]);p.useEffect(()=>{let s=!0;const a=t.works.map(l=>l.handle).filter(l=>!!l);return Promise.all(a.map(l=>M(l).then(u=>[l,u]))).then(l=>{if(!s)return;const u={};for(const[w,j]of l)j&&(u[w]={handle:w,title:j.title,image:j.images.edges[0]?.node?.url});m(u)}),()=>{s=!1}},[t.slug,t.works]),p.useEffect(()=>{let s=!0;return S(50,`vendor:"${t.name}"`).then(a=>s&&x(a)).catch(()=>s&&x([])),()=>{s=!1}},[t.name]);const g=t.works.filter(s=>s.edition==="2026"),N=t.works.filter(s=>s.edition==="2025"),k=o.length>0||N.length>0,y=$(t.slug),h=t.works.find(s=>!!s.description)?.description?.split(/\n\n+/)[0]?.trim(),b=h&&h.length>280?h.slice(0,277).trimEnd()+"…":h;return e.jsxs("div",{className:"pt-12 md:pt-20 pb-24",children:[e.jsxs("div",{className:"container-rail",children:[e.jsx(i,{to:"/artists",className:"eyebrow text-muted-foreground hover:text-foreground",children:"← Artists"}),e.jsxs("div",{className:"mt-6 grid md:grid-cols-12 gap-8 items-start",children:[r&&e.jsx("div",{className:"md:col-span-5",children:e.jsx("div",{className:"aspect-[4/5] overflow-hidden bg-muted",children:e.jsx("img",{src:r,alt:`${t.name} - Project Materia`,className:"w-full h-full object-cover",width:960,height:1200,loading:"eager"})})}),e.jsxs("div",{className:r?"md:col-span-7":"md:col-span-12",children:[e.jsx("div",{className:"eyebrow text-[var(--clay)]",children:t.role}),e.jsxs("h1",{className:"display-xl mt-3",children:[t.name,"."]}),e.jsx("p",{className:"eyebrow text-muted-foreground mt-6",children:t.location}),e.jsxs("div",{className:"mt-6",children:[e.jsx("div",{className:"eyebrow text-muted-foreground",children:"Editions"}),e.jsx("div",{className:"mt-2 flex gap-3",children:t.editions.map(s=>s==="2025"?e.jsx(i,{to:"/2025",className:"font-display text-2xl border border-border px-3 py-1 hover:border-[var(--clay)] hover:text-[var(--clay)]",children:s},s):e.jsx(i,{to:"/objects",search:{edition:"2026"},className:"font-display text-2xl border border-border px-3 py-1 hover:border-[var(--clay)] hover:text-[var(--clay)]",children:s},s))})]}),e.jsx("div",{className:"mt-8 max-w-2xl space-y-5 text-foreground/85 leading-relaxed text-lg",children:(t.fullBio??t.bio).split(/\n\n+/).map((s,a)=>e.jsx("p",{children:s.trim()},a))}),b&&e.jsxs("figure",{className:"mt-8 max-w-2xl border-l-2 border-[var(--clay)] pl-5",children:[e.jsxs("blockquote",{className:"font-display text-xl md:text-2xl leading-snug text-foreground/90",children:['"',b,'"']}),e.jsxs("figcaption",{className:"mt-3 eyebrow text-muted-foreground",children:["- ",t.name,", in conversation"]})]}),e.jsxs("div",{className:"mt-10 flex flex-wrap gap-3",children:[e.jsx(A,{type:"commission",product:`Commission inquiry - ${t.name}`,trigger:e.jsx("button",{className:"h-12 px-6 bg-foreground text-background hover:bg-[var(--cocoa)] transition-colors eyebrow",children:"Inquire about a commission"})}),e.jsx(i,{to:"/contact",className:"h-12 px-6 border border-foreground inline-flex items-center hover:bg-foreground hover:text-background transition-colors eyebrow",children:"Speak with a specialist"})]})]})]})]}),n.gallery.length>0&&e.jsxs("section",{className:"container-rail mt-24",children:[e.jsx("div",{className:"flex items-end justify-between gap-6 flex-wrap",children:e.jsxs("div",{children:[e.jsx("div",{className:"eyebrow text-muted-foreground",children:"Rudolph Tegners Museum · Dronningmølle · June 2026"}),e.jsx("h2",{className:"display-lg mt-3",children:"On location."})]})}),e.jsx("div",{className:"mt-10 grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4",children:n.gallery.map((s,a)=>e.jsx("div",{className:"aspect-[4/5] overflow-hidden bg-muted",children:e.jsx("img",{src:s,alt:`${t.name} - studio image ${a+2}`,className:"w-full h-full object-cover hover:scale-[1.02] transition-transform duration-[600ms]",loading:"lazy"})},a))})]}),g.length>0&&e.jsx(W,{eyebrow:"Project Materia × Mater · 2026",title:"Works for Project Materia 2026",works:g,images:c}
1),k&&e.jsxs("section",{className:"container-rail mt-24",children:[e.jsx("div",{className:"eyebrow text-muted-foreground",children:"Project Materia · 2025"}),e.jsx("h2",{className:"display-lg mt-3",children:"Works for Project Materia 2025"}),o.length>0?e.jsx("div",{className:"mt-10 grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-x-6 gap-y-14",children:o.map(s=>e.jsx(E,{product:s},s.node.id))}):e.jsx("div",{className:"mt-10 grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-x-6 gap-y-12",children:N.map((s,a)=>e.jsxs("div",{children:[e.jsx("div",{className:"aspect-[4/5] bg-muted flex items-center justify-center text-muted-foreground text-sm",children:"Image revealed at launch"}),e.jsxs("div",{className:"mt-4",children:[e.jsx("h3",{className:"font-display text-lg",children:s.title}),s.medium&&e.jsx("p",{className:"eyebrow text-muted-foreground mt-1",children:s.medium})]})]},a))})]}),y.length>0&&e.jsxs("section",{className:"container-rail mt-24",children:[e.jsx("div",{className:"eyebrow text-muted-foreground",children:"From the journal"}),e.jsxs("h2",{className:"display-lg mt-3",children:["More on ",t.name.split(" ")[0],"."]}),e.jsx("div",{className:"mt-10 grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-x-6 gap-y-10",children:y.slice(0,3).map(s=>e.jsxs(i,{to:"/journal/$slug",params:{slug:s.slug},className:"group block",children:[s.heroImage&&e.jsx("div",{className:"aspect-[4/5] overflow-hidden bg-muted",children:e.jsx("img",{src:s.heroImage,alt:s.title,loading:"lazy",className:"w-full h-full object-cover group-hover:scale-[1.02] transition-transform duration-[600ms]"})}),e.jsxs("div",{className:"mt-4",children:[e.jsxs("div",{className:"eyebrow text-muted-foreground",children:[D(s.date)," · ",s.readingMinutes," min"]}),e.jsx("h3",{className:"font-display text-lg mt-2 group-hover:text-[var(--clay)] transition-colors",children:s.title}),e.jsx("p",{className:"text-sm text-foreground/75 mt-2 leading-relaxed line-clamp-3",children:s.excerpt})]})]},s.slug))})]}),e.jsxs("div",{className:"container-rail mt-24 border-t border-border pt-8 flex items-center justify-between",children:[e.jsx(i,{to:"/artists",className:"eyebrow text-muted-foreground hover:text-foreground",children:"← All artists"}),e.jsxs(i,{to:"/artist/$slug",params:{slug:d.slug},className:"font-display text-xl md:text-2xl hover:text-[var(--clay)]",children:["Next: ",d.name," →"]})]})]})}function W({eyebrow:t,title:f,works:d,images:n}){return e.jsxs("section",{className:"container-rail mt-24",children:[e.jsx("div",{className:"eyebrow text-muted-foreground",children:t}),e.jsx("h2",{className:"display-lg mt-3",children:f}),e.jsx("div",{className:"mt-10 grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-x-6 gap-y-12",children:d.map((r,c)=>{const m=r.handle?n[r.handle]:void 0,o=e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"aspect-[4/5] bg-muted overflow-hidden",children:m?.image?e.jsx("img",{src:m.image,alt:r.title,className:"w-full h-full object-cover",loading:"lazy"}):e.jsx("div",{className:"w-full h-full flex items-center justify-center text-muted-foreground text-sm",children:"Image revealed at launch"})}),e.jsxs("div",{className:"mt-4",children:[e.jsx("h3",{className:"font-display text-lg",children:r.title}),r.medium&&e.jsx("p",{className:"eyebrow text-muted-foreground mt-1",children:r.medium}),r.dimensions&&e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:r.dimensions}),r.editionInfo&&e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:r.editionInfo}),r.note&&e.jsx("p",{className:"text-sm text-foreground/80 mt-2",children:r.note}),r.description&&e.jsx("div",{className:"mt-3 space-y-3 text-sm text-foreground/75 leading-relaxed",children:r.description.split(/\n\n+/).map((x,g)=>e.jsx("p",{children:x.trim()},g))})]})]});return r.handle?e.jsx(i,{to:"/product/$handle",params:{handle:r.handle},className:"group block",children:o},c):e.jsx("div",{children:o},c)})})]})}export{T as component};

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.