Files
kaiser-natron/dist/assets/i18n-BnJyMUMH.js
2026-04-22 08:50:25 +01:00

1 line
26 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{R as e,o as t}from"./runtime-core.esm-bundler-DgkFZzbt.js";var n={"nav.shop":`Shop`,"nav.applications":`Anwendungen`,"nav.about":`Über uns`,"nav.contact":`Kontakt`,"cart.open":`Warenkorb öffnen`,"cart.label":`Warenkorb`,"cart.subtotal":`Zwischensumme`,"cart.checkout":`Zur Kasse`,"cart.remove":`Entfernen`,"cart.qty.increase":`Menge erhöhen`,"cart.qty.decrease":`Menge verringern`,"cart.empty.title":`Dein Warenkorb ist leer`,"cart.empty.subtitle":`Leg Produkte aus dem Shop hinzu sie erscheinen direkt hier.`,"cart.added":`Zum Warenkorb hinzugefügt`,"menu.open":`Menü öffnen`,"menu.close":`Menü schließen`,"language.label":`Sprache`,"search.open":`Suche öffnen`,"search.label":`Produkte durchsuchen`,"search.placeholder":`Produkte suchen …`,"search.clear":`Löschen`,"search.results":`Suchergebnisse`,"search.noResults":`Keine Produkte gefunden`,"search.noResultsHint":`Probiere eine andere Schreibweise oder einen allgemeineren Begriff.`,"search.emptyHint":`Tippe, um Produkte zu finden z. B. „Natron Pulver" oder „Entkalker".`,"search.suggested":`Vorschläge`,"search.hint.navigate":`Navigieren`,"search.hint.select":`Auswählen`,"search.hint.close":`Schließen`,"ds.sidebar.brand":`Marke`,"ds.sidebar.tokens":`Tokens`,"ds.sidebar.components":`Komponenten`,"ds.sidebar.back":`← Zurück zur Website`,"ds.mobile.currentPage":`Aktuelle Seite`,"ds.mobile.selectPage":`Seite auswählen`,"ds.nav.logo":`Logo`,"ds.nav.colors":`Farben`,"ds.nav.typography":`Typografie`,"ds.nav.radii":`Radien`,"ds.nav.shadows":`Schatten`,"ds.nav.icons":`Icons`,"ds.nav.buttons":`Buttons`,"ds.nav.badges":`Badges`,"ds.nav.inputs":`Eingabefelder`,"ds.nav.cards":`Karten`,"ds.nav.products":`Produktkarten`,"ds.nav.hero":`Hero`,"ds.nav.navbar":`Navigation`,"ds.nav.search":`Suche`,"ds.nav.qtyStepper":`Mengenwähler`,"ds.nav.cartDrawer":`Warenkorb`,"ds.nav.language":`Sprachwahl`,"ds.search.title":`Suche`,"ds.search.description":`Volltextsuche über den Produktkatalog mit Bildvorschau. Mobil als Vollbild-Overlay, am Desktop als zentrierte Kommando-Palette. Tastaturbedienbar und standardmäßig in der primären Markenfarbe.`,"ds.search.label":`Produkte durchsuchen`,"ds.search.placeholder":`Produkte durchsuchen…`,"ds.search.noResults":`Keine Produkte gefunden.`,"ds.search.suggested":`Vorschläge`,"ds.search.results":`Ergebnisse`,"ds.search.open":`Suche öffnen`,"ds.search.picked":`Ausgewählt`,"ds.search.tryHint":`Tipp: probier „natron", „kalk", „wäsche" oder „bad".`,"ds.search.integrationHint":`Die Suche läuft über den im API-Layer (src/api/) exportierten Produktkatalog. Sobald das Backend steht, bleibt die Komponenten-Signatur unverändert.`,"ds.search.hint.navigate":`Navigieren`,"ds.search.hint.select":`Auswählen`,"ds.search.hint.close":`Schließen`,"ds.eyebrow.brand":`Marke`,"ds.eyebrow.tokens":`Tokens`,"ds.eyebrow.components":`Komponenten`,"ds.eyebrow.designSystem":`Design System`,"ds.heading.variants":`Varianten`,"ds.heading.sizes":`Größen`,"ds.heading.states":`Zustände`,"ds.heading.withIcons":`Mit Icons`,"ds.heading.onBrandSurface":`Auf Markenfläche`,"ds.heading.block":`Block`,"ds.heading.usage":`Verwendung`,"ds.heading.default":`Standard`,"ds.heading.tones":`Töne`,"ds.heading.interactive":`Interaktiv`,"ds.heading.withoutPadding":`Ohne Innenabstand`,"ds.heading.scale":`Skala`,"ds.heading.display":`Display`,"ds.heading.body":`Fließtext`,"ds.heading.nonUppercase":`Ohne Großbuchstaben`,"ds.heading.onDifferentSurfaces":`Auf verschiedenen Flächen`,"ds.heading.greenOnPaper":`Grün auf Papier`,"ds.heading.creamOnBrand":`Creme auf Markengrün`,"ds.logo.title":`Logo`,"ds.logo.description":"Ein einzelnes SVG, das die Farbe über CSS `color` erbt. Verwende das grüne Wortbild auf hellen Flächen und das cremefarbene auf dem Markengrün.","ds.logo.usageIntro":`Farbe über Utility-Klassen setzen:`,"ds.colors.title":`Farben`,"ds.colors.description":`Pinie-Grün auf Creme mit warmem Gelb als Akzent. Alle UI-Farben fließen aus diesen Tokens — niemals Werte in Komponenten hartkodieren.`,"ds.colors.group.brand":`Marke`,"ds.colors.group.accent":`Akzent`,"ds.colors.group.surface":`Fläche`,"ds.colors.group.ink":`Schrift`,"ds.colors.group.line":`Linie`,"ds.colors.group.semantic":`Semantisch`,"ds.typography.title":`Typografie`,"ds.typography.description":`Fraunces für Display — warm, organisch, mit optischen Größen. DM Sans für Fließtext und UI — klar und geometrisch.`,"ds.typography.serifDesc":`Serife mit optischer Skalierung. Für Hero-Bereiche, Section-Titel und Produktnamen.`,"ds.typography.sansDesc":`Klare geometrische Sans-Serif. Für Fließtext, UI, Navigation und Labels.`,"ds.typography.sample":`Der schnelle braune Fuchs`,"ds.radii.title":`Radien`,"ds.radii.description":`Von dezenten 6px an kleinen Elementen bis hin zu vollen Pillen auf Buttons. Passend zum weichen, organischen Gefühl der Referenzseite.`,"ds.shadows.title":`Schatten`,"ds.shadows.description":`Alle Schatten sind grünlich statt neutral schwarz getönt — sie wirken warm und sind Teil der Palette.`,"ds.shadows.sm.note":`Dezent — Nav beim Scrollen, ruhende Karten`,"ds.shadows.md.note":`Mittel — Hover des primären Buttons`,"ds.shadows.lg.note":`Groß — schwebende Karten, Overlays`,"ds.icons.title":`Icons`,"ds.icons.description":`Ein kuratiertes strich-basiertes Icon-Set im 24x24-Raster. Wird über die Icon-Komponente gerendert — erbt die Farbe von currentColor.`,"ds.icons.search":`Icons suchen…`,"ds.icons.copyHint":`Klick auf eine Kachel kopiert das Snippet.`,"ds.icons.copied":`Kopiert!`,"ds.icons.noMatch":`Keine Icons stimmen mit`,"ds.icons.sizeDefault":`20 (Standard)`,"ds.icons.addHint":`Neue Icons in %s hinzufügen. Nutze eine 24×24-viewBox, strichbasierte Pfade ohne Füllungen — die Komponente übernimmt die Farbe per %s. Gib %s für Screenreader an; weglassen bei dekorativen Icons.`,"ds.icons.group.commerce":`Commerce`,"ds.icons.group.navigation":`Navigation`,"ds.icons.group.actions":`Aktionen`,"ds.icons.group.contact":`Kontakt`,"ds.icons.group.feedback":`Feedback`,"ds.icons.group.devices":`Geräte`,"ds.buttons.title":`Buttons`,"ds.buttons.description":`Pillenförmig. Pinie-grüner Primary mit warmgelbem Label für die wichtigste Aktion, warmgelber Accent auf Markenflächen, plus Secondary-, Ghost- und Danger-Varianten.`,"ds.buttons.primary":`Primary`,"ds.buttons.accent":`Accent`,"ds.buttons.secondary":`Secondary`,"ds.buttons.ghost":`Ghost`,"ds.buttons.danger":`Danger`,"ds.buttons.small":`Klein`,"ds.buttons.medium":`Mittel`,"ds.buttons.large":`Groß`,"ds.buttons.disabled":`Deaktiviert`,"ds.buttons.loading":`Lädt`,"ds.buttons.addToCart":`In den Warenkorb`,"ds.buttons.learnMore":`Mehr erfahren`,"ds.buttons.save":`Merken`,"ds.buttons.confirm":`Bestätigen`,"ds.buttons.continueShopping":`Weiter einkaufen`,"ds.badges.title":`Badges`,"ds.badges.description":`Kleine Großbuchstaben-Labels für Metadaten, Status und Eyebrows über Überschriften.`,"ds.badges.neutral":`Neutral`,"ds.badges.brand":`Marke`,"ds.badges.accent":`Akzent`,"ds.badges.subtle":`Dezent`,"ds.badges.success":`Erfolg`,"ds.badges.warning":`Warnung`,"ds.badges.danger":`Fehler`,"ds.badges.newRelease":`Neu veröffentlicht`,"ds.badges.featured":`Empfohlen`,"ds.inputs.title":`Eingabefelder`,"ds.inputs.description":`Papier-Fläche mit dünnem grün getöntem Rahmen. Großbuchstaben-Labels. Der Fokus vertieft den Rahmen zu Markengrün.`,"ds.inputs.email":`E-Mail`,"ds.inputs.emailHint":`Wir teilen dies nie.`,"ds.inputs.password":`Passwort`,"ds.inputs.required":`Pflichtfeld`,"ds.inputs.requiredError":`Dieses Feld ist erforderlich`,"ds.inputs.disabled":`Deaktiviert`,"ds.inputs.disabledPlaceholder":`Hier geht nichts`,"ds.cards.title":`Karten`,"ds.cards.description":`Flächen zum Gruppieren von Inhalten. Drei Töne — Papier, Creme, Marke — und ein optionales interaktives Anheben beim Hover.`,"ds.cards.paper":`Papier`,"ds.cards.cream":`Creme`,"ds.cards.brand":`Marke`,"ds.cards.paperTitle":`Standardfläche`,"ds.cards.paperBody":`Die erste Wahl für die meisten Inhalte. Hoher Kontrast auf dem cremefarbenen Seitenhintergrund.`,"ds.cards.creamTitle":`Warme Fläche`,"ds.cards.creamBody":`Eine weichere Alternative für sekundäre Bereiche oder Callouts.`,"ds.cards.brandTitle":`Dunkle Fläche`,"ds.cards.brandBody":`Für Feature-Panels, CTAs und Momente, die auffallen wollen.`,"ds.cards.hoverMe":`Hover mich`,"ds.cards.hoverMeToo":`Mich auch`,"ds.cards.hoverBody":`Hebt sich beim Hover mit weichem grün getönten Schatten. Für klickbare Items im Raster.`,"ds.cards.hoverBodyAlt":`Gleiches Verhalten auf der warmen Fläche.`,"ds.cards.mediaTitle":`Media-Karte`,"ds.cards.mediaBody":`Wenn die Karte ein randloses Bild oder einen Header braucht, übergib`,"ds.product.title":`Produktkarte`,"ds.product.description":`Zusammengesetzt aus Karte, Badge, Button und Icon. Cutout-Bild auf einer Creme-Medienfläche, Titel mit Größe, Preis in der Markenfarbe und ein blockweiter „In den Warenkorb"-Primary.`,"ds.product.outOfStock":`Nicht verfügbar`,"ds.product.added":`Hinzugefügt`,"ds.hero.title":`Hero`,"ds.hero.description":`Ganzflächiger Bühnenbereich für die Startseite und Kategorie-Auftakte. Eyebrow, Display-Headline mit optionaler Kursiv-Hervorhebung, Unterzeile, Produkt-Cutout auf dekorativer Scheibe und ein Primary/Secondary-CTA-Paar. Responsiv von 390 bis 1280 px, drei Flächen­töne, zwei Layouts.`,"ds.hero.variant.label":`Layout`,"ds.hero.variant.split":`Split`,"ds.hero.variant.centered":`Zentriert`,"ds.hero.eyebrow":`Neu im Shop`,"ds.hero.headline.a":`Kaiser-Natron`,"ds.hero.headline.em":`für alles`,"ds.hero.headline.b":`was glänzen soll.`,"ds.hero.sub":`Reinigt, backt und neutralisiert Gerüche. Die 250-g-Großpackung für den Haushalt, der sich auf das Original verlässt.`,"ds.search.title":`Produktsuche`,"ds.search.description":`Suchknopf rechts in der Navbar (links der Sprachwahl) und links unten als Floating-Button auf dem Telefon. Klick öffnet ein Full-Screen-Overlay auf Mobilgeräten bzw. ein zentriertes Panel auf dem Desktop. Eingabefeld ist autofokussiert, Ergebnisliste aktualisiert sich beim Tippen, Pfeiltasten / Enter / Esc werden unterstützt.`,"ds.search.demo.label":`Demo öffnen`,"ds.search.demo.hint":`Probiere „Natron", „Pulver", „Entkalker" oder „Spray".`,"ds.navbar.title":`Navigation`,"ds.navbar.description":`Logo + Nav + Warenkorb, in drei Flächentönen. Auf Mobilgeräten behält die obere Leiste das Logo, Menü + Warenkorb wechseln in ein ergonomisches bodennahes rechtes Floating-Cluster. Das Menü öffnet ein vollflächiges markengrünes Overlay.`,"ds.navbar.tone":`Navigation-Ton`,"ds.navbar.tone.paper":`Papier`,"ds.navbar.tone.cream":`Creme`,"ds.navbar.tone.brand":`Marke`,"ds.navbar.layout":`Layout`,"ds.navbar.layout.standard":`Standard`,"ds.navbar.layout.floating":`Schwebend`,"ds.language.title":`Sprachwahl`,"ds.language.description":`Kompakte Pille zum Umschalten zwischen DE, AT und EN. Zwei Töne — Papier für helle Flächen, Marke für das Markengrün — plus ein schwebender Modus, der sich oben rechts an die Ecke heftet.`,"ds.language.paperNote":`Standardton für helle UI-Flächen wie Karten oder Toolbars.`,"ds.language.creamNote":`Stärkerer Rahmen, damit die Pille auf warmen Cremflächen Definition behält.`,"ds.language.brandNote":`Für Einsätze auf dem Markengrün — z. B. im mobilen Menü-Overlay.`,"ds.language.floating":`Schwebend`,"ds.language.floatingNote":"Mit dem Prop `floating` dockt die Pille rechts oben im Viewport an (24px Abstand). Genau so wird sie im Design-System oben rechts eingesetzt.","ds.qtyStepper.title":`Mengenwähler`,"ds.qtyStepper.description":"Kompaktes Plus/Minus-Steuerelement zur Auswahl einer Menge. Pillenförmig, passend zu Buttons und Input-Rahmen, erbt Ton und Radius aus den Tokens. Unterstützt `min`/`max`-Grenzen und einen deaktivierten Zustand.","ds.qtyStepper.minBoundary":`Untergrenze`,"ds.qtyStepper.maxBoundary":`Obergrenze`,"ds.cartDrawer.title":`Warenkorb-Panel`,"ds.cartDrawer.description":`Seitlich einfahrendes Panel auf Creme-Fläche. Zeigt die Positionen mit Bild, Größe, Mengen-Stepper und Zeilensumme; darunter Zwischensumme und ein breiter Zur-Kasse-Button. Auf Mobilgeräten nimmt das Panel die volle Breite ein, ab 440 px fixiert es rechts an. Scroll-Lock, ESC zum Schließen, Klick auf den Hintergrund schließt ebenfalls.`,"ds.cartDrawer.demoLabel":`Warenkorb befüllen & öffnen`,"ds.cartDrawer.demoHint":`Legt zwei Beispielartikel an und öffnet das Panel.`,"ds.cartDrawer.integrationTitle":`Backend-Integration`,"ds.cartDrawer.integrationBody":"Die Komponente kennt kein Backend direkt sie emittiert `update-quantity`, `remove` und `checkout`. Ihr Zustand kommt aus dem API-Layer in `src/api/cart.js`, der heute lokal arbeitet und später 1:1 auf die dokumentierten Endpunkte (siehe `docs/api/cart.md`) umgestellt wird, ohne dass oben etwas anzupassen ist."},r={"cart.open":`Einkaufstasche öffnen`,"cart.label":`Einkaufstasche`,"cart.empty.title":`Deine Einkaufstasche ist leer`,"cart.empty.subtitle":`Leg Produkte aus dem Shop dazu sie erscheinen gleich hier.`,"cart.added":`Zur Einkaufstasche dazugelegt`,"ds.buttons.addToCart":`In die Einkaufstasche`,"ds.buttons.continueShopping":`Weiter einkaufen gehen`,"ds.buttons.save":`Vormerken`,"ds.cartDrawer.title":`Einkaufstasche-Panel`,"ds.sidebar.back":`← Retour zur Seite`},i={"nav.shop":`Shop`,"nav.applications":`Uses`,"nav.about":`About`,"nav.contact":`Contact`,"cart.open":`Open cart`,"cart.label":`Cart`,"cart.subtotal":`Subtotal`,"cart.checkout":`Checkout`,"cart.remove":`Remove`,"cart.qty.increase":`Increase quantity`,"cart.qty.decrease":`Decrease quantity`,"cart.empty.title":`Your cart is empty`,"cart.empty.subtitle":`Add products from the shop — they will appear right here.`,"cart.added":`Added to cart`,"menu.open":`Open menu`,"menu.close":`Close menu`,"language.label":`Language`,"search.open":`Open search`,"search.label":`Search products`,"search.placeholder":`Search products…`,"search.clear":`Clear`,"search.results":`Search results`,"search.noResults":`No products found`,"search.noResultsHint":`Try a different spelling or a broader term.`,"search.emptyHint":`Type to find products — e.g. "Natron powder" or "descaler".`,"search.suggested":`Suggested`,"search.hint.navigate":`Navigate`,"search.hint.select":`Select`,"search.hint.close":`Close`,"ds.sidebar.brand":`Brand`,"ds.sidebar.tokens":`Tokens`,"ds.sidebar.components":`Components`,"ds.sidebar.back":`← Back to site`,"ds.mobile.currentPage":`Current page`,"ds.mobile.selectPage":`Select a page`,"ds.nav.logo":`Logo`,"ds.nav.colors":`Colors`,"ds.nav.typography":`Typography`,"ds.nav.radii":`Radii`,"ds.nav.shadows":`Shadows`,"ds.nav.icons":`Icons`,"ds.nav.buttons":`Buttons`,"ds.nav.badges":`Badges`,"ds.nav.inputs":`Inputs`,"ds.nav.cards":`Cards`,"ds.nav.products":`Product cards`,"ds.nav.hero":`Hero`,"ds.nav.navbar":`Navbar`,"ds.nav.search":`Search`,"ds.nav.qtyStepper":`Quantity stepper`,"ds.nav.cartDrawer":`Cart`,"ds.nav.language":`Language`,"ds.search.title":`Search`,"ds.search.description":`Full-text search across the product catalog with image previews. Full-screen overlay on mobile, centered command palette on desktop. Keyboard-navigable and brand-green by default.`,"ds.search.label":`Search products`,"ds.search.placeholder":`Search products…`,"ds.search.noResults":`No products found.`,"ds.search.suggested":`Suggestions`,"ds.search.results":`Results`,"ds.search.open":`Open search`,"ds.search.picked":`Picked`,"ds.search.tryHint":`Try: "natron", "limescale", "laundry", or "bath".`,"ds.search.integrationHint":`Search queries the catalog exported from the project API layer (src/api/). When the real backend lands, the component signature stays the same.`,"ds.search.hint.navigate":`Navigate`,"ds.search.hint.select":`Select`,"ds.search.hint.close":`Close`,"ds.eyebrow.brand":`Brand`,"ds.eyebrow.tokens":`Tokens`,"ds.eyebrow.components":`Components`,"ds.eyebrow.designSystem":`Design system`,"ds.heading.variants":`Variants`,"ds.heading.sizes":`Sizes`,"ds.heading.states":`States`,"ds.heading.withIcons":`With icons`,"ds.heading.onBrandSurface":`On brand surface`,"ds.heading.block":`Block`,"ds.heading.usage":`Usage`,"ds.heading.default":`Default`,"ds.heading.tones":`Tones`,"ds.heading.interactive":`Interactive`,"ds.heading.withoutPadding":`Without padding`,"ds.heading.scale":`Scale`,"ds.heading.display":`Display`,"ds.heading.body":`Body`,"ds.heading.nonUppercase":`Non-uppercase`,"ds.heading.onDifferentSurfaces":`On different surfaces`,"ds.heading.greenOnPaper":`Green on paper`,"ds.heading.creamOnBrand":`Cream on brand green`,"ds.logo.title":`Logo`,"ds.logo.description":"A single SVG component that inherits its fill from CSS `color`. Use the green wordmark on light surfaces and the cream wordmark on the brand green.","ds.logo.usageIntro":`Use color utilities to set the fill:`,"ds.colors.title":`Colors`,"ds.colors.description":`Pine green on cream, with a warm yellow accent. All UI color flows from these tokens — never hand-pick values in components.`,"ds.colors.group.brand":`Brand`,"ds.colors.group.accent":`Accent`,"ds.colors.group.surface":`Surface`,"ds.colors.group.ink":`Ink`,"ds.colors.group.line":`Line`,"ds.colors.group.semantic":`Semantic`,"ds.typography.title":`Typography`,"ds.typography.description":`Fraunces for display — warm, organic, optical-sized. DM Sans for body and UI — clean and geometric.`,"ds.typography.serifDesc":`Serif with optical sizing. Use for hero, section titles, product names.`,"ds.typography.sansDesc":`Clean geometric sans. Use for body, UI, navigation, labels.`,"ds.typography.sample":`The quick brown fox`,"ds.radii.title":`Radii`,"ds.radii.description":`From subtle 6px rounding on small elements to full pills on buttons. Matches the reference site's soft, organic feel.`,"ds.shadows.title":`Shadows`,"ds.shadows.description":`All shadows are tinted green rather than neutral black — they feel warm and part of the palette.`,"ds.shadows.sm.note":`Subtle — nav on scroll, resting cards`,"ds.shadows.md.note":`Medium — primary button hover`,"ds.shadows.lg.note":`Large — floating cards, overlays`,"ds.icons.title":`Icons`,"ds.icons.description":`A curated stroke-based icon set on a 24x24 grid. Rendered via the Icon component — inherits color from currentColor.`,"ds.icons.search":`Search icons…`,"ds.icons.copyHint":`Click a tile to copy its snippet.`,"ds.icons.copied":`Copied!`,"ds.icons.noMatch":`No icons match`,"ds.icons.sizeDefault":`20 (default)`,"ds.icons.addHint":`Add new icons in %s. Use a 24×24 viewBox, stroke-based paths, no fills — the component handles color via %s. Pass %s for screen readers; omit it for decorative icons.`,"ds.icons.group.commerce":`Commerce`,"ds.icons.group.navigation":`Navigation`,"ds.icons.group.actions":`Actions`,"ds.icons.group.contact":`Contact`,"ds.icons.group.feedback":`Feedback`,"ds.icons.group.devices":`Devices`,"ds.buttons.title":`Buttons`,"ds.buttons.description":`Pill-shaped. Pine-green primary with warm-yellow label for the main call to action, warm-yellow accent on brand surfaces, plus secondary, ghost, and danger variants.`,"ds.buttons.primary":`Primary`,"ds.buttons.accent":`Accent`,"ds.buttons.secondary":`Secondary`,"ds.buttons.ghost":`Ghost`,"ds.buttons.danger":`Danger`,"ds.buttons.small":`Small`,"ds.buttons.medium":`Medium`,"ds.buttons.large":`Large`,"ds.buttons.disabled":`Disabled`,"ds.buttons.loading":`Loading`,"ds.buttons.addToCart":`Add to cart`,"ds.buttons.learnMore":`Learn more`,"ds.buttons.save":`Save`,"ds.buttons.confirm":`Confirm`,"ds.buttons.continueShopping":`Continue shopping`,"ds.badges.title":`Badges`,"ds.badges.description":`Small uppercase labels for metadata, status, and eyebrows above headings.`,"ds.badges.neutral":`Neutral`,"ds.badges.brand":`Brand`,"ds.badges.accent":`Accent`,"ds.badges.subtle":`Subtle`,"ds.badges.success":`Success`,"ds.badges.warning":`Warning`,"ds.badges.danger":`Danger`,"ds.badges.newRelease":`New release`,"ds.badges.featured":`Featured`,"ds.inputs.title":`Inputs`,"ds.inputs.description":`Paper surface with a thin green-tinted border. Uppercase eyebrow labels. Focus deepens the border to brand green.`,"ds.inputs.email":`Email`,"ds.inputs.emailHint":`We never share this.`,"ds.inputs.password":`Password`,"ds.inputs.required":`Required field`,"ds.inputs.requiredError":`This field is required`,"ds.inputs.disabled":`Disabled`,"ds.inputs.disabledPlaceholder":`Can't type here`,"ds.cards.title":`Cards`,"ds.cards.description":`Surfaces for grouping content. Three tones — paper, cream, brand — and an optional interactive lift on hover.`,"ds.cards.paper":`Paper`,"ds.cards.cream":`Cream`,"ds.cards.brand":`Brand`,"ds.cards.paperTitle":`Default surface`,"ds.cards.paperBody":`The go-to card for most content. High contrast on the cream page background.`,"ds.cards.creamTitle":`Warm surface`,"ds.cards.creamBody":`A softer alternative for secondary sections or callouts.`,"ds.cards.brandTitle":`Dark surface`,"ds.cards.brandBody":`For feature panels, CTAs, and moments that want to stand out.`,"ds.cards.hoverMe":`Hover me`,"ds.cards.hoverMeToo":`Hover me too`,"ds.cards.hoverBody":`Lifts on hover with a soft green-tinted shadow. Use for clickable items in a grid.`,"ds.cards.hoverBodyAlt":`Same behavior on the warm surface.`,"ds.cards.mediaTitle":`Media card`,"ds.cards.mediaBody":`When the card needs a full-bleed image or header, pass`,"ds.product.title":`Product card`,"ds.product.description":`Composed from Card, Badge, Button, and Icon. Cutout image on a cream media surface, title + size, price in brand, and a full-width primary "Add to cart".`,"ds.product.outOfStock":`Out of stock`,"ds.product.added":`Added`,"ds.hero.title":`Hero`,"ds.hero.description":`Full-bleed stage for the home page and category tops. Eyebrow, display headline with optional italic emphasis, subheadline, product cutout on a decorative disc, and a primary/secondary CTA pair. Responsive from 390 to 1280px, three surface tones, two layouts.`,"ds.hero.variant.label":`Layout`,"ds.hero.variant.split":`Split`,"ds.hero.variant.centered":`Centered`,"ds.hero.eyebrow":`New in shop`,"ds.hero.headline.a":`Kaiser Natron`,"ds.hero.headline.em":`for everything`,"ds.hero.headline.b":`that should shine.`,"ds.hero.sub":`Cleans, bakes, and neutralises odours. The 250 g large pack for the household that trusts the original.`,"ds.search.title":`Product search`,"ds.search.description":`Search trigger on the right of the navbar (left of the language switcher) and bottom-left as a floating button on mobile. Tapping it opens a full-screen overlay on mobile and a centered panel on desktop. The input auto-focuses, the results list updates as you type, and arrow keys / Enter / Esc are supported.`,"ds.search.demo.label":`Open demo`,"ds.search.demo.hint":`Try "Natron", "pulver", "entkalker" or "spray".`,"ds.navbar.title":`Navbar`,"ds.navbar.description":`Logo + nav + cart, in three surface tones. On mobile, the top bar keeps the logo and the menu + cart move to an ergonomic bottom-right floating cluster. The menu opens a full-screen brand-green overlay.`,"ds.navbar.tone":`Navbar tone`,"ds.navbar.tone.paper":`Paper`,"ds.navbar.tone.cream":`Cream`,"ds.navbar.tone.brand":`Brand`,"ds.navbar.layout":`Layout`,"ds.navbar.layout.standard":`Standard`,"ds.navbar.layout.floating":`Floating`,"ds.language.title":`Language switcher`,"ds.language.description":`Compact pill for switching between DE, AT, and EN. Two tones — paper for light surfaces, brand for the brand-green — plus a floating mode that pins to the top-right corner.`,"ds.language.paperNote":`Default tone for light UI surfaces like cards or toolbars.`,"ds.language.creamNote":`Stronger border so the pill keeps definition on warm cream surfaces.`,"ds.language.brandNote":`For use on the brand green — e.g. inside the mobile menu overlay.`,"ds.language.floating":`Floating`,"ds.language.floatingNote":"The `floating` prop docks the pill to the top-right of the viewport (24px offset). This is the exact placement used by the design system chrome.","ds.qtyStepper.title":`Quantity stepper`,"ds.qtyStepper.description":"Compact plus/minus control for picking a quantity. Pill-shaped to sit next to Buttons and Input borders, inherits tone and radius from tokens. Supports `min`/`max` bounds and a disabled state.","ds.qtyStepper.minBoundary":`At min`,"ds.qtyStepper.maxBoundary":`At max`,"ds.cartDrawer.title":`Cart drawer`,"ds.cartDrawer.description":`A side-drawer that slides in from the right on a cream surface. Lists each line with image, size, quantity stepper, and line total; below that, a subtotal and a full-width checkout CTA. Edge-to-edge on mobile, pinned to the right at 440px from md up. Scroll-locks the page, closes on ESC, and dismisses when the backdrop is clicked.`,"ds.cartDrawer.demoLabel":`Populate & open cart`,"ds.cartDrawer.demoHint":`Adds two sample items and opens the drawer.`,"ds.cartDrawer.integrationTitle":`Backend integration`,"ds.cartDrawer.integrationBody":"The component owns no network code — it emits `update-quantity`, `remove`, and `checkout`. Its state comes from the API boundary in `src/api/cart.js`, which is a local implementation today and swaps to the documented endpoints (see `docs/api/cart.md`) without changes above this line."},a={de:n,at:{...n,...r},en:i},o=`kn-locale`,s=`de`,c=[{code:`de`,label:`DE`,name:`Deutsch`},{code:`at`,label:`AT`,name:`Österreich`},{code:`en`,label:`EN`,name:`English`}],l=c.map(e=>e.code),u=typeof localStorage<`u`?localStorage.getItem(o):null,d=e({locale:l.includes(u)?u:s});typeof document<`u`&&(document.documentElement.lang=d.locale);function f(e){!l.includes(e)||d.locale===e||(d.locale=e,typeof localStorage<`u`&&localStorage.setItem(o,e),typeof document<`u`&&(document.documentElement.lang=e))}typeof window<`u`&&window.addEventListener(`storage`,e=>{e.key!==o||!l.includes(e.newValue)||(d.locale=e.newValue,typeof document<`u`&&(document.documentElement.lang=e.newValue))});function p(){return{locale:t({get:()=>d.locale,set:f}),setLocale:f,t:e=>(a[d.locale]||a[s])[e]??a[s][e]??e,availableLocales:c}}export{p as t};