PageSourceSearch

https://e-ness.fr/assets/index.dev-y_2wVfBN.js

js e-ness.fr collected 2026-10-08 05:55:44 UTC 220,356 bytes, 22 lines download raw bytes

1import{r as f,M as Ft,u as xt,j as e,l as Ls,a as qs,m as Ds,b as Ps,d as $s,e as zr,g as Ts,h as Rs,i as Is,k as jt,n as Os,o as Bs,p as Us,q as zs,t as _r,v as _s,w as Vs,x as Gs,y as Hs,z as Vr,A as Ws,B as Zs,C as Ks,D as Xs,F as Ys,V as Js,G as Qs,H as en,I as tn,J as rn,K as ct,L as sn,N as nn,O as an,P as on,Q as Ee,R as T,S as ue,T as ln,U as Gr,E as cn,f as We,s as un,W as dn,X as pn,c as mn}from"./degrade-C-sPMFLy.js";function xn({children:t,isValidProp:r,...s}){r&&Ls(r),s={...f.useContext(Ft),...s},s.isStatic=xt(()=>s.isStatic);const n=f.useMemo(()=>s,[JSON.stringify(s.transition),s.transformPagePoint,s.reducedMotion]);return e.jsx(Ft.Provider,{value:n,children:t})}function hn(t,r=100,s){const n=s({...t,keyframes:[0,r]}),i=Math.min(qs(n),Ds);return{type:"keyframes",ease:a=>n.next(i*a).value/r,duration:Ps(i)}}function Ge(t){const r=xt(()=>$s(t)),{isStatic:s}=f.useContext(Ft);if(s){const[,n]=f.useState(t);f.useEffect(()=>r.on("change",n),[])}return r}function Hr(t,r){const s=Ge(r()),n=()=>s.set(r());return n(),zr(()=>{const i=()=>Rs.preRender(n,!1,!0),a=t.map(o=>o.on("change",i));return()=>{a.forEach(o=>o()),Ts(n)}}),s}const fn=t=>t&&typeof t=="object"&&t.mix,gn=t=>fn(t)?t.mix:void 0;function bn(...t){const r=!Array.isArray(t[0]),s=r?0:-1,n=t[0+s],i=t[1+s],a=t[2+s],o=t[3+s],l=Is(i,a,{mixer:gn(a[0]),...o});return r?l(n):l}function vn(t){jt.current=[],t();const r=Hr(jt.current,t);return jt.current=void 0,r}function Yt(t,r,s,n){if(typeof t=="function")return vn(t);const i=typeof r=="function"?r:bn(r,s,n);return Array.isArray(t)?Jt(t,i):Jt([t],([a])=>i(a))}function Jt(t,r){const s=xt(()=>[]);return Hr(t,()=>{s.length=0;const n=t.length;for(let i=0;i<n;i++)s[i]=t[i].get();return r(s)})}function ht(){!Os.current&&Bs();const[t]=f.useState(Us.current);return t}function jn(t){t.values.forEach(r=>r.stop())}function Mt(t,r){[...r].reverse().forEach(n=>{const i=t.getVariant(n);i&&_r(t,i),t.variantChildren&&t.variantChildren.forEach(a=>{Mt(a,r)})})}function wn(t,r){if(Array.isArray(r))return Mt(t,r);if(typeof r=="string")return Mt(t,[r]);_r(t,r)}function yn(){const t=new Set,r={subscribe(s){return t.add(s),()=>void t.delete(s)},start(s,n){const i=[];return t.forEach(a=>{i.push(zs(a,s,{transitionOverride:n}))}),Promise.all(i)},set(s){return t.forEach(n=>{wn(n,s)})},stop(){t.forEach(s=>{jn(s)})},mount(){return()=>{r.stop()}}};return r}const Nn=(t,r,s)=>{const n=r-t;return((s-t)%n+n)%n+t};function Wr(t,r){return _s(t)?t[Nn(0,t.length,r)]:t}function Tt(t){return typeof t=="object"&&!Array.isArray(t)}function Zr(t,r,s,n){return typeof t=="string"&&Tt(r)?Vs(t,s,n):t instanceof NodeList?Array.from(t):Array.isArray(t)?t:[t]}function En(t,r,s){return t*(r+1)}function Qt(t,r,s,n){var i;return typeof r=="number"?r:r.startsWith("-")||r.startsWith("+")?Math.max(0,t+parseFloat(r)):r==="<"?s:(i=n.get(r))!==null&&i!==void 0?i:t}function kn(t,r,s){for(let n=0;n<t.length;n++){const i=t[n];i.at>r&&i.at<s&&(Hs(t,i),n--)}}function Cn(t,r,s,n,i,a){kn(t,i,a);for(let o=0;o<r.length;o++)t.push({value:r[o],at:Gs(i,a,n[o]),easing:Wr(s,o)})}function Sn(t,r){for(let s=0;s<t.length;s++)t[s]=t[s]/(r+1)}function An(t,r){return t.at===r.at?t.value===null?1:r.value===null?-1:0:t.at-r.at}const Fn="easeInOut";function Mn(t,{defaultTransition:r={},...s}={},n,i){const a=r.duration||.3,o=new Map,l=new Map,c={},u=new Map;let x=0,m=0,d=0;for(let g=0;g<t.length;g++){const p=t[g];if(typeof p=="string"){u.set(p,m);continue}else if(!Array.isArray(p)){u.set(p.name,Qt(m,p.at,x,u));continue}let[b,h,v={}]=p;v.at!==void 0&&(m=Qt(m,v.at,x,u));let E=0;const M=(w,j,k,S=0,N=0)=>{const A=Ln(w),{delay:y=0,times:q=Ws(A),type:O="keyframes",repeat:P,repeatType:W,repeatDelay:D=0,...G}=j;let{ease:B=r.ease||"easeOut",duration:U}=j;const Q=typeof y=="function"?y(S,N):y,ee=A.length,de=Ks(O)?O:i==null?void 0:i[O];if(ee<=2&&de){let X=100;if(ee===2&&Pn(A)){const K=A[1]-A[0];X=Math.abs(K)}const te={...G};U!==void 0&&(te.duration=Xs(U));const le=hn(te,X,de);B=le.ease,U=le.duration}U??(U=a);const Z=m+Q;q.length===1&&q[0]===0&&(q[1]=1);const ie=q.length-A.length;if(ie>0&&Zs(q,ie),A.length===1&&A.unshift(null),P){U=En(U,P);const X=[...A],te=[...q];B=Array.isArray(B)?[...B]:[B];const le=[...B];for(let K=0;K<P;K++){A.push(...X);for(let re=0;re<X.length;re++)q.push(te[re]+(K+1)),B.push(re===0?"linear":Wr(le,re-1))}Sn(q,P)}const he=Z+U;Cn(k,A,B,q,Z,he),E=Math.max(Q+U,E),d=Math.max(he,d)};if(Vr(b)){const w=er(b,l);M(h,v,tr("default",w))}else{const w=Zr(b,h,n,c),j=w.length;for(let k=0;k<j;k++){h=h,v=v;const S=w[k],N=er(S,l);for(const A in h)M(h[A],qn(v,A),tr(A,N),k,j)}}x=m,m+=E}return l.forEach((g,p)=>{for(const b in g){const h=g[b];h.sort(An);const v=[],E=[],M=[];for(let j=0;j<h.length;j++){const{at:k,value:S,easing:N}=h[j];v.push(S),E.push(Ys(0,d,k)),M.push(N||"easeOut")}E[0]!==0&&(E.unshift(0),v.unshift(v[0]),M.unshift(Fn)),E[E.length-1]!==1&&(E.push(1),v.push(null)),o.has(p)||o.set(p,{keyframes:{},transition:{}});const w=o.get(p);w.keyframes[b]=v,w.transition[b]={...r,duration:d,ease:M,times:E,...s}}}),o}function er(t,r){return!r.has(t)&&r.set(t,{}),r.get(t)}function tr(t,r){return r[t]||(r[t]=[]),r[t]}function Ln(t){return Array.isArray(t)?t:[t]}function qn(t,r){return t&&t[r]?{...t,...t[r]}:{...t}}const Dn=t=>typeof t=="number",Pn=t=>t.every(Dn);function $n(t,r){return t in r}class Tn extends Js{constructor(){super(...arguments),this.type="object"}readValueFromInstance(r,s){if($n(s,r)){const n=r[s];if(typeof n=="string"||typeof n=="number")return n}}getBaseTargetFromProps(){}removeValueFromRenderState(r,s){delete s.output[r]}measureInstanceViewportBox(){return Qs()}build(r,s){Object.assign(r.output,s)}renderInstance(r,{output:s}){Object.assign(r,s)}sortInstanceNodePosition(){return 0}}function Rn(t){const r={presenceContext:null,props:{}
1,visualState:{renderState:{transform:{},transformOrigin:{},style:{},vars:{},attrs:{}},latestValues:{}}},s=en(t)?new tn(r):new rn(r);s.mount(t),ct.set(t,s)}function In(t){const r={presenceContext:null,props:{},visualState:{renderState:{output:{}},latestValues:{}}},s=new Tn(r);s.mount(t),ct.set(t,s)}function On(t,r){return Vr(t)||typeof t=="number"||typeof t=="string"&&!Tt(r)}function Kr(t,r,s,n){const i=[];if(On(t,r))i.push(sn(t,Tt(r)&&r.default||r,s&&(s.default||s)));else{const a=Zr(t,r,n),o=a.length;for(let l=0;l<o;l++){const c=a[l],u=c instanceof Element?Rn:In;ct.has(c)||u(c);const x=ct.get(c),m={...s};"delay"in m&&typeof m.delay=="function"&&(m.delay=m.delay(l,o)),i.push(...nn(x,{...r,transition:m},{}))}}return i}function Bn(t,r,s){const n=[];return Mn(t,r,s,{spring:an}).forEach(({keyframes:a,transition:o},l)=>{n.push(...Kr(l,a,o))}),n}function Un(t){return Array.isArray(t)&&t.some(Array.isArray)}function zn(t){function r(s,n,i){let a=[];return Un(s)?a=Bn(s,n,t):a=Kr(s,n,i,t),new on(a)}return r}const ze=zn();function _n(){const t=xt(yn);return zr(t.mount,[]),t}const Vn=1,Gn="2026-09-04T14:22:52.606Z",Hn=[{id:"porte-cartes",nom:"Porte-cartes",pluriel:"Porte-cartes",article:"un",accroche:"Le format le plus fin — quelques cartes, rien de plus.",modeleId:"limpide"},{id:"portefeuille",nom:"Portefeuille",pluriel:"Portefeuilles",article:"un",accroche:"Cartes, billets et monnaie dans une silhouette qui reste plate.",modeleId:"authentique"}
1,{id:"ceinture",nom:"Ceinture",pluriel:"Ceintures",article:"une",accroche:"Sangle doublée, boucle laiton, couture d’un bout à l’autre.",modeleId:"affirmee"},{id:"porte-monnaie",nom:"Porte-monnaie",pluriel:"Porte-monnaie",article:"un",accroche:"Petite pièce, beaucoup de couture.",modeleId:null},{id:"pochette",nom:"Pochette",pluriel:"Pochettes",article:"une",accroche:"Pour ce qui se transporte à la main.",modeleId:null},{id:"pochette-passeport",nom:"Pochette passeport",pluriel:"Pochettes passeport",article:"une",accroche:"Passeport, cartes d’embarquement et billets au même endroit.",modeleId:null},{id:"trousse",nom:"Trousse",pluriel:"Trousses",article:"une",accroche:"Fermeture zippée, cuir souple, fond renforcé.",modeleId:null},{id:"porte-cles",nom:"Porte-clés",pluriel:"Porte-clés",article:"un",accroche:"La pièce qui s’use le plus vite et patine le mieux.",modeleId:null}],Wn=[{id:"limpide",categorieId:"porte-cartes",nom:"Le Limpide",personnalisable:!0,accroche:"Ultra-fin, en cuir pleine fleur qui se patine.",description:"Le compagnon discret du quotidien. Format porte-cartes ultra-fin, cousu main au point sellier dans un cuir pleine fleur qui se patine avec le temps.",prixCentimes:8900,supplementCuir2Centimes:500,options:{doublure:!0,haut:!0},palette:{cuir:null,cuir2:null,doublure:null,fils:null},schema:{recto:{boite:{x:70.73,y:38.4,largeur:858.54,hauteur:563.2},echelleMm:8.58536585365852,calques:[{nom:"1 Poche ARR RECTO",type:"cuir",rang:0,sousTraces:["M70.73 601.6 L929.27 601.6 L929.27 40.12 L70.73 40.12 L70.73 601.6 Z"],groupe:1},{nom:"2 Poche INTER RECTO",type:"cuir",rang:1,sousTraces:["M70.73 601.6 L70.73 215.26 L242.44 129.4 L757.56 129.4 L929.27 215.26 L929.27 601.6 L70.73 601.6"],groupe:2},{nom:"3 Poche AVT RECTO",type:"cuir",rang:2,sousTraces:["M70.73 601.6 L70.73 301.11 L242.44 215.26 L757.56 215.26 L929.27 301.11 L929.27 601.6 L70.73 601.6"],groupe:1},{nom:"4 Couture RECTO",type:"couture",rang:3,sousTraces:["M94.34 65.87 L94.34 575.84 L905.66 575.84 L905.66 65.87"],groupe:1},{nom:"5 Point cheval RECTO",type:"cheval",rang:4,sousTraces:["M94.34 65.87 L94.34 38.4","M905.66 65.87 L905.66 38.4"],groupe:1}]},verso:{boite:{x:70.73,y:38.4,largeur:858.54,hauteur:563.2},echelleMm:8.58536585365852,calques:[{nom:"1 Poche ARR VERSO",type:"cuir",rang:0,sousTraces:["M70.73 601.6 L929.27 601.6 L929.27 40.12 L70.73 40.12 L70.73 601.6 Z"],groupe:1},{nom:"3 Poche AVT VERSO",type:"cuir",rang:1,sousTraces:["M70.73 601.6 L70.73 301.11 L242.44 215.26 L757.56 215.26 L929.27 301.11 L929.27 601.6 L70.73 601.6"],groupe:2},{nom:"4 Couture VERSO",type:"couture",rang:2,sousTraces:["M94.34 65.87 L94.34 575.84 L905.66 575.84 L905.66 65.87"],groupe:1},{nom:"5 Point cheval VERSO",type:"cheval",rang:3,sousTraces:["M905.66 65.87 L905.66 38.4","M94.34 65.87 L94.34 38.4"],groupe:1}]}}},{id:"authentique",categorieId:"portefeuille",nom:"L'Authentique",personnalisable:!1,accroche:"Deux volets, pour les cartes et les billets.",description:"Un classique intemporel. De la place pour vos cartes et vos billets, dans une silhouette épurée en cuir tanné végétal.",prixCentimes:35e3,supplementCuir2Centimes:0,options:{doublure:!0,haut:!0},palette:{cuir:null,cuir2:null,doublure:null,fils:null}}
1,{id:"affirmee",categorieId:"ceinture",nom:"L'Affirmée",personnalisable:!1,accroche:"Sangle doublée, boucle laiton.",description:"La pièce qui tient la journée. Sangle en cuir pleine fleur doublée, boucle laiton, et deux longues lignes de point sellier d'un bout à l'autre.",prixCentimes:9500,supplementCuir2Centimes:0,options:{doublure:!0,haut:!1},palette:{cuir:null,cuir2:null,doublure:null,fils:null}}],Zn=[{id:"porte-cartes-brique",categorieId:"porte-cartes",numero:1e3,titre:"Cuir cognac, fil noir",description:"",cuirNom:"Cognac",filPresent:!0,filNom:"Noir",doublurePresente:!1,doublureMatiere:"",doublureCouleur:"",prixCentimes:7900,delai:"",disponibilite:"sur-commande",alt:"Porte-cartes en cuir brique cousu au fil noir, posé sur un bloc de grès",misEnAvant:!1,ordreAccueil:null,photos:[{fichier:"porte-cartes-cuir-brique-fil-noir-01",src:"/photos/porte-cartes/porte-cartes-cuir-brique-fil-noir-01-1600.webp",repli:"/photos/porte-cartes/porte-cartes-cuir-brique-fil-noir-01-1600.jpg",srcSet:"/photos/porte-cartes/porte-cartes-cuir-brique-fil-noir-01-480.webp 480w, /photos/porte-cartes/porte-cartes-cuir-brique-fil-noir-01-960.webp 960w, /photos/porte-cartes/porte-cartes-cuir-brique-fil-noir-01-1600.webp 1600w",largeur:1600,hauteur:2405,cadragePosition:"50% 50%",cadrageZoom:null,alt:""},{fichier:"porte-cartes-cuir-brique-fil-noir-02",src:"/photos/porte-cartes/porte-cartes-cuir-brique-fil-noir-02-1600.webp",repli:"/photos/porte-cartes/porte-cartes-cuir-brique-fil-noir-02-1600.jpg",srcSet:"/photos/porte-cartes/porte-cartes-cuir-brique-fil-noir-02-480.webp 480w, /photos/porte-cartes/porte-cartes-cuir-brique-fil-noir-02-960.webp 960w, /photos/porte-cartes/porte-cartes-cuir-brique-fil-noir-02-1600.webp 1600w",largeur:1600,hauteur:1065,cadragePosition:"50% 50%",cadrageZoom:null,alt:""},{fichier:"porte-cartes-cuir-brique-fil-noir-03",src:"/photos/porte-cartes/porte-cartes-cuir-brique-fil-noir-03-684.webp",repli:"/photos/porte-cartes/porte-cartes-cuir-brique-fil-noir-03-684.jpg",srcSet:"/photos/porte-cartes/porte-cartes-cuir-brique-fil-noir-03-480.webp 480w, /photos/porte-cartes/porte-cartes-cuir-brique-fil-noir-03-684.webp 684w",largeur:684,hauteur:1028,cadragePosition:"50% 50%",cadrageZoom:null,alt:""}]},{id:"porte-cartes-vert-brun",categorieId:"porte-cartes",numero:1001,titre:"Cuir vert forêt et brun, fil rouge",description:"",cuirNom:"Vert forêt et brun",filPresent:!0,filNom:"Rouge",doublurePresente:!1,doublureMatiere:"",doublureCouleur:"",prixCentimes:7900,delai:"",disponibilite:"disponible",alt:"Porte-cartes bicolore vert forêt et brun, cousu au fil rouge",misEnAvant:!0,ordreAccueil:0,photos:[{fichier:"porte-cartes-cuir-vert-brun-fil-rouge-01",src:"/photos/porte-cartes/porte-cartes-cuir-vert-brun-fil-rouge-01-1600.webp",repli:"/photos/porte-cartes/porte-cartes-cuir-vert-brun-fil-rouge-01-1600.jpg",srcSet:"/photos/porte-cartes/porte-cartes-cuir-vert-brun-fil-rouge-01-480.webp 480w, /photos/porte-cartes/porte-cartes-cuir-vert-brun-fil-rouge-01-960.webp 960w, /photos/porte-cartes/porte-cartes-cuir-vert-brun-fil-rouge-01-1600.webp 1600w",largeur:1600,hauteur:1065,cadragePosition:"58% 50%",cadrageZoom:null,alt:"Porte-cartes bicolore vert forêt et brun, cousu au fil rouge, posé sur un bloc de grès"},{fichier:"porte-cartes-cuir-vert-brun-fil-rouge-03",src:"/photos/porte-cartes/porte-cartes-cuir-vert-brun-fil-rouge-03-1306.webp",repli:"/photos/porte-cartes/porte-cartes-cuir-vert-brun-fil-rouge-03-1306.jpg",srcSet:"/photos/porte-cartes/porte-cartes-cuir-vert-brun-fil-rouge-03-480.webp 480w, /photos/porte-cartes/porte-cartes-cuir-vert-brun-fil-rouge-03-960.webp 960w, /photos/porte-cartes/porte-cartes-cuir-vert-brun-fil-rouge-03-1306.webp 1306w",largeur:1306,hauteur:869,cadragePosition:"50% 50%",cadrageZoom:null,alt:""},{fichier:"porte-cartes-cuir-vert-brun-fil-rouge-04",src:"/photos/porte-cartes/porte-cartes-cuir-vert-brun-fil-rouge-04-1254.webp",repli:"/photos/porte-cartes/porte-cartes-cuir-vert-brun-fil-rouge-04-1254.jpg",srcSet:"/photos/porte-cartes/porte-cartes-cuir-vert-brun-fil-rouge-04-480.webp 480w, /photos/porte-cartes/porte-cartes-cuir-vert-brun-fil-rouge-04-960.webp 960w, /photos/porte-cartes/porte-cartes-cuir-vert-brun-fil-rouge-04-1254.webp 1254w",largeur:1254,hauteur:835,ca
1dragePosition:"50% 50%",cadrageZoom:null,alt:""}]},{id:"porte-cartes-brun-graine",categorieId:"porte-cartes",numero:1002,titre:"Cuir brun grainé, fil écru",description:"Cuir pull up",cuirNom:"Brun grainé",filPresent:!0,filNom:"Écru",doublurePresente:!1,doublureMatiere:"",doublureCouleur:"",prixCentimes:7900,delai:"",disponibilite:"disponible",alt:"Porte-cartes en cuir brun fortement grainé, cousu au fil écru",misEnAvant:!0,ordreAccueil:3,photos:[{fichier:"porte-cartes-cuir-brun-graine-fil-ecru-01",src:"/photos/porte-cartes/porte-cartes-cuir-brun-graine-fil-ecru-01-1512.webp",repli:"/photos/porte-cartes/porte-cartes-cuir-brun-graine-fil-ecru-01-1512.jpg",srcSet:"/photos/porte-cartes/porte-cartes-cuir-brun-graine-fil-ecru-01-480.webp 480w, /photos/porte-cartes/porte-cartes-cuir-brun-graine-fil-ecru-01-960.webp 960w, /photos/porte-cartes/porte-cartes-cuir-brun-graine-fil-ecru-01-1512.webp 1512w",largeur:1512,hauteur:1006,cadragePosition:"50% 50%",cadrageZoom:null,alt:""},{fichier:"porte-cartes-cuir-brun-graine-fil-ecru-02",src:"/photos/porte-cartes/porte-cartes-cuir-brun-graine-fil-ecru-02-808.webp",repli:"/photos/porte-cartes/porte-cartes-cuir-brun-graine-fil-ecru-02-808.jpg",srcSet:"/photos/porte-cartes/porte-cartes-cuir-brun-graine-fil-ecru-02-480.webp 480w, /photos/porte-cartes/porte-cartes-cuir-brun-graine-fil-ecru-02-808.webp 808w",largeur:808,hauteur:1214,cadragePosition:"50% 50%",cadrageZoom:null,alt:""},{fichier:"porte-cartes-cuir-brun-graine-fil-ecru-04",src:"/photos/porte-cartes/porte-cartes-cuir-brun-graine-fil-ecru-04-1326.webp",repli:"/photos/porte-cartes/porte-cartes-cuir-brun-graine-fil-ecru-04-1326.jpg",srcSet:"/photos/porte-cartes/porte-cartes-cuir-brun-graine-fil-ecru-04-480.webp 480w, /photos/porte-cartes/porte-cartes-cuir-brun-graine-fil-ecru-04-960.webp 960w, /photos/porte-cartes/porte-cartes-cuir-brun-graine-fil-ecru-04-1326.webp 1326w",largeur:1326,hauteur:882,cadragePosition:"50% 50%",cadrageZoom:null,alt:""}]},{id:"porte-cartes-chocolat",categorieId:"porte-cartes",numero:1003,titre:"Cuir chocolat, fil écru",description:"",cuirNom:"Chocolat",filPresent:!0,filNom:"Écru",doublurePresente:!1,doublureMatiere:"",doublureCouleur:"",prixCentimes:7900,delai:"",disponibilite:"vendue",alt:"Porte-cartes en cuir chocolat cousu au fil écru",misEnAvant:!1,ordreAccueil:null,photos:[{fichier:"porte-cartes-cuir-chocolat-fil-ecru-01",src:"/photos/porte-cartes/porte-cartes-cuir-chocolat-fil-ecru-01-1600.webp",repli:"/photos/porte-cartes/porte-cartes-cuir-chocolat-fil-ecru-01-1600.jpg",srcSet:"/photos/porte-cartes/porte-cartes-cuir-chocolat-fil-ecru-01-480.webp 480w, /photos/porte-cartes/porte-cartes-cuir-chocolat-fil-ecru-01-960.webp 960w, /photos/porte-cartes/porte-cartes-cuir-chocolat-fil-ecru-01-1600.webp 1600w",largeur:1600,hauteur:1065,cadragePosition:"50% 50%",cadrageZoom:null,alt:""},{fichier:"porte-cartes-cuir-chocolat-fil-ecru-03",src:"/photos/porte-cartes/porte-cartes-cuir-chocolat-fil-ecru-03-652.webp",repli:"/photos/porte-cartes/porte-cartes-cuir-chocolat-fil-ecru-03-652.jpg",srcSet:"/photos/porte-cartes/porte-cartes-cuir-chocolat-fil-ecru-03-480.webp 480w, /photos/porte-cartes/porte-cartes-cuir-chocolat-fil-ecru-03-652.webp 652w",largeur:652,hauteur:980,cadragePosition:"50% 50%",cadrageZoom:null,alt:""},{fichier:"porte-cartes-cuir-chocolat-fil-ecru-02",src:"/photos/porte-cartes/porte-cartes-cuir-chocolat-fil-ecru-02-1600.webp",repli:"/photos/porte-cartes/porte-cartes-cuir-chocolat-fil-ecru-02-1600.jpg",srcSet:"/photos/porte-cartes/porte-cartes-cuir-chocolat-fil-ecru-02-480.webp 480w, /photos/porte-cartes/porte-cartes-cuir-chocolat-fil-ecru-02-960.webp 960w, /photos/porte-cartes/porte-cartes-cuir-chocolat-fil-ecru-02-1600.webp 1600w",largeur:1600,hauteur:1065,cadragePosition:"50% 50%",cadrageZoom:null,alt:""}]},{id:"portefeuille-cognac",categorieId:"portefeuille",numero:2e3,titre:"Cuir cognac, fil noir, doublure noir en cuir chèvre",description:"",cuirNom:"Cognac",filPresent:!0,filNom:"Noir",doublurePresente:!0,doublureMatiere:"Cuir chèvre",doublureCouleur:"Noir",prixCentimes:32e3,delai:"1",disponibilite:"disponible",alt:"Portefeuille deux volets en cuir tannage vegetal cognac cousu au fil noir. Doublure noir en cuir d'agneau",misEnAvant:!0,ordreAccueil:1,photos:[{fichier:"portefeuille-cuir-cognac-fil-noir-03",src:"/photos/portefeuille/portefeuille-cuir-cognac-fil-noir-03-1170.webp",repli:"/photos/portefeuille/portefeuille-cuir-cognac-fil-noir-03-1170.jpg",srcSet:"/photos/portefeuille/portefeuille-cuir-cognac-fil-noir-03-480.webp 480w, /photos/portefeuille/portefeuille-cuir-cognac-fil-noir-03-960.webp 960w, /photos/portefeuille/portefeuille-cuir-cognac-fil-noir-03-1170.webp 1170w",largeur:1170,hauteur:2080,cadragePosition:"50% 41%",cadrageZoom:null,alt:""}
1,{fichier:"portefeuille-cuir-cognac-fil-noir-01",src:"/photos/portefeuille/portefeuille-cuir-cognac-fil-noir-01-1080.webp",repli:"/photos/portefeuille/portefeuille-cuir-cognac-fil-noir-01-1080.jpg",srcSet:"/photos/portefeuille/portefeuille-cuir-cognac-fil-noir-01-480.webp 480w, /photos/portefeuille/portefeuille-cuir-cognac-fil-noir-01-960.webp 960w, /photos/portefeuille/portefeuille-cuir-cognac-fil-noir-01-1080.webp 1080w",largeur:1080,hauteur:1350,cadragePosition:"50% 50%",cadrageZoom:null,alt:""},{fichier:"portefeuille-cuir-cognac-fil-noir-02",src:"/photos/portefeuille/portefeuille-cuir-cognac-fil-noir-02-1080.webp",repli:"/photos/portefeuille/portefeuille-cuir-cognac-fil-noir-02-1080.jpg",srcSet:"/photos/portefeuille/portefeuille-cuir-cognac-fil-noir-02-480.webp 480w, /photos/portefeuille/portefeuille-cuir-cognac-fil-noir-02-960.webp 960w, /photos/portefeuille/portefeuille-cuir-cognac-fil-noir-02-1080.webp 1080w",largeur:1080,hauteur:1350,cadragePosition:"50% 50%",cadrageZoom:null,alt:""}]},{id:"ceinture-fauve",categorieId:"ceinture",numero:3e3,titre:"Cuir fauve, fil écru",description:"",cuirNom:"Fauve",filPresent:!0,filNom:"Écru",doublurePresente:!1,doublureMatiere:"",doublureCouleur:"",prixCentimes:9500,delai:"",disponibilite:"sur-commande",alt:"Ceinture en cuir fauve doublée de rouge, boucle laiton, couture au fil écru",misEnAvant:!0,ordreAccueil:2,photos:[{fichier:"ceinture-cuir-fauve-fil-ecru-01",src:"/photos/ceinture/ceinture-cuir-fauve-fil-ecru-01-1080.webp",repli:"/photos/ceinture/ceinture-cuir-fauve-fil-ecru-01-1080.jpg",srcSet:"/photos/ceinture/ceinture-cuir-fauve-fil-ecru-01-480.webp 480w, /photos/ceinture/ceinture-cuir-fauve-fil-ecru-01-960.webp 960w, /photos/ceinture/ceinture-cuir-fauve-fil-ecru-01-1080.webp 1080w",largeur:1080,hauteur:1350,cadragePosition:"50% 50%",cadrageZoom:1.3,alt:""},{fichier:"ceinture-cuir-fauve-fil-ecru-02",src:"/photos/ceinture/ceinture-cuir-fauve-fil-ecru-02-1080.webp",repli:"/photos/ceinture/ceinture-cuir-fauve-fil-ecru-02-1080.jpg",srcSet:"/photos/ceinture/ceinture-cuir-fauve-fil-ecru-02-480.webp 480w, /photos/ceinture/ceinture-cuir-fauve-fil-ecru-02-960.webp 960w, /photos/ceinture/ceinture-cuir-fauve-fil-ecru-02-1080.webp 1080w",largeur:1080,hauteur:1350,cadragePosition:"50% 50%",cadrageZoom:null,alt:""}]},{id:"porte-cartes-vert",categorieId:"porte-cartes",numero:1004,titre:"Cuir vert, fil blanc",description:"test1",cuirNom:"Vert",filPresent:!0,filNom:"Blanc",doublurePresente:!1,doublureMatiere:"",doublureCouleur:"",prixCentimes:7900,delai:"1",disponibilite:"vendue",alt:"",misEnAvant:!1,ordreAccueil:null,photos:[{fichier:"porte-cartes-cuir-vert-fil-blanche-01",src:"/photos/porte-cartes/porte-cartes-cuir-vert-fil-blanche-01-1600.webp",repli:"/photos/porte-cartes/porte-cartes-cuir-vert-fil-blanche-01-1600.jpg",srcSet:"/photos/porte-cartes/porte-cartes-cuir-vert-fil-blanche-01-480.webp 480w, /photos/porte-cartes/porte-cartes-cuir-vert-fil-blanche-01-960.webp 960w, /photos/porte-cartes/porte-cartes-cuir-vert-fil-blanche-01-1600.webp 1600w",largeur:1600,hauteur:1228,cadragePosition:"50% 50%",cadrageZoom:null,alt:""},{fichier:"porte-cartes-cuir-vert-fil-blanche-02",src:"/photos/porte-cartes/porte-cartes-cuir-vert-fil-blanche-02-1290.webp",repli:"/photos/porte-cartes/porte-cartes-cuir-vert-fil-blanche-02-1290.jpg",srcSet:"/photos/porte-cartes/porte-cartes-cuir-vert-fil-blanche-02-480.webp 480w, /photos/porte-cartes/porte-cartes-cuir-vert-fil-blanche-02-960.webp 960w, /photos/porte-cartes/porte-cartes-cuir-vert-fil-blanche-02-1290.webp 1290w",largeur:1290,hauteur:858,cadragePosition:"50% 50%",cadrageZoom:null,alt:""},{fichier:"porte-cartes-cuir-vert-fil-blanche-03",src:"/photos/porte-cartes/porte-cartes-cuir-vert-fil-blanche-03-1600.webp",repli:"/photos/porte-cartes/porte-cartes-cuir-vert-fil-blanche-03-1600.jpg",srcSet:"/photos/porte-cartes/porte-cartes-cuir-vert-fil-blanche-03-480.webp 480w, /photos/porte-cartes/porte-cartes-cuir-vert-fil-blanche-03-960.webp 960w, /photos/porte-cartes/porte-cartes-cuir-vert-fil-blanche-03-1600.webp 1600w",largeur:1600,hauteur:1228,cadragePosition:"50% 50%",cadrageZoom:null,alt:""}]}],Kn={cuir:[{id:"noir",nom:"Cognac Pull Up",hex:"#783828",degradeId:"leather-noir",arrets:null,texture:{fichier:"cuir-noir-9c3f4230",largeurMm:150,largeur:1400,hauteur:1205}},{id:"badalassi-minerva-nero",nom:"Badalassi minerva NERO",hex:"#0c0b08",degradeId:null,arrets:[{offset:"0%",couleur:"#41413e"},{offset:"38%",couleur:"#0c0b08"},{offset:"72%",couleur:"#0a0906"},{offset:"100%",couleur:"#070605"}],texture:null},{id:"brun-gratte",nom:"Brun gratté",hex:"#885858",degradeId:null,arrets:[{offset:"0%",couleur:"#a27d7d"},{offset:"38%",couleur:"#885858"},{offset:"72%",couleur:"#6d4646"},{offset:"100%",couleur:"#4f3333"}],texture:{fichier:"cuir-brun-gratte-002c85e5",largeurMm:150,largeur:1400,hauteur:980}},{id:"cognac",nom:"Cognac clair Gratté",hex:"#b86828",degradeId:"leather-cognac",arrets:null,texture:{fichier:"cuir-cognac-31ae19c6",largeurMm:200,largeur:1400,hauteur:983}},{id:"terra-cotta-gratte",nom:"Terra cotta gratté",hex:"#985838",degradeId:null,arrets:[{offset:"0%",couleur:"#af7d64"},{offset:"38%",couleur:"#985838"},{offset:"72%",couleur:"#7a462d"},{offset:"100%",couleur:"#583320"}],texture:{fichier:"cuir-terra-cotta-gratte-bd84dc6b",largeurMm:130,largeur:1400,hauteur:1902}}],doublure:[{id:"naturel",nom:"Noir",hex:"#000000",degradeId:"lining-naturel",arrets:null,texture:null},{id:"bordeaux",nom:"Olive",hex:"#8fb05e",degradeId:"lining-bordeaux",arrets:null,texture:null},{id:"foret",nom:"Bleu foncé",hex:"#092d77",degradeId:"lining-foret",arrets:null,texture:null}],haut:[{id:"miel",nom:"Miel",hex:"#C28A4A",degradeId:"haut-miel",arrets:null,texture:null},{id:"chataigne",nom:"Châtaigne",hex:"#5C3A22",degradeId:"haut-chataigne",arrets:null,texture:null},{id:"encre",nom:"Encre",hex:"#23211F",degradeId:"haut-encre",arrets:null,texture:null}]},Xn=[{id:"ecru",nom:"Écru",hex:"#E7D8B8"},{id:"noir",nom:"Noir",hex:"#000000"},{id:"orange",nom:"Orange",hex:"#b54b00"},{id:"rouge",nom:"Rouge",hex:"#6b1313"},{id:"jaune",nom:"Jaune",hex:"#ffbf00"},{id:"bleu",nom:"Bleu",hex:"#296291"},{id:"cyan",nom:"Cyan",hex:"#439c88"},{id:"gris",nom:"Gris",hex:"#616161"},{id:"cognac",nom:"Blanc",hex:"#ffffff"}],Yn={supplementCarteCentimes:1e3},Jn={version:Vn,genereLe:Gn,categories:Hn,modeles:Wn,produits:Zn,teintes:Kn,fils:Xn,reglages:Yn};let ut=Jn;const Lt=new Set;function ne(){return ut}function Qn(t){return Lt.add(t),()=>Lt.delete(t)}function ei(t){ut=t;for(const r of Lt)r()}function ti(t,r){const s=n=>JSON.stringify({...n,genereLe:""});return s(t)!==s(r)}async function ri(){try{const t=await fetch("/data/catalogue.json",{cache:"no-cache"});if(!t.ok)return;const r=await t.json();if((r==null?void 0:r.version)!==ut.version)return;ti(r,ut)&&ei(r)}catch{}}const Se="0 0 1000 640",si={limpide:{viewBox:Se,leatherFill:"leather-cognac",seamPath:"M340,170 H660 A30,30 0 0 1 690,200 V440 A30,30 0 0 1 660,470 H340 A30,30 0 0 1 310,440 V200 A30,30 0 0 1 340,170 Z",slots:[{x:380,y:206,w:240,h:150}
1,{x:380,y:247,w:240,h:150},{x:380,y:288,w:240,h:150}],echelleMm:4,panneaux:[{nom:"corps",famille:"cuir"},{nom:"haut",famille:"haut"},{nom:"doublure",famille:"doublure"}]},authentique:{viewBox:Se,leatherFill:"leather-noir",seamPath:"M192,162 H808 A20,20 0 0 1 828,182 V478 A20,20 0 0 1 808,498 H192 A20,20 0 0 1 172,478 V182 A20,20 0 0 1 192,162 Z",slots:[{x:560,y:210,w:232,h:146},{x:560,y:252,w:232,h:146},{x:560,y:294,w:232,h:146}],echelleMm:3.68,panneaux:[{nom:"corps",famille:"cuir"},{nom:"haut",famille:"haut"},{nom:"poche-gauche",famille:"doublure"},{nom:"poche-droite",famille:"doublure"}]},affirmee:{viewBox:Se,leatherFill:"leather-fauve",seamPath:"M310,288 H852 A27,27 0 0 1 852,342 H310 A27,27 0 0 1 310,288 Z",slots:[],echelleMm:2,panneaux:[{nom:"tranche",famille:"doublure"},{nom:"sangle",famille:"cuir"},{nom:"passant",famille:"cuir"}]}};function Xr(t){return si[t]}function Rt(){const t=ne().modeles;return t.find(r=>r.personnalisable)??t[0]}function ni(t,r=!1){return t.prixCentimes+(r?t.supplementCuir2Centimes:0)}function Me(t){return e.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.6,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,...t,children:[e.jsx("rect",{x:"3",y:"3",width:"18",height:"18",rx:"5"}),e.jsx("circle",{cx:"12",cy:"12",r:"4"}),e.jsx("circle",{cx:"17.4",cy:"6.6",r:"1",fill:"currentColor",stroke:"none"})]})}function ii(t){return e.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.6,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,...t,children:[e.jsx("path",{d:"M4 5h2l1.6 10.2a1.5 1.5 0 0 0 1.5 1.3h7.3a1.5 1.5 0 0 0 1.5-1.2L20.5 8H7"}),e.jsx("circle",{cx:"10",cy:"20",r:"1.1",fill:"currentColor",stroke:"none"}),e.jsx("circle",{cx:"18",cy:"20",r:"1.1",fill:"currentColor",stroke:"none"})]})}function z(t){return e.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.8,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,...t,children:[e.jsx("path",{d:"M5 12h14"}),e.jsx("path",{d:"M13 6l6 6-6 6"})]})}function ai(t){return e.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.8,strokeLinecap:"round","aria-hidden":!0,...t,children:[e.jsx("path",{d:"M3.5 7h17",strokeDasharray:"3.4 2.6"}),e.jsx("path",{d:"M3.5 12h17",strokeDasharray:"3.4 2.6"}),e.jsx("path",{d:"M3.5 17h17",strokeDasharray:"3.4 2.6"})]})}function rr(t){return e.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.8,strokeLinecap:"round","aria-hidden":!0,...t,children:e.jsx("path",{d:"M6 6l12 12M18 6L6 18"})})}function Yr(t){return e.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.6,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,...t,children:e.jsx("path",{d:"M6 9l6 6 6-6"})})}const oi=[.22,1,.36,1],li=3200;function It({nb:t=0}){const[r,s]=f.useState(!1),n=ht(),i=f.useRef();f.useEffect(()=>()=>clearTimeout(i.current),[]);const a=()=>{clearTimeout(i.current),s(!0),i.current=window.setTimeout(()=>s(!1),li)};return e.jsxs("div",{className:"relative",children:[e.jsxs("button",{type:"button",onClick:a,"aria-label":t>0?`Panier — ${t} article${t>1?"s":""}`:"Panier",className:"relative flex h-11 w-11 items-center justify-center rounded-full text-warm-muted transition-all duration-300 hover:bg-white/[0.06] hover:text-[#F2E6D2] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-warm-amber",children:[e.jsx(ii,{className:"h-[18px] w-[18px]"}),t>0&&e.jsx("span",{className:"absolute right-1 top-1 flex h-4 min-w-4 items-center justify-center rounded-full bg-warm-amber px-1 font-mono text-[9px] font-semibold text-atelier-deep",children:t})]}),e.jsx("div",{role:"status","aria-live":"polite",className:"pointer-events-none absolute right-0 top-full z-50 mt-2",children:e.jsx(Ee,{children:r&&e.jsx(T.p,{initial:{opacity:0,y:n?0:-6},animate:{opacity:1,y:0},exit:{opacity:0,y:n?0:-6},transition:{duration:n?0:.24,ease:oi},className:"ticket whitespace-nowrap rounded-xl border border-atelier-line/40 bg-atelier-deep/95 px-4 py-2.5 !text-warm-muted shadow-atelier backdrop-blur-md",children:"Boutique bientôt ouverte"})})})]})}function je({orientation:t="verticale",variante:r="cousu",className:s="",style:n}){const i=`couture-${r}-${f.useId().replace(/:/g,"")}`,a=t==="verticale";
1return e.jsxs("svg",{"aria-hidden":!0,className:`${a?"w-3":"h-3"} ${s}`,style:n,children:[e.jsx("defs",{children:e.jsx("pattern",{id:i,width:a?12:11,height:a?11:12,patternUnits:"userSpaceOnUse",children:r==="cousu"?e.jsxs(e.Fragment,{children:[e.jsx("line",{x1:3,y1:a?8.8:9.6,x2:a?9:8,y2:a?3.8:3.6,stroke:"#190D05",strokeOpacity:"0.4",strokeWidth:"1.8",strokeLinecap:"round"}),e.jsx("line",{x1:"3",y1:a?8:9,x2:a?9:8,y2:"3",stroke:"#D9A05B",strokeOpacity:"0.72",strokeWidth:"1.7",strokeLinecap:"round"})]}):e.jsx("circle",{cx:a?6:5.5,cy:a?5.5:6,r:"1.25",fill:"#000",fillOpacity:"0.42"})})}),e.jsx("line",{x1:a?6:0,y1:a?0:6,x2:a?6:"100%",y2:a?"100%":6,stroke:"#000",strokeOpacity:"0.25",strokeWidth:"0.5"}),e.jsx("rect",{width:"100%",height:"100%",fill:`url(#${i})`})]})}const ci={disponible:"Disponible",vendue:"Vendue","sur-commande":"Sur commande"};function Ze(t){var r;return((r=ne().categories.find(s=>s.id===t))==null?void 0:r.nom)??""}function De(t){return t.photos}function Jr(t){const{categories:r,produits:s}=ne();return r.map(n=>({type:n,pieces:s.filter(i=>i.categorieId===n.id&&t(i))})).filter(n=>n.pieces.length>0)}function Ot(){return Jr(t=>t.disponibilite!=="vendue")}function Qr(){return Jr(t=>t.disponibilite==="vendue")}function es(t){return ne().produits.some(r=>r.categorieId===t&&r.disponibilite==="vendue")}function ts(t){var i,a;const{categories:r,modeles:s}=ne(),n=(i=r.find(o=>o.id===t))==null?void 0:i.modeleId;return n&&(a=s.find(o=>o.id===n))!=null&&a.personnalisable?n:null}const sr={disponible:0,"sur-commande":1,vendue:2};function ui(){const t=ne().produits.filter(s=>s.misEnAvant).sort((s,n)=>sr[s.disponibilite]-sr[n.disponibilite]||(s.ordreAccueil??0)-(n.ordreAccueil??0)),r=new Set;return t.filter(s=>!r.has(s.categorieId)&&r.add(s.categorieId))}function di(t){const r=ne().produits.filter(s=>s.categorieId===t&&s.disponibilite!=="vendue");return r.length===0?null:Math.min(...r.map(s=>s.prixCentimes))}function J(){return f.useSyncExternalStore(Qn,ne,ne)}function I(t){return r=>{r.metaKey||r.ctrlKey||r.shiftKey||r.altKey||r.button!==0||(r.preventDefault(),t())}}const pi=[.22,1,.36,1];function rs(){return J(),Ot().map(({type:t,pieces:r})=>({id:t.id,label:t.nom,nb:r.length}))}function ss(){return J(),Qr().length>0}const Je="ticket relative !text-warm-muted transition-colors duration-300 hover:!text-[#F2E6D2] after:absolute after:-bottom-2 after:left-0 after:h-px after:w-0 after:bg-warm-amber after:transition-all after:duration-300 hover:after:w-full focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-warm-amber",nr="group relative flex items-center gap-3 py-2.5 pl-8 pr-5 transition-colors duration-300 hover:bg-white/[0.04] focus-visible:outline focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-warm-amber";function ns({onSection:t,onGalerie:r,onVendues:s}){const n=rs(),i=ss(),[a,o]=f.useState(!1),l=ht(),c=f.useRef(),u=()=>{clearTimeout(c.current),o(!0)},x=()=>{clearTimeout(c.current),o(!1)},m=()=>{clearTimeout(c.current),c.current=window.setTimeout(()=>o(!1),120)};return f.useEffect(()=>()=>clearTimeout(c.current),[]),e.jsxs("div",{className:"hidden items-center gap-9 md:flex",children:[e.jsxs("div",{className:"relative",onMouseEnter:u,onMouseLeave:m,onFocusCapture:u,onBlurCapture:d=>{d.currentTarget.contains(d.relatedTarget)||x()},onKeyDown:d=>{d.key==="Escape"&&x()},children:[e.jsxs("button",{type:"button","aria-expanded":a,"aria-controls":"menu-collection",onClick:()=>{x(),t("collection")},className:`${Je} inline-flex items-center gap-2`,children:["Collection",e.jsx(Yr,{"aria-hidden":!0,className:`h-3 w-3 transition-transform duration-300 ${a?"rotate-180":""}`})]}),e.jsx(Ee,{children:a&&e.jsx(T.div,{id:"menu-collection",role:"group","aria-label":"Rubriques de la collection",initial:{opacity:0,y:l?0:-6},animate:{opacity:1,y:0},exit:{opacity:0,y:l?0:-6},transition:{duration:.22,ease:pi},className:"absolute left-1/2 top-full z-50 w-[252px] -translate-x-1/2 pt-4",children:e.jsxs("div",{className:"overflow-hidden rounded-xl border border-atelier-line/40 bg-atelier-deep/95 py-2 shadow-atelier backdrop-blur-md",children:[n.map(d=>e.jsxs("a",{href:`/galerie#${d.id}`,"aria-label":`${d.label} — ${d.nb} pièce${d.nb>1?"s":""}`,onClick:I(()=>{x(),r(d.id)}
1),className:nr,children:[e.jsx("span",{"aria-hidden":!0,className:"absolute left-3 top-1/2 h-px w-[10px] -translate-y-1/2 bg-warm-faint transition-all duration-300 group-hover:w-[16px] group-hover:bg-warm-amber"}),e.jsx("span",{className:"ticket flex-1 whitespace-nowrap transition-colors duration-300 group-hover:!text-[#F4E9D7]",children:d.label}),e.jsx("span",{className:"font-mono text-[10px] text-warm-faint",children:d.nb})]},d.id)),e.jsx("div",{className:"px-5 py-1.5",children:e.jsx(ue,{})}),e.jsxs("a",{href:"/galerie",onClick:I(()=>{x(),r()}),className:nr,children:[e.jsx("span",{className:"ticket flex-1 whitespace-nowrap transition-colors duration-300 group-hover:!text-[#F4E9D7]",children:"Galerie complète"}),e.jsx(z,{className:"h-3 w-3 text-warm-amber transition-transform duration-300 group-hover:translate-x-1"})]})]})})})]}),i&&e.jsx("a",{href:"/pieces-vendues",onClick:I(()=>s()),className:Je,children:"Pièces vendues"}),e.jsx("button",{type:"button",onClick:()=>t("savoir-faire"),className:Je,children:"Savoir-faire"}),e.jsx("button",{type:"button",onClick:()=>t("contact"),className:Je,children:"Contact"})]})}const Qe=[.22,1,.36,1],mi="https://www.instagram.com/numentcuir/",xi=.2,hi=.36,fi=.24,gi=.032,bi=.04,wt=220,vi=.55,ji=110,wi=56,yi=260,et="display relative flex min-h-[56px] w-full items-center pl-9 text-left text-[26px] font-light leading-none text-[#F4E9D7] transition-colors duration-200 active:text-warm-glow focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-warm-amber",ir="relative flex min-h-[44px] items-center gap-3 pl-9 pr-1 transition-colors duration-200 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-warm-amber";function Le({mere:t=!1}){return e.jsx("span",{"aria-hidden":!0,className:`absolute left-3 top-1/2 h-px -translate-y-1/2 ${t?"w-[16px] bg-warm-amber":"w-[11px] bg-warm-faint"}`})}function is({rubriques:t,onSection:r,onGalerie:s,onVendues:n,onComposer:i}){const a=ss(),[o,l]=f.useState(!1),c=ht(),u=f.useRef(null),x=f.useRef(null),m=f.useRef(null),d=Ge(1),g=Ge(0),p=Yt(d,N=>`${Math.min(1,Math.max(0,N))*100}%`),b=Yt(g,[0,wt*.65,wt],[1,1,.72]),h=f.useRef(null),v=f.useRef(!1);f.useEffect(()=>{if(!o)return;g.set(0),d.set(c?1:0);const N=ze(d,1,{duration:c?0:hi,ease:Qe});return()=>N.stop()},[o,c,d,g]),f.useEffect(()=>{if(!o)return;const N=A=>{A.key==="Escape"&&(A.preventDefault(),l(!1))};return window.addEventListener("keydown",N),()=>window.removeEventListener("keydown",N)},[o]),f.useEffect(()=>{var N;if(o)return(N=x.current)==null||N.focus(),()=>{var A;return(A=u.current)==null?void 0:A.focus()}},[o]),f.useEffect(()=>{if(!o)return;const N=document.querySelector(".home-scroll, .galerie-scroll");if(!N)return;const A=N.style.overflow;return N.style.overflow="hidden",()=>{N.style.overflow=A}},[o]);const E=()=>l(!1),M=()=>{ze(g,0,c?{duration:0}:{duration:.3,ease:Qe}),ze(d,1,c?{duration:0}:{duration:.3,ease:Qe})},w={onTouchStart:N=>{var y;if((((y=m.current)==null?void 0:y.scrollTop)??0)>0)return;const A=N.touches[0];h.current={x:A.clientX,y:A.clientY,t:Date.now()},v.current=!1},onTouchMove:N=>{const A=h.current;if(!A)return;const y=N.touches[0],q=y.clientY-A.y,O=y.clientX-A.x;if(!v.current){if(Math.abs(O)>Math.abs(q)){h.current=null;return}if(q<6)return;v.current=!0}if(q<=0){g.set(0),d.set(1);return}g.set(q*vi),d.set(1-q/wt)},onTouchEnd:N=>{const A=h.current;if(h.current=null,!A||!v.current)return;const y=N.changedTouches[0].clientY-A.y,q=Date.now()-A.t<yi&&y>wi;y>ji||q?E():M()},onTouchCancel:()=>{h.current=null,M()}},j=N=>()=>{E(),N()},k=N=>c?{duration:0}:{duration:fi,ease:Qe,delay:bi+N*gi},S=[e.jsxs("button",{type:"button",onClick:j(()=>r("collection")),className:et,children:[e.jsx(Le,{mere:!0}),"Collection"]},"collection"),...t.map(N=>e.jsxs("a",{href:`/galerie#${N.id}`,"aria-label":`${N.label} — ${N.nb} pièce${N.nb>1?"s":""}`,onClick:I(j(()=>s(N.id))),className:ir,children:[e.jsx(Le,{}),e.jsx("span",{className:"ticket flex-1",children:N.label}),e.jsx("span",{className:"font-mono text-[10px] text-warm-faint",children:N.nb})]},N.id)),e.jsxs("a",{href:"/galerie",onClick:I(j(()=>s())),className:ir,children:[e.jsx(Le,{}
1),e.jsx("span",{className:"ticket flex-1",children:"Galerie complète"}),e.jsx(z,{className:"h-3.5 w-3.5 text-warm-amber"})]},"galerie"),...a?[e.jsxs("a",{href:"/pieces-vendues",onClick:I(j(()=>n())),className:et,children:[e.jsx(Le,{mere:!0}),"Pièces vendues"]},"vendues")]:[],e.jsxs("button",{type:"button",onClick:j(()=>r("savoir-faire")),className:et,children:[e.jsx(Le,{mere:!0}),"Savoir-faire"]},"savoir-faire"),e.jsxs("button",{type:"button",onClick:j(()=>r("contact")),className:et,children:[e.jsx(Le,{mere:!0}),"Contact"]},"contact")];return e.jsxs(e.Fragment,{children:[e.jsx("button",{ref:u,type:"button",onClick:()=>l(N=>!N),"aria-expanded":o,"aria-controls":"menu-mobile","aria-label":o?"Fermer le menu":"Ouvrir le menu",className:"-mr-2 flex h-11 w-11 items-center justify-center rounded-full text-warm-muted transition-colors duration-300 hover:text-[#F2E6D2] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-warm-amber md:hidden",children:o?e.jsx(rr,{className:"h-6 w-6"}):e.jsx(ai,{className:"h-6 w-6"})}),ln.createPortal(e.jsx(Ee,{children:o&&e.jsx(T.div,{id:"menu-mobile",ref:x,role:"dialog","aria-modal":"true","aria-label":"Menu",tabIndex:-1,initial:{opacity:0}
1,animate:{opacity:1},exit:{opacity:0},transition:{duration:c?0:xi},className:"fixed inset-0 z-[60] focus:outline-none md:hidden",...w,children:e.jsxs(T.div,{style:{y:g,opacity:b},className:"flex h-full flex-col bg-atelier-deep",children:[e.jsxs("div",{className:"flex h-[72px] shrink-0 items-center justify-between px-6",children:[e.jsx("img",{src:"/logo-blanc.png",alt:"NÛMENT",className:"h-11 w-auto opacity-90"}),e.jsx("button",{type:"button",onClick:E,"aria-label":"Fermer le menu",className:"-mr-2 flex h-11 w-11 items-center justify-center rounded-full text-warm-muted transition-colors duration-300 active:text-[#F2E6D2] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-warm-amber",children:e.jsx(rr,{className:"h-6 w-6"})})]}),e.jsxs("div",{ref:m,className:"flex min-h-0 flex-1 flex-col overflow-y-auto overscroll-contain",children:[e.jsxs("nav",{"aria-label":"Menu principal",className:"relative mt-auto px-6 pb-2",children:[e.jsxs("div",{"aria-hidden":!0,className:"absolute inset-y-0 left-6 w-3",children:[e.jsx(je,{variante:"trous",className:"absolute inset-0 h-full"}),e.jsx(T.div,{className:"absolute inset-x-0 top-0 overflow-hidden",style:{height:p},children:e.jsx(je,{variante:"cousu",className:"absolute inset-x-0 top-0 h-screen"})})]}),e.jsx("div",{className:"flex flex-col",children:S.map((N,A)=>e.jsx(T.div,{initial:{opacity:0,x:c?0:-10},animate:{opacity:1,x:0},transition:k(A),children:N},N.key))})]}),e.jsxs("div",{className:"px-6 pb-[max(1.5rem,env(safe-area-inset-bottom))]",children:[e.jsx(ue,{className:"my-5"}),e.jsxs("button",{type:"button",onClick:j(i),className:"flex w-full items-center justify-center gap-3 rounded-full bg-warm-amber px-7 py-4 font-sans text-sm font-semibold text-atelier-deep shadow-atelier transition-colors duration-300 active:bg-warm-glow focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-warm-glow",children:["Composer ma pièce",e.jsx(z,{className:"h-4 w-4"})]}),e.jsx("div",{className:"mt-5",children:e.jsxs("a",{href:mi,target:"_blank",rel:"noopener noreferrer",className:"ticket inline-flex items-center gap-2.5 !text-warm-muted transition-colors duration-300 active:!text-[#F2E6D2]",children:[e.jsx(Me,{className:"h-4 w-4"}),"@numentcuir"]})})]})]})]})})}),document.body)]})}const as=72;function os(){var r;return typeof window<"u"&&((r=window.matchMedia)==null?void 0:r.call(window,"(prefers-reduced-motion: reduce)").matches)?"auto":"smooth"}function Ne(t,r,s){const n=document.getElementById(r);if(!t||!n)return;const i=n.getBoundingClientRect().top+t.scrollTop-as;t.scrollTo({top:s?s(i):i,behavior:os()})}function ls(t){t==null||t.scrollTo({top:0,behavior:os()})}function Fe(t){const r=document.querySelector(".home-scroll");Ne(r,t,t==="collection"?n=>{const i=document.getElementById("collection-cartes");if(!i||!r)return n;const a=i.getBoundingClientRect(),o=a.bottom+r.scrollTop-r.clientHeight+24,l=a.top+r.scrollTop-as-16;return Math.min(Math.max(n,o),l)}:void 0)}const Ni="https://www.instagram.com/numentcuir/";function Ei({onGalerie:t,onVendues:r,onEnter:s}){const n={onSection:Fe,onGalerie:t,onVendues:r,onComposer:s},i=rs();return e.jsx(T.header,{initial:{y:-28,opacity:0}
1,animate:{y:0,opacity:1},transition:{duration:.7,ease:[.22,1,.36,1]},className:"fixed inset-x-0 top-0 z-40 border-b border-atelier-line/30 bg-atelier-deep/70 backdrop-blur-md",children:e.jsxs("nav",{className:"mx-auto flex h-[72px] max-w-[1280px] items-center justify-between px-6 md:px-10",children:[e.jsx("button",{type:"button",onClick:()=>Fe("accueil"),"aria-label":"NÛMENT — accueil",className:"group flex items-center gap-3",children:e.jsx("img",{src:"/logo-blanc.png",alt:"NÛMENT",className:"h-11 w-auto opacity-90 transition-opacity duration-300 group-hover:opacity-100"})}),e.jsx(ns,{...n}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("a",{href:Ni,target:"_blank",rel:"noopener noreferrer","aria-label":"Instagram NÛMENT",className:"hidden h-11 w-11 items-center justify-center rounded-full text-warm-muted transition-all duration-300 hover:bg-white/[0.06] hover:text-[#F2E6D2] md:flex",children:e.jsx(Me,{className:"h-[18px] w-[18px]"})}),e.jsx(It,{}),e.jsx(is,{rubriques:i,...n})]})]})})}const cs=[.22,1,.36,1],tt={hidden:{opacity:0,y:24},show:t=>({opacity:1,y:0,transition:{duration:.8,ease:cs,delay:.15+t*.12}})};function ki({onEnter:t}){return e.jsxs("section",{id:"accueil",className:"relative flex min-h-screen items-center overflow-hidden bg-atelier-bg pt-[72px]",children:[e.jsx("svg",{"aria-hidden":!0,viewBox:"0 0 1000 640",className:"pointer-events-none absolute right-[-8%] top-1/2 hidden w-[64%] -translate-y-1/2 overflow-visible md:block",children:e.jsx(T.path,{d:"M250,150 H720 A60,60 0 0 1 780,210 V470 A60,60 0 0 1 720,530 H250 A60,60 0 0 1 190,470 V210 A60,60 0 0 1 250,150 Z",fill:"none",stroke:"#D9A05B",strokeOpacity:.22,strokeWidth:2.4,strokeDasharray:"2 12",strokeLinecap:"round",initial:{pathLength:0},animate:{pathLength:1},transition:{duration:2.4,ease:cs,delay:.4}})}),e.jsx("div",{className:"relative z-10 mx-auto w-full max-w-[1280px] px-6 md:px-10",children:e.jsxs("div",{className:"max-w-2xl",children:[e.jsx(T.span,{variants:tt,initial:"hidden",animate:"show",custom:0,className:"ticket block",children:"Atelier de maroquinerie · Cousu main"}),e.jsxs(T.h1,{variants:tt,initial:"hidden",animate:"show",custom:1,className:"display mt-6 text-[clamp(44px,7vw,86px)] font-light leading-[0.98] text-[#F4E9D7]",children:["Le cuir, cousu"," ",e.jsx("span",{className:"italic text-warm-amber",children:"à votre main"}),"."]}),e.jsx(T.p,{variants:tt,initial:"hidden",animate:"show",custom:2,className:"mt-7 max-w-xl text-[15px] leading-relaxed text-warm-muted md:text-base",children:"Un porte-cartes, un portefeuille, une ceinture — cuir pleine fleur, cousus au point sellier. Choisissez le cuir, le fil, la doublure, puis regardez votre pièce se coudre, point par point."}),e.jsxs(T.div,{variants:tt,initial:"hidden",animate:"show",custom:3,className:"mt-10 flex flex-wrap items-center gap-5",children:[e.jsxs("button",{type:"button",onClick:t,className:"group inline-flex items-center gap-3 rounded-full bg-warm-amber px-7 py-3.5 font-sans text-sm font-semibold text-atelier-deep shadow-atelier transition-all duration-300 hover:bg-warm-glow",children:["Composer ma pièce",e.jsx(z,{className:"h-4 w-4 transition-transform duration-300 group-hover:translate-x-1"})]}),e.jsx("button",{type:"button",onClick:()=>Fe("collection"),className:"ticket !text-warm-muted transition-colors duration-300 hover:!text-[#F2E6D2]",children:"Découvrir la collection"})]})]})}),e.jsx(T.button,{type:"button",onClick:()=>Fe("collection"),"aria-label":"Aller à la collection",initial:{opacity:0}
1,animate:{opacity:1},transition:{delay:1.4,duration:1},className:"absolute bottom-7 left-1/2 -translate-x-1/2 text-warm-faint transition-colors duration-300 hover:text-warm-amber",children:e.jsx(T.span,{className:"block",animate:{y:[0,7,0]},transition:{duration:1.8,repeat:1/0,ease:"easeInOut"},children:e.jsx(Yr,{className:"h-6 w-6"})})})]})}const Ci=[.22,1,.36,1],Si="(min-width: 768px) 42vw, 92vw";function Ai({onGalerie:t}){const{categories:r,modeles:s,teintes:n}=J(),i=ui().map(o=>{const l=r.find(u=>u.id===o.categorieId),c=l?s.find(u=>u.id===l.modeleId):void 0;return l&&c?{piece:o,categorie:l,standard:c}:null}).filter(o=>o!==null),a=r.filter(o=>o.modeleId===null);return e.jsx("section",{id:"collection",className:"relative scroll-mt-[72px] bg-atelier-bg px-6 py-28 md:px-10",children:e.jsxs("div",{className:"relative z-10 mx-auto max-w-[1280px]",children:[e.jsxs("div",{className:"mb-16 max-w-2xl",children:[e.jsx("span",{className:"ticket",children:"La collection"}),e.jsx("h2",{className:"display mt-3 text-[clamp(32px,4.5vw,52px)] font-light leading-tight text-[#F4E9D7]",children:"Plusieurs pièces, un savoir-faire"}),e.jsx(ue,{className:"mt-7 max-w-[220px]"})]}),e.jsx("div",{id:"collection-cartes",className:"grid gap-6 md:grid-cols-3",children:i.map(({piece:o,categorie:l,standard:c},u)=>{var g,p;const x=o.photos[0],m=(g=Xr(c.id))==null?void 0:g.leatherFill,d=((p=n.cuir.find(b=>b.degradeId===m))==null?void 0:p.hex)??"#A85B2B";return e.jsxs(T.a,{href:`/galerie#${l.id}`,onClick:I(()=>t(l.id)),initial:{opacity:0,y:36},whileInView:{opacity:1,y:0},viewport:{once:!0,margin:"-80px"},transition:{duration:.7,ease:Ci,delay:u*.12},className:"group flex flex-col overflow-hidden rounded-2xl border border-atelier-line/30 bg-black/20 text-left shadow-rim backdrop-blur-sm transition-all duration-500 hover:-translate-y-1.5 hover:border-warm-amber/40 hover:shadow-atelier",children:[e.jsxs("div",{className:"relative aspect-[4/5] overflow-hidden",style:{background:`radial-gradient(120% 120% at 50% 20%, ${d}, rgba(0,0,0,0.55))`},children:[x&&e.jsx("span",{className:"absolute inset-0 block",style:x.cadrageZoom?{transform:`scale(${x.cadrageZoom})`}:void 0,children:e.jsxs("picture",{children:[e.jsx("source",{type:"image/webp",srcSet:x.srcSet,sizes:Si}),e.jsx("img",{src:x.repli,alt:x.alt||o.alt,width:x.largeur,height:x.hauteur,loading:"lazy",decoding:"async",style:{objectPosition:x.cadragePosition},className:"absolute inset-0 h-full w-full object-cover transition-transform duration-[900ms] ease-[cubic-bezier(0.22,1,0.36,1)] group-hover:scale-[1.04] motion-reduce:transition-none motion-reduce:group-hover:scale-100"})]})}),e.jsx("span",{"aria-hidden":!0,className:"pointer-events-none absolute inset-0",style:{boxShadow:"inset 0 0 70px 12px rgba(8,4,1,0.4)"}})]}),e.jsx(ue,{className:"opacity-60 transition-opacity duration-500 group-hover:opacity-100"}),e.jsxs("div",{className:"flex flex-1 flex-col p-6",children:[e.jsx("span",{className:"ticket",children:c.nom}),e.jsx("h3",{className:"display mt-2 text-2xl leading-tight text-[#F4E9D7]",children:l.nom}),e.jsx("p",{className:"mt-3 flex-1 text-[13px] leading-relaxed text-warm-muted",children:c.accroche}),e.jsxs("div",{className:"mt-6 flex items-end justify-between",children:[e.jsxs("div",{children:[e.jsx("span",{className:"ticket !text-warm-faint",children:"À partir de"}),e.jsx(Gr,{centimes:di(l.id)??o.prixCentimes,className:"mt-1 text-2xl text-[#F4E9D7]"})]}),e.jsxs("span",{className:"inline-flex items-center gap-2 font-sans text-xs font-semibold text-warm-amber transition-colors duration-300 group-hover:text-warm-glow",children:["Voir les modèles",e.jsx(z,{className:"h-3.5 w-3.5 transition-transform duration-300 group-hover:translate-x-1"})]})]})]})]},o.id)})}),e.jsxs("div",{className:"mt-14 flex flex-col gap-5 border-t border-atelier-line/25 pt-10 md:flex-row md:items-center md:justify-between",children:[e.jsxs("div",{children:[e.jsx("span",{className:"ticket",children:"Également sur mesure"}),e.jsxs("p",{className:"mt-3 text-[14px] leading-relaxed text-warm-muted",children:[a.map(o=>
1o.nom).join(" · ")," — façonnés à la demande, dans le cuir et le fil de votre choix."]})]}),e.jsxs("div",{className:"flex shrink-0 flex-wrap items-center gap-x-7 gap-y-3",children:[e.jsxs("a",{href:"/galerie",onClick:I(t),className:"group inline-flex items-center gap-2 font-sans text-xs font-semibold text-warm-amber transition-colors duration-300 hover:text-warm-glow",children:["Voir les pièces réalisées",e.jsx(z,{className:"h-3.5 w-3.5 transition-transform duration-300 group-hover:translate-x-1"})]}),e.jsx("a",{href:"#contact",className:"ticket !text-warm-muted transition-colors duration-300 hover:!text-[#F2E6D2]",children:"Me contacter"})]})]})]})})}const Fi=[{num:"01",titre:"Sélection du cuir",texte:"Des cuirs haut de gamme, le plus souvent en pleine fleur tannée au végétal — celle qui se patine au lieu de s’user. Et selon la pièce : gratté, exotique, ou chrome pour la doublure."},{num:"02",titre:"Point sellier",texte:"Deux aiguilles, un fil, croisés à la main dans chaque trou. Si un brin cède un jour, la couture, elle, ne se défait pas."},{num:"03",titre:"Passer commande",texte:e.jsxs(e.Fragment,{children:["Certaines pièces existent déjà et partent telles quelles ; les autres sont cousues après votre commande, dans le cuir et le fil que vous choisissez. Pour une demande qui sort de la gamme,"," ",e.jsx("button",{type:"button",onClick:()=>Fe("contact"),className:"font-semibold text-warm-amber underline decoration-warm-amber/40 underline-offset-4 transition-colors duration-300 hover:text-warm-glow hover:decoration-warm-glow focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-warm-amber",children:"écrivez-moi depuis la rubrique Contact"}),"."]})}];function Mi({onMore:t}){return e.jsx("section",{id:"savoir-faire",className:"relative scroll-mt-[72px] overflow-hidden border-y border-atelier-line/30 bg-atelier-bg px-6 py-28 md:px-10",children:e.jsx("div",{className:"relative z-10 mx-auto max-w-[1280px]",children:e.jsxs("div",{className:"grid gap-14 lg:grid-cols-[0.9fr_1.1fr] lg:gap-20",children:[e.jsxs("div",{children:[e.jsx("span",{className:"ticket",children:"Le savoir-faire"}),e.jsxs("h2",{className:"display mt-3 text-[clamp(30px,4vw,48px)] font-light leading-tight text-[#F4E9D7]",children:["Un geste, ",e.jsx("span",{className:"italic text-warm-amber",children:"tenu"})," depuis toujours"]}),e.jsx(ue,{className:"my-7 max-w-[220px]"}),e.jsx("p",{className:"max-w-md text-[15px] leading-relaxed text-warm-muted",children:"La couture cousue main n’est pas un détail : c’est la pièce. Là où la machine pique vite, la main pose chaque point, l’un après l’autre, pour une tenue qui traverse les années."}),e.jsxs("a",{href:"/savoir-faire",onClick:r=>{r.metaKey||r.ctrlKey||r.shiftKey||r.altKey||r.button!==0||(r.preventDefault(),t())},className:"group mt-9 inline-flex items-center gap-3 rounded-full bg-warm-amber px-7 py-3.5 font-sans text-sm font-semibold text-atelier-deep shadow-atelier transition-all duration-300 hover:bg-warm-glow",children:["En savoir plus",e.jsx(z,{className:"h-4 w-4 transition-transform duration-300 group-hover:translate-x-1"})]})]}),e.jsx("div",{className:"flex flex-col",children:Fi.map((r,s)=>e.jsxs("div",{className:"flex gap-6 border-t border-atelier-line/30 py-7 first:border-t-0 first:pt-0",children:[e.jsx("span",{className:"display shrink-0 text-3xl font-light leading-none text-warm-amber/70",children:r.num}),e.jsxs("div",{children:[e.jsx("h3",{className:"display text-xl text-[#F4E9D7]",children:r.titre}),e.jsx("p",{className:"mt-2 text-[14px] leading-relaxed text-warm-muted",children:r.texte})]})]},r.num))})]})})})}const Li="https://www.instagram.com/numentcuir/";function qi({onEnter:t}){return e.jsx("section",{id:"contact",className:"relative scroll-mt-[72px] bg-atelier-bg px-6 py-28 md:px-10",children:e.jsx("div",{className:"relative z-10 mx-auto max-w-[1280px]",children:e.jsxs("div",{className:"grid gap-14 lg:grid-cols-2 lg:gap-20",children:[e.jsxs("div",{children:[e.jsx("span",{className:"ticket",children:"Contact"}),e.jsxs("h2",{className:"display mt-3 text-[clamp(30px,4vw,48px)] font-light leading-tight text-[#F4E9D7]",children:["Parlons de ",e.jsx("span",{className:"italic text-warm-amber",children:"votre"})," pièce"]}),e.jsx(ue,{className:"my-7 max-w-[220px]"}),e.jsx("p",{className:"max-w-md text-[15px] leading-relaxed text-warm-muted",children:"Une envie sur mesure, une initiale à graver, une question sur les cuirs ? Écrivez à l’atelier — chaque commande commence par une conversation."}),e.jsxs("button",{type:"button",onClick:t,className:"group mt-9 inline-flex items-center gap-3 rounded-full bg-warm-amber px-7 py-3.5 font-sans text-sm font-semibold text-atelier-deep shadow-atelier transition-all duration-300 hover:bg-warm-glow",children:["Composer ma pièce",e.jsx(z,{className:"h-4 w-4 transition-transform duration-300 group-hover:translate-x-1"})]})]}),e.jsxs("div",{className:"flex flex-col justify-center gap-7",children:[e.jsxs("div",{children:[e.jsx("span",{className:"ticket",children:"Écrire à l’atelier"}),e.jsx("a",{href:"mailto:[email protected]",className:"display mt-2 block text-2xl text-[#F4E9D7] transition-colors duration-300 hover:text-warm-amber",children:"[email protected]"})]}),e.jsx("div",{className:"hairline"}),e.jsxs("div",{children:[e.jsx("span",{className:"ticket",children:"L’atelier"}),e.jsxs("p",{className:"mt-2 font-sans text-[15px] leading-relaxed text-warm-muted",children:["Sur rendez-vous · Paris",e.jsx("br",{}),"Façonné main, expédié dans toute la France."]})]}),e.jsx("div",{className:"hairline"}),e.jsxs("div",{children:[e.jsx("span",{className:"ticket",children:"Suivre le travail"}),e.jsxs("a",{href:Li,target:"_blank",rel:"noopener noreferrer",className:"group mt-3 flex w-fit items-center gap-3 rounded-full border border-atelier-line/40 px-5 py-2.5 font-sans text-sm text-[#EFE3D2] transition-all duration-300 hover:border-warm-amber/50 hover:bg-white/[0.04]",children:[e.jsx(Me,{className:"h-[18px] w-[18px] text-warm-amber"}),"@numentcuir"]})]})]})]})})})}const R={raisonSociale:null,formeJuridique:null,capital:null,siren:null,immatriculation:null,assujettiTva:null,tvaIntra:null,adresse:null,telephone:null,email:"[email protected]",directeurPublication:null,marque:"NÛMENT",instagram:"https://www.instagram.com/numentcuir/",domaine:"nument.fr"},_e={nom:"OVH SAS",adresse:"2 rue Kellermann, 59100 Roubaix, France",telephone:"1007",site:"https://www.ovhcloud.com"},ot={nom:null,adresse:null,site:null},Ve={prestataire:null,moyens:null,acompte:null},oe={transporteur:null,zones:null,tarifs:null,franco:null,delaiAcheminement:null},Ae={fabricationUnePiece:null,commandeAExpedition:null,pieceDisponible:null},fe={coutures:null,couvre:null,exclut:null,tarifReparation:null},Di=null;function F({v:t,quoi:r}){return t?e.jsx(e.Fragment,{children:t}):e.jsxs("span",{title:`Valeur manquante — à renseigner dans src/legal/infos.ts (${r})`,className:"mx-0.5 inline-block rounded border border-dashed border-[#D9576B]/70 bg-[#D9576B]/10 px-1.5 py-0.5 align-baseline font-mono text-[10px] uppercase leading-none tracking-[0.14em] text-[#E58897]",children:["à compléter · ",r]})}function qt(){return R.assujettiTva===!1?e.jsx(e.Fragment,{children:"TVA non applicable, article 293 B du Code général des impôts."}):R.assujettiTva===!0?e.jsxs(e.Fragment,{children:["Numéro de TVA intracommunautaire : ",e.jsx(F,{v:R.tvaIntra,quoi:"n° TVA intracom."}),"."]}):e.jsx(F,{v:null,quoi:"régime de TVA"})}function Pi(){return[R,_e,ot,Ve,oe,Ae,fe].reduce((s,n)=>s+Object.values(n).filter(i=>i===null).length,0)+1}function C({children:t}){return e.jsx("p",{className:"text-[14.5px] leading-relaxed text-warm-muted md:text-[15px]",children:t})}function me({items:t}){return e.jsx("ul",{className:"flex list-disc flex-col gap-2 pl-5 text-[14.5px] leading-relaxed text-warm-muted marker:text-warm-amber/60 md:text-[15px]",children:t.map((r,s)=>e.jsx("li",{children:r},s))})}function yt({titre:t,children:r}){return e.jsxs("div",{className:"rounded-xl border border-atelier-line/50 bg-atelier-deep/60 p-5 shadow-rim md:p-6",children:[e.jsx("p",{className:"ticket mb-3",children:t}),e.jsx("div",{className:"flex flex-col gap-3 text-[13.5px] leading-relaxed text-warm-muted",children:r})]})}function we({vers:t,children:r}){return e.jsx("a",{href:t,className:"text-warm-amber underline decoration-warm-amber/40 underline-offset-4 transition-colors duration-300 hover:text-warm-glow hover:decoration-warm-glow",children:r})}const xe=e.jsx("a",{href:`mailto:${R.email??""}`,className:"text-warm-amber underline decoration-warm-amber/40 underline-offset-4 transition-colors duration-300 hover:text-warm-glow",children:e.jsx(F,{v:R.email,quoi:"e-mail de l’atelier"})}),us={id:"mentions-legales",chemin:"/mentions-legales",titre:"Mentions légales",titreCourt:"Mentions légales",ticket:"Informations légales",chapo:e.jsx(e.Fragment,{children:"Qu
1i édite ce site, qui l’héberge, et à qui appartiennent les textes et les photographies qu’on y trouve."}),articles:[{id:"editeur",titre:"Éditeur du site",corps:[e.jsxs(C,{children:["Le site ",e.jsx(F,{v:R.domaine,quoi:"nom de domaine"})," est édité par"," ",e.jsx(F,{v:R.raisonSociale,quoi:"raison sociale"}),", exerçant sous le nom commercial"," ",R.marque,"."]},"a"),e.jsx(me,{items:[e.jsxs(e.Fragment,{children:["Forme juridique : ",e.jsx(F,{v:R.formeJuridique,quoi:"forme juridique"})]}),e.jsxs(e.Fragment,{children:["Capital social : ",e.jsx(F,{v:R.capital,quoi:"capital (sociétés uniquement)"})]}),e.jsxs(e.Fragment,{children:["Siège / atelier : ",e.jsx(F,{v:R.adresse,quoi:"adresse complète"})]}),e.jsxs(e.Fragment,{children:["Numéro SIREN : ",e.jsx(F,{v:R.siren,quoi:"SIREN"})]}),e.jsxs(e.Fragment,{children:["Immatriculation : ",e.jsx(F,{v:R.immatriculation,quoi:"RCS ou Répertoire des Métiers"})]}),e.jsx(e.Fragment,{children:e.jsx(qt,{})}),e.jsxs(e.Fragment,{children:["Adresse électronique : ",xe]}),e.jsxs(e.Fragment,{children:["Téléphone : ",e.jsx(F,{v:R.telephone,quoi:"téléphone"})]})]},"b")]},{id:"publication",titre:"Directeur de la publication",corps:[e.jsxs(C,{children:[e.jsx(F,{v:R.directeurPublication,quoi:"directeur de la publication"}),", en qualité de représentant légal de l’éditeur."]},"a")]},{id:"hebergement",titre:"Hébergement",corps:[e.jsxs(C,{children:["Le site est hébergé par ",e.jsx(F,{v:_e.nom,quoi:"hébergeur"}),","," ",e.jsx(F,{v:_e.adresse,quoi:"adresse de l’hébergeur"}),". Téléphone :"," ",e.jsx(F,{v:_e.telephone,quoi:"téléphone hébergeur"}),"."]},"a")]},{id:"propriete",titre:"Propriété intellectuelle",corps:[e.jsx(C,{children:"L’ensemble du site — sa structure, ses textes, ses illustrations, ses photographies, son identité visuelle et les modèles de maroquinerie qui y sont présentés — est protégé par le droit d’auteur et le droit des dessins et modèles. Toute reproduction, représentation ou adaptation, totale ou partielle, sans autorisation écrite préalable, est interdite."},"a"),e.jsx(C,{children:"Les pièces photographiées sont des créations originales de l’atelier. Les reproduire, les copier ou s’en inspirer pour une fabrication concurrente engage la responsabilité de son auteur."},"b"),e.jsx(C,{children:"Les marques et logos cités appartiennent à leurs titulaires respectifs. Les polices de caractères employées (Fraunces, Hanken Grotesk, Spline Sans Mono) sont diffusées sous licence SIL Open Font License."},"c")]},{id:"liens",titre:"Liens vers d’autres sites",corps:[e.jsx(C,{children:"Ce site peut renvoyer vers des sites tiers, notamment le compte Instagram de l’atelier. L’éditeur n’exerce aucun contrôle sur leur contenu et ne saurait en être tenu responsable."},"a")]},{id:"signalement",titre:"Signaler un contenu",corps:[e.jsxs(C,{children:["Toute personne estimant qu’un contenu publié sur ce site porte atteinte à ses droits peut le signaler à l’adresse ",xe,", en précisant la page concernée et le motif du signalement. Le contenu litigieux sera examiné dans les meilleurs délais."]},"a")]},{id:"documents-lies",titre:"Documents liés",corps:[e.jsx(me,{items:[e.jsx(we,{vers:"/cgv",children:"Conditions générales de vente"}),e.jsx(we,{vers:"/confidentialite",children:"Politique de confidentialité"}),e.jsx(we,{vers:"/livraison-retours",children:"Livraison, retours et garanties"})]},"a")]}]},$i={id:"cgv",chemin:"/cgv",titre:"Conditions générales de vente",titreCourt:"CGV",ticket:"Le contrat",chapo:e.jsx(e.Fragment,{children:"Ce qui vous est dû, ce à quoi l’atelier s’engage. Prix, commande, paiement, délais, livraison, rétractation, garanties : tout ce qui encadre l’achat d’une pièce NÛMENT."}),articles:[{id:"objet",titre:"Objet et champ d’application",corps:[e.jsxs(C,{children:["Les présentes conditions générales de vente régissent la vente des pièces de maroquinerie proposées par l’atelier ",R.marque," sur le site"," ",e.jsx(F,{v:R.domaine,quoi:"nom de domaine"}),", à toute personne physique non commerçante agissant à des fins qui n’entrent pas dans le cadre de son activité professionnelle (ci-après « le client »)."]},"a"),e.jsx(C,{children:"Elles s’appliquent à l’exclusion de toute autre condition. Passer commande vaut acceptation pleine et entière des présentes, dans leur version en vigueur au jour de la commande. Elles sont accessibles à tout moment sur le site et peuvent être conservées ou imprimées par le client."},"b"),e.jsxs(C,{children:["Entrée en vigueur : ",e.jsx(F,{v:Di,quoi:"date d’entrée en vigueur"}),". L’atelier se réserve le droit de les modifier ; la version applicable à une commande est celle acceptée au moment de celle-ci."]},"c")]},{id:"vendeur",titre:"Identité du vendeur",corps:[e.jsxs(C,{children:[e.jsx(F,{v:R.raisonSociale,quoi:"raison sociale"}),","," ",e.jsx(F,{v:R.formeJuridique,quoi:"forme juridique"}),", dont le siège est situé"," ",e.jsx(F,{v:R.adresse,quoi:"adresse complète"}),", immatriculée sous le numéro SIREN"," ",e.jsx(F,{v:R.siren,quoi:"SIREN"})," (",e.jsx(F,{v:R.immatriculation,quoi:"RCS ou RM"}),"). ",e.jsx(qt,{})]},"a"),e.jsxs(C,{children:["Contact : ",xe," — ",e.jsx(F,{v:R.telephone,quoi:"téléphone"}),". L’identité complète de l’éditeur figure dans les ",e.jsx(we,{vers:"/mentions-legales",children:"mentions légales"}),"."]},"b")]},{id:"pieces",titre:"Les pièces",corps:[e.jsx(C,{children:"Les pièces vendues sont des articles de maroquinerie en cuir, coupés et cousus à la main au point sellier dans l’atelier. Leurs caractéristiques essentielles — matière, dimensions, coloris, fil, finitions — sont décrites sur chaque page de pièce."},"a"),e.jsxs(C,{children:["Le cuir est une matière naturelle. Le grain, la nuance, les marques de vie de la peau et la façon dont elle prendra sa patine varient d’une pièce à l’autre : deux pièces ne sortent jamais i
1dentiques de l’atelier. Ces variations font partie du produit et"," ",e.jsx("strong",{className:"text-[#EFE3D2]",children:"ne constituent ni un défaut ni un défaut de conformité"}),"."]},"b"),e.jsx(C,{children:"Les photographies illustrent le travail de l’atelier avec la plus grande fidélité possible, mais le rendu d’un cuir dépend de l’écran qui l’affiche : elles ne sont pas contractuelles."},"c"),e.jsx(C,{children:"Certaines pièces sont uniques et vendues en un seul exemplaire. Une pièce affichée comme disponible peut avoir été vendue entre-temps ; dans ce cas, l’atelier en informe le client sans délai et lui propose soit une pièce équivalente, soit le remboursement intégral des sommes versées."},"d")]},{id:"prix",titre:"Prix",corps:[e.jsx(C,{children:"Les prix sont indiqués en euros, toutes taxes comprises, hors frais de livraison. Les frais de livraison sont indiqués séparément avant la validation de la commande et rappelés dans le récapitulatif."},"a"),e.jsx(C,{children:e.jsx(qt,{})},"b"),e.jsx(C,{children:"L’atelier peut modifier ses prix à tout moment. Le prix applicable est celui affiché au moment de la validation de la commande."},"c")]},{id:"commande",titre:"Commande",corps:[e.jsx(C,{children:"Le client sélectionne les pièces souhaitées, en choisit le cas échéant les options (cuir, fil, doublure, personnalisation), puis accède à un récapitulatif détaillant les pièces retenues, le prix total, les frais de livraison et le délai annoncé."},"a"),e.jsx(C,{children:"Avant de valider, le client peut vérifier et corriger sa commande. La validation, précédée de l’acceptation expresse des présentes conditions, vaut engagement à payer : la commande n’est ferme qu’à partir de ce moment."},"b"),e.jsx(C,{children:"Un accusé de réception est envoyé par voie électronique à l’adresse indiquée par le client, reprenant le détail de la commande. La vente n’est définitivement conclue qu’après encaissement du paiement."},"c"),e.jsx(C,{children:"L’atelier se réserve le droit de refuser ou d’annuler une commande en cas de litige de paiement antérieur, de demande manifestement anormale, ou d’impossibilité matérielle de la réaliser. Le client en est informé et intégralement remboursé."},"d")]},{id:"paiement",titre:"Paiement",corps:[e.jsxs(C,{children:["Le paiement s’effectue en ligne au moment de la commande, par"," ",e.jsx(F,{v:Ve.moyens,quoi:"moyens de paiement acceptés"}),", via le prestataire"," ",e.jsx(F,{v:Ve.prestataire,quoi:"prestataire de paiement"}),"."]},"a"),e.jsxs(C,{children:["Les données bancaires du client sont transmises directement au prestataire de paiement, selon un protocole sécurisé."," ",e.jsx("strong",{className:"text-[#EFE3D2]",children:"À aucun moment elles ne transitent par le site ni ne sont conservées par l’atelier."})]},"b"),e.jsxs(C,{children:["Pour une pièce sur mesure, un acompte de"," ",e.jsx(F,{v:Ve.acompte,quoi:"acompte sur mesure (ou « aucun »)"})," peut être demandé à la commande, le solde étant réglé avant l’expédition."]},"c")]},{id:"fabrication",titre:"Fabrication et délais",corps:[e.jsxs(C,{children:["Chaque pièce est coupée et cousue à la main. Une pièce demande environ"," ",e.jsx(F,{v:Ae.fabricationUnePiece,quoi:"temps de couture d’une pièce"})," de travail."]},"a"),e.jsx(me,{items:[e.jsxs(e.Fragment,{children:["Pièce déjà cousue et disponible : expédiée sous"," ",e.jsx(F,{v:Ae.pieceDisponible,quoi:"délai pièce disponible"}),"."]}),e.jsxs(e.Fragment,{children:["Pièce cousue à la commande : comptez"," ",e.jsx(F,{v:Ae.commandeAExpedition,quoi:"délai commande → expédition"})," entre la commande et l’expédition."]})]},"b"),e.jsx(C,{children:"Ces délais sont donnés en jours ouvrés et courent à compter de l’encaissement du paiement. En cas de retard imprévu, l’atelier en informe le client et lui indique une nouvelle date. Si le retard excède trente jours par rapport au délai annoncé, le client peut résoudre la commande et être remboursé intégralement."},"c")]},{id:"livraison",titre:"Livraison",corps:[e.jsxs(C,{children:["Les pièces sont expédiées par"," ",e.jsx(F,{v:oe.transporteur,quoi:"transporteur"})," à l’adresse indiquée par le client, dans les zones suivantes : ",e.jsx(F,{v:oe.zone
1s,quoi:"zones de livraison"}),"."]},"a"),e.jsx(me,{items:[e.jsxs(e.Fragment,{children:["Frais de port : ",e.jsx(F,{v:oe.tarifs,quoi:"tarifs de livraison"})]}),e.jsxs(e.Fragment,{children:["Franchise de port : ",e.jsx(F,{v:oe.franco,quoi:"seuil de franco (ou « aucun »)"})]}),e.jsxs(e.Fragment,{children:["Délai d’acheminement :"," ",e.jsx(F,{v:oe.delaiAcheminement,quoi:"délai d’acheminement"})]})]},"b"),e.jsx(C,{children:"Le risque de perte ou d’endommagement est transféré au client au moment où il prend physiquement possession du colis. Il lui appartient de vérifier l’état du colis à la réception et, en cas d’avarie, d’émettre des réserves précises auprès du transporteur puis d’en informer l’atelier sous trois jours ouvrés."},"c"),e.jsx(C,{children:"En cas de non-réception, le client contacte l’atelier, qui ouvre une enquête auprès du transporteur. Si le colis est déclaré perdu, la pièce est refaite ou remboursée."},"d")]},{id:"retractation",titre:"Droit de rétractation",corps:[e.jsxs(C,{children:["Le client dispose d’un délai de"," ",e.jsx("strong",{className:"text-[#EFE3D2]",children:"quatorze jours calendaires"})," à compter de la réception de sa commande pour exercer son droit de rétractation, sans avoir à motiver sa décision ni à supporter de pénalité."]},"a"),e.jsxs(C,{children:["Pour l’exercer, le client notifie sa décision par une déclaration dénuée d’ambiguïté, adressée à ",xe," ou par courrier à"," ",e.jsx(F,{v:R.adresse,quoi:"adresse postale"}),". Il peut utiliser le formulaire type reproduit à la fin des présentes, sans que ce soit obligatoire."]},"b"),e.jsx(C,{children:"Les pièces doivent être renvoyées dans leur état d’origine, non portées, complètes, dans un délai de quatorze jours suivant la notification. Les frais de retour sont à la charge du client, sauf pièce non conforme ou endommagée."},"c"),e.jsx(C,{children:"L’atelier rembourse l’intégralité des sommes versées, frais de livraison standard compris, au plus tard quatorze jours après récupération de la pièce ou preuve de son expédition, par le même moyen de paiement que celui utilisé lors de la commande."},"d"),e.jsxs(yt,{titre:"Exception importante — les pièces personnalisées",children:[e.jsxs("p",{children:["Conformément à l’article L. 221-28 3° du Code de la consommation, le droit de rétractation ",e.jsx("strong",{className:"text-[#EFE3D2]",children:"ne s’applique pas"})," aux biens confectionnés selon les spécifications du client ou nettement personnalisés."]}),e.jsx("p",{children:"Sont donc exclues du droit de rétractation les pièces gravées à des initiales, ainsi que les pièces sur mesure réalisées d’après des dimensions, une combinaison de cuirs ou un dessin propres au client. Cette exclusion est rappelée au moment du choix de la personnalisation, et le client la reconnaît expressément avant de valider sa commande."}),e.jsx("p",{children:"Une pièce composée à partir des options standard proposées par l’atelier (cuir, fil, doublure, nombre de cartes) n’est pas considérée comme personnalisée à ce titre : elle reste soumise au droit de rétractation."})]},"e"),e.jsxs(C,{children:["Un moyen dédié permettant d’exercer la rétractation directement en ligne est mis à disposition gratuitement : ",e.jsx(F,{v:null,quoi:"lien du dispositif de rétractation"}),"."]},"f")]},{id:"garanties-legales",titre:"Garanties légales",corps:[e.jsx(C,{children:"Indépendamment de toute garantie commerciale, l’atelier reste tenu des défauts de conformité du bien et des vices cachés, dans les conditions rappelées ci-dessous."},"a"),e.jsxs(yt,{titre:"Garantie légale de conformité et garantie des vices cachés",children:[e.jsx("p",{children:"Le consommateur dispose d’un délai de deux ans à compter de la délivrance du bien pour obtenir la mise en œuvre de la garantie légale de conformité en cas d’apparition d’un défaut de conformité. Durant ce délai, le consommateur n’est tenu d’établir que l’existence du défaut de conformité et non la date d’apparition de celui-ci."}),e.jsx("p",{children:"La garantie légale de conformité donne au consommateur droit à la réparation ou au remplacement du bien dans un délai de trente jours suivant sa demande, sans frais et sans inconvénient majeur pour lui."}),e.jsx("p",{children:"Si le bien est réparé dans le cadre de la garantie légale de conformité, le consommateur bénéficie d’une extension de six mois de la garantie initiale. Si le consommateur demande la réparation du bien, mais que le vendeur impose le remplacement, la garantie légale de conformité est renouvelée pour une période de deux ans à compter de la date de remplacement du bien."}),e.jsx("p",{children:"Le consommateur peut obtenir une réduction du prix d’achat en conservant le bien ou mettre fin au contrat en se faisant rembourser intégralement contre restitution du bien, si : 1° le professionnel refuse de réparer ou de remplacer le bien ; 2° la réparation ou le remplacement du bien intervient après un délai de trente jours ; 3° la réparation ou le remplacement du bien occasionne un inconvénient majeur pour le consommateur, notamment lorsque le consommateur supporte définitivement les frais de reprise ou d’enlèvement du bien non conforme, ou s’il supporte les frais d’installation du bien réparé ou de remplacement ; 4° la non-conformité du bien persiste en dépit de la tentative de mise en conformité du vendeur restée infructueuse."}),e.jsx("p",{children:"Le consommateur a également droit à une réduction du prix du bien ou à la résolution du contrat lorsque le défaut de conformité est si grave qu’il justifie que la réduction du prix ou la résolution du contrat soit immédiate. Le consommateur n’est alors pas tenu de demander la réparation ou le remplacement du bien au préalable. Le consommateur n’a pas droit à la résolution de la vente si le défaut de conformité est mineur."}),e.jsx("p",{children:"Toute période d’immobilisation du bien en vue de sa réparation ou de son remplacement suspend la garantie qui restait à courir jusqu’à la délivrance du bien remis en état."}),e.jsx("p",{children:"Les droits mentionnés ci-dessus résultent de l’application des articles L. 217-1 à L. 217-32 du Code de la consommation."}),e.jsx("p",{children:"Le vendeur qui fait obstacle de mauvaise foi à la mise en œuvre de la garantie légale de conformité encourt une amende civile d’un montant maximal de 300 000 euros, qui peut être porté jusqu’à 10 % du chiffre d’affaires moyen annuel (article L. 241-5 du Code de la consommation)."}),e.jsx("p",{children:"Le consommateur bénéficie également de la garantie légale des vices cac
1hés en application des articles 1641 à 1649 du Code civil, pendant une durée de deux ans à compter de la découverte du vice, sans pouvoir excéder six ans à compter du jour de la délivrance du bien. Cette garantie donne droit à une réduction de prix si le bien est conservé ou à un remboursement intégral contre restitution du bien."})]},"b"),e.jsxs(C,{children:["Pour mettre en œuvre l’une de ces garanties, il suffit d’écrire à ",xe," en décrivant le défaut constaté, si possible avec une photographie."]},"c")]},{id:"garantie-atelier",titre:"Garantie commerciale de l’atelier",corps:[e.jsxs(C,{children:["Au-delà des garanties légales, et sans jamais s’y substituer, l’atelier garantit ses coutures ",e.jsx(F,{v:fe.coutures,quoi:"durée de la garantie des coutures"}),"."]},"a"),e.jsx(me,{items:[e.jsxs(e.Fragment,{children:["Ce qu’elle couvre : ",e.jsx(F,{v:fe.couvre,quoi:"ce que couvre la garantie"})]}),e.jsxs(e.Fragment,{children:["Ce qu’elle ne couvre pas : ",e.jsx(F,{v:fe.exclut,quoi:"exclusions de la garantie"})]})]},"b"),e.jsx(C,{children:"Le point sellier est cousu à deux aiguilles : chaque point est noué sur lui-même, de sorte qu’un brin rompu ne fait pas filer la couture. C’est ce qui rend cette garantie tenable."},"c"),e.jsxs(C,{children:["Hors garantie, une réparation reste toujours possible, au tarif de"," ",e.jsx(F,{v:fe.tarifReparation,quoi:"tarif de réparation"}),". Voir la page"," ",e.jsx(we,{vers:"/livraison-retours",children:"Livraison, retours et garanties"}),"."]},"d")]},{id:"donnees",titre:"Données personnelles",corps:[e.jsxs(C,{children:["Les données recueillies lors d’une commande sont nécessaires à son traitement et à l’exécution du contrat. Leur traitement, leur durée de conservation et les droits du client sont détaillés dans la"," ",e.jsx(we,{vers:"/confidentialite",children:"politique de confidentialité"}),"."]},"a")]},{id:"mediation",titre:"Réclamation et médiation",corps:[e.jsxs(C,{children:["Toute réclamation peut être adressée à ",xe,". L’atelier s’engage à y répondre dans les meilleurs délais et à chercher une solution amiable."]},"a"),e.jsxs(C,{children:["À défaut d’accord, et conformément à l’article L. 612-1 du Code de la consommation, le client peut recourir gratuitement au médiateur de la consommation dont relève l’atelier :"," ",e.jsx(F,{v:ot.nom,quoi:"nom du médiateur"}),","," ",e.jsx(F,{v:ot.adresse,quoi:"adresse du médiateur"})," —"," ",e.jsx(F,{v:ot.site,quoi:"site du médiateur"}),"."]},"b"),e.jsx(C,{children:"La saisine du médiateur n’est recevable qu’après une tentative préalable de résolution directe auprès de l’atelier, et dans un délai d’un an à compter de la réclamation écrite."},"c")]},{id:"droit-applicable",titre:"Droit applicable et litiges",corps:[e.jsx(C,{children:"Les présentes conditions sont soumises au droit français. En cas de litige, et après échec de la recherche d’une solution amiable, les tribunaux français sont compétents. Le consommateur peut saisir soit la juridiction du lieu où il demeurait au moment de la conclusion du contrat, soit celle du lieu de survenance du fait dommageable."},"a"),e.jsx(C,{children:"Si l’une des clauses des présentes était déclarée nulle, les autres resteraient intégralement applicables."},"b")]},{id:"formulaire",titre:"Annexe — Formulaire type de rétractation",corps:[e.jsx(C,{children:"À compléter et renvoyer uniquement si vous souhaitez vous rétracter du contrat. Ne s’applique pas aux pièces personnalisées (voir l’article 9)."},"a"),e.jsxs(yt,{titre:"Formulaire de rétractation",children:[e.jsxs("p",{children:["À l’attention de ",e.jsx(F,{v:R.raisonSociale,quoi:"raison sociale"}),","," ",e.jsx(F,{v:R.adresse,quoi:"adresse postale"}),","," ",e.jsx(F,{v:R.email,quoi:"e-mail"})," :"]}),e.jsx("p",{children:"Je vous notifie par la présente ma rétractation du contrat portant sur la vente du bien ci-dessous :"}),e.jsx("p",{children:"— Commandé le : …………… / Reçu le : ……………"}),e.jsx("p",{children:"— Numéro de commande : ……………"}),e.jsx("p",{children:"— Désignation de la pièce : ……………"}),e.jsx("p",{children:"— Nom du consommateur : ……………"}),e.jsx("p",{children:"— Adresse du consommateur : ……………"}),e.jsx("p",{children:"— Signature (uniquement en cas de notification sur papier) : ……………"}),e.jsx("p",{children:"— Date : ……………"})]},"b")]}]}
1,Ti={id:"confidentialite",chemin:"/confidentialite",titre:"Politique de confidentialité",titreCourt:"Confidentialité",ticket:"Vos données",chapo:e.jsx(e.Fragment,{children:"Ce site ne dépose aucun cookie, ne vous suit sur aucun autre site et ne revend rien à personne. Voici, précisément, ce qu’il mesure et pourquoi."}),articles:[{id:"responsable",titre:"Qui traite vos données",corps:[e.jsxs(C,{children:["Le responsable du traitement est"," ",e.jsx(F,{v:R.raisonSociale,quoi:"raison sociale"}),","," ",e.jsx(F,{v:R.adresse,quoi:"adresse complète"}),". Pour toute question relative à vos données : ",xe,"."]},"a")]},{id:"audience",titre:"La mesure d’audience",corps:[e.jsxs(C,{children:["L’atelier mesure la fréquentation de son site avec un outil qu’il a écrit lui-même, hébergé sur son propre serveur."," ",e.jsx("strong",{className:"text-[#EFE3D2]",children:"Aucun cookie n’est déposé, aucun prestataire tiers n’intervient, aucune donnée n’est transmise à un annonceur."})]},"a"),e.jsx(C,{children:"Concrètement, à chaque page consultée, le site enregistre :"},"b"),e.jsx(me,{items:["l’adresse de la page consultée et le temps qui y est passé ;","le site depuis lequel vous êtes arrivé, s’il s’agit d’un site extérieur — une navigation interne n’est pas enregistrée ;","les paramètres de campagne (utm_source, utm_medium, utm_campaign) s’ils figurent dans le lien suivi ;","la taille de votre écran et de votre fenêtre, et la langue de votre navigateur ;","s’il s’agit de la première page de votre visite."]},"c"),e.jsxs(C,{children:["Pour distinguer deux visites l’une de l’autre, un identifiant aléatoire est conservé dans la mémoire de session de votre navigateur (",e.jsx("code",{className:"font-mono text-[13px] text-warm-amber",children:"sessionStorage"}),"). Il ne contient aucune information vous concernant et"," ",e.jsx("strong",{className:"text-[#EFE3D2]",children:"disparaît dès que vous fermez l’onglet"}),". Il ne permet ni de vous reconnaître d’une visite à l’autre, ni de vous suivre ailleurs."]},"d"),e.jsxs(C,{children:["Votre adresse IP est ",e.jsx("strong",{className:"text-[#EFE3D2]",children:"anonymisée par le serveur"})," ","avant tout enregistrement : elle n’est jamais stockée en clair."]},"e"),e.jsxs(C,{children:["Si votre navigateur émet le signal « Do Not Track », le site le respecte :"," ",e.jsx("strong",{className:"text-[#EFE3D2]",children:"rien n’est envoyé du tout"}),"."]},"f"),e.jsxs(C,{children:["Base légale : l’intérêt légitime de l’atelier à connaître la fréquentation de son site. Ce dispositif étant strictement limité à la mesure d’audience, sans recoupement ni suivi entre sites, il ne requiert pas votre consentement préalable. Durée de conservation :"," ",e.jsx(F,{v:null,quoi:"durée de conservation des journaux"}),"."]},"g")]},{id:"polices",titre:"Les polices de caractères",corps:[e.jsxs(C,{children:["Les polices employées sur ce site sont actuellement chargées depuis les serveurs de Google (",e.jsx("span",{className:"font-mono text-[13px]",children:"fonts.googleapis.com"})," et"," ",e.jsx("span",{className:"font-mono text-[13px]",children:"fonts.gstatic.com"}),"). L’affichage d’une page transmet donc votre adresse IP à Google, y compris hors de l’Union européenne."]},"a"),e.jsx(C,{children:"L’atelier prévoit d’héberger ces polices sur son propre serveur afin de supprimer ce transfert."},"b")]},{id:"messages",titre:"Les messages que vous envoyez",corps:[e.jsx(C,{children:"Lorsque vous écrivez à l’atelier, votre adresse électronique et le contenu de votre message sont conservés le temps nécessaire à la conversation et au suivi de votre demande. Base légale : votre démarche et, le cas échéant, l’exécution du contrat."},"a")]},{id:"commandes",titre:"Les commandes",corps:[e.jsx(C,{children:"Passer commande suppose de communiquer un nom, une adresse de livraison et une adresse électronique. Ces données servent exclusivement à préparer, expédier et facturer la commande, et à vous tenir informé de son avancement. Base légale : l’exécution du contrat."},"a"),e.jsxs(C,{children:["Elles sont communiquées au transporteur (",e.jsx(F,{v:oe.transporteur,quoi:"transporteur"}),") pour la seule livraison, et au prestataire de paiement (",e.jsx(F,{v:Ve.prestataire,quoi:"prestataire de paiement"}),") pour le seul encaissement."," ",e.jsx("strong",{className:"text-[#EFE3D2]",children:"Aucune donnée bancaire n’est reçue ni conservée par l’atelier."})]},"b"),e.jsx(C,{children:"Les pièces comptables sont conservées dix ans, conformément aux obligations légales en matière commerciale et fiscale."},"c")]},{id:"destinataires",titre:"Qui d’autre y a accès",corps:[e.jsxs(C,{children:["Personne. Vos données ne sont ni vendues, ni louées, ni échangées. Elles ne sont communiquées qu’aux prestataires strictement nécessaires cités ci-dessus, et à l’hébergeur du site (",e.jsx(F,{v:_e.nom,quoi:"hébergeur"}),") qui les stocke sur ses serveurs situés dans l’Union européenne."]},"a")]},{id:"droits",titre:"Vos droits",corps:[e.jsx(C,{children:"Conformément au Règlement général sur la protection des données et à la loi Informatique et Libertés, vous disposez d’un droit d’accès, de rectification, d’effacement, de limitation et d’opposition au traitement de vos données, ainsi que d’un droit à la portabilité."},"a"),e.jsxs(C,{children:["Pour les exercer, écrivez à ",xe,". Une réponse vous sera apportée dans un délai d’un mois."]},"b"),e.jsx(C,{children:"Si vous estimez, après nous avoir contactés, que vos droits ne sont pas respectés, vous pouvez adresser une réclamation à la Commission nationale de l’informatique et des libertés (CNIL), 3 place de Fontenoy, TSA 80715, 75334 Paris Cedex 07 — cnil.fr."},"c")]},{id:"evolution",titre:"Évolution de cette politique",corps:[e.jsx(C,{children:"Cette politique peut être mise à jour pour suivre l’évolution du site ou de la réglementation. La version en vigueur est celle publiée sur cette page."},"a")]}]},Ri={id:"livraison-retours",chemin:"/livraison-retours",titre:"Livraison, retours & garanties",titreCourt:"Livraison & retours",ticket:"En pratique",chapo:e.jsxs(e.Fragment,{children:["Combien de temps, par quel chemin, et ce qui se passe si la pièce ne vous convient pas ou si elle a besoin d’être reprise. En clair — le détail juridique est dans les"," ",e.jsx(we,{vers:"/cgv",children:"CGV"}),"."]}),articles:[{id:"temps",titre:"Le temps de l’atelier",corps:[e.jsxs(C,{children:["Une pièce demande environ"," ",e.jsx(F,{v:Ae.fabricationUnePiece,quoi:"temps de couture d’une pièce"})," de couture à la main. Rien n’est fabriqué à l’avance en série : la plupart des pièces sont cousues après votre commande."]},"a"),e.jsx(me,{items:[e.jsxs(e.Fragment,{children:["Une pièce déjà c
1ousue, marquée comme disponible dans la galerie, part sous"," ",e.jsx(F,{v:Ae.pieceDisponible,quoi:"délai pièce disponible"}),"."]}),e.jsxs(e.Fragment,{children:["Une pièce cousue pour vous demande"," ",e.jsx(F,{v:Ae.commandeAExpedition,quoi:"délai commande → expédition"}),"."]})]},"b"),e.jsx(C,{children:"Si l’atelier prend du retard — une peau qui ne convient pas, une commande plus longue que prévu —, vous êtes prévenu avant la date annoncée, pas après."},"c")]},{id:"expedition",titre:"L’expédition",corps:[e.jsxs(C,{children:["Les pièces partent par ",e.jsx(F,{v:oe.transporteur,quoi:"transporteur"}),", avec suivi, vers ",e.jsx(F,{v:oe.zones,quoi:"zones de livraison"}),". Comptez"," ",e.jsx(F,{v:oe.delaiAcheminement,quoi:"délai d’acheminement"})," une fois le colis parti."]},"a"),e.jsx(me,{items:[e.jsxs(e.Fragment,{children:["Frais de port : ",e.jsx(F,{v:oe.tarifs,quoi:"tarifs de livraison"})]}),e.jsxs(e.Fragment,{children:["Offerts à partir de ",e.jsx(F,{v:oe.franco,quoi:"seuil de franco (ou « aucun »)"})]})]},"b"),e.jsx(C,{children:"À la réception, ouvrez le colis devant le livreur si son état vous semble douteux. En cas de dommage, notez des réserves précises sur le bon de livraison, puis écrivez à l’atelier sous trois jours : la suite est prise en charge."},"c")]},{id:"changer-davis",titre:"Changer d’avis — quatorze jours",corps:[e.jsxs(C,{children:["Vous avez quatorze jours à compter de la réception pour renvoyer une pièce, sans avoir à vous justifier. Écrivez à ",xe,", renvoyez la pièce non portée et complète dans les quatorze jours suivants, et vous êtes remboursé sous quatorze jours à réception — frais de livraison aller compris."]},"a"),e.jsx(C,{children:"Les frais de retour restent à votre charge, sauf si la pièce est arrivée abîmée ou ne correspond pas à ce qui a été commandé."},"b")]},{id:"personnalisees",titre:"Les pièces gravées ou sur mesure",corps:[e.jsx(C,{children:"Une pièce gravée à vos initiales, ou cousue d’après vos propres dimensions, ne peut pas être reprise : elle n’existe que pour vous. C’est la loi, et c’est aussi la raison pour laquelle l’atelier vous confirme chaque détail par écrit avant de couper le cuir."},"a"),e.jsx(C,{children:"Cela ne retire rien aux garanties : une pièce personnalisée reste couverte contre les défauts, comme toutes les autres."},"b")]},{id:"garantie",titre:"La garantie des coutures",corps:[e.jsxs(C,{children:["Les coutures sont garanties"," ",e.jsx(F,{v:fe.coutures,quoi:"durée de la garantie des coutures"}),"."]},"a"),e.jsx(C,{children:"Le point sellier se coud à deux aiguilles, croisées à la main dans chaque trou. Chaque point se noue sur lui-même : si un brin cède un jour, la couture, elle, ne se défait pas. C’est ce qui rend cette promesse tenable — une surpiqûre machine, elle, file d’un bout à l’autre."},"b"),e.jsx(me,{items:[e.jsxs(e.Fragment,{children:["Couvert : ",e.jsx(F,{v:fe.couvre,quoi:"ce que couvre la garantie"})]}),e.jsxs(e.Fragment,{children:["Non couvert : ",e.jsx(F,{v:fe.exclut,quoi:"exclusions de la garantie"})]})]},"c"),e.jsxs(C,{children:["S’y ajoutent les garanties légales de conformité et des vices cachés, dont le détail figure dans les ",e.jsx(we,{vers:"/cgv",children:"conditions générales de vente"}),"."]},"d")]},{id:"reparation",titre:"Faire reprendre une pièce",corps:[e.jsxs(C,{children:["Une pièce NÛMENT n’est pas censée être remplacée. Une tranche à repasser, une couture à reprendre, un cuir fatigué : écrivez à ",xe," avec une photographie, et l’atelier vous dira ce qui est possible."]},"a"),e.jsxs(C,{children:["Hors garantie, la reprise est facturée"," ",e.jsx(F,{v:fe.tarifReparation,quoi:"tarif de réparation"}),"."]},"b")]},{id:"entretien",titre:"Entretenir son cuir",corps:[e.jsx(C,{children:"Un cuir pleine fleur ne s’entretient pas beaucoup — il se vit. Trois gestes suffisent."},"a"),e.jsx(me,{items:["Au quotidien, un chiffon doux et sec pour ôter la poussière. Rien d’autre.","De temps à autre, un soin adapté au cuir, en très pet
1ite quantité, pour le nourrir. Trop de produit bouche la fleur et fige la patine.","Évitez l’humidité prolongée, la chaleur directe et le plein soleil. Mouillé, un cuir se sèche à l’air libre, à l’écart de tout radiateur."]},"b"),e.jsxs(C,{children:["Soin recommandé par l’atelier :"," ",e.jsx(F,{v:null,quoi:"produit d’entretien conseillé"})," — fréquence :"," ",e.jsx(F,{v:null,quoi:"fréquence d’entretien conseillée"}),"."]},"c"),e.jsx(C,{children:"Les marques, les plis et l’assombrissement du cuir ne sont pas de l’usure : c’est la patine, et c’est ce pour quoi une pleine fleur est choisie."},"d")]}]},ft=[us,$i,Ti,Ri];function Bt(t){return ft.find(r=>r.id===t)??us}function Ii(t){var s;const r=t.replace(/\/$/,"");return((s=ft.find(n=>n.chemin===r))==null?void 0:s.id)??null}function gt({onDoc:t,actif:r}){return e.jsx("nav",{"aria-label":"Informations légales",className:"flex flex-wrap items-center gap-x-6 gap-y-2",children:ft.map(s=>{const n=s.id===r;return e.jsx("a",{href:s.chemin,"aria-current":n?"page":void 0,onClick:I(()=>t(s.id)),className:`ticket transition-colors duration-300 ${n?"!text-warm-amber":"!text-warm-faint hover:!text-[#F2E6D2]"}`,children:s.titreCourt},s.id)})})}const Oi="https://www.instagram.com/numentcuir/",Bi=[{id:"collection",label:"Collection"},{id:"savoir-faire",label:"Savoir-faire"},{id:"contact",label:"Contact"}];function Ui({onLegal:t}){return e.jsxs("footer",{className:"border-t border-atelier-line/30 bg-atelier-deep px-6 py-14 md:px-10",children:[e.jsxs("div",{className:"mx-auto flex max-w-[1280px] flex-col gap-10 md:flex-row md:items-end md:justify-between",children:[e.jsxs("div",{children:[e.jsx("img",{src:"/logo-blanc.png",alt:"NÛMENT",className:"h-10 w-auto opacity-90"}),e.jsx("p",{className:"ticket mt-4",children:"Atelier de maroquinerie · Cousu main"})]}),e.jsxs("nav",{className:"flex flex-wrap items-center gap-7",children:[Bi.map(r=>e.jsx("button",{type:"button",onClick:()=>Fe(r.id),className:"ticket !text-warm-muted transition-colors duration-300 hover:!text-[#F2E6D2]",children:r.label},r.id)),e.jsx("a",{href:Oi,target:"_blank",rel:"noopener noreferrer","aria-label":"Instagram NÛMENT",className:"flex h-9 w-9 items-center justify-center rounded-full text-warm-muted transition-all duration-300 hover:bg-white/[0.06] hover:text-[#F2E6D2]",children:e.jsx(Me,{className:"h-[18px] w-[18px]"})})]})]}),e.jsxs("div",{className:"mx-auto mt-10 flex max-w-[1280px] flex-col gap-4 border-t border-atelier-line/20 pt-6 md:flex-row md:items-center md:justify-between",children:[e.jsxs("p",{className:"font-mono text-[11px] text-warm-faint",children:["© ",new Date().getFullYear()," NÛMENT — Maquette-concept. Tous droits réservés."]}),e.jsx(gt,{onDoc:t})]})]})}let ar=0;function zi({onEnter:t,onSavoirFaire:r,onGalerie:s,onVendues:n,onLegal:i}){const a=f.useRef(null);return f.useEffect(()=>{const o=a.current,l=window.location.hash.slice(1);let c=0;return l&&document.getElementById(l)?c=requestAnimationFrame(()=>Fe(l)):o&&(o.scrollTop=ar),()=>{c&&cancelAnimationFrame(c),o&&(ar=o.scrollTop)}},[]),e.jsxs("div",{ref:a,className:"home-scroll h-screen w-screen overflow-y-auto bg-atelier-bg text-[#EFE3D2]",children:[e.jsx(Ei,{onGalerie:s,onVendues:n,onEnter:()=>t()}),e.jsxs("main",{children:[e.jsx(ki,{onEnter:()=>t()}),e.jsx(Ai,{onGalerie:s}),e.jsx(Mi,{onMore:r}),e.jsx(qi,{onEnter:()=>t()})]}),e.jsx(Ui,{onLegal:i})]})}function ds(){const{teintes:t}=J(),r=[...t.cuir,...t.doublure,...t.haut];return e.jsxs("defs",{children:[e.jsxs("linearGradient",{id:"leather-cognac",x1:"0.12",y1:"0",x2:"0.42",y2:"1",children:[e.jsx("stop",{offset:"0%",stopColor:"#8A4720"}),e.jsx("stop",{offset:"38%",stopColor:"#A85B2B"}),e.jsx("stop",{offset:"63%",stopColor:"#B86A33"}),e.jsx("stop",{offset:"100%",stopColor:"#67331A"})]}),e.jsxs("linearGradient",{id:"leather-noir",x1:"0.12",y1:"0",x2:"0.42",y2:"1",children:[e.jsx("stop",{offset:"0%",stopColor:"#241E19"}),e.jsx("stop",{offset:"42%",stopColor:"#322A23"}),e.jsx("stop",{offset:"66%",stopColor:"#403429"}),e.jsx("stop",{offset:"100%",stopColor:"#16110D"})]}),e.jsxs("linearGradient",{id:"leather-fauve",x1:"0.12",y1:"0",x2:"0.42",y2:"1",children:[e.jsx("stop",{offset:"0%",stopColor:"#7C5430"}
1),e.jsx("stop",{offset:"38%",stopColor:"#9C6C39"}),e.jsx("stop",{offset:"63%",stopColor:"#B7884E"}),e.jsx("stop",{offset:"100%",stopColor:"#583B20"})]}),e.jsxs("linearGradient",{id:"lining-naturel",x1:"0.12",y1:"0",x2:"0.42",y2:"1",children:[e.jsx("stop",{offset:"0%",stopColor:"#E2CFA9"}),e.jsx("stop",{offset:"55%",stopColor:"#CDB58C"}),e.jsx("stop",{offset:"100%",stopColor:"#A68C63"})]}),e.jsxs("linearGradient",{id:"lining-bordeaux",x1:"0.12",y1:"0",x2:"0.42",y2:"1",children:[e.jsx("stop",{offset:"0%",stopColor:"#83242F"}),e.jsx("stop",{offset:"55%",stopColor:"#6E1B2A"}),e.jsx("stop",{offset:"100%",stopColor:"#46101C"})]}),e.jsxs("linearGradient",{id:"lining-foret",x1:"0.12",y1:"0",x2:"0.42",y2:"1",children:[e.jsx("stop",{offset:"0%",stopColor:"#3D5F4B"}),e.jsx("stop",{offset:"55%",stopColor:"#2E4A3B"}),e.jsx("stop",{offset:"100%",stopColor:"#1B2F24"})]}),e.jsxs("linearGradient",{id:"haut-miel",x1:"0.12",y1:"0",x2:"0.42",y2:"1",children:[e.jsx("stop",{offset:"0%",stopColor:"#D49A55"}),e.jsx("stop",{offset:"55%",stopColor:"#C28A4A"}),e.jsx("stop",{offset:"100%",stopColor:"#8F5E2C"})]}),e.jsxs("linearGradient",{id:"haut-chataigne",x1:"0.12",y1:"0",x2:"0.42",y2:"1",children:[e.jsx("stop",{offset:"0%",stopColor:"#6B4527"}),e.jsx("stop",{offset:"55%",stopColor:"#5C3A22"}),e.jsx("stop",{offset:"100%",stopColor:"#3D2414"})]}),e.jsxs("linearGradient",{id:"haut-encre",x1:"0.12",y1:"0",x2:"0.42",y2:"1",children:[e.jsx("stop",{offset:"0%",stopColor:"#2E2B28"}),e.jsx("stop",{offset:"55%",stopColor:"#23211F"}),e.jsx("stop",{offset:"100%",stopColor:"#141210"})]}),e.jsxs("radialGradient",{id:"sheen",cx:"46%",cy:"26%",r:"72%",children:[e.jsx("stop",{offset:"0%",stopColor:"#FFFFFF",stopOpacity:"0.20"}),e.jsx("stop",{offset:"44%",stopColor:"#FFFFFF",stopOpacity:"0.05"}),e.jsx("stop",{offset:"100%",stopColor:"#FFFFFF",stopOpacity:"0"})]}),e.jsxs("linearGradient",{id:"card-face",x1:"0",y1:"0",x2:"0.25",y2:"1",children:[e.jsx("stop",{offset:"0%",stopColor:"#F6F0E5"}),e.jsx("stop",{offset:"100%",stopColor:"#D7CAB3"})]}),e.jsxs("linearGradient",{id:"card-chip",x1:"0",y1:"0",x2:"1",y2:"1",children:[e.jsx("stop",{offset:"0%",stopColor:"#ECCF92"}),e.jsx("stop",{offset:"100%",stopColor:"#A9824A"})]}),e.jsxs("linearGradient",{id:"zip-brass",x1:"0",y1:"0",x2:"0",y2:"1",children:[e.jsx("stop",{offset:"0%",stopColor:"#EFD6A0"}),e.jsx("stop",{offset:"50%",stopColor:"#B89154"}),e.jsx("stop",{offset:"100%",stopColor:"#876837"})]}),e.jsxs("filter",{id:"grain",children:[e.jsx("feTurbulence",{type:"fractalNoise",baseFrequency:"0.9",numOctaves:"2",stitchTiles:"stitch",result:"n"}),e.jsx("feColorMatrix",{in:"n",type:"saturate",values:"0",result:"g"}),e.jsx("feComponentTransfer",{in:"g",children:e.jsx("feFuncA",{type:"linear",slope:"0.55",intercept:"0"})})]}),e.jsx("filter",{id:"atelierShadow",x:"-40%",y:"-30%",width:"180%",height:"200%",children:e.jsx("feDropShadow",{dx:"0",dy:"30",stdDeviation:"32",floodColor:"#090401",floodOpacity:"0.7"})}),r.filter(s=>s.arrets).map(s=>e.jsx("linearGradient",{id:`teinte-${s.id}`,x1:"0",y1:"0",x2:"0",y2:"1",children:s.arrets.map(n=>e.jsx("stop",{offset:n.offset,stopColor:n.couleur},n.offset))},s.id))]})}const rt="M330,150 H670 A40,40 0 0 1 710,190 V450 A40,40 0 0 1 670,490 H330 A40,40 0 0 1 290,450 V190 A40,40 0 0 1 330,150 Z";function ps({cuirFill:t,doublureFill:r,hautFill:s,fond:n,grain:i}){return e.jsxs("g",{children:[e.jsx("defs",{children:e.jsx("clipPath",{id:"clip-limpide",children:e.jsx("path",{d:rt})})}),e.jsx("path",{d:rt,fill:n("cuir","corps")}),e.jsx("path",{d:rt,fill:t("corps")}),e.jsxs("g",{clipPath:"url(#clip-limpide)",children:[e.jsx("rect",{x:"290",y:"150",width:"420",height:"42",fill:n("haut","haut")}),e.jsx("rect",{x:"290",y:"150",width:"420",height:"42",fill:s("haut")}),e.jsx("path",{d:"M290,192 H710",stroke:"#000",strokeOpacity:"0.28",strokeWidth:"2.5"}),e.jsx("path",{d:"M290,195 H710",stroke:"#F0C98A",strokeOpacity:"0.07",strokeWidth:"1.5"})]}),e.jsxs("g",{clipPath:"url(#clip-limpide)",children:[e.jsx("rect",{x:"318",y:"196",width:"364",height:"264",rx:"26",fill:n("doublure","doublure")}),e.jsx("rect",{x:"318",y:"196",width:"364",height:"264",rx:"26",fill:r("doublure")}),e.jsx("rect",{x:"318",y:"196",width:"364",height:"264",rx:"26",fill:"#000",opacity:"0.16"})]}),e.jsx("path",{d:"M312,372 H688",stroke:"#000",strokeOpacity:"0.22",strokeWidth:"2.5"}),e.jsx("path",{d:"M312,375 H688",stroke:"#F0C98A",strokeOpacity:"0.06",strokeWidth:"1.5"}),e.jsx("ellipse",{cx:"470",cy:"208",rx:"250",ry:"120",fill:"url(#sheen)",clipPath:"url(#clip-limpide)"}),i("corps")&&e.jsx("rect",{x:"290",y:"150",width:"420",height:"340",filter:"url
1(#grain)",clipPath:"url(#clip-limpide)",style:{mixBlendMode:"soft-light"},opacity:.5}),e.jsx("path",{d:rt,fill:"none",stroke:"#F0C98A",strokeOpacity:"0.16",strokeWidth:"1.5"})]})}const st="M176,140 H824 A26,26 0 0 1 850,166 V494 A26,26 0 0 1 824,520 H176 A26,26 0 0 1 150,494 V166 A26,26 0 0 1 176,140 Z";function _i({cuirFill:t,doublureFill:r,hautFill:s,fond:n,grain:i}){return e.jsxs("g",{children:[e.jsx("defs",{children:e.jsx("clipPath",{id:"clip-authentique",children:e.jsx("path",{d:st})})}),e.jsx("path",{d:st,fill:n("cuir","corps")}),e.jsx("path",{d:st,fill:t("corps")}),e.jsxs("g",{clipPath:"url(#clip-authentique)",children:[e.jsx("rect",{x:"150",y:"140",width:"700",height:"44",fill:n("haut","haut")}),e.jsx("rect",{x:"150",y:"140",width:"700",height:"44",fill:s("haut")}),e.jsx("path",{d:"M150,184 H850",stroke:"#000",strokeOpacity:"0.28",strokeWidth:"2.5"}),e.jsx("path",{d:"M150,187 H850",stroke:"#F0C98A",strokeOpacity:"0.07",strokeWidth:"1.5"})]}),e.jsxs("g",{clipPath:"url(#clip-authentique)",children:[e.jsx("rect",{x:"492",y:"140",width:"16",height:"380",fill:"#000",opacity:"0.30"}),e.jsx("rect",{x:"498",y:"140",width:"3",height:"380",fill:"#F0C98A",opacity:"0.06"})]}),e.jsxs("g",{clipPath:"url(#clip-authentique)",children:[e.jsx("rect",{x:"190",y:"206",width:"270",height:"250",rx:"14",fill:n("doublure","poche-gauche")}),e.jsx("rect",{x:"190",y:"206",width:"270",height:"250",rx:"14",fill:r("poche-gauche")}),e.jsx("rect",{x:"190",y:"206",width:"270",height:"250",rx:"14",fill:"#000",opacity:"0.18"}),e.jsx("path",{d:"M200,232 H452",stroke:"#000",strokeOpacity:"0.30",strokeWidth:"2.5"}),e.jsx("path",{d:"M200,235 H452",stroke:"#F0C98A",strokeOpacity:"0.06",strokeWidth:"1.5"})]}),e.jsxs("g",{clipPath:"url(#clip-authentique)",children:[e.jsx("rect",{x:"536",y:"190",width:"288",height:"276",rx:"16",fill:n("doublure","poche-droite")}),e.jsx("rect",{x:"536",y:"190",width:"288",height:"276",rx:"16",fill:r("poche-droite")}),e.jsx("rect",{x:"536",y:"190",width:"288",height:"276",rx:"16",fill:"#000",opacity:"0.16"})]}),e.jsx("ellipse",{cx:"500",cy:"196",rx:"330",ry:"130",fill:"url(#sheen)",clipPath:"url(#clip-authentique)"}),i("corps")&&e.jsx("rect",{x:"150",y:"140",width:"700",height:"380",filter:"url(#grain)",clipPath:"url(#clip-authentique)",style:{mixBlendMode:"soft-light"},opacity:.5}),e.jsx("path",{d:st,fill:"none",stroke:"#F0C98A",strokeOpacity:"0.14",strokeWidth:"1.5"})]})}const nt="M170,268 H852 A47,47 0 0 1 852,362 H170 Z",Nt="M170,282 H852 A47,47 0 0 1 852,376 H170 Z",Vi=[660,705,750,795,840];function Gi({cuirFill:t,doublureFill:r,fond:s,grain:n}){return e.jsxs("g",{children:[e.jsx("defs",{children:e.jsx("clipPath",{id:"clip-affirmee",children:e.jsx("path",{d:nt})})}),e.jsx("path",{d:Nt,fill:s("doublure","tranche")}),e.jsx("path",{d:Nt,fill:r("tranche")}),e.jsx("path",{d:Nt,fill:"#000",opacity:"0.22"}),e.jsx("path",{d:nt,fill:s("cuir","sangle")}),e.jsx("path",{d:nt,fill:t("sangle")}),e.jsx("ellipse",{cx:"470",cy:"292",rx:"330",ry:"58",fill:"url(#sheen)",clipPath:"url(#clip-affirmee)"}),Vi.map(i=>e.jsxs("g",{children:[e.jsx("circle",{cx:i,cy:"315",r:"9",fill:"#120A04",fillOpacity:"0.72"}),e.jsx("circle",{cx:i,cy:"313",r:"9",fill:"none",stroke:"#F0C98A",strokeOpacity:"0.16",strokeWidth:"1.5"})]},i)),n("sangle")&&e.jsx("rect",{x:"170",y:"268",width:"730",height:"94",filter:"url(#grain)",clipPath:"url(#clip-affirmee)",style:{mixBlendMode:"soft-light"},opacity:.5}),e.jsx("path",{d:nt,fill:"none",stroke:"#F0C98A",strokeOpacity:"0.14",strokeWidth:"1.5"}),e.jsxs("g",{children:[e.jsx("rect",{x:"248",y:"258",width:"36",height:"114",rx:"10",fill:s("cuir","passant")}),e.jsx("rect",{x:"248",y:"258",width:"36",height:"114",rx:"10",fill:t("passant")}),e.jsx("rect",{x:"248",y:"258",width:"36",height:"114",rx:"10",fill:"#000",opacity:"0.14"}),e.jsx("rect",{x:"248",y:"258",width:"36",height:"114",rx:"10",fill:"none",stroke:"#F0C98A",strokeOpacity:"0.16",strokeWidth:"1.5"})]}),e.jsxs("g",{children:[e.jsx("rect",{x:"96",y:"254",width:"118",height:"122",rx:"18",fill:"none",stroke:"url(#zip-brass)",strokeWidth:"16"}),e.jsx("rect",{x:"148",y:"256",width:"14",height:"118",rx:"7",fill:"url(#zip-brass)"}
1),e.jsx("path",{d:"M156,315 H250",stroke:"url(#zip-brass)",strokeWidth:"9",strokeLinecap:"round"}),e.jsx("circle",{cx:"155",cy:"315",r:"11",fill:"url(#zip-brass)"})]})]})}const Hi="#120A04",Wi=.16,or=.35,Zi=1.2,Ki=[{mm:2.4,opacite:.2025},{mm:1.6,opacite:.243},{mm:.8,opacite:.324}],Xi=.2,Yi=t=>Math.max(6,Math.ceil(Math.abs(t)*26)),Ji=t=>t*t*(3-2*t);function Qi({de:t,a:r,facteur:s,depuis:n,echelleMm:i}){const a=Yi(s-n),o=[];let l=0;for(let c=1;c<=a;c++){const u=c/a,x=t+(r-t)*u,m=Ji(u),d=l>=1?1:(m-l)/(1-l);l=m,!(d<=0)&&o.push({largeur:2*x*i,facteur:s,opacite:Math.min(1,d)})}return o}function ea(t,r){const s=cn.exec(String(t).trim());if(!s)return t;const n=s[1].length===3?[...s[1]].map(a=>a+a).join(""):s[1],i=a=>{const o=Math.round(parseInt(n.slice(a,a+2),16)*r);return Math.max(0,Math.min(255,o)).toString(16).padStart(2,"0")};return`#${i(0)}${i(2)}${i(4)}`}function ta(t,r){return t.map(s=>({largeur:s.largeur,opacite:s.opacite,couleur:s.couleur??ea(r,s.facteur)}))}function ra(t){return{tranche:Qi({de:or+Zi,a:or,facteur:Wi,depuis:1,echelleMm:t}),ombre:{dx:0,dy:0,traits:Ki.map(({mm:r,opacite:s})=>({largeur:r*t,couleur:Hi,opacite:s}))}}}function lr(t,r,s){return`clip-morceau-${t}-${r}-${s}`}function cr(t,r,s){return`clip-dessous-${t}-${r}-${s}`}function sa({d:t,ombre:r,clipGlobal:s}){return e.jsx("g",{clipPath:`url(#${s})`,children:e.jsx("g",{transform:`translate(${r.dx} ${r.dy})`,children:r.traits.map((n,i)=>e.jsx("path",{d:t,fill:"none",stroke:n.couleur,strokeOpacity:n.opacite,strokeWidth:n.largeur,strokeLinejoin:"round"},i))})})}function na({d:t,traits:r,clipMorceau:s,masqueContour:n}){return r.length===0?null:e.jsx("g",{clipPath:`url(#${s})`,mask:n?`url(#${n})`:void 0,children:r.map((i,a)=>e.jsx("path",{d:t,fill:"none",stroke:i.couleur,strokeOpacity:i.opacite,strokeWidth:i.largeur,strokeLinejoin:"round"},a))})}function ia({id:t,silhouette:r,boite:s,profondeur:n,garde:i}){return e.jsxs("mask",{id:t,maskUnits:"userSpaceOnUse",x:s.x-n,y:s.y-n,width:s.largeur+2*n,height:s.hauteur+2*n,children:[e.jsx("rect",{x:s.x-n,y:s.y-n,width:s.largeur+2*n,height:s.hauteur+2*n,fill:"#fff"}),e.jsx("path",{d:r,fill:"none",stroke:"#000",strokeOpacity:1-i,strokeWidth:2*n,strokeLinejoin:"round"})]})}function ae(t){return t.sousTraces.join(" ")}function aa({schema:t,modeleId:r,face:s,echelleMm:n,cuirFill:i,doublureFill:a,fond:o,grain:l,teinteHex:c}){const{boite:u,calques:x}=t;if(!u)return null;const m=`clip-schema-${r}-${s}`,d=`clip-grain-${r}-${s}`,g=ra(n),p=[...x].sort((y,q)=>y.rang-q.rang),b=p.filter(y=>y.type==="cuir"||y.type==="doublure"),h=b.filter(y=>l(y.nom)),v=u.x+.46*u.largeur,E=u.y+.3*u.hauteur,M=.6*u.largeur,w=.55*u.hauteur,j=y=>b.filter(q=>q.rang<y.rang),k=`masque-contour-${r}-${s}`,S=b.map(y=>ae(y)).join(" "),N=Math.max(...g.tranche.map(y=>y.largeur))/2,A=(y,q,O)=>{const P=c(q,y.nom),W=P?ta(g.tranche,P):[];return e.jsxs("g",{children:[j(y).length>0&&e.jsx(sa,{d:ae(y),ombre:g.ombre,clipGlobal:cr(r,s,y.rang)}),O,e.jsx(na,{d:ae(y),traits:W,clipMorceau:lr(r,s,y.rang),masqueContour:k})]},y.nom)};return e.jsxs("g",{children:[e.jsxs("defs",{children:[e.jsx("clipPath",{id:m,children:b.map(y=>e.jsx("path",{d:ae(y)},y.nom))}),h.length>0&&e.jsx("clipPath",{id:d,children:h.map(y=>e.jsx("path",{d:ae(y)},y.nom))}),b.map(y=>e.jsx("clipPath",{id:lr(r,s,y.rang),children:e.jsx("path",{d:ae(y)})},`clip-${y.rang}`)),e.jsx(ia,{id:k,silhouette:S,boite:u,profondeur:N,garde:Xi}),b.filter(y=>j(y).length>0).map(y=>e.jsx("clipPath",{id:cr(r,s,y.rang),children:j(y).map(q=>e.jsx("path",{d:ae(q)},q.nom))},`dessous-${y.rang}`))]}),p.map(y=>{if(y.type==="cuir"){const q=o("cuir",y.nom);return A(y,"cuir",e.jsxs(e.Fragment,{children:[e.jsx("path",{d:ae(y),fill:q}),e.jsx("path",{d:ae(y),fill:i(y.nom)})]}))}if(y.type==="doublure"){const q=o("doublure",y.nom);return A(y,"doublure",e.jsxs(e.Fragment,{children:[e.jsx("path",{d:ae(y),fill:q}),e.jsx("path",{d:ae(y),fill:a(y.nom)}),e.jsx("path",{d:ae(y),fill:"#000",opacity:.16})]}))}return null}),e.jsx("ellipse",{cx:v,cy:E,rx:M,ry:w,fill:"url(#sheen)",clipPath:`url(#${m})`}),h.length>0&&e.jsx("rect",{x:u.x,y:u.y,width:u.largeur,height:u.hauteur,filter:"url
1(#grain)",clipPath:`url(#${d})`,style:{mixBlendMode:"soft-light"},opacity:.5})]})}function ur({slot:t}){const{x:r,y:s,w:n,h:i,rot:a=0}=t;return e.jsxs("g",{transform:`translate(${r} ${s}) rotate(${a})`,children:[e.jsx("rect",{y:9,width:n,height:i,rx:16,fill:"#000",opacity:.18}),e.jsx("rect",{width:n,height:i,rx:16,fill:"url(#card-face)",stroke:"#000",strokeOpacity:.16}),e.jsx("rect",{width:n,height:i,rx:16,fill:"none",stroke:"#FFF",strokeOpacity:.22,strokeWidth:1}),e.jsx("rect",{x:26,y:i*.4,width:44,height:33,rx:6,fill:"url(#card-chip)"}),e.jsx("path",{d:`M26 ${i*.4+16.5} h44`,stroke:"#7A5A2A",strokeOpacity:.45,strokeWidth:1}),e.jsx("path",{d:`M48 ${i*.4} v33`,stroke:"#7A5A2A",strokeOpacity:.35,strokeWidth:1}),e.jsx("rect",{x:26,y:i-34,width:n*.5,height:9,rx:4,fill:"#2A2018",opacity:.16}),e.jsx("rect",{x:n-84,y:24,width:58,height:10,rx:5,fill:"#2A2018",opacity:.12})]})}function oa({slots:t}){return e.jsxs("g",{children:[e.jsx(ur,{slot:t[0]}),e.jsx(ur,{slot:t[1]})]})}const dr=260;function la(t){return/z\s*$/i.test(t.trim())}function ca(t,r,s,n){const i=t.getTotalLength();if(!i)return null;const a=la(r),o=Math.max(8,Math.round(i/s)),l=i/o,c=a?o:o+1,u=[];for(let m=0;m<c;m++){const d=m*l,g=t.getPointAtLength(d),p=a?t.getPointAtLength((d-1+i)%i):t.getPointAtLength(Math.max(0,d-1)),b=a?t.getPointAtLength((d+1)%i):t.getPointAtLength(Math.min(i,d+1)),h=Math.atan2(b.y-p.y,b.x-p.x)*180/Math.PI;u.push({x:g.x,y:g.y,angle:h,index:n+m})}const x=[];for(let m=0;m<=dr;m++){const d=t.getPointAtLength(m/dr*i);x.push({x:d.x,y:d.y})}return{stitches:u,samples:x}}function ua(t,r=27){const s=Array.isArray(t)?t:[t],n=JSON.stringify(s),i=f.useRef([]),[a,o]=f.useState({stitches:[],samples:[]});return f.useLayoutEffect(()=>{const l=i.current;if(s.length===0||s.some((d,g)=>!l[g]))return;const c=[],u=[];let x=0,m=!1;for(let d=0;d<s.length;d++){const g=l[d];if(!g)continue;const p=ca(g,s[d],r,x);p&&(m=!0,c.push(...p.stitches),u.push(p.samples),x+=p.stitches.length)}m&&o({stitches:c,samples:u})},[n,r]),{pathRefs:i,stitches:a.stitches,samples:a.samples}}
1const pr=.6,mr=.16,xr=.92,hr=.2,fr=[.4,0,1,1],gr=[.22,1,.36,1];function ms(t){const r=_n();async function s(i){t<=0||(i.set(0),ze(i,1,{duration:xr+hr,ease:gr}),await r.start(a=>({opacity:1,scale:1,transition:{duration:hr,ease:gr,delay:a*xr/t}})))}async function n(i,a){if(t<=0){a();return}ze(i,0,{duration:pr+mr,ease:fr}),await r.start(o=>({opacity:0,scale:.35,transition:{duration:mr,ease:fr,delay:(t-1-o)*pr/t}})),a(),await s(i)}return{controls:r,play:n,resew:s}}const da=20,pa=15,ma=3.4;function xs({seamPath:t,colorHex:r,onSewingChange:s,statique:n=!1,spacing:i,stitchLen:a=pa,stitchWidth:o=ma,slant:l=da}){const c=Array.isArray(t)?t:[t],{pathRefs:u,stitches:x}=ua(t,i),{controls:m,play:d,resew:g}=ms(x.length),[p,b]=f.useState(r),h=n?r:p,v=f.useRef(!1),E=Ge(0),M=f.useRef(!1),w=j=>{j!==M.current&&(M.current=j,s==null||s(j))};return f.useEffect(()=>{if(n||!x.length||v.current)return;v.current=!0,b(r);let j=!1;return w(!0),g(E).then(()=>{j||w(!1)}),()=>{j=!0}},[x.length]),f.useEffect(()=>{if(n||!v.current||r===p)return;let j=!1;return w(!0),d(E,()=>b(r)).then(()=>{j||w(!1)}),()=>{j=!0}},[r]),f.useEffect(()=>()=>w(!1),[]),e.jsxs("g",{children:[c.map((j,k)=>e.jsx("path",{ref:S=>{u.current[k]=S},d:j,fill:"none",stroke:"none"},k)),c.map((j,k)=>e.jsx("path",{d:j,fill:"none",stroke:"#000",strokeOpacity:.22,strokeWidth:3,strokeDasharray:"0.5 7.5",strokeLinecap:"round"},k)),x.map(j=>{const k=n?{style:{transformOrigin:"center",transformBox:"fill-box"}}:{custom:j.index,animate:m,initial:{opacity:0,scale:.35},style:{transformOrigin:"center",transformBox:"fill-box"}};return e.jsxs("g",{transform:`translate(${j.x} ${j.y}) rotate(${j.angle+l})`,children:[e.jsx(T.rect,{...k,x:-a/2,y:-o/2+1.5,width:a,height:o,rx:o/2,fill:"#190D05",fillOpacity:.5}),e.jsx(T.rect,{...k,x:-a/2,y:-o/2,width:a,height:o,rx:o/2,fill:h}),e.jsx(T.rect,{...k,x:-a/2+1,y:-o/2,width:a-2,height:o/2.2,rx:o/4,fill:"#FFFFFF",fillOpacity:.18})]},j.index)})]})}const Ut={pasMm:2.7,filMm:.6,inclinaisonDeg:10,ogiveMm:.52,ogiveDeg:28,jeuMm:.3,ecartDoubleMm:.66,doublesParBout:2,ombreMm:.18};function Dt(t,r,s){const n=s*Math.PI/180,i=Math.cos(n),a=Math.sin(n);return{x:t*i-r*a,y:t*a+r*i}}function H(t){return Math.round(t*1e3)/1e3}function zt(t){const r=String(t).match(/[A-Za-z]|-?\d*\.?\d+(?:[eE][-+]?\d+)?/g);if(!r)return null;const s=[];let n=!1,i=null,a=0;for(;a<r.length;){if(/[A-Za-z]/.test(r[a])){if(i=r[a],a+=1,i==="Z"||i==="z"){n=!0;continue}if((i==="M"||i==="m")&&s.length>0)return null}if(i!=="M"&&i!=="L")return null;const c=Number(r[a]),u=Number(r[a+1]);if(!Number.isFinite(c)||!Number.isFinite(u))return null;s.push({x:c,y:u}),a+=2,i==="M"&&(i="L")}if(s.length<2)return null;const o=s[0],l=s[s.length-1];return n&&(o.x!==l.x||o.y!==l.y)&&s.push({x:o.x,y:o.y}),{sommets:s,ferme:n}}function xa(t,r,s){const n=[];let i=!0;for(let a=1;a<t.length;a++){const o=t[a-1],l=t[a],c=l.x-o.x,u=l.y-o.y,x=Math.hypot(c,u);if(x===0)continue;const m=Math.max(1,Math.round(x/s));for(let d=i?0:1;d<=m;d++){const g=d/m;n.push({x:o.x+c*g,y:o.y+u*g})}i=!1}return r&&n.length>1&&n.pop(),n}function ha(t,r,{inclinaisonDeg:s,jeuUnites:n,doublesParBout:i}){const a=r?t.length:t.length-1,o=[];for(let l=0;l<a;l++){const c=t[l],u=t[(l+1)%t.length],x=(c.x+u.x)/2,m=(c.y+u.y)/2,d=Dt((u.x-c.x)/2,(u.y-c.y)/2,s),g=2*Math.hypot(d.x,d.y),p=Math.max(g*.2,g-2*n),b=p/g,h={x:x-d.x*b,y:m-d.y*b},v={x:x+d.x*b,y:m+d.y*b};o.push({index:l,cx:x,cy:m,angleDeg:Math.atan2(d.y,d.x)*180/Math.PI,longueur:p,a:h,b:v,double:!r&&(l<i||l>=a-i)})}return o}function fa(t,r,s){const n={...Ut,...r};if(!s||!Number.isFinite(s))return null;const i=n.pasMm*s,a=n.jeuMm*s,o=[],l=[];for(let c=0;c<t.length;c++){const u=zt(t[c]);if(!u)return null;const x=xa(u.sommets,u.ferme,i);if(x.length<2)continue;const m=ha(x,u.ferme,{inclinaisonDeg:n.inclinaisonDeg,jeuUnites:a,doublesParBout:n.doublesParBout});for(let d=0;d+1<m.length;d++)l.push({a:m[d].b,b:m[d+1].a});u.ferme&&m.length>1&&l.push({a:m[m.length-1].b,b:m[0].a});for(const d of m)o.push({...d,trace:c,index:o.length})}return{points:o,griffes:l}}function ga(t,r,s){const n={...Ut,...r};if(!s||!Number.isFinite(s))return null;const i=n.ecartDoubleMm*s,a=[];for(const o of t){const l=zt(o);if(!l)return null;for(let c=1;c<l.sommets.length;c++){const u=l.sommets[c-1],x=l.sommets[c],m=Math.hypot(x.x-u.x,x.y-u.y);if(m===0)continue;const d=-(x.y-u.y)/m,g=(x.x-u.x)/m;for(const p of[-1,1]){const b=d*i*p/2,h=g*i*p/2;
1a.push({a:{x:u.x+b,y:u.y+h},b:{x:x.x+b,y:x.y+h},cx:(u.x+x.x)/2+b,cy:(u.y+x.y)/2+h,angleDeg:Math.atan2(x.y-u.y,x.x-u.x)*180/Math.PI,longueur:m})}}}return a}const ba=1.6;function br(t,r,s,n,i="ogive"){const a=r/2,o=Math.max(0,Math.min(s,t/2-a/4)),l=t/2-o,c=i==="ogive-coupe",u=Dt(1,0,-n),x=Dt(-1,0,-n),m={x:l+u.x*o,y:u.y*o},d={x:-l+x.x*o,y:x.y*o},g=(M,w)=>H(Math.hypot(w.x-M.x,w.y-M.y)*ba),p={x:l,y:-a},b={x:l,y:a},h={x:-l,y:a},v={x:-l,y:-a},E=[`M${H(-l)} ${H(-a)}`,`L${H(c?t/2:l)} ${H(-a)}`];return c?E.push(`L${H(t/2)} ${H(a)}`):E.push(`A${g(p,m)} ${g(p,m)} 0 0 1 ${H(m.x)} ${H(m.y)}`,`A${g(m,b)} ${g(m,b)} 0 0 1 ${H(l)} ${H(a)}`),E.push(`L${H(-l)} ${H(a)}`,`A${g(h,d)} ${g(h,d)} 0 0 1 ${H(d.x)} ${H(d.y)}`,`A${g(d,v)} ${g(d,v)} 0 0 1 ${H(-l)} ${H(-a)}`,"Z"),E.join(" ")}function va({seamPath:t,chevalTraces:r=[],colorHex:s,echelleMm:n,reglages:i,onSewingChange:a,statique:o=!1}){const l={...Ut,...i},c=JSON.stringify([t,r,l,n]),u=f.useMemo(()=>{const D=fa(t,l,n);if(!D)return null;const G=ga(r,l,n)??[],B=l.filMm*n,U=l.ogiveMm*n,Q=new Map,ee=(Z,ie)=>{const he=Math.round(Z*100)+(ie==="ogive-coupe"?.5:0),X=Q.get(he);if(X)return X;const te=br(Z,B,U,l.ogiveDeg,ie);return Q.set(he,te),te},de=Z=>br(Math.max(Z*.86,B),B*.42,U*.7,l.ogiveDeg);return{...D,cheval:G,fil:B,ombre:l.ombreMm*n,ecart:l.ecartDoubleMm*n,filPour:ee,refletPour:de}},[c]),x=u?u.points.length+u.cheval.length:0,{controls:m,play:d,resew:g}=ms(x),[p,b]=f.useState(s),h=o?s:p,v=f.useRef(!1),E=Ge(0),M=f.useRef(!1),w=D=>{D!==M.current&&(M.current=D,a==null||a(D))};if(f.useEffect(()=>{if(o||!x||v.current)return;v.current=!0,b(s);let D=!1;return w(!0),g(E).then(()=>{D||w(!1)}),()=>{D=!0}},[x]),f.useEffect(()=>{if(o||!v.current||s===p)return;let D=!1;return w(!0),d(E,()=>b(s)).then(()=>{D||w(!1)}),()=>{D=!0}},[s]),f.useEffect(()=>()=>w(!1),[]),!u)return null;const{points:j,griffes:k,cheval:S,fil:N,ombre:A,ecart:y,filPour:q,refletPour:O}=u,P=D=>o?{style:{transformOrigin:"center",transformBox:"fill-box"}}:{custom:D,animate:m,initial:{opacity:0,scale:.35},style:{transformOrigin:"center",transformBox:"fill-box"}},W=(D,G,B,U)=>e.jsxs("g",{transform:`translate(0 ${U})`,children:[e.jsx("g",{transform:`translate(0 ${A})`,children:e.jsx(T.path,{...P(D),d:G,fill:"#190D05",fillOpacity:.5})}),e.jsx(T.path,{...P(D),d:G,fill:h}),e.jsx("g",{transform:`translate(0 ${-N*.2})`,children:e.jsx(T.path,{...P(D),d:B,fill:"#FFFFFF",fillOpacity:.18})})]},U);return e.jsxs("g",{children:[k.map((D,G)=>e.jsx("line",{x1:D.a.x,y1:D.a.y,x2:D.b.x,y2:D.b.y,stroke:"#190D05",strokeOpacity:.55,strokeWidth:N*.85,strokeLinecap:"round"},G)),j.map(D=>{const G=q(D.longueur),B=O(D.longueur),U=D.double?[-y/2,y/2]:[0];return e.jsx("g",{transform:`translate(${D.cx} ${D.cy}) rotate(${D.angleDeg})`,children:U.map(Q=>W(D.index,G,B,Q))},D.index)}),S.map((D,G)=>{const B=j.length+G,U=q(D.longueur,"ogive-coupe"),Q=O(D.longueur),ee=Z=>Math.min(...j.map(ie=>Math.hypot(ie.cx-Z.x,ie.cy-Z.y))),de=ee(D.a)>ee(D.b);return e.jsx("g",{transform:`translate(${D.cx} ${D.cy}) rotate(${D.angleDeg+(de?180:0)})`,children:W(B,U,Q,0)},`cheval-${G}`)})]})}function ja(t){let r=2166136261;for(let s=0;s<t.length;s++)r^=t.charCodeAt(s),r=Math.imul(r,16777619)>>>0;return r>>>0}function wa(t,r){let s=ja(`${t}:${r}`)||2654435769;const n=()=>(s^=s<<13,s>>>=0,s^=s>>>17,s^=s<<5,s>>>=0,s/4294967296);return{dx:n(),dy:n()}}function ya(t,r,s){return`${t.replace(/[^a-zA-Z0-9_-]/g,"")}-tex-${r}-${s}`}const Na=t=>t.degradeId??`teinte-${t.id}`;function Ea({prefixe:t,panneaux:r,teintes:s,teintePour:n,echelleMm:i,boite:a,graine:o,sourceTuile:l=c=>`/photos/textures/${c}.webp`}){const c=new Map,u=[],x=new Map;for(const[p,b]of r.entries()){const h=(n==null?void 0:n(b))??s[b.famille];x.set(`${b.famille}:${b.nom}`,h);const v=h==null?void 0:h.texture;if(!v)continue;const E=ya(t,b.famille,p);c.set(`${b.famille}:${b.nom}`,E);const M=v.largeurMm*i,w=M*(v.hauteur/v.largeur),j=Math.max(1,a.largeur/M,a.hauteur/w),k=M*j,S=w*j,N=Math.max(0,k-a.largeur),A=Math.max(0,S-a.hauteur),{dx:y,dy:q}=wa(o,`${b.famille}:${b.nom}`);u.push(e.jsx("pattern",{id:E,patternUnits:"userSpaceOnUse",width:k,height:S,x:a.x-y*N,y:a.y-q*A,children:e.jsx("image",{href:l(v.fichier),width:k,height:S,preserveAspectRatio:"none"})},E))}const m=p=>p?`url(#${Na(p)})`:"none",d=(p,b)=>m(x.get(`${p}:${b}`)??s[p]),g=p=>b=>{const h=c.get(`${p}:${b}`);
1return h?`url(#${h})`:d(p,b)};return{defs:u,fills:{cuirFill:g("cuir"),doublureFill:g("doublure"),hautFill:g("haut"),fond:(p,b)=>c.has(`${p}:${b}`)?d(p,b):"none",grain:p=>{var b;return!((b=x.get(`cuir:${p}`)??s.cuir)!=null&&b.texture)},teinteHex:(p,b)=>{var h;return((h=x.get(`${p}:${b}`)??s[p])==null?void 0:h.hex)??null}}}}const bt={spacing:27,len:15,width:3.4,slant:20},ka={limpide:ps,authentique:_i,affirmee:Gi};function Ca(t){return[...t].filter(r=>r.type==="couture").sort((r,s)=>r.rang-s.rang).flatMap(r=>r.sousTraces)}function Sa(t){return[...t].filter(r=>r.type==="cheval").sort((r,s)=>r.rang-s.rang).flatMap(r=>r.sousTraces)}function hs({model:t,face:r,threadHex:s,teintes:n,cuir2:i=null,graineTexture:a,statique:o=!1,sourceTuile:l,onSewingChange:c,photo:u,stitch:x}){var O;const m=ka[t.id]??ps,d=((O=t.schema)==null?void 0:O[r])??null,g=f.useId(),p=d?[...d.calques].filter(P=>P.type==="cuir"||P.type==="doublure").sort((P,W)=>P.rang-W.rang).map(P=>({nom:P.nom,famille:P.type})):t.panneaux,b=(d==null?void 0:d.boite)??{x:0,y:0,largeur:1e3,hauteur:640},h=(d==null?void 0:d.echelleMm)??t.echelleMm,v=new Map(((d==null?void 0:d.calques)??[]).map(P=>[P.nom,P.groupe??1])),E=P=>P.famille==="cuir"&&i&&v.get(P.nom)===2?i:n[P.famille],{defs:M,fills:w}=Ea({prefixe:g,panneaux:p,teintes:n,teintePour:E,echelleMm:h,boite:b,graine:a,sourceTuile:l});let j=t.seamPath,k=x==null?void 0:x.spacing,S=x==null?void 0:x.len,N=x==null?void 0:x.width,A=x==null?void 0:x.slant;if(!u&&d){j=Ca(d.calques);const P=d.echelleMm?2.7*d.echelleMm:void 0;k=P?Math.max(P,bt.spacing*.6):void 0,S=d.echelleMm?1.8*d.echelleMm:void 0,N=d.echelleMm?.8*d.echelleMm:void 0,A=void 0}const y=Array.isArray(j)?j:[j],q=!u&&!!d&&!!h&&y.length>0&&y.every(P=>zt(P)!==null);return e.jsxs("g",{children:[e.jsx("defs",{children:M}),u?e.jsx("image",{href:u,x:0,y:0,width:1e3,height:640,preserveAspectRatio:"xMidYMid meet"}):d?e.jsx("g",{filter:"url(#atelierShadow)",children:e.jsx(aa,{schema:d,modeleId:t.id,face:r,echelleMm:h,cuirFill:w.cuirFill,doublureFill:w.doublureFill,fond:w.fond,grain:w.grain,teinteHex:w.teinteHex})}):e.jsxs(e.Fragment,{children:[e.jsx("g",{filter:"url(#atelierShadow)",children:e.jsx(m,{...w})}),t.slots.length>=3&&e.jsx(oa,{slots:t.slots})]}),q?e.jsx(va,{seamPath:y,chevalTraces:Sa(d.calques),colorHex:s,echelleMm:h,onSewingChange:c,statique:o},`sellier-${t.id}-${r}`):e.jsx(xs,{seamPath:j,colorHex:s,onSewingChange:c,statique:o,spacing:k,stitchLen:S,stitchWidth:N,slant:A},`${t.id}-${r}`)]})}function Aa({onHome:t}){return e.jsxs("button",{type:"button",onClick:t,"aria-label":"NÛMENT — retour à l'accueil",className:"group flex items-center gap-3 select-none outline-none",children:[e.jsx("img",{src:"/logo-blanc.png",alt:"NÛMENT",className:"h-9 w-auto opacity-90 transition-opacity duration-300 group-hover:opacity-100"}),e.jsx("span",{className:"ticket hidden pb-[2px] sm:inline",children:"Atelier · Maroquinerie"})]})}const Fa=[{value:"recto",label:"Recto"},{value:"verso",label:"Verso"}];function Ma({value:t,onChange:r}){return e.jsx("div",{className:"relative flex rounded-full border border-atelier-line/50 bg-black/25 p-1",children:Fa.map(s=>{const n=t===s.value;return e.jsxs("button",{type:"button",onClick:()=>r(s.value),"aria-pressed":n,className:"relative h-11 px-5 font-mono text-[11px] uppercase tracking-[0.14em] outline-none md:h-9 md:px-4",children:[n&&e.jsx(T.span,{layoutId:"face-pill",className:"absolute inset-0 rounded-full bg-gradient-to-b from-warm-amber to-warm-accent shadow-[0_4px_12px_-2px_rgba(201,128,63,0.6)]",transition:{type:"spring",stiffness:480,damping:38}}),e.jsx("span",{className:`relative z-10 transition-colors duration-200 ${n?"text-atelier-deep":"text-warm-muted"}`,children:s.label})]},s.value)})})}function La({model:t,face:r,onFace:s,threadHex:n,teintes:i,cuir2:a=null,graineTexture:o,onSewingChange:l,options:c,modelPicker:u,onHome:x,photo:m,stitch:d}){var p,b;J();const g=!!((p=t.schema)!=null&&p.recto&&((b=t.schema)!=null&&b.verso));return e.jsxs("section",{className:"relative flex shrink-0 flex-col overflow-hidden md:h-full md:flex-1 md:shrink",children:[e.jsxs("div",{"aria-hidden":!0,
1className:"pointer-events-none absolute inset-0",children:[e.jsx("div",{className:"absolute inset-0",style:{background:"radial-gradient(120% 88% at 50% 36%, rgba(240,201,138,0.17), rgba(43,54,45,0) 56%)"}}),e.jsx("div",{className:"absolute inset-0 shadow-[inset_0_0_110px_40px_rgba(8,4,1,0.78)] md:shadow-[inset_0_0_280px_100px_rgba(8,4,1,0.78)]"})]}),e.jsxs("header",{className:"relative z-10 flex items-start justify-between px-6 pb-2 pt-3 md:px-10 md:pb-0 md:pt-8",children:[e.jsx(Aa,{onHome:x}),g&&e.jsx(Ma,{value:r,onChange:s})]}),u,e.jsx("div",{className:"relative z-10 flex items-center justify-center py-1 md:flex-1 md:py-0",children:e.jsxs("svg",{viewBox:Se,className:"relative w-[92%] overflow-visible md:w-[min(88%,920px)]",children:[e.jsx(ds,{}),e.jsx(Ee,{initial:!1,mode:"sync",children:e.jsx(T.g,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.45,ease:[.22,1,.36,1]},children:e.jsx(hs,{model:t,face:r,threadHex:n,teintes:i,cuir2:a,graineTexture:o,onSewingChange:l,photo:m,stitch:d})},t.id)})]})}),e.jsx(ue,{className:"mx-6 md:hidden"}),e.jsx("div",{className:"relative z-10 px-6 pb-0 md:px-10 md:pb-9",children:c})]})}const qa={limpide:"#A85B2B",authentique:"#322A23",affirmee:"#9C6C39"};function Da({model:t,index:r,active:s,threadHex:n,onClick:i}){J();const a=qa[t.id]??"#A85B2B";return e.jsxs("button",{type:"button",onClick:i,className:`group relative flex w-full items-center gap-4 roun
1ded-xl px-4 py-3 text-left transition-colors duration-300 ${s?"bg-white/[0.06]":"hover:bg-white/[0.03]"}`,children:[s&&e.jsx(T.span,{layoutId:"model-active-bar",className:"absolute left-0 top-1/2 h-7 w-[3px] -translate-y-1/2 rounded-full bg-warm-amber",transition:{type:"spring",stiffness:480,damping:40}}),e.jsx("svg",{viewBox:"0 0 64 46",className:"h-[34px] w-[48px] shrink-0",children:t.categorieId==="ceinture"?e.jsxs(e.Fragment,{children:[e.jsx("rect",{x:"18",y:"16",width:"43",height:"14",rx:"7",fill:a,stroke:"#000",strokeOpacity:"0.35"}),e.jsx("rect",{x:"4",y:"12",width:"16",height:"22",rx:"4",fill:"none",stroke:"#B89154",strokeWidth:"3.5"}),e.jsx("path",{d:"M24 23 H56",fill:"none",stroke:n,strokeOpacity:s?.95:.6,strokeWidth:"1.5",strokeDasharray:"2 3.2",strokeLinecap:"round"})]}):e.jsxs(e.Fragment,{children:[e.jsx("rect",{x:"3",y:"4",width:"58",height:"38",rx:"8",fill:a,stroke:"#000",strokeOpacity:"0.35"}),e.jsx("rect",{x:"9",y:"10",width:"46",height:"26",rx:"5",fill:"none",stroke:n,strokeOpacity:s?.95:.6,strokeWidth:"1.5",strokeDasharray:"2 3.2",strokeLinecap:"round"})]})}),e.jsxs("span",{className:"flex min-w-0 flex-1 flex-col",children:[e.jsx("span",{className:`display text-[17px] leading-tight transition-colors duration-300 ${s?"text-[#F4E9D7]":"text-warm-muted group-hover:text-[#E4D6C0]"}`,children:Ze(t.categorieId)}),e.jsx("span",{className:"ticket mt-1",children:t.nom})]}),e.jsxs("span",{className:"font-mono text-xs text-warm-muted",children:[We(t.prixCentimes)," €"]})]})}function Pa({className:t=""}){return e.jsxs("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":!0,className:t,children:[e.jsx("path",{d:"M9.5 1.5H4.2A1.2 1.2 0 0 0 3 2.7v10.6a1.2 1.2 0 0 0 1.2 1.2h7.6a1.2 1.2 0 0 0 1.2-1.2V5.2L9.5 1.5Z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),e.jsx("path",{d:"M9.4 1.7v3.6h3.5",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"})]})}function fs({price:t,onAcheter:r,onFiche:s,ficheEnCours:n=!1,erreurFiche:i=null,className:a=""}){return e.jsx("div",{className:a,children:e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-x-3 gap-y-0 md:gap-x-4",children:[e.jsx(Gr,{centimes:t,className:"order-1 text-[40px] text-[#F4E9D7]"}),s&&e.jsxs("button",{type:"button",onClick:s,disabled:n,title:"Fabrique la fiche en PDF, sur une page",className:"order-2 flex min-h-[44px] shrink-0 items-center justify-center gap-2 rounded-full border border-atelier-line/50 px-3 font-sans text-[12px] text-warm-muted transition-colors duration-300 hover:border-warm-amber/50 hover:text-[#F4E9D7] disabled:cursor-progress disabled:opacity-60 disabled:hover:border-atelier-line/50 disabled:hover:text-warm-muted md:order-3 md:mt-3 md:min-h-[40px] md:w-full md:px-0",children:[e.jsx(Pa,{className:"h-3.5 w-3.5 shrink-0"}),e.jsx("span",{className:"md:hidden",children:n?"Préparation…":"Fiche PDF"}),e.jsx("span",{className:"hidden md:inline",children:n?"Préparation de la fiche…":"Emporter la fiche PDF"})]}),e.jsxs("a",{href:"/#contact",onClick:I(r),className:"group order-3 flex min-h-[44px] shrink-0 items-center gap-2 rounded-full bg-warm-amber px-5 font-sans text-[13px] font-semibold text-atelier-deep transition-colors duration-300 hover:bg-warm-glow md:order-2",children:["Acheter",e.jsx(z,{className:"h-3.5 w-3.5 transition-transform duration-300 group-hover:translate-x-1"})]}),i&&e.jsx("p",{role:"alert",className:"order-4 mt-2 w-full text-center font-sans text-[11px] text-warm-amber",children:i})]})})}function $a({modeles:t,modelId:r,onSelect:s,model:n,threadHex:i,price:a,onFiche:o,ficheEnCours:l,erreurFiche:c,onAcheter:u}){return J(),e.jsxs("aside",{className:"relative z-10 hidden h-full shrink-0 flex-col border-l border-atelier-line/40 bg-atelier-deep/50 backdrop-blur-md md:flex md:w-[clamp(296px,20%,360px)]",children:[e.jsxs("div",{className:"px-7 pt-8",children:[e.jsx("span",{className:"ticket",children:"La collection"}),e.jsx("h2",{className:"display mt-1 text-2xl text-[#F2E6D2]",children:"Plusieurs pièces"})]}),e.jsx("nav",{className:"mt-5 flex flex-col gap-1 px-3",children:t.map((x,m)=>e.jsx(Da,{model:x,index:m,active:x.id===r,threadHex:i,onClick:()=>s(x.id)},x.id))}),e.jsx("div",{className:"hairline mx-7 my-6"}),e.jsx("div",{className:"flex-1 overflow-hidden px-7",children:e.jsx(Ee,{mode:"wait",children:e.jsxs(T.div,{initial:{opacity:0,y:12}
1,animate:{opacity:1,y:0},exit:{opacity:0,y:-12},transition:{duration:.35,ease:[.22,1,.36,1]},children:[e.jsx("span",{className:"ticket",children:n.nom}),e.jsx("h3",{className:"display mt-2 text-[30px] leading-none text-[#F4E9D7]",children:Ze(n.categorieId)}),e.jsx("p",{className:"mt-4 text-[13px] leading-relaxed text-warm-muted",children:n.description})]},n.id)})}),e.jsxs("div",{className:"px-7 pb-8",children:[e.jsx("div",{className:"hairline mb-5"}),e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx("span",{className:"ticket",children:"Cousu main · point sellier"}),e.jsx("span",{className:"font-sans text-[11px] text-warm-faint",children:"Façonné à la commande"})]}),e.jsx(fs,{price:a,onAcheter:u,onFiche:o,ficheEnCours:l,erreurFiche:c,className:"mt-4"})]})]})}const Ta=12;function Ra(t){return t.texture?{backgroundColor:t.hex,backgroundImage:`url(/photos/textures/${t.texture.fichier}.webp)`,backgroundSize:`${t.texture.largeurMm/Ta*100}%`,backgroundPosition:"center"}:{background:t.hex}}function Re({items:t,label:r,selectedId:s,onSelect:n,disabled:i,compact:a,avecAucun:o}){const l=a?"h-11 w-11 md:h-7 md:w-7":"h-9 w-9";return e.jsxs("div",{className:`flex w-full items-center ${a?"gap-3":"gap-4"} overflow-x-auto px-1 py-1.5 transition-opacity duration-300 [-webkit-overflow-scrolling:touch] [scrollbar-width:none] md:overflow-x-visible md:px-0 md:py-0 [&::-webkit-scrollbar]:hidden ${i?"pointer-events-none opacity-50":""}`,children:[o&&e.jsxs("button",{type:"button",onClick:()=>n(null),"aria-pressed":s===null,"aria-label":`${r} aucun`,className:"group flex shrink-0 flex-col items-center gap-2 outline-none",children:[e.jsx("span",{className:`relative block ${l} rounded-full border border-dashed border-warm-faint/70 transition-transform duration-300 group-hover:scale-110 group-focus-visible:scale-110`,style:{boxShadow:s===null?"0 0 0 2px #2B362D, 0 0 0 4px #B79878":void 0},children:e.jsx("span",{"aria-hidden":!0,className:"absolute left-1/2 top-1/2 h-px w-[70%] -translate-x-1/2 -translate-y-1/2 rotate-45 bg-warm-faint/70"})}),!a&&e.jsx("span",{className:"ticket",children:"Aucun"})]}),t.map(c=>{const u=c.id===s;return e.jsxs("button",{type:"button",onClick:()=>n(c.id),"aria-pressed":u,"aria-label":`${r} ${c.nom}`,className:"group flex shrink-0 flex-col items-center gap-2 outline-none",children:[e.jsx("span",{className:`relative block ${l} rounded-full transition-transform duration-300 group-hover:scale-110 group-focus-visible:scale-110`,style:{...Ra(c),boxShadow:u?`0 0 0 2px #2B362D, 0 0 0 4px ${c.hex}, inset 0 2px 4px rgba(255,255,255,0.35), inset 0 -3px 6px rgba(0,0,0,0.35)`:"inset 0 2px 4px rgba(255,255,255,0.3), inset 0 -3px 6px rgba(0,0,0,0.4)"}}),!a&&e.jsx("span",{className:`ticket transition-colors duration-300 ${u?"!text-[#F2E6D2]":""}`,children:c.nom})]},c.id)})]})}function vr(t,r){var n,i;return[(n=t.schema)==null?void 0:n.recto,(i=t.schema)==null?void 0:i.verso].some(a=>a==null?void 0:a.calques.some(o=>o.type===r))}function gs(t){const r=!!t.schema;return{cuir:!0,doublure:r?vr(t,"doublure"):t.options.doublure,haut:r?!1:t.options.haut,fil:r?vr(t,"couture"):!0}}function Ia(t){var r,s;return!!((r=t.schema)!=null&&r.recto&&((s=t.schema)!=null&&s.verso))}function Ie({label:t,valeur:r,children:s}){return e.jsxs("div",{className:"flex flex-col items-start gap-2 py-1.5 md:gap-3 md:py-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"ticket",children:t}),r]}),s]})}function Oa({model:t,fils:r,threadId:s,onThread:n,cuirs:i,cuirId:a,onCuir:o,cuirs2:l,cuir2Id:c,onCuir2:u,supplementCuir2:x,doublures:m,doublureId:d,onDoublure:g,hauts:p,hautId:b,onHaut:h,sewing:v,disableLeather:E}){var y,q;const M=(O,P)=>{var W;return(W=O.find(D=>D.id===P))==null?void 0:W.nom},w=O=>e.jsxs("span",{className:"font-mono text-[11px] text-warm-muted",children:["· ",O]}),{doublure:j,haut:k,fil:S}=gs(t),N=[{cle:"cuir",noeud:e.jsx(Ie,{label:"Cuir",valeur:w(M(i,a)),children:e.jsx(Re,{items:i,label:"Cuir",selectedId:a,onSelect:o,disabled:E,compact:!0})})}];return[(y=t.schema)==null?void 0:y.recto,(q=t.schema)==null?void 0:q.verso].some(O=>O==null?void 0:O.calques.some(P=>P.type==="cuir"&&P.groupe===2))&&l.length>0&&N.push({cle:"cuir2",noeud:e.jsx(Ie,{label:"Second cuir",valeur:e.jsxs(e.Fragment,{children:[w(c?M(l,c):"Aucun"),e.jsx(Ee,{children:c!==null&&x>0&&e.jsxs(T.span,{initial:{opacity:0,x:-6}
1,animate:{opacity:1,x:0},exit:{opacity:0,x:-6},transition:{duration:.3},className:"font-mono text-[11px] text-warm-amber",children:["+ ",We(x)," €"]},"supp-cuir2")})]}),children:e.jsx(Re,{items:l,label:"Second cuir",selectedId:c,onSelect:u,disabled:E,compact:!0,avecAucun:!0})})}),k&&N.push({cle:"haut",noeud:e.jsx(Ie,{label:"Haut",valeur:w(M(p,b)),children:e.jsx(Re,{items:p,label:"Haut",selectedId:b,onSelect:h,disabled:E,compact:!0})})}),j&&N.push({cle:"doublure",noeud:e.jsx(Ie,{label:"Doublure",valeur:w(M(m,d)),children:e.jsx(Re,{items:m,label:"Doublure",selectedId:d,onSelect:g,disabled:E,compact:!0})})}),S&&N.push({cle:"fil",noeud:e.jsx(Ie,{label:"Fil",valeur:w(M(r,s)),children:e.jsx(Re,{items:r,label:"Fil",selectedId:s,onSelect:n,disabled:v,compact:!0})})}),e.jsx("div",{className:"mx-auto flex w-full max-w-[1180px] flex-col divide-y divide-atelier-line/20 rounded-2xl border border-atelier-line/30 bg-black/20 px-4 py-1 shadow-rim backdrop-blur-sm md:flex-row md:items-end md:justify-between md:gap-6 md:divide-y-0 md:px-8 md:py-5",children:N.map((O,P)=>e.jsxs(f.Fragment,{children:[P>0&&e.jsx("div",{className:"hidden mb-1 h-14 w-px bg-atelier-line/40 md:block"}),O.noeud]},O.cle))})}function Ba({modeles:t,modelId:r,onSelect:s}){return t.length<=1?null:e.jsx("nav",{"aria-label":"Modèles",className:"relative z-10 flex gap-2 overflow-x-auto px-6 pb-3 [-webkit-overflow-scrolling:touch] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden md:hidden",children:t.map(n=>e.jsx("button",{type:"button",onClick:()=>s(n.id),"aria-current":n.id===r?"page":void 0,className:`min-h-[44px] shrink-0 rounded-full border px-4 font-sans text-sm transition-colors ${n.id===r?"border-warm-amber bg-warm-amber/10 text-[#F4E9D7]":"border-atelier-line/40 text-warm-muted hover:text-[#F4E9D7]"}`,children:n.nom},n.id))})}function jr(t,r,s){const n=String(t??"").split(/\s+/).filter(Boolean);if(!n.length)return[];const i=[];let a=n[0];for(const o of n.slice(1)){const l=`${a} ${o}`;s(l)<=r?a=l:(i.push(a),a=o)}return i.push(a),i}const Ua=900,wr=100,ve={largeur:210,hauteur:297},_t=14,Y=_t,ye=ve.largeur-_t,Pt=ye-Y,yr=2.9,Be=2.25,Nr=3.45,Er=3.05,kr=7.95,bs="#9A6224",$t=.45,za=.15,Ue=Y+46,_a=ye-Ue,Va=105,[,,Cr,Ga]=Se.split(" ").map(Number);function Ha(t){const[r,s]=f.useState({}),[n,i]=f.useState(!1),a=t.join("|");return f.useEffect(()=>{let o=!1;const l=[...new Set(a.split("|").filter(Boolean))];if(!l.length){i(!0);return}return Promise.all(l.map(c=>new Promise(u=>{const x=new Image;x.onload=()=>{const m=Math.min(1,Ua/x.naturalWidth),d=document.createElement("canvas");d.width=Math.round(x.naturalWidth*m),d.height=Math.round(x.naturalHeight*m);const g=d.getContext("2d");if(!g)return u(null);g.drawImage(x,0,0,d.width,d.height),u([c,d.toDataURL("image/jpeg",.86)])},x.onerror=()=>u(null),x.src=`/photos/textures/${c}.webp`}))).then(c=>{o||(s(Object.fromEntries(c.filter(u=>u!==null))),i(!0))}),()=>{o=!0}},[a]),{tuiles:r,pret:n}}function Wa(){const[t,r]=f.useState(!1);f.useEffect(()=>{var a;let i=!0;return(a=document.fonts)==null||a.ready.then(()=>{i&&r(!0)}),()=>{i=!1}},[]);const s=f.useMemo(()=>typeof document>"u"?null:document.createElement("canvas").getContext("2d"),[]);return{mesurer:f.useCallback((i,a,o)=>s?(s.font=`${wr}px ${o}`,s.measureText(i).width/wr*a):i.length*a*.5,[s]),pret:t}}function it({x:t,y:r,children:s,taille:n=Be}){return e.jsx("text",{x:t,y:r,fontFamily:"Spline Sans Mono, monospace",fontSize:n,letterSpacing:n*.28,fill:"#000",fillOpacity:$t,children:s})}function Sr({y:t,x:r=Y,x2:s=ye}){return e.jsx("line",{x1:r,y1:t,x2:s,y2:t,stroke:"#000",strokeOpacity:za,strokeWidth:.2})}const Za=18.5,Et=8.4,Ar=1.6,Ka=1.05,Fr=.14;function Xa({y:t}){const r=[];for(let s=Y;s<=ye-Et;s+=Za){const n=(s+Et/2-Y)/Pt,i=Math.min(1,n/Fr,(1-n)/Fr);r.push(e.jsx("line",{x1:s,y1:t+Ar/2,x2:s+Et,y2:t-Ar/2,strokeOpacity:i},s))}return e.jsxs("g",{children:[e.jsx("line",{x1:Y,y1:t,x2:ye,y2:t,stroke:"#000",strokeOpacity:.18,strokeWidth:.15}),e.jsx("g",{stroke:bs,strokeWidth:Ka,strokeLinecap:"round",children:r})]})}function Ya({model:t,face:r,teintes:s,cuir2:n=null,fil:i,graineTexture:a,prixCentimes:o,stitch:l,svgRef:c,onPret:u}){var Pe,$e;const{tuiles:x,pret:m}=Ha([s.cuir,n,s.doublure,s.haut].map($=>{var _;return(_=$==null?void 0:$.texture)==null?void 0:_.fichier}).filter($=>
1!!$)),{mesurer:d,pret:g}=Wa(),p=m&&g;f.useEffect(()=>{p&&(u==null||u())},[p]);const b=gs(t),h=n?[...new Set([(Pe=t.schema)==null?void 0:Pe.recto,($e=t.schema)==null?void 0:$e.verso].flatMap($=>($==null?void 0:$.calques)??[]).filter($=>$.type==="cuir"&&$.groupe===2).map($=>$.nom))]:[],v=new Date().toLocaleDateString("fr-FR",{day:"numeric",month:"long",year:"numeric"}),E=Ia(t)?["recto","verso"]:[r],M=8,w=E.length===2?(Pt-M)/2:Pt,j=w*Ga/Cr,k=w/Cr,S=18,N=27,A=29.5,y=A+j,q=ve.hauteur-_t-2.5,O=q-3.4,P=[],W=[],D=($,_,se)=>W.push({champ:$,valeur:_,hex:se});if(D(n?"Premier cuir":"Cuir",s.cuir.nom,s.cuir.hex),n){const $=h.length?`${n.nom} — ${h.join(", ")}`:n.nom;D("Second cuir",$,n.hex)}b.doublure&&D("Doublure",s.doublure.nom,s.doublure.hex),b.haut&&D("Bande haute",s.haut.nom,s.haut.hex),b.fil&&D("Fil",i.nom,i.hex);const G=$=>d($,Nr,'"Hanken Grotesk", sans-serif'),B=W.map(({champ:$,valeur:_,hex:se})=>{const pe=se?4.2:0,ge=jr(_,_a-pe,G);return{champ:$,hex:se,decalagePastille:pe,morceaux:ge,hauteur:3.8+ge.length*4.7}}),U=jr(t.description,Va,$=>d($,Er,'"Hanken Grotesk", sans-serif')),Q=13.6,ee=B.reduce(($,_)=>$+_.hauteur,0),de=U.length?8+U.length*4.95:0,Z=Q+5+ee+de,X=Math.max(y+12,O-13-Z),te=X-9,le=X+4.2,K=le+8.6;let re=K+5;for(const{champ:$,hex:_,decalagePastille:se,morceaux:pe,hauteur:ge}of B){const ke=re+5.3;P.push(e.jsxs("g",{children:[e.jsx(it,{x:Y,y:ke,children:$.toUpperCase()}),_&&e.jsxs(e.Fragment,{children:[e.jsx("circle",{cx:Ue+1.2,cy:ke-1.1,r:1.2,fill:_}),e.jsx("circle",{cx:Ue+1.2,cy:ke-1.1,r:1.2,fill:"none",stroke:"#000",strokeOpacity:.25,strokeWidth:.15})]}),e.jsx("text",{x:Ue+se,y:ke,fontFamily:'"Hanken Grotesk", sans-serif',fontSize:Nr,fill:"#000",children:pe.map((Ye,Te)=>e.jsx("tspan",{x:Ue+se,dy:Te===0?0:4.7,children:Ye},Te))}),e.jsx(Sr,{y:re+ge})]},$)),re+=ge}const Xe=re+8;return e.jsx("div",{className:"fiche-impression",children:e.jsxs("svg",{ref:c,viewBox:`0 0 ${ve.largeur} ${ve.hauteur}`,width:`${ve.largeur}mm`,height:`${ve.hauteur}mm`,className:"block",children:[e.jsx(ds,{}),e.jsx("rect",{width:ve.largeur,height:ve.hauteur,fill:"#FFFFFF"}),e.jsx("text",{x:Y,y:S,fontFamily:"Spline Sans Mono, monospace",fontSize:yr,letterSpacing:yr*.42,fill:"#000",children:"NÛMENT"}),e.jsx("text",{x:ye,y:S,textAnchor:"end",fontFamily:"Spline Sans Mono, monospace",fontSize:Be,letterSpacing:Be*.28,fill:"#000",fillOpacity:$t,children:"Atelier de maroquinerie · Cousu main"}),E.map(($,_)=>{const se=Y+_*(w+M);return e.jsxs("g",{children:[E.length===2&&e.jsx(it,{x:se,y:N,children:$.toUpperCase()}),e.jsx("g",{transform:`translate(${se} ${A}) scale(${k})`,children:e.jsx(hs,{model:t,face:$,threadHex:i.hex,teintes:s,cuir2:n,graineTexture:a,statique:!0,sourceTuile:pe=>x[pe]??`/photos/textures/${pe}.webp`,stitch:l})})]},$)}),e.jsx(Xa,{y:te}),e.jsx(it,{x:Y,y:le,children:t.nom}),e.jsx("text",{x:Y,y:K,fontFamily:"Fraunces, serif",fontWeight:300,fontSize:kr,fill:"#000",children:Ze(t.categorieId)}),e.jsxs("text",{x:ye,y:K,textAnchor:"end",fontFamily:"Spline Sans Mono, monospace",fontSize:kr,fill:bs,children:[We(o)," €"]}),P,e.jsx("text",{x:Y,y:Xe,fontFamily:'"Hanken Grotesk", sans-serif',fontSize:Er,fill:"#000",fillOpacity:.7,children:U.map(($,_)=>e.jsx("tspan",{x:Y,dy:_===0?0:4.95,children:$},_))}),e.jsx(Sr,{y:O}),e.jsxs(it,{x:Y,y:q,children:["Établie le ",v]}),e.jsx("text",{x:ye,y:q,textAnchor:"end",fontFamily:"Spline Sans Mono, monospace",fontSize:Be,letterSpacing:Be*.28,fill:"#000",fillOpacity:$t,children:"nument.fr"})]})})}const Ja=72/25.4,kt=new TextEncoder,Mr=t=>(t*Ja).toFixed(2);function Qa({jpeg:t,largeurPx:r,hauteurPx:s,largeurMm:n,hauteurMm:i}){const a=Mr(n),o=Mr(i),l=`q ${a} 0 0 ${o} 0 0 cm /Im0 Do Q
2`,c=["<< /Type /Catalog /Pages 2 0 R >>","<< /Type /Pages /Kids [3 0 R] /Count 1 >>",`<< /Type /Page /Parent 2 0 R /MediaBox [0 0 ${a} ${o}] /Resources << /XObject << /Im0 4 0 R >> >> /Contents 5 0 R >>`,{dictionnaire:`<< /Type /XObject /Subtype /Image /Width ${r} /Height ${s} /ColorSpace /DeviceRGB /BitsPerComponent 8 /Filter /DCTDecode /Length ${t.length} >>`,flux:t},{dictionnaire:`<< /Length ${kt.encode(l).length} >>`,flux:kt.encode(l)}],u=[];let x=0;const m=h=>{const v=typeof h=="string"?kt.encode(h):h;u.push(v),x+=v.length};m(`%PDF-1.4
3`),m(new Uint8Array([37,226,227,207,211,10]));const d=[];
3c.forEach((h,v)=>{d.push(x),m(`${v+1} 0 obj
4`),typeof h=="string"?m(`${h}
5endobj
6`):(m(`${h.dictionnaire}
7stream
8`),m(h.flux),m(`
9endstream
10endobj
11`))});const g=x;m(`xref
12`),m(`0 ${c.length+1}
13`),m(`0000000000 65535 f 
14`);for(const h of d)m(`${String(h).padStart(10,"0")} 00000 n 
15`);m(`trailer
16<< /Size ${c.length+1} /Root 1 0 R >>
17`),m(`startxref
18${g}
19%%EOF
20`);const p=new Uint8Array(x);let b=0;for(const h of u)p.set(h,b),b+=h.length;return p}const vs=250,js=210,ws=297,dt=Math.round(js/25.4*vs),pt=Math.round(ws/25.4*vs),eo=.9,Lr="http://www.w3.org/2000/svg",to=[{famille:"Fraunces",graisse:300,chemin:"/polices/fraunces-300-latin.woff2"},{famille:"Hanken Grotesk",graisse:400,chemin:"/polices/hanken-grotesk-400-latin.woff2"},{famille:"Spline Sans Mono",graisse:400,chemin:"/polices/spline-sans-mono-400-latin.woff2"}];let Oe=null;function ro(t){const r=new Uint8Array(t);let s="";for(let n=0;n<r.length;n+=8192)s+=String.fromCharCode(...r.subarray(n,n+8192));return btoa(s)}async function so(){return Oe||(Oe=Promise.all(to.map(async({famille:t,graisse:r,chemin:s})=>{const n=await fetch(s);if(!n.ok)throw new Error(`police introuvable : ${s}`);const i=ro(await n.arrayBuffer());return`@font-face{font-family:'${t}';font-style:normal;font-weight:${r};src:url(data:font/woff2;base64,${i}) format('woff2')}`})).then(t=>t.join("")),Oe.catch(()=>{Oe=null})),Oe}function no(t,r=new Date){const s=[r.getFullYear(),String(r.getMonth()+1).padStart(2,"0"),String(r.getDate()).padStart(2,"0")].join("-"),n=un(t);return`nument${n?`-${n}`:""}-${s}.pdf`}async function io(t){const r=t.cloneNode(!0);r.setAttribute("xmlns",Lr),r.setAttribute("xmlns:xlink","http://www.w3.org/1999/xlink"),r.setAttribute("width",String(dt)),r.setAttribute("height",String(pt)),r.removeAttribute("class");const s=document.createElementNS(Lr,"style");return s.textContent=await so(),r.insertBefore(s,r.firstChild),new XMLSerializer().serializeToString(r)}async function ao(t){const r=URL.createObjectURL(new Blob([t],{type:"image/svg+xml;charset=utf-8"}));try{const s=new Image;await new Promise((o,l)=>{s.onload=()=>o(),s.onerror=()=>l(new Error("la feuille n’a pas pu être rendue en image")),s.src=r});const n=document.createElement("canvas");n.width=dt,n.height=pt;const i=n.getContext("2d");if(!i)throw new Error("canevas indisponible");i.drawImage(s,0,0,dt,pt);const a=await new Promise((o,l)=>{n.toBlob(c=>c?o(c):l(new Error("la capture a échoué")),"image/jpeg",eo)});return new Uint8Array(await a.arrayBuffer())}finally{URL.revokeObjectURL(r)}}function oo(t,r){const s=URL.createObjectURL(new Blob([t],{type:"application/pdf"})),n=document.createElement("a");n.href=s,n.download=r,document.body.appendChild(n),n.click(),n.remove(),setTimeout(()=>URL.revokeObjectURL(s),1e4)}async function lo(t,r){const s=await ao(await io(t)),n=Qa({jpeg:s,largeurPx:dt,hauteurPx:pt,largeurMm:js,hauteurMm:ws});oo(n,r)}const ys="nument-studio-v1",Ns=f.createContext(null);function co(){try{const t=localStorage.getItem(ys);return t?JSON.parse(t):{}}catch{return{}}}function uo({children:t}){const[r,s]=f.useState(co),[n,i]=f.useState(null),a=f.useRef(r);a.current=r,f.useEffect(()=>{const g=setTimeout(()=>{try{localStorage.setItem(ys,JSON.stringify(r)),i(null)}catch{i("Sauvegarde impossible (espace navigateur saturé). Essayez une image plus légère.")}},250);return()=>clearTimeout(g)},[r]);const o=f.useCallback(g=>a.current[g]??{},[]),l=f.useCallback((g,p)=>{s(b=>({...b,[g]:{...b[g],...p}}
20))},[]),c=f.useCallback((g,p)=>l(g,{photo:p}),[l]),u=f.useCallback((g,p)=>l(g,{seamPath:p}),[l]),x=f.useCallback((g,p)=>{s(b=>{var v;const h=((v=b[g])==null?void 0:v.stitch)??bt;return{...b,[g]:{...b[g],stitch:{...h,...p}}}})},[]),m=f.useCallback(g=>{s(p=>{const b={...p};return delete b[g],b})},[]),d=f.useMemo(()=>({configs:r,get:o,setPhoto:c,setSeamPath:u,setStitch:x,resetModel:m,error:n}),[r,o,c,u,x,m,n]);return e.jsx(Ns.Provider,{value:d,children:t})}function Es(){const t=f.useContext(Ns);if(!t)throw new Error("useStudio doit être utilisé dans <StudioProvider>");return t}function po(t){const{configs:r}=Es();return r[t]??{}}function Ct(t,r){if(!r)return t;const s=t.filter(n=>r.includes(n.id));return s.length>0?s:t}function qr(t){var r,s;return(r=t.schema)!=null&&r.recto?"recto":(s=t.schema)!=null&&s.verso?"verso":"recto"}function mo({onHome:t,initialModelId:r,onModelChange:s}){var ke,Ye,Te,Xt;const n=J(),i=n.fils,a=n.teintes.cuir,o=n.teintes.doublure,l=n.teintes.haut,c=n.modeles.filter(L=>L.personnalisable).map(L=>{const V=Xr(L.id);return V?{...L,...V}:{...L,viewBox:Se,leatherFill:"",seamPath:"",slots:[],echelleMm:1,panneaux:[]}}),[u,x]=f.useState(()=>{var L;return((L=c.find(V=>V.id===r))==null?void 0:L.id)??c[0].id}),[m,d]=f.useState(()=>qr(c.find(L=>L.id===r)??c[0])),g=L=>{x(L),d(qr(c.find(V=>V.id===L)??c[0])),s==null||s(L)},p=c.find(L=>L.id===u)??c[0],b=Ct(a,(ke=p.palette)==null?void 0:ke.cuir),h=(Ye=p.palette)==null?void 0:Ye.cuir2,v=h?a.filter(L=>h.includes(L.id)):a,E=Ct(o,(Te=p.palette)==null?void 0:Te.doublure),M=Ct(i,(Xt=p.palette)==null?void 0:Xt.fils),w=l,[j,k]=f.useState(M[0].id),[S,N]=f.useState(b[0].id),[A,y]=f.useState(null),[q,O]=f.useState(E[0].id),[P,W]=f.useState(w[0].id),[D,G]=f.useState(0),B=L=>V=>{L(V),G(vt=>vt+1)},[U,Q]=f.useState(!1),ee=f.useRef(0),de=f.useCallback(L=>{ee.current=Math.max(0,ee.current+(L?1:-1)),Q(ee.current>0)},[]);f.useEffect(()=>{N(L=>b.some(V=>V.id===L)?L:b[0].id),y(L=>L!==null&&v.some(V=>V.id===L)?L:null),O(L=>E.some(V=>V.id===L)?L:E[0].id),W(L=>w.some(V=>V.id===L)?L:w[0].id),k(L=>M.some(V=>V.id===L)?L:M[0].id)},[u]);const Z=M.find(L=>L.id===j)??M[0],ie=b.find(L=>L.id===S)??b[0],he=E.find(L=>L.id===q)??E[0],X=w.find(L=>L.id===P)??w[0],te=A===null?null:v.find(L=>L.id===A)??null,le=ni(p,te!==null),K=po(u),re=K.seamPath?{...p,seamPath:K.seamPath}:p,Xe=K.stitch??bt,Pe=()=>t("contact"),$e=f.useRef(null),[$,_]=f.useState("repos"),[se,pe]=f.useState(null),ge=()=>{pe(null),_("montee")};return f.useEffect(()=>{if($!=="montee")return;const L=setTimeout(()=>_("export"),3e3);return()=>clearTimeout(L)},[$]),f.useEffect(()=>{if($!=="export")return;let L=!0;const V=$e.current;if(!V){_("repos");return}const vt=requestAnimationFrame(()=>{lo(V,no(p.nom)).catch(Ms=>{console.error("export de la fiche",Ms),L&&pe("La fiche n’a pas pu être fabriquée. Réessayez.")}).finally(()=>{L&&_("repos")})});return()=>{L=!1,cancelAnimationFrame(vt)}},[$,p.nom]),e.jsxs("div",{className:"relative flex h-dvh w-full flex-col overflow-x-hidden overflow-y-auto bg-atelier-bg text-[#EFE3D2] md:w-screen md:flex-row md:overflow-y-hidden",children:[e.jsx(La,{model:re,face:m,onFace:d,threadHex:Z.hex,teintes:{cuir:ie,doublure:he,haut:X},cuir2:te,graineTexture:D,onSewingChange:de,modelPicker:e.jsx(Ba,{modeles:c,modelId:u,onSelect:g}),onHome:()=>t(),photo:K.photo,stitch:Xe,options:e.jsx(Oa,{model:p,fils:M,threadId:j,onThread:k,cuirs:b,cuirId:S,onCuir:B(N),cuirs2:v,cuir2Id:A,onCuir2:B(y),supplementCuir2:p.supplementCuir2Centimes,doublures:E,doublureId:q,onDoublure:B(O),hauts:w,hautId:P,onHaut:B(W),sewing:U,disableLeather:!!K.photo})}),e.jsxs("div",{className:"shrink-0 px-6 pb-3 md:hidden",children:[e.jsx("span",{className:"ticket",children:p.nom}),e.jsx("h3",{className:"display mt-1 text-[20px] leading-none text-[#F4E9D7]",children:Ze(p.categorieId)}),e.jsx("p",{className:"mt-1.5 text-[13px] leading-snug text-warm-muted",children:p.description})]}),e.jsx("div",{className:"sticky bottom-0 z-20 mt-auto shrink-0 border-t border-atelier-line/40 bg-atelier-deep/90 px-6 py-2.5 backdrop-blur-md md:hidden",children:e.jsx(fs,{price:le,onAcheter:Pe,onFiche:ge,ficheEnCours:$!=="repos",erreurFiche:se})}),e.jsx($a,{modeles:c,modelId:u,onSelect:g,model:p,threadHex:Z.hex,price:le,onFiche:ge,ficheEnCours:$!=="repos",erreurFiche:se,onAcheter:Pe}),$!=="repos"&&e.jsx(Ya,{model:re,face:m,teintes:{cuir:ie,doublure:he,haut:X},cuir2:te,fil:Z,graineTexture:D,prixCentimes:le,stitch:Xe,svgRef:$e,onPret:()=>_("export")})]})}const xo=[.22,1,.36,1],ho="https://www.instagram.com/numentcuir/",fo=[{num:"01",titre:"Sélection du cuir",ticket:"Pleine fleur · gratté · exotique",paragraphes:["Tout part de la peau. Je ne retiens que des cuirs haut de gamme, le plus souvent en pleine fleur tannée au végétal : la fleur est intacte, rien n’a été poncé ni corrigé, et c’est ce qui fait qu’une pièce se patine au lieu de s’user.","La gamme ne s’arrête pas là. Selon la pièce et l’usage, elle s’étend aux cuirs grattés, aux cuirs exotiques pour les demandes particulières, et au tannage au chrome pour les doublures — plus souple et plus fin, là où il faut de la tenue sans ajouter d’épaisseur."]},{num:"02",titre:"La coupe",ticket:"Tracé · découpe · parage",provisoire:!0,paragraphes:["[À remplacer : le tracé des gabarits sur la peau, le sens de la fleur, les outils de coupe. Ce qui se joue à cette étape pour la suite.]","[À remplacer : le parage des bords, l’ajustement des épaisseurs — pourquoi c’est invisible sur la pièce finie mais décisif.]"]},{num:"03",titre:"Le point sellier",ticket:"Deux aiguilles · un fil · aucun retour",provisoire:!0,paragraphes:["[À remplacer : le geste lui-même — le griffage, les deux aiguilles croisées dans chaque trou, le rythme. En quoi il diffère d’une couture machine et pourquoi il ne se défait pas.]","[À remplacer : le fil de lin poissé, les couleurs proposées, le temps que prend une couture complète sur un porte-monnaie.]"]},{num:"04",titre:"Finitions & patine",ticket:"Bords brûlés · cire · années",provisoire:!0,paragraphes:["[À remplacer : les finitions — abat-carre, ponçage, teinture des tranches, lissage à la cire. Ce qu’on regarde avant de dire qu’une pièce est finie.]","[À remplacer : comment le cuir patine avec l’usage, et deux conseils d’entretien simples pour l’accompagner.]"]}];function go({legende:t}){return e.jsxs("div",{className:"relative flex aspect-[4/3] w-full items-center justify-center overflow-hidden rounded-2xl border border-atelier-line/30 bg-black/20 shadow-rim",children:[e.jsx("div",{"aria-hidden":!0,
20className:"absolute inset-3 rounded-xl border-2 border-dashed border-fil-ecru/35"}),e.jsxs("div",{className:"px-6 text-center",children:[e.jsx("p",{className:"ticket",children:"Photo à venir"}),e.jsxs("p",{className:"mt-2 font-mono text-[11px] leading-relaxed text-warm-faint",children:["[À remplacer : ",t,"]"]})]})]})}function bo({onHome:t,onEnter:r,onLegal:s}){return e.jsxs("div",{className:"h-screen w-screen overflow-y-auto bg-atelier-bg text-[#EFE3D2]",children:[e.jsx("header",{className:"sticky top-0 z-40 border-b border-atelier-line/30 bg-atelier-deep/70 backdrop-blur-md",children:e.jsxs("nav",{className:"mx-auto flex h-[72px] max-w-[1280px] items-center justify-between px-6 md:px-10",children:[e.jsx("a",{href:"/",onClick:I(t),"aria-label":"NÛMENT — accueil",className:"flex items-center gap-3 opacity-90 transition-opacity duration-300 hover:opacity-100",children:e.jsx("img",{src:"/logo-blanc.png",alt:"NÛMENT",className:"h-11 w-auto"})}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsxs("a",{href:"/",onClick:I(t),className:"ticket mr-3 inline-flex items-center gap-2 !text-warm-muted transition-colors duration-300 hover:!text-[#F2E6D2]",children:[e.jsx(z,{className:"h-3 w-3 rotate-180"}),"Retour à l’accueil"]}),e.jsx(It,{})]})]})}),e.jsx("section",{className:"px-6 pb-20 pt-24 md:px-10",children:e.jsx("div",{className:"mx-auto max-w-[880px]",children:e.jsxs(T.div,{initial:{opacity:0,y:28},animate:{opacity:1,y:0},transition:{duration:.8,ease:xo,delay:.1},children:[e.jsx("span",{className:"ticket",children:"Le savoir-faire"}),e.jsxs("h1",{className:"display mt-4 text-[clamp(38px,6vw,72px)] font-light leading-[1.02] text-[#F4E9D7]",children:["Ce que la main fait,",e.jsx("br",{}),e.jsx("span",{className:"italic text-warm-amber",children:"point par point"}),"."]}),e.jsx(ue,{className:"my-8 max-w-[260px]"}),e.jsx("p",{className:"max-w-xl text-[15px] leading-relaxed text-warm-muted md:text-base",children:"[À remplacer : chapô de la page — trois ou quatre phrases qui disent pourquoi tout est cousu main à l’atelier, ce que ça demande, et ce que ça donne à la pièce finie.]"}),e.jsx("p",{className:"mt-4 font-mono text-[10px] uppercase tracking-ticket text-warm-faint",children:"Texte provisoire — à remplacer"})]})})}),e.jsx("section",{className:"border-t border-atelier-line/30 px-6 py-20 md:px-10",children:e.jsxs("div",{className:"mx-auto flex max-w-[1100px] gap-10 lg:gap-16",children:[e.jsx(je,{className:"hidden shrink-0 self-stretch md:block"}),e.jsx("div",{className:"flex min-w-0 flex-1 flex-col gap-24",children:fo.map((n,i)=>e.jsxs("article",{className:"grid gap-10 lg:grid-cols-[1.1fr_0.9fr] lg:gap-14",children:[e.jsxs("div",{className:i%2===1?"lg:order-2":"",children:[e.jsxs("div",{className:"flex items-baseline gap-5",children:[e.jsx("span",{className:"display text-4xl font-light leading-none text-warm-amber/70",children:n.num}),e.jsxs("div",{children:[e.jsx("span",{className:"ticket",children:n.ticket}),e.jsx("h2",{className:"display mt-1 text-3xl font-light text-[#F4E9D7] md:text-4xl",children:n.titre})]})]}),e.jsx("div",{className:"mt-7 space-y-5",children:n.paragraphes.map((a,o)=>e.jsx("p",{className:"max-w-xl text-[14px] leading-relaxed text-warm-muted md:text-[15px]",children:a},o))}),n.provisoire&&e.jsx("p",{className:"mt-5 font-mono text-[10px] uppercase tracking-ticket text-warm-faint",children:"Texte provisoire — à remplacer"})]}),e.jsx("div",{className:i%2===1?"lg:order-1":"",children:e.jsx(go,{legende:`photo d’atelier pour « ${n.titre} »`})})]},n.num))})]})}),e.jsx("section",{className:"border-t border-atelier-line/30 bg-atelier-deep/40 px-6 py-24 md:px-10",children:e.jsxs("div",{className:"mx-auto max-w-[880px] text-center",children:[e.jsx("span",{className:"ticket",children:"Et maintenant"}),e.jsxs("h2",{className:"display mt-3 text-[clamp(28px,4vw,44px)] font-light leading-tight text-[#F4E9D7]",children:["Ce geste, appliqué à ",e.jsx("span",{className:"italic text-warm-amber",children:"votre pièce"})]}),e.jsx(ue,{className:"mx-auto my-8 max-w-[220px]"}),e.jsxs("button",{type:"button",onClick:()=>r(),className:"group inline-flex items-center gap-3 rounded-full bg-warm-amber px-7 py-3.5 font-sans text-sm font-semibold text-atelier-deep shadow-atelier transition-all duration-300 hover:bg-warm-glow",children:["Composer ma pièce",e.jsx(z,{className:"h-4 w-4 transition-transform duration-300 group-hover:translate-x-1"})]})]})}),e.jsxs("footer",{className:"border-t border-atelier-line/30 bg-atelier-deep px-6 py-14 md:px-10",children:[e.jsxs("div",{className:"mx-auto flex max-w-[1280px] flex-col gap-8 md:flex-row md:items-end md:justify-between",children:[e.jsxs("div",{children:[e.jsx("img",{src:"/logo-blanc.png",alt:"NÛMENT",className:"h-10 w-auto opacity-90"}),e.jsx("p",{className:"ticket mt-4",children:"Atelier de maroquinerie · Cousu main"})]}),e.jsxs("div",{className:"flex items-center gap-7",children:[e.jsx("a",{href:"/",onClick:I(t),className:"ticket !text-warm-muted transition-colors duration-300 hover:!text-[#F2E6D2]",children:"Accueil"}),e.jsx("a",{href:ho,target:"_blank",rel:"noopener noreferrer","aria-label":"Instagram NÛMENT",className:"flex h-9 w-9 items-center justify-center rounded-full text-warm-muted transition-all duration-300 hover:bg-white/[0.06] hover:text-[#F2E6D2]",children:e.jsx(Me,{className:"h-[18px] w-[18px]"})})]})]}),e.jsxs("div",{className:"mx-auto mt-10 flex max-w-[1280px] flex-col gap-4 border-t border-atelier-line/20 pt-6 md:flex-row md:items-center md:justify-between",children:[e.jsxs("p",{className:"font-mono text-[11px] text-warm-faint",children:["© ",new Date().getFullYear()," NÛMENT — Maquette-concept. Tous droits réservés."]}),e.jsx(gt,{onDoc:s})]})]})]})}function qe({children:t,className:r=""}
20){return e.jsx("span",{"aria-hidden":!0,className:`display pointer-events-none absolute -left-1 top-0 select-none whitespace-nowrap font-semibold leading-[0.78] md:-left-3 lg:left-6 ${r}`,style:{fontSize:"clamp(72px, 14vw, 190px)",color:"rgba(244,233,215,0.15)"},children:t})}const vo="pt-[clamp(16px,calc(10.5vw_-_10px),133px)]",He="pt-[clamp(70px,calc(11.5vw_+_10px),162px)]",Ke="border border-dashed border-warm-faint/40 p-3 md:p-4",mt="group/action flex flex-1 items-center justify-center gap-1.5 px-2 py-2.5 text-center font-sans text-[12px] font-semibold leading-snug transition-colors duration-300 focus-visible:outline focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-warm-glow",jo=34;function ce({champ:t,children:r,className:s=""}){return e.jsxs("div",{className:`px-3.5 py-2.5 ${s}`,children:[e.jsx("span",{className:"block font-mono text-[9px] uppercase tracking-[0.22em] text-warm-faint",children:t}),e.jsx("span",{className:"mt-1.5 block",children:r})]})}function wo({n:t}){return e.jsxs("div",{"aria-hidden":!0,className:"mb-2 flex items-center gap-2 text-warm-faint",children:[e.jsx("span",{className:"h-2.5 w-px bg-current"}),e.jsx("span",{className:"h-px flex-1 bg-current/50"}),e.jsxs("span",{className:"font-mono text-[9px] uppercase tracking-[0.22em]",children:[t," photographies"]}),e.jsx("span",{className:"h-px flex-1 bg-current/50"}),e.jsx("span",{className:"h-2.5 w-px bg-current"})]})}function yo({nom:t,nb:r}){return e.jsxs("div",{className:"flex items-end justify-end gap-[5px]",children:[e.jsxs("h2",{className:"sr-only",children:[t," — ",r," pièces"]}),Array.from({length:r},(s,n)=>e.jsx("span",{"aria-hidden":!0,className:"h-5 w-[2px] bg-warm-amber/85"},n))]})}function Vt({rubriques:t,avecFil:r,onHome:s,onSection:n,onGalerie:i,onVendues:a,onComposer:o}){const l={onSection:n,onGalerie:i,onVendues:a,onComposer:o};return e.jsx("header",{className:`sticky top-0 z-40 border-b border-atelier-line/30 bg-atelier-deep/70 backdrop-blur-md ${r?"lg:-ml-[184px] lg:w-[calc(100%+184px)] lg:pl-[184px]":""}`,children:e.jsxs("nav",{className:"mx-auto flex h-[72px] max-w-[1280px] items-center justify-between px-6 md:px-10",children:[e.jsx("a",{href:"/",onClick:I(s),"aria-label":"NÛMENT — accueil",className:"flex items-center gap-3 opacity-90 transition-opacity duration-300 hover:opacity-100",children:e.jsx("img",{src:"/logo-blanc.png",alt:"NÛMENT",className:"h-11 w-auto"})}),e.jsx(ns,{...l}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsxs("a",{href:"/",onClick:I(s),className:"ticket mr-3 hidden items-center gap-2 !text-warm-muted transition-colors duration-300 hover:!text-[#F2E6D2] lg:inline-flex",children:[e.jsx(z,{className:"h-3 w-3 rotate-180"}),"Retour à l’accueil"]}),e.jsx(It,{}),e.jsx(is,{rubriques:t,...l})]})]})})}const No="https://www.instagram.com/numentcuir/";function Gt({onHome:t,onLegal:r}){return e.jsxs("footer",{className:"border-t border-atelier-line/30 bg-atelier-deep px-6 py-14 md:px-10",children:[e.jsxs("div",{className:"mx-auto flex max-w-[1280px] flex-col gap-8 md:flex-row md:items-end md:justify-between",children:[e.jsxs("div",{children:[e.jsx("img",{src:"/logo-blanc.png",alt:"NÛMENT",className:"h-10 w-auto opacity-90"}),e.jsx("p",{className:"ticket mt-4",children:"Atelier de maroquinerie · Cousu main"})]}),e.jsxs("div",{className:"flex items-center gap-7",children:[e.jsx("a",{href:"/",onClick:I(t),className:"ticket !text-warm-muted transition-colors duration-300 hover:!text-[#F2E6D2]",children:"Accueil"}),e.jsx("a",{href:No,target:"_blank",rel:"noopener noreferrer","aria-label":"Instagram NÛMENT",className:"flex h-9 w-9 items-center justify-center rounded-full text-warm-muted transition-all duration-300 hover:bg-white/[0.06] hover:text-[#F2E6D2]",children:e.jsx(Me,{className:"h-[18px] w-[18px]"})})]})]}),e.jsxs("div",{className:"mx-auto mt-10 flex max-w-[1280px] flex-col gap-4 border-t border-atelier-line/20 pt-6 md:flex-row md:items-center md:justify-between",children:[e.jsxs("p",{className:"font-mono text-[11px] text-warm-faint",children:["© ",new Date().getFullYear()," NÛMENT — Maquette-concept. Tous droits réservés."]}),e.jsx(gt,{onDoc:r})]})]})}const Eo="mx-auto max-w-[1180px] px-6 md:px-10";function Ht({onComposer:t}){return e.jsxs("section",{id:"composer",className:"relative overflow-hidden py-10 pb-20 md:py-14 md:pb-24",children:[e.jsx(qe,{className:"!top-10 md:!top-14",children:"La vôtre"}),e.jsxs("div",{className:`${Eo} relative ${He}`,children:[e.jsx("h2",{className:"sr-only",children:"La pièce suivante"}),e.jsxs("div",{className:`${Ke} max-w-[720px]`,children:[e.jsx("p",{className:"max-w-[26ch] text-[clamp(19px,2.2vw,25px)] leading-snug text-[#F4E9D7]",children:"Le patron suivant est vierge. Il attend un cuir et un fil."}),e.jsxs("div",{className:"mt-6 flex flex-wrap items-stretch divi
20de-warm-faint/30 border border-warm-faint/30 sm:flex-nowrap sm:divide-x",children:[e.jsx(ce,{champ:"Pièce",className:"flex-1",children:e.jsx("span",{className:"font-mono text-[13px] text-warm-faint",children:"à définir"})}),e.jsx(ce,{champ:"État",className:"flex-1",children:e.jsx("span",{className:"font-mono text-[13px] text-warm-faint",children:"à commander"})}),e.jsxs("button",{type:"button",onClick:t,className:"group flex items-center gap-2 border-t border-warm-faint/30 bg-warm-amber px-5 py-3 font-sans text-[13px] font-semibold text-atelier-deep transition-colors duration-300 hover:bg-warm-glow sm:border-t-0",children:["Composer ma pièce",e.jsx(z,{className:"h-3.5 w-3.5 transition-transform duration-300 group-hover:translate-x-1"})]})]})]})]})]})}const ko={disponible:{fond:"#4A7C59",texte:"#F4E9D7"},vendue:{fond:"#6E3B3B",texte:"#E8CFCF"},"sur-commande":{fond:"#8A6A3B",texte:"#F4E9D7"}},Co="0 3px 10px rgba(12,7,3,0.55), 0 0 0 1.5px rgba(12,7,3,0.4), 0 0 0 3px rgba(244,233,215,0.24)",So={planche:{cote:"clamp(96px, 24vw, 128px)",haut:"clamp(17px, 4.3vw, 24px)",droite:"clamp(-41px, -10.9vw, -31px)",largeur:"clamp(151px, 34vw, 185px)",marge:"
20clamp(5px, 1.25vw, 7px) 0",corps:"clamp(9px, 2vw, 11px)"},carte:{cote:"clamp(62px, 15vw, 78px)",haut:"clamp(11px, 2.7vw, 14px)",droite:"clamp(-26px, -6.8vw, -19px)",largeur:"clamp(96px, 21vw, 112px)",marge:"clamp(3px, 0.8vw, 4px) 0",corps:"clamp(7px, 1.5vw, 8px)"}};function Wt({statut:t,gabarit:r="planche"}){const{fond:s,texte:n}=ko[t],i=So[r];return e.jsx("div",{"aria-hidden":!0,className:"pointer-events-none absolute right-0 top-0 overflow-hidden",style:{width:i.cote,height:i.cote},children:e.jsxs("div",{className:"absolute flex flex-col items-center justify-center text-center",style:{top:i.haut,right:i.droite,width:i.largeur,transform:"rotate(45deg)",background:s,boxShadow:Co,padding:i.marge},children:[e.jsx("span",{className:"font-mono font-semibold uppercase leading-tight",style:{fontSize:i.corps,letterSpacing:"0.12em",color:n},children:ci[t]}),e.jsx("span",{className:"mt-1 block w-3/5 border-t border-dashed",style:{borderColor:n,opacity:.5}})]})})}function Ao({piece:t,format:r,tailles:s,prioritaire:n=!1,ruban:i=!0,className:a=""}){const o=De(t)[0];return o?e.jsxs("div",{className:`relative overflow-hidden bg-black/20 ${a}`,style:{aspectRatio:r},children:[e.jsx("span",{className:"absolute inset-0 block",style:o.cadrageZoom?{transform:`scale(${o.cadrageZoom})`}:void 0,children:e.jsxs("picture",{children:[e.jsx("source",{type:"image/webp",srcSet:o.srcSet,sizes:s}),e.jsx("img",{src:o.repli,alt:o.alt||t.alt,width:o.largeur,height:o.hauteur,loading:n?"eager":"lazy",decoding:"async",style:{objectPosition:o.cadragePosition},className:"absolute inset-0 h-full w-full object-cover transition-transform duration-[900ms] ease-[cubic-bezier(0.22,1,0.36,1)] group-hover:scale-[1.04] motion-reduce:transition-none motion-reduce:group-hover:scale-100"})]})}),e.jsx("span",{"aria-hidden":!0,className:"pointer-events-none absolute inset-0",style:{boxShadow:"inset 0 0 60px 10px rgba(8,4,1,0.35)"}}),i&&e.jsx(Wt,{statut:t.disponibilite,gabarit:"carte"})]}):null}const Dr=typeof document<"u"?document.title:"NÛMENT",Fo={flaneur:"limpide",parisien:"authentique",arpenteur:"affirmee"};function ks(t,r){if(t==="/studio"||new URLSearchParams(r).has("studio"))return{view:"studio"};if(t==="/savoir-faire")return{view:"savoir-faire"};if(t==="/galerie")return{view:"galerie"};if(t==="/pieces-vendues")return{view:"pieces-vendues"};const s=dn(t);if(s!==null)return{view:"piece",numero:s};const n=Ii(t);if(n)return{view:"legal",doc:n};const i=t.match(/^\/produit\/([^/]+)\/?$/);if(i){const a=decodeURIComponent(i[1]),o=Fo[a]??a,{modeles:l}=ne(),c=l.find(u=>u.id===o);return c&&!c.personnalisable?{view:"galerie",hash:c.categorieId}:{view:"configurator",modelId:(c??Rt()).id}}return{view:"home"}}function Cs(t){if(t===void 0)return null;const{produits:r,categories:s}=ne(),n=r.find(i=>i.numero===t);return n?{piece:n,categorie:s.find(i=>i.id===n.categorieId)??null}:null}function lt(t){var r;if(t.view==="studio")return"/studio";if(t.view==="savoir-faire")return"/savoir-faire";if(t.view==="galerie")return`/galerie${t.hash?`#${t.hash}`:""}`;if(t.view==="pieces-vendues")return`/pieces-vendues${t.hash?`#${t.hash}`:""}`;if(t.view==="piece"){const s=Cs(t.numero);return`/piece/${(s&&pn({numero:s.piece.numero,categorieNom:(r=s.categorie)==null?void 0:r.nom,cuirNom:s.piece.cuirNom}))??t.numero}`}return t.view==="legal"?Bt(t.doc).chemin:t.view==="configurator"?`/produit/${t.modelId??Rt().id}`:`/${t.hash?`#${t.hash}`:""}`}function at(t){var s;if(t.view==="savoir-faire")return"Savoir-faire · NÛMENT";if(t.view==="galerie")return"Galerie · NÛMENT";if(t.view==="pieces-vendues")return"Pièces vendues · NÛMENT";if(t.view==="piece"){const n=Cs(t.numero);return n?`${((s=n.categorie)==null?void 0:s.nom)??"Pièce"} n° ${t.numero} · NÛMENT`:"Pièce introuvable · NÛMENT"}if(t.view==="legal")return`${Bt(t.doc).titreCourt} · NÛMENT`;if(t.view!=="configurator")return Dr;const r=ne().modeles.find(n=>n.id===t.modelId);return r?`${Ze(r.categorieId)} · ${r.nom} · NÛMENT`:Dr}const Mo="(min-width: 768px) 31vw, 47vw";function Lo({piece:t,presentation:r,prioritaire:s=!1,onFiche:n,onAcheter:i}){const a=t.numero,o=a===null?null:lt({view:"piece",numero:a}),l=a===null?void 0:I(()=>n(a)),c=e.jsx(Ao,{piece:t,format:"1 / 1",tailles:Mo,prioritaire:s,ruban:r.ruban});return e.jsxs("div",{className:"group flex flex-col border border-warm-faint/30 transition-colors duration-300 hover:border-warm-amber/40",children:[o?e.jsx("a",{href:o,onClick:l,"aria-label":`Voir le produit n° ${a}`,className:"block focus-visible:outline focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-warm-glow",children:c}):c,e.jsxs("div",{className:"flex items-baseline justify-between border-t border-dashed border-warm-faint/35 px-3 py-2.5",children:[e.jsx("span",{className:"display text-[17px] font-light leading-none tabular-nums text-warm-muted transition-colors duration-300 group-hover:text-[#F4E9D7]",children:a??"—"}),r.prix&&e.jsxs("span",{className:"font-mono text-[13px] leading-none text-[#F4E9D7]",children:[We(t.prixCentimes),e.jsx("span",{className:"ml-[0.12em] text-warm-amber",children:"€"})]})]}),e.jsxs("div",{className:"mt-auto flex flex-col divide-y divide-warm-faint/25 border-t border-warm-faint/25 sm:flex-row sm:divide-x sm:divide-y-0",children:[o&&e.jsxs("a",{href:o,onClick:l,className:`${mt} bg-warm-amber/10 text-warm-amber hover:bg-warm-amber/20 hover:text-warm-glow`,children:["Voir le produit",e.jsx(z,{className:"h-3 w-3 shrink-0 transition-transform duration-300 group-hover/action:translate-x-1"})]}
20),t.disponibilite!=="vendue"&&e.jsxs("a",{href:"/#contact",onClick:I(()=>i(t)),className:`${mt} bg-warm-amber text-atelier-deep hover:bg-warm-glow`,children:["Acheter",e.jsx(z,{className:"h-3 w-3 shrink-0 transition-transform duration-300 group-hover/action:translate-x-1"})]})]})]})}function qo({type:t,onPersonnaliser:r,onVendues:s}){var o;const n=ts(t.id),i=s&&es(t.id)?t.id:null;if(!n&&!i)return null;const a=t.modeleId?((o=ne().modeles.find(l=>l.id===t.modeleId))==null?void 0:o.nom)??null:null;return e.jsxs("div",{className:"group flex flex-col border border-dashed border-warm-faint/40 transition-colors duration-300 hover:border-warm-amber/45",children:[e.jsxs("div",{className:"flex flex-1 flex-col items-center justify-center gap-3 px-4 py-8",children:[a&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"ticket !text-warm-faint",children:"Le patron"}),e.jsx("span",{className:"display text-center text-[19px] font-light leading-tight text-[#F4E9D7]",children:a})]}),e.jsx(je,{orientation:"horizontale",variante:"trous",className:"w-16 opacity-60"})]}),e.jsxs("div",{className:"mt-auto flex flex-col divide-y divide-warm-faint/25 border-t border-dashed border-warm-faint/35",children:[n&&e.jsxs("a",{href:`/produit/${n}`,onClick:I(()=>r(n)),className:`${mt} bg-warm-amber text-atelier-deep hover:bg-warm-glow`,children:["Personnaliser",e.jsx(z,{className:"h-3 w-3 shrink-0 transition-transform duration-300 group-hover/action:translate-x-1"})]}),i&&e.jsxs("a",{href:`/pieces-vendues#${i}`,onClick:I(()=>s==null?void 0:s(i)),className:`${mt} bg-warm-amber/10 text-warm-amber hover:bg-warm-amber/20 hover:text-warm-glow`,children:["S’inspirer des pièces vendues",e.jsx(z,{className:"h-3 w-3 shrink-0 transition-transform duration-300 group-hover/action:translate-x-1"})]})]})]})}const Do="mx-auto max-w-[1180px] px-6 md:px-10";function Po({type:t,pieces:r,premier:s,presentation:n,onFiche:i,onAcheter:a,onPersonnaliser:o,onVendues:l}){return e.jsxs("div",{className:"relative overflow-hidden py-10 md:py-14",children:[e.jsx(qe,{className:"!top-10 md:!top-14",children:t.pluriel}),e.jsxs("div",{className:`${Do} relative ${vo}`,children:[e.jsx(yo,{nom:t.pluriel,nb:r.length}),e.jsxs("div",{className:"mt-8 grid grid-cols-2 gap-4 md:mt-10 md:grid-cols-3 md:gap-5",children:[r.map((c,u)=>e.jsx(Lo,{piece:c,presentation:n,prioritaire:s+u===1,onFiche:i,onAcheter:a},c.id)),e.jsx(qo,{type:t,onPersonnaliser:o,onVendues:l})]})]})]})}function Pr(t,r){const s=r==="rail";return e.jsxs("a",{href:t.href,onClick:I(t.onClick),className:`group flex items-center gap-2 transition-colors duration-300 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-warm-amber ${s?"py-2":"shrink-0"} ${t.accent?`text-warm-amber${s?" hover:text-warm-glow":""}`:`text-warm-muted${s?" hover:text-[#F2E6D2]":""}`}`,children:[e.jsx("span",{className:"ticket whitespace-nowrap !text-current",children:t.libelle}),e.jsx(z,{className:`h-3 w-3 shrink-0 ${s?"transition-transform duration-300 group-hover:translate-x-1":""}`})]})}const $o=72,To=.055;function $r(t){return Array.from({length:t},(r,s)=>t===1?.5:.12+s*.76/(t-1))}function Ro(t){const r=t.map(n=>Math.min(.94,Math.max(.06,n)));for(let n=1;n<r.length;n++)r[n]=Math.max(r[n],r[n-1]+To);const s=r[r.length-1]-.94;if(s>0)for(let n=0;n<r.length;n++)r[n]=Math.max(.02,r[n]-s);return r}function Io({rubriques:t,scroller:r,actions:s=[],onCourante:n}){const i=t.length>1,[a,o]=f.useState(()=>$r(t.length)),[l,c]=f.useState(null),u=f.useRef(null),x=f.useRef(null),m=f.useRef(null),d=f.useRef(n);d.current=n,f.useEffect(()=>{const p=document.querySelector(r);if(!p)return;let b=$r(t.length),h=0;const v=()=>{const j=p.scrollHeight-p.clientHeight;if(j<=0)return;const k=p.getBoundingClientRect().top;b=Ro(t.map(S=>{const N=document.getElementById(S.id);return N?(N.getBoundingClientRect().top-k+p.scrollTop-$o)/j:0})),o(b)},E=()=>{var N;p.scrollHeight!==h&&(h=p.scrollHeight,v());const j=p.scrollHeight-p.clientHeight,k=j>0?Math.min(1,Math.max(0,p.scrollTop/j)):0;u.current&&(u.current.style.height=`${k*100}%`),x.current&&(x.current.style.width=`${k*100}%`);let S=null;b.forEach((A,y)=>{k>=A-.001&&(S=t[y].id)}),S!==m.current&&(m.current=S,c(S),(N=d.current)==null||N.call(d,S))};let M=0;const w=()=>{M||(M=requestAnimationFrame(()=>{M=0,E()}))};return E(),p.addEventListener("scroll",w,{passive:!0}),window.addEventListener("resize",w),()=>{p.removeEventListener("scroll",w),window.removeEventListener("resize",w),M&&cancelAnimationFrame(M)}},[r,t]);const g=p=>({href:`#${p.id}`,onClick:I(()=>Ne(document.querySelector(r),p.id))});return e.jsxs(e.Fragment,{children:[e.jsxs("nav",{"aria-label":"Rubriques de la galer
20ie",className:"fixed inset-y-0 left-0 z-30 hidden w-[184px] flex-col pt-[72px] lg:flex",children:[s.length>0&&e.jsxs("div",{className:"shrink-0 pl-6 pr-4 pt-9",children:[s.map(p=>e.jsx(f.Fragment,{children:Pr(p,"rail")},p.libelle)),i&&e.jsx(ue,{className:"mt-5 opacity-70"})]}),e.jsx("div",{className:"relative min-h-0 flex-1 pb-28 pl-6 pt-10",children:e.jsxs("div",{className:`relative h-full ${i?"":"hidden"}`,children:[e.jsxs("div",{className:"absolute inset-y-0 left-0 w-3",children:[e.jsx(je,{variante:"trous",className:"absolute inset-0 h-full"}),e.jsx("div",{ref:u,className:"absolute inset-x-0 top-0 overflow-hidden",style:{height:0},children:e.jsx(je,{variante:"cousu",className:"absolute inset-x-0 top-0 h-screen"})})]}),t.map((p,b)=>{const h=l===p.id;return e.jsxs("a",{...g(p),"aria-current":h?"true":void 0,style:{top:`${(a[b]??.5)*100}%`},className:"group absolute left-0 flex -translate-y-1/2 items-baseline gap-2 pl-[26px] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-warm-amber",children:[e.jsx("span",{"aria-hidden":!0,className:`absolute left-0 top-[3px] h-px transition-all duration-500 ${h?"w-[18px] bg-warm-glow":"w-[10px] bg-warm-faint group-hover:w-[16px] group-hover:bg-warm-amber"}`}),e.jsx("span",{className:`ticket whitespace-nowrap transition-colors duration-300 ${h?"!text-[#F4E9D7]":"!text-warm-faint group-hover:!text-warm-muted"}`,children:p.label}),e.jsx("span",{className:"font-mono text-[10px] text-warm-faint",children:p.nb})]},p.id)})]})})]}
20),e.jsxs("nav",{"aria-label":"Rubriques de la galerie",className:"sticky top-[72px] z-30 border-b border-atelier-line/25 bg-atelier-deep/90 backdrop-blur-md lg:hidden",children:[s.length>0&&e.jsx("div",{className:`flex items-center gap-6 overflow-x-auto px-5 py-2.5 ${i?"border-b border-atelier-line/20":""}`,children:s.map(p=>e.jsx(f.Fragment,{children:Pr(p,"bandeau")},p.libelle))}),e.jsx("div",{className:`flex items-center justify-between gap-4 overflow-x-auto px-5 py-3 ${i?"":"hidden"}`,children:t.map(p=>{const b=l===p.id;return e.jsx("a",{...g(p),"aria-current":b?"true":void 0,className:"shrink-0 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-warm-amber",children:e.jsx("span",{className:`ticket whitespace-nowrap ${b?"!text-[#F4E9D7]":"!text-warm-muted"}`,children:p.label})},p.id)})}),e.jsxs("div",{className:`relative h-[9px] w-full overflow-hidden ${i?"":"hidden"}`,children:[e.jsx(je,{orientation:"horizontale",variante:"trous",className:"absolute inset-0 w-full"}),e.jsx("div",{ref:x,className:"absolute inset-y-0 left-0 overflow-hidden",style:{width:0},children:e.jsx(je,{orientation:"horizontale",variante:"cousu",className:"absolute inset-y-0 left-0 w-screen"})})]})]})]})}function Zt(t){return t.map(({type:r,pieces:s})=>({id:r.id,label:r.nom,nb:s.length}))}function Kt({rubriques:t,scroller:r,actions:s=[]}){return s.length===0&&t.length<=1?null:e.jsx(Io,{rubriques:t,scroller:r,actions:s})}function Ss({groupes:t,presentation:r,scroller:s,onAcheter:n,onFiche:i,onPersonnaliser:a,onVendues:o}){const l=f.useMemo(()=>{let c=1;return t.map(({pieces:u})=>{const x=c;return c+=u.length,x})},[t]);return f.useEffect(()=>{const c=window.location.hash.slice(1);if(!c)return;const u=requestAnimationFrame(()=>Ne(document.querySelector(s),c));return()=>cancelAnimationFrame(u)},[s]),e.jsx(e.Fragment,{children:t.map(({type:c,pieces:u},x)=>e.jsx("section",{id:c.id,className:"scroll-mt-24",children:e.jsx(Po,{type:c,pieces:u,premier:l[x],presentation:r,onAcheter:n,onFiche:i,onPersonnaliser:a,onVendues:o})},c.id))})}const Oo={prix:!0,ruban:!0,description:!1},Bo={prix:!1,ruban:!1,description:!0},Uo="mx-auto max-w-[1180px] px-6 md:px-10";function Tr(t){return String(t).padStart(2,"0")}function zo({rubrique:t,onHome:r,onEnter:s,onVendues:n,onPiece:i,onLegal:a}){const{produits:o,categories:l}=J(),c=f.useMemo(()=>Ot(),[o,l]),{nbPieces:u,nbPhotos:x}=f.useMemo(()=>{const g=c.flatMap(p=>p.pieces);return{nbPieces:g.length,nbPhotos:g.reduce((p,b)=>p+De(b).length,0)}},[c]),m=f.useMemo(()=>Zt(c),[c]);f.useEffect(()=>{const g=t??window.location.hash.slice(1);if(!g||!document.getElementById(g))return;const p=requestAnimationFrame(()=>Ne(document.querySelector(".galerie-scroll"),g));return()=>cancelAnimationFrame(p)},[t,c]);const d=()=>r("contact");return e.jsxs("div",{className:"galerie-scroll h-screen w-screen bg-atelier-bg text-[#EFE3D2] lg:pl-[184px] overflow-y-auto",children:[e.jsx(Vt,{rubriques:m,avecFil:!0,onHome:()=>r(),onSection:g=>r(g),onGalerie:g=>{const p=document.querySelector(".galerie-scroll");g?Ne(p,g):ls(p)},onVendues:n,onComposer:()=>s()}),e.jsx(Kt,{rubriques:m,scroller:".galerie-scroll"}),e.jsxs("section",{className:"relative overflow-hidden pb-16 pt-16 md:pt-20",children:[e.jsx(qe,{className:"!top-16 md:!top-20",children:"NÛMENT"}),e.jsx("div",{className:`${Uo} relative ${He}`,children:e.jsxs("div",{className:`${Ke} max-w-[840px]`,children:[e.jsxs("h1",{className:"max-w-[24ch] text-[clamp(24px,3.2vw,40px)] font-light leading-[1.16] text-[#F4E9D7]",children:["Chaque pièce ",e.jsx("span",{className:"display italic text-warm-amber",children:"n’existe qu’une fois"})," ",": un patron, un cuir, un fil, et le relevé de ce qui en est sorti."]}),e.jsxs("div",{className:"mt-8 flex flex-wrap items-stretch divide-warm-faint/30 border border-warm-faint/30 sm:flex-nowrap sm:divide-x",children:[e.jsx(ce,{champ:"Rubriques",className:"flex-1",children:e.jsx("span",{className:"font-mono text-[15px] tabular-nums text-[#F4E9D7]",children:Tr(c.length)})}),e.jsx(ce,{champ:"Pièces",className:"flex-1",children:e.jsx("span",{className:"font-mono text-[15px] tabular-nums text-[#F4E9D7]",children:Tr(u)})}),e.jsx(ce,{champ:"Photographies",className:"flex-1",children:e.jsx("span",{className:"font-mono text-[15px] tabular-nums text-[#F4E9D7]",children:x})}),e.jsxs("button",{type:"button",onClick:()=>s(),className:"group flex items-center gap-2 border-t border-warm-faint/30 px-4 py-3 font-sans text-[13px] font-semibold text-warm-amber transition-colors duration-300 hover:bg-warm-amber/10 hover:text-warm-glow sm:border-t-0",children:["Ouvrir un patron",e.jsx(z,{className:"h-3.5 w-3.5 transition-transform duration-300 group-hover:translate-x-1"})]})]})]})})]}),e.jsx(Ss,{groupes:c,presentation:Oo,scroller:".galerie-scroll",onAcheter:d,onFiche:i,onPersonnaliser:s,onVendues:n}),e.jsx(Ht,{onComposer:()=>s()}),e.jsx(Gt,{onHome:()=>r(),onLegal:a})]})}const _o="mx-auto max-w-[1180px] px-6 md:px-10";function Rr(t){return String(t).padStart(2,"0")}function Vo({onHome:t,onEnter:r,onGalerie:s,onPiece:n,onLegal:i}){const{produits:a,categories:o}=J(),l=f.useMemo(()=>Qr(),[a,o]),{nbPieces:c,nbPhotos:u}=f.useMemo(()=>{const m=l.flatMap(d=>d.pieces);return{nbPieces:m.length,nbPhotos:m.reduce((d,g)=>d+De(g).length,0)}},[l]),x=f.useMemo(()=>Zt(l),[l]);return e.jsxs("div",{className:"galerie-scroll h-screen w-screen bg-atelier-bg text-[#EFE3D2] lg:pl-[184px] overflow-y-auto",children:[e.jsx(Vt,{rubriques:x,avecFil:!0,onHome:()=>t(),onSection:m=>t(m),onGalerie:s,onVendues:m=>{const d=document.querySelector(".galerie-scroll");m?Ne(d,m):ls(d)},onComposer:()=>r()}),e.jsx(Kt,{rubriques:x,scroller:".galerie-scroll",actions:[{libelle:"Le registre",href:"/galerie",onClick:()=>s()}]}),e.jsxs("section",{className:"relative overflow-hidden pb-16 pt-16 md:pt-20",children:[e.jsx(qe,{className:"!top-16 md:!top-20",children:"Vendues"}),e.jsx("div",{className:`${_o} relative ${He}`,children:e.jsx("div",{className:`${Ke} max-w-[840px]`,children:c===0?e.jsxs(e.Fragment,{children:[e.jsxs("h1",{className:"max-w-[24ch] text-[clamp(24px,3.2vw,40px)] font-light leading-[1.16] text-[#F4E9D7]",children:["Aucune pièce n’a encore"," ",e.jsx("span",{className:"display italic text-warm-amber",children:"quitté l’atelier"}),"."]}),e.jsx("p",{className:"mt-6 max-w-[52ch] text-[15px] leading-relaxed text-warm-muted",children:"Tout ce qui a été cousu est encore au registre. Cette page se remplira à mesure que les pièces trouveront leur main."}),e.jsxs("div",{className:"mt-8 flex flex-wrap items-stretch divi
20de-warm-faint/30 border border-warm-faint/30 sm:flex-nowrap sm:divide-x",children:[e.jsx(ce,{champ:"Pièces parties",className:"flex-1",children:e.jsx("span",{className:"font-mono text-[15px] tabular-nums text-warm-faint",children:"00"})}),e.jsxs("a",{href:"/galerie",onClick:I(()=>s()),className:"group flex items-center gap-2 border-t border-warm-faint/30 px-4 py-3 font-sans text-[13px] font-semibold text-warm-amber transition-colors duration-300 hover:bg-warm-amber/10 hover:text-warm-glow sm:border-t-0",children:["Voir le registre",e.jsx(z,{className:"h-3.5 w-3.5 transition-transform duration-300 group-hover:translate-x-1"})]})]})]}):e.jsxs(e.Fragment,{children:[e.jsxs("h1",{className:"max-w-[24ch] text-[clamp(24px,3.2vw,40px)] font-light leading-[1.16] text-[#F4E9D7]",children:["Ces pièces sont ",e.jsx("span",{className:"display italic text-warm-amber",children:"déjà parties"})," ",": aucune ne reviendra, mais chacune dit ce que l’atelier sait faire."]}),e.jsxs("div",{className:"mt-8 flex flex-wrap items-stretch divide-warm-faint/30 border border-warm-faint/30 sm:flex-nowrap sm:divide-x",children:[e.jsx(ce,{champ:"Rubriques",className:"flex-1",children:e.jsx("span",{className:"font-mono text-[15px] tabular-nums text-[#F4E9D7]",children:Rr(l.length)})}),e.jsx(ce,{champ:"Pièces parties",className:"flex-1",children:e.jsx("span",{className:"font-mono text-[15px] tabular-nums text-[#F4E9D7]",children:Rr(c)})}),e.jsx(ce,{champ:"Photographies",className:"flex-1",children:e.jsx("span",{className:"font-mono text-[15px] tabular-nums text-[#F4E9D7]",children:u})}),e.jsxs("a",{href:"/galerie",onClick:I(()=>s()),className:"group flex items-center gap-2 border-t border-warm-faint/30 px-4 py-3 font-sans text-[13px] font-semibold text-warm-amber transition-colors duration-300 hover:bg-warm-amber/10 hover:text-warm-glow sm:border-t-0",children:["Voir ce qui est disponible",e.jsx(z,{className:"h-3.5 w-3.5 transition-transform duration-300 group-hover:translate-x-1"})]})]})]})})})]}),e.jsx(Ss,{groupes:l,presentation:Bo,scroller:".galerie-scroll",onAcheter:()=>t("contact"),onFiche:n,onPersonnaliser:r}),e.jsx(Ht,{onComposer:()=>r()}),e.jsx(Gt,{onHome:()=>t(),onLegal:i})]})}const Go=48,Ho=14,Wo=6,St="flex h-12 w-12 items-center justify-center rounded-full bg-black/40 text-[#F4E9D7] ring-1 ring-white/15 backdrop-blur-sm transition-colors duration-300 hover:bg-black/65 hover:ring-white/35 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-warm-amber md:h-14 md:w-14",As="h-6 w-6 md:h-7 md:w-7";function Ir({vers:t}){return e.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,className:As,children:e.jsx("path",{d:t==="gauche"?"M15 5l-7 7 7 7":"M9 5l7 7-7 7"})})}function Zo({vue:t,onClose:r,onIndex:s}){const{photos:n,index:i,alt:a,legende:o,disponibilite:l}=t,c=f.useRef(null),u=f.useRef(null),[x,m]=f.useState(null),d=ht(),g=f.useRef(null),[p,b]=f.useState({largeur:0,contenuL:0,contenuH:0,taille:48});f.useLayoutEffect(()=>{const w=g.current;if(!w)return;const j=()=>{const S=getComputedStyle(w),N=parseFloat(S.paddingLeft)+parseFloat(S.paddingRight),A=parseFloat(S.paddingTop)+parseFloat(S.paddingBottom);b({largeur:w.clientWidth,contenuL:w.clientWidth-N,contenuH:w.clientHeight-A,taille:window.innerWidth>=768?56:48})};j();const k=new ResizeObserver(j);return k.observe(w),()=>k.disconnect()},[]);const h=f.useMemo(()=>{const{contenuL:w,contenuH:j,largeur:k,taille:S}=p;if(!w||!j)return null;const N=n.reduce((y,q)=>Math.max(y,Math.min(w,j*(q.largeur/q.hauteur))),0),A=k/2-S-Wo;return Math.min(N/2+Ho,A)},[n,p]),v=()=>s((i-1+n.length)%n.length),E=()=>s((i+1)%n.length);f.useEffect(()=>{const w=j=>{if(j.key==="Escape")r();else if(j.key==="ArrowLeft")v();else if(j.key==="ArrowRight")E();else return;j.preventDefault()};return window.addEventListener("keydown",w),()=>window.removeEventListener("keydown",w)}),f.useEffect(()=>{var w;return u.current=document.activeElement,(w=c.current)==null||w.focus(),()=>{var j,k;return(k=(j=u.current)==null?void 0:j.focus)==null?void 0:k.call(j)}},[]);const M=n[i];return e.jsxs(T.div,{ref:c,role:"dialog","aria-modal":"true","aria-label":`${o} — photo ${i+1} sur ${n.length}`,tabIndex:-1,initial:{opacity:0}
20,animate:{opacity:1},exit:{opacity:0},transition:{duration:d?0:.25},onClick:r,onTouchStart:w=>m(w.touches[0].clientX),onTouchEnd:w=>{if(x===null)return;const j=w.changedTouches[0].clientX-x;Math.abs(j)>Go&&(j>0?v:E)(),m(null)},className:"fixed inset-0 z-[60] flex flex-col bg-atelier-deep/97 backdrop-blur-md focus:outline-none",children:[e.jsxs("div",{className:"shrink-0 px-5 py-4 md:px-8",children:[e.jsx("p",{className:"truncate font-sans text-sm text-[#F4E9D7]",children:o}),e.jsxs("p",{className:"ticket mt-1",children:["Photo ",i+1," / ",n.length]})]}),e.jsxs("div",{ref:g,className:"relative flex min-h-0 flex-1 items-center justify-center px-3 pb-3 md:px-16",children:[n.length>1&&e.jsx("button",{type:"button",onClick:w=>{w.stopPropagation(),v()},"aria-label":"Photo précédente",style:h!==null?{right:`calc(50% + ${h}px)`}:void 0,className:`absolute z-10 ${h===null?"left-1 md:left-4":""} ${St}`,children:e.jsx(Ir,{vers:"gauche"})}),e.jsxs("span",{className:"relative flex h-full items-center justify-center leading-none",children:[e.jsx(T.img,{src:M.src,alt:a,width:M.largeur,height:M.hauteur,initial:{opacity:0}
20,animate:{opacity:1},transition:{duration:d?0:.35},onClick:w=>w.stopPropagation(),className:"max-h-full w-auto max-w-full rounded-lg object-contain shadow-atelier"},M.src),l&&e.jsx(Wt,{statut:l})]}),n.length>1&&e.jsx("button",{type:"button",onClick:w=>{w.stopPropagation(),E()},"aria-label":"Photo suivante",style:h!==null?{left:`calc(50% + ${h}px)`}:void 0,className:`absolute z-10 ${h===null?"right-1 md:right-4":""} ${St}`,children:e.jsx(Ir,{vers:"droite"})}),e.jsx("button",{type:"button",onClick:w=>{w.stopPropagation(),r()},"aria-label":"Fermer la photo",style:h!==null?{right:`calc(50% + ${h}px)`}:void 0,className:`absolute top-0 z-10 ${h===null?"left-1 md:left-4":""} ${St}`,children:e.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round","aria-hidden":!0,className:As,children:e.jsx("path",{d:"M6 6l12 12M18 6L6 18"})})})]})]})}function Ko({photo:t,alt:r,sizes:s,onOpen:n,prioritaire:i,overlay:a,className:o="",style:l}){return e.jsxs("button",{type:"button",onClick:n,style:l,"aria-label":`Agrandir : ${r}`,className:`group relative block overflow-hidden rounded-2xl border border-atelier-line/30 bg-black/25 shadow-rim
21                  transition-colors duration-500 hover:border-warm-amber/40
22                  focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-warm-amber ${o}`,children:[e.jsxs("picture",{children:[e.jsx("source",{type:"image/webp",srcSet:t.srcSet,sizes:s}),e.jsx("img",{src:t.repli,alt:r,width:t.largeur,height:t.hauteur,loading:i?"eager":"lazy",decoding:"async",className:"h-full w-full object-cover transition-transform duration-[900ms] ease-[cubic-bezier(0.22,1,0.36,1)] group-hover:scale-[1.03] motion-reduce:transition-none motion-reduce:group-hover:scale-100"})]}),e.jsx("span",{"aria-hidden":!0,className:"pointer-events-none absolute inset-0",style:{boxShadow:"inset 0 0 70px 12px rgba(8,4,1,0.35)"}}),a]})}const Xo=520,Yo=16;function Fs(t,r=92){const s=t.map(i=>i.largeur/i.hauteur),n=s.reduce((i,a)=>i+a,0);return{formats:s,sommeFormats:n,largeurMax:Xo*n+(t.length-1)*Yo,sizes:i=>`(min-width: 640px) ${Math.round(s[i]/n*r)}vw, 92vw`}}function Jo({piece:t,part:r=92,bornee:s=!0,prioritaire:n=!1,ruban:i=!0,className:a="",onOuvrir:o}){const l=De(t),{formats:c,largeurMax:u,sizes:x}=Fs(l,r);return e.jsx("div",{className:`flex min-w-0 flex-col gap-3 sm:flex-row sm:gap-4 ${a}`,style:s?{maxWidth:u}:void 0,children:l.map((m,d)=>e.jsx(Ko,{photo:m,alt:t.alt,prioritaire:n&&d===0,overlay:i&&d===0?e.jsx(Wt,{statut:t.disponibilite}):void 0,sizes:x(d),onOpen:()=>o(d),className:"w-full sm:w-auto sm:[flex-basis:0] sm:[flex-grow:var(--format)]",style:{"--format":c[d],aspectRatio:`${m.largeur} / ${m.hauteur}`}},m.src))})}function Qo(t,r){return t===null?String(r).padStart(2,"0"):String(t)}const el="group flex items-center justify-between gap-3 px-4 py-3 font-sans text-[13px] font-semibold transition-colors duration-300 focus-visible:outline focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-warm-glow";function tl({piece:t,n:r,presentation:s,onAcheter:n}){return e.jsxs("div",{className:"flex flex-wrap items-stretch divide-y divide-warm-faint/30 border border-warm-faint/30 md:flex-nowrap md:divide-x md:divide-y-0",children:[e.jsx("div",{className:"flex w-full items-center justify-center px-4 py-2 md:w-auto",children:e.jsx("span",{className:"display text-[24px] font-light leading-none tabular-nums text-warm-muted",children:Qo(t.numero,r)})}),e.jsx(ce,{champ:"Pièce",className:"w-full min-w-0 md:w-auto md:flex-1",children:e.jsxs("span",{className:"block truncate",children:[e.jsx("span",{className:"display text-[15px] italic text-[#F4E9D7]",children:t.cuirNom}),e.jsxs("span",{className:"font-mono text-[11px] text-warm-muted",children:[" — fil ",t.filNom.toLowerCase()]})]})}),s.prix&&e.jsx(ce,{champ:"Prix",className:"w-full md:w-auto",children:e.jsxs("span",{className:"font-mono text-[15px] text-[#F4E9D7]",children:[We(t.prixCentimes),e.jsx("span",{className:"ml-[0.12em] text-warm-amber",children:"€"})]})}),t.disponibilite!=="vendue"&&e.jsxs("a",{href:"/#contact",onClick:I(()=>n(t)),className:`${el} w-full bg-warm-amber text-atelier-deep hover:bg-warm-glow md:w-auto`,children:["Acheter",e.jsx(z,{className:"h-3.5 w-3.5 transition-transform duration-300 group-hover:translate-x-1"})]})]})}function rl({piece:t,n:r,cotee:s,presentation:n,onOuvrir:i,onAcheter:a}){const o=De(t);if(o.length===0)return null;const{largeurMax:l}=Fs(o),c=n.description?t.description.trim():"";return e.jsxs("article",{style:{maxWidth:l+jo},children:[s&&e.jsx(wo,{n:o.length}),e.jsxs("div",{className:Ke,children:[e.jsx(Jo,{piece:t,bornee:!1,prioritaire:r===1,ruban:n.ruban,onOuvrir:u=>i(t,u)}
22),c&&e.jsx("p",{className:"mt-3 max-w-[62ch] text-[14px] leading-relaxed text-warm-muted md:mt-4",children:c}),e.jsx("div",{className:"mt-3 md:mt-4",children:e.jsx(tl,{piece:t,n:r,presentation:n,onAcheter:a})})]})]})}const Or="mx-auto max-w-[1180px] px-6 md:px-10";function sl({numero:t,onHome:r,onEnter:s,onGalerie:n,onVendues:i,onLegal:a}){var w;const{produits:o,categories:l}=J(),[c,u]=f.useState(null),x=f.useMemo(()=>{const j=o.find(k=>k.numero===t);return j?{piece:j,type:l.find(k=>k.id===j.categorieId)??null}:null},[o,l,t]),m=f.useMemo(()=>Zt(Ot()),[o,l]),d=e.jsx(Vt,{rubriques:m,avecFil:!0,onHome:()=>r(),onSection:j=>r(j),onGalerie:n,onVendues:i,onComposer:()=>s()}),g=((w=x==null?void 0:x.type)==null?void 0:w.id)??null,p=g?ts(g):null,b=[...p?[{libelle:"Personnaliser",href:`/produit/${p}`,onClick:()=>s(p),accent:!0}]:[],...g&&es(g)?[{libelle:"Pièces vendues",href:`/pieces-vendues#${g}`,onClick:()=>i(g)}]:[]],h=j=>e.jsxs("div",{className:`galerie-scroll h-screen w-screen bg-atelier-bg text-[#EFE3D2] lg:pl-[184px] ${c?"overflow-hidden":"overflow-y-auto"}`,children:[d,e.jsx(Kt,{rubriques:[],scroller:".galerie-scroll",actions:b}),j,e.jsx(Ht,{onComposer:()=>s()}),e.jsx(Gt,{onHome:()=>r(),onLegal:a}),e.jsx(Ee,{children:c&&e.jsx(Zo,{vue:c,onClose:()=>u(null),onIndex:k=>u(S=>S&&{...S,index:k})})})]});if(!x)return h(e.jsxs("section",{className:"relative overflow-hidden pb-16 pt-16 md:pt-20",children:[e.jsx(qe,{className:"!top-16 md:!top-20",children:"Introuvable"}),e.jsx("div",{className:`${Or} relative ${He}`,children:e.jsxs("div",{className:`${Ke} max-w-[720px]`,children:[e.jsx("h1",{className:"max-w-[24ch] text-[clamp(24px,3.2vw,40px)] font-light leading-[1.16] text-[#F4E9D7]",children:t!==void 0?e.jsxs(e.Fragment,{children:["La pièce n° ",t," n’est"," ",e.jsx("span",{className:"display italic text-warm-amber",children:"plus au registre"}),"."]}):e.jsxs(e.Fragment,{children:["Cette pièce n’est"," ",e.jsx("span",{className:"display italic text-warm-amber",children:"plus au registre"}),"."]})}),e.jsx("p",{className:"mt-6 max-w-[52ch] text-[15px] leading-relaxed text-warm-muted",children:"Chaque pièce n’existe qu’une fois. Celle-ci a peut-être été retirée — le registre, lui, est toujours là."}),e.jsxs("div",{className:"mt-8 flex flex-wrap items-stretch divide-warm-faint/30 border border-warm-faint/30 sm:flex-nowrap sm:divide-x",children:[e.jsxs("a",{href:"/galerie",onClick:I(()=>n()),className:"group flex flex-1 items-center gap-2 px-4 py-3 font-sans text-[13px] font-semibold text-warm-amber transition-colors duration-300 hover:bg-warm-amber/10 hover:text-warm-glow",children:["Voir le registre",e.jsx(z,{className:"h-3.5 w-3.5 transition-transform duration-300 group-hover:translate-x-1"})]}),e.jsxs("a",{href:"/pieces-vendues",onClick:I(()=>i()),className:"group flex flex-1 items-center gap-2 border-t border-warm-faint/30 px-4 py-3 font-sans text-[13px] font-semibold text-warm-muted transition-colors duration-300 hover:bg-white/[0.05] hover:text-[#F2E6D2] sm:border-t-0",children:["Les pièces vendues",e.jsx(z,{className:"h-3.5 w-3.5 transition-transform duration-300 group-hover:translate-x-1"})]})]})]})})]}));const{piece:v,type:E}=x,M={prix:v.disponibilite!=="vendue",ruban:!0,description:!0};return h(e.jsxs("section",{className:"relative overflow-hidden pb-4 pt-16 md:pt-20",children:[e.jsx(qe,{className:"!top-16 md:!top-20",children:(E==null?void 0:E.pluriel)??"Pièce"}),e.jsxs("div",{className:`${Or} relative ${He}`,children:[E&&e.jsxs("a",{href:`/galerie#${E.id}`,onClick:I(()=>n(E.id)),className:"group ticket inline-flex items-center gap-2 !text-warm-muted transition-colors duration-300 hover:!text-[#F2E6D2]",children:[e.jsx(z,{className:"h-3 w-3 rotate-180 transition-transform duration-300 group-hover:-translate-x-1"}),"Tous les ",E.pluriel.toLowerCase()]}),e.jsx("div",{className:"mt-6 md:mt-8",children:e.jsx(rl,{piece:v,n:1,cotee:!0,presentation:M,onOuvrir:(j,k)=>u({photos:De(j),index:k,alt:j.alt,legende:j.titre,disponibilite:j.disponibilite}),onAcheter:()=>r("contact")})})]})]}))}function nl(t){var i;if(!t)return{points:[],closed:!1}
22;const r=/z/i.test(t),s=((i=t.match(/-?\d+(?:\.\d+)?/g))==null?void 0:i.map(Number))??[],n=[];for(let a=0;a+1<s.length;a+=2)n.push({x:s[a],y:s[a+1]});return{points:n,closed:r}}const Br=t=>Math.round(t*10)/10;function Ur(t,r){if(t.length===0)return"";const s=t.map((n,i)=>`${i===0?"M":"L"}${Br(n.x)} ${Br(n.y)}`).join(" ");return r&&t.length>=3?`${s} Z`:s}function il({photo:t,initialSeamPath:r,stitch:s,threadHex:n,onSeamPathChange:i}){const a=f.useRef(null),o=f.useRef(nl(r)),[l,c]=f.useState(o.current.points),[u,x]=f.useState(o.current.closed),[m,d]=f.useState(null),g=f.useRef(null);f.useEffect(()=>{i(Ur(l,u))},[l,u]);const p=f.useCallback((k,S)=>{const N=a.current,A=N==null?void 0:N.getScreenCTM();if(!N||!A)return null;const y=new DOMPoint(k,S).matrixTransform(A.inverse());return{x:y.x,y:y.y}},[]),b=k=>{if(g.current!==null)return;const S=p(k.clientX,k.clientY);S&&c(N=>(d(N.length),[...N,S]))},h=k=>S=>{S.stopPropagation(),S.target.setPointerCapture(S.pointerId),g.current=k,d(k)},v=k=>S=>{if(g.current!==k)return;const N=p(S.clientX,S.clientY);N&&c(A=>A.map((y,q)=>q===k?N:y))},E=k=>{k.stopPropagation(),g.current=null};f.useEffect(()=>{const k=S=>{(S.key==="Delete"||S.key==="Backspace")&&m!==null&&(c(N=>N.filter((A,y)=>y!==m)),d(null))};return window.addEventListener("keydown",k),()=>window.removeEventListener("keydown",k)},[m]);const M=Ur(l,u),w=l.length===0,j="ticket rounded-full border border-atelier-line/50 bg-atelier-deep/80 px-3 py-1.5 !text-warm-muted backdrop-blur-sm transition-colors duration-200 hover:!text-[#F2E6D2] disabled:cursor-not-allowed disabled:opacity-40";return e.jsxs("div",{className:"relative h-full w-full",children:[e.jsxs("div",{className:"absolute right-3 top-3 z-10 flex items-center gap-2",children:[e.jsxs("button",{type:"button",className:j,disabled:l.length<3,onClick:()=>x(k=>!k),children:[u?"Ouvrir":"Fermer"," le contour"]}),e.jsx("button",{type:"button",className:j,disabled:w,onClick:()=>c(k=>k.slice(0,-1)),children:"Annuler le point"}),e.jsx("button",{type:"button",className:j,disabled:w,onClick:()=>{c([]),x(!1),d(null)},children:"Tout effacer"})]}),e.jsx("p",{className:"ticket pointer-events-none absolute bottom-3 left-1/2 z-10 -translate-x-1/2 text-center !text-warm-faint",children:"Cliquez pour poser des points · glissez pour ajuster · Suppr pour retirer"}),e.jsxs("svg",{ref:a,viewBox:Se,className:"h-full w-full touch-none",children:[t?e.jsx("image",{href:t,x:0,y:0,width:1e3,height:640,preserveAspectRatio:"xMidYMid meet"}):e.jsxs(e.Fragment,{children:[e.jsx("rect",{x:0,y:0,width:1e3,height:640,fill:"#1F2822"}),e.jsx(al,{})]}),e.jsx("rect",{x:0,y:0,width:1e3,height:640,fill:"transparent",onPointerDown:b,style:{cursor:"crosshair"}}),e.jsx("g",{style:{pointerEvents:"none"},children:e.jsx(xs,{seamPath:M,colorHex:n,spacing:s.spacing,stitchLen:s.len,stitchWidth:s.width,slant:s.slant})}),M&&e.jsx("path",{d:M,fill:"none",stroke:"#D9A05B",strokeOpacity:.45,strokeWidth:1.5,strokeDasharray:"6 6",style:{pointerEvents:"none"}}),l.map((k,S)=>e.jsx("circle",{cx:k.x,cy:k.y,r:m===S?9:7,fill:m===S?"#F0C98A":"#D9A05B",stroke:"#1F2822",strokeWidth:2,style:{cursor:"grab"},onPointerDown:h(S),onPointerMove:v(S),onPointerUp:E},S))]})]})}function al(){const t=[];for(let r=50;r<1e3;r+=50)t.push(e.jsx("line",{x1:r,y1:0,x2:r,y2:640,stroke:"#F0C98A",strokeOpacity:.05,strokeWidth:.5},`v${r}`));for(let r=50;r<640;r+=50)t.push(e.jsx("line",{x1:0,y1:r,x2:1e3,y2:r,stroke:"#F0C98A",strokeOpacity:.05,strokeWidth:.5},`h${r}`));return e.jsx("g",{style:{pointerEvents:"none"},children:t})}const ol=1600,ll=.82;function cl(t){return new Promise((r,s)=>{if(!t.type.startsWith("image/")){s(new Error("Le fichier sélectionné n’est pas une image."));return}const n=URL.createObjectURL(t),i=new Image;i.onload=()=>{URL.revokeObjectURL(n);const a=Math.min(1,ol/Math.max(i.width,i.height)),o=Math.round(i.width*a),l=Math.round(i.height*a),c=document.createElement("canvas");c.width=o,c.height=l;const u=c.getContext("2d");if(!u){s(new Error("Canvas indisponible."));return}u.drawImage(i,0,0,o,l),r(c.toDataURL("image/jpeg",ll))},i.onerror=()=>{URL.revokeObjectURL(n),s(new Error("Impossible de lire cette image."))},i.src=n})}const ul=[{key:"width",label:"Largeur du point",min:1.5,max:7,step:.1},{key:"len",label:"Longueur du point",min:8,max:30,step:.5},{key:"spacing",label:"Espacement",min:14,max:50,step:1},{key:"slant",label:"Inclinaison",min:0,max:45,step:1,unit:"°"}];function dl({photo:t,stitch:r,threadHex:s,onThread:n,onPhoto:i,onStitch:a,onReset:o,error:l}){const{fils:c}=J(),u=f.useRef(null),[x,m]=f.useState(!1),[d,g]=f.useState(null),[p,b]=f.useState(!1),h=async v=>{if(v){m(!0),g(null);try{const E=await cl(v);i(E)}catch(E){g(E.message)}finally{m(!1)}}};return e.jsxs("div",{className:"flex flex-col gap-8",children:[e.jsxs("section",{children:[e.jsx("span",{className:"ticket",children:"Photo du modèle"}),e.jsx("input",{ref:u,type:"file",accept:"image/*",className:"hidden",onChange:v=>{var E;return h((E=v.target.files)==null?void 0:E[0])}}),t?e.jsxs("div",{className:"mt-3",children:[e.jsx("div",{className:"overflow-hidden rounded-xl border border-atelier-line/40 bg-black/30",children:e.jsx("img",{src:t,alt:"Aperçu",className:"max-h-40 w-full object-contain"})}),e.jsxs("div",{className:"mt-2 flex gap-2",children:[e.jsx("button",{type:"button",onClick:()=>{var v;return(v=u.current)==null?void 0:v.click()},className:"ticket flex-1 rounded-full border border-atelier-line/50 py-2 !text-warm-muted transition-colors hover:!text-[#F2E6D2]",children:"Remplacer"}),e.jsx("button",{type:"button",onClick:()=>i(void 0),className:"ticket flex-1 rounded-full border border-atelier-line/50 py-2 !text-warm-muted transition-colors hover:!text-[#E48A6A]",children:"Retirer"})]})]}):e.jsxs("button",{type:"button",onClick:()=>{var v;return(v=u.current)==null?void 0:v.click()},onDragOver:v=>{v.preventDefault(),b(!0)},onDragLeave:()=>b(!1),onDrop:v=>{var E;v.preventDefault(),b(!1),h((E=v.dataTransfer.files)==null?void 0:E[0])},className:`mt-3 flex h-36 w-full flex-col items-center justify-center gap-2 rounded-xl border border-dashed transition-colors duration-200 ${p?"border-warm-amber/70 bg-warm-amber/5":"border-atelier-line/50 hover:border-warm-amber/50"}`,children:[e.jsx("span",{className:"display text-2xl text-warm-amber/80",children:"+"}),e.jsx("span",{className:"font-sans text-[13px] text-warm-muted",children:x?"Import…":"Glissez une photo ou cliquez"}),e.jsx("span",{className:"ticket !text-warm-faint",children:"à plat · couture neutre"})]}),d&&e.jsx("p",{className:"mt-2 font-sans text-[12px] text-[#E48A6A]",children:d})]}),e.jsx("div",{className:"hairline"}),e.jsxs("section",{children:[e.jsx("span",{className:"ticket",children:"Réglages de la couture"}),e.jsx("div",{className:"mt-4 flex flex-col gap-5",children:ul.map(v=>e.jsxs("label",{className:"block",children:[e.jsxs("span",{className:"flex items-baseline justify-between",children:[e.jsx("span",{className:"font-sans text-[13px] text-[#EFE3D2]",children:v.label}),e.jsxs("span",{className:"font-mono text-[12px] text-warm-amber tabular-nums",children:[r[v.key],v.unit??""]})]}),e.jsx("input",{type:"range",min:v.min,max:v.max,step:v.step,value:r[v.key],onChange:E=>a({[v.key]:Number(E.target.value)}),className:"mt-2 w-full",style:{accentColor:"#D9A05B"}})]},v.key))})]}),e.jsx("div",{className:"hairline"}),e.jsxs("section",{children:[e.jsx("span",{className:"ticket",children:"Fil d’aperçu"}),e.jsx("p",{className:"mt-1 font-sans text-[12px] text-warm-faint",children:"Changer la couleur rejoue la couture."}),e.jsx("div",{className:"mt-3 flex items-center gap-4",children:c.map(v
22=>{const E=v.hex.toLowerCase()===s.toLowerCase();return e.jsxs("button",{type:"button",onClick:()=>n(v.hex),"aria-label":`Fil ${v.nom}`,"aria-pressed":E,className:"group flex flex-col items-center gap-2 outline-none",children:[e.jsx("span",{className:"block h-7 w-7 rounded-full transition-transform duration-300 group-hover:scale-110",style:{background:v.hex,boxShadow:E?`0 0 0 2px #1F2822, 0 0 0 4px ${v.hex}, inset 0 2px 4px rgba(255,255,255,0.35)`:"inset 0 2px 4px rgba(255,255,255,0.3), inset 0 -3px 6px rgba(0,0,0,0.4)"}}),e.jsx("span",{className:`ticket ${E?"!text-[#F2E6D2]":""}`,children:v.nom})]},v.id)})})]}),e.jsx("div",{className:"hairline"}),e.jsxs("section",{children:[e.jsx("button",{type:"button",onClick:o,className:"ticket w-full rounded-full border border-atelier-line/50 py-2.5 !text-warm-muted transition-colors hover:border-[#E48A6A]/50 hover:!text-[#E48A6A]",children:"Réinitialiser ce modèle"}),e.jsx("p",{className:"mt-3 font-sans text-[12px] leading-relaxed text-warm-faint",children:"Tout est enregistré automatiquement et visible aussitôt dans le configurateur."}),l&&e.jsx("p",{className:"mt-2 font-sans text-[12px] text-[#E48A6A]",children:l})]})]})}function pl({onExit:t,onTest:r}){const{configs:s,setPhoto:n,setSeamPath:i,setStitch:a,resetModel:o,error:l}=Es(),{modeles:c}=J(),[u,x]=f.useState(c[0].id),[m,d]=f.useState("#E7D8B8"),g=s[u]??{},p=g.stitch??bt;return e.jsxs("div",{className:"flex h-screen w-screen flex-col overflow-hidden bg-atelier-bg text-[#EFE3D2]",children:[e.jsxs("header",{className:"flex items-center justify-between gap-4 border-b border-atelier-line/40 bg-atelier-deep/50 px-6 py-3.5 backdrop-blur-md",children:[e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx("button",{type:"button",onClick:t,className:"ticket !text-warm-muted transition-colors duration-200 hover:!text-[#F2E6D2]",children:"← Retour"}),e.jsx("span",{className:"h-7 w-px bg-atelier-line/50"}),e.jsxs("div",{className:"leading-tight",children:[e.jsx("span",{className:"ticket",children:"Atelier · outil"}),e.jsx("h1",{className:"display text-lg text-[#F4E9D7]",children:"Studio couture"})]})]}),e.jsx("div",{className:"flex items-center gap-1 rounded-full border border-atelier-line/40 bg-black/20 p-1",children:c.map(b=>{var E,M;const h=b.id===u,v=!!((E=s[b.id])!=null&&E.photo)||!!((M=s[b.id])!=null&&M.seamPath);return e.jsxs("button",{type:"button",onClick:()=>x(b.id),className:`relative rounded-full px-4 py-1.5 font-sans text-[13px] transition-colors duration-200 ${h?"bg-warm-amber text-atelier-deep":"text-warm-muted hover:text-[#F2E6D2]"}`,children:[b.nom,v&&!h&&e.jsx("span",{className:"absolute right-1.5 top-1.5 h-1.5 w-1.5 rounded-full bg-warm-amber"})]},b.id)})}),e.jsx("button",{type:"button",onClick:()=>r(u),className:"rounded-full border border-warm-amber/50 px-5 py-2 font-sans text-[13px] font-semibold text-warm-amber transition-all duration-300 hover:bg-warm-amber hover:text-atelier-deep",children:"Tester dans le configurateur"})]}),e.jsxs("div",{className:"grid min-h-0 flex-1 grid-cols-1 lg:grid-cols-[1fr_360px]",children:[e.jsx("div",{className:"relative min-h-0 p-6",children:e.jsx("div",{className:"relative h-full w-full overflow-hidden rounded-2xl border border-atelier-line/40 bg-atelier-deep shadow-atelier",children:e.jsx(il,{modelId:u,photo:g.photo,initialSeamPath:g.seamPath,stitch:p,threadHex:m,onSeamPathChange:b=>i(u,b||void 0)},u)})}),e.jsx("aside",{className:"min-h-0 overflow-y-auto border-t border-atelier-line/40 bg-atelier-deep/40 p-6 lg:border-l lg:border-t-0",children:e.jsx(dl,{photo:g.photo,stitch:p,threadHex:m,onThread:d,onPhoto:b=>n(u,b),onStitch:b=>a(u,b),onReset:()=>o(u),error:l})})]})]})}function ml(){return e.jsxs("svg",{"aria-hidden":!0,className:"pointer-events-none fixed inset-0 z-50 h-full w-full opacity-[0.05] mix-blend-soft-light",children:[e.jsxs("filter",{id:"page-grain",children:[e.jsx("feTurbulence",{type:"fractalNoise",baseFrequency:"0.8",numOctaves:"2",stitchTiles:"stitch"}),e.jsx("feColorMatrix",{type:"saturate",values:"0"})]}
22),e.jsx("rect",{width:"100%",height:"100%",filter:"url(#page-grain)"})]})}const At=".legal-scroll";function xl({doc:t,onHome:r,onDoc:s}){const n=Bt(t),i=Pi(),a=n.id==="cgv"||n.id==="livraison-retours";f.useEffect(()=>{const l=window.location.hash.slice(1);if(!l)return;const c=requestAnimationFrame(()=>Ne(window.document.querySelector(At),l));return()=>cancelAnimationFrame(c)},[n.id]),f.useEffect(()=>{var l;(l=window.document.querySelector(At))==null||l.scrollTo({top:0})},[n.id]);const o=ft.filter(l=>l.id!==n.id);return e.jsxs("div",{className:"legal-scroll h-screen w-screen overflow-y-auto bg-atelier-bg text-[#EFE3D2]",children:[e.jsx("header",{className:"sticky top-0 z-40 border-b border-atelier-line/30 bg-atelier-deep/70 backdrop-blur-md",children:e.jsxs("nav",{className:"mx-auto flex h-[72px] max-w-[1280px] items-center justify-between px-6 md:px-10",children:[e.jsx("a",{href:"/",onClick:I(r),"aria-label":"NÛMENT — accueil",className:"flex items-center gap-3 opacity-90 transition-opacity duration-300 hover:opacity-100",children:e.jsx("img",{src:"/logo-blanc.png",alt:"NÛMENT",className:"h-11 w-auto"})}),e.jsxs("a",{href:"/",onClick:I(r),className:"ticket inline-flex items-center gap-2 !text-warm-muted transition-colors duration-300 hover:!text-[#F2E6D2]",children:[e.jsx(z,{className:"h-3 w-3 rotate-180"}),"Retour à l’accueil"]})]})}),e.jsx("section",{className:"px-6 pb-14 pt-20 md:px-10 md:pt-24",children:e.jsxs("div",{className:"mx-auto max-w-[820px]",children:[e.jsx("span",{className:"ticket",children:n.ticket}),e.jsx("h1",{className:"display mt-4 text-[clamp(32px,5vw,56px)] font-light leading-[1.05] text-[#F4E9D7]",children:n.titre}),e.jsx(ue,{className:"my-7 max-w-[240px]"}),e.jsx("p",{className:"max-w-[62ch] text-[15px] leading-relaxed text-warm-muted md:text-base",children:n.chapo}),e.jsxs("p",{className:"mt-6 font-mono text-[11px] text-warm-faint",children:["En vigueur au ","…"," · ",R.marque," ·"," ",R.domaine]})]})}),(i>0||a&&!0)&&e.jsx("section",{className:"px-6 pb-4 md:px-10",children:e.jsxs("div",{className:"mx-auto flex max-w-[820px] flex-col gap-3",children:[i>0&&e.jsxs("div",{role:"status",className:"rounded-xl border border-dashed border-[#D9576B]/60 bg-[#D9576B]/10 p-4 md:p-5",children:[e.jsx("p",{className:"font-mono text-[10px] uppercase tracking-ticket text-[#E58897]",children:"Document incomplet — ne pas publier en l’état"}),e.jsxs("p",{className:"mt-2 text-[14px] leading-relaxed text-warm-muted",children:[i," information",i>1?"s":""," d’identité",i>1?" restent":" reste"," à renseigner. Elles apparaissent en pastille dans le texte. Tout se remplit dans un seul fichier :"," ",e.jsx("code",{className:"rounded bg-black/25 px-1.5 py-0.5 font-mono text-[12px] text-warm-amber",children:"src/legal/infos.ts"}),"."]})]}),a&&!0&&e.jsxs("div",{className:"rounded-xl border border-atelier-line/50 bg-atelier-deep/60 p-4 shadow-rim md:p-5",children:[e.jsx("p",{className:"ticket",children:"La boutique en ligne n’est pas encore ouverte"}),e.jsxs("p",{className:"mt-2 text-[14px] leading-relaxed text-warm-muted",children:["Ce document décrit la vente en ligne telle qu’elle fonctionnera. Aujourd’hui, une commande se passe en écrivant à l’atelier :"," ",e.jsx("a",{href:`mailto:${R.email??""}`,className:"text-warm-amber underline decoration-warm-amber/40 underline-offset-4 transition-colors duration-300 hover:text-warm-glow",children:R.email}),"."]})]})]})}),e.jsx("section",{className:"px-6 py-10 md:px-10",children:e.jsxs("div",{className:"mx-auto max-w-[820px]",children:[e.jsx("p",{className:"ticket",children:"Sommaire"}),e.jsx("ol",{className:"mt-5 flex flex-col gap-px",children:n.articles.map((l,c)=>e.jsx("li",{children:e.jsxs("a",{href:`#${l.id}`,onClick:u=>{u.metaKey||u.ctrlKey||u.shiftKey||u.altKey||u.button!==0||(u.preventDefault(),window.history.replaceState(null,"",`${n.chemin}#${l.id}`),Ne(window.document.querySelector(At),l.id))}
22,className:"group flex items-baseline gap-4 rounded py-1.5 transition-colors duration-300 hover:bg-white/[0.03] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-warm-amber",children:[e.jsx("span",{className:"font-mono text-[11px] tabular-nums text-warm-amber/70",children:String(c+1).padStart(2,"0")}),e.jsx("span",{className:"text-[14.5px] text-warm-muted transition-colors duration-300 group-hover:text-[#F2E6D2]",children:l.titre})]})},l.id))})]})}),e.jsx("section",{className:"border-t border-atelier-line/30 px-6 py-16 md:px-10",children:e.jsx("div",{className:"mx-auto flex max-w-[820px] flex-col gap-14",children:n.articles.map((l,c)=>e.jsxs("article",{id:l.id,className:"scroll-mt-24",children:[e.jsxs("div",{className:"flex items-baseline gap-4",children:[e.jsx("span",{className:"display text-2xl font-light leading-none tabular-nums text-warm-amber/70",children:String(c+1).padStart(2,"0")}),e.jsx("h2",{className:"display text-2xl font-light leading-tight text-[#F4E9D7] md:text-[28px]",children:l.titre})]}),e.jsx("div",{className:"mt-5 flex max-w-[68ch] flex-col gap-4",children:l.corps})]},l.id))})}),e.jsx("section",{className:"border-t border-atelier-line/30 bg-atelier-deep/40 px-6 py-16 md:px-10",children:e.jsxs("div",{className:"mx-auto max-w-[820px]",children:[e.jsx("p",{className:"ticket",children:"Les autres documents"}),e.jsx("div",{className:"mt-6 grid gap-3 sm:grid-cols-3",children:o.map(l=>e.jsxs("a",{href:l.chemin,onClick:I(()=>s(l.id)),className:"group flex items-center justify-between gap-3 rounded-xl border border-atelier-line/40 px-5 py-4 transition-all duration-300 hover:border-warm-amber/40 hover:bg-white/[0.03]",children:[e.jsx("span",{className:"text-[14px] text-warm-muted transition-colors duration-300 group-hover:text-[#F2E6D2]",children:l.titreCourt}),e.jsx(z,{className:"h-3.5 w-3.5 shrink-0 text-warm-amber transition-transform duration-300 group-hover:translate-x-1"})]},l.id))})]})}),e.jsxs("footer",{className:"border-t border-atelier-line/30 bg-atelier-deep px-6 py-14 md:px-10",children:[e.jsxs("div",{className:"mx-auto flex max-w-[1280px] flex-col gap-8 md:flex-row md:items-end md:justify-between",children:[e.jsxs("div",{children:[e.jsx("img",{src:"/logo-blanc.png",alt:"NÛMENT",className:"h-10 w-auto opacity-90"}),e.jsx("p",{className:"ticket mt-4",children:"Atelier de maroquinerie · Cousu main"})]}),e.jsxs("div",{className:"flex items-center gap-7",children:[e.jsx("a",{href:"/",onClick:I(r),className:"ticket !text-warm-muted transition-colors duration-300 hover:!text-[#F2E6D2]",children:"Accueil"}),e.jsx("a",{href:R.instagram,target:"_blank",rel:"noopener noreferrer","aria-label":"Instagram NÛMENT",className:"flex h-9 w-9 items-center justify-center rounded-full text-warm-muted transition-all duration-300 hover:bg-white/[0.06] hover:text-[#F2E6D2]",children:e.jsx(Me,{className:"h-[18px] w-[18px]"})})]})]}),e.jsxs("div",{className:"mx-auto mt-10 flex max-w-[1280px] flex-col gap-4 border-t border-atelier-line/20 pt-6 md:flex-row md:items-center md:justify-between",children:[e.jsxs("p",{className:"font-mono text-[11px] text-warm-faint",children:["© ",new Date().getFullYear()," ",R.marque,". Tous droits réservés."]}),e.jsx(gt,{onDoc:s,actif:n.id})]})]})]})}const be={initial:{opacity:0,scale:.99},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.99},transition:{duration:.4,ease:[.22,1,.36,1]}},Ce=typeof window<"u"?ks(window.location.pathname,window.location.search):{view:"home"};function hl(){const{modeles:t}=J(),[r,s]=f.useState(Ce.view),[n,i]=f.useState(Ce.modelId),[a,o]=f.useState(Ce.doc),[l,c]=f.useState(Ce.numero),[u,x]=f.useState(Ce.hash),m=h=>{const v=lt(h);v!==window.location.pathname+window.location.search&&window.history.pushState(null,"",v),document.title=at(h),i(h.modelId),o(h.doc),c(h.numero),x(h.hash),s(h.view)},d=h=>m({view:"piece",numero:h}),g=h=>m({view:"legal",doc:h}),p=h=>m({view:"configurator",modelId:h??Rt().id}),b=h=>{const v={view:"configurator",modelId:h};window.history.replaceState(null,"",lt(v)),document.title=at(v),i(h)};return f.useEffect(()=>{const h=()=>{const v=ks(window.location.pathname,window.location.search);document.title=at(v),i(v.modelId),o(v.doc),c(v.numero),x(v.hash),s(v.view)};return window.addEventListener("popstate",h),()=>window.removeEventListener("popstate",h)},[]),f.useEffect(()=>{const h=lt(Ce);window.location.pathname+window.location.search!==h&&window.history.replaceState(null,"",h),document.title=at(Ce)},[]),e.jsxs(uo,{children:[e.jsx(ml,{}),e.jsxs(Ee,{mode:"wait",children:[r==="home"&&e.jsx(T.div,{...be,children:e.jsx(zi,{onEnter:p,onSavoirFaire:()=>m({view:"savoir-faire"}),onGalerie:h=>m({view:"galerie",hash:h}),onVendues:h=>m({view:"pieces-vendues",hash:h}),onLegal:g})},"home"),r==="savoir-faire"&&e.jsx(T.div,{...be,children:e.jsx(bo,{onHome:()=>m({view:"home"}),onEnter:p,onLegal:g})},"savoir-faire"),r==="galerie"&&e.jsx(T.div,{...be,children:e.jsx(zo,{rubrique:u,onHome:h=>m({view:"home",hash:h}),onEnter:p,onVendues:h=>m({view:"pieces-vendues",hash:h}),onPiece:d,onLegal:g})},"galerie"),r==="pieces-vendues"&&e.jsx(T.div,{...be,children:e.jsx(Vo,{onHome:h=>m({view:"home",hash:h}),onEnter:p,onGalerie:h=>m({view:"galerie",hash:h}),onPiece:d,onLegal:g})},"pieces-vendues"),r==="piece"&&e.jsx(T.div,{...be,children:e.jsx(sl,{numero:l,onHome:h=>m({view:"home",hash:h}),onEnter:p,onGalerie:h=>m({view:"galerie",hash:h}),onVendues:h=>m({view:"pieces-vendues",hash:h}),onLegal:g})},`piece-${l}`),r==="configurator"&&e.jsx(T.div,{...be,children:e.jsx(mo,{onHome:h=>m({view:"home",hash:h}),initialModelId:n,onModelChange:b})},"configurator"),r==="studio"&&e.jsx(T.div,{...be,children:e.jsx(pl,{onExit:()=>m({view:"home"}),onTest:p})},"studio"),r==="legal"&&e.jsx(T.div,{...be,children:e.jsx(xl,{doc:a,onHome:()=>m({view:"home"}),onDoc:g})},`legal-${a}`)]}),!1]})}ri();mn.createRoot(document.getElementById("root")).render(e.jsx(xn,{reducedMotion:"user",children:e.jsx(hl,{})}));

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.