|
|
e7f08ce685
|
feat(avocet): UndoToast — 5-second countdown, undo button, accessible
|
2026-03-03 16:13:02 -08:00 |
|
|
|
5114e6ac19
|
feat(avocet): useLabelKeyboard — 1-9, h, S, D, U, ? shortcuts
|
2026-03-03 16:12:58 -08:00 |
|
|
|
cd6cae2040
|
feat(avocet): LabelBucketGrid — numpad layout, bucket-mode expansion, drag drop
|
2026-03-03 16:04:31 -08:00 |
|
|
|
e05ac885d7
|
feat(avocet): EmailCard component — subject, from/date, body preview, expand/collapse
|
2026-03-03 16:03:01 -08:00 |
|
|
|
e823c84196
|
feat(avocet): useApi, useMotion, useHaptics, useEasterEgg (Konami/hacker mode)
- useApiFetch: typed fetch wrapper with network/http error discrimination
- useMotion: reactive localStorage override for rich-animation toggle, respects OS prefers-reduced-motion
- useHaptics: label/discard/skip/undo vibration patterns, gated on rich mode
- useKonamiCode + useHackerMode: 10-key Konami sequence → hacker theme, persisted in localStorage
- test-setup.ts: jsdom matchMedia stub so useMotion imports cleanly in Vitest
- smoke.test.ts: import smoke tests for all 4 composables (12 tests, all passing)
|
2026-03-03 15:58:43 -08:00 |
|
|
|
209f49f7ea
|
feat(avocet): Pinia label store with queue, lastAction, easter egg counter
|
2026-03-03 15:54:44 -08:00 |
|
|
|
2abda18b92
|
fix(avocet): align theme with Peregrine design system — full token set, dark mode, self-hosted fonts
|
2026-03-03 15:52:38 -08:00 |
|
|
|
ac1f4b8ba1
|
feat(avocet): CircuitForge base theme + Avocet Slate Teal/Russet colors
|
2026-03-03 15:49:07 -08:00 |
|
|
|
cb059492bf
|
feat(avocet): Vite + Vue 3 + UnoCSS + Vitest scaffold
|
2026-03-03 15:46:58 -08:00 |
|