refactor: streamline toast system and harmonize UI across tools

- Migrate all toast notifications to sonner and remove custom ToastProvider
- Align Card and TextInput styling across Figlet and Pastel (rounded-lg, border-based)
- Fix build error by removing non-existent export in lib/units/index.ts
- Clean up unused Figlet components and constants
This commit is contained in:
2026-02-23 02:04:46 +01:00
parent 09838a203c
commit a9d0fd8443
25 changed files with 109 additions and 808 deletions

View File

@@ -17,7 +17,7 @@ export function AppHeader() {
const pathSegments = pathname.split('/').filter(Boolean);
return (
<header className="h-16 border-b border-white/5 bg-background/10 backdrop-blur-xl sticky top-0 z-40 flex items-center justify-between px-4 lg:px-8">
<header className="h-16 border-b border-border bg-background/10 backdrop-blur-xl sticky top-0 z-40 flex items-center justify-between px-4 lg:px-8">
<div className="flex items-center gap-4">
<Button
variant="ghost"
@@ -69,7 +69,7 @@ function ThemeToggleComponent() {
variant="ghost"
size="icon"
onClick={() => setTheme(resolvedTheme === 'dark' ? 'light' : 'dark')}
className="text-muted-foreground hover:text-foreground hover:bg-white/5"
className="text-muted-foreground hover:text-foreground hover:bg-accent/50"
title={`Switch to ${resolvedTheme === 'dark' ? 'light' : 'dark'} mode`}
>
{resolvedTheme === 'dark' ? (

View File

@@ -103,12 +103,12 @@ export function AppSidebar() {
)}
<aside className={cn(
"fixed inset-y-0 left-0 z-50 flex flex-col border-r border-white/5 bg-background/40 backdrop-blur-2xl transition-all duration-300 ease-in-out lg:relative lg:h-full",
"fixed inset-y-0 left-0 z-50 flex flex-col border-r border-border bg-background/40 backdrop-blur-2xl transition-all duration-300 ease-in-out lg:relative lg:h-full",
isOpen ? "translate-x-0" : "-translate-x-full lg:translate-x-0",
isCollapsed ? "lg:w-20" : "w-64"
)}>
{/* Sidebar Header */}
<div className="flex h-16 items-center justify-between px-6 shrink-0 border-b border-white/5">
<div className="flex h-16 items-center justify-between px-6 shrink-0 border-b border-border">
<Link href="/" className="flex items-center gap-3 group overflow-hidden">
<div className="shrink-0">
<Logo size={isCollapsed ? 32 : 32} />
@@ -151,7 +151,7 @@ export function AppSidebar() {
"flex items-center px-3 py-2 rounded-xl text-sm font-medium transition-all duration-300 relative group/item",
isActive
? "bg-primary/10 text-primary shadow-[0_0_15px_rgba(139,92,246,0.15)] ring-1 ring-primary/20"
: "text-muted-foreground hover:bg-white/5 hover:text-foreground",
: "text-muted-foreground hover:bg-accent/50 hover:text-foreground",
isCollapsed ? "justify-center" : "justify-between"
)}
title={isCollapsed ? item.title : undefined}
@@ -180,7 +180,7 @@ export function AppSidebar() {
</Link>
{item.items && pathname.startsWith(item.href) && !isCollapsed && (
<div className="ml-9 space-y-1 border-l border-white/5 pl-2 mt-1">
<div className="ml-9 space-y-1 border-l border-border pl-2 mt-1">
{item.items.map((subItem) => (
<Link
key={subItem.href}
@@ -190,7 +190,7 @@ export function AppSidebar() {
"block px-3 py-1.5 rounded-lg text-xs font-medium transition-all duration-200",
pathname === subItem.href
? "text-primary bg-primary/5 font-semibold"
: "text-muted-foreground hover:text-foreground hover:bg-white/5"
: "text-muted-foreground hover:text-foreground hover:bg-accent/50"
)}
>
{subItem.title}
@@ -207,7 +207,7 @@ export function AppSidebar() {
</nav>
{/* Sidebar Footer / Desktop Toggle */}
<div className="p-4 border-t border-white/5 hidden lg:block">
<div className="p-4 border-t border-border hidden lg:block">
<Button
variant="ghost"
size="sm"