Commit Graph

7 Commits

Author SHA1 Message Date
8aa14a2cab refactor: replace SVG sprite with client-side icon fetching and Rust caching
Eliminates server-side batch rendering and IconSprite pattern in favor of:
- Rust handler with moka cache (10k icons, 24h TTL, immutable HTTP headers)
- Client Icon component fetches SVGs on-demand with shimmer loading states
- Removes renderIconsBatch, tag-icons collection logic, and page load icon preprocessing
- Reduces SSR complexity and data serialization overhead
2026-01-15 10:33:43 -06:00
935c5e6475 refactor: migrate icon rendering to SVG sprite pattern
Replace per-icon inline SVG rendering with a centralized sprite system. Icons are now collected once per page and rendered as <symbol> elements, referenced via <use> tags. Eliminates redundant icon fetching, reduces HTML size, and simplifies icon management across components.
2026-01-15 01:59:02 -06:00
6ad6da13ee feat: add admin button to main layout, improve projects UI with click navigation, native scrollbar styles, better timestamp format
- Add persistent admin dashboard button in header when authenticated
- Make project list rows clickable for navigation to edit page
- Move delete action to edit page with confirmation modal
- Add sessionStorage persistence for auth state across page loads
- Improve timestamp formatting with relative times
- Add native scrollbar styling for light/dark themes
2026-01-14 23:19:36 -06:00
08c5dcda3b refactor: use common TagChip, switch to SSR for admin pages, better error & logger handling 2026-01-14 12:07:48 -06:00
5c4d3b6efa feat: add light/dark theme toggle with system preference detection
- Implement theme store with localStorage persistence
- Add ThemeToggle component with animated icon transitions
- Update color system with semantic tokens for light/dark modes
- Add blocking script in app.html to prevent FOUC
- Apply theme-aware styling across all public and admin pages
2026-01-06 20:31:24 -06:00
b3dd1954d3 refactor: formatting and accessibility improvements across admin components
- Enforce consistent code formatting via ESLint rules
- Add accessibility enhancements (input IDs, labels, ARIA attributes)
- Replace Svelte store initialization patterns with reactive $effect
- Use $derived for reactive computed values
- Update error-codes and og-types indentation to spaces
- Add TypeScript definitions for html-minifier-terser
- Use resolve() for internal links in error and login pages
2026-01-06 14:39:21 -06:00
16bf2b76f3 feat: add admin panel with project and tag management
- Full CRUD interface for projects with GitHub integration and tagging
- Real-time event log with expandable metadata viewer
- Reusable component library (Badge, Button, Input, Modal, Table,
TagPicker)
- Server-side API client with Unix socket and HTTP support
- JWT-based authentication with Svelte 5 reactive stores
- Settings management for social links and site identity
- Remove /admin path from tarpit to allow legitimate access
2026-01-06 10:07:59 -06:00