diff --git a/app/components/ProductBlocks.tsx b/app/components/ProductBlocks.tsx
index 509bf0c..fb38273 100644
--- a/app/components/ProductBlocks.tsx
+++ b/app/components/ProductBlocks.tsx
@@ -155,7 +155,11 @@ function renderProductBlock(block: ProductBlock, ctx: ProductBlockContext): Reac
const Icon = STEP_ICONS[item.icon];
return (
- {Icon &&
{Icon()} }
+ {Icon && (
+
+ {Icon()}
+
+ )}
{item.title}
{item.description}
diff --git a/app/components/ProductSpotlight.tsx b/app/components/ProductSpotlight.tsx
index ba8d5ad..d8d8b14 100644
--- a/app/components/ProductSpotlight.tsx
+++ b/app/components/ProductSpotlight.tsx
@@ -4,6 +4,7 @@ import Link from "next/link";
import { AddToCartButton } from "./AddToCartButton";
import { Reveal } from "./Reveal";
import { WishlistButton } from "./WishlistButton";
+import { ProductBadge } from "./ProductBadge";
import { getSpotlightProduct, getShippingSettings, getDefaultTaxRatePercent, getKleinunternehmer, getWishlistEnabled } from "../lib/payload";
import { formatPrice, discountPercent } from "../lib/format";
import { effectiveTaxRate } from "../lib/cartTotals";
@@ -110,17 +111,9 @@ export async function ProductSpotlight() {
sizes="(min-width: 1024px) 380px, (min-width: 640px) 512px, 100vw"
className="object-cover transition-transform duration-500 group-hover:scale-105"
/>
- {fullyOutOfStock ? (
-
- Ausverkauft
-
- ) : (
- discount !== null && (
-
- -{discount}%
-
- )
- )}
+
{wishlistEnabled && product.spotlightShowWishlist && (
)}
diff --git a/app/components/icons/StepIcons.tsx b/app/components/icons/StepIcons.tsx
index be70d42..e97bed2 100644
--- a/app/components/icons/StepIcons.tsx
+++ b/app/components/icons/StepIcons.tsx
@@ -136,7 +136,7 @@ function IconPen() {
// shared set for other PDPs — der-eine's PDP is the block-builder's
// reference template, its own icons belong in the shared library too.
return (
-
+
@@ -146,7 +146,7 @@ function IconPen() {
function IconSparkle() {
// Engraving/laser mark — same glyph as der-eine's own IconSparkle.
return (
-
+
+
);
@@ -178,6 +178,59 @@ function IconPause() {
);
}
+function IconSeal() {
+ // Scalloped medallion — vintage/quality-craft facts (e.g. "Vintage-
+ // Porzellan"), where none of the existing glyphs read as "material/
+ // heritage quality" at all.
+ return (
+
+
+
+
+ );
+}
+
+function IconDroplets() {
+ // Two water drops — dishwasher-safe facts.
+ return (
+
+
+
+
+ );
+}
+
+function IconHourglass() {
+ // Classic hourglass — "for the one moment" facts, more evocative of a
+ // pocket of time than the flat pause-bars glyph.
+ return (
+
+
+
+ );
+}
+
// Keys MUST match the Payload StepRowBlock's `icon` select field options
// (docker/payload/src/blocks/StepRowBlock.ts) exactly.
export const STEP_ICONS: Record React.ReactNode> = {
@@ -196,6 +249,9 @@ export const STEP_ICONS: Record React.ReactNode> = {
pen: IconPen,
sparkle: IconSparkle,
compact: IconCompact,
+ seal: IconSeal,
+ droplets: IconDroplets,
+ hourglass: IconHourglass,
};
// Same symbolic clock icon /lebensuhr uses above its "24 Stunden" heading