import type { AppointmentPurpose } from '@/types/appointment'; export const APPOINTMENT_PURPOSE_LABEL: Record = { consultation: 'Consultation', filling: 'Filling', endo: 'Endo', visit: 'Visit', hygiene: 'Hygiene', }; /** Background + border for blocks / legend (matches reference palette). */ export const APPOINTMENT_PURPOSE_STYLES: Record = { consultation: 'bg-purpose-consultation-bg border-purpose-consultation-border text-purpose-consultation-fg', filling: 'bg-purpose-filling-bg border-purpose-filling-border text-purpose-filling-fg', endo: 'bg-purpose-endo-bg border-purpose-endo-border text-purpose-endo-fg', visit: 'bg-purpose-visit-bg border-purpose-visit-border text-purpose-visit-fg', hygiene: 'bg-purpose-hygiene-bg border-purpose-hygiene-border text-purpose-hygiene-fg', }; export function purposeStyle(purpose: string): string { const p = purpose as AppointmentPurpose; return APPOINTMENT_PURPOSE_STYLES[p] ?? 'bg-surface-elevated border-border text-text-secondary'; } /** Trash icon — legend hues; `!` overrides global `.lucide { color: var(--color-icon) }`. */ export function purposeDeleteIconClass(purpose: string): string { const p = purpose as AppointmentPurpose; const map: Record = { consultation: '!text-purpose-consultation-fg', filling: '!text-purpose-filling-fg', endo: '!text-purpose-endo-fg', visit: '!text-purpose-visit-fg', hygiene: '!text-purpose-hygiene-fg', }; return map[p] ?? '!text-text-muted'; } /** Small swatch for legend (background + border only). */ export const APPOINTMENT_PURPOSE_LEGEND_SWATCH: Record = { consultation: 'bg-violet-500/85 border-violet-400/75', filling: 'bg-orange-500/85 border-orange-400/75', endo: 'bg-red-500/85 border-red-400/75', visit: 'bg-sky-500/85 border-sky-400/75', hygiene: 'bg-lime-500/80 border-lime-400/70', };