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

@@ -1,38 +0,0 @@
export interface TextTemplate {
id: string;
label: string;
text: string;
category: 'greeting' | 'tech' | 'fun' | 'seasonal';
}
export const TEXT_TEMPLATES: TextTemplate[] = [
// Greetings
{ id: 'hello', label: 'Hello', text: 'Hello!', category: 'greeting' },
{ id: 'welcome', label: 'Welcome', text: 'Welcome', category: 'greeting' },
{ id: 'hello-world', label: 'Hello World', text: 'Hello World', category: 'greeting' },
// Tech
{ id: 'code', label: 'Code', text: 'CODE', category: 'tech' },
{ id: 'dev', label: 'Developer', text: 'DEV', category: 'tech' },
{ id: 'hack', label: 'Hack', text: 'HACK', category: 'tech' },
{ id: 'terminal', label: 'Terminal', text: 'Terminal', category: 'tech' },
{ id: 'git', label: 'Git', text: 'Git', category: 'tech' },
// Fun
{ id: 'awesome', label: 'Awesome', text: 'AWESOME', category: 'fun' },
{ id: 'cool', label: 'Cool', text: 'COOL', category: 'fun' },
{ id: 'epic', label: 'Epic', text: 'EPIC', category: 'fun' },
{ id: 'wow', label: 'Wow', text: 'WOW!', category: 'fun' },
// Seasonal
{ id: 'happy-birthday', label: 'Happy Birthday', text: 'Happy Birthday!', category: 'seasonal' },
{ id: 'congrats', label: 'Congrats', text: 'Congrats!', category: 'seasonal' },
{ id: 'thanks', label: 'Thanks', text: 'Thanks!', category: 'seasonal' },
];
export const TEMPLATE_CATEGORIES = [
{ id: 'greeting', label: 'Greetings', icon: '👋' },
{ id: 'tech', label: 'Tech', icon: '💻' },
{ id: 'fun', label: 'Fun', icon: '🎉' },
{ id: 'seasonal', label: 'Seasonal', icon: '🎊' },
] as const;

View File

@@ -1,53 +0,0 @@
'use client';
export interface HistoryItem {
id: string;
text: string;
font: string;
result: string;
timestamp: number;
}
const HISTORY_KEY = 'figlet-ui-history';
const MAX_HISTORY = 10;
export function getHistory(): HistoryItem[] {
if (typeof window === 'undefined') return [];
try {
const stored = localStorage.getItem(HISTORY_KEY);
return stored ? JSON.parse(stored) : [];
} catch {
return [];
}
}
export function addToHistory(text: string, font: string, result: string): void {
let history = getHistory();
const newItem: HistoryItem = {
id: `${Date.now()}-${Math.random()}`,
text,
font,
result,
timestamp: Date.now(),
};
// Add to beginning
history.unshift(newItem);
// Keep only MAX_HISTORY items
history = history.slice(0, MAX_HISTORY);
localStorage.setItem(HISTORY_KEY, JSON.stringify(history));
}
export function clearHistory(): void {
localStorage.removeItem(HISTORY_KEY);
}
export function removeHistoryItem(id: string): void {
const history = getHistory();
const filtered = history.filter(item => item.id !== id);
localStorage.setItem(HISTORY_KEY, JSON.stringify(filtered));
}

View File

@@ -1,4 +1,3 @@
export * from './units';
export * from './storage';
export * from './utils';
export * from './tempo';