"use client"; import { useConfiguratorStore, type Finish, type GlassColor, type Handle, type FrameSize } from "@/lib/store"; import { glassPatternOptions, type GlassPattern } from "@/lib/glass-patterns"; import { Check } from "lucide-react"; // ============================================ // OPTIONS DATA // ============================================ const finishOptions: Array<{ value: Finish; label: string; description: string; swatch: string; }> = [ { value: "zwart", label: "Mat Zwart", description: "Klassiek en tijdloos", swatch: "#1A1A1A" }, { value: "brons", label: "Brons", description: "Warm en industrieel", swatch: "#8B6F47" }, { value: "grijs", label: "Antraciet", description: "Modern en neutraal", swatch: "#525252" }, { value: "goud", label: "Goud", description: "Luxe en opvallend", swatch: "#B8860B" }, { value: "beige", label: "Beige", description: "Zacht en natuurlijk", swatch: "#C8B88A" }, { value: "ral", label: "RAL Kleur", description: "Op maat, +EUR 200", swatch: "#4A6741" }, ]; const glassColorOptions: Array<{ value: GlassColor; label: string; description: string; swatch: string; }> = [ { value: "helder", label: "Helder", description: "Maximale transparantie", swatch: "#dbeafe" }, { value: "grijs", label: "Rookglas", description: "Getint grijs glas", swatch: "#4B5563" }, { value: "brons", label: "Bronsglas", description: "Warm getint glas", swatch: "#92764A" }, { value: "mat-blank", label: "Mat Blank", description: "Zacht diffuus licht", swatch: "#e2e2e2" }, { value: "mat-brons", label: "Mat Brons", description: "Warm en gedempd", swatch: "#A0845C" }, { value: "mat-zwart", label: "Mat Zwart", description: "Privacy glas", swatch: "#2D2D2D" }, ]; const handleOptions: Array<{ value: Handle; label: string; description: string; }> = [ { value: "beugelgreep", label: "Beugelgreep", description: "Verticale staaf met montageblokken" }, { value: "hoekgreep", label: "Hoekgreep", description: "L-vormige minimalistisch design" }, { value: "maangreep", label: "Maangreep", description: "Gebogen half-maanvormige greep" }, { value: "ovaalgreep", label: "Ovaalgreep", description: "Moderne ovale trekgreep" }, { value: "klink", label: "Deurklink", description: "Klassieke deurklink met hendel" }, { value: "u-greep", label: "U-Greep", description: "Eenvoudige rechte staaf" }, { value: "geen", label: "Geen greep", description: "Voor vaste panelen" }, ]; const frameSizeOptions: Array<{ value: FrameSize; label: string; description: string; }> = [ { value: 20, label: "Smal (20mm)", description: "Minimalistisch profiel" }, { value: 30, label: "Standaard (30mm)", description: "Populairste keuze" }, { value: 40, label: "Robuust (40mm)", description: "Industrieel karakter" }, ]; // ============================================ // SHARED SELECTION COMPONENTS // ============================================ function SelectionButton({ selected, onClick, children, }: { selected: boolean; onClick: () => void; children: React.ReactNode; }) { return ( ); } // ============================================ // MAIN COMPONENT // ============================================ export function StepOptions() { const { finish, handle, glassPattern, glassColor, frameSize, setFinish, setHandle, setGlassPattern, setGlassColor, setFrameSize, } = useConfiguratorStore(); return (
Kies de kleur en afwerking van het staal.
Kies het type en de kleur van het glas.
Kies de breedte van het stalen profiel.
Kies het decoratieve patroon voor de glaspanelen.
{option.description}
Selecteer het type handgreep.
{option.description}