export type ConditionId = | "blinded" | "charmed" | "deafened" | "exhaustion" | "frightened" | "grappled" | "incapacitated" | "invisible" | "paralyzed" | "petrified" | "poisoned" | "prone" | "restrained" | "stunned" | "unconscious"; export interface ConditionDefinition { readonly id: ConditionId; readonly label: string; readonly iconName: string; readonly color: string; } export const CONDITION_DEFINITIONS: readonly ConditionDefinition[] = [ { id: "blinded", label: "Blinded", iconName: "EyeOff", color: "neutral" }, { id: "charmed", label: "Charmed", iconName: "Heart", color: "pink" }, { id: "deafened", label: "Deafened", iconName: "EarOff", color: "neutral" }, { id: "exhaustion", label: "Exhaustion", iconName: "BatteryLow", color: "amber", }, { id: "frightened", label: "Frightened", iconName: "Siren", color: "orange", }, { id: "grappled", label: "Grappled", iconName: "Hand", color: "neutral" }, { id: "incapacitated", label: "Incapacitated", iconName: "Ban", color: "gray", }, { id: "invisible", label: "Invisible", iconName: "Ghost", color: "violet", }, { id: "paralyzed", label: "Paralyzed", iconName: "ZapOff", color: "yellow", }, { id: "petrified", label: "Petrified", iconName: "Gem", color: "slate", }, { id: "poisoned", label: "Poisoned", iconName: "Droplet", color: "green" }, { id: "prone", label: "Prone", iconName: "ArrowDown", color: "neutral" }, { id: "restrained", label: "Restrained", iconName: "Link", color: "neutral", }, { id: "stunned", label: "Stunned", iconName: "Sparkles", color: "yellow" }, { id: "unconscious", label: "Unconscious", iconName: "Moon", color: "indigo", }, ] as const; export const VALID_CONDITION_IDS: ReadonlySet = new Set( CONDITION_DEFINITIONS.map((d) => d.id), );