import React, { useState } from 'react'; import { SilkeText } from '../silke-text'; import styles from './silke-theme-swatch.module.scss'; const SHADE_KEYS = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950] as const; type ShadeKey = (typeof SHADE_KEYS)[number]; interface SilkeThemeSwatchProps { label: string; token?: string; shades: Record; selectedShade?: ShadeKey; onSelect?: (shade: ShadeKey) => void; } export function SilkeThemeSwatch({ label, token, shades, selectedShade, onSelect, }: SilkeThemeSwatchProps) { const [hoveredShade, setHoveredShade] = useState(null); return (
{label}
setHoveredShade(null)}> {SHADE_KEYS.map((shade) => (
setHoveredShade(shade)} onClick={() => onSelect?.(shade)} > {hoveredShade === shade && (
{token ? `${token} ` : ''}{shade}
)}
))}
); }