Files
kaiser-natron/dist/assets/ShippingStep-Ck-wwF6-.js
Dorian 0c9a0ccd95 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.<id>.<field> 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) <noreply@anthropic.com>
2026-05-04 11:02:46 +01:00

1 line
6.3 KiB
JavaScript

import{B as e,C as t,D as n,G as r,T 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}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{s as m}from"./runtime-dom.esm-bundler-CXLmyuFK.js";import{o 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"./Button-D1Rp2Xe1.js";import{t as y}from"./checkout-CguIVnMk.js";import{t as b}from"./Input-B1vjqdSR.js";var x={class:`flex flex-col gap-5 rounded-md border border-line bg-paper p-6 md:p-8`},S={class:`grid gap-5 md:grid-cols-2`},C={class:`md:col-span-2`},w={class:`flex flex-col gap-2`},T={class:`text-[11px] font-bold uppercase tracking-eyebrow text-muted`},E={class:`relative`},D=[`value`],O=[`value`],k={class:`flex flex-col gap-5 rounded-md border border-line bg-paper p-6 md:p-8`},A={class:`inline-flex items-center gap-3 cursor-pointer select-none`},j=[`checked`],M={class:`text-sm text-ink`},N={key:0,class:`grid gap-5 md:grid-cols-2`},P={class:`md:col-span-2`},F={class:`flex flex-col gap-2`},I={class:`text-[11px] font-bold uppercase tracking-eyebrow text-muted`},L={class:`relative`},R=[`value`],z=[`value`],B={key:0,class:`text-sm text-danger`,role:`alert`,"aria-live":`polite`},V={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={__name:`ShippingStep`,setup(W){let{t:G}=_(),K=y(),q=h(),J=e(``),Y=[{code:`AT`,label:`Österreich`},{code:`DE`,label:`Deutschland`},{code:`CH`,label:`Schweiz`},{code:`IT`,label:`Italien`},{code:`FR`,label:`Frankreich`}],X=l(()=>!K.shippingComplete);function Z(){if(J.value=``,X.value){J.value=G(`checkout.error.addressIncomplete`);return}K.persist(),q.push(`/checkout/payment`)}return(e,l)=>{let h=n(`RouterLink`);return t(),p(d,null,[f(`form`,{class:`flex flex-col gap-8`,novalidate:``,onSubmit:m(Z,[`prevent`])},[f(`section`,x,[f(`div`,S,[c(b,{"model-value":r(K).shippingAddress.name,label:r(G)(`checkout.field.name`),required:``,"onUpdate:modelValue":l[0]||=e=>r(K).updateShipping({name:e})},null,8,[`model-value`,`label`]),c(b,{"model-value":r(K).shippingAddress.company,label:r(G)(`checkout.field.company`),"onUpdate:modelValue":l[1]||=e=>r(K).updateShipping({company:e})},null,8,[`model-value`,`label`]),f(`div`,C,[c(b,{"model-value":r(K).shippingAddress.street,label:r(G)(`checkout.field.street`),required:``,"onUpdate:modelValue":l[2]||=e=>r(K).updateShipping({street:e})},null,8,[`model-value`,`label`])]),c(b,{"model-value":r(K).shippingAddress.postalCode,label:r(G)(`checkout.field.postal`),required:``,"onUpdate:modelValue":l[3]||=e=>r(K).updateShipping({postalCode:e})},null,8,[`model-value`,`label`]),c(b,{"model-value":r(K).shippingAddress.city,label:r(G)(`checkout.field.city`),required:``,"onUpdate:modelValue":l[4]||=e=>r(K).updateShipping({city:e})},null,8,[`model-value`,`label`]),f(`div`,w,[f(`label`,T,[u(a(r(G)(`checkout.field.country`)),1),l[15]||=f(`span`,{class:`text-danger`},` *`,-1)]),f(`div`,E,[f(`select`,{value:r(K).shippingAddress.country,required:``,class:`appearance-none w-full rounded-sm border border-line bg-paper pl-4 pr-10 py-3 text-[15px] text-ink transition-colors duration-base focus:outline-none focus:border-brand`,onChange:l[5]||=e=>r(K).updateShipping({country:e.target.value})},[(t(),p(d,null,i(Y,e=>f(`option`,{key:e.code,value:e.code},a(e.label),9,O)),64))],40,D),c(g,{name:`chevron-down`,size:18,"stroke-width":2,class:`absolute right-4 top-1/2 -translate-y-1/2 text-muted pointer-events-none`})])]),c(b,{"model-value":r(K).shippingAddress.phone,label:r(G)(`checkout.field.phone`),type:`tel`,hint:r(G)(`checkout.hint.phone`),"onUpdate:modelValue":l[6]||=e=>r(K).updateShipping({phone:e})},null,8,[`model-value`,`label`,`hint`])])]),f(`section`,k,[f(`label`,A,[f(`input`,{checked:r(K).billingSame,type:`checkbox`,class:`w-5 h-5 rounded-xs border border-line accent-brand`,onChange:l[7]||=e=>r(K).update({billingSame:e.target.checked})},null,40,j),f(`span`,M,a(r(G)(`checkout.field.billingSame`)),1)]),r(K).billingSame?s(``,!0):(t(),p(`div`,N,[c(b,{"model-value":r(K).billingAddress.name,label:r(G)(`checkout.field.name`),required:``,"onUpdate:modelValue":l[8]||=e=>r(K).updateBilling({name:e})},null,8,[`model-value`,`label`]),c(b,{"model-value":r(K).billingAddress.company,label:r(G)(`checkout.field.company`),"onUpdate:modelValue":l[9]||=e=>r(K).updateBilling({company:e})},null,8,[`model-value`,`label`]),f(`div`,P,[c(b,{"model-value":r(K).billingAddress.street,label:r(G)(`checkout.field.street`),required:``,"onUpdate:modelValue":l[10]||=e=>r(K).updateBilling({street:e})},null,8,[`model-value`,`label`])]),c(b,{"model-value":r(K).billingAddress.postalCode,label:r(G)(`checkout.field.postal`),required:``,"onUpdate:modelValue":l[11]||=e=>r(K).updateBilling({postalCode:e})},null,8,[`model-value`,`label`]),c(b,{"model-value":r(K).billingAddress.city,label:r(G)(`checkout.field.city`),required:``,"onUpdate:modelValue":l[12]||=e=>r(K).updateBilling({city:e})},null,8,[`model-value`,`label`]),f(`div`,F,[f(`label`,I,[u(a(r(G)(`checkout.field.country`)),1),l[16]||=f(`span`,{class:`text-danger`},` *`,-1)]),f(`div`,L,[f(`select`,{value:r(K).billingAddress.country,required:``,class:`appearance-none w-full rounded-sm border border-line bg-paper pl-4 pr-10 py-3 text-[15px] text-ink transition-colors duration-base focus:outline-none focus:border-brand`,onChange:l[13]||=e=>r(K).updateBilling({country:e.target.value})},[(t(),p(d,null,i(Y,e=>f(`option`,{key:e.code,value:e.code},a(e.label),9,z)),64))],40,R),c(g,{name:`chevron-down`,size:18,"stroke-width":2,class:`absolute right-4 top-1/2 -translate-y-1/2 text-muted pointer-events-none`})])]),c(b,{"model-value":r(K).billingAddress.phone,label:r(G)(`checkout.field.phone`),type:`tel`,"onUpdate:modelValue":l[14]||=e=>r(K).updateBilling({phone:e})},null,8,[`model-value`,`label`])]))]),J.value?(t(),p(`p`,B,a(J.value),1)):s(``,!0)],32),f(`footer`,V,[f(`div`,H,[c(h,{to:`/checkout/account`,class:`flex-1 sm:flex-initial`},{default:o(()=>[c(v,{variant:`primary`,size:`lg`,block:``,type:`button`},{default:o(()=>[u(a(r(G)(`checkout.back`)),1)]),_:1})]),_:1}),f(`div`,U,[c(v,{variant:`accent`,size:`lg`,block:``,disabled:X.value,onClick:Z},{default:o(()=>[u(a(r(G)(`checkout.shipping.cta.continue`)),1)]),_:1},8,[`disabled`])])])])],64)}}};export{W as default};