"use client";
import { cn } from "../../../lib/utils";
import {
PALETTE_SHADE_STEPS,
STYLE_GUIDE_PRIMARY_FAMILY_OPTIONS,
} from "./palette-control-data";
import {
PALETTE_CELL_SIZE,
PALETTE_COLUMNS,
SHADE_RAIL_WIDTH,
} from "./palette-control-layout";
import type { PaletteControlViewProps } from "./palette-control-types";
export function PaletteControlView(props: PaletteControlViewProps) {
const paletteGrid = (
{STYLE_GUIDE_PRIMARY_FAMILY_OPTIONS.map((palette) => {
const isSelected = palette.name === props.optimisticValue.family;
return (
);
const shadeRail = (
{PALETTE_SHADE_STEPS.map((shade, index) => {
const isSelected = shade === props.optimisticValue.shade;
const isFirst = index === 0;
const isLast = index === PALETTE_SHADE_STEPS.length - 1;
return (
);
})}
);
if (props.variant === "panel") {
return (
{paletteGrid}
{shadeRail}
);
}
return (
{paletteGrid}
{shadeRail}
);
}