cooking-temperature 1.0.3 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/icons.d.mts +3 -2
- package/dist/icons.d.ts +3 -2
- package/dist/icons.js +113 -60
- package/dist/icons.js.map +1 -1
- package/dist/icons.mjs +112 -60
- package/dist/icons.mjs.map +1 -1
- package/package.json +1 -1
package/dist/icons.d.mts
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
declare const CATEGORY_ICONS: Record<string, string>;
|
|
2
2
|
declare const POULTRY_ICONS: Record<string, string>;
|
|
3
3
|
declare const BEEF_ICONS: Record<string, string>;
|
|
4
|
+
declare const PORK_ICONS: Record<string, string>;
|
|
4
5
|
declare const SEAFOOD_ICONS: Record<string, string>;
|
|
5
6
|
declare const EGG_ICONS: Record<string, string>;
|
|
6
7
|
declare const VEGETABLE_ICONS: Record<string, string>;
|
|
7
8
|
declare const GRAIN_ICONS: Record<string, string>;
|
|
8
9
|
declare const INGREDIENT_ICONS: Record<string, string>;
|
|
9
10
|
/**
|
|
10
|
-
* Get icon for a category or ingredient by ID
|
|
11
|
+
* Get icon URL for a category or ingredient by ID
|
|
11
12
|
* Falls back to category icon if no specific ingredient icon exists
|
|
12
13
|
*/
|
|
13
14
|
declare const getIcon: (id: string, category?: string) => string | undefined;
|
|
14
15
|
|
|
15
|
-
export { BEEF_ICONS, CATEGORY_ICONS, EGG_ICONS, GRAIN_ICONS, INGREDIENT_ICONS, POULTRY_ICONS, SEAFOOD_ICONS, VEGETABLE_ICONS, getIcon };
|
|
16
|
+
export { BEEF_ICONS, CATEGORY_ICONS, EGG_ICONS, GRAIN_ICONS, INGREDIENT_ICONS, PORK_ICONS, POULTRY_ICONS, SEAFOOD_ICONS, VEGETABLE_ICONS, getIcon };
|
package/dist/icons.d.ts
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
declare const CATEGORY_ICONS: Record<string, string>;
|
|
2
2
|
declare const POULTRY_ICONS: Record<string, string>;
|
|
3
3
|
declare const BEEF_ICONS: Record<string, string>;
|
|
4
|
+
declare const PORK_ICONS: Record<string, string>;
|
|
4
5
|
declare const SEAFOOD_ICONS: Record<string, string>;
|
|
5
6
|
declare const EGG_ICONS: Record<string, string>;
|
|
6
7
|
declare const VEGETABLE_ICONS: Record<string, string>;
|
|
7
8
|
declare const GRAIN_ICONS: Record<string, string>;
|
|
8
9
|
declare const INGREDIENT_ICONS: Record<string, string>;
|
|
9
10
|
/**
|
|
10
|
-
* Get icon for a category or ingredient by ID
|
|
11
|
+
* Get icon URL for a category or ingredient by ID
|
|
11
12
|
* Falls back to category icon if no specific ingredient icon exists
|
|
12
13
|
*/
|
|
13
14
|
declare const getIcon: (id: string, category?: string) => string | undefined;
|
|
14
15
|
|
|
15
|
-
export { BEEF_ICONS, CATEGORY_ICONS, EGG_ICONS, GRAIN_ICONS, INGREDIENT_ICONS, POULTRY_ICONS, SEAFOOD_ICONS, VEGETABLE_ICONS, getIcon };
|
|
16
|
+
export { BEEF_ICONS, CATEGORY_ICONS, EGG_ICONS, GRAIN_ICONS, INGREDIENT_ICONS, PORK_ICONS, POULTRY_ICONS, SEAFOOD_ICONS, VEGETABLE_ICONS, getIcon };
|
package/dist/icons.js
CHANGED
|
@@ -25,89 +25,141 @@ __export(icons_exports, {
|
|
|
25
25
|
EGG_ICONS: () => EGG_ICONS,
|
|
26
26
|
GRAIN_ICONS: () => GRAIN_ICONS,
|
|
27
27
|
INGREDIENT_ICONS: () => INGREDIENT_ICONS,
|
|
28
|
+
PORK_ICONS: () => PORK_ICONS,
|
|
28
29
|
POULTRY_ICONS: () => POULTRY_ICONS,
|
|
29
30
|
SEAFOOD_ICONS: () => SEAFOOD_ICONS,
|
|
30
31
|
VEGETABLE_ICONS: () => VEGETABLE_ICONS,
|
|
31
32
|
getIcon: () => getIcon
|
|
32
33
|
});
|
|
33
34
|
module.exports = __toCommonJS(icons_exports);
|
|
35
|
+
var FLUENT_BASE = "https://registry.npmmirror.com/@lobehub/fluent-emoji-3d/latest/files/assets";
|
|
36
|
+
var fluent = (codepoint) => `${FLUENT_BASE}/${codepoint}.webp`;
|
|
34
37
|
var CATEGORY_ICONS = {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
38
|
+
poultry: fluent("1f357"),
|
|
39
|
+
// 🍗 Poultry Leg
|
|
40
|
+
beef: fluent("1f969"),
|
|
41
|
+
// 🥩 Cut of Meat
|
|
42
|
+
pork: fluent("1f356"),
|
|
43
|
+
// 🍖 Meat on Bone
|
|
44
|
+
seafood_fish: fluent("1f41f"),
|
|
45
|
+
// 🐟 Fish
|
|
46
|
+
seafood_shellfish: fluent("1f990"),
|
|
47
|
+
// 🦐 Shrimp
|
|
48
|
+
egg: fluent("1f95a"),
|
|
49
|
+
// 🥚 Egg
|
|
50
|
+
vegetable: fluent("1f966"),
|
|
51
|
+
// 🥦 Broccoli
|
|
52
|
+
grain: fluent("1f35a")
|
|
53
|
+
// 🍚 Cooked Rice
|
|
51
54
|
};
|
|
52
55
|
var POULTRY_ICONS = {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
56
|
+
chicken_breast: fluent("1f357"),
|
|
57
|
+
// 🍗
|
|
58
|
+
chicken_thigh: fluent("1f357"),
|
|
59
|
+
// 🍗
|
|
60
|
+
chicken_breast_boneless: fluent("1f357"),
|
|
61
|
+
// 🍗
|
|
62
|
+
chicken_thigh_boneless: fluent("1f357"),
|
|
63
|
+
// 🍗
|
|
64
|
+
chicken_whole: fluent("1f414"),
|
|
65
|
+
// 🐔
|
|
66
|
+
turkey_breast: fluent("1f983"),
|
|
67
|
+
// 🦃
|
|
68
|
+
duck: fluent("1f986")
|
|
69
|
+
// 🦆
|
|
61
70
|
};
|
|
62
71
|
var BEEF_ICONS = {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
72
|
+
beef_steak_ribeye: fluent("1f969"),
|
|
73
|
+
// 🥩
|
|
74
|
+
beef_ground: fluent("1f969"),
|
|
75
|
+
// 🥩
|
|
76
|
+
beef_roast: fluent("1f969")
|
|
77
|
+
// 🥩
|
|
78
|
+
};
|
|
79
|
+
var PORK_ICONS = {
|
|
80
|
+
pork_chop: fluent("1f356"),
|
|
81
|
+
// 🍖
|
|
82
|
+
pork_tenderloin: fluent("1f356"),
|
|
83
|
+
// 🍖
|
|
84
|
+
pork_ribs: fluent("1f356"),
|
|
85
|
+
// 🍖
|
|
86
|
+
bacon: fluent("1f953")
|
|
87
|
+
// 🥓
|
|
69
88
|
};
|
|
70
89
|
var SEAFOOD_ICONS = {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
90
|
+
salmon_fillet: fluent("1f41f"),
|
|
91
|
+
// 🐟
|
|
92
|
+
tuna_steak: fluent("1f41f"),
|
|
93
|
+
// 🐟
|
|
94
|
+
cod_fillet: fluent("1f41f"),
|
|
95
|
+
// 🐟
|
|
96
|
+
shrimp: fluent("1f990"),
|
|
97
|
+
// 🦐
|
|
98
|
+
lobster: fluent("1f99e"),
|
|
99
|
+
// 🦞
|
|
100
|
+
scallops: fluent("1f41a"),
|
|
101
|
+
// 🐚
|
|
102
|
+
crab: fluent("1f980")
|
|
103
|
+
// 🦀
|
|
79
104
|
};
|
|
80
105
|
var EGG_ICONS = {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
106
|
+
egg_fried: fluent("1f373"),
|
|
107
|
+
// 🍳
|
|
108
|
+
egg_boiled: fluent("1f95a"),
|
|
109
|
+
// 🥚
|
|
110
|
+
egg_scrambled: fluent("1f373"),
|
|
111
|
+
// 🍳
|
|
112
|
+
egg_poached: fluent("1f373"),
|
|
113
|
+
// 🍳
|
|
114
|
+
egg_omelette: fluent("1f373")
|
|
115
|
+
// 🍳
|
|
89
116
|
};
|
|
90
117
|
var VEGETABLE_ICONS = {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
118
|
+
broccoli: fluent("1f966"),
|
|
119
|
+
// 🥦
|
|
120
|
+
asparagus: fluent("1f96c"),
|
|
121
|
+
// 🥬 (leafy green, closest match)
|
|
122
|
+
potato: fluent("1f954"),
|
|
123
|
+
// 🥔
|
|
124
|
+
carrot: fluent("1f955"),
|
|
125
|
+
// 🥕
|
|
126
|
+
corn: fluent("1f33d"),
|
|
127
|
+
// 🌽
|
|
128
|
+
tomato: fluent("1f345"),
|
|
129
|
+
// 🍅
|
|
130
|
+
onion: fluent("1f9c5"),
|
|
131
|
+
// 🧅
|
|
132
|
+
garlic: fluent("1f9c4"),
|
|
133
|
+
// 🧄
|
|
134
|
+
pepper: fluent("1fad1"),
|
|
135
|
+
// 🫑 Bell Pepper
|
|
136
|
+
leafy_greens: fluent("1f96c"),
|
|
137
|
+
// 🥬
|
|
138
|
+
mushroom: fluent("1f344"),
|
|
139
|
+
// 🍄
|
|
140
|
+
eggplant: fluent("1f346"),
|
|
141
|
+
// 🍆
|
|
142
|
+
cucumber: fluent("1f952"),
|
|
143
|
+
// 🥒
|
|
144
|
+
avocado: fluent("1f951")
|
|
145
|
+
// 🥑
|
|
99
146
|
};
|
|
100
147
|
var GRAIN_ICONS = {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
148
|
+
rice_white: fluent("1f35a"),
|
|
149
|
+
// 🍚
|
|
150
|
+
rice_brown: fluent("1f35a"),
|
|
151
|
+
// 🍚
|
|
152
|
+
pasta: fluent("1f35d"),
|
|
153
|
+
// 🍝
|
|
154
|
+
bread: fluent("1f35e"),
|
|
155
|
+
// 🍞
|
|
156
|
+
quinoa: fluent("1f35a")
|
|
157
|
+
// 🍚
|
|
107
158
|
};
|
|
108
159
|
var INGREDIENT_ICONS = {
|
|
109
160
|
...POULTRY_ICONS,
|
|
110
161
|
...BEEF_ICONS,
|
|
162
|
+
...PORK_ICONS,
|
|
111
163
|
...SEAFOOD_ICONS,
|
|
112
164
|
...EGG_ICONS,
|
|
113
165
|
...VEGETABLE_ICONS,
|
|
@@ -129,6 +181,7 @@ var getIcon = (id, category) => {
|
|
|
129
181
|
EGG_ICONS,
|
|
130
182
|
GRAIN_ICONS,
|
|
131
183
|
INGREDIENT_ICONS,
|
|
184
|
+
PORK_ICONS,
|
|
132
185
|
POULTRY_ICONS,
|
|
133
186
|
SEAFOOD_ICONS,
|
|
134
187
|
VEGETABLE_ICONS,
|
package/dist/icons.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../icons.ts"],"sourcesContent":["// SVG icons as data URLs for the cooking-temperature library\n\n// =============================================================================\n// CATEGORY ICONS\n// =============================================================================\n\nexport const CATEGORY_ICONS: Record<string, string> = {\n // Poultry - Chicken drumstick\n poultry: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTE1LjUgM0MxMy4wMSAzIDExIDUuMDEgMTEgNy41QzExIDguMjcgMTEuMTkgOS4wMSAxMS41MyA5LjY1TDMuNSAxNy42OEMzLjE4IDE4IDMgMTguNDMgMyAxOC44OEMzIDE5LjgxIDMuNzQgMjAuNjQgNC42NyAyMC45MUM1LjA4IDIxLjAzIDUuNTMgMjEgNS45IDIwLjgyTDYuNSAyMC41TDcuNDQgMjEuMzFDNy43OCAyMS42IDguMjMgMjEuNzUgOC42OSAyMS43NUM5LjQgMjEuNzUgMTAuMDUgMjEuNDIgMTAuNDUgMjAuODhMMTEgMjAuMTNMMTEuNTUgMjAuODhDMTEuOTUgMjEuNDIgMTIuNiAyMS43NSAxMy4zMSAyMS43NUMxMy43NyAyMS43NSAxNC4yMiAyMS42IDE0LjU2IDIxLjMxTDE1LjUgMjAuNUwxNi4xIDIwLjgyQzE2LjQ3IDIxIDE2LjkyIDIxLjAzIDE3LjMzIDIwLjkxQzE4LjI2IDIwLjY0IDE5IDE5LjgxIDE5IDE4Ljg4QzE5IDE4LjQzIDE4LjgyIDE4IDE4LjUgMTcuNjhMMTQuMzUgMTMuNTNDMTQuOTkgMTMuMTkgMTUuNzMgMTMgMTYuNSAxM0MxOC45OSAxMyAyMSAxMC45OSAyMSA4LjVDMjEgNi4wMSAxOC45OSA0IDE2LjUgNEMxNi4xNyA0IDE1LjgzIDQuMDMgMTUuNSA0LjFWM1oiIGZpbGw9IiNGNTlFMEIiLz48cGF0aCBkPSJNMTYuNSA1QzE4LjQzIDUgMjAgNi41NyAyMCA4LjVDMjAgMTAuNDMgMTguNDMgMTIgMTYuNSAxMkMxNS4zNiAxMiAxNC4zMyAxMS40OCAxMy42MiAxMC42N0wxMy4yOCAxMC4yOEwxMi45MyA5Ljg0QzEyLjM0IDkuMDMgMTIgOC4wMyAxMiA3QzEyIDUuMDcgMTMuNTcgMy41IDE1LjUgMy41VjUuNUMxNC42OCA1LjUgMTQgNi4xOCAxNCA3QzE0IDcuNTYgMTQuMTkgOC4wOCAxNC41MSA4LjQ5TDE0Ljg2IDguOTNMMTUuMjEgOS4zMkMxNS42NSA5Ljc1IDE2LjA1IDEwIDE2LjUgMTBDMTcuMzMgMTAgMTggOS4zMyAxOCA4LjVDMTggNy42NyAxNy4zMyA3IDE2LjUgN1Y1WiIgZmlsbD0iI0Q5NzcwNiIvPjwvc3ZnPg==`,\n\n // Beef - Steak cut\n beef: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTIwLjUgNkMxOS4xIDMuOCAxNi4xIDIuNSAxMi41IDIuNUM3LjUgMi41IDMuNSA1LjUgMy41IDlDMy41IDEwLjggNC4zIDEyLjQgNS43IDE0TDQgMTguNUM0IDE5LjUgNS41IDIxIDcuNSAyMUM4LjIgMjEgOC44IDIwLjggOS41IDIwLjNMMTIgMThMMTQuNSAyMC4zQzE1LjIgMjAuOCAxNS44IDIxIDE2LjUgMjFDMTguNSAyMSAyMCAxOS41IDIwIDE4LjVMMTguMyAxNEMxOS43IDEyLjQgMjAuNSAxMC44IDIwLjUgOVY2WiIgZmlsbD0iI0VGNDQ0NCIvPjxwYXRoIGQ9Ik0xNy41IDlDMTcuNSAxMC45IDE1LjQgMTIuNSAxMi41IDEyLjVDOS42IDEyLjUgNy41IDEwLjkgNy41IDlDNy41IDcuMSA5LjYgNS41IDEyLjUgNS41QzE1LjQgNS41IDE3LjUgNy4xIDE3LjUgOVoiIGZpbGw9IiNGQ0EwQTAiLz48cGF0aCBkPSJNMTQgOEMxNCA4LjggMTMuMyA5LjUgMTIuNSA5LjVDMTEuNyA5LjUgMTEgOC44IDExIDhDMTEgNy4yIDExLjcgNi41IDEyLjUgNi41QzEzLjMgNi41IDE0IDcuMiAxNCA4WiIgZmlsbD0iI0ZFRTJFMiIvPjwvc3ZnPg==`,\n\n // Pork - Pork chop/meat on bone\n pork: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTQgMTBDNCAxNC40IDcuNiAxOCAxMiAxOEMxNi40IDE4IDIwIDE0LjQgMjAgMTBDMjAgNy45IDE5LjIgNiAxNy44IDQuNkMxNi44IDMuNiAxNS41IDMgMTQgM0gxMEM4LjUgMyA3LjIgMy42IDYuMiA0LjZDNC44IDYgNCAxLjkgNCAxMFoiIGZpbGw9IiNGQkI0QjQiLz48cGF0aCBkPSJNMTIgMThWMjFNMTIgMjFIOE0xMiAyMUgxNiIgc3Ryb2tlPSIjRkVFMkUyIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjxwYXRoIGQ9Ik04IDlDOCAxMC43IDkuMyAxMiAxMSAxMiIgc3Ryb2tlPSIjRkRFNjhBIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjxwYXRoIGQ9Ik03IDVDNi41IDYgNi41IDcgNyA4IiBzdHJva2U9IiNFRjQ0NDQiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48cGF0aCBkPSJNMTcgNUMxNy41IDYgMTcuNSA3IDE3IDgiIHN0cm9rZT0iI0VGNDQ0NCIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjwvc3ZnPg==`,\n\n // Seafood Fish - Fish\n seafood_fish: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTIyIDEyQzIyIDEyIDE5IDE3IDE0IDE3QzEyIDE3IDEwLjUgMTYuNSA5LjUgMTZMNiAyMFY0TDkuNSA4QzEwLjUgNy41IDEyIDcgMTQgN0MxOSA3IDIyIDEyIDIyIDEyWiIgZmlsbD0iIzYwQTVGQSIvPjxjaXJjbGUgY3g9IjE2IiBjeT0iMTEiIHI9IjEuNSIgZmlsbD0iIzFGMjkzNyIvPjxjaXJjbGUgY3g9IjE2LjMiIGN5PSIxMC43IiByPSIwLjUiIGZpbGw9IiNGRkZGRkYiLz48cGF0aCBkPSJNMTQgMTJDMTQgMTIgMTIgMTMgMTAuNSAxM0M5IDEzIDguNSAxMi41IDguNSAxMkM4LjUgMTEuNSA5IDExIDEwLjUgMTFDMTIgMTEgMTQgMTIgMTQgMTJaIiBmaWxsPSIjOTNDNUZEIi8+PHBhdGggZD0iTTYgNEwzIDFNNiAyMEwzIDIzIiBzdHJva2U9IiMzQjgyRjYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PC9zdmc+`,\n\n // Seafood Shellfish - Shrimp\n seafood_shellfish: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTE5IDdDMTkgNyAxOCA0IDE0IDRDMTAgNCAxMCA3IDEwIDdDMTAgNyA4IDggNyAxMEM2IDEyIDYgMTQgNyAxNkM4IDE4IDEwIDE5IDEyIDE5QzE0IDE5IDE1IDE4IDE2IDE3TDE4IDE5TDIwIDE3TDE4IDE1QzE5IDE0IDIwIDEyIDIwIDEwQzIwIDggMTkgNyAxOSA3WiIgZmlsbD0iI0ZCQjRCNCIvPjxwYXRoIGQ9Ik0xMyA4QzE0LjEgOCAxNSA4LjkgMTUgMTBDMTUgMTEuMSAxNC4xIDEyIDEzIDEyQzExLjkgMTIgMTEgMTEuMSAxMSAxMEMxMSA4LjkgMTEuOSA4IDEzIDhaIiBmaWxsPSIjRkVFMkUyIi8+PHBhdGggZD0iTTE1IDRDMTUgNCAxNiAyIDE4IDJNMTMgNEMxMyA0IDEzIDIgMTEgMiIgc3Ryb2tlPSIjRjg3MTcxIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PGNpcmNsZSBjeD0iMTUiIGN5PSIxMCIgcj0iMSIgZmlsbD0iIzFGMjkzNyIvPjwvc3ZnPg==`,\n\n // Egg\n egg: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTEyIDNDOCAzIDUgOC41IDUgMTNDNSAxNy41IDguMSAyMSAxMiAyMUMxNS45IDIxIDE5IDE3LjUgMTkgMTNDMTkgOC41IDE2IDMgMTIgM1oiIGZpbGw9IiNGRUY5QzMiIHN0cm9rZT0iI0ZERTY4QSIgc3Ryb2tlLXdpZHRoPSIxLjUiLz48ZWxsaXBzZSBjeD0iMTIiIGN5PSIxMyIgcng9IjUiIHJ5PSI0IiBmaWxsPSIjRkJCRjI0Ii8+PGVsbGlwc2UgY3g9IjEyIiBjeT0iMTMiIHJ4PSIzIiByeT0iMi41IiBmaWxsPSIjRjU5RTBCIi8+PHBhdGggZD0iTTEwIDEyQzEwLjUgMTEuNSAxMS41IDExLjUgMTIgMTIiIHN0cm9rZT0iI0ZFRjlDMyIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48L3N2Zz4=`,\n\n // Vegetable - Broccoli\n vegetable: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTEyIDIxVjE0IiBzdHJva2U9IiM2NUExNDUiIHN0cm9rZS13aWR0aD0iMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PHBhdGggZD0iTTkgMjFWMTYiIHN0cm9rZT0iIzY1QTE0NSIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48cGF0aCBkPSJNMTUgMjFWMTYiIHN0cm9rZT0iIzY1QTE0NSIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48Y2lyY2xlIGN4PSI4IiBjeT0iOCIgcj0iNCIgZmlsbD0iIzIyQzU1RSIvPjxjaXJjbGUgY3g9IjE2IiBjeT0iOCIgcj0iNCIgZmlsbD0iIzIyQzU1RSIvPjxjaXJjbGUgY3g9IjEyIiBjeT0iNSIgcj0iNCIgZmlsbD0iIzIyQzU1RSIvPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTAiIHI9IjQiIGZpbGw9IiMyMkM1NUUiLz48Y2lyY2xlIGN4PSI2IiBjeT0iMTEiIHI9IjIuNSIgZmlsbD0iIzE2QTM0QSIvPjxjaXJjbGUgY3g9IjE4IiBjeT0iMTEiIHI9IjIuNSIgZmlsbD0iIzE2QTM0QSIvPjxjaXJjbGUgY3g9IjkiIGN5PSI2IiByPSIyIiBmaWxsPSIjNEFERTgwIi8+PGNpcmNsZSBjeD0iMTQiIGN5PSI4IiByPSIxLjUiIGZpbGw9IiM0QURFODAiLz48L3N2Zz4=`,\n\n // Grain - Rice bowl\n grain: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTQgMTFDNCAxMSA0IDE4IDEyIDE4QzIwIDE4IDIwIDExIDIwIDExSDRaIiBmaWxsPSIjRkZGRkZGIiBzdHJva2U9IiNFNUU3RUIiIHN0cm9rZS13aWR0aD0iMS41Ii8+PHBhdGggZD0iTTUgMThDNSAxOCA2IDIxIDEyIDIxQzE4IDIxIDE5IDE4IDE5IDE4IiBzdHJva2U9IiNFNUU3RUIiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48ZWxsaXBzZSBjeD0iOCIgY3k9IjkiIHJ4PSIxLjUiIHJ5PSIxIiBmaWxsPSIjRkVGM0M3Ii8+PGVsbGlwc2UgY3g9IjEyIiBjeT0iOCIgcng9IjEuNSIgcnk9IjEiIGZpbGw9IiNGRUYzQzciLz48ZWxsaXBzZSBjeD0iMTYiIGN5PSI5IiByeD0iMS41IiByeT0iMSIgZmlsbD0iI0ZFRjNDNyIvPjxlbGxpcHNlIGN4PSIxMCIgY3k9IjExIiByeD0iMS41IiByeT0iMSIgZmlsbD0iI0ZFRjNDNyIvPjxlbGxpcHNlIGN4PSIxNCIgY3k9IjExIiByeD0iMS41IiByeT0iMSIgZmlsbD0iI0ZFRjNDNyIvPjxlbGxpcHNlIGN4PSI3IiBjeT0iMTIiIHJ4PSIxIiByeT0iMC43NSIgZmlsbD0iI0ZFRjNDNyIvPjxlbGxpcHNlIGN4PSIxNyIgY3k9IjEyIiByeD0iMSIgcnk9IjAuNzUiIGZpbGw9IiNGRUYzQzciLz48L3N2Zz4=`,\n};\n\n// =============================================================================\n// INGREDIENT ICONS - Poultry\n// =============================================================================\n\nexport const POULTRY_ICONS: Record<string, string> = {\n // Chicken breast\n chicken_breast: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTUgOEM1IDUgOCAzIDEyIDNDMTYgMyAxOSA1IDE5IDhDMTkgMTEgMTggMTUgMTcgMTdDMTYgMTkgMTQgMjAgMTIgMjBDMTAgMjAgOCAxOSA3IDE3QzYgMTUgNSAxMSA1IDhaIiBmaWxsPSIjRkRFNjhBIiBzdHJva2U9IiNGNTlFMEIiIHN0cm9rZS13aWR0aD0iMS41Ii8+PHBhdGggZD0iTTggOEMxMCA3IDE0IDcgMTYgOCIgc3Ryb2tlPSIjRjU5RTBCIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjxwYXRoIGQ9Ik05IDEyQzEwIDExIDE0IDExIDE1IDEyIiBzdHJva2U9IiNGNTlFMEIiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PC9zdmc+`,\n\n // Chicken thigh\n chicken_thigh: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTE2IDRDMTQgMyAxMCAzIDggNEM2IDUgNCAxMCA1IDE0QzYgMTggOCAyMCAxMSAyMEwxMiAxOEwxNCAxNUMxNiAxMiAxOCA4IDE4IDZDMTggNSAxNyA0IDE2IDRaIiBmaWxsPSIjRkRFNjhBIiBzdHJva2U9IiNGNTlFMEIiIHN0cm9rZS13aWR0aD0iMS41Ii8+PHBhdGggZD0iTTExIDIwTDEwIDIySDgiIHN0cm9rZT0iI0Q5NzcwNiIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48cGF0aCBkPSJNNyA5QzkgOCAxMiA4IDE0IDkiIHN0cm9rZT0iI0Y1OUUwQiIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48L3N2Zz4=`,\n\n // Whole chicken\n whole_chicken: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTEyIDJDOCAyIDQgNiA0IDExQzQgMTQgNSAxNyA3IDE5TDYgMjFIOEwxMCAxOUgxNEwxNiAyMUgxOEwxNyAxOUMxOSAxNyAyMCAxNCAyMCAxMUMyMCA2IDE2IDIgMTIgMloiIGZpbGw9IiNGREU2OEEiIHN0cm9rZT0iI0Y1OUUwQiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz48cGF0aCBkPSJNOCA5QzEwIDggMTQgOCAxNiA5IiBzdHJva2U9IiNGNTlFMEIiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PHBhdGggZD0iTTkgMTNDMTEgMTIgMTMgMTIgMTUgMTMiIHN0cm9rZT0iI0Y1OUUwQiIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48Y2lyY2xlIGN4PSI5IiBjeT0iNyIgcj0iMSIgZmlsbD0iI0Q5NzcwNiIvPjxjaXJjbGUgY3g9IjE1IiBjeT0iNyIgcj0iMSIgZmlsbD0iI0Q5NzcwNiIvPjwvc3ZnPg==`,\n\n // Turkey breast\n turkey_breast: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTQgOUM0IDUgNyAyIDEyIDJDMTcgMiAyMCA1IDIwIDlDMjAgMTMgMTggMTggMTYgMjBMMTQgMjFIMTBMOCAyMEM2IDE4IDQgMTMgNCA5WiIgZmlsbD0iI0ZCQjRCNCIgc3Ryb2tlPSIjRjg3MTcxIiBzdHJva2Utd2lkdGg9IjEuNSIvPjxwYXRoIGQ9Ik03IDlDMTAgNyAxNCA3IDE3IDkiIHN0cm9rZT0iI0Y4NzE3MSIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48cGF0aCBkPSJNOCAxM0MxMCAxMiAxNCAxMiAxNiAxMyIgc3Ryb2tlPSIjRjg3MTcxIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjwvc3ZnPg==`,\n};\n\n// =============================================================================\n// INGREDIENT ICONS - Beef\n// =============================================================================\n\nexport const BEEF_ICONS: Record<string, string> = {\n // Ribeye steak\n beef_steak_ribeye: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTQgOEM0IDUgNyAzIDEyIDNDMTcgMyAyMCA1IDIwIDhDMjAgMTEgMTkgMTUgMTcgMThDMTUgMjAgMTQgMjEgMTIgMjFDMTAgMjEgOSAyMCA3IDE4QzUgMTUgNCAxMSA0IDhaIiBmaWxsPSIjRUY0NDQ0IiBzdHJva2U9IiNCOTFDMUMiIHN0cm9rZS13aWR0aD0iMS41Ii8+PHBhdGggZD0iTTcgOEMxMCA3IDE0IDcgMTcgOCIgc3Ryb2tlPSIjRkVFMkUyIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjxwYXRoIGQ9Ik04IDEyQzEwIDExIDE0IDExIDE2IDEyIiBzdHJva2U9IiNGQ0EwQTAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48Y2lyY2xlIGN4PSIxMCIgY3k9IjE1IiByPSIxLjUiIGZpbGw9IiNGRUUyRTIiLz48L3N2Zz4=`,\n\n // Ground beef\n beef_ground: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTQgMTBDNCA3IDcgNSAxMiA1QzE3IDUgMjAgNyAyMCAxMEMyMCAxMyAxNyAxNSAxMiAxNUM3IDE1IDQgMTMgNCAxMFoiIGZpbGw9IiM5OTFFQjgiLz48cGF0aCBkPSJNNiAxMEMxMCA4IDE0IDggMTggMTAiIHN0cm9rZT0iI0M4NEM2OCIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48cGF0aCBkPSJNOCAxMkMxMCAxMSAxNCAxMSAxNiAxMiIgc3Ryb2tlPSIjQzg0QzY4IiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjxwYXRoIGQ9Ik01IDE1QzUgMTggOCAxOSAxMiAxOUMxNiAxOSAxOSAxOCAxOSAxNSIgc3Ryb2tlPSIjN0YxRDFEIiBzdHJva2Utd2lkdGg9IjEuNSIvPjxjaXJjbGUgY3g9IjgiIGN5PSI5IiByPSIwLjUiIGZpbGw9IiNGRUUyRTIiLz48Y2lyY2xlIGN4PSIxNCIgY3k9IjgiIHI9IjAuNSIgZmlsbD0iI0ZFRTJFMiIvPjxjaXJjbGUgY3g9IjExIiBjeT0iMTEiIHI9IjAuNSIgZmlsbD0iI0ZFRTJFMiIvPjwvc3ZnPg==`,\n\n // Beef roast\n beef_roast: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHJlY3QgeD0iNCIgeT0iNiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjEyIiByeD0iMiIgZmlsbD0iI0VGNDQ0NCIgc3Ryb2tlPSIjQjkxQzFDIiBzdHJva2Utd2lkdGg9IjEuNSIvPjxwYXRoIGQ9Ik00IDEwSDE4IiBzdHJva2U9IiNGQ0EwQTAiIHN0cm9rZS13aWR0aD0iMiIvPjxwYXRoIGQ9Ik00IDE0SDE4IiBzdHJva2U9IiNGQ0EwQTAiIHN0cm9rZS13aWR0aD0iMiIvPjxwYXRoIGQ9Ik0yMCAxMkgyMiIgc3Ryb2tlPSIjRDk3NzA2IiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjxwYXRoIGQ9Ik0yIDEySDQiIHN0cm9rZT0iI0Q5NzcwNiIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48L3N2Zz4=`,\n};\n\n// =============================================================================\n// INGREDIENT ICONS - Seafood\n// =============================================================================\n\nexport const SEAFOOD_ICONS: Record<string, string> = {\n // Salmon fillet\n salmon_fillet: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTMgMTBDMyA4IDYgNiAxMiA2QzE4IDYgMjEgOCAyMSAxMEMyMSAxMiAxOSAxNyAxNiAxOEM2IDE4IDMgMTIgMyAxMFoiIGZpbGw9IiNGQjkyM0MiIHN0cm9rZT0iI0VBNTgwQyIgc3Ryb2tlLXdpZHRoPSIxLjUiLz48cGF0aCBkPSJNNiAxMEMxMCA5IDE0IDkgMTggMTAiIHN0cm9rZT0iI0ZFRDdBQSIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjxwYXRoIGQ9Ik03IDEzQzEwIDEyIDE0IDEyIDE3IDEzIiBzdHJva2U9IiNGRUQ3QUEiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48cGF0aCBkPSJNMTkgOEMyMCA3IDIxIDcgMjIgOCIgc3Ryb2tlPSIjOTk5IiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjwvc3ZnPg==`,\n\n // Shrimp\n shrimp: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTE4IDZDMTggNiAxNyAzIDEzIDNDOSAzIDkgNiA5IDZDOSA2IDcgNyA2IDlDNSAxMSA1IDEzIDYgMTVDNyAxNyA5IDE4IDExIDE4QzEzIDE4IDE0IDE3IDE1IDE2TDE3IDE4TDE5IDE2TDE3IDE0QzE4IDEzIDE5IDExIDE5IDlDMTkgNyAxOCA2IDE4IDZaIiBmaWxsPSIjRkJCNEI0IiBzdHJva2U9IiNGODcxNzEiIHN0cm9rZS13aWR0aD0iMS41Ii8+PHBhdGggZD0iTTEyIDdDMTMuMSA3IDE0IDcuOSAxNCA5QzE0IDEwLjEgMTMuMSAxMSAxMiAxMUMxMC45IDExIDEwIDEwLjEgMTAgOUMxMCA3LjkgMTAuOSA3IDEyIDdaIiBmaWxsPSIjRkVFMkUyIi8+PHBhdGggZD0iTTE0IDNDMTQGNCAXNSIYTCE3IDJNMTIgM0MxMiAzIDEyIDEgMTAgMSIgc3Ryb2tlPSIjRjg3MTcxIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PGNpcmNsZSBjeD0iMTQiIGN5PSI5IiByPSIxIiBmaWxsPSIjMUYyOTM3Ii8+PC9zdmc+`,\n\n // Cod fillet\n cod_fillet: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTMgMTFDMyA5IDYgNyAxMiA3QzE4IDcgMjEgOSAyMSAxMUMyMSAxMyAxOSAxNyAxNiAxN0M2IDE3IDMgMTMgMyAxMVoiIGZpbGw9IiNGRUYzQzciIHN0cm9rZT0iI0ZERTY4QSIgc3Ryb2tlLXdpZHRoPSIxLjUiLz48cGF0aCBkPSJNNiAxMUMxMCAxMCAxNCAxMCAxOCAxMSIgc3Ryb2tlPSIjRkRFNjhBIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PHBhdGggZD0iTTggMTNDMTAgMTIgMTQgMTIgMTYgMTMiIHN0cm9rZT0iI0ZERTY4QSIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjwvc3ZnPg==`,\n\n // Tuna steak\n tuna_steak: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTQgOEM0IDUgNyAzIDEyIDNDMTcgMyAyMCA1IDIwIDhDMjAgMTEgMTggMTYgMTYgMThDMTQgMjAgMTAgMjAgOCAxOEM2IDE2IDQgMTEgNCA4WiIgZmlsbD0iI0VGNDQ0NCIgc3Ryb2tlPSIjQjkxQzFDIiBzdHJva2Utd2lkdGg9IjEuNSIvPjxwYXRoIGQ9Ik03IDhDMTAgNyAxNCA3IDE3IDgiIHN0cm9rZT0iI0ZDQTBBMCIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48cGF0aCBkPSJNOCAxMkMxMCAxMSAxNCAxMSAxNiAxMiIgc3Ryb2tlPSIjRkNBMEEwIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PC9zdmc+`,\n};\n\n// =============================================================================\n// INGREDIENT ICONS - Eggs\n// =============================================================================\n\nexport const EGG_ICONS: Record<string, string> = {\n // Fried egg\n egg_fried: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTQgMTJDMyA4IDUgNSA4IDRDMTEgMyAxMyA0IDE1IDVDMTcgNiAxOSA1IDIwIDdDMjEgOSAyMSAxMiAyMCAxNEMxOSAxNiAxNyAxOCAxNCAxOUMxMSAyMCA3IDE5IDUgMTdDMyAxNSA0IDE0IDQgMTJaIiBmaWxsPSIjRkZGRkZGIiBzdHJva2U9IiNFNUU3RUIiIHN0cm9rZS13aWR0aD0iMS41Ii8+PGVsbGlwc2UgY3g9IjEyIiBjeT0iMTEiIHJ4PSI1IiByeT0iNCIgZmlsbD0iI0ZCQkYyNCIvPjxlbGxpcHNlIGN4PSIxMiIgY3k9IjExIiByeD0iMyIgcnk9IjIuNSIgZmlsbD0iI0Y1OUUwQiIvPjxwYXRoIGQ9Ik0xMCAxMEMxMC41IDkuNSAxMS41IDkuNSAxMiAxMCIgc3Ryb2tlPSIjRkVGOUMzIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjwvc3ZnPg==`,\n\n // Boiled egg\n egg_boiled: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTEyIDNDOCAzIDUgOC41IDUgMTNDNSAxNy41IDguMSAyMSAxMiAyMUMxNS45IDIxIDE5IDE3LjUgMTkgMTNDMTkgOC41IDE2IDMgMTIgM1oiIGZpbGw9IiNGRUY5QzMiIHN0cm9rZT0iI0ZERTY4QSIgc3Ryb2tlLXdpZHRoPSIxLjUiLz48cGF0aCBkPSJNNSAxMkgxOSIgc3Ryb2tlPSIjRkRFNjhBIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWRhc2hhcnJheT0iMiAyIi8+PGVsbGlwc2UgY3g9IjEyIiBjeT0iMTUiIHJ4PSI0IiByeT0iMyIgZmlsbD0iI0ZCQkYyNCIvPjxlbGxpcHNlIGN4PSIxMiIgY3k9IjE1IiByeD0iMiIgcnk9IjEuNSIgZmlsbD0iI0Y1OUUwQiIvPjwvc3ZnPg==`,\n\n // Scrambled eggs\n egg_scrambled: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTQgMTBDNCAxMyA3IDE2IDEyIDE2QzE3IDE2IDIwIDEzIDIwIDEwQzIwIDcgMTcgNSAxMiA1QzcgNSA0IDcgNCAxMFoiIGZpbGw9IiNGQkJGMjQiIHN0cm9rZT0iI0Y1OUUwQiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz48cGF0aCBkPSJNNiAxMEM4IDkgMTAgOSAxMiAxMEMxNCAxMSAxNiAxMSAxOCAxMCIgc3Ryb2tlPSIjRkVGOUMzIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PHBhdGggZD0iTTggMTNDMTAgMTIgMTQgMTIgMTYgMTMiIHN0cm9rZT0iI0ZFRjlDMyIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjxwYXRoIGQ9Ik00IDE2QzQgMTggNyAxOSAxMiAxOUMxNyAxOSAyMCAxOCAyMCAxNiIgc3Ryb2tlPSIjRjU5RTBCIiBzdHJva2Utd2lkdGg9IjEuNSIvPjwvc3ZnPg==`,\n\n // Poached egg\n egg_poached: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTUgMTFDNCA4IDYgNSAxMiA1QzE4IDUgMjAgOCAxOSAxMUMxOCAxNCAxNiAxNyAxMiAxN0M4IDE3IDYgMTQgNSAxMVoiIGZpbGw9IiNGRkZGRkYiIHN0cm9rZT0iI0U1RTdFQiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz48ZWxsaXBzZSBjeD0iMTIiIGN5PSIxMSIgcng9IjQiIHJ5PSIzIiBmaWxsPSIjRkJCRjI0Ii8+PGVsbGlwc2UgY3g9IjEyIiBjeT0iMTEiIHJ4PSIyIiByeT0iMS41IiBmaWxsPSIjRjU5RTBCIi8+PC9zdmc+`,\n};\n\n// =============================================================================\n// INGREDIENT ICONS - Vegetables\n// =============================================================================\n\nexport const VEGETABLE_ICONS: Record<string, string> = {\n // Broccoli\n broccoli: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTEyIDIxVjE0IiBzdHJva2U9IiM2NUExNDUiIHN0cm9rZS13aWR0aD0iMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PGNpcmNsZSBjeD0iOCIgY3k9IjgiIHI9IjQiIGZpbGw9IiMyMkM1NUUiLz48Y2lyY2xlIGN4PSIxNiIgY3k9IjgiIHI9IjQiIGZpbGw9IiMyMkM1NUUiLz48Y2lyY2xlIGN4PSIxMiIgY3k9IjUiIHI9IjQiIGZpbGw9IiMyMkM1NUUiLz48Y2lyY2xlIGN4PSIxMiIgY3k9IjEwIiByPSI0IiBmaWxsPSIjMjJDNTVFIi8+PGNpcmNsZSBjeD0iOSIgY3k9IjYiIHI9IjIiIGZpbGw9IiM0QURFODAiLz48Y2lyY2xlIGN4PSIxNCIgY3k9IjgiIHI9IjEuNSIgZmlsbD0iIzRBREU4MCIvPjwvc3ZnPg==`,\n\n // Asparagus\n asparagus: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTggMjFWOEw5IDRMMTAgOFYyMSIgc3Ryb2tlPSIjNjVBMTQ1IiBzdHJva2Utd2lkdGg9IjIiIGZpbGw9IiM2NUExNDUiLz48cGF0aCBkPSJNMTEgMjFWOUwxMiA1TDEzIDlWMjEiIHN0cm9rZT0iIzIyQzU1RSIgc3Ryb2tlLXdpZHRoPSIyIiBmaWxsPSIjMjJDNTVFIi8+PHBhdGggZD0iTTE0IDIxVjEwTDE1IDZMMTYgMTBWMjEiIHN0cm9rZT0iIzY1QTE0NSIgc3Ryb2tlLXdpZHRoPSIyIiBmaWxsPSIjNjVBMTQ1Ii8+PGNpcmNsZSBjeD0iOSIgY3k9IjQiIHI9IjEuNSIgZmlsbD0iIzE2QTM0QSIvPjxjaXJjbGUgY3g9IjEyIiBjeT0iNSIgcj0iMS41IiBmaWxsPSIjMTZBMzRBIi8+PGNpcmNsZSBjeD0iMTUiIGN5PSI2IiByPSIxLjUiIGZpbGw9IiMxNkEzNEEiLz48L3N2Zz4=`,\n\n // Potato\n potato: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTUgMTJDNSA4IDggNSAxMiA1QzE2IDUgMTkgOCAxOSAxMkMxOSAxNiAxNiAxOSAxMiAxOUM4IDE5IDUgMTYgNSAxMloiIGZpbGw9IiNEOTc3MDYiIHN0cm9rZT0iI0I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIxLjUiLz48Y2lyY2xlIGN4PSI5IiBjeT0iMTAiIHI9IjEiIGZpbGw9IiNCNDUzMDkiLz48Y2lyY2xlIGN4PSIxNCIgY3k9IjkiIHI9IjAuNzUiIGZpbGw9IiNCNDUzMDkiLz48Y2lyY2xlIGN4PSIxMSIgY3k9IjE0IiByPSIwLjc1IiBmaWxsPSIjQjQ1MzA5Ii8+PGNpcmNsZSBjeD0iMTYiIGN5PSIxMyIgcj0iMC41IiBmaWxsPSIjQjQ1MzA5Ii8+PHBhdGggZD0iTTggMTJDMTAgMTEgMTQgMTEgMTYgMTIiIHN0cm9rZT0iI0Y1OUUwQiIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48L3N2Zz4=`,\n\n // Carrot\n carrot: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTEyIDZDMTAgNiA4IDggNyAxMUM2IDE0IDYgMTggOCAyMEwxMiAyMUwxNiAyMEMxOCAxOCAxOCAxNCAxNyAxMUMxNiA4IDE0IDYgMTIgNloiIGZpbGw9IiNGQjkyM0MiIHN0cm9rZT0iI0VBNTgwQyIgc3Ryb2tlLXdpZHRoPSIxLjUiLz48cGF0aCBkPSJNMTAgM0MxMCAzIDkgNSAxMCA2TTEyIDJDMTIgMiAxMSA1IDEyIDZNMTQgM0MxNCAzIDE1IDUgMTQgNiIgc3Ryb2tlPSIjMjJDNTVFIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjxwYXRoIGQ9Ik05IDEyQzExIDExIDEzIDExIDE1IDEyIiBzdHJva2U9IiNGRUQ3QUEiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PHBhdGggZD0iTTEwIDE2QzExIDE1IDEzIDE1IDE0IDE2IiBzdHJva2U9IiNGRUQ3QUEiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PC9zdmc+`,\n};\n\n// =============================================================================\n// INGREDIENT ICONS - Grains\n// =============================================================================\n\nexport const GRAIN_ICONS: Record<string, string> = {\n // White rice\n rice_white: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTQgMTFDNCAxMSA0IDE4IDEyIDE4QzIwIDE4IDIwIDExIDIwIDExSDRaIiBmaWxsPSIjRkZGRkZGIiBzdHJva2U9IiNFNUU3RUIiIHN0cm9rZS13aWR0aD0iMS41Ii8+PHBhdGggZD0iTTUgMThDNSAxOCA2IDIxIDEyIDIxQzE4IDIxIDE5IDE4IDE5IDE4IiBzdHJva2U9IiNFNUU3RUIiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48ZWxsaXBzZSBjeD0iOCIgY3k9IjkiIHJ4PSIxLjUiIHJ5PSIxIiBmaWxsPSIjRkVGM0M3Ii8+PGVsbGlwc2UgY3g9IjEyIiBjeT0iOCIgcng9IjEuNSIgcnk9IjEiIGZpbGw9IiNGRUYzQzciLz48ZWxsaXBzZSBjeD0iMTYiIGN5PSI5IiByeD0iMS41IiByeT0iMSIgZmlsbD0iI0ZFRjNDNyIvPjxlbGxpcHNlIGN4PSIxMCIgY3k9IjExIiByeD0iMS41IiByeT0iMSIgZmlsbD0iI0ZFRjNDNyIvPjxlbGxpcHNlIGN4PSIxNCIgY3k9IjExIiByeD0iMS41IiByeT0iMSIgZmlsbD0iI0ZFRjNDNyIvPjwvc3ZnPg==`,\n\n // Pasta\n pasta: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTQgMTRDNSAxMSA4IDkgMTIgOUMxNiA5IDE5IDExIDIwIDE0IiBzdHJva2U9IiNGREU2OEEiIHN0cm9rZS13aWR0aD0iMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PHBhdGggZD0iTTYgMTdDNyAxNCA5IDEyIDEyIDEyQzE1IDEyIDE3IDE0IDE4IDE3IiBzdHJva2U9IiNGREU2OEEiIHN0cm9rZS13aWR0aD0iMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PHBhdGggZD0iTTggMjBDOSAxOCAxMCAxNiAxMiAxNkMxNCAxNiAxNSAxOCAxNiAyMCIgc3Ryb2tlPSIjRkRFNjhBIiBzdHJva2Utd2lkdGg9IjMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjxwYXRoIGQ9Ik0zIDhDNCAxMCA2IDEyIDggMTJNMjEgOEMyMCAxMCAxOCAxMiAxNiAxMk0xMiA0VjkiIHN0cm9rZT0iI0Y1OUUwQiIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48L3N2Zz4=`,\n\n // Quinoa\n quinoa: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTQgMTFDNCAxMSA0IDE4IDEyIDE4QzIwIDE4IDIwIDExIDIwIDExSDRaIiBmaWxsPSIjRkZGRkZGIiBzdHJva2U9IiNFNUU3RUIiIHN0cm9rZS13aWR0aD0iMS41Ii8+PHBhdGggZD0iTTUgMThDNSAxOCA2IDIxIDEyIDIxQzE4IDIxIDE5IDE4IDE5IDE4IiBzdHJva2U9IiNFNUU3RUIiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48Y2lyY2xlIGN4PSI3IiBjeT0iMTAiIHI9IjEiIGZpbGw9IiNGREU2OEEiLz48Y2lyY2xlIGN4PSIxMCIgY3k9IjkiIHI9IjEiIGZpbGw9IiNGRUY5QzMiLz48Y2lyY2xlIGN4PSIxMyIgY3k9IjgiIHI9IjEiIGZpbGw9IiNGREU2OEEiLz48Y2lyY2xlIGN4PSIxNiIgY3k9IjkiIHI9IjEiIGZpbGw9IiNGRUY5QzMiLz48Y2lyY2xlIGN4PSI4IiBjeT0iMTMiIHI9IjEiIGZpbGw9IiNGRUY5QzMiLz48Y2lyY2xlIGN4PSIxMiIgY3k9IjExIiByPSIxIiBmaWxsPSIjRkRFNjhBIi8+PGNpcmNsZSBjeD0iMTUiIGN5PSIxMiIgcj0iMSIgZmlsbD0iI0ZFRjlDMyIvPjwvc3ZnPg==`,\n};\n\n// =============================================================================\n// COMBINED INGREDIENT ICONS (for convenience)\n// =============================================================================\n\nexport const INGREDIENT_ICONS: Record<string, string> = {\n ...POULTRY_ICONS,\n ...BEEF_ICONS,\n ...SEAFOOD_ICONS,\n ...EGG_ICONS,\n ...VEGETABLE_ICONS,\n ...GRAIN_ICONS,\n};\n\n// =============================================================================\n// HELPER FUNCTION\n// =============================================================================\n\n/**\n * Get icon for a category or ingredient by ID\n * Falls back to category icon if no specific ingredient icon exists\n */\nexport const getIcon = (id: string, category?: string): string | undefined => {\n // Check for specific ingredient icon first\n if (INGREDIENT_ICONS[id]) {\n return INGREDIENT_ICONS[id];\n }\n\n // Fall back to category icon\n if (category && CATEGORY_ICONS[category]) {\n return CATEGORY_ICONS[category];\n }\n\n return undefined;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMO,IAAM,iBAAyC;AAAA;AAAA,EAEpD,SAAS;AAAA;AAAA,EAGT,MAAM;AAAA;AAAA,EAGN,MAAM;AAAA;AAAA,EAGN,cAAc;AAAA;AAAA,EAGd,mBAAmB;AAAA;AAAA,EAGnB,KAAK;AAAA;AAAA,EAGL,WAAW;AAAA;AAAA,EAGX,OAAO;AACT;AAMO,IAAM,gBAAwC;AAAA;AAAA,EAEnD,gBAAgB;AAAA;AAAA,EAGhB,eAAe;AAAA;AAAA,EAGf,eAAe;AAAA;AAAA,EAGf,eAAe;AACjB;AAMO,IAAM,aAAqC;AAAA;AAAA,EAEhD,mBAAmB;AAAA;AAAA,EAGnB,aAAa;AAAA;AAAA,EAGb,YAAY;AACd;AAMO,IAAM,gBAAwC;AAAA;AAAA,EAEnD,eAAe;AAAA;AAAA,EAGf,QAAQ;AAAA;AAAA,EAGR,YAAY;AAAA;AAAA,EAGZ,YAAY;AACd;AAMO,IAAM,YAAoC;AAAA;AAAA,EAE/C,WAAW;AAAA;AAAA,EAGX,YAAY;AAAA;AAAA,EAGZ,eAAe;AAAA;AAAA,EAGf,aAAa;AACf;AAMO,IAAM,kBAA0C;AAAA;AAAA,EAErD,UAAU;AAAA;AAAA,EAGV,WAAW;AAAA;AAAA,EAGX,QAAQ;AAAA;AAAA,EAGR,QAAQ;AACV;AAMO,IAAM,cAAsC;AAAA;AAAA,EAEjD,YAAY;AAAA;AAAA,EAGZ,OAAO;AAAA;AAAA,EAGP,QAAQ;AACV;AAMO,IAAM,mBAA2C;AAAA,EACtD,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AACL;AAUO,IAAM,UAAU,CAAC,IAAY,aAA0C;AAE5E,MAAI,iBAAiB,EAAE,GAAG;AACxB,WAAO,iBAAiB,EAAE;AAAA,EAC5B;AAGA,MAAI,YAAY,eAAe,QAAQ,GAAG;AACxC,WAAO,eAAe,QAAQ;AAAA,EAChC;AAEA,SAAO;AACT;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../icons.ts"],"sourcesContent":["// Microsoft Fluent Emoji 3D via Lobehub CDN\n// Beautiful 3D emoji - MIT licensed, no Twitter involved\n\nconst FLUENT_BASE = 'https://registry.npmmirror.com/@lobehub/fluent-emoji-3d/latest/files/assets';\n\nconst fluent = (codepoint: string): string => `${FLUENT_BASE}/${codepoint}.webp`;\n\n// =============================================================================\n// CATEGORY ICONS\n// =============================================================================\nexport const CATEGORY_ICONS: Record<string, string> = {\n poultry: fluent('1f357'), // 🍗 Poultry Leg\n beef: fluent('1f969'), // 🥩 Cut of Meat\n pork: fluent('1f356'), // 🍖 Meat on Bone\n seafood_fish: fluent('1f41f'), // 🐟 Fish\n seafood_shellfish: fluent('1f990'), // 🦐 Shrimp\n egg: fluent('1f95a'), // 🥚 Egg\n vegetable: fluent('1f966'), // 🥦 Broccoli\n grain: fluent('1f35a'), // 🍚 Cooked Rice\n};\n\n// =============================================================================\n// INGREDIENT ICONS - Poultry\n// =============================================================================\nexport const POULTRY_ICONS: Record<string, string> = {\n chicken_breast: fluent('1f357'), // 🍗\n chicken_thigh: fluent('1f357'), // 🍗\n chicken_breast_boneless: fluent('1f357'), // 🍗\n chicken_thigh_boneless: fluent('1f357'), // 🍗\n chicken_whole: fluent('1f414'), // 🐔\n turkey_breast: fluent('1f983'), // 🦃\n duck: fluent('1f986'), // 🦆\n};\n\n// =============================================================================\n// INGREDIENT ICONS - Beef\n// =============================================================================\nexport const BEEF_ICONS: Record<string, string> = {\n beef_steak_ribeye: fluent('1f969'), // 🥩\n beef_ground: fluent('1f969'), // 🥩\n beef_roast: fluent('1f969'), // 🥩\n};\n\n// =============================================================================\n// INGREDIENT ICONS - Pork\n// =============================================================================\nexport const PORK_ICONS: Record<string, string> = {\n pork_chop: fluent('1f356'), // 🍖\n pork_tenderloin: fluent('1f356'), // 🍖\n pork_ribs: fluent('1f356'), // 🍖\n bacon: fluent('1f953'), // 🥓\n};\n\n// =============================================================================\n// INGREDIENT ICONS - Seafood\n// =============================================================================\nexport const SEAFOOD_ICONS: Record<string, string> = {\n salmon_fillet: fluent('1f41f'), // 🐟\n tuna_steak: fluent('1f41f'), // 🐟\n cod_fillet: fluent('1f41f'), // 🐟\n shrimp: fluent('1f990'), // 🦐\n lobster: fluent('1f99e'), // 🦞\n scallops: fluent('1f41a'), // 🐚\n crab: fluent('1f980'), // 🦀\n};\n\n// =============================================================================\n// INGREDIENT ICONS - Eggs\n// =============================================================================\nexport const EGG_ICONS: Record<string, string> = {\n egg_fried: fluent('1f373'), // 🍳\n egg_boiled: fluent('1f95a'), // 🥚\n egg_scrambled: fluent('1f373'), // 🍳\n egg_poached: fluent('1f373'), // 🍳\n egg_omelette: fluent('1f373'), // 🍳\n};\n\n// =============================================================================\n// INGREDIENT ICONS - Vegetables\n// =============================================================================\nexport const VEGETABLE_ICONS: Record<string, string> = {\n broccoli: fluent('1f966'), // 🥦\n asparagus: fluent('1f96c'), // 🥬 (leafy green, closest match)\n potato: fluent('1f954'), // 🥔\n carrot: fluent('1f955'), // 🥕\n corn: fluent('1f33d'), // 🌽\n tomato: fluent('1f345'), // 🍅\n onion: fluent('1f9c5'), // 🧅\n garlic: fluent('1f9c4'), // 🧄\n pepper: fluent('1fad1'), // 🫑 Bell Pepper\n leafy_greens: fluent('1f96c'), // 🥬\n mushroom: fluent('1f344'), // 🍄\n eggplant: fluent('1f346'), // 🍆\n cucumber: fluent('1f952'), // 🥒\n avocado: fluent('1f951'), // 🥑\n};\n\n// =============================================================================\n// INGREDIENT ICONS - Grains\n// =============================================================================\nexport const GRAIN_ICONS: Record<string, string> = {\n rice_white: fluent('1f35a'), // 🍚\n rice_brown: fluent('1f35a'), // 🍚\n pasta: fluent('1f35d'), // 🍝\n bread: fluent('1f35e'), // 🍞\n quinoa: fluent('1f35a'), // 🍚\n};\n\n// =============================================================================\n// COMBINED INGREDIENT ICONS\n// =============================================================================\nexport const INGREDIENT_ICONS: Record<string, string> = {\n ...POULTRY_ICONS,\n ...BEEF_ICONS,\n ...PORK_ICONS,\n ...SEAFOOD_ICONS,\n ...EGG_ICONS,\n ...VEGETABLE_ICONS,\n ...GRAIN_ICONS,\n};\n\n// =============================================================================\n// HELPER FUNCTION\n// =============================================================================\n/**\n * Get icon URL for a category or ingredient by ID\n * Falls back to category icon if no specific ingredient icon exists\n */\nexport const getIcon = (id: string, category?: string): string | undefined => {\n if (INGREDIENT_ICONS[id]) {\n return INGREDIENT_ICONS[id];\n }\n\n if (category && CATEGORY_ICONS[category]) {\n return CATEGORY_ICONS[category];\n }\n\n return undefined;\n};\n"],"mappings":"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","names":[]}
|
package/dist/icons.mjs
CHANGED
|
@@ -1,81 +1,132 @@
|
|
|
1
1
|
// icons.ts
|
|
2
|
+
var FLUENT_BASE = "https://registry.npmmirror.com/@lobehub/fluent-emoji-3d/latest/files/assets";
|
|
3
|
+
var fluent = (codepoint) => `${FLUENT_BASE}/${codepoint}.webp`;
|
|
2
4
|
var CATEGORY_ICONS = {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
5
|
+
poultry: fluent("1f357"),
|
|
6
|
+
// 🍗 Poultry Leg
|
|
7
|
+
beef: fluent("1f969"),
|
|
8
|
+
// 🥩 Cut of Meat
|
|
9
|
+
pork: fluent("1f356"),
|
|
10
|
+
// 🍖 Meat on Bone
|
|
11
|
+
seafood_fish: fluent("1f41f"),
|
|
12
|
+
// 🐟 Fish
|
|
13
|
+
seafood_shellfish: fluent("1f990"),
|
|
14
|
+
// 🦐 Shrimp
|
|
15
|
+
egg: fluent("1f95a"),
|
|
16
|
+
// 🥚 Egg
|
|
17
|
+
vegetable: fluent("1f966"),
|
|
18
|
+
// 🥦 Broccoli
|
|
19
|
+
grain: fluent("1f35a")
|
|
20
|
+
// 🍚 Cooked Rice
|
|
19
21
|
};
|
|
20
22
|
var POULTRY_ICONS = {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
23
|
+
chicken_breast: fluent("1f357"),
|
|
24
|
+
// 🍗
|
|
25
|
+
chicken_thigh: fluent("1f357"),
|
|
26
|
+
// 🍗
|
|
27
|
+
chicken_breast_boneless: fluent("1f357"),
|
|
28
|
+
// 🍗
|
|
29
|
+
chicken_thigh_boneless: fluent("1f357"),
|
|
30
|
+
// 🍗
|
|
31
|
+
chicken_whole: fluent("1f414"),
|
|
32
|
+
// 🐔
|
|
33
|
+
turkey_breast: fluent("1f983"),
|
|
34
|
+
// 🦃
|
|
35
|
+
duck: fluent("1f986")
|
|
36
|
+
// 🦆
|
|
29
37
|
};
|
|
30
38
|
var BEEF_ICONS = {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
39
|
+
beef_steak_ribeye: fluent("1f969"),
|
|
40
|
+
// 🥩
|
|
41
|
+
beef_ground: fluent("1f969"),
|
|
42
|
+
// 🥩
|
|
43
|
+
beef_roast: fluent("1f969")
|
|
44
|
+
// 🥩
|
|
45
|
+
};
|
|
46
|
+
var PORK_ICONS = {
|
|
47
|
+
pork_chop: fluent("1f356"),
|
|
48
|
+
// 🍖
|
|
49
|
+
pork_tenderloin: fluent("1f356"),
|
|
50
|
+
// 🍖
|
|
51
|
+
pork_ribs: fluent("1f356"),
|
|
52
|
+
// 🍖
|
|
53
|
+
bacon: fluent("1f953")
|
|
54
|
+
// 🥓
|
|
37
55
|
};
|
|
38
56
|
var SEAFOOD_ICONS = {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
57
|
+
salmon_fillet: fluent("1f41f"),
|
|
58
|
+
// 🐟
|
|
59
|
+
tuna_steak: fluent("1f41f"),
|
|
60
|
+
// 🐟
|
|
61
|
+
cod_fillet: fluent("1f41f"),
|
|
62
|
+
// 🐟
|
|
63
|
+
shrimp: fluent("1f990"),
|
|
64
|
+
// 🦐
|
|
65
|
+
lobster: fluent("1f99e"),
|
|
66
|
+
// 🦞
|
|
67
|
+
scallops: fluent("1f41a"),
|
|
68
|
+
// 🐚
|
|
69
|
+
crab: fluent("1f980")
|
|
70
|
+
// 🦀
|
|
47
71
|
};
|
|
48
72
|
var EGG_ICONS = {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
73
|
+
egg_fried: fluent("1f373"),
|
|
74
|
+
// 🍳
|
|
75
|
+
egg_boiled: fluent("1f95a"),
|
|
76
|
+
// 🥚
|
|
77
|
+
egg_scrambled: fluent("1f373"),
|
|
78
|
+
// 🍳
|
|
79
|
+
egg_poached: fluent("1f373"),
|
|
80
|
+
// 🍳
|
|
81
|
+
egg_omelette: fluent("1f373")
|
|
82
|
+
// 🍳
|
|
57
83
|
};
|
|
58
84
|
var VEGETABLE_ICONS = {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
85
|
+
broccoli: fluent("1f966"),
|
|
86
|
+
// 🥦
|
|
87
|
+
asparagus: fluent("1f96c"),
|
|
88
|
+
// 🥬 (leafy green, closest match)
|
|
89
|
+
potato: fluent("1f954"),
|
|
90
|
+
// 🥔
|
|
91
|
+
carrot: fluent("1f955"),
|
|
92
|
+
// 🥕
|
|
93
|
+
corn: fluent("1f33d"),
|
|
94
|
+
// 🌽
|
|
95
|
+
tomato: fluent("1f345"),
|
|
96
|
+
// 🍅
|
|
97
|
+
onion: fluent("1f9c5"),
|
|
98
|
+
// 🧅
|
|
99
|
+
garlic: fluent("1f9c4"),
|
|
100
|
+
// 🧄
|
|
101
|
+
pepper: fluent("1fad1"),
|
|
102
|
+
// 🫑 Bell Pepper
|
|
103
|
+
leafy_greens: fluent("1f96c"),
|
|
104
|
+
// 🥬
|
|
105
|
+
mushroom: fluent("1f344"),
|
|
106
|
+
// 🍄
|
|
107
|
+
eggplant: fluent("1f346"),
|
|
108
|
+
// 🍆
|
|
109
|
+
cucumber: fluent("1f952"),
|
|
110
|
+
// 🥒
|
|
111
|
+
avocado: fluent("1f951")
|
|
112
|
+
// 🥑
|
|
67
113
|
};
|
|
68
114
|
var GRAIN_ICONS = {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
115
|
+
rice_white: fluent("1f35a"),
|
|
116
|
+
// 🍚
|
|
117
|
+
rice_brown: fluent("1f35a"),
|
|
118
|
+
// 🍚
|
|
119
|
+
pasta: fluent("1f35d"),
|
|
120
|
+
// 🍝
|
|
121
|
+
bread: fluent("1f35e"),
|
|
122
|
+
// 🍞
|
|
123
|
+
quinoa: fluent("1f35a")
|
|
124
|
+
// 🍚
|
|
75
125
|
};
|
|
76
126
|
var INGREDIENT_ICONS = {
|
|
77
127
|
...POULTRY_ICONS,
|
|
78
128
|
...BEEF_ICONS,
|
|
129
|
+
...PORK_ICONS,
|
|
79
130
|
...SEAFOOD_ICONS,
|
|
80
131
|
...EGG_ICONS,
|
|
81
132
|
...VEGETABLE_ICONS,
|
|
@@ -96,6 +147,7 @@ export {
|
|
|
96
147
|
EGG_ICONS,
|
|
97
148
|
GRAIN_ICONS,
|
|
98
149
|
INGREDIENT_ICONS,
|
|
150
|
+
PORK_ICONS,
|
|
99
151
|
POULTRY_ICONS,
|
|
100
152
|
SEAFOOD_ICONS,
|
|
101
153
|
VEGETABLE_ICONS,
|
package/dist/icons.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../icons.ts"],"sourcesContent":["// SVG icons as data URLs for the cooking-temperature library\n\n// =============================================================================\n// CATEGORY ICONS\n// =============================================================================\n\nexport const CATEGORY_ICONS: Record<string, string> = {\n // Poultry - Chicken drumstick\n poultry: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTE1LjUgM0MxMy4wMSAzIDExIDUuMDEgMTEgNy41QzExIDguMjcgMTEuMTkgOS4wMSAxMS41MyA5LjY1TDMuNSAxNy42OEMzLjE4IDE4IDMgMTguNDMgMyAxOC44OEMzIDE5LjgxIDMuNzQgMjAuNjQgNC42NyAyMC45MUM1LjA4IDIxLjAzIDUuNTMgMjEgNS45IDIwLjgyTDYuNSAyMC41TDcuNDQgMjEuMzFDNy43OCAyMS42IDguMjMgMjEuNzUgOC42OSAyMS43NUM5LjQgMjEuNzUgMTAuMDUgMjEuNDIgMTAuNDUgMjAuODhMMTEgMjAuMTNMMTEuNTUgMjAuODhDMTEuOTUgMjEuNDIgMTIuNiAyMS43NSAxMy4zMSAyMS43NUMxMy43NyAyMS43NSAxNC4yMiAyMS42IDE0LjU2IDIxLjMxTDE1LjUgMjAuNUwxNi4xIDIwLjgyQzE2LjQ3IDIxIDE2LjkyIDIxLjAzIDE3LjMzIDIwLjkxQzE4LjI2IDIwLjY0IDE5IDE5LjgxIDE5IDE4Ljg4QzE5IDE4LjQzIDE4LjgyIDE4IDE4LjUgMTcuNjhMMTQuMzUgMTMuNTNDMTQuOTkgMTMuMTkgMTUuNzMgMTMgMTYuNSAxM0MxOC45OSAxMyAyMSAxMC45OSAyMSA4LjVDMjEgNi4wMSAxOC45OSA0IDE2LjUgNEMxNi4xNyA0IDE1LjgzIDQuMDMgMTUuNSA0LjFWM1oiIGZpbGw9IiNGNTlFMEIiLz48cGF0aCBkPSJNMTYuNSA1QzE4LjQzIDUgMjAgNi41NyAyMCA4LjVDMjAgMTAuNDMgMTguNDMgMTIgMTYuNSAxMkMxNS4zNiAxMiAxNC4zMyAxMS40OCAxMy42MiAxMC42N0wxMy4yOCAxMC4yOEwxMi45MyA5Ljg0QzEyLjM0IDkuMDMgMTIgOC4wMyAxMiA3QzEyIDUuMDcgMTMuNTcgMy41IDE1LjUgMy41VjUuNUMxNC42OCA1LjUgMTQgNi4xOCAxNCA3QzE0IDcuNTYgMTQuMTkgOC4wOCAxNC41MSA4LjQ5TDE0Ljg2IDguOTNMMTUuMjEgOS4zMkMxNS42NSA5Ljc1IDE2LjA1IDEwIDE2LjUgMTBDMTcuMzMgMTAgMTggOS4zMyAxOCA4LjVDMTggNy42NyAxNy4zMyA3IDE2LjUgN1Y1WiIgZmlsbD0iI0Q5NzcwNiIvPjwvc3ZnPg==`,\n\n // Beef - Steak cut\n beef: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTIwLjUgNkMxOS4xIDMuOCAxNi4xIDIuNSAxMi41IDIuNUM3LjUgMi41IDMuNSA1LjUgMy41IDlDMy41IDEwLjggNC4zIDEyLjQgNS43IDE0TDQgMTguNUM0IDE5LjUgNS41IDIxIDcuNSAyMUM4LjIgMjEgOC44IDIwLjggOS41IDIwLjNMMTIgMThMMTQuNSAyMC4zQzE1LjIgMjAuOCAxNS44IDIxIDE2LjUgMjFDMTguNSAyMSAyMCAxOS41IDIwIDE4LjVMMTguMyAxNEMxOS43IDEyLjQgMjAuNSAxMC44IDIwLjUgOVY2WiIgZmlsbD0iI0VGNDQ0NCIvPjxwYXRoIGQ9Ik0xNy41IDlDMTcuNSAxMC45IDE1LjQgMTIuNSAxMi41IDEyLjVDOS42IDEyLjUgNy41IDEwLjkgNy41IDlDNy41IDcuMSA5LjYgNS41IDEyLjUgNS41QzE1LjQgNS41IDE3LjUgNy4xIDE3LjUgOVoiIGZpbGw9IiNGQ0EwQTAiLz48cGF0aCBkPSJNMTQgOEMxNCA4LjggMTMuMyA5LjUgMTIuNSA5LjVDMTEuNyA5LjUgMTEgOC44IDExIDhDMTEgNy4yIDExLjcgNi41IDEyLjUgNi41QzEzLjMgNi41IDE0IDcuMiAxNCA4WiIgZmlsbD0iI0ZFRTJFMiIvPjwvc3ZnPg==`,\n\n // Pork - Pork chop/meat on bone\n pork: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTQgMTBDNCAxNC40IDcuNiAxOCAxMiAxOEMxNi40IDE4IDIwIDE0LjQgMjAgMTBDMjAgNy45IDE5LjIgNiAxNy44IDQuNkMxNi44IDMuNiAxNS41IDMgMTQgM0gxMEM4LjUgMyA3LjIgMy42IDYuMiA0LjZDNC44IDYgNCAxLjkgNCAxMFoiIGZpbGw9IiNGQkI0QjQiLz48cGF0aCBkPSJNMTIgMThWMjFNMTIgMjFIOE0xMiAyMUgxNiIgc3Ryb2tlPSIjRkVFMkUyIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjxwYXRoIGQ9Ik04IDlDOCAxMC43IDkuMyAxMiAxMSAxMiIgc3Ryb2tlPSIjRkRFNjhBIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjxwYXRoIGQ9Ik03IDVDNi41IDYgNi41IDcgNyA4IiBzdHJva2U9IiNFRjQ0NDQiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48cGF0aCBkPSJNMTcgNUMxNy41IDYgMTcuNSA3IDE3IDgiIHN0cm9rZT0iI0VGNDQ0NCIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjwvc3ZnPg==`,\n\n // Seafood Fish - Fish\n seafood_fish: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTIyIDEyQzIyIDEyIDE5IDE3IDE0IDE3QzEyIDE3IDEwLjUgMTYuNSA5LjUgMTZMNiAyMFY0TDkuNSA4QzEwLjUgNy41IDEyIDcgMTQgN0MxOSA3IDIyIDEyIDIyIDEyWiIgZmlsbD0iIzYwQTVGQSIvPjxjaXJjbGUgY3g9IjE2IiBjeT0iMTEiIHI9IjEuNSIgZmlsbD0iIzFGMjkzNyIvPjxjaXJjbGUgY3g9IjE2LjMiIGN5PSIxMC43IiByPSIwLjUiIGZpbGw9IiNGRkZGRkYiLz48cGF0aCBkPSJNMTQgMTJDMTQgMTIgMTIgMTMgMTAuNSAxM0M5IDEzIDguNSAxMi41IDguNSAxMkM4LjUgMTEuNSA5IDExIDEwLjUgMTFDMTIgMTEgMTQgMTIgMTQgMTJaIiBmaWxsPSIjOTNDNUZEIi8+PHBhdGggZD0iTTYgNEwzIDFNNiAyMEwzIDIzIiBzdHJva2U9IiMzQjgyRjYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PC9zdmc+`,\n\n // Seafood Shellfish - Shrimp\n seafood_shellfish: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTE5IDdDMTkgNyAxOCA0IDE0IDRDMTAgNCAxMCA3IDEwIDdDMTAgNyA4IDggNyAxMEM2IDEyIDYgMTQgNyAxNkM4IDE4IDEwIDE5IDEyIDE5QzE0IDE5IDE1IDE4IDE2IDE3TDE4IDE5TDIwIDE3TDE4IDE1QzE5IDE0IDIwIDEyIDIwIDEwQzIwIDggMTkgNyAxOSA3WiIgZmlsbD0iI0ZCQjRCNCIvPjxwYXRoIGQ9Ik0xMyA4QzE0LjEgOCAxNSA4LjkgMTUgMTBDMTUgMTEuMSAxNC4xIDEyIDEzIDEyQzExLjkgMTIgMTEgMTEuMSAxMSAxMEMxMSA4LjkgMTEuOSA4IDEzIDhaIiBmaWxsPSIjRkVFMkUyIi8+PHBhdGggZD0iTTE1IDRDMTUgNCAxNiAyIDE4IDJNMTMgNEMxMyA0IDEzIDIgMTEgMiIgc3Ryb2tlPSIjRjg3MTcxIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PGNpcmNsZSBjeD0iMTUiIGN5PSIxMCIgcj0iMSIgZmlsbD0iIzFGMjkzNyIvPjwvc3ZnPg==`,\n\n // Egg\n egg: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTEyIDNDOCAzIDUgOC41IDUgMTNDNSAxNy41IDguMSAyMSAxMiAyMUMxNS45IDIxIDE5IDE3LjUgMTkgMTNDMTkgOC41IDE2IDMgMTIgM1oiIGZpbGw9IiNGRUY5QzMiIHN0cm9rZT0iI0ZERTY4QSIgc3Ryb2tlLXdpZHRoPSIxLjUiLz48ZWxsaXBzZSBjeD0iMTIiIGN5PSIxMyIgcng9IjUiIHJ5PSI0IiBmaWxsPSIjRkJCRjI0Ii8+PGVsbGlwc2UgY3g9IjEyIiBjeT0iMTMiIHJ4PSIzIiByeT0iMi41IiBmaWxsPSIjRjU5RTBCIi8+PHBhdGggZD0iTTEwIDEyQzEwLjUgMTEuNSAxMS41IDExLjUgMTIgMTIiIHN0cm9rZT0iI0ZFRjlDMyIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48L3N2Zz4=`,\n\n // Vegetable - Broccoli\n vegetable: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTEyIDIxVjE0IiBzdHJva2U9IiM2NUExNDUiIHN0cm9rZS13aWR0aD0iMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PHBhdGggZD0iTTkgMjFWMTYiIHN0cm9rZT0iIzY1QTE0NSIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48cGF0aCBkPSJNMTUgMjFWMTYiIHN0cm9rZT0iIzY1QTE0NSIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48Y2lyY2xlIGN4PSI4IiBjeT0iOCIgcj0iNCIgZmlsbD0iIzIyQzU1RSIvPjxjaXJjbGUgY3g9IjE2IiBjeT0iOCIgcj0iNCIgZmlsbD0iIzIyQzU1RSIvPjxjaXJjbGUgY3g9IjEyIiBjeT0iNSIgcj0iNCIgZmlsbD0iIzIyQzU1RSIvPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTAiIHI9IjQiIGZpbGw9IiMyMkM1NUUiLz48Y2lyY2xlIGN4PSI2IiBjeT0iMTEiIHI9IjIuNSIgZmlsbD0iIzE2QTM0QSIvPjxjaXJjbGUgY3g9IjE4IiBjeT0iMTEiIHI9IjIuNSIgZmlsbD0iIzE2QTM0QSIvPjxjaXJjbGUgY3g9IjkiIGN5PSI2IiByPSIyIiBmaWxsPSIjNEFERTgwIi8+PGNpcmNsZSBjeD0iMTQiIGN5PSI4IiByPSIxLjUiIGZpbGw9IiM0QURFODAiLz48L3N2Zz4=`,\n\n // Grain - Rice bowl\n grain: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTQgMTFDNCAxMSA0IDE4IDEyIDE4QzIwIDE4IDIwIDExIDIwIDExSDRaIiBmaWxsPSIjRkZGRkZGIiBzdHJva2U9IiNFNUU3RUIiIHN0cm9rZS13aWR0aD0iMS41Ii8+PHBhdGggZD0iTTUgMThDNSAxOCA2IDIxIDEyIDIxQzE4IDIxIDE5IDE4IDE5IDE4IiBzdHJva2U9IiNFNUU3RUIiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48ZWxsaXBzZSBjeD0iOCIgY3k9IjkiIHJ4PSIxLjUiIHJ5PSIxIiBmaWxsPSIjRkVGM0M3Ii8+PGVsbGlwc2UgY3g9IjEyIiBjeT0iOCIgcng9IjEuNSIgcnk9IjEiIGZpbGw9IiNGRUYzQzciLz48ZWxsaXBzZSBjeD0iMTYiIGN5PSI5IiByeD0iMS41IiByeT0iMSIgZmlsbD0iI0ZFRjNDNyIvPjxlbGxpcHNlIGN4PSIxMCIgY3k9IjExIiByeD0iMS41IiByeT0iMSIgZmlsbD0iI0ZFRjNDNyIvPjxlbGxpcHNlIGN4PSIxNCIgY3k9IjExIiByeD0iMS41IiByeT0iMSIgZmlsbD0iI0ZFRjNDNyIvPjxlbGxpcHNlIGN4PSI3IiBjeT0iMTIiIHJ4PSIxIiByeT0iMC43NSIgZmlsbD0iI0ZFRjNDNyIvPjxlbGxpcHNlIGN4PSIxNyIgY3k9IjEyIiByeD0iMSIgcnk9IjAuNzUiIGZpbGw9IiNGRUYzQzciLz48L3N2Zz4=`,\n};\n\n// =============================================================================\n// INGREDIENT ICONS - Poultry\n// =============================================================================\n\nexport const POULTRY_ICONS: Record<string, string> = {\n // Chicken breast\n chicken_breast: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTUgOEM1IDUgOCAzIDEyIDNDMTYgMyAxOSA1IDE5IDhDMTkgMTEgMTggMTUgMTcgMTdDMTYgMTkgMTQgMjAgMTIgMjBDMTAgMjAgOCAxOSA3IDE3QzYgMTUgNSAxMSA1IDhaIiBmaWxsPSIjRkRFNjhBIiBzdHJva2U9IiNGNTlFMEIiIHN0cm9rZS13aWR0aD0iMS41Ii8+PHBhdGggZD0iTTggOEMxMCA3IDE0IDcgMTYgOCIgc3Ryb2tlPSIjRjU5RTBCIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjxwYXRoIGQ9Ik05IDEyQzEwIDExIDE0IDExIDE1IDEyIiBzdHJva2U9IiNGNTlFMEIiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PC9zdmc+`,\n\n // Chicken thigh\n chicken_thigh: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTE2IDRDMTQgMyAxMCAzIDggNEM2IDUgNCAxMCA1IDE0QzYgMTggOCAyMCAxMSAyMEwxMiAxOEwxNCAxNUMxNiAxMiAxOCA4IDE4IDZDMTggNSAxNyA0IDE2IDRaIiBmaWxsPSIjRkRFNjhBIiBzdHJva2U9IiNGNTlFMEIiIHN0cm9rZS13aWR0aD0iMS41Ii8+PHBhdGggZD0iTTExIDIwTDEwIDIySDgiIHN0cm9rZT0iI0Q5NzcwNiIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48cGF0aCBkPSJNNyA5QzkgOCAxMiA4IDE0IDkiIHN0cm9rZT0iI0Y1OUUwQiIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48L3N2Zz4=`,\n\n // Whole chicken\n whole_chicken: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTEyIDJDOCAyIDQgNiA0IDExQzQgMTQgNSAxNyA3IDE5TDYgMjFIOEwxMCAxOUgxNEwxNiAyMUgxOEwxNyAxOUMxOSAxNyAyMCAxNCAyMCAxMUMyMCA2IDE2IDIgMTIgMloiIGZpbGw9IiNGREU2OEEiIHN0cm9rZT0iI0Y1OUUwQiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz48cGF0aCBkPSJNOCA5QzEwIDggMTQgOCAxNiA5IiBzdHJva2U9IiNGNTlFMEIiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PHBhdGggZD0iTTkgMTNDMTEgMTIgMTMgMTIgMTUgMTMiIHN0cm9rZT0iI0Y1OUUwQiIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48Y2lyY2xlIGN4PSI5IiBjeT0iNyIgcj0iMSIgZmlsbD0iI0Q5NzcwNiIvPjxjaXJjbGUgY3g9IjE1IiBjeT0iNyIgcj0iMSIgZmlsbD0iI0Q5NzcwNiIvPjwvc3ZnPg==`,\n\n // Turkey breast\n turkey_breast: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTQgOUM0IDUgNyAyIDEyIDJDMTcgMiAyMCA1IDIwIDlDMjAgMTMgMTggMTggMTYgMjBMMTQgMjFIMTBMOCAyMEM2IDE4IDQgMTMgNCA5WiIgZmlsbD0iI0ZCQjRCNCIgc3Ryb2tlPSIjRjg3MTcxIiBzdHJva2Utd2lkdGg9IjEuNSIvPjxwYXRoIGQ9Ik03IDlDMTAgNyAxNCA3IDE3IDkiIHN0cm9rZT0iI0Y4NzE3MSIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48cGF0aCBkPSJNOCAxM0MxMCAxMiAxNCAxMiAxNiAxMyIgc3Ryb2tlPSIjRjg3MTcxIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjwvc3ZnPg==`,\n};\n\n// =============================================================================\n// INGREDIENT ICONS - Beef\n// =============================================================================\n\nexport const BEEF_ICONS: Record<string, string> = {\n // Ribeye steak\n beef_steak_ribeye: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTQgOEM0IDUgNyAzIDEyIDNDMTcgMyAyMCA1IDIwIDhDMjAgMTEgMTkgMTUgMTcgMThDMTUgMjAgMTQgMjEgMTIgMjFDMTAgMjEgOSAyMCA3IDE4QzUgMTUgNCAxMSA0IDhaIiBmaWxsPSIjRUY0NDQ0IiBzdHJva2U9IiNCOTFDMUMiIHN0cm9rZS13aWR0aD0iMS41Ii8+PHBhdGggZD0iTTcgOEMxMCA3IDE0IDcgMTcgOCIgc3Ryb2tlPSIjRkVFMkUyIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjxwYXRoIGQ9Ik04IDEyQzEwIDExIDE0IDExIDE2IDEyIiBzdHJva2U9IiNGQ0EwQTAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48Y2lyY2xlIGN4PSIxMCIgY3k9IjE1IiByPSIxLjUiIGZpbGw9IiNGRUUyRTIiLz48L3N2Zz4=`,\n\n // Ground beef\n beef_ground: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTQgMTBDNCA3IDcgNSAxMiA1QzE3IDUgMjAgNyAyMCAxMEMyMCAxMyAxNyAxNSAxMiAxNUM3IDE1IDQgMTMgNCAxMFoiIGZpbGw9IiM5OTFFQjgiLz48cGF0aCBkPSJNNiAxMEMxMCA4IDE0IDggMTggMTAiIHN0cm9rZT0iI0M4NEM2OCIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48cGF0aCBkPSJNOCAxMkMxMCAxMSAxNCAxMSAxNiAxMiIgc3Ryb2tlPSIjQzg0QzY4IiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjxwYXRoIGQ9Ik01IDE1QzUgMTggOCAxOSAxMiAxOUMxNiAxOSAxOSAxOCAxOSAxNSIgc3Ryb2tlPSIjN0YxRDFEIiBzdHJva2Utd2lkdGg9IjEuNSIvPjxjaXJjbGUgY3g9IjgiIGN5PSI5IiByPSIwLjUiIGZpbGw9IiNGRUUyRTIiLz48Y2lyY2xlIGN4PSIxNCIgY3k9IjgiIHI9IjAuNSIgZmlsbD0iI0ZFRTJFMiIvPjxjaXJjbGUgY3g9IjExIiBjeT0iMTEiIHI9IjAuNSIgZmlsbD0iI0ZFRTJFMiIvPjwvc3ZnPg==`,\n\n // Beef roast\n beef_roast: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHJlY3QgeD0iNCIgeT0iNiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjEyIiByeD0iMiIgZmlsbD0iI0VGNDQ0NCIgc3Ryb2tlPSIjQjkxQzFDIiBzdHJva2Utd2lkdGg9IjEuNSIvPjxwYXRoIGQ9Ik00IDEwSDE4IiBzdHJva2U9IiNGQ0EwQTAiIHN0cm9rZS13aWR0aD0iMiIvPjxwYXRoIGQ9Ik00IDE0SDE4IiBzdHJva2U9IiNGQ0EwQTAiIHN0cm9rZS13aWR0aD0iMiIvPjxwYXRoIGQ9Ik0yMCAxMkgyMiIgc3Ryb2tlPSIjRDk3NzA2IiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjxwYXRoIGQ9Ik0yIDEySDQiIHN0cm9rZT0iI0Q5NzcwNiIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48L3N2Zz4=`,\n};\n\n// =============================================================================\n// INGREDIENT ICONS - Seafood\n// =============================================================================\n\nexport const SEAFOOD_ICONS: Record<string, string> = {\n // Salmon fillet\n salmon_fillet: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTMgMTBDMyA4IDYgNiAxMiA2QzE4IDYgMjEgOCAyMSAxMEMyMSAxMiAxOSAxNyAxNiAxOEM2IDE4IDMgMTIgMyAxMFoiIGZpbGw9IiNGQjkyM0MiIHN0cm9rZT0iI0VBNTgwQyIgc3Ryb2tlLXdpZHRoPSIxLjUiLz48cGF0aCBkPSJNNiAxMEMxMCA5IDE0IDkgMTggMTAiIHN0cm9rZT0iI0ZFRDdBQSIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjxwYXRoIGQ9Ik03IDEzQzEwIDEyIDE0IDEyIDE3IDEzIiBzdHJva2U9IiNGRUQ3QUEiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48cGF0aCBkPSJNMTkgOEMyMCA3IDIxIDcgMjIgOCIgc3Ryb2tlPSIjOTk5IiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjwvc3ZnPg==`,\n\n // Shrimp\n shrimp: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTE4IDZDMTggNiAxNyAzIDEzIDNDOSAzIDkgNiA5IDZDOSA2IDcgNyA2IDlDNSAxMSA1IDEzIDYgMTVDNyAxNyA5IDE4IDExIDE4QzEzIDE4IDE0IDE3IDE1IDE2TDE3IDE4TDE5IDE2TDE3IDE0QzE4IDEzIDE5IDExIDE5IDlDMTkgNyAxOCA2IDE4IDZaIiBmaWxsPSIjRkJCNEI0IiBzdHJva2U9IiNGODcxNzEiIHN0cm9rZS13aWR0aD0iMS41Ii8+PHBhdGggZD0iTTEyIDdDMTMuMSA3IDE0IDcuOSAxNCA5QzE0IDEwLjEgMTMuMSAxMSAxMiAxMUMxMC45IDExIDEwIDEwLjEgMTAgOUMxMCA3LjkgMTAuOSA3IDEyIDdaIiBmaWxsPSIjRkVFMkUyIi8+PHBhdGggZD0iTTE0IDNDMTQGNCAXNSIYTCE3IDJNMTIgM0MxMiAzIDEyIDEgMTAgMSIgc3Ryb2tlPSIjRjg3MTcxIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PGNpcmNsZSBjeD0iMTQiIGN5PSI5IiByPSIxIiBmaWxsPSIjMUYyOTM3Ii8+PC9zdmc+`,\n\n // Cod fillet\n cod_fillet: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTMgMTFDMyA5IDYgNyAxMiA3QzE4IDcgMjEgOSAyMSAxMUMyMSAxMyAxOSAxNyAxNiAxN0M2IDE3IDMgMTMgMyAxMVoiIGZpbGw9IiNGRUYzQzciIHN0cm9rZT0iI0ZERTY4QSIgc3Ryb2tlLXdpZHRoPSIxLjUiLz48cGF0aCBkPSJNNiAxMUMxMCAxMCAxNCAxMCAxOCAxMSIgc3Ryb2tlPSIjRkRFNjhBIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PHBhdGggZD0iTTggMTNDMTAgMTIgMTQgMTIgMTYgMTMiIHN0cm9rZT0iI0ZERTY4QSIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjwvc3ZnPg==`,\n\n // Tuna steak\n tuna_steak: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTQgOEM0IDUgNyAzIDEyIDNDMTcgMyAyMCA1IDIwIDhDMjAgMTEgMTggMTYgMTYgMThDMTQgMjAgMTAgMjAgOCAxOEM2IDE2IDQgMTEgNCA4WiIgZmlsbD0iI0VGNDQ0NCIgc3Ryb2tlPSIjQjkxQzFDIiBzdHJva2Utd2lkdGg9IjEuNSIvPjxwYXRoIGQ9Ik03IDhDMTAgNyAxNCA3IDE3IDgiIHN0cm9rZT0iI0ZDQTBBMCIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48cGF0aCBkPSJNOCAxMkMxMCAxMSAxNCAxMSAxNiAxMiIgc3Ryb2tlPSIjRkNBMEEwIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PC9zdmc+`,\n};\n\n// =============================================================================\n// INGREDIENT ICONS - Eggs\n// =============================================================================\n\nexport const EGG_ICONS: Record<string, string> = {\n // Fried egg\n egg_fried: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTQgMTJDMyA4IDUgNSA4IDRDMTEgMyAxMyA0IDE1IDVDMTcgNiAxOSA1IDIwIDdDMjEgOSAyMSAxMiAyMCAxNEMxOSAxNiAxNyAxOCAxNCAxOUMxMSAyMCA3IDE5IDUgMTdDMyAxNSA0IDE0IDQgMTJaIiBmaWxsPSIjRkZGRkZGIiBzdHJva2U9IiNFNUU3RUIiIHN0cm9rZS13aWR0aD0iMS41Ii8+PGVsbGlwc2UgY3g9IjEyIiBjeT0iMTEiIHJ4PSI1IiByeT0iNCIgZmlsbD0iI0ZCQkYyNCIvPjxlbGxpcHNlIGN4PSIxMiIgY3k9IjExIiByeD0iMyIgcnk9IjIuNSIgZmlsbD0iI0Y1OUUwQiIvPjxwYXRoIGQ9Ik0xMCAxMEMxMC41IDkuNSAxMS41IDkuNSAxMiAxMCIgc3Ryb2tlPSIjRkVGOUMzIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjwvc3ZnPg==`,\n\n // Boiled egg\n egg_boiled: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTEyIDNDOCAzIDUgOC41IDUgMTNDNSAxNy41IDguMSAyMSAxMiAyMUMxNS45IDIxIDE5IDE3LjUgMTkgMTNDMTkgOC41IDE2IDMgMTIgM1oiIGZpbGw9IiNGRUY5QzMiIHN0cm9rZT0iI0ZERTY4QSIgc3Ryb2tlLXdpZHRoPSIxLjUiLz48cGF0aCBkPSJNNSAxMkgxOSIgc3Ryb2tlPSIjRkRFNjhBIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWRhc2hhcnJheT0iMiAyIi8+PGVsbGlwc2UgY3g9IjEyIiBjeT0iMTUiIHJ4PSI0IiByeT0iMyIgZmlsbD0iI0ZCQkYyNCIvPjxlbGxpcHNlIGN4PSIxMiIgY3k9IjE1IiByeD0iMiIgcnk9IjEuNSIgZmlsbD0iI0Y1OUUwQiIvPjwvc3ZnPg==`,\n\n // Scrambled eggs\n egg_scrambled: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTQgMTBDNCAxMyA3IDE2IDEyIDE2QzE3IDE2IDIwIDEzIDIwIDEwQzIwIDcgMTcgNSAxMiA1QzcgNSA0IDcgNCAxMFoiIGZpbGw9IiNGQkJGMjQiIHN0cm9rZT0iI0Y1OUUwQiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz48cGF0aCBkPSJNNiAxMEM4IDkgMTAgOSAxMiAxMEMxNCAxMSAxNiAxMSAxOCAxMCIgc3Ryb2tlPSIjRkVGOUMzIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PHBhdGggZD0iTTggMTNDMTAgMTIgMTQgMTIgMTYgMTMiIHN0cm9rZT0iI0ZFRjlDMyIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjxwYXRoIGQ9Ik00IDE2QzQgMTggNyAxOSAxMiAxOUMxNyAxOSAyMCAxOCAyMCAxNiIgc3Ryb2tlPSIjRjU5RTBCIiBzdHJva2Utd2lkdGg9IjEuNSIvPjwvc3ZnPg==`,\n\n // Poached egg\n egg_poached: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTUgMTFDNCA4IDYgNSAxMiA1QzE4IDUgMjAgOCAxOSAxMUMxOCAxNCAxNiAxNyAxMiAxN0M4IDE3IDYgMTQgNSAxMVoiIGZpbGw9IiNGRkZGRkYiIHN0cm9rZT0iI0U1RTdFQiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz48ZWxsaXBzZSBjeD0iMTIiIGN5PSIxMSIgcng9IjQiIHJ5PSIzIiBmaWxsPSIjRkJCRjI0Ii8+PGVsbGlwc2UgY3g9IjEyIiBjeT0iMTEiIHJ4PSIyIiByeT0iMS41IiBmaWxsPSIjRjU5RTBCIi8+PC9zdmc+`,\n};\n\n// =============================================================================\n// INGREDIENT ICONS - Vegetables\n// =============================================================================\n\nexport const VEGETABLE_ICONS: Record<string, string> = {\n // Broccoli\n broccoli: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTEyIDIxVjE0IiBzdHJva2U9IiM2NUExNDUiIHN0cm9rZS13aWR0aD0iMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PGNpcmNsZSBjeD0iOCIgY3k9IjgiIHI9IjQiIGZpbGw9IiMyMkM1NUUiLz48Y2lyY2xlIGN4PSIxNiIgY3k9IjgiIHI9IjQiIGZpbGw9IiMyMkM1NUUiLz48Y2lyY2xlIGN4PSIxMiIgY3k9IjUiIHI9IjQiIGZpbGw9IiMyMkM1NUUiLz48Y2lyY2xlIGN4PSIxMiIgY3k9IjEwIiByPSI0IiBmaWxsPSIjMjJDNTVFIi8+PGNpcmNsZSBjeD0iOSIgY3k9IjYiIHI9IjIiIGZpbGw9IiM0QURFODAiLz48Y2lyY2xlIGN4PSIxNCIgY3k9IjgiIHI9IjEuNSIgZmlsbD0iIzRBREU4MCIvPjwvc3ZnPg==`,\n\n // Asparagus\n asparagus: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTggMjFWOEw5IDRMMTAgOFYyMSIgc3Ryb2tlPSIjNjVBMTQ1IiBzdHJva2Utd2lkdGg9IjIiIGZpbGw9IiM2NUExNDUiLz48cGF0aCBkPSJNMTEgMjFWOUwxMiA1TDEzIDlWMjEiIHN0cm9rZT0iIzIyQzU1RSIgc3Ryb2tlLXdpZHRoPSIyIiBmaWxsPSIjMjJDNTVFIi8+PHBhdGggZD0iTTE0IDIxVjEwTDE1IDZMMTYgMTBWMjEiIHN0cm9rZT0iIzY1QTE0NSIgc3Ryb2tlLXdpZHRoPSIyIiBmaWxsPSIjNjVBMTQ1Ii8+PGNpcmNsZSBjeD0iOSIgY3k9IjQiIHI9IjEuNSIgZmlsbD0iIzE2QTM0QSIvPjxjaXJjbGUgY3g9IjEyIiBjeT0iNSIgcj0iMS41IiBmaWxsPSIjMTZBMzRBIi8+PGNpcmNsZSBjeD0iMTUiIGN5PSI2IiByPSIxLjUiIGZpbGw9IiMxNkEzNEEiLz48L3N2Zz4=`,\n\n // Potato\n potato: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTUgMTJDNSA4IDggNSAxMiA1QzE2IDUgMTkgOCAxOSAxMkMxOSAxNiAxNiAxOSAxMiAxOUM4IDE5IDUgMTYgNSAxMloiIGZpbGw9IiNEOTc3MDYiIHN0cm9rZT0iI0I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIxLjUiLz48Y2lyY2xlIGN4PSI5IiBjeT0iMTAiIHI9IjEiIGZpbGw9IiNCNDUzMDkiLz48Y2lyY2xlIGN4PSIxNCIgY3k9IjkiIHI9IjAuNzUiIGZpbGw9IiNCNDUzMDkiLz48Y2lyY2xlIGN4PSIxMSIgY3k9IjE0IiByPSIwLjc1IiBmaWxsPSIjQjQ1MzA5Ii8+PGNpcmNsZSBjeD0iMTYiIGN5PSIxMyIgcj0iMC41IiBmaWxsPSIjQjQ1MzA5Ii8+PHBhdGggZD0iTTggMTJDMTAgMTEgMTQgMTEgMTYgMTIiIHN0cm9rZT0iI0Y1OUUwQiIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48L3N2Zz4=`,\n\n // Carrot\n carrot: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTEyIDZDMTAgNiA4IDggNyAxMUM2IDE0IDYgMTggOCAyMEwxMiAyMUwxNiAyMEMxOCAxOCAxOCAxNCAxNyAxMUMxNiA4IDE0IDYgMTIgNloiIGZpbGw9IiNGQjkyM0MiIHN0cm9rZT0iI0VBNTgwQyIgc3Ryb2tlLXdpZHRoPSIxLjUiLz48cGF0aCBkPSJNMTAgM0MxMCAzIDkgNSAxMCA2TTEyIDJDMTIgMiAxMSA1IDEyIDZNMTQgM0MxNCAzIDE1IDUgMTQgNiIgc3Ryb2tlPSIjMjJDNTVFIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjxwYXRoIGQ9Ik05IDEyQzExIDExIDEzIDExIDE1IDEyIiBzdHJva2U9IiNGRUQ3QUEiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PHBhdGggZD0iTTEwIDE2QzExIDE1IDEzIDE1IDE0IDE2IiBzdHJva2U9IiNGRUQ3QUEiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PC9zdmc+`,\n};\n\n// =============================================================================\n// INGREDIENT ICONS - Grains\n// =============================================================================\n\nexport const GRAIN_ICONS: Record<string, string> = {\n // White rice\n rice_white: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTQgMTFDNCAxMSA0IDE4IDEyIDE4QzIwIDE4IDIwIDExIDIwIDExSDRaIiBmaWxsPSIjRkZGRkZGIiBzdHJva2U9IiNFNUU3RUIiIHN0cm9rZS13aWR0aD0iMS41Ii8+PHBhdGggZD0iTTUgMThDNSAxOCA2IDIxIDEyIDIxQzE4IDIxIDE5IDE4IDE5IDE4IiBzdHJva2U9IiNFNUU3RUIiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48ZWxsaXBzZSBjeD0iOCIgY3k9IjkiIHJ4PSIxLjUiIHJ5PSIxIiBmaWxsPSIjRkVGM0M3Ii8+PGVsbGlwc2UgY3g9IjEyIiBjeT0iOCIgcng9IjEuNSIgcnk9IjEiIGZpbGw9IiNGRUYzQzciLz48ZWxsaXBzZSBjeD0iMTYiIGN5PSI5IiByeD0iMS41IiByeT0iMSIgZmlsbD0iI0ZFRjNDNyIvPjxlbGxpcHNlIGN4PSIxMCIgY3k9IjExIiByeD0iMS41IiByeT0iMSIgZmlsbD0iI0ZFRjNDNyIvPjxlbGxpcHNlIGN4PSIxNCIgY3k9IjExIiByeD0iMS41IiByeT0iMSIgZmlsbD0iI0ZFRjNDNyIvPjwvc3ZnPg==`,\n\n // Pasta\n pasta: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTQgMTRDNSAxMSA4IDkgMTIgOUMxNiA5IDE5IDExIDIwIDE0IiBzdHJva2U9IiNGREU2OEEiIHN0cm9rZS13aWR0aD0iMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PHBhdGggZD0iTTYgMTdDNyAxNCA5IDEyIDEyIDEyQzE1IDEyIDE3IDE0IDE4IDE3IiBzdHJva2U9IiNGREU2OEEiIHN0cm9rZS13aWR0aD0iMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PHBhdGggZD0iTTggMjBDOSAxOCAxMCAxNiAxMiAxNkMxNCAxNiAxNSAxOCAxNiAyMCIgc3Ryb2tlPSIjRkRFNjhBIiBzdHJva2Utd2lkdGg9IjMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjxwYXRoIGQ9Ik0zIDhDNCAxMCA2IDEyIDggMTJNMjEgOEMyMCAxMCAxOCAxMiAxNiAxMk0xMiA0VjkiIHN0cm9rZT0iI0Y1OUUwQiIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48L3N2Zz4=`,\n\n // Quinoa\n quinoa: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTQgMTFDNCAxMSA0IDE4IDEyIDE4QzIwIDE4IDIwIDExIDIwIDExSDRaIiBmaWxsPSIjRkZGRkZGIiBzdHJva2U9IiNFNUU3RUIiIHN0cm9rZS13aWR0aD0iMS41Ii8+PHBhdGggZD0iTTUgMThDNSAxOCA2IDIxIDEyIDIxQzE4IDIxIDE5IDE4IDE5IDE4IiBzdHJva2U9IiNFNUU3RUIiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48Y2lyY2xlIGN4PSI3IiBjeT0iMTAiIHI9IjEiIGZpbGw9IiNGREU2OEEiLz48Y2lyY2xlIGN4PSIxMCIgY3k9IjkiIHI9IjEiIGZpbGw9IiNGRUY5QzMiLz48Y2lyY2xlIGN4PSIxMyIgY3k9IjgiIHI9IjEiIGZpbGw9IiNGREU2OEEiLz48Y2lyY2xlIGN4PSIxNiIgY3k9IjkiIHI9IjEiIGZpbGw9IiNGRUY5QzMiLz48Y2lyY2xlIGN4PSI4IiBjeT0iMTMiIHI9IjEiIGZpbGw9IiNGRUY5QzMiLz48Y2lyY2xlIGN4PSIxMiIgY3k9IjExIiByPSIxIiBmaWxsPSIjRkRFNjhBIi8+PGNpcmNsZSBjeD0iMTUiIGN5PSIxMiIgcj0iMSIgZmlsbD0iI0ZFRjlDMyIvPjwvc3ZnPg==`,\n};\n\n// =============================================================================\n// COMBINED INGREDIENT ICONS (for convenience)\n// =============================================================================\n\nexport const INGREDIENT_ICONS: Record<string, string> = {\n ...POULTRY_ICONS,\n ...BEEF_ICONS,\n ...SEAFOOD_ICONS,\n ...EGG_ICONS,\n ...VEGETABLE_ICONS,\n ...GRAIN_ICONS,\n};\n\n// =============================================================================\n// HELPER FUNCTION\n// =============================================================================\n\n/**\n * Get icon for a category or ingredient by ID\n * Falls back to category icon if no specific ingredient icon exists\n */\nexport const getIcon = (id: string, category?: string): string | undefined => {\n // Check for specific ingredient icon first\n if (INGREDIENT_ICONS[id]) {\n return INGREDIENT_ICONS[id];\n }\n\n // Fall back to category icon\n if (category && CATEGORY_ICONS[category]) {\n return CATEGORY_ICONS[category];\n }\n\n return undefined;\n};\n"],"mappings":";AAMO,IAAM,iBAAyC;AAAA;AAAA,EAEpD,SAAS;AAAA;AAAA,EAGT,MAAM;AAAA;AAAA,EAGN,MAAM;AAAA;AAAA,EAGN,cAAc;AAAA;AAAA,EAGd,mBAAmB;AAAA;AAAA,EAGnB,KAAK;AAAA;AAAA,EAGL,WAAW;AAAA;AAAA,EAGX,OAAO;AACT;AAMO,IAAM,gBAAwC;AAAA;AAAA,EAEnD,gBAAgB;AAAA;AAAA,EAGhB,eAAe;AAAA;AAAA,EAGf,eAAe;AAAA;AAAA,EAGf,eAAe;AACjB;AAMO,IAAM,aAAqC;AAAA;AAAA,EAEhD,mBAAmB;AAAA;AAAA,EAGnB,aAAa;AAAA;AAAA,EAGb,YAAY;AACd;AAMO,IAAM,gBAAwC;AAAA;AAAA,EAEnD,eAAe;AAAA;AAAA,EAGf,QAAQ;AAAA;AAAA,EAGR,YAAY;AAAA;AAAA,EAGZ,YAAY;AACd;AAMO,IAAM,YAAoC;AAAA;AAAA,EAE/C,WAAW;AAAA;AAAA,EAGX,YAAY;AAAA;AAAA,EAGZ,eAAe;AAAA;AAAA,EAGf,aAAa;AACf;AAMO,IAAM,kBAA0C;AAAA;AAAA,EAErD,UAAU;AAAA;AAAA,EAGV,WAAW;AAAA;AAAA,EAGX,QAAQ;AAAA;AAAA,EAGR,QAAQ;AACV;AAMO,IAAM,cAAsC;AAAA;AAAA,EAEjD,YAAY;AAAA;AAAA,EAGZ,OAAO;AAAA;AAAA,EAGP,QAAQ;AACV;AAMO,IAAM,mBAA2C;AAAA,EACtD,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AACL;AAUO,IAAM,UAAU,CAAC,IAAY,aAA0C;AAE5E,MAAI,iBAAiB,EAAE,GAAG;AACxB,WAAO,iBAAiB,EAAE;AAAA,EAC5B;AAGA,MAAI,YAAY,eAAe,QAAQ,GAAG;AACxC,WAAO,eAAe,QAAQ;AAAA,EAChC;AAEA,SAAO;AACT;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../icons.ts"],"sourcesContent":["// Microsoft Fluent Emoji 3D via Lobehub CDN\n// Beautiful 3D emoji - MIT licensed, no Twitter involved\n\nconst FLUENT_BASE = 'https://registry.npmmirror.com/@lobehub/fluent-emoji-3d/latest/files/assets';\n\nconst fluent = (codepoint: string): string => `${FLUENT_BASE}/${codepoint}.webp`;\n\n// =============================================================================\n// CATEGORY ICONS\n// =============================================================================\nexport const CATEGORY_ICONS: Record<string, string> = {\n poultry: fluent('1f357'), // 🍗 Poultry Leg\n beef: fluent('1f969'), // 🥩 Cut of Meat\n pork: fluent('1f356'), // 🍖 Meat on Bone\n seafood_fish: fluent('1f41f'), // 🐟 Fish\n seafood_shellfish: fluent('1f990'), // 🦐 Shrimp\n egg: fluent('1f95a'), // 🥚 Egg\n vegetable: fluent('1f966'), // 🥦 Broccoli\n grain: fluent('1f35a'), // 🍚 Cooked Rice\n};\n\n// =============================================================================\n// INGREDIENT ICONS - Poultry\n// =============================================================================\nexport const POULTRY_ICONS: Record<string, string> = {\n chicken_breast: fluent('1f357'), // 🍗\n chicken_thigh: fluent('1f357'), // 🍗\n chicken_breast_boneless: fluent('1f357'), // 🍗\n chicken_thigh_boneless: fluent('1f357'), // 🍗\n chicken_whole: fluent('1f414'), // 🐔\n turkey_breast: fluent('1f983'), // 🦃\n duck: fluent('1f986'), // 🦆\n};\n\n// =============================================================================\n// INGREDIENT ICONS - Beef\n// =============================================================================\nexport const BEEF_ICONS: Record<string, string> = {\n beef_steak_ribeye: fluent('1f969'), // 🥩\n beef_ground: fluent('1f969'), // 🥩\n beef_roast: fluent('1f969'), // 🥩\n};\n\n// =============================================================================\n// INGREDIENT ICONS - Pork\n// =============================================================================\nexport const PORK_ICONS: Record<string, string> = {\n pork_chop: fluent('1f356'), // 🍖\n pork_tenderloin: fluent('1f356'), // 🍖\n pork_ribs: fluent('1f356'), // 🍖\n bacon: fluent('1f953'), // 🥓\n};\n\n// =============================================================================\n// INGREDIENT ICONS - Seafood\n// =============================================================================\nexport const SEAFOOD_ICONS: Record<string, string> = {\n salmon_fillet: fluent('1f41f'), // 🐟\n tuna_steak: fluent('1f41f'), // 🐟\n cod_fillet: fluent('1f41f'), // 🐟\n shrimp: fluent('1f990'), // 🦐\n lobster: fluent('1f99e'), // 🦞\n scallops: fluent('1f41a'), // 🐚\n crab: fluent('1f980'), // 🦀\n};\n\n// =============================================================================\n// INGREDIENT ICONS - Eggs\n// =============================================================================\nexport const EGG_ICONS: Record<string, string> = {\n egg_fried: fluent('1f373'), // 🍳\n egg_boiled: fluent('1f95a'), // 🥚\n egg_scrambled: fluent('1f373'), // 🍳\n egg_poached: fluent('1f373'), // 🍳\n egg_omelette: fluent('1f373'), // 🍳\n};\n\n// =============================================================================\n// INGREDIENT ICONS - Vegetables\n// =============================================================================\nexport const VEGETABLE_ICONS: Record<string, string> = {\n broccoli: fluent('1f966'), // 🥦\n asparagus: fluent('1f96c'), // 🥬 (leafy green, closest match)\n potato: fluent('1f954'), // 🥔\n carrot: fluent('1f955'), // 🥕\n corn: fluent('1f33d'), // 🌽\n tomato: fluent('1f345'), // 🍅\n onion: fluent('1f9c5'), // 🧅\n garlic: fluent('1f9c4'), // 🧄\n pepper: fluent('1fad1'), // 🫑 Bell Pepper\n leafy_greens: fluent('1f96c'), // 🥬\n mushroom: fluent('1f344'), // 🍄\n eggplant: fluent('1f346'), // 🍆\n cucumber: fluent('1f952'), // 🥒\n avocado: fluent('1f951'), // 🥑\n};\n\n// =============================================================================\n// INGREDIENT ICONS - Grains\n// =============================================================================\nexport const GRAIN_ICONS: Record<string, string> = {\n rice_white: fluent('1f35a'), // 🍚\n rice_brown: fluent('1f35a'), // 🍚\n pasta: fluent('1f35d'), // 🍝\n bread: fluent('1f35e'), // 🍞\n quinoa: fluent('1f35a'), // 🍚\n};\n\n// =============================================================================\n// COMBINED INGREDIENT ICONS\n// =============================================================================\nexport const INGREDIENT_ICONS: Record<string, string> = {\n ...POULTRY_ICONS,\n ...BEEF_ICONS,\n ...PORK_ICONS,\n ...SEAFOOD_ICONS,\n ...EGG_ICONS,\n ...VEGETABLE_ICONS,\n ...GRAIN_ICONS,\n};\n\n// =============================================================================\n// HELPER FUNCTION\n// =============================================================================\n/**\n * Get icon URL for a category or ingredient by ID\n * Falls back to category icon if no specific ingredient icon exists\n */\nexport const getIcon = (id: string, category?: string): string | undefined => {\n if (INGREDIENT_ICONS[id]) {\n return INGREDIENT_ICONS[id];\n }\n\n if (category && CATEGORY_ICONS[category]) {\n return CATEGORY_ICONS[category];\n }\n\n return undefined;\n};\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cooking-temperature",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.5",
|
|
4
4
|
"description": "A comprehensive library for safe cooking temperatures, doneness levels, and cooking instructions for various ingredients",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|