Overview
@radix-ui/react-slot, class-variance-authority, clsx, and tailwind-merge are already installed (the standard shadcn/ui pattern) but no components/ui directory exists yet. Every page in this plan needs consistent Button, Input, Card, Badge, and Modal/Toast components rather than each page reinventing markup.
Acceptance Criteria
Overview
@radix-ui/react-slot,class-variance-authority,clsx, andtailwind-mergeare already installed (the standard shadcn/ui pattern) but nocomponents/uidirectory exists yet. Every page in this plan needs consistent Button, Input, Card, Badge, and Modal/Toast components rather than each page reinventing markup.Acceptance Criteria
components/ui/withButton,Input,Card,Badge,Dialog(Modal), andToastcomponents, usingcvafor variants andtailwind-mergefor class compositiondark:variant)@testing-library/react+ jest