Add jsinspect-plus (AST-based structural duplication detector) to pnpm check with threshold 50 / min 3 instances. Fix all findings: - Extract condition icon/color maps to shared condition-styles.ts - Extract useClickOutside hook (5 components) - Extract dispatchAction + resolveAndRename in use-encounter - Extract runEncounterAction in application layer (13 use cases) - Extract findCombatant helper in domain (9 functions) - Extract TraitSection in stat-block (4 trait rendering blocks) - Extract DialogHeader in dialog.tsx (4 dialogs) Net result: -263 lines across 40 files. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
55 lines
816 B
TypeScript
55 lines
816 B
TypeScript
import type { LucideIcon } from "lucide-react";
|
|
import {
|
|
ArrowDown,
|
|
Ban,
|
|
BatteryLow,
|
|
Droplet,
|
|
EarOff,
|
|
EyeOff,
|
|
Gem,
|
|
Ghost,
|
|
Hand,
|
|
Heart,
|
|
Link,
|
|
Moon,
|
|
ShieldMinus,
|
|
Siren,
|
|
Snail,
|
|
Sparkles,
|
|
ZapOff,
|
|
} from "lucide-react";
|
|
|
|
export const CONDITION_ICON_MAP: Record<string, LucideIcon> = {
|
|
EyeOff,
|
|
Heart,
|
|
EarOff,
|
|
BatteryLow,
|
|
Siren,
|
|
Hand,
|
|
Ban,
|
|
Ghost,
|
|
ZapOff,
|
|
Gem,
|
|
Droplet,
|
|
ArrowDown,
|
|
Link,
|
|
ShieldMinus,
|
|
Snail,
|
|
Sparkles,
|
|
Moon,
|
|
};
|
|
|
|
export const CONDITION_COLOR_CLASSES: Record<string, string> = {
|
|
neutral: "text-muted-foreground",
|
|
pink: "text-pink-400",
|
|
amber: "text-amber-400",
|
|
orange: "text-orange-400",
|
|
gray: "text-gray-400",
|
|
violet: "text-violet-400",
|
|
yellow: "text-yellow-400",
|
|
slate: "text-slate-400",
|
|
green: "text-green-400",
|
|
indigo: "text-indigo-400",
|
|
sky: "text-sky-400",
|
|
};
|