UI Components
Shared component library expanded from 22 to 50 shadcn/ui primitives plus 13 new application-level components for loading states, status display, confirmations, and page layouts.
Component library expansion
The shared component library in packages/ui/ has been expanded from 22 to 50 pre-configured shadcn/ui components. New additions include Accordion, Avatar, Calendar, Carousel, Checkbox, Collapsible, Command, Drawer, Input OTP, Menubar, Pagination, Radio Group, Resizable, Scroll Area, Separator, Slider, Switch, Table, Tabs, Toggle, Toggle Group, and Typography with consistent spacing, border radius, and color token usage.
The dashboard now includes an automatic breadcrumb navigation bar that reflects the current route hierarchy.
Extracted shared components
Seven components were extracted from repeated patterns across the dashboard into dedicated, reusable modules.
Three layout wrappers reduce boilerplate for common page patterns: LegalPage wraps the privacy, terms, and imprint pages with consistent structure. DashboardFeaturePage combines feature-gate checking, Suspense boundaries, and LoadingSpinner into a single wrapper used by the four AI feature pages. CenteredPage provides the centered layout shared by error, not-found, and logout pages. CollapsibleSection adds a toggle with item count and clear action, extracted from the content and image generation history components.
New utility components
Six new components extend the UI toolkit with common interaction patterns. CopyButton renders a copy-to-clipboard button that swaps from a Copy icon to a Check icon with a two-second timeout. StatusBadge displays semantic status indicators with five variants (success, warning, error, info, neutral). StatCard is a KPI display card that accepts an icon, optional badge, formatted value, and children content.
ConfirmDialog wraps the shadcn/ui AlertDialog with variant support for destructive and warning confirmation flows including a loading state. LoadingButton extends the shadcn/ui Button with an integrated loading spinner that auto-disables during async operations. CreditCost renders an inline Coins icon with cost text for displaying AI feature credit costs.