import { useId } from "react"; /** * Wabenraster als Markensignatur: dieselbe spitz stehende Sechseckform wie * im Logomark, als feines Linienmuster. Liegt absolut im naechsten * relativen Elternteil, ist rein dekorativ (aria-hidden) und laeuft ueber * eine Maske zu den Raendern hin aus, damit es nie als harte Kachelkante * endet. * * Farbe ueber currentColor (text-*-Klasse am Aufrufer), Staerke ueber * opacity — so passt dasselbe Muster auf Creme wie auf Waldgruen. */ export function HoneycombPattern({ className = "", size = 22, fade = "radial", }: { className?: string; /** Radius eines Sechsecks in px. */ size?: number; /** Wohin das Muster auslaeuft. */ fade?: "radial" | "right" | "bottom" | "none"; }) { const id = useId().replace(/:/g, ""); const r = size; const w = Math.sqrt(3) * r; const tileH = 3 * r; // Zwei Sechsecke je Kachel (versetzte Reihen), spitz nach oben wie im Logo. const hex = (cx: number, cy: number) => Array.from({ length: 6 }, (_, i) => { const angle = (Math.PI / 3) * i - Math.PI / 2; return `${(cx + r * Math.cos(angle)).toFixed(2)},${(cy + r * Math.sin(angle)).toFixed(2)}`; }).join(" "); const masks: Record = { radial: "radial-gradient(ellipse at center, black 20%, transparent 75%)", right: "linear-gradient(to left, black, transparent 80%)", bottom: "linear-gradient(to top, black, transparent 85%)", none: undefined, }; return ( ); } /** Kleines Sechseck als Aufzaehlungs- und Statuszeichen (statt Unicode-Glyphen). */ export function HexMark({ className = "h-3 w-3", filled = true }: { className?: string; filled?: boolean }) { return ( ); } /** Haekchen im Sechseck — fuer Vorteilslisten (ersetzt das Textzeichen "✓"). */ export function HexCheck({ className = "h-4 w-4" }: { className?: string }) { return ( ); }