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.