|
3 | 3 | * |
4 | 4 | * Source of truth for valid categories and their emoji/icons. |
5 | 5 | * Used across classifier, images, exports, and UI. |
| 6 | + * |
| 7 | + * Note: For lightweight imports without lucide-static, use categories-core.ts |
6 | 8 | */ |
7 | 9 |
|
8 | 10 | import { |
@@ -31,60 +33,15 @@ import { |
31 | 33 | Wine |
32 | 34 | } from 'lucide-static' |
33 | 35 |
|
34 | | -export const VALID_CATEGORIES = [ |
35 | | - 'food', |
36 | | - 'nightlife', |
37 | | - 'nature', |
38 | | - 'arts', |
39 | | - 'culture', |
40 | | - 'music', |
41 | | - 'entertainment', |
42 | | - 'events', |
43 | | - 'sports', |
44 | | - 'fitness', |
45 | | - 'wellness', |
46 | | - 'shopping', |
47 | | - 'travel', |
48 | | - 'experiences', |
49 | | - 'hobbies', |
50 | | - 'gaming', |
51 | | - 'learning', |
52 | | - 'home', |
53 | | - 'work', |
54 | | - 'social', |
55 | | - 'family', |
56 | | - 'pets', |
57 | | - 'other' |
58 | | -] as const |
59 | | - |
60 | | -export type ActivityCategory = (typeof VALID_CATEGORIES)[number] |
| 36 | +// Re-export core definitions (no heavy dependencies) |
| 37 | +export { |
| 38 | + type ActivityCategory, |
| 39 | + CATEGORY_COLORS, |
| 40 | + CATEGORY_EMOJI, |
| 41 | + VALID_CATEGORIES |
| 42 | +} from './categories-core' |
61 | 43 |
|
62 | | -/** Emoji for each activity category */ |
63 | | -export const CATEGORY_EMOJI: Record<ActivityCategory, string> = { |
64 | | - food: '🍽️', |
65 | | - nightlife: '🍸', |
66 | | - nature: '🌲', |
67 | | - arts: '🎨', |
68 | | - culture: '🏛️', |
69 | | - music: '🎵', |
70 | | - entertainment: '🎬', |
71 | | - events: '🎉', |
72 | | - sports: '⚽', |
73 | | - fitness: '💪', |
74 | | - wellness: '🧘', |
75 | | - shopping: '🛍️', |
76 | | - travel: '✈️', |
77 | | - experiences: '✨', |
78 | | - hobbies: '🎯', |
79 | | - gaming: '🎮', |
80 | | - learning: '📚', |
81 | | - home: '🏠', |
82 | | - work: '💼', |
83 | | - social: '👥', |
84 | | - family: '👨👩👧', |
85 | | - pets: '🐾', |
86 | | - other: '📍' |
87 | | -} |
| 44 | +import type { ActivityCategory } from './categories-core' |
88 | 45 |
|
89 | 46 | /** Lucide SVG icon for each activity category */ |
90 | 47 | export const CATEGORY_ICONS: Record<ActivityCategory, string> = { |
@@ -112,30 +69,3 @@ export const CATEGORY_ICONS: Record<ActivityCategory, string> = { |
112 | 69 | pets: PawPrint, |
113 | 70 | other: MapPin |
114 | 71 | } |
115 | | - |
116 | | -/** Background color for each activity category (Tailwind CSS 500-600 shades) */ |
117 | | -export const CATEGORY_COLORS: Record<ActivityCategory, string> = { |
118 | | - food: '#ef4444', // red-500 |
119 | | - nightlife: '#8b5cf6', // violet-500 |
120 | | - nature: '#22c55e', // green-500 |
121 | | - arts: '#f26b1f', // orange-550 (between 500 and 600) |
122 | | - culture: '#6366f1', // indigo-500 |
123 | | - music: '#ec4899', // pink-500 |
124 | | - entertainment: '#ca8a04', // yellow-600 |
125 | | - events: '#14b8a6', // teal-500 |
126 | | - sports: '#3b82f6', // blue-500 |
127 | | - fitness: '#f43f5e', // rose-500 |
128 | | - wellness: '#d946ef', // fuchsia-500 |
129 | | - shopping: '#a855f7', // purple-500 |
130 | | - travel: '#0ea5e9', // sky-500 |
131 | | - experiences: '#d97706', // amber-600 |
132 | | - hobbies: '#65a30d', // lime-600 |
133 | | - gaming: '#7c3aed', // violet-600 |
134 | | - learning: '#0284c7', // sky-600 |
135 | | - home: '#78716c', // stone-500 |
136 | | - work: '#64748b', // slate-500 |
137 | | - social: '#06b6d4', // cyan-500 |
138 | | - family: '#fb7185', // rose-400 |
139 | | - pets: '#65a30d', // lime-600 |
140 | | - other: '#6b7280' // gray-500 |
141 | | -} |
0 commit comments