- use Leaflet types (L.Map, L.Marker, L.LeafletEvent) for map components
- use Post and Project types from Prisma for form components
- use JSONContent type for editor instances
- use Snippet type for Svelte 5 render functions
- use EditorView type for TipTap/ProseMirror views
- use proper type guards for error handling
- add editor interface types for save/clear methods
- Replace 802 instances of $grey- variables with $gray- across 106 files
- Remove legacy color aliases from variables.scss
- Maintain consistent naming convention throughout codebase
This completes the migration to the new color scale system.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Major improvements to the color system:
1. Create proper color scales (00-100) for:
- Gray: 14 shades from darkest to lightest
- Red: 12 shades with brand colors
- Blue: 12 shades for primary colors
- Yellow: 12 shades for warnings
- Green: 12 shades for success states
- Orange: 12 shades for secondary accents
2. Semantic color assignments:
- Map all semantic colors to scale values
- Background colors use gray scale
- Text colors use appropriate gray shades
- Status colors (success, error, warning, info)
- Component-specific colors reference scales
3. Backward compatibility:
- Maintain $grey-* aliases for existing code
- Map old variables to new scale system
- TODO comments for future migration
This provides a more maintainable and scalable color system.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add geolocation Tiptap extension for embedding maps
- Create GeolocationExtended component for rendering map embeds
- Create GeolocationPlaceholder for editor insertion
- Add GeoCard component for displaying location data
- Support latitude, longitude, zoom level, and optional labels
- Enable location-based content in albums and posts
Allows editors to embed interactive maps with specific locations.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>