Files
kaiser-natron/dist/assets/ShopPage-Bm-iPip3.js
Dorian 689649dbe9 feat: wire up category-page footer links + remove membership entirely
Category pages (§21): link /kueche, /haushalt, /pflege from the footer
(/kueche was orphaned); align footer labels + page eyebrows to the shop's
section names (Küche/Reinigung/Pflege · Kitchen/Clean/Care). /waesche
deferred pending brand copy; route slugs unchanged.

Membership (§22, U2): no programme exists, so remove every trace. Drop
memberPrice from bundle data + BundleCard/Bundles/BundlePage/HomePage, the
joinCta prop/emit/buttons, and all member copy. Bundles are now single-price
(retail only); sub + benefits rewritten as bundle value. priceLabel → Preis/
Price. DS demos updated to match.

Docs: STYLE-CHANGES.md §21/§22; new plain-language STYLE-CHANGES-simple.md.
dist/ rebuilt for the Portainer/gitea deploy.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-23 13:49:33 +01:00

1 line
5.3 KiB
JavaScript

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 as ee,m as l,o as u,p as d,r as f,s as p,u as m,x as h}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{o as g}from"./vue-router-Cyqru1db.js";import{t as _}from"./i18n-BkCuZ9ke.js";import{i as v,r as y,t as te}from"./products-CfIXFr2X.js";import{c as b,d as ne,f as re,p as x,u as S}from"./api-DeBxQCQq.js";import{t as C}from"./Navbar-DiOwyXlV.js";import{t as w}from"./Button-DG-tA4DQ.js";import{t as T}from"./CartDrawer-BaYH0KvP.js";import{t as E}from"./Footer-D-2MkC07.js";import{t as D}from"./ProductCard-BjGgbp3S.js";import{t as O}from"./WaveDivider-Bj5UZ0Z6.js";import{t as k}from"./Hero-CwIf29AA.js";var A={class:`flex flex-col bg-brand text-cream md:min-h-[calc(50svh-var(--nav-h))] md:justify-center`},j={class:`mx-auto w-full max-w-6xl px-6 py-12 sm:px-8 sm:py-16 md:px-12 md:py-12 lg:px-16 lg:py-16`},M={class:`flex flex-col items-center text-center gap-4 max-w-3xl mx-auto`},N={class:`font-display font-normal leading-[1.05] tracking-tight text-cream text-headline-lg`},P={class:`italic font-light text-cream`},F={class:`text-base md:text-lg leading-relaxed text-cream/80 max-w-2xl`},I=[`id`],L={class:`italic font-light`},R={class:`-mt-px bg-cream text-ink`},z={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`},B={class:`font-display font-normal leading-[1.05] tracking-tight text-ink text-headline-md mb-10 md:mb-12`},ie={key:0,class:`grid gap-5 md:gap-7 grid-cols-1 sm:grid-cols-2 md:grid-cols-3`},V={__name:`ShopPage`,setup(V){let{t:H}=_(),U=x(),W=g(),G=e(!1);function K(){G.value=!1,W.push(`/checkout`)}let q=[{key:`nav.shop`,href:`/shop`},{key:`nav.bundles`,href:`/#bundles`},{key:`nav.revitalization`,href:`/#revitalize`},{key:`nav.about`,href:`/#about`},{key:`nav.kaiserhacks`,href:`/kaiserhacks`}],J=[],Y=u(()=>v(y)),ae={cook:`kitchen`,clean:`clean`,wash:`wash`,care:`care`},oe={cook:`kaiser-natron-pulver-250-g-grosspackung`,clean:`kaiser-natron-allzweck-spray-500-ml`,wash:`kaiser-natron-daunenwasch-250-ml`,care:`kaiser-natron-bad-500-g`},se=u(()=>te.map(e=>{let t=y.find(t=>t.id===oe[e])||Y.value[e][0];return{id:e,cat:ae[e],feature:H(`shop.feature.${e}`),headline:H(`shop.section.${e}.headline`),headlineEm:H(`shop.section.${e}.headline.em`),sub:H(`shop.section.${e}.sub`),productsTitle:H(`shop.section.${e}.products.title`),products:Y.value[e],heroImage:t.image,heroAlt:t.title,heroId:t.id,heroHref:t.href}}));async function ce(e){await b(e.id,1),G.value=!0}async function le(e){e&&(await b(e,1),G.value=!0)}async function X(e){await b(e.id,1),G.value=!0}async function ue({productId:e,quantity:t}){await re(e,t)}async function de(e){await ne(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(S(),$(),typeof ResizeObserver<`u`&&Z.value){let e=Z.value.$el||Z.value;Q=new ResizeObserver($),Q.observe(e)}window.addEventListener(`resize`,$)}),h(()=>{Q&&Q.disconnect(),typeof window<`u`&&window.removeEventListener(`resize`,$)}),(e,i)=>{let u=n(`RouterLink`);return t(),m(f,null,[l(C,{ref_key:`navRef`,ref:Z,variant:`brand`,layout:`standard`,items:q,"secondary-items":J,"cart-count":r(U).count,products:r(y),onCart:i[0]||=e=>G.value=!0,onSearch:X},null,8,[`cart-count`,`products`]),p(`div`,A,[p(`div`,j,[p(`div`,M,[p(`h1`,N,[d(s(r(H)(`shop.headline`))+` `,1),p(`em`,P,s(r(H)(`shop.headline.em`)),1)]),p(`p`,F,s(r(H)(`shop.sub`)),1)])])]),l(O,{from:`brand`,to:`cream`}),i[2]||=p(`div`,{"aria-hidden":`true`,class:`-mt-px h-6 md:h-10 bg-cream`},null,-1),(t(!0),m(f,null,a(se.value,e=>(t(),m(f,{key:e.id},[l(O,{from:`cream`,to:e.cat},null,8,[`to`]),p(`div`,{id:e.id,class:`-mt-px scroll-mt-[calc(var(--nav-h)+1rem)]`},[l(k,{class:`w-full`,variant:`split`,tone:e.cat,eyebrow:e.feature,image:e.heroImage,"image-alt":e.heroAlt},{headline:c(()=>[d(s(e.headline)+` `,1),p(`em`,L,s(e.headlineEm),1)]),subheadline:c(()=>[d(s(e.sub),1)]),actions:c(()=>[l(w,{variant:`accent`,size:`lg`,onClick:t=>le(e.heroId)},{default:c(()=>[d(s(r(H)(`ds.buttons.addToCart`)),1)]),_:1},8,[`onClick`]),l(u,{to:e.heroHref,class:`inline-flex items-center justify-center rounded-pill border border-white/90 px-[34px] py-[17px] text-[14px] font-semibold uppercase tracking-label text-white transition-colors duration-base hover:bg-white/10`},{default:c(()=>[d(s(r(H)(`ds.buttons.learnMore`)),1)]),_:1},8,[`to`])]),_:2},1032,[`tone`,`eyebrow`,`image`,`image-alt`])],8,I),l(O,{from:e.cat,to:`cream`},null,8,[`from`]),p(`section`,R,[p(`div`,z,[p(`h2`,B,s(e.productsTitle),1),e.products.length?(t(),m(`div`,ie,[(t(!0),m(f,null,a(e.products,e=>(t(),o(D,{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,"cta-variant":`accent`,onAdd:t=>ce(e)},null,8,[`title`,`size`,`price`,`image`,`image-alt`,`href`,`in-stock`,`onAdd`]))),128))])):ee(``,!0)])])],64))),128)),l(E),i[3]||=p(`div`,{"aria-hidden":`true`,class:`min-[1100px]:hidden`,style:{height:`calc(100px + env(safe-area-inset-bottom))`}},null,-1),l(T,{modelValue:G.value,"onUpdate:modelValue":i[1]||=e=>G.value=e,items:r(U).items,subtotal:r(U).subtotal,count:r(U).count,onUpdateQuantity:ue,onRemove:de,onCheckout:K},null,8,[`modelValue`,`items`,`subtotal`,`count`])],64)}}};export{V as default};