- Update view-single icon with text representation
- Add view-horizontal icon with side scroll indicator
- Add view-two-column icon for two-column layout
- Simplify width-normal and width-wide icons
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add cleanupBrokenReferences function to remove missing Cloudinary URLs from database
- Add PATCH endpoint to API for cleaning broken references
- Add UI section to show broken references with cleanup button
- Add confirmation modal for cleanup action
- Add console logging to debug delete button issue
Co-Authored-By: Claude <noreply@anthropic.com>
- Add sort functionality (newest, oldest, name A-Z/Z-A, size)
- Update media type filters: Images (JPG/PNG), Videos (MP4/MOV/GIF), Audio, Vectors (SVG)
- Replace photography filter with 'Published in' filter (Photos/Universe/Unpublished)
- Fix API to properly handle JSON array queries with array_contains
- Add comprehensive WHERE clause building for multiple filters
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Replace individual buttons with dropdown menu for secondary actions
- Add 'Audit Storage' and 'Select Files' options to dropdown
- Keep Upload as primary action button
- Add chevron-down icon with proper stroke styling
- Implement click-outside handler for dropdown
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Create audit page at /admin/media/audit with 2x2 summary grid
- Add interactive table with file selection and batch operations
- Implement delete functionality with confirmation modal
- Add chevron-left icon for navigation
- Style with consistent admin UI patterns
- Include loading states and error handling
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add comprehensive audit system to identify orphaned Cloudinary files
- Create audit script with dry-run and execute modes
- Add formatBytes utility for human-readable file sizes
- Implement comparison logic between Cloudinary and database references
- Add API endpoint for programmatic access to audit functionality
- Include documentation for Cloudinary management
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
We had a lot of unnecessary complexity here due to post types that never ended up getting used.
We also made the post slug field reactive and bound to the title field.
We also fixed filters on the Universe admin page so we can filter by unpublished posts too (WIP)
We also fixed the hover state of BackButton