From 0c9a0ccd957b02fbeac5c78f6b99ac871423183c Mon Sep 17 00:00:00 2001 From: Dorian Date: Mon, 4 May 2026 11:02:46 +0100 Subject: [PATCH] bundles: locale-aware copy via i18n keys Bundle data was carrying localized strings (name, usage, items, description, imageAlt, badge) directly, so EN visitors saw German copy on the bundle page and home grid. Strings are now keyed under bundle.. in the i18n catalogue (DE + EN); src/api/bundles.js keeps only structural data + i18n key references. HomePage builds a localizedBundles computed that resolves the keys through t() before passing to the Bundles design-system component, so the existing component stays agnostic of i18n. BundlePage exposes a `bundleCopy` computed for the same reason, and resolvedItems now maps over `itemKeys` instead of static labels. Co-Authored-By: Claude Opus 4.7 (1M context) --- ...w-gdn9InxT.js => AboutPreview-CIOfJvB7.js} | 2 +- ...n-vY6Tq1SX.js => AboutSection-CL807vLJ.js} | 2 +- ...ep-33mJvllz.js => AccountStep-BFhQ7GNC.js} | 2 +- ...-BkRr1wPZ.js => BadgesSection-CkyXakZG.js} | 2 +- ...ard-DAFU1tCy.js => BundleCard-BwM48yom.js} | 2 +- ...tv8Vn.js => BundleCardSection-BrOSqvIT.js} | 2 +- dist/assets/BundlePage-DQwum9YX.js | 1 - dist/assets/BundlePage-DpdymyeR.js | 1 + ...undles-vXh1yjVW.js => Bundles-D-hn22_F.js} | 2 +- ...CkVzcOH5.js => BundlesPreview-BP6X0hcc.js} | 2 +- ...H91qOwpu.js => BundlesSection-B0VFhYT5.js} | 2 +- ...KoHqSDMf.js => ButtonsSection-DBMHUJ00.js} | 2 +- ...n-B3kiixC1.js => CardsSection-BkkgZLy2.js} | 2 +- ...wer-CY64MRh3.js => CartDrawer-BdjtcjVt.js} | 2 +- ...mhlUK.js => CartDrawerSection-BP2yB8Il.js} | 2 +- ...tStep-CdXnBnBz.js => CartStep-DiiuIdaQ.js} | 2 +- ...e-C3nXYV-J.js => CategoryPage-C13D9bYm.js} | 2 +- ...e-D8HLqXmZ.js => CheckoutPage-D17PLp2q.js} | 2 +- ....js => CheckoutStepperSection-Ge9KdcMl.js} | 2 +- ...uAs.js => CheckoutSuccessPage-CEoAUfvD.js} | 2 +- ...-CDSA-8Ih.js => ColorsSection-BG3EQ_hW.js} | 2 +- ...t-vpRFySfF.js => DesignLayout-GT9VEiqC.js} | 2 +- ...-Q.js => ExpressCheckoutMount-E5l1VQNt.js} | 2 +- ...{Footer-Dr1HAyhH.js => Footer-CjMyQsRh.js} | 2 +- ...-lHZQMLYO.js => FooterSection-Wolf4Q1E.js} | 2 +- ...ew-BtX2DGOe.js => HeroPreview-Ch-2oL5j.js} | 2 +- ...on-3NUZtiYX.js => HeroSection-BRzUlmac.js} | 2 +- dist/assets/HomePage-C05wCZBp.js | 1 - dist/assets/HomePage-CKcFKreU.js | 1 + ...n-DOLOWVDB.js => IconsSection-BM7yDL_q.js} | 2 +- ...---ZT8A9x.js => InputsSection-Bu8rXleP.js} | 2 +- ...nrBiEg.js => LanguageSwitcher-BeyDSAjE.js} | 2 +- ...js => LanguageSwitcherSection-Dtsjs09I.js} | 2 +- ...Page-CPT0rvbV.js => LegalPage-C3O9eli6.js} | 2 +- ...Page-CE3x8XXV.js => LoginPage-DA7VrN97.js} | 2 +- ...on-BVvBe8J1.js => LogoSection-B6T2G07M.js} | 2 +- ...-D4K1Eqdn.js => MotionSection-DCbKE7o0.js} | 2 +- ...{Navbar-CjSgO-pN.js => Navbar-DV-_CpC6.js} | 2 +- ...-w5I1VFBz.js => NavbarPreview-U7Yxp82K.js} | 2 +- ...-D7LIrgm-.js => NavbarSection-B40-eO86.js} | 2 +- ...ep-CH9jIvBB.js => PaymentStep-B8OqTBgv.js} | 2 +- ...rd-in9cKIvh.js => ProductCard-DOWZ0r0v.js} | 2 +- ...ge-D2WgwGqA.js => ProductPage-B83nQV35.js} | 2 +- ...drj_ze2.js => ProductsSection-iCLkxHhE.js} | 2 +- ....js => QuantityStepperSection-DW-4ai30.js} | 2 +- ...n-DH8bo5NR.js => RadiiSection-Dx4Dc4Um.js} | 2 +- ...e-BSRe3fDL.js => RegisterPage-CSWoqaNC.js} | 2 +- ...E.js => RevitalizationPreview-DyyDDCok.js} | 2 +- ...q.js => RevitalizationSection-CVe4Akw2.js} | 2 +- ...{Search-CYp2cIdv.js => Search-tVfC5YRi.js} | 2 +- ...-CnnxGhHi.js => SearchSection-C1TOhMKH.js} | 2 +- ...MafgweHg.js => ShadowsSection-B3emQnFX.js} | 2 +- ...p-DoGmuN1g.js => ShippingStep-Ck-wwF6-.js} | 2 +- ...pPage-0yHXBXoR.js => ShopPage-C5uaYadN.js} | 2 +- ...LMEXX.js => TypographySection-Dhuiz30v.js} | 2 +- dist/assets/bundles-9afzAd-j.js | 1 + dist/assets/bundles-mf4yhmCB.js | 1 - .../{i18n-yr4x-3Jp.js => i18n-XDSWEyNo.js} | 4 +- dist/assets/index-BmZA7OdA.css | 2 + dist/assets/index-BseuBeY_.css | 2 - .../{index-BJpluVLx.js => index-wrFvFqcV.js} | 4 +- dist/index.html | 4 +- src/api/bundles.js | 77 ++++++++++--------- src/i18n/messages.js | 57 +++++++++++++- src/pages/BundlePage.vue | 66 ++++++++++------ src/pages/HomePage.vue | 27 +++++-- 66 files changed, 222 insertions(+), 129 deletions(-) rename dist/assets/{AboutPreview-gdn9InxT.js => AboutPreview-CIOfJvB7.js} (89%) rename dist/assets/{AboutSection-vY6Tq1SX.js => AboutSection-CL807vLJ.js} (96%) rename dist/assets/{AccountStep-33mJvllz.js => AccountStep-BFhQ7GNC.js} (98%) rename dist/assets/{BadgesSection-BkRr1wPZ.js => BadgesSection-CkyXakZG.js} (96%) rename dist/assets/{BundleCard-DAFU1tCy.js => BundleCard-BwM48yom.js} (98%) rename dist/assets/{BundleCardSection-Bj-tv8Vn.js => BundleCardSection-BrOSqvIT.js} (96%) delete mode 100644 dist/assets/BundlePage-DQwum9YX.js create mode 100644 dist/assets/BundlePage-DpdymyeR.js rename dist/assets/{Bundles-vXh1yjVW.js => Bundles-D-hn22_F.js} (98%) rename dist/assets/{BundlesPreview-CkVzcOH5.js => BundlesPreview-BP6X0hcc.js} (92%) rename dist/assets/{BundlesSection-H91qOwpu.js => BundlesSection-B0VFhYT5.js} (98%) rename dist/assets/{ButtonsSection-KoHqSDMf.js => ButtonsSection-DBMHUJ00.js} (98%) rename dist/assets/{CardsSection-B3kiixC1.js => CardsSection-BkkgZLy2.js} (97%) rename dist/assets/{CartDrawer-CY64MRh3.js => CartDrawer-BdjtcjVt.js} (98%) rename dist/assets/{CartDrawerSection-BmSmhlUK.js => CartDrawerSection-BP2yB8Il.js} (92%) rename dist/assets/{CartStep-CdXnBnBz.js => CartStep-DiiuIdaQ.js} (98%) rename dist/assets/{CategoryPage-C3nXYV-J.js => CategoryPage-C13D9bYm.js} (94%) rename dist/assets/{CheckoutPage-D8HLqXmZ.js => CheckoutPage-D17PLp2q.js} (97%) rename dist/assets/{CheckoutStepperSection-Ce2xE9MG.js => CheckoutStepperSection-Ge9KdcMl.js} (97%) rename dist/assets/{CheckoutSuccessPage-CGmZNuAs.js => CheckoutSuccessPage-CEoAUfvD.js} (95%) rename dist/assets/{ColorsSection-CDSA-8Ih.js => ColorsSection-BG3EQ_hW.js} (95%) rename dist/assets/{DesignLayout-vpRFySfF.js => DesignLayout-GT9VEiqC.js} (97%) rename dist/assets/{ExpressCheckoutMount-6qxJ0y-Q.js => ExpressCheckoutMount-E5l1VQNt.js} (98%) rename dist/assets/{Footer-Dr1HAyhH.js => Footer-CjMyQsRh.js} (97%) rename dist/assets/{FooterSection-lHZQMLYO.js => FooterSection-Wolf4Q1E.js} (95%) rename dist/assets/{HeroPreview-BtX2DGOe.js => HeroPreview-Ch-2oL5j.js} (96%) rename dist/assets/{HeroSection-3NUZtiYX.js => HeroSection-BRzUlmac.js} (95%) delete mode 100644 dist/assets/HomePage-C05wCZBp.js create mode 100644 dist/assets/HomePage-CKcFKreU.js rename dist/assets/{IconsSection-DOLOWVDB.js => IconsSection-BM7yDL_q.js} (98%) rename dist/assets/{InputsSection---ZT8A9x.js => InputsSection-Bu8rXleP.js} (96%) rename dist/assets/{LanguageSwitcher-cknrBiEg.js => LanguageSwitcher-BeyDSAjE.js} (95%) rename dist/assets/{LanguageSwitcherSection-D2LqabS_.js => LanguageSwitcherSection-Dtsjs09I.js} (96%) rename dist/assets/{LegalPage-CPT0rvbV.js => LegalPage-C3O9eli6.js} (92%) rename dist/assets/{LoginPage-CE3x8XXV.js => LoginPage-DA7VrN97.js} (94%) rename dist/assets/{LogoSection-BVvBe8J1.js => LogoSection-B6T2G07M.js} (97%) rename dist/assets/{MotionSection-D4K1Eqdn.js => MotionSection-DCbKE7o0.js} (98%) rename dist/assets/{Navbar-CjSgO-pN.js => Navbar-DV-_CpC6.js} (97%) rename dist/assets/{NavbarPreview-w5I1VFBz.js => NavbarPreview-U7Yxp82K.js} (91%) rename dist/assets/{NavbarSection-D7LIrgm-.js => NavbarSection-B40-eO86.js} (95%) rename dist/assets/{PaymentStep-CH9jIvBB.js => PaymentStep-B8OqTBgv.js} (98%) rename dist/assets/{ProductCard-in9cKIvh.js => ProductCard-DOWZ0r0v.js} (96%) rename dist/assets/{ProductPage-D2WgwGqA.js => ProductPage-B83nQV35.js} (98%) rename dist/assets/{ProductsSection-Ddrj_ze2.js => ProductsSection-iCLkxHhE.js} (94%) rename dist/assets/{QuantityStepperSection-CuhhLexi.js => QuantityStepperSection-DW-4ai30.js} (97%) rename dist/assets/{RadiiSection-DH8bo5NR.js => RadiiSection-Dx4Dc4Um.js} (93%) rename dist/assets/{RegisterPage-BSRe3fDL.js => RegisterPage-CSWoqaNC.js} (96%) rename dist/assets/{RevitalizationPreview-B9kCIeEE.js => RevitalizationPreview-DyyDDCok.js} (91%) rename dist/assets/{RevitalizationSection-BxNWlx7q.js => RevitalizationSection-CVe4Akw2.js} (94%) rename dist/assets/{Search-CYp2cIdv.js => Search-tVfC5YRi.js} (98%) rename dist/assets/{SearchSection-CnnxGhHi.js => SearchSection-C1TOhMKH.js} (97%) rename dist/assets/{ShadowsSection-MafgweHg.js => ShadowsSection-B3emQnFX.js} (93%) rename dist/assets/{ShippingStep-DoGmuN1g.js => ShippingStep-Ck-wwF6-.js} (98%) rename dist/assets/{ShopPage-0yHXBXoR.js => ShopPage-C5uaYadN.js} (95%) rename dist/assets/{TypographySection-BRdLMEXX.js => TypographySection-Dhuiz30v.js} (96%) create mode 100644 dist/assets/bundles-9afzAd-j.js delete mode 100644 dist/assets/bundles-mf4yhmCB.js rename dist/assets/{i18n-yr4x-3Jp.js => i18n-XDSWEyNo.js} (70%) create mode 100644 dist/assets/index-BmZA7OdA.css delete mode 100644 dist/assets/index-BseuBeY_.css rename dist/assets/{index-BJpluVLx.js => index-wrFvFqcV.js} (52%) diff --git a/dist/assets/AboutPreview-gdn9InxT.js b/dist/assets/AboutPreview-CIOfJvB7.js similarity index 89% rename from dist/assets/AboutPreview-gdn9InxT.js rename to dist/assets/AboutPreview-CIOfJvB7.js index 06766f9..e9c5e84 100644 --- a/dist/assets/AboutPreview-gdn9InxT.js +++ b/dist/assets/AboutPreview-CIOfJvB7.js @@ -1 +1 @@ -import{C as e,G as t,m as n,o as r,u as i}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{t as a}from"./i18n-yr4x-3Jp.js";import{t as o}from"./About-DjMvUnDP.js";var s={class:`min-h-screen bg-cream`},c={__name:`AboutPreview`,setup(c){let{t:l}=a(),u=r(()=>[1,2,3].map(e=>({year:l(`about.milestone.${e}.year`),title:l(`about.milestone.${e}.title`),text:l(`about.milestone.${e}.text`)})));return(r,a)=>(e(),i(`div`,s,[n(o,{eyebrow:t(l)(`about.eyebrow`),headline:t(l)(`about.headline`),sub:t(l)(`about.sub`),milestones:u.value},null,8,[`eyebrow`,`headline`,`sub`,`milestones`])]))}};export{c as default}; \ No newline at end of file +import{C as e,G as t,m as n,o as r,u as i}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{t as a}from"./i18n-XDSWEyNo.js";import{t as o}from"./About-DjMvUnDP.js";var s={class:`min-h-screen bg-cream`},c={__name:`AboutPreview`,setup(c){let{t:l}=a(),u=r(()=>[1,2,3].map(e=>({year:l(`about.milestone.${e}.year`),title:l(`about.milestone.${e}.title`),text:l(`about.milestone.${e}.text`)})));return(r,a)=>(e(),i(`div`,s,[n(o,{eyebrow:t(l)(`about.eyebrow`),headline:t(l)(`about.headline`),sub:t(l)(`about.sub`),milestones:u.value},null,8,[`eyebrow`,`headline`,`sub`,`milestones`])]))}};export{c as default}; \ No newline at end of file diff --git a/dist/assets/AboutSection-vY6Tq1SX.js b/dist/assets/AboutSection-CL807vLJ.js similarity index 96% rename from dist/assets/AboutSection-vY6Tq1SX.js rename to dist/assets/AboutSection-CL807vLJ.js index 86cadc8..f527ce4 100644 --- a/dist/assets/AboutSection-vY6Tq1SX.js +++ b/dist/assets/AboutSection-CL807vLJ.js @@ -1,4 +1,4 @@ -import{C as e,G as t,c as n,ft as r,j as i,m as a,p as o,s}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{t as c}from"./i18n-yr4x-3Jp.js";import{t as l}from"./SectionShell-CyPmh1h8.js";import{t as u}from"./DevicePreview-BQG4JYnV.js";var d={class:`eyebrow mb-5`},f=`/design/preview/about`,p={__name:`AboutSection`,setup(p){let{t:m}=c();return(c,p)=>(e(),n(l,{eyebrow:t(m)(`ds.eyebrow.components`),title:t(m)(`ds.about.title`),description:t(m)(`ds.about.description`),wide:``},{default:i(()=>[s(`section`,null,[a(u,{src:f,initial:`desktop`,height:820})]),s(`section`,null,[s(`h2`,d,r(t(m)(`ds.heading.usage`)),1),p[0]||=s(`div`,{class:`rounded-md border border-line bg-paper p-6 font-mono text-[12px] text-ink`},[s(`pre`,{class:`whitespace-pre-wrap`},`(e(),n(l,{eyebrow:t(m)(`ds.eyebrow.components`),title:t(m)(`ds.about.title`),description:t(m)(`ds.about.description`),wide:``},{default:i(()=>[s(`section`,null,[a(u,{src:f,initial:`desktop`,height:820})]),s(`section`,null,[s(`h2`,d,r(t(m)(`ds.heading.usage`)),1),p[0]||=s(`div`,{class:`rounded-md border border-line bg-paper p-6 font-mono text-[12px] text-ink`},[s(`pre`,{class:`whitespace-pre-wrap`},`V.accountMode===`guest`),J=d(()=>V.accountMode===`signin`),Y=d(()=>V.accountMode===`register`),X=d(()=>!Y.value||V.password===V.passwordConfirm),Z=d(()=>V.email?q.value?!1:!!(!V.password||V.password.length<8||Y.value&&!X.value):!0);async function Q(){W.value=``,U.value=!0;try{J.value?await b({email:V.email,password:V.password}):Y.value&&await x({email:V.email,password:V.password,firstName:V.firstName,lastName:V.lastName,acceptsMarketing:V.acceptsMarketing}),V.persist(),H.push(`/checkout/shipping`)}catch(e){W.value=e?.message||B(`checkout.error.generic`)}finally{U.value=!1}}return i(async()=>{let e=await S();e?.user?.email&&!V.email&&V.update({email:e.user.email})}),(e,i)=>{let d=n(`RouterLink`);return t(),h(p,null,[m(`section`,E,[m(`div`,{role:`tablist`,"aria-label":r(B)(`checkout.account.tabsLabel`),class:`flex w-full rounded-pill border border-line bg-paper p-1`},[(t(),h(p,null,a(G,e=>m(`button`,{key:e.key,role:`tab`,type:`button`,"aria-selected":r(V).accountMode===e.key,class:g([`flex-1 px-4 py-2 rounded-pill text-[13px] font-semibold tracking-label transition-colors duration-base text-center`,r(V).accountMode===e.key?`bg-brand text-cream`:`text-brand hover:bg-cream`]),onClick:t=>K(e.key)},s(r(B)(e.label)),11,O)),64))],8,D),m(`form`,{class:`flex flex-col gap-5 md:min-h-[28rem]`,novalidate:``,onSubmit:_(Q,[`prevent`])},[u(T,{"model-value":r(V).email,label:r(B)(`checkout.field.email`),type:`email`,required:``,placeholder:r(B)(`checkout.placeholder.email`),hint:q.value?r(B)(`checkout.hint.email`):``,"onUpdate:modelValue":i[0]||=e=>r(V).update({email:e})},null,8,[`model-value`,`label`,`placeholder`,`hint`]),Y.value?(t(),h(`div`,k,[u(T,{"model-value":r(V).firstName,label:r(B)(`checkout.field.firstName`),"onUpdate:modelValue":i[1]||=e=>r(V).update({firstName:e})},null,8,[`model-value`,`label`]),u(T,{"model-value":r(V).lastName,label:r(B)(`checkout.field.lastName`),"onUpdate:modelValue":i[2]||=e=>r(V).update({lastName:e})},null,8,[`model-value`,`label`])])):l(``,!0),J.value||Y.value?(t(),o(T,{key:1,"model-value":r(V).password,label:r(B)(`checkout.field.password`),type:`password`,required:``,hint:Y.value?r(B)(`checkout.hint.password`):``,"onUpdate:modelValue":i[3]||=e=>r(V).update({password:e})},null,8,[`model-value`,`label`,`hint`])):l(``,!0),Y.value?(t(),o(T,{key:2,"model-value":r(V).passwordConfirm,label:r(B)(`checkout.field.passwordConfirm`),type:`password`,required:``,error:X.value?``:r(B)(`checkout.error.passwordMismatch`),"onUpdate:modelValue":i[4]||=e=>r(V).update({passwordConfirm:e})},null,8,[`model-value`,`label`,`error`])):l(``,!0),q.value||Y.value?(t(),h(`label`,A,[m(`input`,{checked:r(V).acceptsMarketing,type:`checkbox`,class:`w-5 h-5 rounded-xs border border-line accent-brand`,onChange:i[5]||=e=>r(V).update({acceptsMarketing:e.target.checked})},null,40,j),m(`span`,M,s(r(B)(`checkout.field.marketing`)),1)])):l(``,!0),W.value?(t(),h(`p`,N,s(W.value),1)):l(``,!0),J.value?(t(),h(`p`,P,[m(`a`,F,s(r(B)(`checkout.account.forgot`)),1)])):l(``,!0)],32)]),m(`footer`,I,[m(`div`,L,[u(d,{to:`/checkout/cart`,class:`flex-1 sm:flex-initial`},{default:c(()=>[u(C,{variant:`primary`,size:`lg`,block:``,type:`button`},{default:c(()=>[f(s(r(B)(`checkout.back`)),1)]),_:1})]),_:1}),m(`div`,R,[u(C,{variant:`accent`,size:`lg`,block:``,loading:U.value,disabled:Z.value,onClick:Q},{default:c(()=>[f(s(r(B)(`checkout.account.cta.continue`)),1)]),_:1},8,[`loading`,`disabled`])])])])],64)}}};export{z as default}; \ No newline at end of file +import{B as e,C as t,D as n,G as r,S as i,T as a,c as o,ft as s,j as c,l,m as u,o as d,p as f,r as p,s as m,u as h,ut as g}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{s as _}from"./runtime-dom.esm-bundler-CXLmyuFK.js";import{o as v}from"./vue-router-Cyqru1db.js";import{t as y}from"./i18n-XDSWEyNo.js";import{i as b,n as x,t as S}from"./api-DlB23x7f.js";import{t as C}from"./Button-D1Rp2Xe1.js";import{t as w}from"./checkout-CguIVnMk.js";import{t as T}from"./Input-B1vjqdSR.js";var E={class:`flex flex-col gap-6`},D=[`aria-label`],O=[`aria-selected`,`onClick`],k={key:0,class:`grid gap-5 md:grid-cols-2`},A={key:3,class:`inline-flex items-center gap-3 cursor-pointer select-none`},j=[`checked`],M={class:`text-sm text-ink`},N={key:4,class:`text-sm text-danger`,role:`alert`,"aria-live":`polite`},P={key:5,class:`text-[13px] text-muted`},F={href:`/account/reset-password`,class:`text-brand hover:underline`},I={class:`fixed inset-x-0 bottom-0 z-30 bg-cream border-t border-line`,role:`contentinfo`},L={class:`mx-auto w-full max-w-7xl px-6 sm:px-8 md:px-12 lg:px-16 py-3 flex gap-3 sm:justify-between`,style:{paddingBottom:`max(0.75rem, env(safe-area-inset-bottom))`}},R={class:`flex-1 sm:flex-initial`},z={__name:`AccountStep`,setup(z){let{t:B}=y(),V=w(),H=v(),U=e(!1),W=e(``),G=[{key:`guest`,label:`checkout.account.tab.guest`},{key:`signin`,label:`checkout.account.tab.signin`},{key:`register`,label:`checkout.account.tab.register`}];function K(e){W.value=``,V.setAccountMode(e)}let q=d(()=>V.accountMode===`guest`),J=d(()=>V.accountMode===`signin`),Y=d(()=>V.accountMode===`register`),X=d(()=>!Y.value||V.password===V.passwordConfirm),Z=d(()=>V.email?q.value?!1:!!(!V.password||V.password.length<8||Y.value&&!X.value):!0);async function Q(){W.value=``,U.value=!0;try{J.value?await b({email:V.email,password:V.password}):Y.value&&await x({email:V.email,password:V.password,firstName:V.firstName,lastName:V.lastName,acceptsMarketing:V.acceptsMarketing}),V.persist(),H.push(`/checkout/shipping`)}catch(e){W.value=e?.message||B(`checkout.error.generic`)}finally{U.value=!1}}return i(async()=>{let e=await S();e?.user?.email&&!V.email&&V.update({email:e.user.email})}),(e,i)=>{let d=n(`RouterLink`);return t(),h(p,null,[m(`section`,E,[m(`div`,{role:`tablist`,"aria-label":r(B)(`checkout.account.tabsLabel`),class:`flex w-full rounded-pill border border-line bg-paper p-1`},[(t(),h(p,null,a(G,e=>m(`button`,{key:e.key,role:`tab`,type:`button`,"aria-selected":r(V).accountMode===e.key,class:g([`flex-1 px-4 py-2 rounded-pill text-[13px] font-semibold tracking-label transition-colors duration-base text-center`,r(V).accountMode===e.key?`bg-brand text-cream`:`text-brand hover:bg-cream`]),onClick:t=>K(e.key)},s(r(B)(e.label)),11,O)),64))],8,D),m(`form`,{class:`flex flex-col gap-5 md:min-h-[28rem]`,novalidate:``,onSubmit:_(Q,[`prevent`])},[u(T,{"model-value":r(V).email,label:r(B)(`checkout.field.email`),type:`email`,required:``,placeholder:r(B)(`checkout.placeholder.email`),hint:q.value?r(B)(`checkout.hint.email`):``,"onUpdate:modelValue":i[0]||=e=>r(V).update({email:e})},null,8,[`model-value`,`label`,`placeholder`,`hint`]),Y.value?(t(),h(`div`,k,[u(T,{"model-value":r(V).firstName,label:r(B)(`checkout.field.firstName`),"onUpdate:modelValue":i[1]||=e=>r(V).update({firstName:e})},null,8,[`model-value`,`label`]),u(T,{"model-value":r(V).lastName,label:r(B)(`checkout.field.lastName`),"onUpdate:modelValue":i[2]||=e=>r(V).update({lastName:e})},null,8,[`model-value`,`label`])])):l(``,!0),J.value||Y.value?(t(),o(T,{key:1,"model-value":r(V).password,label:r(B)(`checkout.field.password`),type:`password`,required:``,hint:Y.value?r(B)(`checkout.hint.password`):``,"onUpdate:modelValue":i[3]||=e=>r(V).update({password:e})},null,8,[`model-value`,`label`,`hint`])):l(``,!0),Y.value?(t(),o(T,{key:2,"model-value":r(V).passwordConfirm,label:r(B)(`checkout.field.passwordConfirm`),type:`password`,required:``,error:X.value?``:r(B)(`checkout.error.passwordMismatch`),"onUpdate:modelValue":i[4]||=e=>r(V).update({passwordConfirm:e})},null,8,[`model-value`,`label`,`error`])):l(``,!0),q.value||Y.value?(t(),h(`label`,A,[m(`input`,{checked:r(V).acceptsMarketing,type:`checkbox`,class:`w-5 h-5 rounded-xs border border-line accent-brand`,onChange:i[5]||=e=>r(V).update({acceptsMarketing:e.target.checked})},null,40,j),m(`span`,M,s(r(B)(`checkout.field.marketing`)),1)])):l(``,!0),W.value?(t(),h(`p`,N,s(W.value),1)):l(``,!0),J.value?(t(),h(`p`,P,[m(`a`,F,s(r(B)(`checkout.account.forgot`)),1)])):l(``,!0)],32)]),m(`footer`,I,[m(`div`,L,[u(d,{to:`/checkout/cart`,class:`flex-1 sm:flex-initial`},{default:c(()=>[u(C,{variant:`primary`,size:`lg`,block:``,type:`button`},{default:c(()=>[f(s(r(B)(`checkout.back`)),1)]),_:1})]),_:1}),m(`div`,R,[u(C,{variant:`accent`,size:`lg`,block:``,loading:U.value,disabled:Z.value,onClick:Q},{default:c(()=>[f(s(r(B)(`checkout.account.cta.continue`)),1)]),_:1},8,[`loading`,`disabled`])])])])],64)}}};export{z as default}; \ No newline at end of file diff --git a/dist/assets/BadgesSection-BkRr1wPZ.js b/dist/assets/BadgesSection-CkyXakZG.js similarity index 96% rename from dist/assets/BadgesSection-BkRr1wPZ.js rename to dist/assets/BadgesSection-CkyXakZG.js index 650552f..d2ea5b1 100644 --- a/dist/assets/BadgesSection-BkRr1wPZ.js +++ b/dist/assets/BadgesSection-CkyXakZG.js @@ -1 +1 @@ -import{C as e,G as t,c as n,ft as r,j as i,m as a,p as o,s}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{t as c}from"./i18n-yr4x-3Jp.js";import{t as l}from"./Badge-DiccZCC_.js";import{t as u}from"./SectionShell-CyPmh1h8.js";import{t as d}from"./Card-GDlIV5WI.js";var f={class:`eyebrow mb-5`},p={class:`flex flex-wrap gap-3`},m={class:`eyebrow mb-5`},h={class:`flex flex-wrap gap-3`},g={__name:`BadgesSection`,setup(g){let{t:_}=c();return(c,g)=>(e(),n(u,{eyebrow:t(_)(`ds.eyebrow.components`),title:t(_)(`ds.badges.title`),description:t(_)(`ds.badges.description`)},{default:i(()=>[s(`section`,null,[s(`h2`,f,r(t(_)(`ds.heading.variants`)),1),a(d,{tone:`paper`},{default:i(()=>[s(`div`,p,[a(l,{variant:`neutral`},{default:i(()=>[o(r(t(_)(`ds.badges.neutral`)),1)]),_:1}),a(l,{variant:`brand`},{default:i(()=>[o(r(t(_)(`ds.badges.brand`)),1)]),_:1}),a(l,{variant:`accent`},{default:i(()=>[o(r(t(_)(`ds.badges.accent`)),1)]),_:1}),a(l,{variant:`subtle`},{default:i(()=>[o(r(t(_)(`ds.badges.subtle`)),1)]),_:1}),a(l,{variant:`success`},{default:i(()=>[o(r(t(_)(`ds.badges.success`)),1)]),_:1}),a(l,{variant:`warning`},{default:i(()=>[o(r(t(_)(`ds.badges.warning`)),1)]),_:1}),a(l,{variant:`danger`},{default:i(()=>[o(r(t(_)(`ds.badges.danger`)),1)]),_:1})])]),_:1})]),s(`section`,null,[s(`h2`,m,r(t(_)(`ds.heading.nonUppercase`)),1),a(d,{tone:`paper`},{default:i(()=>[s(`div`,h,[a(l,{variant:`brand`,uppercase:!1},{default:i(()=>[o(r(t(_)(`ds.badges.newRelease`)),1)]),_:1}),a(l,{variant:`accent`,uppercase:!1},{default:i(()=>[o(r(t(_)(`ds.badges.featured`)),1)]),_:1}),a(l,{variant:`subtle`,uppercase:!1},{default:i(()=>[...g[0]||=[o(`v2.1.0`,-1)]]),_:1})])]),_:1})])]),_:1},8,[`eyebrow`,`title`,`description`]))}};export{g as default}; \ No newline at end of file +import{C as e,G as t,c as n,ft as r,j as i,m as a,p as o,s}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{t as c}from"./i18n-XDSWEyNo.js";import{t as l}from"./Badge-DiccZCC_.js";import{t as u}from"./SectionShell-CyPmh1h8.js";import{t as d}from"./Card-GDlIV5WI.js";var f={class:`eyebrow mb-5`},p={class:`flex flex-wrap gap-3`},m={class:`eyebrow mb-5`},h={class:`flex flex-wrap gap-3`},g={__name:`BadgesSection`,setup(g){let{t:_}=c();return(c,g)=>(e(),n(u,{eyebrow:t(_)(`ds.eyebrow.components`),title:t(_)(`ds.badges.title`),description:t(_)(`ds.badges.description`)},{default:i(()=>[s(`section`,null,[s(`h2`,f,r(t(_)(`ds.heading.variants`)),1),a(d,{tone:`paper`},{default:i(()=>[s(`div`,p,[a(l,{variant:`neutral`},{default:i(()=>[o(r(t(_)(`ds.badges.neutral`)),1)]),_:1}),a(l,{variant:`brand`},{default:i(()=>[o(r(t(_)(`ds.badges.brand`)),1)]),_:1}),a(l,{variant:`accent`},{default:i(()=>[o(r(t(_)(`ds.badges.accent`)),1)]),_:1}),a(l,{variant:`subtle`},{default:i(()=>[o(r(t(_)(`ds.badges.subtle`)),1)]),_:1}),a(l,{variant:`success`},{default:i(()=>[o(r(t(_)(`ds.badges.success`)),1)]),_:1}),a(l,{variant:`warning`},{default:i(()=>[o(r(t(_)(`ds.badges.warning`)),1)]),_:1}),a(l,{variant:`danger`},{default:i(()=>[o(r(t(_)(`ds.badges.danger`)),1)]),_:1})])]),_:1})]),s(`section`,null,[s(`h2`,m,r(t(_)(`ds.heading.nonUppercase`)),1),a(d,{tone:`paper`},{default:i(()=>[s(`div`,h,[a(l,{variant:`brand`,uppercase:!1},{default:i(()=>[o(r(t(_)(`ds.badges.newRelease`)),1)]),_:1}),a(l,{variant:`accent`,uppercase:!1},{default:i(()=>[o(r(t(_)(`ds.badges.featured`)),1)]),_:1}),a(l,{variant:`subtle`,uppercase:!1},{default:i(()=>[...g[0]||=[o(`v2.1.0`,-1)]]),_:1})])]),_:1})])]),_:1},8,[`eyebrow`,`title`,`description`]))}};export{g as default}; \ No newline at end of file diff --git a/dist/assets/BundleCard-DAFU1tCy.js b/dist/assets/BundleCard-BwM48yom.js similarity index 98% rename from dist/assets/BundleCard-DAFU1tCy.js rename to dist/assets/BundleCard-BwM48yom.js index 85891e2..8660ab9 100644 --- a/dist/assets/BundleCard-DAFU1tCy.js +++ b/dist/assets/BundleCard-BwM48yom.js @@ -1 +1 @@ -import{C as e,G as t,O as n,T as r,c as i,ft as a,j as o,l as s,m as c,o as l,p as u,r as d,s as f,u as p,ut as m}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{t as h}from"./vue-router-Cyqru1db.js";import{t as g}from"./Icon-BCo6-bGH.js";import{t as _}from"./i18n-yr4x-3Jp.js";import{t as v}from"./Badge-DiccZCC_.js";import{t as y}from"./Button-D1Rp2Xe1.js";var b=[`src`,`alt`],x=[`src`,`alt`],S={class:`flex flex-col gap-1.5`},C={key:0,class:`text-xs font-semibold tracking-label text-muted uppercase`},w={class:`flex flex-col gap-1.5`},T={key:0,class:`text-sm text-muted tracking-label`},E={class:`flex flex-col gap-0.5`},D={class:`text-xs tracking-label text-muted uppercase`},O={class:`font-display text-2xl font-normal text-brand leading-none`},k={key:0,class:`text-xs text-muted mt-1`},A={key:1,class:`text-xs font-semibold tracking-label uppercase text-danger mt-1`},j=3,M={__name:`BundleCard`,props:{name:{type:String,required:!0},items:{type:Array,required:!0},price:{type:Number,required:!0},memberPrice:{type:Number,default:null},usage:{type:String,default:``},image:{type:String,required:!0},imageAlt:{type:String,default:``},badge:{type:String,default:``},badgeVariant:{type:String,default:`accent`,validator:e=>[`neutral`,`brand`,`accent`,`subtle`,`success`,`warning`,`danger`].includes(e)},tone:{type:String,default:`paper`,validator:e=>[`paper`,`cream`].includes(e)},layout:{type:String,default:`vertical`,validator:e=>[`vertical`,`horizontal`].includes(e)},inStock:{type:Boolean,default:!0},currency:{type:String,default:`€`},href:{type:String,default:``},imageFit:{type:String,default:`cover`,validator:e=>[`contain`,`cover`].includes(e)}},emits:[`add`],setup(M){function N(e){return typeof e==`string`&&e.startsWith(`/`)&&!e.startsWith(`//`)}let P=M,{t:F}=_(),I={paper:{surface:`bg-paper`,media:`bg-cream`,border:`border-line`},cream:{surface:`bg-cream`,media:`bg-paper`,border:`border-line`}},L=l(()=>I[P.tone]);function R(e){return`${P.currency} ${e.toFixed(2).replace(`.`,`,`)}`}let z=l(()=>R(P.price)),B=l(()=>P.memberPrice==null?``:R(P.memberPrice)),V=l(()=>P.items.slice(0,j)),H=l(()=>Math.max(0,P.items.length-j));return(l,_)=>(e(),p(`article`,{class:m([`group flex overflow-hidden rounded-md border transition-all duration-base ease-out`,M.layout===`horizontal`?`flex-col md:flex-row`:`flex-col`,L.value.surface,L.value.border,`hover:-translate-y-1 hover:shadow-md hover:border-brand-soft`])},[M.href&&N(M.href)?(e(),i(t(h),{key:0,to:M.href,class:m([`relative block overflow-hidden`,M.layout===`horizontal`?`aspect-[4/3] md:aspect-auto md:w-[38%] md:shrink-0 md:min-h-[300px]`:`aspect-[4/3]`,L.value.media])},{default:o(()=>[M.badge?(e(),i(v,{key:0,variant:M.badgeVariant,class:`absolute top-4 left-4 z-[1]`},{default:o(()=>[u(a(M.badge),1)]),_:1},8,[`variant`])):s(``,!0),f(`img`,{src:M.image,alt:M.imageAlt||M.name,loading:`lazy`,decoding:`async`,class:m([`absolute inset-0 w-full h-full transition-transform duration-slow ease-out group-hover:scale-105`,M.imageFit===`cover`?`object-cover`:`object-contain `+(M.layout===`horizontal`?`p-6 md:p-5`:`p-8`)])},null,10,b)]),_:1},8,[`to`,`class`])):(e(),i(n(M.href?`a`:`div`),{key:1,href:M.href||null,class:m([`relative block overflow-hidden`,M.layout===`horizontal`?`aspect-[4/3] md:aspect-auto md:w-[38%] md:shrink-0 md:min-h-[300px]`:`aspect-[4/3]`,L.value.media])},{default:o(()=>[M.badge?(e(),i(v,{key:0,variant:M.badgeVariant,class:`absolute top-4 left-4 z-[1]`},{default:o(()=>[u(a(M.badge),1)]),_:1},8,[`variant`])):s(``,!0),f(`img`,{src:M.image,alt:M.imageAlt||M.name,loading:`lazy`,decoding:`async`,class:m([`absolute inset-0 w-full h-full transition-transform duration-slow ease-out group-hover:scale-105`,M.imageFit===`cover`?`object-cover`:`object-contain `+(M.layout===`horizontal`?`p-6 md:p-5`:`p-8`)])},null,10,x)]),_:1},8,[`href`,`class`])),f(`div`,{class:m([`flex flex-col gap-4 p-6`,M.layout===`horizontal`?`md:p-6 md:flex-1`:``])},[f(`div`,S,[M.usage?(e(),p(`span`,C,a(M.usage),1)):s(``,!0),M.href&&N(M.href)?(e(),i(t(h),{key:1,to:M.href,class:`font-display text-xl font-normal leading-tight text-ink hover:text-brand transition-colors duration-base`},{default:o(()=>[u(a(M.name),1)]),_:1},8,[`to`])):(e(),i(n(M.href?`a`:`h3`),{key:2,href:M.href||null,class:m([`font-display text-xl font-normal leading-tight text-ink`,M.href?`hover:text-brand transition-colors duration-base`:``])},{default:o(()=>[u(a(M.name),1)]),_:1},8,[`href`,`class`]))]),f(`ul`,w,[(e(!0),p(d,null,r(V.value,t=>(e(),p(`li`,{key:t,class:`text-sm text-ink/80 leading-relaxed`},a(t),1))),128)),H.value>0?(e(),p(`li`,T,`+ `+a(H.value)+` `+a(t(F)(`bundles.card.moreItems`)),1)):s(``,!0)]),f(`div`,{class:m([`mt-auto pt-4 border-t border-line flex gap-3`,M.layout===`horizontal`?`flex-col sm:flex-row sm:items-end sm:justify-between`:`flex-col`])},[f(`div`,E,[f(`span`,D,a(t(F)(`bundles.card.priceLabel`)),1),f(`span`,O,a(z.value),1),B.value?(e(),p(`span`,k,a(t(F)(`bundles.card.memberPrefix`))+` `+a(B.value),1)):s(``,!0),M.inStock?s(``,!0):(e(),p(`span`,A,a(t(F)(`ds.product.outOfStock`)),1))]),c(y,{variant:`primary`,size:`md`,block:M.layout===`vertical`,disabled:!M.inStock,onClick:_[0]||=e=>l.$emit(`add`)},{before:o(()=>[c(g,{name:`plus`,size:16})]),default:o(()=>[u(` `+a(t(F)(`ds.buttons.addToCart`)),1)]),_:1},8,[`block`,`disabled`])],2)],2)],2))}};export{M as t}; \ No newline at end of file +import{C as e,G as t,O as n,T as r,c as i,ft as a,j as o,l as s,m as c,o as l,p as u,r as d,s as f,u as p,ut as m}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{t as h}from"./vue-router-Cyqru1db.js";import{t as g}from"./Icon-BCo6-bGH.js";import{t as _}from"./i18n-XDSWEyNo.js";import{t as v}from"./Badge-DiccZCC_.js";import{t as y}from"./Button-D1Rp2Xe1.js";var b=[`src`,`alt`],x=[`src`,`alt`],S={class:`flex flex-col gap-1.5`},C={key:0,class:`text-xs font-semibold tracking-label text-muted uppercase`},w={class:`flex flex-col gap-1.5`},T={key:0,class:`text-sm text-muted tracking-label`},E={class:`flex flex-col gap-0.5`},D={class:`text-xs tracking-label text-muted uppercase`},O={class:`font-display text-2xl font-normal text-brand leading-none`},k={key:0,class:`text-xs text-muted mt-1`},A={key:1,class:`text-xs font-semibold tracking-label uppercase text-danger mt-1`},j=3,M={__name:`BundleCard`,props:{name:{type:String,required:!0},items:{type:Array,required:!0},price:{type:Number,required:!0},memberPrice:{type:Number,default:null},usage:{type:String,default:``},image:{type:String,required:!0},imageAlt:{type:String,default:``},badge:{type:String,default:``},badgeVariant:{type:String,default:`accent`,validator:e=>[`neutral`,`brand`,`accent`,`subtle`,`success`,`warning`,`danger`].includes(e)},tone:{type:String,default:`paper`,validator:e=>[`paper`,`cream`].includes(e)},layout:{type:String,default:`vertical`,validator:e=>[`vertical`,`horizontal`].includes(e)},inStock:{type:Boolean,default:!0},currency:{type:String,default:`€`},href:{type:String,default:``},imageFit:{type:String,default:`cover`,validator:e=>[`contain`,`cover`].includes(e)}},emits:[`add`],setup(M){function N(e){return typeof e==`string`&&e.startsWith(`/`)&&!e.startsWith(`//`)}let P=M,{t:F}=_(),I={paper:{surface:`bg-paper`,media:`bg-cream`,border:`border-line`},cream:{surface:`bg-cream`,media:`bg-paper`,border:`border-line`}},L=l(()=>I[P.tone]);function R(e){return`${P.currency} ${e.toFixed(2).replace(`.`,`,`)}`}let z=l(()=>R(P.price)),B=l(()=>P.memberPrice==null?``:R(P.memberPrice)),V=l(()=>P.items.slice(0,j)),H=l(()=>Math.max(0,P.items.length-j));return(l,_)=>(e(),p(`article`,{class:m([`group flex overflow-hidden rounded-md border transition-all duration-base ease-out`,M.layout===`horizontal`?`flex-col md:flex-row`:`flex-col`,L.value.surface,L.value.border,`hover:-translate-y-1 hover:shadow-md hover:border-brand-soft`])},[M.href&&N(M.href)?(e(),i(t(h),{key:0,to:M.href,class:m([`relative block overflow-hidden`,M.layout===`horizontal`?`aspect-[4/3] md:aspect-auto md:w-[38%] md:shrink-0 md:min-h-[300px]`:`aspect-[4/3]`,L.value.media])},{default:o(()=>[M.badge?(e(),i(v,{key:0,variant:M.badgeVariant,class:`absolute top-4 left-4 z-[1]`},{default:o(()=>[u(a(M.badge),1)]),_:1},8,[`variant`])):s(``,!0),f(`img`,{src:M.image,alt:M.imageAlt||M.name,loading:`lazy`,decoding:`async`,class:m([`absolute inset-0 w-full h-full transition-transform duration-slow ease-out group-hover:scale-105`,M.imageFit===`cover`?`object-cover`:`object-contain `+(M.layout===`horizontal`?`p-6 md:p-5`:`p-8`)])},null,10,b)]),_:1},8,[`to`,`class`])):(e(),i(n(M.href?`a`:`div`),{key:1,href:M.href||null,class:m([`relative block overflow-hidden`,M.layout===`horizontal`?`aspect-[4/3] md:aspect-auto md:w-[38%] md:shrink-0 md:min-h-[300px]`:`aspect-[4/3]`,L.value.media])},{default:o(()=>[M.badge?(e(),i(v,{key:0,variant:M.badgeVariant,class:`absolute top-4 left-4 z-[1]`},{default:o(()=>[u(a(M.badge),1)]),_:1},8,[`variant`])):s(``,!0),f(`img`,{src:M.image,alt:M.imageAlt||M.name,loading:`lazy`,decoding:`async`,class:m([`absolute inset-0 w-full h-full transition-transform duration-slow ease-out group-hover:scale-105`,M.imageFit===`cover`?`object-cover`:`object-contain `+(M.layout===`horizontal`?`p-6 md:p-5`:`p-8`)])},null,10,x)]),_:1},8,[`href`,`class`])),f(`div`,{class:m([`flex flex-col gap-4 p-6`,M.layout===`horizontal`?`md:p-6 md:flex-1`:``])},[f(`div`,S,[M.usage?(e(),p(`span`,C,a(M.usage),1)):s(``,!0),M.href&&N(M.href)?(e(),i(t(h),{key:1,to:M.href,class:`font-display text-xl font-normal leading-tight text-ink hover:text-brand transition-colors duration-base`},{default:o(()=>[u(a(M.name),1)]),_:1},8,[`to`])):(e(),i(n(M.href?`a`:`h3`),{key:2,href:M.href||null,class:m([`font-display text-xl font-normal leading-tight text-ink`,M.href?`hover:text-brand transition-colors duration-base`:``])},{default:o(()=>[u(a(M.name),1)]),_:1},8,[`href`,`class`]))]),f(`ul`,w,[(e(!0),p(d,null,r(V.value,t=>(e(),p(`li`,{key:t,class:`text-sm text-ink/80 leading-relaxed`},a(t),1))),128)),H.value>0?(e(),p(`li`,T,`+ `+a(H.value)+` `+a(t(F)(`bundles.card.moreItems`)),1)):s(``,!0)]),f(`div`,{class:m([`mt-auto pt-4 border-t border-line flex gap-3`,M.layout===`horizontal`?`flex-col sm:flex-row sm:items-end sm:justify-between`:`flex-col`])},[f(`div`,E,[f(`span`,D,a(t(F)(`bundles.card.priceLabel`)),1),f(`span`,O,a(z.value),1),B.value?(e(),p(`span`,k,a(t(F)(`bundles.card.memberPrefix`))+` `+a(B.value),1)):s(``,!0),M.inStock?s(``,!0):(e(),p(`span`,A,a(t(F)(`ds.product.outOfStock`)),1))]),c(y,{variant:`primary`,size:`md`,block:M.layout===`vertical`,disabled:!M.inStock,onClick:_[0]||=e=>l.$emit(`add`)},{before:o(()=>[c(g,{name:`plus`,size:16})]),default:o(()=>[u(` `+a(t(F)(`ds.buttons.addToCart`)),1)]),_:1},8,[`block`,`disabled`])],2)],2)],2))}};export{M as t}; \ No newline at end of file diff --git a/dist/assets/BundleCardSection-Bj-tv8Vn.js b/dist/assets/BundleCardSection-BrOSqvIT.js similarity index 96% rename from dist/assets/BundleCardSection-Bj-tv8Vn.js rename to dist/assets/BundleCardSection-BrOSqvIT.js index 0007055..ad6a676 100644 --- a/dist/assets/BundleCardSection-Bj-tv8Vn.js +++ b/dist/assets/BundleCardSection-BrOSqvIT.js @@ -1,4 +1,4 @@ -import{B as e,C as t,G as n,c as r,ft as i,j as a,l as o,m as s,p as c,s as l,u,y as d}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{t as f}from"./i18n-yr4x-3Jp.js";import{t as p}from"./BundleCard-DAFU1tCy.js";import{t as m}from"./SectionShell-CyPmh1h8.js";var h={class:`eyebrow mb-5`},g={class:`grid sm:grid-cols-2 lg:grid-cols-3 gap-6`},_={key:0,class:`mt-5 text-sm text-muted`},v={class:`font-mono text-[12px]`},y={class:`grid gap-6`},b={class:`eyebrow mb-5`},x={class:`grid sm:grid-cols-2 gap-6`},S={class:`eyebrow mb-5`},C=`/products/kaiser-natron-pulver-250-g-grosspackung.webp`,w={__name:`BundleCardSection`,setup(w){let{t:T}=f(),E=e(``);function D(e){E.value=e,setTimeout(()=>{E.value===e&&(E.value=``)},2e3)}let O={name:`Haushalts-Bundle`,usage:`2–3× pro Quartal empfohlen`,items:[`1× Kaiser-Natron Pulver 250 g`,`1× Allzweck-Spray 500 ml`,`1× Spülmittel 500 ml`],price:24.9,memberPrice:21.17,image:C,imageAlt:`Haushalts-Bundle`},k={...O,items:[...O.items,`1× Holste Wasch-Soda 500 g`,`1× Allzweckreiniger 750 ml`]};return(e,f)=>(t(),r(m,{eyebrow:n(T)(`ds.eyebrow.components`),title:n(T)(`ds.bundleCard.title`),description:n(T)(`ds.bundleCard.description`)},{default:a(()=>[l(`section`,null,[l(`h2`,h,i(n(T)(`ds.heading.default`)),1),l(`div`,g,[s(p,d(O,{onAdd:f[0]||=e=>D(`default`)}),null,16),s(p,d(O,{badge:`Bestseller`,"badge-variant":`accent`,onAdd:f[1]||=e=>D(`bestseller`)}),null,16),s(p,d(O,{tone:`cream`,onAdd:f[2]||=e=>D(`cream`)}),null,16)]),E.value?(t(),u(`p`,_,[c(i(n(T)(`ds.product.added`))+`: `,1),l(`code`,v,i(E.value),1)])):o(``,!0)]),l(`section`,null,[f[5]||=l(`h2`,{class:`eyebrow mb-5`},`Horizontal layout`,-1),f[6]||=l(`p`,{class:`text-sm text-muted mb-5 max-w-2xl`},[c(` Passed as `),l(`code`,{class:`font-mono text-[12px]`},`layout="horizontal"`),c(`. From `),l(`code`,{class:`font-mono text-[12px]`},`md`),c(` up the media takes ~38% of the row and the body fills the rest, with the CTA inlined next to the price block. Below `),l(`code`,{class:`font-mono text-[12px]`},`md`),c(` it collapses back to vertical. `)],-1),l(`div`,y,[s(p,d(O,{layout:`horizontal`,badge:`Bestseller`,"badge-variant":`accent`,onAdd:f[3]||=e=>D(`horizontal`)}),null,16)])]),l(`section`,null,[l(`h2`,b,i(n(T)(`ds.heading.states`)),1),f[7]||=l(`p`,{class:`text-sm text-muted mb-5 max-w-2xl`},` Same bundle across both cards — only the state being demonstrated changes. `,-1),l(`div`,x,[s(p,d(O,{"in-stock":!1}),null,16),s(p,d(k,{onAdd:f[4]||=e=>D(`overflow`)}),null,16)]),f[8]||=l(`p`,{class:`mt-3 text-sm text-muted max-w-2xl`},[c(` More than three items collapse the tail into a `),l(`code`,{class:`font-mono text-[12px]`},`+ N weitere`),c(` line so the card stays scannable. `)],-1)]),l(`section`,null,[l(`h2`,S,i(n(T)(`ds.heading.usage`)),1),f[9]||=l(`div`,{class:`rounded-md border border-line bg-paper p-6 font-mono text-[12px] text-ink`},[l(`pre`,{class:`whitespace-pre-wrap`},`{E.value===e&&(E.value=``)},2e3)}let O={name:`Haushalts-Bundle`,usage:`2–3× pro Quartal empfohlen`,items:[`1× Kaiser-Natron Pulver 250 g`,`1× Allzweck-Spray 500 ml`,`1× Spülmittel 500 ml`],price:24.9,memberPrice:21.17,image:C,imageAlt:`Haushalts-Bundle`},k={...O,items:[...O.items,`1× Holste Wasch-Soda 500 g`,`1× Allzweckreiniger 750 ml`]};return(e,f)=>(t(),r(m,{eyebrow:n(T)(`ds.eyebrow.components`),title:n(T)(`ds.bundleCard.title`),description:n(T)(`ds.bundleCard.description`)},{default:a(()=>[l(`section`,null,[l(`h2`,h,i(n(T)(`ds.heading.default`)),1),l(`div`,g,[s(p,d(O,{onAdd:f[0]||=e=>D(`default`)}),null,16),s(p,d(O,{badge:`Bestseller`,"badge-variant":`accent`,onAdd:f[1]||=e=>D(`bestseller`)}),null,16),s(p,d(O,{tone:`cream`,onAdd:f[2]||=e=>D(`cream`)}),null,16)]),E.value?(t(),u(`p`,_,[c(i(n(T)(`ds.product.added`))+`: `,1),l(`code`,v,i(E.value),1)])):o(``,!0)]),l(`section`,null,[f[5]||=l(`h2`,{class:`eyebrow mb-5`},`Horizontal layout`,-1),f[6]||=l(`p`,{class:`text-sm text-muted mb-5 max-w-2xl`},[c(` Passed as `),l(`code`,{class:`font-mono text-[12px]`},`layout="horizontal"`),c(`. From `),l(`code`,{class:`font-mono text-[12px]`},`md`),c(` up the media takes ~38% of the row and the body fills the rest, with the CTA inlined next to the price block. Below `),l(`code`,{class:`font-mono text-[12px]`},`md`),c(` it collapses back to vertical. `)],-1),l(`div`,y,[s(p,d(O,{layout:`horizontal`,badge:`Bestseller`,"badge-variant":`accent`,onAdd:f[3]||=e=>D(`horizontal`)}),null,16)])]),l(`section`,null,[l(`h2`,b,i(n(T)(`ds.heading.states`)),1),f[7]||=l(`p`,{class:`text-sm text-muted mb-5 max-w-2xl`},` Same bundle across both cards — only the state being demonstrated changes. `,-1),l(`div`,x,[s(p,d(O,{"in-stock":!1}),null,16),s(p,d(k,{onAdd:f[4]||=e=>D(`overflow`)}),null,16)]),f[8]||=l(`p`,{class:`mt-3 text-sm text-muted max-w-2xl`},[c(` More than three items collapse the tail into a `),l(`code`,{class:`font-mono text-[12px]`},`+ N weitere`),c(` line so the card stays scannable. `)],-1)]),l(`section`,null,[l(`h2`,S,i(n(T)(`ds.heading.usage`)),1),f[9]||=l(`div`,{class:`rounded-md border border-line bg-paper p-6 font-mono text-[12px] text-ink`},[l(`pre`,{class:`whitespace-pre-wrap`},`String(Re.params.slug||``)),W=d(()=>de(ze.value)),G=e(null);i(()=>{se();let e=typeof window<`u`?window.history.state?.back:null;G.value=typeof e==`string`?e:null});let Be=d(()=>{let e=G.value;return!e||e===`/`||e.startsWith(`/#`)?`product.backHome`:`product.backGeneric`});function Ve(){G.value?V.back():V.push(`/`)}let He=[{key:`nav.shop`,href:`/shop`},{key:`nav.bundles`,href:`/#bundles`},{key:`nav.revitalization`,href:`/#revitalize`},{key:`nav.about`,href:`/#about`}],Ue=[],K=d(()=>{let e=W.value;return e?`€ ${e.price.toFixed(2).replace(`.`,`,`)}`:``}),q=d(()=>{let e=W.value;return e?.memberPrice?`€ ${e.memberPrice.toFixed(2).replace(`.`,`,`)}`:``}),J=d(()=>{let e=W.value;return e?e.items.map(e=>({label:e,product:v.find(t=>e.toLowerCase().includes(t.title.toLowerCase().replace(/®/g,``).trim()))})):[]});async function Y(){let e=W.value;e?.anchorProductId&&(await y(e.anchorProductId,U.value),H.value=!0)}async function We({productId:e,quantity:t}){await ae(e,t)}async function Ge(e){await ie(e)}function X(){H.value=!1,V.push(`/checkout`)}async function Ke(e){await y(e.id,1),H.value=!0}let Z=e(null),Q=null;function $(){let e=Z.value,t=e&&(e.$el||e);if(!t||typeof window>`u`)return;let n=Math.round(t.getBoundingClientRect().height);document.documentElement.style.setProperty(`--nav-h`,`${n}px`)}return i(()=>{if($(),typeof ResizeObserver<`u`&&Z.value){let e=Z.value.$el||Z.value;Q=new ResizeObserver($),Q.observe(e)}typeof window<`u`&&window.addEventListener(`resize`,$)}),ee(()=>{Q&&Q.disconnect(),typeof window<`u`&&window.removeEventListener(`resize`,$)}),(e,i)=>{let d=n(`RouterLink`);return t(),h(p,null,[u(ce,{ref_key:`navRef`,ref:Z,variant:`brand`,layout:`standard`,items:He,"secondary-items":Ue,"cart-count":r(B).count,products:r(v),onCart:i[0]||=e=>H.value=!0,onSearch:Ke},null,8,[`cart-count`,`products`]),W.value?(t(),h(`main`,S,[m(`div`,C,[m(`button`,{type:`button`,class:`inline-flex items-center gap-2 text-sm tracking-label uppercase text-cream/75 hover:text-cream transition-colors`,onClick:Ve},[u(g,{name:`arrow-left`,size:16}),f(` `+s(r(z)(Be.value)),1)])]),m(`section`,w,[m(`div`,T,[m(`div`,E,[W.value.badge?(t(),o(_,{key:0,variant:W.value.badgeVariant||`accent`,class:`absolute top-4 left-4 z-[1] shadow-sm`},{default:c(()=>[f(s(W.value.badge),1)]),_:1},8,[`variant`])):l(``,!0),m(`div`,D,[m(`img`,{src:W.value.image,alt:W.value.imageAlt||W.value.name,loading:`eager`,decoding:`async`,class:`absolute inset-0 w-full h-full object-cover`},null,8,O)])]),m(`div`,k,[W.value.usage?(t(),h(`p`,A,s(W.value.usage),1)):l(``,!0),m(`h1`,j,s(W.value.name),1),W.value.description?(t(),h(`p`,M,s(W.value.description),1)):l(``,!0),m(`div`,N,[m(`p`,P,s(r(z)(`bundle.items`)),1),m(`ul`,F,[(t(!0),h(p,null,a(J.value,(e,n)=>(t(),h(`li`,{key:n,class:`flex items-start gap-2 text-base text-cream/95 leading-relaxed`},[u(g,{name:`check`,size:18,class:`mt-0.5 shrink-0 text-accent`}),e.product?(t(),o(d,{key:0,to:e.product.href,class:`hover:text-accent transition-colors`},{default:c(()=>[f(s(e.label),1)]),_:2},1032,[`to`])):(t(),h(`span`,I,s(e.label),1))]))),128))])]),m(`div`,L,[m(`span`,R,s(K.value),1),q.value?(t(),h(`span`,ge,[f(s(r(z)(`bundle.memberPrice`))+` `,1),m(`span`,_e,s(q.value),1)])):l(``,!0)]),m(`div`,ve,[u(x,{modelValue:U.value,"onUpdate:modelValue":i[1]||=e=>U.value=e,min:1,max:10},null,8,[`modelValue`]),u(b,{variant:`accent`,size:`lg`,onClick:Y},{before:c(()=>[u(g,{name:`plus`,size:16})]),default:c(()=>[f(` `+s(r(z)(`ds.buttons.addToCart`)),1)]),_:1})])])])]),m(`div`,ye,[m(`section`,be,[m(`div`,xe,[W.value.badge?(t(),o(_,{key:0,variant:W.value.badgeVariant||`accent`,class:`absolute top-4 left-4 z-[1] shadow-sm`},{default:c(()=>[f(s(W.value.badge),1)]),_:1},8,[`variant`])):l(``,!0),m(`img`,{src:W.value.image,alt:W.value.imageAlt||W.value.name,loading:`eager`,decoding:`async`,class:`block w-full h-auto`},null,8,Se)])]),m(`section`,Ce,[m(`div`,we,[W.value.usage?(t(),h(`p`,Te,s(W.value.usage),1)):l(``,!0),m(`h1`,Ee,s(W.value.name),1),W.value.description?(t(),h(`p`,De,s(W.value.description),1)):l(``,!0),m(`div`,Oe,[m(`p`,ke,s(r(z)(`bundle.items`)),1),m(`ul`,Ae,[(t(!0),h(p,null,a(J.value,(e,n)=>(t(),h(`li`,{key:n,class:`flex items-start gap-2 text-base text-cream/95 leading-relaxed`},[u(g,{name:`check`,size:18,class:`mt-0.5 shrink-0 text-accent`}),e.product?(t(),o(d,{key:0,to:e.product.href,class:`hover:text-accent transition-colors`},{default:c(()=>[f(s(e.label),1)]),_:2},1032,[`to`])):(t(),h(`span`,je,s(e.label),1))]))),128))])]),m(`div`,Me,[m(`span`,Ne,s(K.value),1),q.value?(t(),h(`span`,Pe,[f(s(r(z)(`bundle.memberPrice`))+` `,1),m(`span`,Fe,s(q.value),1)])):l(``,!0)]),m(`div`,Ie,[u(x,{modelValue:U.value,"onUpdate:modelValue":i[2]||=e=>U.value=e,min:1,max:10},null,8,[`modelValue`]),u(b,{variant:`accent`,size:`lg`,onClick:Y},{before:c(()=>[u(g,{name:`plus`,size:16})]),default:c(()=>[f(` `+s(r(z)(`ds.buttons.addToCart`)),1)]),_:1})])])])])])):(t(),h(`main`,fe,[m(`div`,pe,[m(`h1`,me,s(r(z)(`product.notFound.title`)),1),m(`p`,he,s(r(z)(`product.notFound.body`)),1),u(d,{to:`/`,class:`inline-flex`},{default:c(()=>[u(b,{variant:`primary`,size:`lg`},{default:c(()=>[f(s(r(z)(`product.backHome`)),1)]),_:1})]),_:1})])])),i[4]||=m(`div`,{"aria-hidden":`true`,class:`min-[1100px]:hidden bg-brand`,style:{height:`calc(100px + env(safe-area-inset-bottom))`}},null,-1),u(ue),u(le,{modelValue:H.value,"onUpdate:modelValue":i[3]||=e=>H.value=e,items:r(B).items,subtotal:r(B).subtotal,count:r(B).count,onUpdateQuantity:We,onRemove:Ge,onCheckout:X},null,8,[`modelValue`,`items`,`subtotal`,`count`])],64)}}};export{Le as default}; \ No newline at end of file diff --git a/dist/assets/BundlePage-DpdymyeR.js b/dist/assets/BundlePage-DpdymyeR.js new file mode 100644 index 0000000..f608e47 --- /dev/null +++ b/dist/assets/BundlePage-DpdymyeR.js @@ -0,0 +1 @@ +import{B as e,C as t,D as n,G as r,S as i,T as a,c as o,ft as s,j as c,l,m as u,o as d,p as f,r as p,s as m,u as h,x as ee}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{a as te,o as ne}from"./vue-router-Cyqru1db.js";import{t as g}from"./Icon-BCo6-bGH.js";import{t as re}from"./i18n-XDSWEyNo.js";import{t as _}from"./Badge-DiccZCC_.js";import{r as v}from"./products-BqW5PUnm.js";import{c as y,d as ie,f as ae,p as oe,u as se}from"./api-DlB23x7f.js";import{t as ce}from"./Navbar-DV-_CpC6.js";import{t as b}from"./Button-D1Rp2Xe1.js";import{t as x}from"./QuantityStepper-7Y8q77T-.js";import{t as le}from"./CartDrawer-BdjtcjVt.js";import{t as ue}from"./Footer-CjMyQsRh.js";import{n as de}from"./bundles-9afzAd-j.js";var fe={key:0,class:`bg-cream min-h-[60svh] flex items-center justify-center px-6`},pe={class:`text-center max-w-md`},me={class:`font-display text-3xl text-ink mb-4`},he={class:`text-muted mb-6`},ge={key:1,class:`bg-brand text-cream`},S={class:`mx-auto w-full max-w-7xl px-6 md:px-10 lg:px-16 pt-6`},C={class:`hidden lg:block mx-auto w-full max-w-7xl px-6 md:px-10 lg:px-16 pt-4 pb-14`},w={class:`grid grid-cols-[1.4fr_1fr] gap-12 xl:gap-16 items-center`},T={class:`relative overflow-hidden rounded-lg bg-cream/10`},E={class:`relative aspect-[16/10]`},D=[`src`,`alt`],O={class:`flex flex-col gap-6 min-w-0 text-cream`},k={key:0,class:`text-xs tracking-label uppercase text-cream/75`},A={class:`font-display font-normal leading-[1.05] tracking-tight text-cream text-[2.25rem] xl:text-[2.75rem] 2xl:text-[3.25rem]`},j={key:1,class:`text-base xl:text-lg leading-relaxed text-cream/85`},M={class:`flex flex-col gap-2`},N={class:`text-xs tracking-label uppercase text-cream/75`},P={class:`flex flex-col gap-1.5`},F={key:1},I={class:`flex flex-col gap-1`},L={class:`font-display text-3xl xl:text-4xl text-cream`},_e={key:0,class:`text-sm text-cream/75`},ve={class:`text-accent font-medium`},ye={class:`flex flex-wrap items-center gap-4 mt-2`},be={class:`lg:hidden`},xe={class:`mx-auto w-full max-w-7xl px-6 md:px-10 pt-6 md:pt-8`},Se={class:`relative overflow-hidden rounded-lg bg-cream/10`},Ce=[`src`,`alt`],we={class:`mx-auto w-full max-w-7xl px-6 md:px-10 py-10 md:py-14`},Te={class:`flex flex-col gap-6`},R={key:0,class:`text-xs tracking-label uppercase text-cream/70`},Ee={class:`font-display font-normal leading-[1.06] tracking-tight text-cream text-[2rem] md:text-[2.5rem]`},De={key:1,class:`text-base md:text-lg leading-relaxed text-cream/85`},Oe={class:`flex flex-col gap-2`},ke={class:`text-xs tracking-label uppercase text-cream/70`},Ae={class:`flex flex-col gap-1.5`},je={key:1},Me={class:`flex flex-col gap-1`},Ne={class:`font-display text-3xl md:text-4xl text-cream`},Pe={key:0,class:`text-sm text-cream/70`},Fe={class:`text-accent font-medium`},Ie={class:`flex flex-wrap items-center gap-4 mt-2`},Le={__name:`BundlePage`,setup(Le){let{t:z}=re(),B=oe(),Re=te(),V=ne(),H=e(!1),U=e(1),ze=d(()=>String(Re.params.slug||``)),W=d(()=>de(ze.value)),G=e(null);i(()=>{se();let e=typeof window<`u`?window.history.state?.back:null;G.value=typeof e==`string`?e:null});let Be=d(()=>{let e=G.value;return!e||e===`/`||e.startsWith(`/#`)?`product.backHome`:`product.backGeneric`});function Ve(){G.value?V.back():V.push(`/`)}let He=[{key:`nav.shop`,href:`/shop`},{key:`nav.bundles`,href:`/#bundles`},{key:`nav.revitalization`,href:`/#revitalize`},{key:`nav.about`,href:`/#about`}],Ue=[],K=d(()=>{let e=W.value;return e?`€ ${e.price.toFixed(2).replace(`.`,`,`)}`:``}),q=d(()=>{let e=W.value;return e?.memberPrice?`€ ${e.memberPrice.toFixed(2).replace(`.`,`,`)}`:``}),J=d(()=>{let e=W.value;return e?{name:z(e.nameKey),usage:e.usageKey?z(e.usageKey):``,description:e.descriptionKey?z(e.descriptionKey):``,imageAlt:e.imageAltKey?z(e.imageAltKey):``,badge:e.badgeKey?z(e.badgeKey):``}:null}),Y=d(()=>{let e=W.value;return e?e.itemKeys.map(e=>{let t=z(e);return{label:t,product:v.find(e=>t.toLowerCase().includes(e.title.toLowerCase().replace(/®/g,``).trim()))}}):[]});async function X(){let e=W.value;e?.anchorProductId&&(await y(e.anchorProductId,U.value),H.value=!0)}async function We({productId:e,quantity:t}){await ae(e,t)}async function Ge(e){await ie(e)}function Ke(){H.value=!1,V.push(`/checkout`)}async function qe(e){await y(e.id,1),H.value=!0}let Z=e(null),Q=null;function $(){let e=Z.value,t=e&&(e.$el||e);if(!t||typeof window>`u`)return;let n=Math.round(t.getBoundingClientRect().height);document.documentElement.style.setProperty(`--nav-h`,`${n}px`)}return i(()=>{if($(),typeof ResizeObserver<`u`&&Z.value){let e=Z.value.$el||Z.value;Q=new ResizeObserver($),Q.observe(e)}typeof window<`u`&&window.addEventListener(`resize`,$)}),ee(()=>{Q&&Q.disconnect(),typeof window<`u`&&window.removeEventListener(`resize`,$)}),(e,i)=>{let d=n(`RouterLink`);return t(),h(p,null,[u(ce,{ref_key:`navRef`,ref:Z,variant:`brand`,layout:`standard`,items:He,"secondary-items":Ue,"cart-count":r(B).count,products:r(v),onCart:i[0]||=e=>H.value=!0,onSearch:qe},null,8,[`cart-count`,`products`]),W.value?(t(),h(`main`,ge,[m(`div`,S,[m(`button`,{type:`button`,class:`inline-flex items-center gap-2 text-sm tracking-label uppercase text-cream/75 hover:text-cream transition-colors`,onClick:Ve},[u(g,{name:`arrow-left`,size:16}),f(` `+s(r(z)(Be.value)),1)])]),m(`section`,C,[m(`div`,w,[m(`div`,T,[J.value.badge?(t(),o(_,{key:0,variant:W.value.badgeVariant||`accent`,class:`absolute top-4 left-4 z-[1] shadow-sm`},{default:c(()=>[f(s(J.value.badge),1)]),_:1},8,[`variant`])):l(``,!0),m(`div`,E,[m(`img`,{src:W.value.image,alt:J.value.imageAlt||J.value.name,loading:`eager`,decoding:`async`,class:`absolute inset-0 w-full h-full object-cover`},null,8,D)])]),m(`div`,O,[J.value.usage?(t(),h(`p`,k,s(J.value.usage),1)):l(``,!0),m(`h1`,A,s(J.value.name),1),J.value.description?(t(),h(`p`,j,s(J.value.description),1)):l(``,!0),m(`div`,M,[m(`p`,N,s(r(z)(`bundle.items`)),1),m(`ul`,P,[(t(!0),h(p,null,a(Y.value,(e,n)=>(t(),h(`li`,{key:n,class:`flex items-start gap-2 text-base text-cream/95 leading-relaxed`},[u(g,{name:`check`,size:18,class:`mt-0.5 shrink-0 text-accent`}),e.product?(t(),o(d,{key:0,to:e.product.href,class:`hover:text-accent transition-colors`},{default:c(()=>[f(s(e.label),1)]),_:2},1032,[`to`])):(t(),h(`span`,F,s(e.label),1))]))),128))])]),m(`div`,I,[m(`span`,L,s(K.value),1),q.value?(t(),h(`span`,_e,[f(s(r(z)(`bundle.memberPrice`))+` `,1),m(`span`,ve,s(q.value),1)])):l(``,!0)]),m(`div`,ye,[u(x,{modelValue:U.value,"onUpdate:modelValue":i[1]||=e=>U.value=e,min:1,max:10},null,8,[`modelValue`]),u(b,{variant:`accent`,size:`lg`,onClick:X},{before:c(()=>[u(g,{name:`plus`,size:16})]),default:c(()=>[f(` `+s(r(z)(`ds.buttons.addToCart`)),1)]),_:1})])])])]),m(`div`,be,[m(`section`,xe,[m(`div`,Se,[J.value.badge?(t(),o(_,{key:0,variant:W.value.badgeVariant||`accent`,class:`absolute top-4 left-4 z-[1] shadow-sm`},{default:c(()=>[f(s(J.value.badge),1)]),_:1},8,[`variant`])):l(``,!0),m(`img`,{src:W.value.image,alt:J.value.imageAlt||J.value.name,loading:`eager`,decoding:`async`,class:`block w-full h-auto`},null,8,Ce)])]),m(`section`,we,[m(`div`,Te,[J.value.usage?(t(),h(`p`,R,s(J.value.usage),1)):l(``,!0),m(`h1`,Ee,s(J.value.name),1),J.value.description?(t(),h(`p`,De,s(J.value.description),1)):l(``,!0),m(`div`,Oe,[m(`p`,ke,s(r(z)(`bundle.items`)),1),m(`ul`,Ae,[(t(!0),h(p,null,a(Y.value,(e,n)=>(t(),h(`li`,{key:n,class:`flex items-start gap-2 text-base text-cream/95 leading-relaxed`},[u(g,{name:`check`,size:18,class:`mt-0.5 shrink-0 text-accent`}),e.product?(t(),o(d,{key:0,to:e.product.href,class:`hover:text-accent transition-colors`},{default:c(()=>[f(s(e.label),1)]),_:2},1032,[`to`])):(t(),h(`span`,je,s(e.label),1))]))),128))])]),m(`div`,Me,[m(`span`,Ne,s(K.value),1),q.value?(t(),h(`span`,Pe,[f(s(r(z)(`bundle.memberPrice`))+` `,1),m(`span`,Fe,s(q.value),1)])):l(``,!0)]),m(`div`,Ie,[u(x,{modelValue:U.value,"onUpdate:modelValue":i[2]||=e=>U.value=e,min:1,max:10},null,8,[`modelValue`]),u(b,{variant:`accent`,size:`lg`,onClick:X},{before:c(()=>[u(g,{name:`plus`,size:16})]),default:c(()=>[f(` `+s(r(z)(`ds.buttons.addToCart`)),1)]),_:1})])])])])])):(t(),h(`main`,fe,[m(`div`,pe,[m(`h1`,me,s(r(z)(`product.notFound.title`)),1),m(`p`,he,s(r(z)(`product.notFound.body`)),1),u(d,{to:`/`,class:`inline-flex`},{default:c(()=>[u(b,{variant:`primary`,size:`lg`},{default:c(()=>[f(s(r(z)(`product.backHome`)),1)]),_:1})]),_:1})])])),i[4]||=m(`div`,{"aria-hidden":`true`,class:`min-[1100px]:hidden bg-brand`,style:{height:`calc(100px + env(safe-area-inset-bottom))`}},null,-1),u(ue),u(le,{modelValue:H.value,"onUpdate:modelValue":i[3]||=e=>H.value=e,items:r(B).items,subtotal:r(B).subtotal,count:r(B).count,onUpdateQuantity:We,onRemove:Ge,onCheckout:Ke},null,8,[`modelValue`,`items`,`subtotal`,`count`])],64)}}};export{Le as default}; \ No newline at end of file diff --git a/dist/assets/Bundles-vXh1yjVW.js b/dist/assets/Bundles-D-hn22_F.js similarity index 98% rename from dist/assets/Bundles-vXh1yjVW.js rename to dist/assets/Bundles-D-hn22_F.js index 4ebde46..e9930bc 100644 --- a/dist/assets/Bundles-vXh1yjVW.js +++ b/dist/assets/Bundles-D-hn22_F.js @@ -1 +1 @@ -import{B as e,C as t,S as n,T as r,c as i,ft as a,j as o,l as s,m as c,p as l,r as u,s as d,u as f,ut as p,x as m}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{t as h}from"./Icon-BCo6-bGH.js";import{t as g}from"./IconButton-Cw1KbfUO.js";import{t as _}from"./i18n-yr4x-3Jp.js";import{t as v}from"./_plugin-vue_export-helper-0vLWKQyu.js";import{t as y}from"./Button-D1Rp2Xe1.js";import{t as b}from"./BundleCard-DAFU1tCy.js";var x={key:0,class:`flex flex-col gap-4`},S={key:0,class:`font-display font-normal leading-[1.05] tracking-tight text-ink text-headline-md`},C={key:0,class:`italic font-light text-brand`},w={__name:`BundlesHeader`,props:{headline:{type:String,default:``},headlineEm:{type:String,default:``},sub:{type:String,default:``},subMaxWidth:{type:String,default:`max-w-md`}},setup(e){return(n,r)=>e.headline||e.headlineEm||e.sub?(t(),f(`div`,x,[e.headline||e.headlineEm?(t(),f(`h2`,S,[l(a(e.headline)+` `,1),e.headlineEm?(t(),f(`em`,C,a(e.headlineEm),1)):s(``,!0)])):s(``,!0),e.sub?(t(),f(`p`,{key:1,class:p([`text-base leading-relaxed text-muted`,e.subMaxWidth])},a(e.sub),3)):s(``,!0)])):s(``,!0)}},T={"aria-hidden":`true`,class:`mt-0.5 inline-flex h-6 w-6 shrink-0 items-center justify-center rounded-full bg-brand-wash text-brand`},E={class:`font-sans text-sm font-semibold text-ink leading-snug`},D={__name:`BundlesBenefits`,props:{benefits:{type:Array,required:!0,validator:e=>e.every(e=>typeof e==`string`)},listClass:{type:String,default:``}},setup(e){return(n,i)=>e.benefits.length?(t(),f(`ul`,{key:0,class:p([`flex flex-col gap-4`,e.listClass])},[(t(!0),f(u,null,r(e.benefits.slice(0,3),e=>(t(),f(`li`,{key:e,class:`flex items-start gap-3`},[d(`span`,T,[c(h,{name:`check`,size:14,"stroke-width":2.2})]),d(`span`,E,a(e),1)]))),128))],2)):s(``,!0)}},O={id:`bundles`,class:`bg-surface text-ink`},k={class:`mx-auto w-full max-w-6xl px-6 py-16 sm:px-8 sm:py-20 md:px-12 md:py-24 lg:px-16 lg:py-28`},ee={key:0,class:`flex flex-col gap-10 md:gap-12 lg:gap-14`},te={key:0,class:`rounded-md border border-cream-dark bg-cream px-5 py-4 sm:px-6 sm:py-5`},ne={class:`flex flex-col gap-4 sm:flex-row sm:flex-wrap sm:items-center sm:justify-between sm:gap-x-8 sm:gap-y-3`},A={"aria-hidden":`true`,class:`inline-flex h-6 w-6 shrink-0 items-center justify-center rounded-full bg-brand-wash text-brand`},j={class:`font-sans text-sm font-semibold text-ink leading-snug`},M={class:`min-w-0`},N={class:`md:hidden grid gap-5`},P={class:`hidden md:grid md:gap-6 md:grid-cols-3`},F={key:1,class:`flex justify-center`},I={key:1,class:`grid gap-10 md:gap-12 lg:gap-16 lg:grid-cols-[340px_1fr] lg:items-center`},L={class:`flex flex-col gap-8`},R={class:`min-w-0`},z={class:`md:hidden grid gap-5`},B={class:`hidden md:flex md:flex-col md:gap-6 relative`},V=[`aria-label`],H=[`aria-label`],U={class:`flex items-center justify-between gap-4`},W={class:`flex items-center gap-2`},G=[`aria-label`,`aria-current`,`onClick`],K={class:`flex items-center gap-2`},q=v({__name:`Bundles`,props:{layout:{type:String,default:`sidebar`,validator:e=>[`sidebar`,`stacked`].includes(e)},headline:{type:String,default:``},headlineEm:{type:String,default:``},sub:{type:String,default:``},benefits:{type:Array,default:()=>[],validator:e=>e.every(e=>typeof e==`string`)},joinCta:{type:String,default:``},bundles:{type:Array,required:!0},carouselLabel:{type:String,default:``},carouselPrevLabel:{type:String,default:``},carouselNextLabel:{type:String,default:``},carouselGoToPrefix:{type:String,default:``}},emits:[`add`,`join`],setup(v){let x=v,{t:S}=_(),C=()=>x.carouselLabel||S(`ds.bundles.carousel.label`),T=()=>x.carouselPrevLabel||S(`ds.bundles.carousel.prev`),E=()=>x.carouselNextLabel||S(`ds.bundles.carousel.next`),q=()=>x.carouselGoToPrefix||S(`ds.bundles.carousel.goToSlide`),J=e(null),Y=e(0);function X(){return J.value?J.value.children.length:0}function Z(e,t=`smooth`){let n=J.value;if(!n)return;let r=n.children.length-1,i=Math.max(0,Math.min(e,r));n.scrollTo({left:i*n.clientWidth,behavior:t})}function re(){let e=X()-1;e<0||Z(Y.value===0?e:Y.value-1)}function ie(){let e=X()-1;e<0||Z(Y.value===e?0:Y.value+1)}function ae(){let e=J.value;if(!e)return;let t=Math.round(e.scrollLeft/e.clientWidth);t!==Y.value&&(Y.value=t)}let Q=0;function $(){Q&&cancelAnimationFrame(Q),Q=requestAnimationFrame(()=>{let e=J.value;e&&(e.scrollLeft=Y.value*e.clientWidth,Q=0)})}return n(()=>{window.addEventListener(`resize`,$,{passive:!0})}),m(()=>{window.removeEventListener(`resize`,$),Q&&cancelAnimationFrame(Q)}),(e,n)=>(t(),f(`section`,O,[d(`div`,k,[v.layout===`stacked`?(t(),f(`div`,ee,[c(w,{headline:v.headline,"headline-em":v.headlineEm,sub:v.sub,"sub-max-width":`max-w-2xl`},null,8,[`headline`,`headline-em`,`sub`]),v.benefits.length?(t(),f(`div`,te,[d(`ul`,ne,[(t(!0),f(u,null,r(v.benefits.slice(0,3),e=>(t(),f(`li`,{key:e,class:`flex items-center gap-3`},[d(`span`,A,[c(h,{name:`check`,size:14,"stroke-width":2.2})]),d(`span`,j,a(e),1)]))),128))])])):s(``,!0),d(`div`,M,[d(`div`,N,[(t(!0),f(u,null,r(v.bundles,n=>(t(),i(b,{key:n.id,layout:`vertical`,name:n.name,items:n.items,price:n.price,"member-price":n.memberPrice,usage:n.usage,image:n.image,"image-alt":n.imageAlt,badge:n.badge,"badge-variant":n.badgeVariant||`accent`,href:n.href||``,tone:`paper`,onAdd:t=>e.$emit(`add`,n.id)},null,8,[`name`,`items`,`price`,`member-price`,`usage`,`image`,`image-alt`,`badge`,`badge-variant`,`href`,`onAdd`]))),128))]),d(`div`,P,[(t(!0),f(u,null,r(v.bundles.slice(0,3),n=>(t(),i(b,{key:n.id,layout:`vertical`,name:n.name,items:n.items,price:n.price,"member-price":n.memberPrice,usage:n.usage,image:n.image,"image-alt":n.imageAlt,badge:n.badge,"badge-variant":n.badgeVariant||`accent`,href:n.href||``,tone:`paper`,onAdd:t=>e.$emit(`add`,n.id)},null,8,[`name`,`items`,`price`,`member-price`,`usage`,`image`,`image-alt`,`badge`,`badge-variant`,`href`,`onAdd`]))),128))])]),v.joinCta?(t(),f(`div`,F,[c(y,{variant:`primary`,size:`lg`,onClick:n[0]||=t=>e.$emit(`join`)},{default:o(()=>[l(a(v.joinCta),1)]),_:1})])):s(``,!0)])):(t(),f(`div`,I,[d(`aside`,L,[c(w,{headline:v.headline,"headline-em":v.headlineEm,sub:v.sub,"sub-max-width":`max-w-md`},null,8,[`headline`,`headline-em`,`sub`]),c(D,{benefits:v.benefits},null,8,[`benefits`]),v.joinCta?(t(),i(y,{key:0,variant:`primary`,size:`md`,class:`self-start`,onClick:n[1]||=t=>e.$emit(`join`)},{default:o(()=>[l(a(v.joinCta),1)]),_:1})):s(``,!0)]),d(`div`,R,[d(`div`,z,[(t(!0),f(u,null,r(v.bundles,n=>(t(),i(b,{key:n.id,layout:`vertical`,name:n.name,items:n.items,price:n.price,"member-price":n.memberPrice,usage:n.usage,image:n.image,"image-alt":n.imageAlt,badge:n.badge,"badge-variant":n.badgeVariant||`accent`,href:n.href||``,tone:`paper`,onAdd:t=>e.$emit(`add`,n.id)},null,8,[`name`,`items`,`price`,`member-price`,`usage`,`image`,`image-alt`,`badge`,`badge-variant`,`href`,`onAdd`]))),128))]),d(`div`,B,[d(`div`,{ref_key:`track`,ref:J,class:`flex snap-x snap-mandatory overflow-x-auto scroll-smooth no-scrollbar pt-2 pb-16 -mt-2 -mb-16`,role:`region`,"aria-roledescription":`carousel`,"aria-label":C(),onScroll:ae},[(t(!0),f(u,null,r(v.bundles,(n,r)=>(t(),f(`div`,{key:n.id,class:`snap-start shrink-0 w-full`,role:`group`,"aria-roledescription":`slide`,"aria-label":`${r+1} / ${v.bundles.length}`},[c(b,{layout:`horizontal`,name:n.name,items:n.items,price:n.price,"member-price":n.memberPrice,usage:n.usage,image:n.image,"image-alt":n.imageAlt,badge:n.badge,"badge-variant":n.badgeVariant||`accent`,href:n.href||``,tone:`paper`,onAdd:t=>e.$emit(`add`,n.id)},null,8,[`name`,`items`,`price`,`member-price`,`usage`,`image`,`image-alt`,`badge`,`badge-variant`,`href`,`onAdd`])],8,H))),128))],40,V),d(`div`,U,[d(`div`,W,[(t(!0),f(u,null,r(v.bundles,(e,n)=>(t(),f(`button`,{key:n,type:`button`,class:p([`h-2 rounded-full transition-all duration-base`,Y.value===n?`w-8 bg-brand`:`w-2 bg-brand/30 hover:bg-brand/50`]),"aria-label":`${q()} ${n+1}`,"aria-current":Y.value===n?`true`:void 0,onClick:e=>Z(n)},null,10,G))),128))]),d(`div`,K,[c(g,{icon:`chevron-left`,variant:`brand-wash`,size:`md`,"aria-label":T(),onClick:re},null,8,[`aria-label`]),c(g,{icon:`chevron-right`,variant:`brand-wash`,size:`md`,"aria-label":E(),onClick:ie},null,8,[`aria-label`])])])])])]))])]))}},[[`__scopeId`,`data-v-86262777`]]);export{q as t}; \ No newline at end of file +import{B as e,C as t,S as n,T as r,c as i,ft as a,j as o,l as s,m as c,p as l,r as u,s as d,u as f,ut as p,x as m}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{t as h}from"./Icon-BCo6-bGH.js";import{t as g}from"./IconButton-Cw1KbfUO.js";import{t as _}from"./i18n-XDSWEyNo.js";import{t as v}from"./_plugin-vue_export-helper-0vLWKQyu.js";import{t as y}from"./Button-D1Rp2Xe1.js";import{t as b}from"./BundleCard-BwM48yom.js";var x={key:0,class:`flex flex-col gap-4`},S={key:0,class:`font-display font-normal leading-[1.05] tracking-tight text-ink text-headline-md`},C={key:0,class:`italic font-light text-brand`},w={__name:`BundlesHeader`,props:{headline:{type:String,default:``},headlineEm:{type:String,default:``},sub:{type:String,default:``},subMaxWidth:{type:String,default:`max-w-md`}},setup(e){return(n,r)=>e.headline||e.headlineEm||e.sub?(t(),f(`div`,x,[e.headline||e.headlineEm?(t(),f(`h2`,S,[l(a(e.headline)+` `,1),e.headlineEm?(t(),f(`em`,C,a(e.headlineEm),1)):s(``,!0)])):s(``,!0),e.sub?(t(),f(`p`,{key:1,class:p([`text-base leading-relaxed text-muted`,e.subMaxWidth])},a(e.sub),3)):s(``,!0)])):s(``,!0)}},T={"aria-hidden":`true`,class:`mt-0.5 inline-flex h-6 w-6 shrink-0 items-center justify-center rounded-full bg-brand-wash text-brand`},E={class:`font-sans text-sm font-semibold text-ink leading-snug`},D={__name:`BundlesBenefits`,props:{benefits:{type:Array,required:!0,validator:e=>e.every(e=>typeof e==`string`)},listClass:{type:String,default:``}},setup(e){return(n,i)=>e.benefits.length?(t(),f(`ul`,{key:0,class:p([`flex flex-col gap-4`,e.listClass])},[(t(!0),f(u,null,r(e.benefits.slice(0,3),e=>(t(),f(`li`,{key:e,class:`flex items-start gap-3`},[d(`span`,T,[c(h,{name:`check`,size:14,"stroke-width":2.2})]),d(`span`,E,a(e),1)]))),128))],2)):s(``,!0)}},O={id:`bundles`,class:`bg-surface text-ink`},k={class:`mx-auto w-full max-w-6xl px-6 py-16 sm:px-8 sm:py-20 md:px-12 md:py-24 lg:px-16 lg:py-28`},ee={key:0,class:`flex flex-col gap-10 md:gap-12 lg:gap-14`},te={key:0,class:`rounded-md border border-cream-dark bg-cream px-5 py-4 sm:px-6 sm:py-5`},ne={class:`flex flex-col gap-4 sm:flex-row sm:flex-wrap sm:items-center sm:justify-between sm:gap-x-8 sm:gap-y-3`},A={"aria-hidden":`true`,class:`inline-flex h-6 w-6 shrink-0 items-center justify-center rounded-full bg-brand-wash text-brand`},j={class:`font-sans text-sm font-semibold text-ink leading-snug`},M={class:`min-w-0`},N={class:`md:hidden grid gap-5`},P={class:`hidden md:grid md:gap-6 md:grid-cols-3`},F={key:1,class:`flex justify-center`},I={key:1,class:`grid gap-10 md:gap-12 lg:gap-16 lg:grid-cols-[340px_1fr] lg:items-center`},L={class:`flex flex-col gap-8`},R={class:`min-w-0`},z={class:`md:hidden grid gap-5`},B={class:`hidden md:flex md:flex-col md:gap-6 relative`},V=[`aria-label`],H=[`aria-label`],U={class:`flex items-center justify-between gap-4`},W={class:`flex items-center gap-2`},G=[`aria-label`,`aria-current`,`onClick`],K={class:`flex items-center gap-2`},q=v({__name:`Bundles`,props:{layout:{type:String,default:`sidebar`,validator:e=>[`sidebar`,`stacked`].includes(e)},headline:{type:String,default:``},headlineEm:{type:String,default:``},sub:{type:String,default:``},benefits:{type:Array,default:()=>[],validator:e=>e.every(e=>typeof e==`string`)},joinCta:{type:String,default:``},bundles:{type:Array,required:!0},carouselLabel:{type:String,default:``},carouselPrevLabel:{type:String,default:``},carouselNextLabel:{type:String,default:``},carouselGoToPrefix:{type:String,default:``}},emits:[`add`,`join`],setup(v){let x=v,{t:S}=_(),C=()=>x.carouselLabel||S(`ds.bundles.carousel.label`),T=()=>x.carouselPrevLabel||S(`ds.bundles.carousel.prev`),E=()=>x.carouselNextLabel||S(`ds.bundles.carousel.next`),q=()=>x.carouselGoToPrefix||S(`ds.bundles.carousel.goToSlide`),J=e(null),Y=e(0);function X(){return J.value?J.value.children.length:0}function Z(e,t=`smooth`){let n=J.value;if(!n)return;let r=n.children.length-1,i=Math.max(0,Math.min(e,r));n.scrollTo({left:i*n.clientWidth,behavior:t})}function re(){let e=X()-1;e<0||Z(Y.value===0?e:Y.value-1)}function ie(){let e=X()-1;e<0||Z(Y.value===e?0:Y.value+1)}function ae(){let e=J.value;if(!e)return;let t=Math.round(e.scrollLeft/e.clientWidth);t!==Y.value&&(Y.value=t)}let Q=0;function $(){Q&&cancelAnimationFrame(Q),Q=requestAnimationFrame(()=>{let e=J.value;e&&(e.scrollLeft=Y.value*e.clientWidth,Q=0)})}return n(()=>{window.addEventListener(`resize`,$,{passive:!0})}),m(()=>{window.removeEventListener(`resize`,$),Q&&cancelAnimationFrame(Q)}),(e,n)=>(t(),f(`section`,O,[d(`div`,k,[v.layout===`stacked`?(t(),f(`div`,ee,[c(w,{headline:v.headline,"headline-em":v.headlineEm,sub:v.sub,"sub-max-width":`max-w-2xl`},null,8,[`headline`,`headline-em`,`sub`]),v.benefits.length?(t(),f(`div`,te,[d(`ul`,ne,[(t(!0),f(u,null,r(v.benefits.slice(0,3),e=>(t(),f(`li`,{key:e,class:`flex items-center gap-3`},[d(`span`,A,[c(h,{name:`check`,size:14,"stroke-width":2.2})]),d(`span`,j,a(e),1)]))),128))])])):s(``,!0),d(`div`,M,[d(`div`,N,[(t(!0),f(u,null,r(v.bundles,n=>(t(),i(b,{key:n.id,layout:`vertical`,name:n.name,items:n.items,price:n.price,"member-price":n.memberPrice,usage:n.usage,image:n.image,"image-alt":n.imageAlt,badge:n.badge,"badge-variant":n.badgeVariant||`accent`,href:n.href||``,tone:`paper`,onAdd:t=>e.$emit(`add`,n.id)},null,8,[`name`,`items`,`price`,`member-price`,`usage`,`image`,`image-alt`,`badge`,`badge-variant`,`href`,`onAdd`]))),128))]),d(`div`,P,[(t(!0),f(u,null,r(v.bundles.slice(0,3),n=>(t(),i(b,{key:n.id,layout:`vertical`,name:n.name,items:n.items,price:n.price,"member-price":n.memberPrice,usage:n.usage,image:n.image,"image-alt":n.imageAlt,badge:n.badge,"badge-variant":n.badgeVariant||`accent`,href:n.href||``,tone:`paper`,onAdd:t=>e.$emit(`add`,n.id)},null,8,[`name`,`items`,`price`,`member-price`,`usage`,`image`,`image-alt`,`badge`,`badge-variant`,`href`,`onAdd`]))),128))])]),v.joinCta?(t(),f(`div`,F,[c(y,{variant:`primary`,size:`lg`,onClick:n[0]||=t=>e.$emit(`join`)},{default:o(()=>[l(a(v.joinCta),1)]),_:1})])):s(``,!0)])):(t(),f(`div`,I,[d(`aside`,L,[c(w,{headline:v.headline,"headline-em":v.headlineEm,sub:v.sub,"sub-max-width":`max-w-md`},null,8,[`headline`,`headline-em`,`sub`]),c(D,{benefits:v.benefits},null,8,[`benefits`]),v.joinCta?(t(),i(y,{key:0,variant:`primary`,size:`md`,class:`self-start`,onClick:n[1]||=t=>e.$emit(`join`)},{default:o(()=>[l(a(v.joinCta),1)]),_:1})):s(``,!0)]),d(`div`,R,[d(`div`,z,[(t(!0),f(u,null,r(v.bundles,n=>(t(),i(b,{key:n.id,layout:`vertical`,name:n.name,items:n.items,price:n.price,"member-price":n.memberPrice,usage:n.usage,image:n.image,"image-alt":n.imageAlt,badge:n.badge,"badge-variant":n.badgeVariant||`accent`,href:n.href||``,tone:`paper`,onAdd:t=>e.$emit(`add`,n.id)},null,8,[`name`,`items`,`price`,`member-price`,`usage`,`image`,`image-alt`,`badge`,`badge-variant`,`href`,`onAdd`]))),128))]),d(`div`,B,[d(`div`,{ref_key:`track`,ref:J,class:`flex snap-x snap-mandatory overflow-x-auto scroll-smooth no-scrollbar pt-2 pb-16 -mt-2 -mb-16`,role:`region`,"aria-roledescription":`carousel`,"aria-label":C(),onScroll:ae},[(t(!0),f(u,null,r(v.bundles,(n,r)=>(t(),f(`div`,{key:n.id,class:`snap-start shrink-0 w-full`,role:`group`,"aria-roledescription":`slide`,"aria-label":`${r+1} / ${v.bundles.length}`},[c(b,{layout:`horizontal`,name:n.name,items:n.items,price:n.price,"member-price":n.memberPrice,usage:n.usage,image:n.image,"image-alt":n.imageAlt,badge:n.badge,"badge-variant":n.badgeVariant||`accent`,href:n.href||``,tone:`paper`,onAdd:t=>e.$emit(`add`,n.id)},null,8,[`name`,`items`,`price`,`member-price`,`usage`,`image`,`image-alt`,`badge`,`badge-variant`,`href`,`onAdd`])],8,H))),128))],40,V),d(`div`,U,[d(`div`,W,[(t(!0),f(u,null,r(v.bundles,(e,n)=>(t(),f(`button`,{key:n,type:`button`,class:p([`h-2 rounded-full transition-all duration-base`,Y.value===n?`w-8 bg-brand`:`w-2 bg-brand/30 hover:bg-brand/50`]),"aria-label":`${q()} ${n+1}`,"aria-current":Y.value===n?`true`:void 0,onClick:e=>Z(n)},null,10,G))),128))]),d(`div`,K,[c(g,{icon:`chevron-left`,variant:`brand-wash`,size:`md`,"aria-label":T(),onClick:re},null,8,[`aria-label`]),c(g,{icon:`chevron-right`,variant:`brand-wash`,size:`md`,"aria-label":E(),onClick:ie},null,8,[`aria-label`])])])])])]))])]))}},[[`__scopeId`,`data-v-86262777`]]);export{q as t}; \ No newline at end of file diff --git a/dist/assets/BundlesPreview-CkVzcOH5.js b/dist/assets/BundlesPreview-BP6X0hcc.js similarity index 92% rename from dist/assets/BundlesPreview-CkVzcOH5.js rename to dist/assets/BundlesPreview-BP6X0hcc.js index 3e848f7..ef259d7 100644 --- a/dist/assets/BundlesPreview-CkVzcOH5.js +++ b/dist/assets/BundlesPreview-BP6X0hcc.js @@ -1 +1 @@ -import{C as e,G as t,m as n,o as r,u as i}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{a}from"./vue-router-Cyqru1db.js";import{t as o}from"./i18n-yr4x-3Jp.js";import{t as s}from"./Bundles-vXh1yjVW.js";var c={class:`min-h-screen bg-surface`},l={__name:`BundlesPreview`,setup(l){let{t:u}=o(),d=a(),f=r(()=>d.query.layout===`stacked`?`stacked`:`sidebar`),p=[{id:`haushalt`,name:`Haushalts-Bundle`,usage:`2–3× pro Quartal empfohlen`,items:[`1× Kaiser-Natron Pulver 250 g`,`1× Allzweck-Spray 500 ml`,`1× Spülmittel 500 ml`],price:24.9,memberPrice:21.17,image:`/products/kaiser-natron-pulver-250-g-grosspackung.webp`,imageAlt:`Haushalts-Bundle mit Kaiser-Natron`,badge:`Bestseller`,badgeVariant:`accent`},{id:`waesche`,name:`Wäsche & Pflege`,usage:`1–2× pro Quartal`,items:[`1× Holste Wasch-Soda 500 g`,`1× Gazelle Wäschestärke 1 l`,`1× Linda Fleckenweg 200 ml`],price:22.9,memberPrice:19.47,image:`/products/holste-wasch-soda-500-g-beutel.webp`,imageAlt:`Wäsche & Pflege Bundle`},{id:`wohlfuehl`,name:`Wohlfühl-Bundle`,usage:`1× pro Quartal`,items:[`1× Kaiser-Natron Tabletten 100 g`,`1× Kaiser-Natron Bad 500 g`,`1× Kaiser-Natron Fußbad 500 g`],price:29.9,memberPrice:25.42,image:`/products/kaiser-natron-bad-500-g.webp`,imageAlt:`Wohlfühl-Bundle`}],m=r(()=>[u(`bundles.benefit.1.title`),u(`bundles.benefit.2.title`),u(`bundles.benefit.3.title`)]);return(r,a)=>(e(),i(`div`,c,[n(s,{layout:f.value,bundles:p,headline:t(u)(`bundles.headline.a`),"headline-em":t(u)(`bundles.headline.em`),sub:t(u)(`bundles.sub`),benefits:m.value,"join-cta":t(u)(`bundles.joinCta`)},null,8,[`layout`,`headline`,`headline-em`,`sub`,`benefits`,`join-cta`])]))}};export{l as default}; \ No newline at end of file +import{C as e,G as t,m as n,o as r,u as i}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{a}from"./vue-router-Cyqru1db.js";import{t as o}from"./i18n-XDSWEyNo.js";import{t as s}from"./Bundles-D-hn22_F.js";var c={class:`min-h-screen bg-surface`},l={__name:`BundlesPreview`,setup(l){let{t:u}=o(),d=a(),f=r(()=>d.query.layout===`stacked`?`stacked`:`sidebar`),p=[{id:`haushalt`,name:`Haushalts-Bundle`,usage:`2–3× pro Quartal empfohlen`,items:[`1× Kaiser-Natron Pulver 250 g`,`1× Allzweck-Spray 500 ml`,`1× Spülmittel 500 ml`],price:24.9,memberPrice:21.17,image:`/products/kaiser-natron-pulver-250-g-grosspackung.webp`,imageAlt:`Haushalts-Bundle mit Kaiser-Natron`,badge:`Bestseller`,badgeVariant:`accent`},{id:`waesche`,name:`Wäsche & Pflege`,usage:`1–2× pro Quartal`,items:[`1× Holste Wasch-Soda 500 g`,`1× Gazelle Wäschestärke 1 l`,`1× Linda Fleckenweg 200 ml`],price:22.9,memberPrice:19.47,image:`/products/holste-wasch-soda-500-g-beutel.webp`,imageAlt:`Wäsche & Pflege Bundle`},{id:`wohlfuehl`,name:`Wohlfühl-Bundle`,usage:`1× pro Quartal`,items:[`1× Kaiser-Natron Tabletten 100 g`,`1× Kaiser-Natron Bad 500 g`,`1× Kaiser-Natron Fußbad 500 g`],price:29.9,memberPrice:25.42,image:`/products/kaiser-natron-bad-500-g.webp`,imageAlt:`Wohlfühl-Bundle`}],m=r(()=>[u(`bundles.benefit.1.title`),u(`bundles.benefit.2.title`),u(`bundles.benefit.3.title`)]);return(r,a)=>(e(),i(`div`,c,[n(s,{layout:f.value,bundles:p,headline:t(u)(`bundles.headline.a`),"headline-em":t(u)(`bundles.headline.em`),sub:t(u)(`bundles.sub`),benefits:m.value,"join-cta":t(u)(`bundles.joinCta`)},null,8,[`layout`,`headline`,`headline-em`,`sub`,`benefits`,`join-cta`])]))}};export{l as default}; \ No newline at end of file diff --git a/dist/assets/BundlesSection-H91qOwpu.js b/dist/assets/BundlesSection-B0VFhYT5.js similarity index 98% rename from dist/assets/BundlesSection-H91qOwpu.js rename to dist/assets/BundlesSection-B0VFhYT5.js index 95ba394..2f58541 100644 --- a/dist/assets/BundlesSection-H91qOwpu.js +++ b/dist/assets/BundlesSection-B0VFhYT5.js @@ -1,4 +1,4 @@ -import{B as e,C as t,G as n,T as r,c as i,ft as a,j as o,m as s,o as c,p as l,r as u,s as d,u as f,ut as p}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{t as m}from"./i18n-yr4x-3Jp.js";import{t as h}from"./SectionShell-CyPmh1h8.js";import{t as g}from"./DevicePreview-BQG4JYnV.js";var _={role:`tablist`,"aria-label":`Layout variant`,class:`inline-flex items-center p-1 gap-0.5 rounded-pill border border-line bg-paper`},v=[`aria-selected`,`onClick`],y={class:`eyebrow mb-5`},b={__name:`BundlesSection`,setup(b){let{t:x}=m(),S=[{id:`sidebar`,label:`Option 1`},{id:`stacked`,label:`Option 2`}],C=e(`sidebar`),w=c(()=>`/design/preview/bundles?layout=${C.value}`);return(e,c)=>(t(),i(h,{eyebrow:n(x)(`ds.eyebrow.components`),title:n(x)(`ds.bundles.title`),description:n(x)(`ds.bundles.description`),wide:``},{default:o(()=>[d(`section`,null,[s(g,{src:w.value,initial:`desktop`,height:1080},{controls:o(()=>[d(`div`,_,[(t(),f(u,null,r(S,e=>d(`button`,{key:e.id,type:`button`,role:`tab`,"aria-selected":C.value===e.id,class:p([`inline-flex items-center gap-2 px-3 py-1.5 text-[12px] font-semibold tracking-label rounded-pill transition-colors duration-base`,C.value===e.id?`bg-brand text-accent`:`text-muted hover:text-brand`]),onClick:t=>C.value=e.id},a(e.label),11,v)),64))])]),_:1},8,[`src`])]),d(`section`,null,[d(`h2`,y,a(n(x)(`ds.heading.usage`)),1),c[0]||=d(`div`,{class:`rounded-md border border-line bg-paper p-6 font-mono text-[12px] text-ink`},[d(`pre`,{class:`whitespace-pre-wrap`},``/design/preview/bundles?layout=${C.value}`);return(e,c)=>(t(),i(h,{eyebrow:n(x)(`ds.eyebrow.components`),title:n(x)(`ds.bundles.title`),description:n(x)(`ds.bundles.description`),wide:``},{default:o(()=>[d(`section`,null,[s(g,{src:w.value,initial:`desktop`,height:1080},{controls:o(()=>[d(`div`,_,[(t(),f(u,null,r(S,e=>d(`button`,{key:e.id,type:`button`,role:`tab`,"aria-selected":C.value===e.id,class:p([`inline-flex items-center gap-2 px-3 py-1.5 text-[12px] font-semibold tracking-label rounded-pill transition-colors duration-base`,C.value===e.id?`bg-brand text-accent`:`text-muted hover:text-brand`]),onClick:t=>C.value=e.id},a(e.label),11,v)),64))])]),_:1},8,[`src`])]),d(`section`,null,[d(`h2`,y,a(n(x)(`ds.heading.usage`)),1),c[0]||=d(`div`,{class:`rounded-md border border-line bg-paper p-6 font-mono text-[12px] text-ink`},[d(`pre`,{class:`whitespace-pre-wrap`},`(e(),n(d,{eyebrow:t(F)(`ds.eyebrow.components`),title:t(F)(`ds.buttons.title`),description:t(F)(`ds.buttons.description`)},{default:i(()=>[s(`section`,null,[s(`h2`,p,r(t(F)(`ds.heading.variants`)),1),a(f,{tone:`paper`},{default:i(()=>[s(`div`,m,[a(u,{variant:`primary`},{default:i(()=>[o(r(t(F)(`ds.buttons.primary`)),1)]),_:1}),a(u,{variant:`accent`},{default:i(()=>[o(r(t(F)(`ds.buttons.accent`)),1)]),_:1}),a(u,{variant:`secondary`},{default:i(()=>[o(r(t(F)(`ds.buttons.secondary`)),1)]),_:1}),a(u,{variant:`ghost`},{default:i(()=>[o(r(t(F)(`ds.buttons.ghost`)),1)]),_:1}),a(u,{variant:`danger`},{default:i(()=>[o(r(t(F)(`ds.buttons.danger`)),1)]),_:1})])]),_:1})]),s(`section`,null,[s(`h2`,h,r(t(F)(`ds.heading.onDifferentSurfaces`)),1),s(`div`,g,[a(f,{tone:`paper`},{default:i(()=>[s(`p`,_,r(t(F)(`ds.cards.paper`)),1),s(`div`,v,[a(u,{variant:`primary`},{before:i(()=>[a(c,{name:`cart`,size:18})]),default:i(()=>[o(` `+r(t(F)(`ds.buttons.addToCart`)),1)]),_:1}),a(u,{variant:`ghost`},{default:i(()=>[o(r(t(F)(`ds.buttons.learnMore`)),1)]),_:1})])]),_:1}),a(f,{tone:`cream`},{default:i(()=>[s(`p`,y,r(t(F)(`ds.cards.cream`)),1),s(`div`,b,[a(u,{variant:`primary`},{before:i(()=>[a(c,{name:`cart`,size:18})]),default:i(()=>[o(` `+r(t(F)(`ds.buttons.addToCart`)),1)]),_:1}),a(u,{variant:`ghost`},{default:i(()=>[o(r(t(F)(`ds.buttons.learnMore`)),1)]),_:1})])]),_:1}),a(f,{tone:`brand`},{default:i(()=>[s(`p`,x,r(t(F)(`ds.cards.brand`)),1),s(`div`,S,[a(u,{variant:`accent`},{before:i(()=>[a(c,{name:`cart`,size:18})]),default:i(()=>[o(` `+r(t(F)(`ds.buttons.addToCart`)),1)]),_:1}),a(u,{variant:`ghost`,class:`!text-cream hover:!bg-cream-wash`},{default:i(()=>[o(r(t(F)(`ds.buttons.learnMore`)),1)]),_:1})])]),_:1})])]),s(`section`,null,[s(`h2`,C,r(t(F)(`ds.heading.sizes`)),1),a(f,{tone:`paper`},{default:i(()=>[s(`div`,w,[a(u,{size:`sm`},{default:i(()=>[o(r(t(F)(`ds.buttons.small`)),1)]),_:1}),a(u,{size:`md`},{default:i(()=>[o(r(t(F)(`ds.buttons.medium`)),1)]),_:1}),a(u,{size:`lg`},{default:i(()=>[o(r(t(F)(`ds.buttons.large`)),1)]),_:1})])]),_:1})]),s(`section`,null,[s(`h2`,T,r(t(F)(`ds.heading.withIcons`)),1),a(f,{tone:`paper`},{default:i(()=>[s(`div`,E,[a(u,{variant:`primary`},{before:i(()=>[a(c,{name:`cart`,size:18})]),default:i(()=>[o(` `+r(t(F)(`ds.buttons.addToCart`)),1)]),_:1}),a(u,{variant:`secondary`},{after:i(()=>[a(c,{name:`arrow-right`,size:18})]),default:i(()=>[o(r(t(F)(`ds.buttons.learnMore`))+` `,1)]),_:1}),a(u,{variant:`ghost`},{before:i(()=>[a(c,{name:`heart`,size:18})]),default:i(()=>[o(` `+r(t(F)(`ds.buttons.save`)),1)]),_:1}),a(u,{variant:`accent`,size:`sm`},{before:i(()=>[a(c,{name:`check`,size:16})]),default:i(()=>[o(` `+r(t(F)(`ds.buttons.confirm`)),1)]),_:1})])]),_:1})]),s(`section`,null,[s(`h2`,D,r(t(F)(`ds.heading.states`)),1),a(f,{tone:`paper`},{default:i(()=>[s(`div`,O,[a(u,null,{default:i(()=>[o(r(t(F)(`ds.heading.default`)),1)]),_:1}),a(u,{disabled:``},{default:i(()=>[o(r(t(F)(`ds.buttons.disabled`)),1)]),_:1}),a(u,{loading:``},{default:i(()=>[o(r(t(F)(`ds.buttons.loading`)),1)]),_:1})])]),_:1})]),s(`section`,null,[s(`h2`,k,r(t(F)(`ds.heading.block`)),1),a(f,{tone:`paper`},{default:i(()=>[s(`div`,A,[a(u,{block:``,variant:`primary`},{before:i(()=>[a(c,{name:`cart`,size:18})]),default:i(()=>[o(` `+r(t(F)(`ds.buttons.addToCart`)),1)]),_:1}),a(u,{block:``,variant:`secondary`},{default:i(()=>[o(r(t(F)(`ds.buttons.continueShopping`)),1)]),_:1})])]),_:1})]),s(`section`,null,[s(`h2`,j,r(t(F)(`ds.heading.usage`)),1),s(`div`,M,[s(`pre`,N,``,1)])])]),_:1},8,[`eyebrow`,`title`,`description`]))}};export{P as default}; \ No newline at end of file diff --git a/dist/assets/CardsSection-B3kiixC1.js b/dist/assets/CardsSection-BkkgZLy2.js similarity index 97% rename from dist/assets/CardsSection-B3kiixC1.js rename to dist/assets/CardsSection-BkkgZLy2.js index 23ca303..69de65b 100644 --- a/dist/assets/CardsSection-B3kiixC1.js +++ b/dist/assets/CardsSection-BkkgZLy2.js @@ -1 +1 @@ -import{C as e,G as t,c as n,ft as r,j as i,m as a,p as o,s}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{t as c}from"./i18n-yr4x-3Jp.js";import{t as l}from"./Badge-DiccZCC_.js";import{t as u}from"./SectionShell-CyPmh1h8.js";import{t as d}from"./Card-GDlIV5WI.js";var f={class:`eyebrow mb-5`},p={class:`grid md:grid-cols-3 gap-6`},m={class:`font-display text-2xl font-normal mb-2`},h={class:`text-[14px] text-muted leading-relaxed`},g={class:`font-display text-2xl font-normal mb-2`},_={class:`text-[14px] text-muted leading-relaxed`},v={class:`font-display text-2xl font-normal mb-2`},y={class:`text-[14px] opacity-80 leading-relaxed`},b={class:`eyebrow mb-5`},x={class:`grid md:grid-cols-2 gap-6`},S={class:`font-display text-2xl font-normal mb-2`},C={class:`text-[14px] text-muted leading-relaxed`},w={class:`font-display text-2xl font-normal mb-2`},T={class:`text-[14px] text-muted leading-relaxed`},E={class:`eyebrow mb-5`},D={class:`p-7`},O={class:`font-display text-2xl font-normal mb-2`},k={class:`text-[14px] text-muted leading-relaxed`},A={__name:`CardsSection`,setup(A){let{t:j}=c();return(c,A)=>(e(),n(u,{eyebrow:t(j)(`ds.eyebrow.components`),title:t(j)(`ds.cards.title`),description:t(j)(`ds.cards.description`)},{default:i(()=>[s(`section`,null,[s(`h2`,f,r(t(j)(`ds.heading.tones`)),1),s(`div`,p,[a(d,{tone:`paper`},{default:i(()=>[a(l,{variant:`subtle`,class:`mb-4`},{default:i(()=>[o(r(t(j)(`ds.cards.paper`)),1)]),_:1}),s(`h3`,m,r(t(j)(`ds.cards.paperTitle`)),1),s(`p`,h,r(t(j)(`ds.cards.paperBody`)),1)]),_:1}),a(d,{tone:`cream`},{default:i(()=>[a(l,{variant:`subtle`,class:`mb-4`},{default:i(()=>[o(r(t(j)(`ds.cards.cream`)),1)]),_:1}),s(`h3`,g,r(t(j)(`ds.cards.creamTitle`)),1),s(`p`,_,r(t(j)(`ds.cards.creamBody`)),1)]),_:1}),a(d,{tone:`brand`},{default:i(()=>[a(l,{variant:`accent`,class:`mb-4`},{default:i(()=>[o(r(t(j)(`ds.cards.brand`)),1)]),_:1}),s(`h3`,v,r(t(j)(`ds.cards.brandTitle`)),1),s(`p`,y,r(t(j)(`ds.cards.brandBody`)),1)]),_:1})])]),s(`section`,null,[s(`h2`,b,r(t(j)(`ds.heading.interactive`)),1),s(`div`,x,[a(d,{tone:`paper`,interactive:``},{default:i(()=>[s(`h3`,S,r(t(j)(`ds.cards.hoverMe`)),1),s(`p`,C,r(t(j)(`ds.cards.hoverBody`)),1)]),_:1}),a(d,{tone:`cream`,interactive:``},{default:i(()=>[s(`h3`,w,r(t(j)(`ds.cards.hoverMeToo`)),1),s(`p`,T,r(t(j)(`ds.cards.hoverBodyAlt`)),1)]),_:1})])]),s(`section`,null,[s(`h2`,E,r(t(j)(`ds.heading.withoutPadding`)),1),a(d,{tone:`paper`,padded:!1},{default:i(()=>[A[2]||=s(`div`,{class:`h-40 bg-cream rounded-t-md`},null,-1),s(`div`,D,[s(`h3`,O,r(t(j)(`ds.cards.mediaTitle`)),1),s(`p`,k,[o(r(t(j)(`ds.cards.mediaBody`))+` `,1),A[0]||=s(`code`,{class:`font-mono text-[12px]`},`:padded="false"`,-1),A[1]||=o(`. `,-1)])])]),_:1})])]),_:1},8,[`eyebrow`,`title`,`description`]))}};export{A as default}; \ No newline at end of file +import{C as e,G as t,c as n,ft as r,j as i,m as a,p as o,s}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{t as c}from"./i18n-XDSWEyNo.js";import{t as l}from"./Badge-DiccZCC_.js";import{t as u}from"./SectionShell-CyPmh1h8.js";import{t as d}from"./Card-GDlIV5WI.js";var f={class:`eyebrow mb-5`},p={class:`grid md:grid-cols-3 gap-6`},m={class:`font-display text-2xl font-normal mb-2`},h={class:`text-[14px] text-muted leading-relaxed`},g={class:`font-display text-2xl font-normal mb-2`},_={class:`text-[14px] text-muted leading-relaxed`},v={class:`font-display text-2xl font-normal mb-2`},y={class:`text-[14px] opacity-80 leading-relaxed`},b={class:`eyebrow mb-5`},x={class:`grid md:grid-cols-2 gap-6`},S={class:`font-display text-2xl font-normal mb-2`},C={class:`text-[14px] text-muted leading-relaxed`},w={class:`font-display text-2xl font-normal mb-2`},T={class:`text-[14px] text-muted leading-relaxed`},E={class:`eyebrow mb-5`},D={class:`p-7`},O={class:`font-display text-2xl font-normal mb-2`},k={class:`text-[14px] text-muted leading-relaxed`},A={__name:`CardsSection`,setup(A){let{t:j}=c();return(c,A)=>(e(),n(u,{eyebrow:t(j)(`ds.eyebrow.components`),title:t(j)(`ds.cards.title`),description:t(j)(`ds.cards.description`)},{default:i(()=>[s(`section`,null,[s(`h2`,f,r(t(j)(`ds.heading.tones`)),1),s(`div`,p,[a(d,{tone:`paper`},{default:i(()=>[a(l,{variant:`subtle`,class:`mb-4`},{default:i(()=>[o(r(t(j)(`ds.cards.paper`)),1)]),_:1}),s(`h3`,m,r(t(j)(`ds.cards.paperTitle`)),1),s(`p`,h,r(t(j)(`ds.cards.paperBody`)),1)]),_:1}),a(d,{tone:`cream`},{default:i(()=>[a(l,{variant:`subtle`,class:`mb-4`},{default:i(()=>[o(r(t(j)(`ds.cards.cream`)),1)]),_:1}),s(`h3`,g,r(t(j)(`ds.cards.creamTitle`)),1),s(`p`,_,r(t(j)(`ds.cards.creamBody`)),1)]),_:1}),a(d,{tone:`brand`},{default:i(()=>[a(l,{variant:`accent`,class:`mb-4`},{default:i(()=>[o(r(t(j)(`ds.cards.brand`)),1)]),_:1}),s(`h3`,v,r(t(j)(`ds.cards.brandTitle`)),1),s(`p`,y,r(t(j)(`ds.cards.brandBody`)),1)]),_:1})])]),s(`section`,null,[s(`h2`,b,r(t(j)(`ds.heading.interactive`)),1),s(`div`,x,[a(d,{tone:`paper`,interactive:``},{default:i(()=>[s(`h3`,S,r(t(j)(`ds.cards.hoverMe`)),1),s(`p`,C,r(t(j)(`ds.cards.hoverBody`)),1)]),_:1}),a(d,{tone:`cream`,interactive:``},{default:i(()=>[s(`h3`,w,r(t(j)(`ds.cards.hoverMeToo`)),1),s(`p`,T,r(t(j)(`ds.cards.hoverBodyAlt`)),1)]),_:1})])]),s(`section`,null,[s(`h2`,E,r(t(j)(`ds.heading.withoutPadding`)),1),a(d,{tone:`paper`,padded:!1},{default:i(()=>[A[2]||=s(`div`,{class:`h-40 bg-cream rounded-t-md`},null,-1),s(`div`,D,[s(`h3`,O,r(t(j)(`ds.cards.mediaTitle`)),1),s(`p`,k,[o(r(t(j)(`ds.cards.mediaBody`))+` `,1),A[0]||=s(`code`,{class:`font-mono text-[12px]`},`:padded="false"`,-1),A[1]||=o(`. `,-1)])])]),_:1})])]),_:1},8,[`eyebrow`,`title`,`description`]))}};export{A as default}; \ No newline at end of file diff --git a/dist/assets/CartDrawer-CY64MRh3.js b/dist/assets/CartDrawer-BdjtcjVt.js similarity index 98% rename from dist/assets/CartDrawer-CY64MRh3.js rename to dist/assets/CartDrawer-BdjtcjVt.js index ff26a00..576b5f9 100644 --- a/dist/assets/CartDrawer-CY64MRh3.js +++ b/dist/assets/CartDrawer-BdjtcjVt.js @@ -1 +1 @@ -import{A as e,B as t,C as n,G as r,T as i,b as ee,c as a,ft as o,i as te,j as s,l as c,m as l,o as u,p as d,r as ne,s as f,u as p,x as m}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{t as h}from"./runtime-dom.esm-bundler-CXLmyuFK.js";import{t as g}from"./Icon-BCo6-bGH.js";import{t as _}from"./IconButton-Cw1KbfUO.js";import{t as re}from"./i18n-yr4x-3Jp.js";import{t as ie}from"./Badge-DiccZCC_.js";import{n as v}from"./products-BqW5PUnm.js";import"./api-DlB23x7f.js";import{t as y}from"./Button-D1Rp2Xe1.js";import{t as b}from"./QuantityStepper-7Y8q77T-.js";var x=[`aria-label`],S={class:`shrink-0 flex items-center justify-between px-6 py-5 border-b border-line`,style:{"padding-top":`calc(env(safe-area-inset-top) + 1.25rem)`}},C={class:`flex items-center gap-3 min-w-0`},w={class:`font-display text-2xl font-normal text-brand leading-none truncate`},T={class:`flex-1 overflow-y-auto`},E={key:0,class:`relative h-full flex flex-col items-center justify-center gap-4 px-8 py-16 text-center`},D={class:`w-16 h-16 rounded-full bg-brand-wash flex items-center justify-center text-brand`},O={class:`font-display text-xl text-brand`},k={class:`text-sm text-muted max-w-xs`},A={class:`md:hidden absolute bottom-5 right-5`,style:{"padding-bottom":`env(safe-area-inset-bottom)`}},j={key:1,class:`divide-y divide-line`},M=[`href`],N=[`src`,`alt`],P={class:`flex-1 min-w-0 flex flex-col gap-2`},F={class:`flex items-start justify-between gap-3`},ae={class:`min-w-0`},I={class:`text-[15px] font-semibold text-ink leading-tight truncate`},L={key:0,class:`text-[13px] text-muted mt-0.5 truncate`},R={class:`flex items-center justify-between gap-3`},z={class:`font-display text-lg text-brand tabular-nums`},B={key:0,class:`shrink-0 border-t border-line px-6 py-5 flex flex-col gap-4`,style:{"padding-bottom":`calc(env(safe-area-inset-bottom) + 1.25rem)`}},V={class:`flex items-baseline justify-between`},H={class:`eyebrow`},U={class:`font-display text-2xl text-brand tabular-nums`},W={class:`flex items-center gap-3`},G={class:`md:hidden shrink-0`},K={__name:`CartDrawer`,props:{modelValue:{type:Boolean,default:!1},items:{type:Array,default:()=>[]},subtotal:{type:Number,default:0},count:{type:Number,default:0}},emits:[`update:modelValue`,`update-quantity`,`remove`,`checkout`],setup(K,{emit:q}){let J=K,Y=q,{t:X}=re(),Z=t(null);function Q(){Y(`update:modelValue`,!1)}function oe(e){e.key===`Escape`&&(e.preventDefault(),Q())}e(()=>J.modelValue,e=>{typeof document>`u`||(document.documentElement.style.overflow=e?`hidden`:``,e&&ee(()=>Z.value?.focus()))}),m(()=>{typeof document<`u`&&(document.documentElement.style.overflow=``)});let $=u(()=>J.items.length>0);function se(e,t){Y(`update-quantity`,{productId:e.productId,quantity:t})}function ce(e){Y(`remove`,e.productId)}return(e,t)=>(n(),a(te,{to:`body`},[l(h,{"enter-active-class":`transition duration-base ease-out`,"enter-from-class":`opacity-0`,"enter-to-class":`opacity-100`,"leave-active-class":`transition duration-base ease-out`,"leave-from-class":`opacity-100`,"leave-to-class":`opacity-0`},{default:s(()=>[K.modelValue?(n(),p(`div`,{key:0,class:`fixed inset-0 z-[55] bg-ink/40`,"aria-hidden":`true`,onClick:Q})):c(``,!0)]),_:1}),l(h,{"enter-active-class":`transition-transform duration-slow ease-out`,"enter-from-class":`translate-x-full`,"enter-to-class":`translate-x-0`,"leave-active-class":`transition-transform duration-base ease-out`,"leave-from-class":`translate-x-0`,"leave-to-class":`translate-x-full`},{default:s(()=>[K.modelValue?(n(),p(`aside`,{key:0,ref_key:`panelRef`,ref:Z,tabindex:`-1`,role:`dialog`,"aria-modal":`true`,"aria-label":r(X)(`cart.label`),class:`fixed inset-y-0 right-0 z-[60] w-full md:max-w-[440px] bg-cream text-ink flex flex-col shadow-lg md:border-l md:border-line font-sans outline-none`,onKeydown:oe},[f(`header`,S,[f(`div`,C,[l(g,{name:`cart`,size:22,class:`text-brand shrink-0`}),f(`h2`,w,o(r(X)(`cart.label`)),1),K.count>0?(n(),a(ie,{key:0,variant:`subtle`,class:`shrink-0`},{default:s(()=>[d(o(K.count),1)]),_:1})):c(``,!0)]),l(_,{icon:`close`,variant:`ghost`,size:`sm`,"icon-size":20,"aria-label":r(X)(`menu.close`),class:`hidden md:inline-flex`,onClick:Q},null,8,[`aria-label`])]),f(`div`,T,[$.value?(n(),p(`ul`,j,[(n(!0),p(ne,null,i(K.items,e=>(n(),p(`li`,{key:e.productId,class:`flex gap-4 px-6 py-5`},[f(`a`,{href:e.product?.href||`#`,class:`shrink-0 w-20 h-20 rounded-sm overflow-hidden bg-paper flex items-center justify-center`},[e.product?.image?(n(),p(`img`,{key:0,src:e.product.image,alt:e.product.title,loading:`lazy`,decoding:`async`,class:`w-full h-full object-contain p-2`},null,8,N)):c(``,!0)],8,M),f(`div`,P,[f(`div`,F,[f(`div`,ae,[f(`p`,I,o(e.product?.title),1),e.product?.size?(n(),p(`p`,L,o(e.product.size),1)):c(``,!0)]),l(_,{icon:`trash`,variant:`ghost`,size:`xs`,"icon-size":18,"aria-label":r(X)(`cart.remove`),class:`shrink-0`,onClick:t=>ce(e)},null,8,[`aria-label`,`onClick`])]),f(`div`,R,[l(b,{"model-value":e.quantity,min:0,"decrease-label":r(X)(`cart.qty.decrease`),"increase-label":r(X)(`cart.qty.increase`),"onUpdate:modelValue":t=>se(e,t)},null,8,[`model-value`,`decrease-label`,`increase-label`,`onUpdate:modelValue`]),f(`span`,z,o(r(v)(e.lineTotal)),1)])])]))),128))])):(n(),p(`div`,E,[f(`div`,D,[l(g,{name:`cart`,size:28})]),f(`p`,O,o(r(X)(`cart.empty.title`)),1),f(`p`,k,o(r(X)(`cart.empty.subtitle`)),1),l(y,{variant:`secondary`,size:`md`,class:`mt-2`,onClick:Q},{default:s(()=>[d(o(r(X)(`ds.buttons.continueShopping`)),1)]),_:1}),f(`div`,A,[l(_,{icon:`close`,variant:`cream-dark`,size:`lg`,"icon-size":24,"icon-stroke-width":2,"aria-label":r(X)(`menu.close`),onClick:Q},null,8,[`aria-label`])])]))]),$.value?(n(),p(`footer`,B,[f(`div`,V,[f(`span`,H,o(r(X)(`cart.subtotal`)),1),f(`span`,U,o(r(v)(K.subtotal)),1)]),f(`div`,W,[l(y,{variant:`primary`,size:`lg`,block:``,class:`flex-1 min-w-0`,onClick:t[0]||=t=>e.$emit(`checkout`)},{after:s(()=>[l(g,{name:`arrow-right`,size:18})]),default:s(()=>[d(` `+o(r(X)(`cart.checkout`)),1)]),_:1}),f(`div`,G,[l(_,{icon:`close`,variant:`float`,size:`lg`,"icon-size":24,"icon-stroke-width":2,"aria-label":r(X)(`menu.close`),onClick:Q},null,8,[`aria-label`])])])])):c(``,!0)],40,x)):c(``,!0)]),_:1})]))}};export{K as t}; \ No newline at end of file +import{A as e,B as t,C as n,G as r,T as i,b as ee,c as a,ft as o,i as te,j as s,l as c,m as l,o as u,p as d,r as ne,s as f,u as p,x as m}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{t as h}from"./runtime-dom.esm-bundler-CXLmyuFK.js";import{t as g}from"./Icon-BCo6-bGH.js";import{t as _}from"./IconButton-Cw1KbfUO.js";import{t as re}from"./i18n-XDSWEyNo.js";import{t as ie}from"./Badge-DiccZCC_.js";import{n as v}from"./products-BqW5PUnm.js";import"./api-DlB23x7f.js";import{t as y}from"./Button-D1Rp2Xe1.js";import{t as b}from"./QuantityStepper-7Y8q77T-.js";var x=[`aria-label`],S={class:`shrink-0 flex items-center justify-between px-6 py-5 border-b border-line`,style:{"padding-top":`calc(env(safe-area-inset-top) + 1.25rem)`}},C={class:`flex items-center gap-3 min-w-0`},w={class:`font-display text-2xl font-normal text-brand leading-none truncate`},T={class:`flex-1 overflow-y-auto`},E={key:0,class:`relative h-full flex flex-col items-center justify-center gap-4 px-8 py-16 text-center`},D={class:`w-16 h-16 rounded-full bg-brand-wash flex items-center justify-center text-brand`},O={class:`font-display text-xl text-brand`},k={class:`text-sm text-muted max-w-xs`},A={class:`md:hidden absolute bottom-5 right-5`,style:{"padding-bottom":`env(safe-area-inset-bottom)`}},j={key:1,class:`divide-y divide-line`},M=[`href`],N=[`src`,`alt`],P={class:`flex-1 min-w-0 flex flex-col gap-2`},F={class:`flex items-start justify-between gap-3`},ae={class:`min-w-0`},I={class:`text-[15px] font-semibold text-ink leading-tight truncate`},L={key:0,class:`text-[13px] text-muted mt-0.5 truncate`},R={class:`flex items-center justify-between gap-3`},z={class:`font-display text-lg text-brand tabular-nums`},B={key:0,class:`shrink-0 border-t border-line px-6 py-5 flex flex-col gap-4`,style:{"padding-bottom":`calc(env(safe-area-inset-bottom) + 1.25rem)`}},V={class:`flex items-baseline justify-between`},H={class:`eyebrow`},U={class:`font-display text-2xl text-brand tabular-nums`},W={class:`flex items-center gap-3`},G={class:`md:hidden shrink-0`},K={__name:`CartDrawer`,props:{modelValue:{type:Boolean,default:!1},items:{type:Array,default:()=>[]},subtotal:{type:Number,default:0},count:{type:Number,default:0}},emits:[`update:modelValue`,`update-quantity`,`remove`,`checkout`],setup(K,{emit:q}){let J=K,Y=q,{t:X}=re(),Z=t(null);function Q(){Y(`update:modelValue`,!1)}function oe(e){e.key===`Escape`&&(e.preventDefault(),Q())}e(()=>J.modelValue,e=>{typeof document>`u`||(document.documentElement.style.overflow=e?`hidden`:``,e&&ee(()=>Z.value?.focus()))}),m(()=>{typeof document<`u`&&(document.documentElement.style.overflow=``)});let $=u(()=>J.items.length>0);function se(e,t){Y(`update-quantity`,{productId:e.productId,quantity:t})}function ce(e){Y(`remove`,e.productId)}return(e,t)=>(n(),a(te,{to:`body`},[l(h,{"enter-active-class":`transition duration-base ease-out`,"enter-from-class":`opacity-0`,"enter-to-class":`opacity-100`,"leave-active-class":`transition duration-base ease-out`,"leave-from-class":`opacity-100`,"leave-to-class":`opacity-0`},{default:s(()=>[K.modelValue?(n(),p(`div`,{key:0,class:`fixed inset-0 z-[55] bg-ink/40`,"aria-hidden":`true`,onClick:Q})):c(``,!0)]),_:1}),l(h,{"enter-active-class":`transition-transform duration-slow ease-out`,"enter-from-class":`translate-x-full`,"enter-to-class":`translate-x-0`,"leave-active-class":`transition-transform duration-base ease-out`,"leave-from-class":`translate-x-0`,"leave-to-class":`translate-x-full`},{default:s(()=>[K.modelValue?(n(),p(`aside`,{key:0,ref_key:`panelRef`,ref:Z,tabindex:`-1`,role:`dialog`,"aria-modal":`true`,"aria-label":r(X)(`cart.label`),class:`fixed inset-y-0 right-0 z-[60] w-full md:max-w-[440px] bg-cream text-ink flex flex-col shadow-lg md:border-l md:border-line font-sans outline-none`,onKeydown:oe},[f(`header`,S,[f(`div`,C,[l(g,{name:`cart`,size:22,class:`text-brand shrink-0`}),f(`h2`,w,o(r(X)(`cart.label`)),1),K.count>0?(n(),a(ie,{key:0,variant:`subtle`,class:`shrink-0`},{default:s(()=>[d(o(K.count),1)]),_:1})):c(``,!0)]),l(_,{icon:`close`,variant:`ghost`,size:`sm`,"icon-size":20,"aria-label":r(X)(`menu.close`),class:`hidden md:inline-flex`,onClick:Q},null,8,[`aria-label`])]),f(`div`,T,[$.value?(n(),p(`ul`,j,[(n(!0),p(ne,null,i(K.items,e=>(n(),p(`li`,{key:e.productId,class:`flex gap-4 px-6 py-5`},[f(`a`,{href:e.product?.href||`#`,class:`shrink-0 w-20 h-20 rounded-sm overflow-hidden bg-paper flex items-center justify-center`},[e.product?.image?(n(),p(`img`,{key:0,src:e.product.image,alt:e.product.title,loading:`lazy`,decoding:`async`,class:`w-full h-full object-contain p-2`},null,8,N)):c(``,!0)],8,M),f(`div`,P,[f(`div`,F,[f(`div`,ae,[f(`p`,I,o(e.product?.title),1),e.product?.size?(n(),p(`p`,L,o(e.product.size),1)):c(``,!0)]),l(_,{icon:`trash`,variant:`ghost`,size:`xs`,"icon-size":18,"aria-label":r(X)(`cart.remove`),class:`shrink-0`,onClick:t=>ce(e)},null,8,[`aria-label`,`onClick`])]),f(`div`,R,[l(b,{"model-value":e.quantity,min:0,"decrease-label":r(X)(`cart.qty.decrease`),"increase-label":r(X)(`cart.qty.increase`),"onUpdate:modelValue":t=>se(e,t)},null,8,[`model-value`,`decrease-label`,`increase-label`,`onUpdate:modelValue`]),f(`span`,z,o(r(v)(e.lineTotal)),1)])])]))),128))])):(n(),p(`div`,E,[f(`div`,D,[l(g,{name:`cart`,size:28})]),f(`p`,O,o(r(X)(`cart.empty.title`)),1),f(`p`,k,o(r(X)(`cart.empty.subtitle`)),1),l(y,{variant:`secondary`,size:`md`,class:`mt-2`,onClick:Q},{default:s(()=>[d(o(r(X)(`ds.buttons.continueShopping`)),1)]),_:1}),f(`div`,A,[l(_,{icon:`close`,variant:`cream-dark`,size:`lg`,"icon-size":24,"icon-stroke-width":2,"aria-label":r(X)(`menu.close`),onClick:Q},null,8,[`aria-label`])])]))]),$.value?(n(),p(`footer`,B,[f(`div`,V,[f(`span`,H,o(r(X)(`cart.subtotal`)),1),f(`span`,U,o(r(v)(K.subtotal)),1)]),f(`div`,W,[l(y,{variant:`primary`,size:`lg`,block:``,class:`flex-1 min-w-0`,onClick:t[0]||=t=>e.$emit(`checkout`)},{after:s(()=>[l(g,{name:`arrow-right`,size:18})]),default:s(()=>[d(` `+o(r(X)(`cart.checkout`)),1)]),_:1}),f(`div`,G,[l(_,{icon:`close`,variant:`float`,size:`lg`,"icon-size":24,"icon-stroke-width":2,"aria-label":r(X)(`menu.close`),onClick:Q},null,8,[`aria-label`])])])])):c(``,!0)],40,x)):c(``,!0)]),_:1})]))}};export{K as t}; \ No newline at end of file diff --git a/dist/assets/CartDrawerSection-BmSmhlUK.js b/dist/assets/CartDrawerSection-BP2yB8Il.js similarity index 92% rename from dist/assets/CartDrawerSection-BmSmhlUK.js rename to dist/assets/CartDrawerSection-BP2yB8Il.js index 47d8ece..57b336b 100644 --- a/dist/assets/CartDrawerSection-BmSmhlUK.js +++ b/dist/assets/CartDrawerSection-BP2yB8Il.js @@ -1,4 +1,4 @@ -import{B as e,C as t,G as n,S as r,c as i,ft as a,j as o,m as s,p as c,s as l}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{t as u}from"./Icon-BCo6-bGH.js";import{t as d}from"./i18n-yr4x-3Jp.js";import{c as f,d as p,f as m,l as h,p as g,u as _}from"./api-DlB23x7f.js";import{t as v}from"./Button-D1Rp2Xe1.js";import{t as y}from"./CartDrawer-CY64MRh3.js";import{t as b}from"./SectionShell-CyPmh1h8.js";var x={class:`eyebrow mb-5`},S={class:`rounded-md border border-line bg-paper p-6 flex flex-col sm:flex-row sm:items-center gap-4`},C={class:`text-[13px] text-muted`},w={class:`eyebrow mb-5`},T={class:`text-[15px] text-muted leading-relaxed mb-4 max-w-2xl`},E={class:`eyebrow mb-5`},D={__name:`CartDrawerSection`,setup(D){let{t:O}=d(),k=g(),A=e(!1);async function j(){await h(),await f(`kaiser-natron-pulver-250-g-grosspackung`,2),await f(`kaiser-natron-bad-500-g`,1),A.value=!0}async function M({productId:e,quantity:t}){await m(e,t)}async function N(e){await p(e)}return r(()=>{_()}),(e,r)=>(t(),i(b,{eyebrow:n(O)(`ds.eyebrow.components`),title:n(O)(`ds.cartDrawer.title`),description:n(O)(`ds.cartDrawer.description`)},{default:o(()=>[l(`section`,null,[l(`h2`,x,a(n(O)(`ds.heading.default`)),1),l(`div`,S,[s(v,{variant:`primary`,onClick:j},{before:o(()=>[s(u,{name:`cart`,size:18})]),default:o(()=>[c(` `+a(n(O)(`ds.cartDrawer.demoLabel`)),1)]),_:1}),l(`p`,C,a(n(O)(`ds.cartDrawer.demoHint`)),1)])]),l(`section`,null,[l(`h2`,w,a(n(O)(`ds.cartDrawer.integrationTitle`)),1),l(`p`,T,a(n(O)(`ds.cartDrawer.integrationBody`)),1),r[2]||=l(`div`,{class:`rounded-md border border-line bg-paper p-6 font-mono text-[12px] text-ink`},[l(`pre`,{class:`whitespace-pre-wrap`},`import { +import{B as e,C as t,G as n,S as r,c as i,ft as a,j as o,m as s,p as c,s as l}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{t as u}from"./Icon-BCo6-bGH.js";import{t as d}from"./i18n-XDSWEyNo.js";import{c as f,d as p,f as m,l as h,p as g,u as _}from"./api-DlB23x7f.js";import{t as v}from"./Button-D1Rp2Xe1.js";import{t as y}from"./CartDrawer-BdjtcjVt.js";import{t as b}from"./SectionShell-CyPmh1h8.js";var x={class:`eyebrow mb-5`},S={class:`rounded-md border border-line bg-paper p-6 flex flex-col sm:flex-row sm:items-center gap-4`},C={class:`text-[13px] text-muted`},w={class:`eyebrow mb-5`},T={class:`text-[15px] text-muted leading-relaxed mb-4 max-w-2xl`},E={class:`eyebrow mb-5`},D={__name:`CartDrawerSection`,setup(D){let{t:O}=d(),k=g(),A=e(!1);async function j(){await h(),await f(`kaiser-natron-pulver-250-g-grosspackung`,2),await f(`kaiser-natron-bad-500-g`,1),A.value=!0}async function M({productId:e,quantity:t}){await m(e,t)}async function N(e){await p(e)}return r(()=>{_()}),(e,r)=>(t(),i(b,{eyebrow:n(O)(`ds.eyebrow.components`),title:n(O)(`ds.cartDrawer.title`),description:n(O)(`ds.cartDrawer.description`)},{default:o(()=>[l(`section`,null,[l(`h2`,x,a(n(O)(`ds.heading.default`)),1),l(`div`,S,[s(v,{variant:`primary`,onClick:j},{before:o(()=>[s(u,{name:`cart`,size:18})]),default:o(()=>[c(` `+a(n(O)(`ds.cartDrawer.demoLabel`)),1)]),_:1}),l(`p`,C,a(n(O)(`ds.cartDrawer.demoHint`)),1)])]),l(`section`,null,[l(`h2`,w,a(n(O)(`ds.cartDrawer.integrationTitle`)),1),l(`p`,T,a(n(O)(`ds.cartDrawer.integrationBody`)),1),r[2]||=l(`div`,{class:`rounded-md border border-line bg-paper p-6 font-mono text-[12px] text-ink`},[l(`pre`,{class:`whitespace-pre-wrap`},`import { fetchCart, addToCart, updateCartItem, diff --git a/dist/assets/CartStep-CdXnBnBz.js b/dist/assets/CartStep-DiiuIdaQ.js similarity index 98% rename from dist/assets/CartStep-CdXnBnBz.js rename to dist/assets/CartStep-DiiuIdaQ.js index 0f7e4ec..22317c7 100644 --- a/dist/assets/CartStep-CdXnBnBz.js +++ b/dist/assets/CartStep-DiiuIdaQ.js @@ -1 +1 @@ -import{C as e,G as t,T as n,ft as r,j as i,l as a,m as o,o as s,p as c,r as l,s as u,u as d}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{o as ee,t as te}from"./vue-router-Cyqru1db.js";import{t as f}from"./Icon-BCo6-bGH.js";import{t as p}from"./i18n-yr4x-3Jp.js";import{n as m}from"./products-BqW5PUnm.js";import{d as ne,f as re,p as ie}from"./api-DlB23x7f.js";import{t as h}from"./Button-D1Rp2Xe1.js";import{t as ae}from"./QuantityStepper-7Y8q77T-.js";var g={key:0,class:`min-h-[55svh] flex items-center justify-center`},_={class:`flex flex-col gap-4 items-center text-center rounded-md border border-line bg-paper p-10 max-w-md w-full`},v={class:`inline-flex items-center justify-center w-14 h-14 rounded-full bg-cream text-brand`},y={class:`font-display text-xl text-brand`},b={class:`text-[14px] text-muted max-w-sm`},x={key:1,class:`flex flex-col gap-6`},S={class:`flex flex-col rounded-md border border-line bg-paper divide-y divide-line`},C={class:`shrink-0 w-20 h-20 rounded-sm bg-cream overflow-hidden flex items-center justify-center`},w=[`src`,`alt`],T={class:`flex-1 min-w-0`},E={class:`font-display text-base text-ink leading-tight`},D={key:0,class:`text-[12px] text-muted`},O={class:`mt-2 text-[13px] text-muted`},k={class:`flex items-center gap-4`},A={class:`text-[14px] font-semibold text-ink tabular-nums w-20 text-right`},j=[`aria-label`,`onClick`],M={class:`rounded-md border border-line bg-paper px-6 py-5 flex flex-col gap-2`},N={class:`flex items-baseline justify-between text-[14px]`},P={class:`text-muted`},F={class:`text-ink tabular-nums`},oe={class:`flex items-baseline justify-between text-[14px]`},I={class:`text-muted`},L={class:`text-ink tabular-nums`},R={class:`mt-1 pt-3 border-t border-line flex items-baseline justify-between`},z={class:`eyebrow`},B={class:`font-display text-2xl text-brand tabular-nums`},V={key:2,class:`fixed inset-x-0 bottom-0 z-30 bg-cream border-t border-line`,role:`contentinfo`},H={class:`mx-auto w-full max-w-7xl px-6 sm:px-8 md:px-12 lg:px-16 py-3 flex gap-3 sm:justify-between`,style:{paddingBottom:`max(0.75rem, env(safe-area-inset-bottom))`}},U={class:`flex-1 sm:flex-initial`},W={class:`flex-1 sm:flex-initial`},G=4.9,K={__name:`CartStep`,setup(K){let{t:q}=p(),J=ie(),Y=ee(),X=s(()=>J.isEmpty),Z=s(()=>J.subtotal),Q=s(()=>J.items.length?G:0),se=s(()=>+(Z.value+Q.value).toFixed(2));async function ce(e,t){await re(e,t)}async function le(e){await ne(e)}function $(){Y.push(`/checkout/account`)}function ue(){Y.push(`/`)}return(s,ee)=>(e(),d(l,null,[X.value?(e(),d(`div`,g,[u(`div`,_,[u(`span`,v,[o(f,{name:`cart`,size:24,"stroke-width":2})]),u(`p`,y,r(t(q)(`cart.empty.title`)),1),u(`p`,b,r(t(q)(`cart.empty.subtitle`)),1),o(t(te),{to:`/shop`,class:`inline-flex`},{default:i(()=>[o(h,{variant:`primary`,size:`md`},{default:i(()=>[c(r(t(q)(`checkout.cart.cta.shop`)),1)]),_:1})]),_:1})])])):(e(),d(`section`,x,[u(`ul`,S,[(e(!0),d(l,null,n(t(J).items,n=>(e(),d(`li`,{key:n.productId,class:`flex flex-col sm:flex-row sm:items-center gap-4 sm:gap-5 px-5 py-5 sm:px-6`},[u(`div`,C,[n.product?.image?(e(),d(`img`,{key:0,src:n.product.image,alt:n.product?.title||``,loading:`lazy`,decoding:`async`,class:`w-full h-full object-contain p-2`},null,8,w)):a(``,!0)]),u(`div`,T,[u(`p`,E,r(n.product?.title),1),n.product?.size?(e(),d(`p`,D,r(n.product.size),1)):a(``,!0),u(`p`,O,r(t(m)(n.unitPrice))+` `+r(t(q)(`checkout.cart.perItem`)),1)]),u(`div`,k,[o(ae,{"model-value":n.quantity,min:1,"onUpdate:modelValue":e=>ce(n.productId,e)},null,8,[`model-value`,`onUpdate:modelValue`]),u(`span`,A,r(t(m)(n.lineTotal)),1),u(`button`,{type:`button`,class:`text-muted hover:text-danger transition-colors duration-base`,"aria-label":t(q)(`cart.remove`),onClick:e=>le(n.productId)},[o(f,{name:`trash`,size:18,"stroke-width":2})],8,j)])]))),128))]),u(`dl`,M,[u(`div`,N,[u(`dt`,P,r(t(q)(`cart.subtotal`)),1),u(`dd`,F,r(t(m)(Z.value)),1)]),u(`div`,oe,[u(`dt`,I,r(t(q)(`checkout.cart.shipping`)),1),u(`dd`,L,r(t(m)(Q.value)),1)]),u(`div`,R,[u(`dt`,z,r(t(q)(`checkout.cart.total`)),1),u(`dd`,B,r(t(m)(se.value)),1)])])])),X.value?a(``,!0):(e(),d(`footer`,V,[u(`div`,H,[u(`div`,U,[o(h,{variant:`primary`,size:`lg`,block:``,type:`button`,onClick:ue},{default:i(()=>[c(r(t(q)(`checkout.exit`)),1)]),_:1})]),u(`div`,W,[o(h,{variant:`accent`,size:`lg`,block:``,onClick:$},{default:i(()=>[c(r(t(q)(`checkout.cart.cta.continue`)),1)]),_:1})])])]))],64))}};export{K as default}; \ No newline at end of file +import{C as e,G as t,T as n,ft as r,j as i,l as a,m as o,o as s,p as c,r as l,s as u,u as d}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{o as ee,t as te}from"./vue-router-Cyqru1db.js";import{t as f}from"./Icon-BCo6-bGH.js";import{t as p}from"./i18n-XDSWEyNo.js";import{n as m}from"./products-BqW5PUnm.js";import{d as ne,f as re,p as ie}from"./api-DlB23x7f.js";import{t as h}from"./Button-D1Rp2Xe1.js";import{t as ae}from"./QuantityStepper-7Y8q77T-.js";var g={key:0,class:`min-h-[55svh] flex items-center justify-center`},_={class:`flex flex-col gap-4 items-center text-center rounded-md border border-line bg-paper p-10 max-w-md w-full`},v={class:`inline-flex items-center justify-center w-14 h-14 rounded-full bg-cream text-brand`},y={class:`font-display text-xl text-brand`},b={class:`text-[14px] text-muted max-w-sm`},x={key:1,class:`flex flex-col gap-6`},S={class:`flex flex-col rounded-md border border-line bg-paper divide-y divide-line`},C={class:`shrink-0 w-20 h-20 rounded-sm bg-cream overflow-hidden flex items-center justify-center`},w=[`src`,`alt`],T={class:`flex-1 min-w-0`},E={class:`font-display text-base text-ink leading-tight`},D={key:0,class:`text-[12px] text-muted`},O={class:`mt-2 text-[13px] text-muted`},k={class:`flex items-center gap-4`},A={class:`text-[14px] font-semibold text-ink tabular-nums w-20 text-right`},j=[`aria-label`,`onClick`],M={class:`rounded-md border border-line bg-paper px-6 py-5 flex flex-col gap-2`},N={class:`flex items-baseline justify-between text-[14px]`},P={class:`text-muted`},F={class:`text-ink tabular-nums`},oe={class:`flex items-baseline justify-between text-[14px]`},I={class:`text-muted`},L={class:`text-ink tabular-nums`},R={class:`mt-1 pt-3 border-t border-line flex items-baseline justify-between`},z={class:`eyebrow`},B={class:`font-display text-2xl text-brand tabular-nums`},V={key:2,class:`fixed inset-x-0 bottom-0 z-30 bg-cream border-t border-line`,role:`contentinfo`},H={class:`mx-auto w-full max-w-7xl px-6 sm:px-8 md:px-12 lg:px-16 py-3 flex gap-3 sm:justify-between`,style:{paddingBottom:`max(0.75rem, env(safe-area-inset-bottom))`}},U={class:`flex-1 sm:flex-initial`},W={class:`flex-1 sm:flex-initial`},G=4.9,K={__name:`CartStep`,setup(K){let{t:q}=p(),J=ie(),Y=ee(),X=s(()=>J.isEmpty),Z=s(()=>J.subtotal),Q=s(()=>J.items.length?G:0),se=s(()=>+(Z.value+Q.value).toFixed(2));async function ce(e,t){await re(e,t)}async function le(e){await ne(e)}function $(){Y.push(`/checkout/account`)}function ue(){Y.push(`/`)}return(s,ee)=>(e(),d(l,null,[X.value?(e(),d(`div`,g,[u(`div`,_,[u(`span`,v,[o(f,{name:`cart`,size:24,"stroke-width":2})]),u(`p`,y,r(t(q)(`cart.empty.title`)),1),u(`p`,b,r(t(q)(`cart.empty.subtitle`)),1),o(t(te),{to:`/shop`,class:`inline-flex`},{default:i(()=>[o(h,{variant:`primary`,size:`md`},{default:i(()=>[c(r(t(q)(`checkout.cart.cta.shop`)),1)]),_:1})]),_:1})])])):(e(),d(`section`,x,[u(`ul`,S,[(e(!0),d(l,null,n(t(J).items,n=>(e(),d(`li`,{key:n.productId,class:`flex flex-col sm:flex-row sm:items-center gap-4 sm:gap-5 px-5 py-5 sm:px-6`},[u(`div`,C,[n.product?.image?(e(),d(`img`,{key:0,src:n.product.image,alt:n.product?.title||``,loading:`lazy`,decoding:`async`,class:`w-full h-full object-contain p-2`},null,8,w)):a(``,!0)]),u(`div`,T,[u(`p`,E,r(n.product?.title),1),n.product?.size?(e(),d(`p`,D,r(n.product.size),1)):a(``,!0),u(`p`,O,r(t(m)(n.unitPrice))+` `+r(t(q)(`checkout.cart.perItem`)),1)]),u(`div`,k,[o(ae,{"model-value":n.quantity,min:1,"onUpdate:modelValue":e=>ce(n.productId,e)},null,8,[`model-value`,`onUpdate:modelValue`]),u(`span`,A,r(t(m)(n.lineTotal)),1),u(`button`,{type:`button`,class:`text-muted hover:text-danger transition-colors duration-base`,"aria-label":t(q)(`cart.remove`),onClick:e=>le(n.productId)},[o(f,{name:`trash`,size:18,"stroke-width":2})],8,j)])]))),128))]),u(`dl`,M,[u(`div`,N,[u(`dt`,P,r(t(q)(`cart.subtotal`)),1),u(`dd`,F,r(t(m)(Z.value)),1)]),u(`div`,oe,[u(`dt`,I,r(t(q)(`checkout.cart.shipping`)),1),u(`dd`,L,r(t(m)(Q.value)),1)]),u(`div`,R,[u(`dt`,z,r(t(q)(`checkout.cart.total`)),1),u(`dd`,B,r(t(m)(se.value)),1)])])])),X.value?a(``,!0):(e(),d(`footer`,V,[u(`div`,H,[u(`div`,U,[o(h,{variant:`primary`,size:`lg`,block:``,type:`button`,onClick:ue},{default:i(()=>[c(r(t(q)(`checkout.exit`)),1)]),_:1})]),u(`div`,W,[o(h,{variant:`accent`,size:`lg`,block:``,onClick:$},{default:i(()=>[c(r(t(q)(`checkout.cart.cta.continue`)),1)]),_:1})])])]))],64))}};export{K as default}; \ No newline at end of file diff --git a/dist/assets/CategoryPage-C3nXYV-J.js b/dist/assets/CategoryPage-C13D9bYm.js similarity index 94% rename from dist/assets/CategoryPage-C3nXYV-J.js rename to dist/assets/CategoryPage-C13D9bYm.js index a0b8211..7e6ef50 100644 --- a/dist/assets/CategoryPage-C3nXYV-J.js +++ b/dist/assets/CategoryPage-C13D9bYm.js @@ -1 +1 @@ -import{B as e,C as t,D as n,G as r,S as i,T as a,c as ee,ft as o,j as s,l as te,m as c,o as l,p as u,r as d,s as f,u as p,x as m}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{o as ne}from"./vue-router-Cyqru1db.js";import{t as re}from"./i18n-yr4x-3Jp.js";import{i as ie,r as h}from"./products-BqW5PUnm.js";import{c as g,d as ae,f as oe,p as se,u as ce}from"./api-DlB23x7f.js";import{t as le}from"./Navbar-CjSgO-pN.js";import{t as _}from"./Button-D1Rp2Xe1.js";import{t as v}from"./CartDrawer-CY64MRh3.js";import{t as y}from"./Footer-Dr1HAyhH.js";import{t as b}from"./ProductCard-in9cKIvh.js";import{t as x}from"./WaveDivider-C8umxL-l.js";var S={class:`bg-brand text-cream md:min-h-[calc(70svh-var(--nav-h))] md:flex md:items-center`},C={class:`mx-auto w-full max-w-4xl px-6 py-16 sm:px-8 sm:py-20 md:px-12 md:py-24 lg:px-16 text-center flex flex-col gap-5`},w={class:`eyebrow text-accent`},T={class:`font-display font-normal leading-[1.05] tracking-tight text-cream text-headline-lg`},E={class:`italic font-light text-accent-soft`},D={class:`text-base md:text-lg leading-relaxed text-cream/80 max-w-2xl mx-auto`},O={class:`-mt-px bg-cream text-ink`},k={class:`mx-auto w-full max-w-6xl px-6 py-16 sm:px-8 sm:py-20 md:px-12 md:py-24 lg:px-16`},A={class:`flex flex-col gap-4 max-w-3xl`},j={class:`font-display font-normal leading-[1.05] tracking-tight text-ink text-headline-md`},M={class:`italic font-light text-brand`},N={class:`text-lg leading-relaxed text-muted max-w-2xl`},P={key:0,class:`mt-12 md:mt-14 grid gap-5 md:gap-7 grid-cols-1 sm:grid-cols-2 md:grid-cols-3`},F={class:`-mt-px bg-surface text-ink`},I={class:`mx-auto w-full max-w-6xl px-6 py-16 sm:px-8 sm:py-20 md:px-12 md:py-24 lg:px-16`},L={class:`flex flex-col gap-4 max-w-3xl`},R={class:`eyebrow`},z={class:`font-display font-normal leading-[1.05] tracking-tight text-ink text-headline-md`},B={class:`italic font-light text-brand`},ue={class:`mt-12 md:mt-14 grid gap-6 md:gap-8 grid-cols-1 sm:grid-cols-3`},V={class:`inline-flex items-center justify-center w-10 h-10 rounded-full bg-brand text-accent font-display text-base`},H={class:`font-display text-xl font-normal text-brand leading-tight`},U={class:`text-[15px] leading-relaxed text-ink`},de={class:`-mt-px bg-brand text-cream`},fe={class:`mx-auto w-full max-w-3xl px-6 py-16 sm:px-8 sm:py-20 md:px-12 md:py-24 lg:px-16 text-center flex flex-col items-center gap-5`},pe={class:`font-display font-normal leading-[1.05] tracking-tight text-cream text-headline-md`},me={class:`italic font-light text-accent-soft`},he={class:`text-base md:text-lg leading-relaxed text-cream/80 max-w-xl`},W={__name:`CategoryPage`,props:{slug:{type:String,required:!0,validator:e=>[`pflege`,`haushalt`].includes(e)},useCase:{type:String,required:!0,validator:e=>[`clean`,`care`].includes(e)}},setup(W){let G=W,{t:K}=re(),q=se(),ge=ne(),J=e(!1);function _e(){J.value=!1,ge.push(`/checkout`)}let ve=[{key:`nav.shop`,href:`/shop`},{key:`nav.bundles`,href:`/#bundles`},{key:`nav.revitalization`,href:`/#revitalize`},{key:`nav.about`,href:`/#about`}],Y=l(()=>ie(h)[G.useCase]||[]),ye=l(()=>[1,2,3].map(e=>({title:K(`category.${G.slug}.benefit.${e}.title`),text:K(`category.${G.slug}.benefit.${e}.text`)})));async function X(e){await g(e.id,1),J.value=!0}async function be(e){await g(e.id,1),J.value=!0}async function xe({productId:e,quantity:t}){await oe(e,t)}async function Se(e){await ae(e)}let Z=e(null),Q=null;function $(){let e=Z.value,t=e&&(e.$el||e);if(!t||typeof window>`u`)return;let n=Math.round(t.getBoundingClientRect().height);document.documentElement.style.setProperty(`--nav-h`,`${n}px`)}return i(()=>{if(ce(),$(),typeof ResizeObserver<`u`&&Z.value){let e=Z.value.$el||Z.value;Q=new ResizeObserver($),Q.observe(e)}window.addEventListener(`resize`,$)}),m(()=>{Q&&Q.disconnect(),typeof window<`u`&&window.removeEventListener(`resize`,$)}),(e,i)=>{let l=n(`RouterLink`);return t(),p(d,null,[c(le,{ref_key:`navRef`,ref:Z,variant:`brand`,layout:`standard`,items:ve,"cart-count":r(q).count,products:r(h),onCart:i[0]||=e=>J.value=!0,onSearch:be},null,8,[`cart-count`,`products`]),f(`section`,S,[f(`div`,C,[f(`p`,w,o(r(K)(`category.${W.slug}.eyebrow`)),1),f(`h1`,T,[u(o(r(K)(`category.${W.slug}.title.a`))+` `,1),f(`em`,E,o(r(K)(`category.${W.slug}.title.em`)),1)]),f(`p`,D,o(r(K)(`category.${W.slug}.sub`)),1)])]),c(x,{from:`brand`,to:`cream`}),f(`section`,O,[f(`div`,k,[f(`div`,A,[f(`h2`,j,[u(o(r(K)(`category.${W.slug}.products.headline`))+` `,1),f(`em`,M,o(r(K)(`category.${W.slug}.products.headline.em`)),1)]),f(`p`,N,o(r(K)(`category.${W.slug}.products.sub`)),1)]),Y.value.length?(t(),p(`div`,P,[(t(!0),p(d,null,a(Y.value,e=>(t(),ee(b,{key:e.id,title:e.title,size:e.size,price:e.price,image:e.image,"image-alt":e.title,href:e.href,tone:`cream`,"in-stock":e.inStock,onAdd:t=>X(e)},null,8,[`title`,`size`,`price`,`image`,`image-alt`,`href`,`in-stock`,`onAdd`]))),128))])):te(``,!0)])]),c(x,{from:`cream`,to:`surface`}),f(`section`,F,[f(`div`,I,[f(`div`,L,[f(`p`,R,o(r(K)(`category.${W.slug}.benefits.eyebrow`)),1),f(`h2`,z,[u(o(r(K)(`category.${W.slug}.benefits.headline`))+` `,1),f(`em`,B,o(r(K)(`category.${W.slug}.benefits.headline.em`)),1)])]),f(`ul`,ue,[(t(!0),p(d,null,a(ye.value,(e,n)=>(t(),p(`li`,{key:n,class:`flex flex-col gap-3 rounded-md border border-line bg-paper p-6 md:p-8`},[f(`span`,V,o(n+1),1),f(`h3`,H,o(e.title),1),f(`p`,U,o(e.text),1)]))),128))])])]),c(x,{from:`surface`,to:`brand`}),f(`section`,de,[f(`div`,fe,[f(`h2`,pe,[u(o(r(K)(`category.${W.slug}.cta.headline`))+` `,1),f(`em`,me,o(r(K)(`category.${W.slug}.cta.headline.em`)),1)]),f(`p`,he,o(r(K)(`category.${W.slug}.cta.sub`)),1),c(l,{to:`/shop`,class:`inline-flex`},{default:s(()=>[c(_,{variant:`accent`,size:`lg`},{default:s(()=>[u(o(r(K)(`category.${W.slug}.cta.button`)),1)]),_:1})]),_:1})])]),c(y,{variant:`cream`}),i[2]||=f(`div`,{"aria-hidden":`true`,class:`md:hidden`,style:{height:`calc(100px + env(safe-area-inset-bottom))`}},null,-1),c(v,{modelValue:J.value,"onUpdate:modelValue":i[1]||=e=>J.value=e,items:r(q).items,subtotal:r(q).subtotal,count:r(q).count,onUpdateQuantity:xe,onRemove:Se,onCheckout:_e},null,8,[`modelValue`,`items`,`subtotal`,`count`])],64)}}};export{W as default}; \ No newline at end of file +import{B as e,C as t,D as n,G as r,S as i,T as a,c as ee,ft as o,j as s,l as te,m as c,o as l,p as u,r as d,s as f,u as p,x as m}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{o as ne}from"./vue-router-Cyqru1db.js";import{t as re}from"./i18n-XDSWEyNo.js";import{i as ie,r as h}from"./products-BqW5PUnm.js";import{c as g,d as ae,f as oe,p as se,u as ce}from"./api-DlB23x7f.js";import{t as le}from"./Navbar-DV-_CpC6.js";import{t as _}from"./Button-D1Rp2Xe1.js";import{t as v}from"./CartDrawer-BdjtcjVt.js";import{t as y}from"./Footer-CjMyQsRh.js";import{t as b}from"./ProductCard-DOWZ0r0v.js";import{t as x}from"./WaveDivider-C8umxL-l.js";var S={class:`bg-brand text-cream md:min-h-[calc(70svh-var(--nav-h))] md:flex md:items-center`},C={class:`mx-auto w-full max-w-4xl px-6 py-16 sm:px-8 sm:py-20 md:px-12 md:py-24 lg:px-16 text-center flex flex-col gap-5`},w={class:`eyebrow text-accent`},T={class:`font-display font-normal leading-[1.05] tracking-tight text-cream text-headline-lg`},E={class:`italic font-light text-accent-soft`},D={class:`text-base md:text-lg leading-relaxed text-cream/80 max-w-2xl mx-auto`},O={class:`-mt-px bg-cream text-ink`},k={class:`mx-auto w-full max-w-6xl px-6 py-16 sm:px-8 sm:py-20 md:px-12 md:py-24 lg:px-16`},A={class:`flex flex-col gap-4 max-w-3xl`},j={class:`font-display font-normal leading-[1.05] tracking-tight text-ink text-headline-md`},M={class:`italic font-light text-brand`},N={class:`text-lg leading-relaxed text-muted max-w-2xl`},P={key:0,class:`mt-12 md:mt-14 grid gap-5 md:gap-7 grid-cols-1 sm:grid-cols-2 md:grid-cols-3`},F={class:`-mt-px bg-surface text-ink`},I={class:`mx-auto w-full max-w-6xl px-6 py-16 sm:px-8 sm:py-20 md:px-12 md:py-24 lg:px-16`},L={class:`flex flex-col gap-4 max-w-3xl`},R={class:`eyebrow`},z={class:`font-display font-normal leading-[1.05] tracking-tight text-ink text-headline-md`},B={class:`italic font-light text-brand`},ue={class:`mt-12 md:mt-14 grid gap-6 md:gap-8 grid-cols-1 sm:grid-cols-3`},V={class:`inline-flex items-center justify-center w-10 h-10 rounded-full bg-brand text-accent font-display text-base`},H={class:`font-display text-xl font-normal text-brand leading-tight`},U={class:`text-[15px] leading-relaxed text-ink`},de={class:`-mt-px bg-brand text-cream`},fe={class:`mx-auto w-full max-w-3xl px-6 py-16 sm:px-8 sm:py-20 md:px-12 md:py-24 lg:px-16 text-center flex flex-col items-center gap-5`},pe={class:`font-display font-normal leading-[1.05] tracking-tight text-cream text-headline-md`},me={class:`italic font-light text-accent-soft`},he={class:`text-base md:text-lg leading-relaxed text-cream/80 max-w-xl`},W={__name:`CategoryPage`,props:{slug:{type:String,required:!0,validator:e=>[`pflege`,`haushalt`].includes(e)},useCase:{type:String,required:!0,validator:e=>[`clean`,`care`].includes(e)}},setup(W){let G=W,{t:K}=re(),q=se(),ge=ne(),J=e(!1);function _e(){J.value=!1,ge.push(`/checkout`)}let ve=[{key:`nav.shop`,href:`/shop`},{key:`nav.bundles`,href:`/#bundles`},{key:`nav.revitalization`,href:`/#revitalize`},{key:`nav.about`,href:`/#about`}],Y=l(()=>ie(h)[G.useCase]||[]),ye=l(()=>[1,2,3].map(e=>({title:K(`category.${G.slug}.benefit.${e}.title`),text:K(`category.${G.slug}.benefit.${e}.text`)})));async function X(e){await g(e.id,1),J.value=!0}async function be(e){await g(e.id,1),J.value=!0}async function xe({productId:e,quantity:t}){await oe(e,t)}async function Se(e){await ae(e)}let Z=e(null),Q=null;function $(){let e=Z.value,t=e&&(e.$el||e);if(!t||typeof window>`u`)return;let n=Math.round(t.getBoundingClientRect().height);document.documentElement.style.setProperty(`--nav-h`,`${n}px`)}return i(()=>{if(ce(),$(),typeof ResizeObserver<`u`&&Z.value){let e=Z.value.$el||Z.value;Q=new ResizeObserver($),Q.observe(e)}window.addEventListener(`resize`,$)}),m(()=>{Q&&Q.disconnect(),typeof window<`u`&&window.removeEventListener(`resize`,$)}),(e,i)=>{let l=n(`RouterLink`);return t(),p(d,null,[c(le,{ref_key:`navRef`,ref:Z,variant:`brand`,layout:`standard`,items:ve,"cart-count":r(q).count,products:r(h),onCart:i[0]||=e=>J.value=!0,onSearch:be},null,8,[`cart-count`,`products`]),f(`section`,S,[f(`div`,C,[f(`p`,w,o(r(K)(`category.${W.slug}.eyebrow`)),1),f(`h1`,T,[u(o(r(K)(`category.${W.slug}.title.a`))+` `,1),f(`em`,E,o(r(K)(`category.${W.slug}.title.em`)),1)]),f(`p`,D,o(r(K)(`category.${W.slug}.sub`)),1)])]),c(x,{from:`brand`,to:`cream`}),f(`section`,O,[f(`div`,k,[f(`div`,A,[f(`h2`,j,[u(o(r(K)(`category.${W.slug}.products.headline`))+` `,1),f(`em`,M,o(r(K)(`category.${W.slug}.products.headline.em`)),1)]),f(`p`,N,o(r(K)(`category.${W.slug}.products.sub`)),1)]),Y.value.length?(t(),p(`div`,P,[(t(!0),p(d,null,a(Y.value,e=>(t(),ee(b,{key:e.id,title:e.title,size:e.size,price:e.price,image:e.image,"image-alt":e.title,href:e.href,tone:`cream`,"in-stock":e.inStock,onAdd:t=>X(e)},null,8,[`title`,`size`,`price`,`image`,`image-alt`,`href`,`in-stock`,`onAdd`]))),128))])):te(``,!0)])]),c(x,{from:`cream`,to:`surface`}),f(`section`,F,[f(`div`,I,[f(`div`,L,[f(`p`,R,o(r(K)(`category.${W.slug}.benefits.eyebrow`)),1),f(`h2`,z,[u(o(r(K)(`category.${W.slug}.benefits.headline`))+` `,1),f(`em`,B,o(r(K)(`category.${W.slug}.benefits.headline.em`)),1)])]),f(`ul`,ue,[(t(!0),p(d,null,a(ye.value,(e,n)=>(t(),p(`li`,{key:n,class:`flex flex-col gap-3 rounded-md border border-line bg-paper p-6 md:p-8`},[f(`span`,V,o(n+1),1),f(`h3`,H,o(e.title),1),f(`p`,U,o(e.text),1)]))),128))])])]),c(x,{from:`surface`,to:`brand`}),f(`section`,de,[f(`div`,fe,[f(`h2`,pe,[u(o(r(K)(`category.${W.slug}.cta.headline`))+` `,1),f(`em`,me,o(r(K)(`category.${W.slug}.cta.headline.em`)),1)]),f(`p`,he,o(r(K)(`category.${W.slug}.cta.sub`)),1),c(l,{to:`/shop`,class:`inline-flex`},{default:s(()=>[c(_,{variant:`accent`,size:`lg`},{default:s(()=>[u(o(r(K)(`category.${W.slug}.cta.button`)),1)]),_:1})]),_:1})])]),c(y,{variant:`cream`}),i[2]||=f(`div`,{"aria-hidden":`true`,class:`md:hidden`,style:{height:`calc(100px + env(safe-area-inset-bottom))`}},null,-1),c(v,{modelValue:J.value,"onUpdate:modelValue":i[1]||=e=>J.value=e,items:r(q).items,subtotal:r(q).subtotal,count:r(q).count,onUpdateQuantity:xe,onRemove:Se,onCheckout:_e},null,8,[`modelValue`,`items`,`subtotal`,`count`])],64)}}};export{W as default}; \ No newline at end of file diff --git a/dist/assets/CheckoutPage-D8HLqXmZ.js b/dist/assets/CheckoutPage-D17PLp2q.js similarity index 97% rename from dist/assets/CheckoutPage-D8HLqXmZ.js rename to dist/assets/CheckoutPage-D17PLp2q.js index d22d20b..ab6f6e1 100644 --- a/dist/assets/CheckoutPage-D8HLqXmZ.js +++ b/dist/assets/CheckoutPage-D17PLp2q.js @@ -1 +1 @@ -import{B as e,C as t,D as n,G as r,S as i,T as a,b as ee,c as o,ft as s,j as c,l,m as u,o as d,p as f,r as p,s as m,u as h,ut as g}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{a as _,o as v,t as y}from"./vue-router-Cyqru1db.js";import{t as b}from"./Logo-K2VN1F6l.js";import{t as x}from"./i18n-yr4x-3Jp.js";import{l as S,p as C,s as w,u as T}from"./api-DlB23x7f.js";import{t as E}from"./Button-D1Rp2Xe1.js";import{t as D}from"./CheckoutStepper-Bq_p5fTn.js";import{t as O}from"./ExpressCheckoutMount-6qxJ0y-Q.js";import{t as k}from"./checkout-CguIVnMk.js";var A={class:`rounded-md border border-line bg-paper text-ink flex flex-col`,"aria-label":`Order summary`},j={key:0,class:`px-6 pt-6 pb-3 border-b border-line`},M={class:`font-display text-xl font-normal text-brand leading-none`},N={key:1,class:`flex flex-col divide-y divide-line`},P={class:`relative shrink-0 w-14 h-14 rounded-sm bg-cream overflow-hidden flex items-center justify-center`},F=[`src`,`alt`],I={key:1,class:`absolute -top-1 -right-1 min-w-[20px] h-[20px] px-1 rounded-full bg-brand text-accent text-[11px] font-bold flex items-center justify-center`,"aria-hidden":`true`},L={class:`flex-1 min-w-0`},R={class:`font-display text-[15px] leading-tight truncate text-ink`},z={key:0,class:`text-[12px] text-muted truncate`},B={class:`shrink-0 text-[14px] font-semibold text-ink tabular-nums`},V={class:`px-6 py-5 flex flex-col gap-2 border-t border-line`},H={class:`flex items-baseline justify-between text-[14px]`},U={class:`text-ink tabular-nums`},W={class:`flex items-baseline justify-between text-[14px]`},G={class:`text-ink tabular-nums`},K={key:0,class:`flex items-baseline justify-between text-[14px]`},q={class:`text-ink tabular-nums`},J={class:`mt-2 pt-3 border-t border-line flex items-baseline justify-between`},Y={class:`font-display text-2xl text-brand tabular-nums`},X={key:2,class:`px-6 pb-6`},Z={__name:`CheckoutSummary`,props:{items:{type:Array,required:!0,validator:e=>e.every(e=>e&&typeof e.productId==`string`&&Number.isInteger(e.quantity))},subtotal:{type:Number,required:!0},shipping:{type:Number,default:0},tax:{type:Number,default:0},total:{type:Number,required:!0},currency:{type:String,default:`€`},ctaLabel:{type:String,default:``},ctaLoading:{type:Boolean,default:!1},ctaDisabled:{type:Boolean,default:!1},heading:{type:String,default:``}},emits:[`submit`],setup(e){function n(e,t){return typeof e!=`number`||!Number.isFinite(e)?``:`${t} ${e.toFixed(2).replace(`.`,`,`)}`}return(r,i)=>(t(),h(`aside`,A,[e.heading?(t(),h(`header`,j,[m(`h2`,M,s(e.heading),1)])):l(``,!0),e.items.length?(t(),h(`ul`,N,[(t(!0),h(p,null,a(e.items,r=>(t(),h(`li`,{key:r.productId,class:`flex items-center gap-4 px-6 py-4`},[m(`div`,P,[r.product?.image?(t(),h(`img`,{key:0,src:r.product.image,alt:r.product?.title||``,loading:`lazy`,decoding:`async`,class:`w-full h-full object-contain p-2`},null,8,F)):l(``,!0),r.quantity>1?(t(),h(`span`,I,s(r.quantity),1)):l(``,!0)]),m(`div`,L,[m(`p`,R,s(r.product?.title),1),r.product?.size?(t(),h(`p`,z,s(r.product.size),1)):l(``,!0)]),m(`span`,B,s(n(r.lineTotal??r.unitPrice*r.quantity,e.currency)),1)]))),128))])):l(``,!0),m(`dl`,V,[m(`div`,H,[i[1]||=m(`dt`,{class:`text-muted`},`Subtotal`,-1),m(`dd`,U,s(n(e.subtotal,e.currency)),1)]),m(`div`,W,[i[2]||=m(`dt`,{class:`text-muted`},`Versand`,-1),m(`dd`,G,s(n(e.shipping,e.currency)),1)]),e.tax>0?(t(),h(`div`,K,[i[3]||=m(`dt`,{class:`text-muted`},`MwSt. (19 %, inkl.)`,-1),m(`dd`,q,s(n(e.tax,e.currency)),1)])):l(``,!0),m(`div`,J,[i[4]||=m(`dt`,{class:`eyebrow`},`Gesamt`,-1),m(`dd`,Y,s(n(e.total,e.currency)),1)])]),e.ctaLabel?(t(),h(`div`,X,[u(E,{variant:`primary`,size:`lg`,block:``,loading:e.ctaLoading,disabled:e.ctaDisabled,onClick:i[0]||=e=>r.$emit(`submit`)},{default:c(()=>[f(s(e.ctaLabel),1)]),_:1},8,[`loading`,`disabled`])])):l(``,!0)]))}},te={class:`min-h-svh flex flex-col bg-cream`},Q={class:`sticky top-0 z-30 bg-cream border-b border-line shrink-0`},ne={class:`mx-auto w-full max-w-7xl px-4 sm:px-8 md:px-12 lg:px-16 py-3 grid grid-cols-[1fr_auto_1fr] items-center gap-3 sm:gap-6`},re={class:`justify-self-center min-w-0`},ie={class:`text-ink flex-1 lg:flex lg:flex-col lg:justify-center`},ae={class:`mx-auto w-full max-w-7xl px-6 sm:px-8 md:px-12 lg:px-16 pt-5 pb-28 sm:pt-7 sm:pb-32 md:pt-8 md:pb-32 lg:pt-10 lg:pb-32`},oe={key:0,class:`flex flex-col gap-2 mb-8 md:mb-10`},se={class:`font-display font-normal leading-[1.05] tracking-tight text-ink text-headline-md`},ce={class:`italic font-light text-brand`},le={key:1,class:`flex flex-col gap-2 mb-8 md:mb-10`},ue={class:`font-display text-2xl font-normal text-ink leading-none`},de={key:0,class:`text-[14px] text-muted max-w-2xl`},fe={key:2,class:`flex justify-center`},pe={class:`w-full max-w-2xl`},me=[`aria-label`],he={class:`flex flex-col gap-4 rounded-md border border-line bg-paper p-6 md:p-8`},ge={class:`font-display text-xl font-normal text-brand leading-none`},_e={key:0,class:`text-sm text-danger`,role:`alert`,"aria-live":`polite`},ve={class:`min-w-0`},ye=4.9,$=.19,be={__name:`CheckoutPage`,setup(a){let{t:p}=x(),E=C(),A=k(),j=_(),M=v(),N=e(null),P=e(!1),F=e(``),I=e(null),L=d(()=>typeof window>`u`?`/checkout/processing`:`${window.location.origin}/checkout/processing?order=${N.value?.orderId||``}`);async function R({wallet:e}){if(!E.items.length){F.value=p(`checkout.error.empty`);return}F.value=``,P.value=!0;try{let t=await w({wallet:e});N.value=t,await ee();let n=await I.value?.confirm();if(n?.error){F.value=n.error.message||p(`checkout.error.payment`);return}if(n?.paymentIntent?.status===`succeeded`){let e=t.orderId;await S(),A.reset(),M.push({path:`/checkout/success`,query:{order:e}})}}catch(e){F.value=e?.message||p(`checkout.error.generic`)}finally{P.value=!1}}function z(e){F.value=e?.message||p(`checkout.error.payment`),P.value=!1}let B=d(()=>E.subtotal),V=d(()=>E.items.length?ye:0),H=d(()=>+(B.value+V.value).toFixed(2)),U=d(()=>E.items.length?+((B.value+V.value)*$/(1+$)).toFixed(2):0),W=d(()=>[{key:`cart`,label:p(`checkout.step.cart`),to:`/checkout/cart`,completed:E.items.length>0},{key:`account`,label:p(`checkout.step.account`),to:`/checkout/account`,completed:A.accountComplete},{key:`shipping`,label:p(`checkout.step.shipping`),to:`/checkout/shipping`,completed:A.shippingComplete},{key:`payment`,label:p(`checkout.step.payment`),to:`/checkout/payment`,completed:!1}]),G=d(()=>{let e=j.path.split(`/`)[2]||`cart`;return[`cart`,`account`,`shipping`,`payment`].includes(e)?e:`cart`}),K=d(()=>G.value===`cart`&&!E.isEmpty),q=d(()=>{switch(G.value){case`cart`:return{title:p(`checkout.cart.title`),sub:``};case`account`:return{title:p(`checkout.account.heading`),sub:p(`checkout.account.sub`)};case`shipping`:return{title:p(`checkout.section.shipping`),sub:p(`checkout.shipping.sub`)};case`payment`:return{title:p(`checkout.section.payment`),sub:p(`checkout.payment.sub`)};default:return{title:``,sub:``}}});return i(()=>{T()}),(e,i)=>{let a=n(`router-view`);return t(),h(`div`,te,[m(`header`,Q,[m(`div`,ne,[u(r(y),{to:`/`,class:`shrink-0 justify-self-start`,"aria-label":r(p)(`checkout.home`)},{default:c(()=>[u(b,{class:`w-9 md:w-12 h-auto text-brand`})]),_:1},8,[`aria-label`]),m(`div`,re,[u(D,{steps:W.value,"active-key":G.value,"aria-label":r(p)(`checkout.stepper.label`)},null,8,[`steps`,`active-key`,`aria-label`])]),u(r(y),{to:`/shop`,class:`shrink-0 justify-self-end hidden sm:inline-flex items-center text-[13px] font-semibold text-brand hover:underline whitespace-nowrap`},{default:c(()=>[f(s(r(p)(`checkout.backToShopping`)),1)]),_:1})])]),m(`main`,ie,[m(`div`,ae,[G.value===`cart`?(t(),h(`header`,oe,[m(`h1`,se,[f(s(r(p)(`checkout.headline`))+` `,1),m(`em`,ce,s(r(p)(`checkout.headline.em`)),1)])])):q.value.title?(t(),h(`header`,le,[m(`h2`,ue,s(q.value.title),1),q.value.sub?(t(),h(`p`,de,s(q.value.sub),1)):l(``,!0)])):l(``,!0),G.value===`cart`&&r(E).isEmpty?(t(),h(`div`,fe,[m(`div`,pe,[u(a)])])):(t(),h(`div`,{key:3,class:g([`grid gap-8 md:gap-10 lg:gap-12 lg:items-start`,K.value?`lg:grid-cols-[0.9fr_1.1fr]`:`lg:grid-cols-[1.1fr_0.9fr]`])},[K.value?(t(),h(`aside`,{key:0,class:`flex flex-col gap-4 lg:sticky lg:top-[calc(var(--checkout-bar-h,72px)+1rem)]`,"aria-label":r(p)(`checkout.section.express`)},[m(`div`,he,[m(`h2`,ge,s(r(p)(`checkout.section.express`)),1),u(O,{ref_key:`expressMountRef`,ref:I,intent:N.value,"return-url":L.value,busy:P.value,onPay:R,onError:z},null,8,[`intent`,`return-url`,`busy`])]),F.value?(t(),h(`p`,_e,s(F.value),1)):l(``,!0)],8,me)):l(``,!0),m(`div`,ve,[u(a)]),G.value===`cart`?l(``,!0):(t(),o(Z,{key:1,items:r(E).items,subtotal:B.value,shipping:V.value,tax:U.value,total:H.value,heading:r(p)(`checkout.summary.heading`),class:`lg:sticky lg:top-[calc(var(--checkout-bar-h,72px)+1rem)]`},null,8,[`items`,`subtotal`,`shipping`,`tax`,`total`,`heading`]))],2))])])])}}};export{be as default}; \ No newline at end of file +import{B as e,C as t,D as n,G as r,S as i,T as a,b as ee,c as o,ft as s,j as c,l,m as u,o as d,p as f,r as p,s as m,u as h,ut as g}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{a as _,o as v,t as y}from"./vue-router-Cyqru1db.js";import{t as b}from"./Logo-K2VN1F6l.js";import{t as x}from"./i18n-XDSWEyNo.js";import{l as S,p as C,s as w,u as T}from"./api-DlB23x7f.js";import{t as E}from"./Button-D1Rp2Xe1.js";import{t as D}from"./CheckoutStepper-Bq_p5fTn.js";import{t as O}from"./ExpressCheckoutMount-E5l1VQNt.js";import{t as k}from"./checkout-CguIVnMk.js";var A={class:`rounded-md border border-line bg-paper text-ink flex flex-col`,"aria-label":`Order summary`},j={key:0,class:`px-6 pt-6 pb-3 border-b border-line`},M={class:`font-display text-xl font-normal text-brand leading-none`},N={key:1,class:`flex flex-col divide-y divide-line`},P={class:`relative shrink-0 w-14 h-14 rounded-sm bg-cream overflow-hidden flex items-center justify-center`},F=[`src`,`alt`],I={key:1,class:`absolute -top-1 -right-1 min-w-[20px] h-[20px] px-1 rounded-full bg-brand text-accent text-[11px] font-bold flex items-center justify-center`,"aria-hidden":`true`},L={class:`flex-1 min-w-0`},R={class:`font-display text-[15px] leading-tight truncate text-ink`},z={key:0,class:`text-[12px] text-muted truncate`},B={class:`shrink-0 text-[14px] font-semibold text-ink tabular-nums`},V={class:`px-6 py-5 flex flex-col gap-2 border-t border-line`},H={class:`flex items-baseline justify-between text-[14px]`},U={class:`text-ink tabular-nums`},W={class:`flex items-baseline justify-between text-[14px]`},G={class:`text-ink tabular-nums`},K={key:0,class:`flex items-baseline justify-between text-[14px]`},q={class:`text-ink tabular-nums`},J={class:`mt-2 pt-3 border-t border-line flex items-baseline justify-between`},Y={class:`font-display text-2xl text-brand tabular-nums`},X={key:2,class:`px-6 pb-6`},Z={__name:`CheckoutSummary`,props:{items:{type:Array,required:!0,validator:e=>e.every(e=>e&&typeof e.productId==`string`&&Number.isInteger(e.quantity))},subtotal:{type:Number,required:!0},shipping:{type:Number,default:0},tax:{type:Number,default:0},total:{type:Number,required:!0},currency:{type:String,default:`€`},ctaLabel:{type:String,default:``},ctaLoading:{type:Boolean,default:!1},ctaDisabled:{type:Boolean,default:!1},heading:{type:String,default:``}},emits:[`submit`],setup(e){function n(e,t){return typeof e!=`number`||!Number.isFinite(e)?``:`${t} ${e.toFixed(2).replace(`.`,`,`)}`}return(r,i)=>(t(),h(`aside`,A,[e.heading?(t(),h(`header`,j,[m(`h2`,M,s(e.heading),1)])):l(``,!0),e.items.length?(t(),h(`ul`,N,[(t(!0),h(p,null,a(e.items,r=>(t(),h(`li`,{key:r.productId,class:`flex items-center gap-4 px-6 py-4`},[m(`div`,P,[r.product?.image?(t(),h(`img`,{key:0,src:r.product.image,alt:r.product?.title||``,loading:`lazy`,decoding:`async`,class:`w-full h-full object-contain p-2`},null,8,F)):l(``,!0),r.quantity>1?(t(),h(`span`,I,s(r.quantity),1)):l(``,!0)]),m(`div`,L,[m(`p`,R,s(r.product?.title),1),r.product?.size?(t(),h(`p`,z,s(r.product.size),1)):l(``,!0)]),m(`span`,B,s(n(r.lineTotal??r.unitPrice*r.quantity,e.currency)),1)]))),128))])):l(``,!0),m(`dl`,V,[m(`div`,H,[i[1]||=m(`dt`,{class:`text-muted`},`Subtotal`,-1),m(`dd`,U,s(n(e.subtotal,e.currency)),1)]),m(`div`,W,[i[2]||=m(`dt`,{class:`text-muted`},`Versand`,-1),m(`dd`,G,s(n(e.shipping,e.currency)),1)]),e.tax>0?(t(),h(`div`,K,[i[3]||=m(`dt`,{class:`text-muted`},`MwSt. (19 %, inkl.)`,-1),m(`dd`,q,s(n(e.tax,e.currency)),1)])):l(``,!0),m(`div`,J,[i[4]||=m(`dt`,{class:`eyebrow`},`Gesamt`,-1),m(`dd`,Y,s(n(e.total,e.currency)),1)])]),e.ctaLabel?(t(),h(`div`,X,[u(E,{variant:`primary`,size:`lg`,block:``,loading:e.ctaLoading,disabled:e.ctaDisabled,onClick:i[0]||=e=>r.$emit(`submit`)},{default:c(()=>[f(s(e.ctaLabel),1)]),_:1},8,[`loading`,`disabled`])])):l(``,!0)]))}},te={class:`min-h-svh flex flex-col bg-cream`},Q={class:`sticky top-0 z-30 bg-cream border-b border-line shrink-0`},ne={class:`mx-auto w-full max-w-7xl px-4 sm:px-8 md:px-12 lg:px-16 py-3 grid grid-cols-[1fr_auto_1fr] items-center gap-3 sm:gap-6`},re={class:`justify-self-center min-w-0`},ie={class:`text-ink flex-1 lg:flex lg:flex-col lg:justify-center`},ae={class:`mx-auto w-full max-w-7xl px-6 sm:px-8 md:px-12 lg:px-16 pt-5 pb-28 sm:pt-7 sm:pb-32 md:pt-8 md:pb-32 lg:pt-10 lg:pb-32`},oe={key:0,class:`flex flex-col gap-2 mb-8 md:mb-10`},se={class:`font-display font-normal leading-[1.05] tracking-tight text-ink text-headline-md`},ce={class:`italic font-light text-brand`},le={key:1,class:`flex flex-col gap-2 mb-8 md:mb-10`},ue={class:`font-display text-2xl font-normal text-ink leading-none`},de={key:0,class:`text-[14px] text-muted max-w-2xl`},fe={key:2,class:`flex justify-center`},pe={class:`w-full max-w-2xl`},me=[`aria-label`],he={class:`flex flex-col gap-4 rounded-md border border-line bg-paper p-6 md:p-8`},ge={class:`font-display text-xl font-normal text-brand leading-none`},_e={key:0,class:`text-sm text-danger`,role:`alert`,"aria-live":`polite`},ve={class:`min-w-0`},ye=4.9,$=.19,be={__name:`CheckoutPage`,setup(a){let{t:p}=x(),E=C(),A=k(),j=_(),M=v(),N=e(null),P=e(!1),F=e(``),I=e(null),L=d(()=>typeof window>`u`?`/checkout/processing`:`${window.location.origin}/checkout/processing?order=${N.value?.orderId||``}`);async function R({wallet:e}){if(!E.items.length){F.value=p(`checkout.error.empty`);return}F.value=``,P.value=!0;try{let t=await w({wallet:e});N.value=t,await ee();let n=await I.value?.confirm();if(n?.error){F.value=n.error.message||p(`checkout.error.payment`);return}if(n?.paymentIntent?.status===`succeeded`){let e=t.orderId;await S(),A.reset(),M.push({path:`/checkout/success`,query:{order:e}})}}catch(e){F.value=e?.message||p(`checkout.error.generic`)}finally{P.value=!1}}function z(e){F.value=e?.message||p(`checkout.error.payment`),P.value=!1}let B=d(()=>E.subtotal),V=d(()=>E.items.length?ye:0),H=d(()=>+(B.value+V.value).toFixed(2)),U=d(()=>E.items.length?+((B.value+V.value)*$/(1+$)).toFixed(2):0),W=d(()=>[{key:`cart`,label:p(`checkout.step.cart`),to:`/checkout/cart`,completed:E.items.length>0},{key:`account`,label:p(`checkout.step.account`),to:`/checkout/account`,completed:A.accountComplete},{key:`shipping`,label:p(`checkout.step.shipping`),to:`/checkout/shipping`,completed:A.shippingComplete},{key:`payment`,label:p(`checkout.step.payment`),to:`/checkout/payment`,completed:!1}]),G=d(()=>{let e=j.path.split(`/`)[2]||`cart`;return[`cart`,`account`,`shipping`,`payment`].includes(e)?e:`cart`}),K=d(()=>G.value===`cart`&&!E.isEmpty),q=d(()=>{switch(G.value){case`cart`:return{title:p(`checkout.cart.title`),sub:``};case`account`:return{title:p(`checkout.account.heading`),sub:p(`checkout.account.sub`)};case`shipping`:return{title:p(`checkout.section.shipping`),sub:p(`checkout.shipping.sub`)};case`payment`:return{title:p(`checkout.section.payment`),sub:p(`checkout.payment.sub`)};default:return{title:``,sub:``}}});return i(()=>{T()}),(e,i)=>{let a=n(`router-view`);return t(),h(`div`,te,[m(`header`,Q,[m(`div`,ne,[u(r(y),{to:`/`,class:`shrink-0 justify-self-start`,"aria-label":r(p)(`checkout.home`)},{default:c(()=>[u(b,{class:`w-9 md:w-12 h-auto text-brand`})]),_:1},8,[`aria-label`]),m(`div`,re,[u(D,{steps:W.value,"active-key":G.value,"aria-label":r(p)(`checkout.stepper.label`)},null,8,[`steps`,`active-key`,`aria-label`])]),u(r(y),{to:`/shop`,class:`shrink-0 justify-self-end hidden sm:inline-flex items-center text-[13px] font-semibold text-brand hover:underline whitespace-nowrap`},{default:c(()=>[f(s(r(p)(`checkout.backToShopping`)),1)]),_:1})])]),m(`main`,ie,[m(`div`,ae,[G.value===`cart`?(t(),h(`header`,oe,[m(`h1`,se,[f(s(r(p)(`checkout.headline`))+` `,1),m(`em`,ce,s(r(p)(`checkout.headline.em`)),1)])])):q.value.title?(t(),h(`header`,le,[m(`h2`,ue,s(q.value.title),1),q.value.sub?(t(),h(`p`,de,s(q.value.sub),1)):l(``,!0)])):l(``,!0),G.value===`cart`&&r(E).isEmpty?(t(),h(`div`,fe,[m(`div`,pe,[u(a)])])):(t(),h(`div`,{key:3,class:g([`grid gap-8 md:gap-10 lg:gap-12 lg:items-start`,K.value?`lg:grid-cols-[0.9fr_1.1fr]`:`lg:grid-cols-[1.1fr_0.9fr]`])},[K.value?(t(),h(`aside`,{key:0,class:`flex flex-col gap-4 lg:sticky lg:top-[calc(var(--checkout-bar-h,72px)+1rem)]`,"aria-label":r(p)(`checkout.section.express`)},[m(`div`,he,[m(`h2`,ge,s(r(p)(`checkout.section.express`)),1),u(O,{ref_key:`expressMountRef`,ref:I,intent:N.value,"return-url":L.value,busy:P.value,onPay:R,onError:z},null,8,[`intent`,`return-url`,`busy`])]),F.value?(t(),h(`p`,_e,s(F.value),1)):l(``,!0)],8,me)):l(``,!0),m(`div`,ve,[u(a)]),G.value===`cart`?l(``,!0):(t(),o(Z,{key:1,items:r(E).items,subtotal:B.value,shipping:V.value,tax:U.value,total:H.value,heading:r(p)(`checkout.summary.heading`),class:`lg:sticky lg:top-[calc(var(--checkout-bar-h,72px)+1rem)]`},null,8,[`items`,`subtotal`,`shipping`,`tax`,`total`,`heading`]))],2))])])])}}};export{be as default}; \ No newline at end of file diff --git a/dist/assets/CheckoutStepperSection-Ce2xE9MG.js b/dist/assets/CheckoutStepperSection-Ge9KdcMl.js similarity index 97% rename from dist/assets/CheckoutStepperSection-Ce2xE9MG.js rename to dist/assets/CheckoutStepperSection-Ge9KdcMl.js index c5d97fe..a524aed 100644 --- a/dist/assets/CheckoutStepperSection-Ce2xE9MG.js +++ b/dist/assets/CheckoutStepperSection-Ge9KdcMl.js @@ -1,4 +1,4 @@ -import{B as e,C as t,G as n,T as r,c as i,ft as a,j as o,m as s,o as c,r as l,s as u,u as d,ut as f}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{t as p}from"./i18n-yr4x-3Jp.js";import{t as m}from"./CheckoutStepper-Bq_p5fTn.js";import{t as h}from"./SectionShell-CyPmh1h8.js";var g={class:`eyebrow mb-5`},_={class:`flex flex-col gap-6`},v={class:`eyebrow text-muted`},y={class:`eyebrow mb-5`},b={class:`rounded-md border border-line bg-paper p-6 flex flex-col gap-4`},x={class:`flex flex-wrap gap-2`},S=[`onClick`],C={class:`eyebrow mb-5`},w={__name:`CheckoutStepperSection`,setup(w){let{t:T}=p(),E=e(`shipping`),D=c(()=>[{key:`cart`,label:T(`checkout.step.cart`),to:`/checkout/cart`,completed:!0},{key:`account`,label:T(`checkout.step.account`),to:`/checkout/account`,completed:!0},{key:`shipping`,label:T(`checkout.step.shipping`),to:`/checkout/shipping`,completed:!1},{key:`payment`,label:T(`checkout.step.payment`),to:`/checkout/payment`,completed:!1}]),O=[`cart`,`account`,`shipping`,`payment`];return(e,c)=>(t(),i(h,{eyebrow:n(T)(`ds.eyebrow.components`),title:n(T)(`ds.checkoutStepper.title`),description:n(T)(`ds.checkoutStepper.description`)},{default:o(()=>[u(`section`,null,[u(`h2`,g,a(n(T)(`ds.heading.states`)),1),u(`div`,_,[(t(),d(l,null,r(O,e=>u(`div`,{key:e,class:`rounded-md border border-line bg-paper p-6 flex flex-col gap-3`},[u(`p`,v,a(n(T)(`checkout.step.${e}`))+` active`,1),s(m,{steps:D.value,"active-key":e},null,8,[`steps`,`active-key`])])),64))])]),u(`section`,null,[u(`h2`,y,a(n(T)(`ds.heading.interactive`)),1),u(`div`,b,[u(`div`,x,[(t(),d(l,null,r(O,e=>u(`button`,{key:e,type:`button`,class:f([`px-3 py-1.5 rounded-pill border text-[12px] font-semibold tracking-label`,E.value===e?`bg-brand text-cream border-brand`:`bg-paper text-brand border-line hover:border-brand`]),onClick:t=>E.value=e},a(n(T)(`checkout.step.${e}`)),11,S)),64))]),s(m,{steps:D.value,"active-key":E.value},null,8,[`steps`,`active-key`])])]),u(`section`,null,[u(`h2`,C,a(n(T)(`ds.heading.usage`)),1),c[0]||=u(`div`,{class:`rounded-md border border-line bg-paper p-6 font-mono text-[12px] text-ink`},[u(`pre`,{class:`whitespace-pre-wrap`},`[{key:`cart`,label:T(`checkout.step.cart`),to:`/checkout/cart`,completed:!0},{key:`account`,label:T(`checkout.step.account`),to:`/checkout/account`,completed:!0},{key:`shipping`,label:T(`checkout.step.shipping`),to:`/checkout/shipping`,completed:!1},{key:`payment`,label:T(`checkout.step.payment`),to:`/checkout/payment`,completed:!1}]),O=[`cart`,`account`,`shipping`,`payment`];return(e,c)=>(t(),i(h,{eyebrow:n(T)(`ds.eyebrow.components`),title:n(T)(`ds.checkoutStepper.title`),description:n(T)(`ds.checkoutStepper.description`)},{default:o(()=>[u(`section`,null,[u(`h2`,g,a(n(T)(`ds.heading.states`)),1),u(`div`,_,[(t(),d(l,null,r(O,e=>u(`div`,{key:e,class:`rounded-md border border-line bg-paper p-6 flex flex-col gap-3`},[u(`p`,v,a(n(T)(`checkout.step.${e}`))+` active`,1),s(m,{steps:D.value,"active-key":e},null,8,[`steps`,`active-key`])])),64))])]),u(`section`,null,[u(`h2`,y,a(n(T)(`ds.heading.interactive`)),1),u(`div`,b,[u(`div`,x,[(t(),d(l,null,r(O,e=>u(`button`,{key:e,type:`button`,class:f([`px-3 py-1.5 rounded-pill border text-[12px] font-semibold tracking-label`,E.value===e?`bg-brand text-cream border-brand`:`bg-paper text-brand border-line hover:border-brand`]),onClick:t=>E.value=e},a(n(T)(`checkout.step.${e}`)),11,S)),64))]),s(m,{steps:D.value,"active-key":E.value},null,8,[`steps`,`active-key`])])]),u(`section`,null,[u(`h2`,C,a(n(T)(`ds.heading.usage`)),1),c[0]||=u(`div`,{class:`rounded-md border border-line bg-paper p-6 font-mono text-[12px] text-ink`},[u(`pre`,{class:`whitespace-pre-wrap`},` diff --git a/dist/assets/CheckoutSuccessPage-CGmZNuAs.js b/dist/assets/CheckoutSuccessPage-CEoAUfvD.js similarity index 95% rename from dist/assets/CheckoutSuccessPage-CGmZNuAs.js rename to dist/assets/CheckoutSuccessPage-CEoAUfvD.js index 414c888..ad4d69d 100644 --- a/dist/assets/CheckoutSuccessPage-CGmZNuAs.js +++ b/dist/assets/CheckoutSuccessPage-CEoAUfvD.js @@ -1 +1 @@ -import{B as e,C as t,G as n,S as r,ft as i,j as a,l as o,m as s,o as c,p as l,s as u,u as d}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{a as f,t as p}from"./vue-router-Cyqru1db.js";import{t as m}from"./Icon-BCo6-bGH.js";import{t as h}from"./i18n-yr4x-3Jp.js";import{a as g}from"./api-DlB23x7f.js";import{t as _}from"./Button-D1Rp2Xe1.js";var v={class:`min-h-svh flex flex-col bg-cream`},y={class:`text-ink flex-1 flex flex-col justify-center`},b={class:`mx-auto w-full max-w-3xl px-6 sm:px-8 md:px-12 lg:px-16 py-10 sm:py-14 md:py-16 lg:py-20`},x={class:`rounded-md border border-line bg-paper p-8 md:p-10 flex flex-col gap-6 items-center text-center`},S={class:`relative w-20 h-20`},C={class:`absolute inset-0 rounded-full bg-brand text-accent flex items-center justify-center`},w={class:`eyebrow`},T={class:`font-display font-normal leading-[1.05] tracking-tight text-ink text-headline-md`},E={class:`italic font-light text-brand`},D={class:`text-base leading-relaxed text-muted max-w-md`},O={key:0,class:`mt-2 inline-flex items-center gap-2 rounded-pill border border-cream-dark bg-cream px-4 py-2 text-[13px] text-ink`},k={class:`eyebrow text-muted`},A={class:`font-mono text-[12px] text-brand`},j={key:1,class:`text-[13px] text-danger mt-2`,role:`alert`,"aria-live":`polite`},M={class:`mt-4 flex flex-col gap-3 w-full max-w-sm`},N={key:2,class:`text-[12px] text-muted mt-2`},P={__name:`CheckoutSuccessPage`,setup(P){let{t:F}=h(),I=f(),L=e(null),R=e(``),z=e(!0),B=c(()=>String(I.query.order||``));return r(async()=>{if(!B.value){R.value=F(`checkout.success.missing`),z.value=!1;return}try{L.value=await g({orderId:B.value})}catch(e){R.value=e?.message||F(`checkout.error.generic`)}finally{z.value=!1}}),(e,r)=>(t(),d(`div`,v,[u(`main`,y,[u(`div`,b,[u(`article`,x,[u(`div`,S,[r[0]||=u(`span`,{"aria-hidden":`true`,class:`absolute inset-0 rounded-full bg-brand-wash`,style:{animation:`var(--animate-pulse-soft)`}},null,-1),u(`span`,C,[s(m,{name:`check`,size:36,"stroke-width":2.4})])]),u(`p`,w,i(n(F)(`checkout.success.eyebrow`)),1),u(`h1`,T,[l(i(n(F)(`checkout.success.headline`))+` `,1),u(`em`,E,i(n(F)(`checkout.success.headline.em`)),1)]),u(`p`,D,i(n(F)(`checkout.success.sub`)),1),B.value?(t(),d(`div`,O,[u(`span`,k,i(n(F)(`checkout.success.orderId`)),1),u(`span`,A,i(B.value),1)])):o(``,!0),R.value?(t(),d(`p`,j,i(R.value),1)):o(``,!0),u(`div`,M,[s(n(p),{to:`/`,class:`block`},{default:a(()=>[s(_,{variant:`primary`,size:`lg`,class:`w-full`},{default:a(()=>[l(i(n(F)(`checkout.success.cta.home`)),1)]),_:1})]),_:1}),s(n(p),{to:`/shop`,class:`block`},{default:a(()=>[s(_,{variant:`secondary`,size:`lg`,class:`w-full`},{default:a(()=>[l(i(n(F)(`checkout.success.cta.shop`)),1)]),_:1})]),_:1})]),!z.value&&L.value?(t(),d(`p`,N,i(n(F)(`checkout.success.email`)),1)):o(``,!0)])])])]))}};export{P as default}; \ No newline at end of file +import{B as e,C as t,G as n,S as r,ft as i,j as a,l as o,m as s,o as c,p as l,s as u,u as d}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{a as f,t as p}from"./vue-router-Cyqru1db.js";import{t as m}from"./Icon-BCo6-bGH.js";import{t as h}from"./i18n-XDSWEyNo.js";import{a as g}from"./api-DlB23x7f.js";import{t as _}from"./Button-D1Rp2Xe1.js";var v={class:`min-h-svh flex flex-col bg-cream`},y={class:`text-ink flex-1 flex flex-col justify-center`},b={class:`mx-auto w-full max-w-3xl px-6 sm:px-8 md:px-12 lg:px-16 py-10 sm:py-14 md:py-16 lg:py-20`},x={class:`rounded-md border border-line bg-paper p-8 md:p-10 flex flex-col gap-6 items-center text-center`},S={class:`relative w-20 h-20`},C={class:`absolute inset-0 rounded-full bg-brand text-accent flex items-center justify-center`},w={class:`eyebrow`},T={class:`font-display font-normal leading-[1.05] tracking-tight text-ink text-headline-md`},E={class:`italic font-light text-brand`},D={class:`text-base leading-relaxed text-muted max-w-md`},O={key:0,class:`mt-2 inline-flex items-center gap-2 rounded-pill border border-cream-dark bg-cream px-4 py-2 text-[13px] text-ink`},k={class:`eyebrow text-muted`},A={class:`font-mono text-[12px] text-brand`},j={key:1,class:`text-[13px] text-danger mt-2`,role:`alert`,"aria-live":`polite`},M={class:`mt-4 flex flex-col gap-3 w-full max-w-sm`},N={key:2,class:`text-[12px] text-muted mt-2`},P={__name:`CheckoutSuccessPage`,setup(P){let{t:F}=h(),I=f(),L=e(null),R=e(``),z=e(!0),B=c(()=>String(I.query.order||``));return r(async()=>{if(!B.value){R.value=F(`checkout.success.missing`),z.value=!1;return}try{L.value=await g({orderId:B.value})}catch(e){R.value=e?.message||F(`checkout.error.generic`)}finally{z.value=!1}}),(e,r)=>(t(),d(`div`,v,[u(`main`,y,[u(`div`,b,[u(`article`,x,[u(`div`,S,[r[0]||=u(`span`,{"aria-hidden":`true`,class:`absolute inset-0 rounded-full bg-brand-wash`,style:{animation:`var(--animate-pulse-soft)`}},null,-1),u(`span`,C,[s(m,{name:`check`,size:36,"stroke-width":2.4})])]),u(`p`,w,i(n(F)(`checkout.success.eyebrow`)),1),u(`h1`,T,[l(i(n(F)(`checkout.success.headline`))+` `,1),u(`em`,E,i(n(F)(`checkout.success.headline.em`)),1)]),u(`p`,D,i(n(F)(`checkout.success.sub`)),1),B.value?(t(),d(`div`,O,[u(`span`,k,i(n(F)(`checkout.success.orderId`)),1),u(`span`,A,i(B.value),1)])):o(``,!0),R.value?(t(),d(`p`,j,i(R.value),1)):o(``,!0),u(`div`,M,[s(n(p),{to:`/`,class:`block`},{default:a(()=>[s(_,{variant:`primary`,size:`lg`,class:`w-full`},{default:a(()=>[l(i(n(F)(`checkout.success.cta.home`)),1)]),_:1})]),_:1}),s(n(p),{to:`/shop`,class:`block`},{default:a(()=>[s(_,{variant:`secondary`,size:`lg`,class:`w-full`},{default:a(()=>[l(i(n(F)(`checkout.success.cta.shop`)),1)]),_:1})]),_:1})]),!z.value&&L.value?(t(),d(`p`,N,i(n(F)(`checkout.success.email`)),1)):o(``,!0)])])])]))}};export{P as default}; \ No newline at end of file diff --git a/dist/assets/ColorsSection-CDSA-8Ih.js b/dist/assets/ColorsSection-BG3EQ_hW.js similarity index 95% rename from dist/assets/ColorsSection-CDSA-8Ih.js rename to dist/assets/ColorsSection-BG3EQ_hW.js index 75fb728..d53d3ef 100644 --- a/dist/assets/ColorsSection-CDSA-8Ih.js +++ b/dist/assets/ColorsSection-BG3EQ_hW.js @@ -1 +1 @@ -import{C as e,G as t,T as n,c as r,dt as i,ft as a,j as o,o as s,r as c,s as l,u}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{t as d}from"./i18n-yr4x-3Jp.js";import{t as f}from"./SectionShell-CyPmh1h8.js";var p={class:`eyebrow mb-5`},m={class:`grid grid-cols-2 sm:grid-cols-3 gap-4`},h={class:`px-4 py-3`},g={class:`font-mono text-[12px] text-ink block`},_={__name:`ColorsSection`,setup(_){let{t:v}=d(),y=s(()=>[{title:v(`ds.colors.group.brand`),names:[`brand`,`brand-hover`,`brand-soft`]},{title:v(`ds.colors.group.accent`),names:[`accent`,`accent-soft`,`accent-ink`]},{title:v(`ds.colors.group.surface`),names:[`surface`,`paper`,`cream`]},{title:v(`ds.colors.group.ink`),names:[`ink`,`muted`]},{title:v(`ds.colors.group.line`),names:[`line`,`line-strong`]},{title:v(`ds.colors.group.semantic`),names:[`success`,`warning`,`danger`]}]);return(s,d)=>(e(),r(f,{eyebrow:t(v)(`ds.eyebrow.tokens`),title:t(v)(`ds.colors.title`),description:t(v)(`ds.colors.description`)},{default:o(()=>[(e(!0),u(c,null,n(y.value,t=>(e(),u(`section`,{key:t.title},[l(`h2`,p,a(t.title),1),l(`div`,m,[(e(!0),u(c,null,n(t.names,t=>(e(),u(`div`,{key:t,class:`rounded-md border border-line overflow-hidden bg-paper`},[l(`div`,{class:`h-28 border-b border-line`,style:i({background:`var(--color-${t})`})},null,4),l(`div`,h,[l(`code`,g,`--color-`+a(t),1)])]))),128))])]))),128))]),_:1},8,[`eyebrow`,`title`,`description`]))}};export{_ as default}; \ No newline at end of file +import{C as e,G as t,T as n,c as r,dt as i,ft as a,j as o,o as s,r as c,s as l,u}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{t as d}from"./i18n-XDSWEyNo.js";import{t as f}from"./SectionShell-CyPmh1h8.js";var p={class:`eyebrow mb-5`},m={class:`grid grid-cols-2 sm:grid-cols-3 gap-4`},h={class:`px-4 py-3`},g={class:`font-mono text-[12px] text-ink block`},_={__name:`ColorsSection`,setup(_){let{t:v}=d(),y=s(()=>[{title:v(`ds.colors.group.brand`),names:[`brand`,`brand-hover`,`brand-soft`]},{title:v(`ds.colors.group.accent`),names:[`accent`,`accent-soft`,`accent-ink`]},{title:v(`ds.colors.group.surface`),names:[`surface`,`paper`,`cream`]},{title:v(`ds.colors.group.ink`),names:[`ink`,`muted`]},{title:v(`ds.colors.group.line`),names:[`line`,`line-strong`]},{title:v(`ds.colors.group.semantic`),names:[`success`,`warning`,`danger`]}]);return(s,d)=>(e(),r(f,{eyebrow:t(v)(`ds.eyebrow.tokens`),title:t(v)(`ds.colors.title`),description:t(v)(`ds.colors.description`)},{default:o(()=>[(e(!0),u(c,null,n(y.value,t=>(e(),u(`section`,{key:t.title},[l(`h2`,p,a(t.title),1),l(`div`,m,[(e(!0),u(c,null,n(t.names,t=>(e(),u(`div`,{key:t,class:`rounded-md border border-line overflow-hidden bg-paper`},[l(`div`,{class:`h-28 border-b border-line`,style:i({background:`var(--color-${t})`})},null,4),l(`div`,h,[l(`code`,g,`--color-`+a(t),1)])]))),128))])]))),128))]),_:1},8,[`eyebrow`,`title`,`description`]))}};export{_ as default}; \ No newline at end of file diff --git a/dist/assets/DesignLayout-vpRFySfF.js b/dist/assets/DesignLayout-GT9VEiqC.js similarity index 97% rename from dist/assets/DesignLayout-vpRFySfF.js rename to dist/assets/DesignLayout-GT9VEiqC.js index 1cea394..54463fd 100644 --- a/dist/assets/DesignLayout-vpRFySfF.js +++ b/dist/assets/DesignLayout-GT9VEiqC.js @@ -1 +1 @@ -import{A as e,B as t,C as n,G as r,T as i,c as a,ft as o,j as s,l as c,m as l,o as u,p as d,r as f,s as p,u as m}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{t as h}from"./runtime-dom.esm-bundler-CXLmyuFK.js";import{a as g,n as _,t as v}from"./vue-router-Cyqru1db.js";import{t as y}from"./Logo-K2VN1F6l.js";import{t as b}from"./Icon-BCo6-bGH.js";import{t as x}from"./IconButton-Cw1KbfUO.js";import{t as ee}from"./i18n-yr4x-3Jp.js";import{t as S}from"./LanguageSwitcher-cknrBiEg.js";import{t as C}from"./_plugin-vue_export-helper-0vLWKQyu.js";var w={class:`h-screen flex bg-surface text-ink overflow-hidden`},T={class:`hidden lg:flex w-[260px] shrink-0 border-r border-line bg-paper flex-col`},E={class:`px-6 py-6 border-b border-line`},D={class:`eyebrow mt-3`},O={class:`flex-1 overflow-y-auto px-3 py-5 space-y-6`},k={class:`eyebrow px-3 mb-2`},A={class:`flex flex-col gap-0.5`},j={class:`px-6 py-4 border-t border-line`},M={class:`flex-1 overflow-y-auto pb-20 lg:pb-0`},N=[`aria-expanded`],P={class:`flex flex-col min-w-0`},F={class:`eyebrow`},I={class:`truncate text-[15px] font-semibold text-ink`},te={class:`inline-flex items-center justify-center w-10 h-10 rounded-pill bg-brand-wash text-brand shrink-0`},L=[`aria-label`],R={class:`shrink-0 flex items-center justify-between px-5 pt-3 pb-3 border-b border-line`},z={class:`flex flex-col`},B={class:`eyebrow`},V={class:`text-[15px] font-semibold`},H={class:`flex-1 overflow-y-auto px-3 py-4 space-y-6`},U={class:`eyebrow px-3 mb-2`},W={class:`flex flex-col gap-0.5`},G={class:`px-3 pt-3 border-t border-line`},K=C({__name:`DesignLayout`,setup(C){let{t:K}=ee(),q=g(),J=u(()=>[{title:K(`ds.sidebar.brand`),items:[{name:`ds-logo`,label:K(`ds.nav.logo`)}]},{title:K(`ds.sidebar.tokens`),items:[{name:`ds-colors`,label:K(`ds.nav.colors`)},{name:`ds-typography`,label:K(`ds.nav.typography`)},{name:`ds-radii`,label:K(`ds.nav.radii`)},{name:`ds-shadows`,label:K(`ds.nav.shadows`)},{name:`ds-motion`,label:K(`ds.nav.motion`)}]},{title:K(`ds.sidebar.components`),items:[{name:`ds-icons`,label:K(`ds.nav.icons`)},{name:`ds-buttons`,label:K(`ds.nav.buttons`)},{name:`ds-badges`,label:K(`ds.nav.badges`)},{name:`ds-inputs`,label:K(`ds.nav.inputs`)},{name:`ds-cards`,label:K(`ds.nav.cards`)},{name:`ds-products`,label:K(`ds.nav.products`)},{name:`ds-bundle-card`,label:K(`ds.nav.bundleCard`)},{name:`ds-hero`,label:K(`ds.nav.hero`)},{name:`ds-navbar`,label:K(`ds.nav.navbar`)},{name:`ds-search`,label:K(`ds.nav.search`)},{name:`ds-quantity-stepper`,label:K(`ds.nav.qtyStepper`)},{name:`ds-cart-drawer`,label:K(`ds.nav.cartDrawer`)},{name:`ds-checkout-stepper`,label:K(`ds.nav.checkoutStepper`)},{name:`ds-language`,label:K(`ds.nav.language`)}]},{title:K(`ds.sidebar.sections`),items:[{name:`ds-bundles`,label:K(`ds.nav.bundles`)},{name:`ds-revitalization`,label:K(`ds.nav.revitalization`)},{name:`ds-about`,label:K(`ds.nav.about`)},{name:`ds-footer`,label:K(`ds.nav.footer`)}]}]),Y=u(()=>J.value.flatMap(e=>e.items)),X=u(()=>{let e=Y.value.find(e=>e.name===q.name);return e?e.label:K(`ds.eyebrow.designSystem`)}),Z=t(!1);function Q(){Z.value=!0}function $(){Z.value=!1}return e(()=>q.name,$),(e,t)=>(n(),m(`div`,w,[p(`aside`,T,[p(`div`,E,[l(r(v),{to:`/`,class:`block text-brand`,"aria-label":`Kaiser Natron home`},{default:s(()=>[l(y,{class:`w-16 h-auto`})]),_:1}),p(`p`,D,o(r(K)(`ds.eyebrow.designSystem`)),1)]),p(`nav`,O,[(n(!0),m(f,null,i(J.value,e=>(n(),m(`div`,{key:e.title},[p(`p`,k,o(e.title),1),p(`div`,A,[(n(!0),m(f,null,i(e.items,e=>(n(),a(r(v),{key:e.name,to:{name:e.name},class:`px-3 py-2 rounded-sm text-[14px] font-medium text-muted hover:text-brand hover:bg-brand-wash transition-colors`,"active-class":`!text-brand !bg-brand-soft-wash`},{default:s(()=>[d(o(e.label),1)]),_:2},1032,[`to`]))),128))])]))),128))]),p(`div`,j,[l(r(v),{to:`/`,class:`text-[13px] text-muted hover:text-brand transition-colors`},{default:s(()=>[d(o(r(K)(`ds.sidebar.back`)),1)]),_:1})])]),p(`main`,M,[l(r(_))]),p(`button`,{type:`button`,class:`lg:hidden fixed bottom-0 inset-x-0 z-40 flex items-center justify-between gap-3 px-5 py-3 bg-paper border-t border-line text-left shadow-[0_-4px_16px_rgba(28,58,40,0.06)]`,"aria-expanded":Z.value,"aria-controls":`ds-mobile-sheet`,onClick:Q},[p(`span`,P,[p(`span`,F,o(r(K)(`ds.mobile.currentPage`)),1),p(`span`,I,o(X.value),1)]),p(`span`,te,[l(b,{name:`chevron-up`,size:20,label:r(K)(`ds.mobile.selectPage`)},null,8,[`label`])])],8,N),l(h,{name:`ds-backdrop`},{default:s(()=>[Z.value?(n(),m(`div`,{key:0,class:`lg:hidden fixed inset-0 z-50 bg-ink/40`,onClick:$})):c(``,!0)]),_:1}),l(h,{name:`ds-sheet`},{default:s(()=>[Z.value?(n(),m(`aside`,{key:0,id:`ds-mobile-sheet`,role:`dialog`,"aria-modal":`true`,"aria-label":r(K)(`ds.mobile.selectPage`),class:`lg:hidden fixed bottom-0 inset-x-0 z-50 h-[50svh] bg-paper border-t border-line rounded-t-xl flex flex-col shadow-[0_-12px_32px_rgba(28,58,40,0.18)]`},[p(`div`,R,[p(`span`,z,[p(`span`,B,o(r(K)(`ds.eyebrow.designSystem`)),1),p(`span`,V,o(r(K)(`ds.mobile.selectPage`)),1)]),l(x,{icon:`close`,variant:`ghost`,size:`xs`,"icon-size":22,"aria-label":r(K)(`menu.close`),onClick:$},null,8,[`aria-label`])]),p(`nav`,H,[(n(!0),m(f,null,i(J.value,e=>(n(),m(`div`,{key:e.title},[p(`p`,U,o(e.title),1),p(`div`,W,[(n(!0),m(f,null,i(e.items,e=>(n(),a(r(v),{key:e.name,to:{name:e.name},class:`px-3 py-2.5 rounded-sm text-[15px] font-medium text-muted hover:text-brand hover:bg-brand-wash transition-colors`,"active-class":`!text-brand !bg-brand-soft-wash`},{default:s(()=>[d(o(e.label),1)]),_:2},1032,[`to`]))),128))])]))),128)),p(`div`,G,[l(r(v),{to:`/`,class:`inline-block text-[14px] text-muted hover:text-brand transition-colors`},{default:s(()=>[d(o(r(K)(`ds.sidebar.back`)),1)]),_:1})])])],8,L)):c(``,!0)]),_:1}),l(S,{floating:``})]))}},[[`__scopeId`,`data-v-bbee6d71`]]);export{K as default}; \ No newline at end of file +import{A as e,B as t,C as n,G as r,T as i,c as a,ft as o,j as s,l as c,m as l,o as u,p as d,r as f,s as p,u as m}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{t as h}from"./runtime-dom.esm-bundler-CXLmyuFK.js";import{a as g,n as _,t as v}from"./vue-router-Cyqru1db.js";import{t as y}from"./Logo-K2VN1F6l.js";import{t as b}from"./Icon-BCo6-bGH.js";import{t as x}from"./IconButton-Cw1KbfUO.js";import{t as ee}from"./i18n-XDSWEyNo.js";import{t as S}from"./LanguageSwitcher-BeyDSAjE.js";import{t as C}from"./_plugin-vue_export-helper-0vLWKQyu.js";var w={class:`h-screen flex bg-surface text-ink overflow-hidden`},T={class:`hidden lg:flex w-[260px] shrink-0 border-r border-line bg-paper flex-col`},E={class:`px-6 py-6 border-b border-line`},D={class:`eyebrow mt-3`},O={class:`flex-1 overflow-y-auto px-3 py-5 space-y-6`},k={class:`eyebrow px-3 mb-2`},A={class:`flex flex-col gap-0.5`},j={class:`px-6 py-4 border-t border-line`},M={class:`flex-1 overflow-y-auto pb-20 lg:pb-0`},N=[`aria-expanded`],P={class:`flex flex-col min-w-0`},F={class:`eyebrow`},I={class:`truncate text-[15px] font-semibold text-ink`},te={class:`inline-flex items-center justify-center w-10 h-10 rounded-pill bg-brand-wash text-brand shrink-0`},L=[`aria-label`],R={class:`shrink-0 flex items-center justify-between px-5 pt-3 pb-3 border-b border-line`},z={class:`flex flex-col`},B={class:`eyebrow`},V={class:`text-[15px] font-semibold`},H={class:`flex-1 overflow-y-auto px-3 py-4 space-y-6`},U={class:`eyebrow px-3 mb-2`},W={class:`flex flex-col gap-0.5`},G={class:`px-3 pt-3 border-t border-line`},K=C({__name:`DesignLayout`,setup(C){let{t:K}=ee(),q=g(),J=u(()=>[{title:K(`ds.sidebar.brand`),items:[{name:`ds-logo`,label:K(`ds.nav.logo`)}]},{title:K(`ds.sidebar.tokens`),items:[{name:`ds-colors`,label:K(`ds.nav.colors`)},{name:`ds-typography`,label:K(`ds.nav.typography`)},{name:`ds-radii`,label:K(`ds.nav.radii`)},{name:`ds-shadows`,label:K(`ds.nav.shadows`)},{name:`ds-motion`,label:K(`ds.nav.motion`)}]},{title:K(`ds.sidebar.components`),items:[{name:`ds-icons`,label:K(`ds.nav.icons`)},{name:`ds-buttons`,label:K(`ds.nav.buttons`)},{name:`ds-badges`,label:K(`ds.nav.badges`)},{name:`ds-inputs`,label:K(`ds.nav.inputs`)},{name:`ds-cards`,label:K(`ds.nav.cards`)},{name:`ds-products`,label:K(`ds.nav.products`)},{name:`ds-bundle-card`,label:K(`ds.nav.bundleCard`)},{name:`ds-hero`,label:K(`ds.nav.hero`)},{name:`ds-navbar`,label:K(`ds.nav.navbar`)},{name:`ds-search`,label:K(`ds.nav.search`)},{name:`ds-quantity-stepper`,label:K(`ds.nav.qtyStepper`)},{name:`ds-cart-drawer`,label:K(`ds.nav.cartDrawer`)},{name:`ds-checkout-stepper`,label:K(`ds.nav.checkoutStepper`)},{name:`ds-language`,label:K(`ds.nav.language`)}]},{title:K(`ds.sidebar.sections`),items:[{name:`ds-bundles`,label:K(`ds.nav.bundles`)},{name:`ds-revitalization`,label:K(`ds.nav.revitalization`)},{name:`ds-about`,label:K(`ds.nav.about`)},{name:`ds-footer`,label:K(`ds.nav.footer`)}]}]),Y=u(()=>J.value.flatMap(e=>e.items)),X=u(()=>{let e=Y.value.find(e=>e.name===q.name);return e?e.label:K(`ds.eyebrow.designSystem`)}),Z=t(!1);function Q(){Z.value=!0}function $(){Z.value=!1}return e(()=>q.name,$),(e,t)=>(n(),m(`div`,w,[p(`aside`,T,[p(`div`,E,[l(r(v),{to:`/`,class:`block text-brand`,"aria-label":`Kaiser Natron home`},{default:s(()=>[l(y,{class:`w-16 h-auto`})]),_:1}),p(`p`,D,o(r(K)(`ds.eyebrow.designSystem`)),1)]),p(`nav`,O,[(n(!0),m(f,null,i(J.value,e=>(n(),m(`div`,{key:e.title},[p(`p`,k,o(e.title),1),p(`div`,A,[(n(!0),m(f,null,i(e.items,e=>(n(),a(r(v),{key:e.name,to:{name:e.name},class:`px-3 py-2 rounded-sm text-[14px] font-medium text-muted hover:text-brand hover:bg-brand-wash transition-colors`,"active-class":`!text-brand !bg-brand-soft-wash`},{default:s(()=>[d(o(e.label),1)]),_:2},1032,[`to`]))),128))])]))),128))]),p(`div`,j,[l(r(v),{to:`/`,class:`text-[13px] text-muted hover:text-brand transition-colors`},{default:s(()=>[d(o(r(K)(`ds.sidebar.back`)),1)]),_:1})])]),p(`main`,M,[l(r(_))]),p(`button`,{type:`button`,class:`lg:hidden fixed bottom-0 inset-x-0 z-40 flex items-center justify-between gap-3 px-5 py-3 bg-paper border-t border-line text-left shadow-[0_-4px_16px_rgba(28,58,40,0.06)]`,"aria-expanded":Z.value,"aria-controls":`ds-mobile-sheet`,onClick:Q},[p(`span`,P,[p(`span`,F,o(r(K)(`ds.mobile.currentPage`)),1),p(`span`,I,o(X.value),1)]),p(`span`,te,[l(b,{name:`chevron-up`,size:20,label:r(K)(`ds.mobile.selectPage`)},null,8,[`label`])])],8,N),l(h,{name:`ds-backdrop`},{default:s(()=>[Z.value?(n(),m(`div`,{key:0,class:`lg:hidden fixed inset-0 z-50 bg-ink/40`,onClick:$})):c(``,!0)]),_:1}),l(h,{name:`ds-sheet`},{default:s(()=>[Z.value?(n(),m(`aside`,{key:0,id:`ds-mobile-sheet`,role:`dialog`,"aria-modal":`true`,"aria-label":r(K)(`ds.mobile.selectPage`),class:`lg:hidden fixed bottom-0 inset-x-0 z-50 h-[50svh] bg-paper border-t border-line rounded-t-xl flex flex-col shadow-[0_-12px_32px_rgba(28,58,40,0.18)]`},[p(`div`,R,[p(`span`,z,[p(`span`,B,o(r(K)(`ds.eyebrow.designSystem`)),1),p(`span`,V,o(r(K)(`ds.mobile.selectPage`)),1)]),l(x,{icon:`close`,variant:`ghost`,size:`xs`,"icon-size":22,"aria-label":r(K)(`menu.close`),onClick:$},null,8,[`aria-label`])]),p(`nav`,H,[(n(!0),m(f,null,i(J.value,e=>(n(),m(`div`,{key:e.title},[p(`p`,U,o(e.title),1),p(`div`,W,[(n(!0),m(f,null,i(e.items,e=>(n(),a(r(v),{key:e.name,to:{name:e.name},class:`px-3 py-2.5 rounded-sm text-[15px] font-medium text-muted hover:text-brand hover:bg-brand-wash transition-colors`,"active-class":`!text-brand !bg-brand-soft-wash`},{default:s(()=>[d(o(e.label),1)]),_:2},1032,[`to`]))),128))])]))),128)),p(`div`,G,[l(r(v),{to:`/`,class:`inline-block text-[14px] text-muted hover:text-brand transition-colors`},{default:s(()=>[d(o(r(K)(`ds.sidebar.back`)),1)]),_:1})])])],8,L)):c(``,!0)]),_:1}),l(S,{floating:``})]))}},[[`__scopeId`,`data-v-bbee6d71`]]);export{K as default}; \ No newline at end of file diff --git a/dist/assets/ExpressCheckoutMount-6qxJ0y-Q.js b/dist/assets/ExpressCheckoutMount-E5l1VQNt.js similarity index 98% rename from dist/assets/ExpressCheckoutMount-6qxJ0y-Q.js rename to dist/assets/ExpressCheckoutMount-E5l1VQNt.js index 743eff3..8448363 100644 --- a/dist/assets/ExpressCheckoutMount-6qxJ0y-Q.js +++ b/dist/assets/ExpressCheckoutMount-E5l1VQNt.js @@ -1 +1 @@ -import{A as e,B as t,C as n,G as r,S as i,f as a,ft as o,l as s,o as c,s as l,u,ut as d,x as f}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{t as p}from"./preload-helper-ca-nBW7U.js";import{t as m}from"./i18n-yr4x-3Jp.js";var h={class:`flex flex-col gap-3`},g={key:1,class:`grid gap-3 sm:grid-cols-2`},_=[`disabled`,`aria-label`],v=[`disabled`,`aria-label`],y={key:2,class:`text-[13px] text-danger`},b={__name:`ExpressCheckoutMount`,props:{intent:{type:Object,default:null},returnUrl:{type:String,required:!0},busy:{type:Boolean,default:!1}},emits:[`pay`,`error`],setup(b,{expose:x,emit:S}){let{t:C}=m(),w=b,T=S,E=t(null),D=t(null),O=t(!1),k=t(``),A=c(()=>/^pi_stub_express_/.test(w.intent?.clientSecret||``));function j(e){w.busy||w.intent||T(`pay`,{wallet:e})}async function M(){if(!(!w.intent||typeof window>`u`)){if(A.value){O.value=!0;return}try{let e=[`@stripe`,`stripe-js`].join(`/`),{loadStripe:t}=await p(()=>import(e),[]),n=await t(w.intent.publishableKey);if(!n)throw Error(`Stripe.js failed to initialise.`);E.value=n;let r=n.elements({clientSecret:w.intent.clientSecret,appearance:{theme:`flat`,variables:{colorPrimary:`#006548`,colorBackground:`#ffffff`,colorText:`#0f3825`,fontFamily:`"DM Sans", ui-sans-serif, system-ui, sans-serif`,borderRadius:`10px`,spacingUnit:`4px`}}});D.value=r;let i=r.create(`expressCheckout`,{buttonType:{applePay:`buy`,googlePay:`buy`},buttonTheme:{applePay:`black`,googlePay:`black`},buttonHeight:48});i.mount(`#express-checkout-element`),i.on(`ready`,()=>{O.value=!0}),i.on(`loaderror`,e=>{k.value=e?.error?.message||`Failed to load wallet buttons.`}),i.on(`confirm`,async()=>{let e=await n.confirmPayment({elements:r,clientSecret:w.intent.clientSecret,confirmParams:{return_url:w.returnUrl}});e?.error&&T(`error`,e.error)})}catch(e){k.value=e?.message||String(e)}}}async function N(){return w.intent?A.value?(await new Promise(e=>setTimeout(e,600)),{paymentIntent:{id:(w.intent.clientSecret||``).split(`_secret_`)[0]||`pi_stub`,status:`succeeded`}}):{error:{message:`Express confirm is driven by Stripe.`}}:{error:{message:`No intent.`}}}return x({confirm:N,ready:O}),i(()=>{w.intent&&M()}),e(()=>w.intent?.clientSecret,e=>{e&&M()}),f(()=>{E.value=null,D.value=null}),(e,t)=>(n(),u(`div`,h,[b.intent&&!A.value?(n(),u(`div`,{key:0,id:`express-checkout-element`,class:d([`min-h-[52px]`,{"opacity-60":!O.value}]),"aria-live":`polite`},null,2)):(n(),u(`div`,g,[l(`button`,{type:`button`,class:`inline-flex items-center justify-center gap-2 rounded-sm bg-ink h-12 px-5 text-paper transition-colors duration-base hover:bg-brand disabled:opacity-50 disabled:cursor-not-allowed`,disabled:b.busy,"aria-label":r(C)(`checkout.express.applePay.aria`),onClick:t[0]||=e=>j(`apple`)},[...t[2]||=[l(`svg`,{width:`18`,height:`22`,viewBox:`0 0 18 22`,fill:`currentColor`,"aria-hidden":`true`},[l(`path`,{d:`M14.94 11.36c-.02-2.5 2.04-3.7 2.13-3.76-1.16-1.7-2.97-1.94-3.61-1.96-1.54-.16-3 .9-3.78.9-.78 0-1.98-.88-3.26-.86-1.68.02-3.23.97-4.1 2.47-1.74 3.02-.45 7.5 1.25 9.95.83 1.2 1.82 2.55 3.12 2.5 1.25-.05 1.72-.81 3.23-.81 1.51 0 1.93.81 3.25.78 1.34-.02 2.2-1.22 3.02-2.43.95-1.4 1.34-2.75 1.36-2.82-.03-.01-2.61-1-2.61-3.96zM12.6 4.05c.7-.85 1.16-2.02 1.04-3.18-1 .04-2.21.66-2.93 1.5-.65.74-1.21 1.93-1.06 3.07 1.11.09 2.25-.56 2.95-1.39z`})],-1),l(`span`,{class:`text-[14px] font-medium tracking-tight`},`Pay`,-1)]],8,_),l(`button`,{type:`button`,class:`inline-flex items-center justify-center gap-2 rounded-sm bg-ink h-12 px-5 text-paper transition-colors duration-base hover:bg-brand disabled:opacity-50 disabled:cursor-not-allowed`,disabled:b.busy,"aria-label":r(C)(`checkout.express.googlePay.aria`),onClick:t[1]||=e=>j(`google`)},[...t[3]||=[a(`Pay`,2)]],8,v)])),k.value?(n(),u(`p`,y,o(k.value),1)):s(``,!0)]))}};export{b as t}; \ No newline at end of file +import{A as e,B as t,C as n,G as r,S as i,f as a,ft as o,l as s,o as c,s as l,u,ut as d,x as f}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{t as p}from"./preload-helper-ca-nBW7U.js";import{t as m}from"./i18n-XDSWEyNo.js";var h={class:`flex flex-col gap-3`},g={key:1,class:`grid gap-3 sm:grid-cols-2`},_=[`disabled`,`aria-label`],v=[`disabled`,`aria-label`],y={key:2,class:`text-[13px] text-danger`},b={__name:`ExpressCheckoutMount`,props:{intent:{type:Object,default:null},returnUrl:{type:String,required:!0},busy:{type:Boolean,default:!1}},emits:[`pay`,`error`],setup(b,{expose:x,emit:S}){let{t:C}=m(),w=b,T=S,E=t(null),D=t(null),O=t(!1),k=t(``),A=c(()=>/^pi_stub_express_/.test(w.intent?.clientSecret||``));function j(e){w.busy||w.intent||T(`pay`,{wallet:e})}async function M(){if(!(!w.intent||typeof window>`u`)){if(A.value){O.value=!0;return}try{let e=[`@stripe`,`stripe-js`].join(`/`),{loadStripe:t}=await p(()=>import(e),[]),n=await t(w.intent.publishableKey);if(!n)throw Error(`Stripe.js failed to initialise.`);E.value=n;let r=n.elements({clientSecret:w.intent.clientSecret,appearance:{theme:`flat`,variables:{colorPrimary:`#006548`,colorBackground:`#ffffff`,colorText:`#0f3825`,fontFamily:`"DM Sans", ui-sans-serif, system-ui, sans-serif`,borderRadius:`10px`,spacingUnit:`4px`}}});D.value=r;let i=r.create(`expressCheckout`,{buttonType:{applePay:`buy`,googlePay:`buy`},buttonTheme:{applePay:`black`,googlePay:`black`},buttonHeight:48});i.mount(`#express-checkout-element`),i.on(`ready`,()=>{O.value=!0}),i.on(`loaderror`,e=>{k.value=e?.error?.message||`Failed to load wallet buttons.`}),i.on(`confirm`,async()=>{let e=await n.confirmPayment({elements:r,clientSecret:w.intent.clientSecret,confirmParams:{return_url:w.returnUrl}});e?.error&&T(`error`,e.error)})}catch(e){k.value=e?.message||String(e)}}}async function N(){return w.intent?A.value?(await new Promise(e=>setTimeout(e,600)),{paymentIntent:{id:(w.intent.clientSecret||``).split(`_secret_`)[0]||`pi_stub`,status:`succeeded`}}):{error:{message:`Express confirm is driven by Stripe.`}}:{error:{message:`No intent.`}}}return x({confirm:N,ready:O}),i(()=>{w.intent&&M()}),e(()=>w.intent?.clientSecret,e=>{e&&M()}),f(()=>{E.value=null,D.value=null}),(e,t)=>(n(),u(`div`,h,[b.intent&&!A.value?(n(),u(`div`,{key:0,id:`express-checkout-element`,class:d([`min-h-[52px]`,{"opacity-60":!O.value}]),"aria-live":`polite`},null,2)):(n(),u(`div`,g,[l(`button`,{type:`button`,class:`inline-flex items-center justify-center gap-2 rounded-sm bg-ink h-12 px-5 text-paper transition-colors duration-base hover:bg-brand disabled:opacity-50 disabled:cursor-not-allowed`,disabled:b.busy,"aria-label":r(C)(`checkout.express.applePay.aria`),onClick:t[0]||=e=>j(`apple`)},[...t[2]||=[l(`svg`,{width:`18`,height:`22`,viewBox:`0 0 18 22`,fill:`currentColor`,"aria-hidden":`true`},[l(`path`,{d:`M14.94 11.36c-.02-2.5 2.04-3.7 2.13-3.76-1.16-1.7-2.97-1.94-3.61-1.96-1.54-.16-3 .9-3.78.9-.78 0-1.98-.88-3.26-.86-1.68.02-3.23.97-4.1 2.47-1.74 3.02-.45 7.5 1.25 9.95.83 1.2 1.82 2.55 3.12 2.5 1.25-.05 1.72-.81 3.23-.81 1.51 0 1.93.81 3.25.78 1.34-.02 2.2-1.22 3.02-2.43.95-1.4 1.34-2.75 1.36-2.82-.03-.01-2.61-1-2.61-3.96zM12.6 4.05c.7-.85 1.16-2.02 1.04-3.18-1 .04-2.21.66-2.93 1.5-.65.74-1.21 1.93-1.06 3.07 1.11.09 2.25-.56 2.95-1.39z`})],-1),l(`span`,{class:`text-[14px] font-medium tracking-tight`},`Pay`,-1)]],8,_),l(`button`,{type:`button`,class:`inline-flex items-center justify-center gap-2 rounded-sm bg-ink h-12 px-5 text-paper transition-colors duration-base hover:bg-brand disabled:opacity-50 disabled:cursor-not-allowed`,disabled:b.busy,"aria-label":r(C)(`checkout.express.googlePay.aria`),onClick:t[1]||=e=>j(`google`)},[...t[3]||=[a(`Pay`,2)]],8,v)])),k.value?(n(),u(`p`,y,o(k.value),1)):s(``,!0)]))}};export{b as t}; \ No newline at end of file diff --git a/dist/assets/Footer-Dr1HAyhH.js b/dist/assets/Footer-CjMyQsRh.js similarity index 97% rename from dist/assets/Footer-Dr1HAyhH.js rename to dist/assets/Footer-CjMyQsRh.js index 85bc7dc..972978c 100644 --- a/dist/assets/Footer-Dr1HAyhH.js +++ b/dist/assets/Footer-CjMyQsRh.js @@ -1 +1 @@ -import{C as e,G as t,T as n,ft as r,m as i,o as a,r as o,s,u as c,ut as l}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{t as u}from"./Logo-K2VN1F6l.js";import{t as d}from"./i18n-yr4x-3Jp.js";var f={class:`mx-auto w-full max-w-6xl px-6 py-12 sm:px-8 sm:py-14 md:px-12 md:py-16 lg:px-16`},p={class:`grid gap-10 md:grid-cols-[1.4fr_1fr_1fr] md:gap-12`},m={class:`flex flex-col gap-4 max-w-sm`},h=[`aria-label`],g={class:`flex flex-col gap-2`},_=[`href`],v=[`aria-label`],y={class:`flex flex-col gap-2`},b=[`href`],x={__name:`Footer`,props:{variant:{type:String,default:`cream`,validator:e=>[`cream`,`brand`,`paper`].includes(e)}},setup(x){let S=x,{t:C}=d(),w=a(()=>S.variant===`brand`?{surface:`bg-brand text-cream`,topRule:`border-cream-line`,bottomRule:`border-cream-line/40`,muted:`text-cream/80`,logo:`text-cream`,link:`hover:text-accent`}:S.variant===`paper`?{surface:`bg-paper text-brand`,topRule:`border-line`,bottomRule:`border-line/60`,muted:`text-muted`,logo:`text-brand`,link:`hover:text-brand-hover`}:{surface:`bg-cream text-brand`,topRule:`border-line`,bottomRule:`border-line/60`,muted:`text-muted`,logo:`text-brand`,link:`hover:text-brand-hover`}),T=[{key:`footer.legal.impressum`,href:`/impressum`},{key:`footer.legal.datenschutz`,href:`/datenschutz`}],E=[{key:`footer.explore.shop`,href:`/shop`},{key:`footer.explore.pflege`,href:`/pflege`},{key:`footer.explore.haushalt`,href:`/haushalt`},{key:`footer.explore.bundles`,href:`/#bundles`},{key:`footer.explore.about`,href:`/#about`}],D=new Date().getFullYear();return(a,d)=>(e(),c(`footer`,{class:l([`border-t`,w.value.surface,w.value.topRule])},[s(`div`,f,[s(`div`,p,[s(`div`,m,[i(u,{class:l([`w-20 md:w-24 h-auto`,w.value.logo])},null,8,[`class`]),s(`p`,{class:l([`text-sm leading-relaxed`,w.value.muted])},r(t(C)(`footer.tagline`)),3)]),s(`nav`,{"aria-label":t(C)(`footer.explore.heading`),class:`flex flex-col gap-3`},[s(`p`,{class:l([`eyebrow`,w.value.muted])},r(t(C)(`footer.explore.heading`)),3),s(`ul`,g,[(e(),c(o,null,n(E,e=>s(`li`,{key:e.href},[s(`a`,{href:e.href,class:l([`text-sm underline-offset-4 decoration-1 hover:underline`,w.value.link])},r(t(C)(e.key)),11,_)])),64))])],8,h),s(`nav`,{"aria-label":t(C)(`footer.legal.heading`),class:`flex flex-col gap-3`},[s(`p`,{class:l([`eyebrow`,w.value.muted])},r(t(C)(`footer.legal.heading`)),3),s(`ul`,y,[(e(),c(o,null,n(T,e=>s(`li`,{key:e.href},[s(`a`,{href:e.href,class:l([`text-sm underline-offset-4 decoration-1 hover:underline`,w.value.link])},r(t(C)(e.key)),11,b)])),64))])],8,v)]),s(`div`,{class:l([`mt-12 pt-6 border-t flex flex-col sm:flex-row sm:items-center sm:justify-between gap-3`,w.value.bottomRule])},[s(`p`,{class:l([`text-xs`,w.value.muted])},` © `+r(t(D))+` `+r(t(C)(`footer.copyright`)),3),s(`p`,{class:l([`text-xs`,w.value.muted])},r(t(C)(`footer.madeIn`)),3)],2)])],2))}};export{x as t}; \ No newline at end of file +import{C as e,G as t,T as n,ft as r,m as i,o as a,r as o,s,u as c,ut as l}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{t as u}from"./Logo-K2VN1F6l.js";import{t as d}from"./i18n-XDSWEyNo.js";var f={class:`mx-auto w-full max-w-6xl px-6 py-12 sm:px-8 sm:py-14 md:px-12 md:py-16 lg:px-16`},p={class:`grid gap-10 md:grid-cols-[1.4fr_1fr_1fr] md:gap-12`},m={class:`flex flex-col gap-4 max-w-sm`},h=[`aria-label`],g={class:`flex flex-col gap-2`},_=[`href`],v=[`aria-label`],y={class:`flex flex-col gap-2`},b=[`href`],x={__name:`Footer`,props:{variant:{type:String,default:`cream`,validator:e=>[`cream`,`brand`,`paper`].includes(e)}},setup(x){let S=x,{t:C}=d(),w=a(()=>S.variant===`brand`?{surface:`bg-brand text-cream`,topRule:`border-cream-line`,bottomRule:`border-cream-line/40`,muted:`text-cream/80`,logo:`text-cream`,link:`hover:text-accent`}:S.variant===`paper`?{surface:`bg-paper text-brand`,topRule:`border-line`,bottomRule:`border-line/60`,muted:`text-muted`,logo:`text-brand`,link:`hover:text-brand-hover`}:{surface:`bg-cream text-brand`,topRule:`border-line`,bottomRule:`border-line/60`,muted:`text-muted`,logo:`text-brand`,link:`hover:text-brand-hover`}),T=[{key:`footer.legal.impressum`,href:`/impressum`},{key:`footer.legal.datenschutz`,href:`/datenschutz`}],E=[{key:`footer.explore.shop`,href:`/shop`},{key:`footer.explore.pflege`,href:`/pflege`},{key:`footer.explore.haushalt`,href:`/haushalt`},{key:`footer.explore.bundles`,href:`/#bundles`},{key:`footer.explore.about`,href:`/#about`}],D=new Date().getFullYear();return(a,d)=>(e(),c(`footer`,{class:l([`border-t`,w.value.surface,w.value.topRule])},[s(`div`,f,[s(`div`,p,[s(`div`,m,[i(u,{class:l([`w-20 md:w-24 h-auto`,w.value.logo])},null,8,[`class`]),s(`p`,{class:l([`text-sm leading-relaxed`,w.value.muted])},r(t(C)(`footer.tagline`)),3)]),s(`nav`,{"aria-label":t(C)(`footer.explore.heading`),class:`flex flex-col gap-3`},[s(`p`,{class:l([`eyebrow`,w.value.muted])},r(t(C)(`footer.explore.heading`)),3),s(`ul`,g,[(e(),c(o,null,n(E,e=>s(`li`,{key:e.href},[s(`a`,{href:e.href,class:l([`text-sm underline-offset-4 decoration-1 hover:underline`,w.value.link])},r(t(C)(e.key)),11,_)])),64))])],8,h),s(`nav`,{"aria-label":t(C)(`footer.legal.heading`),class:`flex flex-col gap-3`},[s(`p`,{class:l([`eyebrow`,w.value.muted])},r(t(C)(`footer.legal.heading`)),3),s(`ul`,y,[(e(),c(o,null,n(T,e=>s(`li`,{key:e.href},[s(`a`,{href:e.href,class:l([`text-sm underline-offset-4 decoration-1 hover:underline`,w.value.link])},r(t(C)(e.key)),11,b)])),64))])],8,v)]),s(`div`,{class:l([`mt-12 pt-6 border-t flex flex-col sm:flex-row sm:items-center sm:justify-between gap-3`,w.value.bottomRule])},[s(`p`,{class:l([`text-xs`,w.value.muted])},` © `+r(t(D))+` `+r(t(C)(`footer.copyright`)),3),s(`p`,{class:l([`text-xs`,w.value.muted])},r(t(C)(`footer.madeIn`)),3)],2)])],2))}};export{x as t}; \ No newline at end of file diff --git a/dist/assets/FooterSection-lHZQMLYO.js b/dist/assets/FooterSection-Wolf4Q1E.js similarity index 95% rename from dist/assets/FooterSection-lHZQMLYO.js rename to dist/assets/FooterSection-Wolf4Q1E.js index 0083b1b..def1e9f 100644 --- a/dist/assets/FooterSection-lHZQMLYO.js +++ b/dist/assets/FooterSection-Wolf4Q1E.js @@ -1,3 +1,3 @@ -import{C as e,G as t,c as n,ft as r,j as i,m as a,s as o}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{t as s}from"./i18n-yr4x-3Jp.js";import{t as c}from"./Footer-Dr1HAyhH.js";import{t as l}from"./SectionShell-CyPmh1h8.js";var u={class:`eyebrow mb-5`},d={class:`rounded-md overflow-hidden border border-line`},f={class:`eyebrow mb-5`},p={class:`rounded-md overflow-hidden border border-line`},m={class:`eyebrow mb-5`},h={class:`rounded-md overflow-hidden border border-line`},g={class:`eyebrow mb-5`},_={__name:`FooterSection`,setup(_){let{t:v}=s();return(s,_)=>(e(),n(l,{eyebrow:t(v)(`ds.eyebrow.components`),title:t(v)(`ds.footer.title`),description:t(v)(`ds.footer.description`)},{default:i(()=>[o(`section`,null,[o(`h2`,u,r(t(v)(`ds.footer.tone.cream`)),1),o(`div`,d,[a(c,{variant:`cream`})])]),o(`section`,null,[o(`h2`,f,r(t(v)(`ds.footer.tone.brand`)),1),o(`div`,p,[a(c,{variant:`brand`})])]),o(`section`,null,[o(`h2`,m,r(t(v)(`ds.footer.tone.paper`)),1),o(`div`,h,[a(c,{variant:`paper`})])]),o(`section`,null,[o(`h2`,g,r(t(v)(`ds.heading.usage`)),1),_[0]||=o(`div`,{class:`rounded-md border border-line bg-paper p-6 font-mono text-[12px] text-ink`},[o(`pre`,{class:`whitespace-pre-wrap`},`