Files
crumbs/src/lib/components/ColorPicker.svelte
T

25 lines
825 B
Svelte

<script lang="ts">
import { COLOR_OPTIONS, getNoteChip } from '$lib/utils/colors.js';
import { getIsDarkMode } from '$lib/utils/theme.svelte.js';
import type { NoteColor } from '$lib/types/index.js';
interface Props {
selected: NoteColor;
onSelect: (color: NoteColor) => void;
}
let { selected, onSelect }: Props = $props();
</script>
<div class="flex flex-wrap gap-1" data-testid="color-picker">
{#each COLOR_OPTIONS as option}
<button
onclick={() => onSelect(option.value)}
class="h-8 w-8 rounded-full border-2 transition-transform hover:scale-110 {selected === option.value ? 'border-[var(--text)]' : 'border-[var(--border-subtle)]'}"
style="background-color: {getNoteChip(option.value, getIsDarkMode())}"
title={option.label}
data-testid="color-{option.value}"
></button>
{/each}
</div>