BREAKING CHANGES: - Refactored monolithic manage.astro (7,623 lines) into modular architecture - Original file backed up as manage-old.astro NEW ARCHITECTURE: ✅ 5 Utility Libraries: - event-management.ts: Event data operations & formatting - ticket-management.ts: Ticket CRUD operations & sales data - seating-management.ts: Seating map management & layout generation - sales-analytics.ts: Sales metrics, reporting & data export - marketing-kit.ts: Marketing asset generation & social media ✅ 5 Shared Components: - TicketTypeModal.tsx: Reusable ticket type creation/editing - SeatingMapModal.tsx: Advanced seating map editor with drag-and-drop - EmbedCodeModal.tsx: Widget embedding with customization - OrdersTable.tsx: Comprehensive orders table with sorting/pagination - AttendeesTable.tsx: Attendee management with export capabilities ✅ 11 Tab Components: - TicketsTab.tsx: Ticket management with card/list views - VenueTab.tsx: Seating map management & venue configuration - OrdersTab.tsx: Sales data & order management - AttendeesTab.tsx: Attendee check-in & management - PresaleTab.tsx: Presale code generation & tracking - DiscountTab.tsx: Discount code management - AddonsTab.tsx: Add-on product management - PrintedTab.tsx: Printed ticket barcode management - SettingsTab.tsx: Event configuration & custom fields - MarketingTab.tsx: Marketing kit with social media templates - PromotionsTab.tsx: Campaign & promotion management ✅ 4 Infrastructure Components: - TabNavigation.tsx: Responsive tab navigation system - EventManagement.tsx: Main orchestration component - EventHeader.astro: Event information header - QuickStats.astro: Statistics dashboard BENEFITS: - 98.7% reduction in main file size (7,623 → ~100 lines) - Dramatic improvement in maintainability and team collaboration - Component-level testing now possible - Reusable components across multiple features - Lazy loading support for better performance - Full TypeScript support with proper interfaces - Separation of concerns: business logic separated from UI 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
95 lines
4.4 KiB
Markdown
95 lines
4.4 KiB
Markdown
# Replace Color Emoji Icons with Outline SVG Icons
|
|
|
|
## Current Issue
|
|
The tabs currently use color emoji icons (🎫, 🏛️, 📊, ⭐, 🎯, ⚙️) which need to be replaced with consistent outline SVG icons to match the design system.
|
|
|
|
## Analysis
|
|
**Current Icon Usage:**
|
|
- **Tickets Tab**: 🎫 (tickets emoji)
|
|
- **Venue Tab**: 🏛️ (building emoji)
|
|
- **Orders Tab**: 📊 (chart emoji)
|
|
- **Marketing Tab**: ⭐ (star emoji) + already has outline star SVG on desktop
|
|
- **Promotions Tab**: 🎯 (target emoji)
|
|
- **Settings Tab**: ⚙️ (gear emoji)
|
|
|
|
**Current Implementation:**
|
|
- Desktop tabs: Some have outline SVG icons (like Marketing), others just use text
|
|
- Mobile tabs: All use emoji icons
|
|
- Mobile dropdown: All use emoji icons
|
|
- Tab name mapping object: All use emoji icons
|
|
|
|
## Replacement Strategy
|
|
|
|
### 1. Create Consistent Outline Icons
|
|
Replace all emoji icons with outline SVG icons that match the existing design pattern:
|
|
- Use `fill="none" stroke="currentColor"` for consistency
|
|
- Use `stroke-width="2"` for proper line weight
|
|
- Size as `w-4 h-4` for desktop, `w-5 h-5` for mobile if needed
|
|
|
|
### 2. Icon Mappings
|
|
**Tickets** (🎫 → ticket outline):
|
|
```svg
|
|
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 5v2m0 4v2m0 4v2M5 5a2 2 0 00-2 2v3a2 2 0 110 4v3a2 2 0 002 2h14a2 2 0 002-2v-3a2 2 0 110-4V7a2 2 0 00-2-2H5z"/>
|
|
</svg>
|
|
```
|
|
|
|
**Venue** (🏛️ → building outline):
|
|
```svg
|
|
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"/>
|
|
</svg>
|
|
```
|
|
|
|
**Orders** (📊 → chart outline):
|
|
```svg
|
|
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"/>
|
|
</svg>
|
|
```
|
|
|
|
**Marketing** (⭐ → already has outline star, just needs consistency)
|
|
|
|
**Promotions** (🎯 → target outline):
|
|
```svg
|
|
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 12l3-3 3 3 4-4M8 21l4-4 4 4M3 4h18M4 4h16v12a1 1 0 01-1 1H5a1 1 0 01-1-1V4z"/>
|
|
</svg>
|
|
```
|
|
|
|
**Settings** (⚙️ → gear outline):
|
|
```svg
|
|
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"/>
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"/>
|
|
</svg>
|
|
```
|
|
|
|
### 3. Implementation Areas
|
|
**Update all locations:**
|
|
- [x] Desktop tab buttons (add SVG icons to all tabs)
|
|
- [x] Mobile tab buttons (replace emoji with SVG)
|
|
- [x] Mobile dropdown options (replace emoji with SVG)
|
|
- [x] Tab name mapping object (remove emoji, keep text only)
|
|
- [x] Any other references to emoji icons in the file
|
|
|
|
### 4. Consistency Rules
|
|
- All SVG icons should be `w-4 h-4` with `inline-block mr-1` for desktop
|
|
- All should use `fill="none" stroke="currentColor"`
|
|
- All should use `stroke-width="2"`
|
|
- Remove all emoji characters from the interface
|
|
|
|
This will create a consistent, professional look that matches the existing outline icon design pattern already used in the Marketing tab.
|
|
|
|
## Progress Checklist
|
|
- [x] Tickets tab desktop icon
|
|
- [x] Venue tab desktop icon
|
|
- [x] Orders tab desktop icon
|
|
- [x] Marketing tab desktop icon (already done)
|
|
- [x] Promotions tab desktop icon
|
|
- [x] Settings tab desktop icon
|
|
- [x] Mobile tab icons (all tabs)
|
|
- [x] Mobile dropdown icons (all tabs)
|
|
- [x] Tab name mapping object cleanup
|
|
- [x] Test all tabs display correctly
|
|
- [x] Verify responsive behavior |