2026-02-22 21:35:53 +01:00
|
|
|
'use client';
|
|
|
|
|
|
|
|
|
|
import { ColorSwatch } from './ColorSwatch';
|
|
|
|
|
import { cn } from '@/lib/utils/cn';
|
|
|
|
|
|
|
|
|
|
interface PaletteGridProps {
|
|
|
|
|
colors: string[];
|
|
|
|
|
onColorClick?: (color: string) => void;
|
|
|
|
|
className?: string;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function PaletteGrid({ colors, onColorClick, className }: PaletteGridProps) {
|
|
|
|
|
if (colors.length === 0) {
|
|
|
|
|
return (
|
|
|
|
|
<div className="text-center py-12 text-muted-foreground">
|
|
|
|
|
No colors in palette yet
|
|
|
|
|
</div>
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return (
|
2026-03-01 08:15:33 +01:00
|
|
|
<div className={cn('grid grid-cols-4 sm:grid-cols-5 gap-2', className)}>
|
2026-02-22 21:35:53 +01:00
|
|
|
{colors.map((color, index) => (
|
|
|
|
|
<ColorSwatch
|
|
|
|
|
key={`${color}-${index}`}
|
|
|
|
|
color={color}
|
2026-03-01 08:15:33 +01:00
|
|
|
size="sm"
|
2026-02-22 21:35:53 +01:00
|
|
|
onClick={onColorClick ? () => onColorClick(color) : undefined}
|
|
|
|
|
/>
|
|
|
|
|
))}
|
|
|
|
|
</div>
|
|
|
|
|
);
|
|
|
|
|
}
|