Files
kaiser-natron/dist/assets/BundleCard-Biq7m7Mj.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.5 KiB
JavaScript

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-CtR1FGIT.js";import{t as _}from"./i18n-BkCuZ9ke.js";import{t as v}from"./Badge-CudT491x.js";import{t as y}from"./Button-DG-tA4DQ.js";var b=[`src`,`alt`],x={key:1,class:`pointer-events-none absolute bottom-0 right-0 z-[1] px-2 py-0.5 text-[10px] font-medium uppercase tracking-label text-white/55 drop-shadow-[0_1px_2px_rgba(0,0,0,0.45)]`},S=[`src`,`alt`],C={key:1,class:`pointer-events-none absolute bottom-0 right-0 z-[1] px-2 py-0.5 text-[10px] font-medium uppercase tracking-label text-white/55 drop-shadow-[0_1px_2px_rgba(0,0,0,0.45)]`},w={class:`flex flex-col gap-1.5`},T={key:0,class:`text-xs font-semibold tracking-label text-muted uppercase`},E={class:`flex flex-col gap-1.5`},D={key:0,class:`text-sm text-muted tracking-label`},O={class:`flex flex-col gap-0.5`},k={class:`text-xs tracking-label text-muted uppercase`},A={class:`font-display text-2xl font-normal text-brand leading-none`},j={key:0,class:`text-xs font-semibold tracking-label uppercase text-danger mt-1`},M=3,N={__name:`BundleCard`,props:{name:{type:String,required:!0},items:{type:Array,required:!0},price:{type:Number,required:!0},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)},aiEdited:{type:Boolean,default:!1}},emits:[`add`],setup(N){function P(e){return typeof e==`string`&&e.startsWith(`/`)&&!e.startsWith(`//`)}let F=N,{t:I}=_(),L={paper:{surface:`bg-paper`,media:`bg-cream`,border:`border-line`},cream:{surface:`bg-cream`,media:`bg-paper`,border:`border-line`}},R=l(()=>L[F.tone]);function z(e){return`${F.currency} ${e.toFixed(2).replace(`.`,`,`)}`}let B=l(()=>z(F.price)),V=l(()=>F.items.slice(0,M)),H=l(()=>Math.max(0,F.items.length-M));return(l,_)=>(e(),p(`article`,{class:m([`group flex overflow-hidden rounded-md border transition-all duration-base ease-out`,N.layout===`horizontal`?`flex-col md:flex-row`:`flex-col`,R.value.surface,R.value.border,`hover:-translate-y-1 hover:shadow-md hover:border-brand-soft`])},[N.href&&P(N.href)?(e(),i(t(h),{key:0,to:N.href,class:m([`relative block overflow-hidden`,N.layout===`horizontal`?`aspect-[4/3] md:aspect-auto md:w-[38%] md:shrink-0 md:min-h-[300px]`:`aspect-[4/3]`,R.value.media])},{default:o(()=>[N.badge?(e(),i(v,{key:0,variant:N.badgeVariant,class:`absolute top-4 left-4 z-[1]`},{default:o(()=>[u(a(N.badge),1)]),_:1},8,[`variant`])):s(``,!0),f(`img`,{src:N.image,alt:N.imageAlt||N.name,loading:`lazy`,decoding:`async`,class:m([`absolute inset-0 w-full h-full transition-transform duration-slow ease-out group-hover:scale-105`,N.imageFit===`cover`?`object-cover`:`object-contain `+(N.layout===`horizontal`?`p-6 md:p-5`:`p-8`)])},null,10,b),N.aiEdited?(e(),p(`span`,x,`AI Edited`)):s(``,!0)]),_:1},8,[`to`,`class`])):(e(),i(n(N.href?`a`:`div`),{key:1,href:N.href||null,class:m([`relative block overflow-hidden`,N.layout===`horizontal`?`aspect-[4/3] md:aspect-auto md:w-[38%] md:shrink-0 md:min-h-[300px]`:`aspect-[4/3]`,R.value.media])},{default:o(()=>[N.badge?(e(),i(v,{key:0,variant:N.badgeVariant,class:`absolute top-4 left-4 z-[1]`},{default:o(()=>[u(a(N.badge),1)]),_:1},8,[`variant`])):s(``,!0),f(`img`,{src:N.image,alt:N.imageAlt||N.name,loading:`lazy`,decoding:`async`,class:m([`absolute inset-0 w-full h-full transition-transform duration-slow ease-out group-hover:scale-105`,N.imageFit===`cover`?`object-cover`:`object-contain `+(N.layout===`horizontal`?`p-6 md:p-5`:`p-8`)])},null,10,S),N.aiEdited?(e(),p(`span`,C,`AI Edited`)):s(``,!0)]),_:1},8,[`href`,`class`])),f(`div`,{class:m([`flex flex-col gap-4 p-6`,N.layout===`horizontal`?`md:p-6 md:flex-1`:``])},[f(`div`,w,[N.usage?(e(),p(`span`,T,a(N.usage),1)):s(``,!0),N.href&&P(N.href)?(e(),i(t(h),{key:1,to:N.href,class:`font-display text-xl font-normal leading-tight text-ink hover:text-brand transition-colors duration-base`},{default:o(()=>[u(a(N.name),1)]),_:1},8,[`to`])):(e(),i(n(N.href?`a`:`h3`),{key:2,href:N.href||null,class:m([`font-display text-xl font-normal leading-tight text-ink`,N.href?`hover:text-brand transition-colors duration-base`:``])},{default:o(()=>[u(a(N.name),1)]),_:1},8,[`href`,`class`]))]),f(`ul`,E,[(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`,D,`+ `+a(H.value)+` `+a(t(I)(`bundles.card.moreItems`)),1)):s(``,!0)]),f(`div`,{class:m([`mt-auto pt-4 border-t border-line flex gap-3`,N.layout===`horizontal`?`flex-col sm:flex-row sm:items-end sm:justify-between`:`flex-col`])},[f(`div`,O,[f(`span`,k,a(t(I)(`bundles.card.priceLabel`)),1),f(`span`,A,a(B.value),1),N.inStock?s(``,!0):(e(),p(`span`,j,a(t(I)(`ds.product.outOfStock`)),1))]),c(y,{variant:`accent`,size:`md`,block:N.layout===`vertical`,disabled:!N.inStock,onClick:_[0]||=e=>l.$emit(`add`)},{before:o(()=>[c(g,{name:`plus`,size:16})]),default:o(()=>[u(` `+a(t(I)(`ds.buttons.addToCart`)),1)]),_:1},8,[`block`,`disabled`])],2)],2)],2))}};export{N as t};