feat: replace all vanilla HTML elements with shadcn components

- Install skeleton and tooltip shadcn components
- event-dialog: textarea → Textarea, duration chips → Button ghost
- date-time-picker: raw button trigger → Button outline, quick-date chips → Button ghost
- event-card: <a> URL link → Button link asChild
- sign-in: animate-pulse div → Skeleton
- ai-toolbar: animate-pulse div → Skeleton, event count span → Badge secondary
- event-actions-toolbar: event count span → Badge secondary
This commit is contained in:
2026-04-08 01:17:18 -04:00
parent 1cee73702b
commit 8eda6c89e2
10 changed files with 114 additions and 29 deletions

View File

@@ -95,16 +95,22 @@ export const EventCard = ({ event, onEdit, onDelete }: EventCardProps) => {
)}
{event.url && (
<a
href={event.url}
target="_blank"
rel="noopener noreferrer"
className="inline-flex items-center gap-1 text-primary/70 hover:text-primary transition-colors"
onClick={(e) => e.stopPropagation()}
<Button
variant="link"
size="sm"
className="inline-flex items-center gap-1 h-auto p-0 text-xs text-primary/70 hover:text-primary"
asChild
>
<ExternalLink className="h-3 w-3" />
<span className="truncate max-w-[120px]">Link</span>
</a>
<a
href={event.url}
target="_blank"
rel="noopener noreferrer"
onClick={(e) => e.stopPropagation()}
>
<ExternalLink className="h-3 w-3" />
<span className="truncate max-w-[120px]">Link</span>
</a>
</Button>
)}
</div>