Bundle data extracted to src/api/bundles.js (single source of truth shared by HomePage's grid and the new BundlePage). Each card on the home grid now links to the bundle's detail route. BundleCard's `imageFit` default flipped to `cover` to match the new /bundles/background/* artwork — full-bleed lifestyle scenes instead of padded product line-ups. The `contain` mode stays available for future bundles whose art needs breathing room. BundlePage layout: split brand-green hero with the bundle artwork on the left, name + items list (linking to component product pages where matched) + pricing + qty + add-to-cart on the right. Mirrors ProductPage chrome (Navbar, dynamic back button, CartDrawer) so the detail-page experience reads as one piece across SKUs and bundles. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3 lines
1.3 KiB
JavaScript
3 lines
1.3 KiB
JavaScript
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`},`<Footer variant="cream" />
|
|
<Footer variant="brand" />
|
|
<Footer variant="paper" />`)],-1)])]),_:1},8,[`eyebrow`,`title`,`description`]))}};export{_ as default}; |