cooking-temperature 1.0.4 → 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 +12 -1
- package/dist/icons.d.ts +12 -1
- package/dist/icons.js +143 -55
- package/dist/icons.js.map +1 -1
- package/dist/icons.mjs +136 -55
- package/dist/icons.mjs.map +1 -1
- package/package.json +1 -1
package/dist/icons.d.mts
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
declare const CATEGORY_ICONS: Record<string, string>;
|
|
2
|
+
declare const POULTRY_ICONS: Record<string, string>;
|
|
3
|
+
declare const BEEF_ICONS: Record<string, string>;
|
|
4
|
+
declare const PORK_ICONS: Record<string, string>;
|
|
5
|
+
declare const SEAFOOD_ICONS: Record<string, string>;
|
|
6
|
+
declare const EGG_ICONS: Record<string, string>;
|
|
7
|
+
declare const VEGETABLE_ICONS: Record<string, string>;
|
|
8
|
+
declare const GRAIN_ICONS: Record<string, string>;
|
|
2
9
|
declare const INGREDIENT_ICONS: Record<string, string>;
|
|
10
|
+
/**
|
|
11
|
+
* Get icon URL for a category or ingredient by ID
|
|
12
|
+
* Falls back to category icon if no specific ingredient icon exists
|
|
13
|
+
*/
|
|
3
14
|
declare const getIcon: (id: string, category?: string) => string | undefined;
|
|
4
15
|
|
|
5
|
-
export { CATEGORY_ICONS, INGREDIENT_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,5 +1,16 @@
|
|
|
1
1
|
declare const CATEGORY_ICONS: Record<string, string>;
|
|
2
|
+
declare const POULTRY_ICONS: Record<string, string>;
|
|
3
|
+
declare const BEEF_ICONS: Record<string, string>;
|
|
4
|
+
declare const PORK_ICONS: Record<string, string>;
|
|
5
|
+
declare const SEAFOOD_ICONS: Record<string, string>;
|
|
6
|
+
declare const EGG_ICONS: Record<string, string>;
|
|
7
|
+
declare const VEGETABLE_ICONS: Record<string, string>;
|
|
8
|
+
declare const GRAIN_ICONS: Record<string, string>;
|
|
2
9
|
declare const INGREDIENT_ICONS: Record<string, string>;
|
|
10
|
+
/**
|
|
11
|
+
* Get icon URL for a category or ingredient by ID
|
|
12
|
+
* Falls back to category icon if no specific ingredient icon exists
|
|
13
|
+
*/
|
|
3
14
|
declare const getIcon: (id: string, category?: string) => string | undefined;
|
|
4
15
|
|
|
5
|
-
export { CATEGORY_ICONS, INGREDIENT_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
|
@@ -20,69 +20,150 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
// icons.ts
|
|
21
21
|
var icons_exports = {};
|
|
22
22
|
__export(icons_exports, {
|
|
23
|
+
BEEF_ICONS: () => BEEF_ICONS,
|
|
23
24
|
CATEGORY_ICONS: () => CATEGORY_ICONS,
|
|
25
|
+
EGG_ICONS: () => EGG_ICONS,
|
|
26
|
+
GRAIN_ICONS: () => GRAIN_ICONS,
|
|
24
27
|
INGREDIENT_ICONS: () => INGREDIENT_ICONS,
|
|
28
|
+
PORK_ICONS: () => PORK_ICONS,
|
|
29
|
+
POULTRY_ICONS: () => POULTRY_ICONS,
|
|
30
|
+
SEAFOOD_ICONS: () => SEAFOOD_ICONS,
|
|
31
|
+
VEGETABLE_ICONS: () => VEGETABLE_ICONS,
|
|
25
32
|
getIcon: () => getIcon
|
|
26
33
|
});
|
|
27
34
|
module.exports = __toCommonJS(icons_exports);
|
|
28
|
-
var
|
|
29
|
-
|
|
30
|
-
return `data:image/svg+xml,${encoded}`;
|
|
31
|
-
};
|
|
32
|
-
var SVG_POULTRY = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#C1694F" d="M30.326 14.24c-.279-4.063-4.016-7.592-8.396-7.931-4.38-.339-7.294 1.908-8.406 5.865-1.113 3.958 1.006 9.672 1.006 9.672l1.781 2.281 3.594 5.719 3 .281 2.219-1.562 3.344-4.281 1.5-1.75.358-8.294z"/><path fill="#E0A577" d="M26.639 12.178c-.224-3.25-3.213-6.074-6.717-6.345-3.504-.271-5.836 1.526-6.725 4.692-.889 3.166.805 7.738.805 7.738l1.425 1.825 2.875 4.575 2.4.225 1.775-1.25 2.675-3.425 1.2-1.4.287-6.635z"/><path fill="#C1694F" d="M11.069 18.063c-2.5-1.688-3.02-4.602-3.02-4.602s-.937-6.219-.479-8.732c.458-2.513 2.769-3.27 4.436-2.498 1.667.771 1.428 1.705 2.016 3.575.588 1.87.336 3.803 1.078 5.614.741 1.811 1.913 2.933 2.26 4.618.346 1.685-.33 3.327-2.372 3.806-2.041.478-3.919-1.781-3.919-1.781z"/><path fill="#E0A577" d="M12.298 16.537c-2-1.35-2.416-3.682-2.416-3.682s-.75-4.975-.383-6.986c.367-2.01 2.215-2.616 3.549-1.998 1.333.617 1.142 1.364 1.613 2.86.47 1.496.269 3.042.862 4.491.593 1.449 1.531 2.347 1.808 3.694.277 1.348-.264 2.662-1.898 3.045-1.633.383-3.135-1.424-3.135-1.424z"/><ellipse cx="17.952" cy="32.656" fill="#C1694F" rx="4.218" ry="1.594"/><path fill="#E0A577" d="M16.858 21.858s-.546 6.792-.179 8.75c.367 1.958 1 2.344 2.042 2.25 1.041-.094 1.291-1.125 1.375-2.417.083-1.292.125-8.333.125-8.333l-3.363-.25z"/></svg>`;
|
|
33
|
-
var SVG_BEEF = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#BE1931" d="M35.728 10.357c-2.267-5.266-6.9-8.628-12.102-9.472-1.249-.203-7.308-.937-13.081 2.279C5.058 6.641 1.353 11.785.16 20.074c-.591 4.108-.074 7.093 1.539 8.871 2.021 2.229 5.555 2.596 8.306 2.596.976 0 1.87-.052 2.58-.103 2.018-.149 8.741-1.043 14.396-4.636 5.575-3.543 9.989-10.38 8.747-16.445z"/><path fill="#DD2E44" d="M33.728 11.357c-1.983-4.608-6.037-7.549-10.59-8.29-1.093-.178-6.395-.82-11.446 1.994C6.801 7.936 3.558 12.437 2.513 19.69c-.518 3.595-.065 6.207 1.347 7.762 1.769 1.951 4.861 2.272 7.268 2.272.854 0 1.636-.046 2.257-.09 1.766-.131 7.649-.913 12.597-4.057 4.88-3.102 8.742-9.085 7.746-14.22z"/><path fill="#BE1931" d="M23.901 5.398c-1.093-.178-6.395-.82-11.446 1.994-.969.54-1.859 1.157-2.674 1.833 1.019-.397 2.149-.652 3.394-.652 5.237 0 9.891 3.618 10.909 8.707.324 1.62.283 3.219-.056 4.73 3.019-2.727 5.476-6.757 4.62-10.392-1.983-4.608-6.037-7.549-10.59-8.29.614.09 4.219.788 5.843 2.07z"/><ellipse cx="12.814" cy="15.785" fill="#F7DECE" rx="7.021" ry="5.404"/><ellipse cx="12.814" cy="15.785" fill="#BE1931" rx="3.298" ry="2.54"/></svg>`;
|
|
34
|
-
var SVG_PORK = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#C1694F" d="M31.29 13.214c-.483-4.839-5.274-8.944-10.761-9.221-5.487-.277-9.12 2.704-10.481 7.571-1.361 4.867.636 11.714 1.959 14.199 1.323 2.485 2.978 4.354 6.27 4.648 3.292.294 6.234-1.102 8.413-3.826 2.179-2.724 5.083-8.532 4.6-13.371z"/><path fill="#E0A577" d="M28.632 13.661c-.386-3.871-4.219-7.155-8.609-7.377-4.39-.222-7.296 2.163-8.385 6.057-1.089 3.894.509 9.371 1.567 11.359 1.058 1.988 2.382 3.483 5.016 3.718 2.634.235 4.987-.882 6.73-3.061 1.744-2.179 4.067-6.825 3.681-10.696z"/><path fill="#FFCC4D" d="M10.733 19.714c-1.128 1.332-4.012 4.523-5.345 5.618-1.333 1.095-3.857 2.857-3.857 4.762s1.524 3.619 3.619 3.619c2.095 0 3.583-1.179 4.917-2.333 1.333-1.155 4.379-4.446 5.065-5.422.686-.976 1.143-2.531.762-3.238-.381-.708-2.115-.746-3.219-.368-1.105.381-1.942-2.638-1.942-2.638z"/><path fill="#FFAC33" d="M5.482 31.003c-.073 0-.146-.022-.209-.067-.156-.111-.193-.328-.082-.484 1.04-1.459 3.113-4.063 3.134-4.09.117-.148.331-.177.483-.063.151.114.182.328.067.48-.021.027-2.089 2.625-3.125 4.078-.069.095-.176.146-.268.146zm1.729.814c-.073 0-.147-.022-.21-.068-.155-.111-.192-.328-.081-.484 1.373-1.928 3.076-4.138 3.093-4.161.115-.151.33-.181.482-.066.152.113.183.328.068.48-.017.023-1.716 2.228-3.084 4.148-.068.098-.175.151-.268.151zm1.787.664c-.073 0-.147-.022-.21-.068-.155-.111-.192-.328-.081-.484 1.398-1.961 2.869-3.931 2.884-3.951.114-.152.33-.184.482-.069.153.113.185.327.071.48-.015.02-1.482 1.984-2.877 3.941-.068.099-.175.151-.269.151z"/><ellipse cx="6.833" cy="32.524" fill="#FFCC4D" rx="2.667" ry="1.143"/></svg>`;
|
|
35
|
-
var SVG_FISH = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#55ACEE" d="M27 2s-5.958 3.75-8.031 5.469C14.865 11.057 8.503 18.839 5 23c-1.5 1-2.5 2.25-2.5 3.5 0 2.5 2.603 5.5 4.5 5.5 1.5 0 2.5-1 3.5-2.5 3.5-4.5 10.654-10.588 13.5-13.5C25.806 14.056 31 9 31 9l-4-7z"/><circle cx="9.5" cy="27.5" r="1.5" fill="#292F33"/><path fill="#3B88C3" d="M25 4s-4.958 3.75-7.031 5.469C13.865 13.057 8.503 19.839 5 24c-1.5 1-2.083 2.5-2.083 3.5 0 1.75 1.686 3.5 3.583 3.5 1.5 0 2.5-1 3.5-2.5 3.5-4.5 9.654-9.588 12.5-12.5C24.306 14.056 29 10 29 10l-4-6z"/><path fill="#55ACEE" d="M31 8s3 3.334 3 6c0 2.668-3 6-3 6l-2.667-5.333L31 8z"/><path fill="#3B88C3" d="M29 10s3 2.334 3 5c0 2.668-3 5-3 5l-2-4.5 2-5.5z"/></svg>`;
|
|
36
|
-
var SVG_SHRIMP = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F4900C" d="M26.688 9.812c-.271 2.917-1.167 8.146-4.792 11.771-2.917 2.917-8.771 3.125-12.708 3.125-1.549 0-2.912-.049-3.938-.106-1.958-.107-2.313-.707-2.188-1.914s1.538-.998 3.059-.871c.761.063 1.722.107 2.817.107 3.458 0 8.146-.438 10.146-2.438 2.833-2.833 3.563-6.563 3.813-8.938.188-1.792.854-1.917 1.604-1.646.75.272.395 1.91.187 2.91z"/><path fill="#FFCC4D" d="M10.376 15.098c-2.188.354-3.188.917-3.188 2.417 0 1.125.667 1.792 1.792 1.792 1.75 0 2.104-.771 2.104-1.917s-.708-2.292-.708-2.292z"/><path fill="#F4900C" d="M16.542 10.639c-4.25 0-5.917 2.042-6.875 4.5.084-.001.162-.014.25-.014 2.292 0 2.667 2.417 2.667 3.583 0 1.75-.854 3.167-3.292 3.167-1.708 0-3-1.104-3.145-2.958-.032.035-.065.065-.098.101-1.125 1.25-1.875 3.063-1.875 5.875 0 4.166 3.333 8.229 8.833 8.229s9.667-4.229 9.667-9.646c0-6.625-3.25-12.837-6.132-12.837z"/><circle cx="9.396" cy="27.441" r="1.25" fill="#662113"/><path fill="#FFCC4D" d="M15.5 25c-1.375 0-2.5 1.625-2.5 3.5 0 1.25.375 2.5 1.875 2.5 1.667 0 2.125-1.417 2.125-2.917 0-1.208-.125-3.083-1.5-3.083zm4-1c-1.125 0-2 1.542-2 3.25 0 1.083.333 2.25 1.625 2.25 1.375 0 1.875-1.208 1.875-2.583 0-1.084-.167-2.917-1.5-2.917z"/><path fill="#F4900C" d="M5.813 25.77c-.094-.178-.428-.188-.746-.022-.318.166-.479.452-.385.631l1.334 2.428c.081.155.327.187.599.095-.233-.497-1.026-1.995-.802-3.132z"/><path fill="#FFCC4D" d="M30.599 5.401c-.345.174-.525.513-.431.785.036.104.136.393-.212.938-.49.768-1.679 1.717-4.002 2.882-5.708 2.862-8.62.67-10.33-.776-.615-.52-1.084-1.059-1.462-1.55-.295-.384-.764-.389-1.047-.01-.283.378-.172.919.168 1.27l.022.023c.396.443.925.986 1.622 1.555 1.981 1.616 5.846 4.287 12.511.948 2.549-1.277 3.944-2.394 4.604-3.429.451-.708.554-1.378.343-1.988-.094-.272-.34-.361-.513-.361-.089 0-.175.021-.249.059-.355.179-.549.504-.479.784.054.217-.011.448-.234.668-.356.351-1.085.787-2.186 1.323-3.364 1.637-5.539 1.314-6.753.552-1.028-.646-1.424-1.558-1.425-1.56-.116-.266-.5-.361-.857-.212-.356.149-.54.484-.423.749l.001.002c.02.046.508 1.131 1.778 1.933 1.535.968 4.167 1.378 8.079-.527 1.212-.59 2.036-1.087 2.495-1.54.538-.531.659-1.102.529-1.574-.132-.476-.51-.818-.993-.818-.109 0-.221.019-.334.056z"/><ellipse cx="27.819" cy="2.692" fill="#FFCC4D" rx="2.413" ry="1.025" transform="rotate(-63.435 27.82 2.693)"/><ellipse cx="30.569" cy="4.067" fill="#FFCC4D" rx="2.413" ry="1.025" transform="rotate(-63.435 30.57 4.067)"/></svg>`;
|
|
37
|
-
var SVG_EGG = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#E1E8ED" d="M18 35c-7.732 0-14-4.701-14-10.5C4 14.603 11.268 1 18 1s14 13.603 14 23.5c0 5.799-6.268 10.5-14 10.5z"/><path fill="#CCD6DD" d="M18 33c-6.627 0-12-3.873-12-8.5C6 15.603 12.268 3 18 3s12 12.603 12 21.5c0 4.627-5.373 8.5-12 8.5z"/></svg>`;
|
|
38
|
-
var SVG_BROCCOLI = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#77B255" d="M22.453 35.564c-.315 0-.636-.08-.934-.251-5.281-3.029-5.792-10.958-5.813-11.294-.042-.679.474-1.263 1.152-1.305.683-.048 1.263.474 1.305 1.152.005.073.456 7.134 4.607 9.515.59.339.795 1.091.456 1.683-.227.396-.642.617-1.069.617-.001-.117-.296-.117-.704-.117z"/><path fill="#5C913B" d="M13.838 35.564c-.315 0-.636-.08-.934-.251-5.281-3.029-5.792-10.958-5.813-11.294-.042-.679.474-1.263 1.152-1.305.683-.048 1.263.474 1.305 1.152.005.073.456 7.134 4.607 9.515.59.339.795 1.091.456 1.683-.227.396-.642.617-1.069.617-.001-.117-.296-.117-.704-.117z"/><ellipse cx="20.285" cy="18.546" fill="#77B255" rx="5.701" ry="5.476"/><ellipse cx="8.073" cy="15.9" fill="#5C913B" rx="5.145" ry="4.943"/><circle cx="23.111" cy="9.561" r="5.588" fill="#77B255"/><ellipse cx="13.838" cy="7.589" fill="#5C913B" rx="4.866" ry="4.674"/><circle cx="17.236" cy="13.369" r="6.145" fill="#3E721D"/><circle cx="10.166" cy="9.561" r="4.588" fill="#77B255"/><circle cx="26.508" cy="14.571" r="4.588" fill="#5C913B"/><ellipse cx="20.285" cy="4.787" fill="#5C913B" rx="4.31" ry="4.141"/></svg>`;
|
|
39
|
-
var SVG_RICE = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#CCD6DD" d="M33 22H3c-1.657 0-3 1.343-3 3v6c0 1.657 1.343 3 3 3h30c1.657 0 3-1.343 3-3v-6c0-1.657-1.343-3-3-3z"/><path fill="#E1E8ED" d="M33 20H3c-1.657 0-3 1.343-3 3v6c0 1.657 1.343 3 3 3h30c1.657 0 3-1.343 3-3v-6c0-1.657-1.343-3-3-3z"/><path fill="#F5F8FA" d="M8 18c-.552 0-1-.447-1-1v-4c0-.553.448-1 1-1s1 .447 1 1v4c0 .553-.448 1-1 1zm4 0c-.552 0-1-.447-1-1v-5c0-.553.448-1 1-1s1 .447 1 1v5c0 .553-.448 1-1 1zm4-1c-.552 0-1-.447-1-1v-4c0-.553.448-1 1-1s1 .447 1 1v4c0 .553-.448 1-1 1zm4 0c-.552 0-1-.447-1-1v-5c0-.553.448-1 1-1s1 .447 1 1v5c0 .553-.448 1-1 1zm4 1c-.552 0-1-.447-1-1v-4c0-.553.448-1 1-1s1 .447 1 1v4c0 .553-.448 1-1 1zm4 0c-.552 0-1-.447-1-1v-5c0-.553.448-1 1-1s1 .447 1 1v5c0 .553-.448 1-1 1z"/></svg>`;
|
|
40
|
-
var SVG_FRIED_EGG = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#E1E8ED" d="M35 19.5c0 4.142-3.582 7.5-8 7.5-2.348 0-4.471-.939-6-2.452C19.471 26.061 17.348 27 15 27c-4.418 0-8-3.358-8-7.5 0-.646.087-1.271.248-1.865C4.414 17.047 2 14.552 2 11.5 2 8.186 4.833 5.5 8.333 5.5c.357 0 .707.027 1.05.078C10.66 3.398 12.928 2 15.5 2c2.572 0 4.84 1.398 6.117 3.578.343-.051.693-.078 1.05-.078C26.167 5.5 29 8.186 29 11.5c0 .985-.227 1.918-.631 2.757C32.159 14.676 35 16.799 35 19.5z"/><ellipse cx="15" cy="18" fill="#FFCC4D" rx="8" ry="7"/><ellipse cx="15" cy="17" fill="#FFE8B6" rx="4" ry="3.5"/></svg>`;
|
|
35
|
+
var FLUENT_BASE = "https://registry.npmmirror.com/@lobehub/fluent-emoji-3d/latest/files/assets";
|
|
36
|
+
var fluent = (codepoint) => `${FLUENT_BASE}/${codepoint}.webp`;
|
|
41
37
|
var CATEGORY_ICONS = {
|
|
42
|
-
poultry:
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
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
|
|
54
|
+
};
|
|
55
|
+
var POULTRY_ICONS = {
|
|
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
|
+
// 🦆
|
|
70
|
+
};
|
|
71
|
+
var BEEF_ICONS = {
|
|
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
|
+
// 🥓
|
|
88
|
+
};
|
|
89
|
+
var SEAFOOD_ICONS = {
|
|
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
|
+
// 🦀
|
|
104
|
+
};
|
|
105
|
+
var EGG_ICONS = {
|
|
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
|
+
// 🍳
|
|
116
|
+
};
|
|
117
|
+
var VEGETABLE_ICONS = {
|
|
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
|
+
// 🥑
|
|
146
|
+
};
|
|
147
|
+
var GRAIN_ICONS = {
|
|
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
|
+
// 🍚
|
|
50
158
|
};
|
|
51
159
|
var INGREDIENT_ICONS = {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
// Beef
|
|
60
|
-
beef_steak_ribeye: toDataUrl(SVG_BEEF),
|
|
61
|
-
beef_ground: toDataUrl(SVG_BEEF),
|
|
62
|
-
beef_roast: toDataUrl(SVG_BEEF),
|
|
63
|
-
// Pork
|
|
64
|
-
pork_chop: toDataUrl(SVG_PORK),
|
|
65
|
-
pork_tenderloin: toDataUrl(SVG_PORK),
|
|
66
|
-
pork_ribs: toDataUrl(SVG_PORK),
|
|
67
|
-
// Seafood
|
|
68
|
-
salmon_fillet: toDataUrl(SVG_FISH),
|
|
69
|
-
tuna_steak: toDataUrl(SVG_FISH),
|
|
70
|
-
cod_fillet: toDataUrl(SVG_FISH),
|
|
71
|
-
shrimp: toDataUrl(SVG_SHRIMP),
|
|
72
|
-
// Eggs
|
|
73
|
-
egg_fried: toDataUrl(SVG_FRIED_EGG),
|
|
74
|
-
egg_boiled: toDataUrl(SVG_EGG),
|
|
75
|
-
egg_scrambled: toDataUrl(SVG_FRIED_EGG),
|
|
76
|
-
egg_poached: toDataUrl(SVG_FRIED_EGG),
|
|
77
|
-
// Vegetables
|
|
78
|
-
broccoli: toDataUrl(SVG_BROCCOLI),
|
|
79
|
-
asparagus: toDataUrl(SVG_BROCCOLI),
|
|
80
|
-
potato: toDataUrl(SVG_BROCCOLI),
|
|
81
|
-
carrot: toDataUrl(SVG_BROCCOLI),
|
|
82
|
-
// Grains
|
|
83
|
-
rice_white: toDataUrl(SVG_RICE),
|
|
84
|
-
pasta: toDataUrl(SVG_RICE),
|
|
85
|
-
quinoa: toDataUrl(SVG_RICE)
|
|
160
|
+
...POULTRY_ICONS,
|
|
161
|
+
...BEEF_ICONS,
|
|
162
|
+
...PORK_ICONS,
|
|
163
|
+
...SEAFOOD_ICONS,
|
|
164
|
+
...EGG_ICONS,
|
|
165
|
+
...VEGETABLE_ICONS,
|
|
166
|
+
...GRAIN_ICONS
|
|
86
167
|
};
|
|
87
168
|
var getIcon = (id, category) => {
|
|
88
169
|
if (INGREDIENT_ICONS[id]) {
|
|
@@ -95,8 +176,15 @@ var getIcon = (id, category) => {
|
|
|
95
176
|
};
|
|
96
177
|
// Annotate the CommonJS export names for ESM import in node:
|
|
97
178
|
0 && (module.exports = {
|
|
179
|
+
BEEF_ICONS,
|
|
98
180
|
CATEGORY_ICONS,
|
|
181
|
+
EGG_ICONS,
|
|
182
|
+
GRAIN_ICONS,
|
|
99
183
|
INGREDIENT_ICONS,
|
|
184
|
+
PORK_ICONS,
|
|
185
|
+
POULTRY_ICONS,
|
|
186
|
+
SEAFOOD_ICONS,
|
|
187
|
+
VEGETABLE_ICONS,
|
|
100
188
|
getIcon
|
|
101
189
|
});
|
|
102
190
|
//# sourceMappingURL=icons.js.map
|
package/dist/icons.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../icons.ts"],"sourcesContent":["// High-quality flat-style food icons as data URLs\n// Consistent style, no external dependencies\n\n// Helper to encode SVG as data URL\nconst toDataUrl = (svg: string): string => {\n const encoded = encodeURIComponent(svg)\n .replace(/'/g, '%27')\n .replace(/\"/g, '%22');\n return `data:image/svg+xml,${encoded}`;\n};\n\n// =============================================================================\n// SVG DEFINITIONS\n// =============================================================================\n\nconst SVG_POULTRY = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 36 36\"><path fill=\"#C1694F\" d=\"M30.326 14.24c-.279-4.063-4.016-7.592-8.396-7.931-4.38-.339-7.294 1.908-8.406 5.865-1.113 3.958 1.006 9.672 1.006 9.672l1.781 2.281 3.594 5.719 3 .281 2.219-1.562 3.344-4.281 1.5-1.75.358-8.294z\"/><path fill=\"#E0A577\" d=\"M26.639 12.178c-.224-3.25-3.213-6.074-6.717-6.345-3.504-.271-5.836 1.526-6.725 4.692-.889 3.166.805 7.738.805 7.738l1.425 1.825 2.875 4.575 2.4.225 1.775-1.25 2.675-3.425 1.2-1.4.287-6.635z\"/><path fill=\"#C1694F\" d=\"M11.069 18.063c-2.5-1.688-3.02-4.602-3.02-4.602s-.937-6.219-.479-8.732c.458-2.513 2.769-3.27 4.436-2.498 1.667.771 1.428 1.705 2.016 3.575.588 1.87.336 3.803 1.078 5.614.741 1.811 1.913 2.933 2.26 4.618.346 1.685-.33 3.327-2.372 3.806-2.041.478-3.919-1.781-3.919-1.781z\"/><path fill=\"#E0A577\" d=\"M12.298 16.537c-2-1.35-2.416-3.682-2.416-3.682s-.75-4.975-.383-6.986c.367-2.01 2.215-2.616 3.549-1.998 1.333.617 1.142 1.364 1.613 2.86.47 1.496.269 3.042.862 4.491.593 1.449 1.531 2.347 1.808 3.694.277 1.348-.264 2.662-1.898 3.045-1.633.383-3.135-1.424-3.135-1.424z\"/><ellipse cx=\"17.952\" cy=\"32.656\" fill=\"#C1694F\" rx=\"4.218\" ry=\"1.594\"/><path fill=\"#E0A577\" d=\"M16.858 21.858s-.546 6.792-.179 8.75c.367 1.958 1 2.344 2.042 2.25 1.041-.094 1.291-1.125 1.375-2.417.083-1.292.125-8.333.125-8.333l-3.363-.25z\"/></svg>`;\n\nconst SVG_BEEF = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 36 36\"><path fill=\"#BE1931\" d=\"M35.728 10.357c-2.267-5.266-6.9-8.628-12.102-9.472-1.249-.203-7.308-.937-13.081 2.279C5.058 6.641 1.353 11.785.16 20.074c-.591 4.108-.074 7.093 1.539 8.871 2.021 2.229 5.555 2.596 8.306 2.596.976 0 1.87-.052 2.58-.103 2.018-.149 8.741-1.043 14.396-4.636 5.575-3.543 9.989-10.38 8.747-16.445z\"/><path fill=\"#DD2E44\" d=\"M33.728 11.357c-1.983-4.608-6.037-7.549-10.59-8.29-1.093-.178-6.395-.82-11.446 1.994C6.801 7.936 3.558 12.437 2.513 19.69c-.518 3.595-.065 6.207 1.347 7.762 1.769 1.951 4.861 2.272 7.268 2.272.854 0 1.636-.046 2.257-.09 1.766-.131 7.649-.913 12.597-4.057 4.88-3.102 8.742-9.085 7.746-14.22z\"/><path fill=\"#BE1931\" d=\"M23.901 5.398c-1.093-.178-6.395-.82-11.446 1.994-.969.54-1.859 1.157-2.674 1.833 1.019-.397 2.149-.652 3.394-.652 5.237 0 9.891 3.618 10.909 8.707.324 1.62.283 3.219-.056 4.73 3.019-2.727 5.476-6.757 4.62-10.392-1.983-4.608-6.037-7.549-10.59-8.29.614.09 4.219.788 5.843 2.07z\"/><ellipse cx=\"12.814\" cy=\"15.785\" fill=\"#F7DECE\" rx=\"7.021\" ry=\"5.404\"/><ellipse cx=\"12.814\" cy=\"15.785\" fill=\"#BE1931\" rx=\"3.298\" ry=\"2.54\"/></svg>`;\n\nconst SVG_PORK = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 36 36\"><path fill=\"#C1694F\" d=\"M31.29 13.214c-.483-4.839-5.274-8.944-10.761-9.221-5.487-.277-9.12 2.704-10.481 7.571-1.361 4.867.636 11.714 1.959 14.199 1.323 2.485 2.978 4.354 6.27 4.648 3.292.294 6.234-1.102 8.413-3.826 2.179-2.724 5.083-8.532 4.6-13.371z\"/><path fill=\"#E0A577\" d=\"M28.632 13.661c-.386-3.871-4.219-7.155-8.609-7.377-4.39-.222-7.296 2.163-8.385 6.057-1.089 3.894.509 9.371 1.567 11.359 1.058 1.988 2.382 3.483 5.016 3.718 2.634.235 4.987-.882 6.73-3.061 1.744-2.179 4.067-6.825 3.681-10.696z\"/><path fill=\"#FFCC4D\" d=\"M10.733 19.714c-1.128 1.332-4.012 4.523-5.345 5.618-1.333 1.095-3.857 2.857-3.857 4.762s1.524 3.619 3.619 3.619c2.095 0 3.583-1.179 4.917-2.333 1.333-1.155 4.379-4.446 5.065-5.422.686-.976 1.143-2.531.762-3.238-.381-.708-2.115-.746-3.219-.368-1.105.381-1.942-2.638-1.942-2.638z\"/><path fill=\"#FFAC33\" d=\"M5.482 31.003c-.073 0-.146-.022-.209-.067-.156-.111-.193-.328-.082-.484 1.04-1.459 3.113-4.063 3.134-4.09.117-.148.331-.177.483-.063.151.114.182.328.067.48-.021.027-2.089 2.625-3.125 4.078-.069.095-.176.146-.268.146zm1.729.814c-.073 0-.147-.022-.21-.068-.155-.111-.192-.328-.081-.484 1.373-1.928 3.076-4.138 3.093-4.161.115-.151.33-.181.482-.066.152.113.183.328.068.48-.017.023-1.716 2.228-3.084 4.148-.068.098-.175.151-.268.151zm1.787.664c-.073 0-.147-.022-.21-.068-.155-.111-.192-.328-.081-.484 1.398-1.961 2.869-3.931 2.884-3.951.114-.152.33-.184.482-.069.153.113.185.327.071.48-.015.02-1.482 1.984-2.877 3.941-.068.099-.175.151-.269.151z\"/><ellipse cx=\"6.833\" cy=\"32.524\" fill=\"#FFCC4D\" rx=\"2.667\" ry=\"1.143\"/></svg>`;\n\nconst SVG_FISH = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 36 36\"><path fill=\"#55ACEE\" d=\"M27 2s-5.958 3.75-8.031 5.469C14.865 11.057 8.503 18.839 5 23c-1.5 1-2.5 2.25-2.5 3.5 0 2.5 2.603 5.5 4.5 5.5 1.5 0 2.5-1 3.5-2.5 3.5-4.5 10.654-10.588 13.5-13.5C25.806 14.056 31 9 31 9l-4-7z\"/><circle cx=\"9.5\" cy=\"27.5\" r=\"1.5\" fill=\"#292F33\"/><path fill=\"#3B88C3\" d=\"M25 4s-4.958 3.75-7.031 5.469C13.865 13.057 8.503 19.839 5 24c-1.5 1-2.083 2.5-2.083 3.5 0 1.75 1.686 3.5 3.583 3.5 1.5 0 2.5-1 3.5-2.5 3.5-4.5 9.654-9.588 12.5-12.5C24.306 14.056 29 10 29 10l-4-6z\"/><path fill=\"#55ACEE\" d=\"M31 8s3 3.334 3 6c0 2.668-3 6-3 6l-2.667-5.333L31 8z\"/><path fill=\"#3B88C3\" d=\"M29 10s3 2.334 3 5c0 2.668-3 5-3 5l-2-4.5 2-5.5z\"/></svg>`;\n\nconst SVG_SHRIMP = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 36 36\"><path fill=\"#F4900C\" d=\"M26.688 9.812c-.271 2.917-1.167 8.146-4.792 11.771-2.917 2.917-8.771 3.125-12.708 3.125-1.549 0-2.912-.049-3.938-.106-1.958-.107-2.313-.707-2.188-1.914s1.538-.998 3.059-.871c.761.063 1.722.107 2.817.107 3.458 0 8.146-.438 10.146-2.438 2.833-2.833 3.563-6.563 3.813-8.938.188-1.792.854-1.917 1.604-1.646.75.272.395 1.91.187 2.91z\"/><path fill=\"#FFCC4D\" d=\"M10.376 15.098c-2.188.354-3.188.917-3.188 2.417 0 1.125.667 1.792 1.792 1.792 1.75 0 2.104-.771 2.104-1.917s-.708-2.292-.708-2.292z\"/><path fill=\"#F4900C\" d=\"M16.542 10.639c-4.25 0-5.917 2.042-6.875 4.5.084-.001.162-.014.25-.014 2.292 0 2.667 2.417 2.667 3.583 0 1.75-.854 3.167-3.292 3.167-1.708 0-3-1.104-3.145-2.958-.032.035-.065.065-.098.101-1.125 1.25-1.875 3.063-1.875 5.875 0 4.166 3.333 8.229 8.833 8.229s9.667-4.229 9.667-9.646c0-6.625-3.25-12.837-6.132-12.837z\"/><circle cx=\"9.396\" cy=\"27.441\" r=\"1.25\" fill=\"#662113\"/><path fill=\"#FFCC4D\" d=\"M15.5 25c-1.375 0-2.5 1.625-2.5 3.5 0 1.25.375 2.5 1.875 2.5 1.667 0 2.125-1.417 2.125-2.917 0-1.208-.125-3.083-1.5-3.083zm4-1c-1.125 0-2 1.542-2 3.25 0 1.083.333 2.25 1.625 2.25 1.375 0 1.875-1.208 1.875-2.583 0-1.084-.167-2.917-1.5-2.917z\"/><path fill=\"#F4900C\" d=\"M5.813 25.77c-.094-.178-.428-.188-.746-.022-.318.166-.479.452-.385.631l1.334 2.428c.081.155.327.187.599.095-.233-.497-1.026-1.995-.802-3.132z\"/><path fill=\"#FFCC4D\" d=\"M30.599 5.401c-.345.174-.525.513-.431.785.036.104.136.393-.212.938-.49.768-1.679 1.717-4.002 2.882-5.708 2.862-8.62.67-10.33-.776-.615-.52-1.084-1.059-1.462-1.55-.295-.384-.764-.389-1.047-.01-.283.378-.172.919.168 1.27l.022.023c.396.443.925.986 1.622 1.555 1.981 1.616 5.846 4.287 12.511.948 2.549-1.277 3.944-2.394 4.604-3.429.451-.708.554-1.378.343-1.988-.094-.272-.34-.361-.513-.361-.089 0-.175.021-.249.059-.355.179-.549.504-.479.784.054.217-.011.448-.234.668-.356.351-1.085.787-2.186 1.323-3.364 1.637-5.539 1.314-6.753.552-1.028-.646-1.424-1.558-1.425-1.56-.116-.266-.5-.361-.857-.212-.356.149-.54.484-.423.749l.001.002c.02.046.508 1.131 1.778 1.933 1.535.968 4.167 1.378 8.079-.527 1.212-.59 2.036-1.087 2.495-1.54.538-.531.659-1.102.529-1.574-.132-.476-.51-.818-.993-.818-.109 0-.221.019-.334.056z\"/><ellipse cx=\"27.819\" cy=\"2.692\" fill=\"#FFCC4D\" rx=\"2.413\" ry=\"1.025\" transform=\"rotate(-63.435 27.82 2.693)\"/><ellipse cx=\"30.569\" cy=\"4.067\" fill=\"#FFCC4D\" rx=\"2.413\" ry=\"1.025\" transform=\"rotate(-63.435 30.57 4.067)\"/></svg>`;\n\nconst SVG_EGG = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 36 36\"><path fill=\"#E1E8ED\" d=\"M18 35c-7.732 0-14-4.701-14-10.5C4 14.603 11.268 1 18 1s14 13.603 14 23.5c0 5.799-6.268 10.5-14 10.5z\"/><path fill=\"#CCD6DD\" d=\"M18 33c-6.627 0-12-3.873-12-8.5C6 15.603 12.268 3 18 3s12 12.603 12 21.5c0 4.627-5.373 8.5-12 8.5z\"/></svg>`;\n\nconst SVG_BROCCOLI = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 36 36\"><path fill=\"#77B255\" d=\"M22.453 35.564c-.315 0-.636-.08-.934-.251-5.281-3.029-5.792-10.958-5.813-11.294-.042-.679.474-1.263 1.152-1.305.683-.048 1.263.474 1.305 1.152.005.073.456 7.134 4.607 9.515.59.339.795 1.091.456 1.683-.227.396-.642.617-1.069.617-.001-.117-.296-.117-.704-.117z\"/><path fill=\"#5C913B\" d=\"M13.838 35.564c-.315 0-.636-.08-.934-.251-5.281-3.029-5.792-10.958-5.813-11.294-.042-.679.474-1.263 1.152-1.305.683-.048 1.263.474 1.305 1.152.005.073.456 7.134 4.607 9.515.59.339.795 1.091.456 1.683-.227.396-.642.617-1.069.617-.001-.117-.296-.117-.704-.117z\"/><ellipse cx=\"20.285\" cy=\"18.546\" fill=\"#77B255\" rx=\"5.701\" ry=\"5.476\"/><ellipse cx=\"8.073\" cy=\"15.9\" fill=\"#5C913B\" rx=\"5.145\" ry=\"4.943\"/><circle cx=\"23.111\" cy=\"9.561\" r=\"5.588\" fill=\"#77B255\"/><ellipse cx=\"13.838\" cy=\"7.589\" fill=\"#5C913B\" rx=\"4.866\" ry=\"4.674\"/><circle cx=\"17.236\" cy=\"13.369\" r=\"6.145\" fill=\"#3E721D\"/><circle cx=\"10.166\" cy=\"9.561\" r=\"4.588\" fill=\"#77B255\"/><circle cx=\"26.508\" cy=\"14.571\" r=\"4.588\" fill=\"#5C913B\"/><ellipse cx=\"20.285\" cy=\"4.787\" fill=\"#5C913B\" rx=\"4.31\" ry=\"4.141\"/></svg>`;\n\nconst SVG_RICE = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 36 36\"><path fill=\"#CCD6DD\" d=\"M33 22H3c-1.657 0-3 1.343-3 3v6c0 1.657 1.343 3 3 3h30c1.657 0 3-1.343 3-3v-6c0-1.657-1.343-3-3-3z\"/><path fill=\"#E1E8ED\" d=\"M33 20H3c-1.657 0-3 1.343-3 3v6c0 1.657 1.343 3 3 3h30c1.657 0 3-1.343 3-3v-6c0-1.657-1.343-3-3-3z\"/><path fill=\"#F5F8FA\" d=\"M8 18c-.552 0-1-.447-1-1v-4c0-.553.448-1 1-1s1 .447 1 1v4c0 .553-.448 1-1 1zm4 0c-.552 0-1-.447-1-1v-5c0-.553.448-1 1-1s1 .447 1 1v5c0 .553-.448 1-1 1zm4-1c-.552 0-1-.447-1-1v-4c0-.553.448-1 1-1s1 .447 1 1v4c0 .553-.448 1-1 1zm4 0c-.552 0-1-.447-1-1v-5c0-.553.448-1 1-1s1 .447 1 1v5c0 .553-.448 1-1 1zm4 1c-.552 0-1-.447-1-1v-4c0-.553.448-1 1-1s1 .447 1 1v4c0 .553-.448 1-1 1zm4 0c-.552 0-1-.447-1-1v-5c0-.553.448-1 1-1s1 .447 1 1v5c0 .553-.448 1-1 1z\"/></svg>`;\n\nconst SVG_FRIED_EGG = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 36 36\"><path fill=\"#E1E8ED\" d=\"M35 19.5c0 4.142-3.582 7.5-8 7.5-2.348 0-4.471-.939-6-2.452C19.471 26.061 17.348 27 15 27c-4.418 0-8-3.358-8-7.5 0-.646.087-1.271.248-1.865C4.414 17.047 2 14.552 2 11.5 2 8.186 4.833 5.5 8.333 5.5c.357 0 .707.027 1.05.078C10.66 3.398 12.928 2 15.5 2c2.572 0 4.84 1.398 6.117 3.578.343-.051.693-.078 1.05-.078C26.167 5.5 29 8.186 29 11.5c0 .985-.227 1.918-.631 2.757C32.159 14.676 35 16.799 35 19.5z\"/><ellipse cx=\"15\" cy=\"18\" fill=\"#FFCC4D\" rx=\"8\" ry=\"7\"/><ellipse cx=\"15\" cy=\"17\" fill=\"#FFE8B6\" rx=\"4\" ry=\"3.5\"/></svg>`;\n\n// =============================================================================\n// CATEGORY ICONS\n// =============================================================================\n\nexport const CATEGORY_ICONS: Record<string, string> = {\n poultry: toDataUrl(SVG_POULTRY),\n beef: toDataUrl(SVG_BEEF),\n pork: toDataUrl(SVG_PORK),\n seafood_fish: toDataUrl(SVG_FISH),\n seafood_shellfish: toDataUrl(SVG_SHRIMP),\n egg: toDataUrl(SVG_EGG),\n vegetable: toDataUrl(SVG_BROCCOLI),\n grain: toDataUrl(SVG_RICE),\n};\n\n// =============================================================================\n// INGREDIENT ICONS\n// =============================================================================\n\nexport const INGREDIENT_ICONS: Record<string, string> = {\n // Poultry\n chicken_breast: toDataUrl(SVG_POULTRY),\n chicken_breast_boneless: toDataUrl(SVG_POULTRY),\n chicken_thigh_boneless: toDataUrl(SVG_POULTRY),\n chicken_thigh: toDataUrl(SVG_POULTRY),\n chicken_whole: toDataUrl(SVG_POULTRY),\n turkey_breast: toDataUrl(SVG_POULTRY),\n\n // Beef\n beef_steak_ribeye: toDataUrl(SVG_BEEF),\n beef_ground: toDataUrl(SVG_BEEF),\n beef_roast: toDataUrl(SVG_BEEF),\n\n // Pork\n pork_chop: toDataUrl(SVG_PORK),\n pork_tenderloin: toDataUrl(SVG_PORK),\n pork_ribs: toDataUrl(SVG_PORK),\n\n // Seafood\n salmon_fillet: toDataUrl(SVG_FISH),\n tuna_steak: toDataUrl(SVG_FISH),\n cod_fillet: toDataUrl(SVG_FISH),\n shrimp: toDataUrl(SVG_SHRIMP),\n\n // Eggs\n egg_fried: toDataUrl(SVG_FRIED_EGG),\n egg_boiled: toDataUrl(SVG_EGG),\n egg_scrambled: toDataUrl(SVG_FRIED_EGG),\n egg_poached: toDataUrl(SVG_FRIED_EGG),\n\n // Vegetables\n broccoli: toDataUrl(SVG_BROCCOLI),\n asparagus: toDataUrl(SVG_BROCCOLI),\n potato: toDataUrl(SVG_BROCCOLI),\n carrot: toDataUrl(SVG_BROCCOLI),\n\n // Grains\n rice_white: toDataUrl(SVG_RICE),\n pasta: toDataUrl(SVG_RICE),\n quinoa: toDataUrl(SVG_RICE),\n};\n\n// =============================================================================\n// HELPER\n// =============================================================================\n\nexport const getIcon = (id: string, category?: string): string | undefined => {\n if (INGREDIENT_ICONS[id]) {\n return INGREDIENT_ICONS[id];\n }\n if (category && CATEGORY_ICONS[category]) {\n return CATEGORY_ICONS[category];\n }\n return undefined;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,IAAM,YAAY,CAAC,QAAwB;AACzC,QAAM,UAAU,mBAAmB,GAAG,EACnC,QAAQ,MAAM,KAAK,EACnB,QAAQ,MAAM,KAAK;AACtB,SAAO,sBAAsB,OAAO;AACtC;AAMA,IAAM,cAAc;AAEpB,IAAM,WAAW;AAEjB,IAAM,WAAW;AAEjB,IAAM,WAAW;AAEjB,IAAM,aAAa;AAEnB,IAAM,UAAU;AAEhB,IAAM,eAAe;AAErB,IAAM,WAAW;AAEjB,IAAM,gBAAgB;AAMf,IAAM,iBAAyC;AAAA,EACpD,SAAS,UAAU,WAAW;AAAA,EAC9B,MAAM,UAAU,QAAQ;AAAA,EACxB,MAAM,UAAU,QAAQ;AAAA,EACxB,cAAc,UAAU,QAAQ;AAAA,EAChC,mBAAmB,UAAU,UAAU;AAAA,EACvC,KAAK,UAAU,OAAO;AAAA,EACtB,WAAW,UAAU,YAAY;AAAA,EACjC,OAAO,UAAU,QAAQ;AAC3B;AAMO,IAAM,mBAA2C;AAAA;AAAA,EAEtD,gBAAgB,UAAU,WAAW;AAAA,EACrC,yBAAyB,UAAU,WAAW;AAAA,EAC9C,wBAAwB,UAAU,WAAW;AAAA,EAC7C,eAAe,UAAU,WAAW;AAAA,EACpC,eAAe,UAAU,WAAW;AAAA,EACpC,eAAe,UAAU,WAAW;AAAA;AAAA,EAGpC,mBAAmB,UAAU,QAAQ;AAAA,EACrC,aAAa,UAAU,QAAQ;AAAA,EAC/B,YAAY,UAAU,QAAQ;AAAA;AAAA,EAG9B,WAAW,UAAU,QAAQ;AAAA,EAC7B,iBAAiB,UAAU,QAAQ;AAAA,EACnC,WAAW,UAAU,QAAQ;AAAA;AAAA,EAG7B,eAAe,UAAU,QAAQ;AAAA,EACjC,YAAY,UAAU,QAAQ;AAAA,EAC9B,YAAY,UAAU,QAAQ;AAAA,EAC9B,QAAQ,UAAU,UAAU;AAAA;AAAA,EAG5B,WAAW,UAAU,aAAa;AAAA,EAClC,YAAY,UAAU,OAAO;AAAA,EAC7B,eAAe,UAAU,aAAa;AAAA,EACtC,aAAa,UAAU,aAAa;AAAA;AAAA,EAGpC,UAAU,UAAU,YAAY;AAAA,EAChC,WAAW,UAAU,YAAY;AAAA,EACjC,QAAQ,UAAU,YAAY;AAAA,EAC9B,QAAQ,UAAU,YAAY;AAAA;AAAA,EAG9B,YAAY,UAAU,QAAQ;AAAA,EAC9B,OAAO,UAAU,QAAQ;AAAA,EACzB,QAAQ,UAAU,QAAQ;AAC5B;AAMO,IAAM,UAAU,CAAC,IAAY,aAA0C;AAC5E,MAAI,iBAAiB,EAAE,GAAG;AACxB,WAAO,iBAAiB,EAAE;AAAA,EAC5B;AACA,MAAI,YAAY,eAAe,QAAQ,GAAG;AACxC,WAAO,eAAe,QAAQ;AAAA,EAChC;AACA,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,62 +1,136 @@
|
|
|
1
1
|
// icons.ts
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
return `data:image/svg+xml,${encoded}`;
|
|
5
|
-
};
|
|
6
|
-
var SVG_POULTRY = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#C1694F" d="M30.326 14.24c-.279-4.063-4.016-7.592-8.396-7.931-4.38-.339-7.294 1.908-8.406 5.865-1.113 3.958 1.006 9.672 1.006 9.672l1.781 2.281 3.594 5.719 3 .281 2.219-1.562 3.344-4.281 1.5-1.75.358-8.294z"/><path fill="#E0A577" d="M26.639 12.178c-.224-3.25-3.213-6.074-6.717-6.345-3.504-.271-5.836 1.526-6.725 4.692-.889 3.166.805 7.738.805 7.738l1.425 1.825 2.875 4.575 2.4.225 1.775-1.25 2.675-3.425 1.2-1.4.287-6.635z"/><path fill="#C1694F" d="M11.069 18.063c-2.5-1.688-3.02-4.602-3.02-4.602s-.937-6.219-.479-8.732c.458-2.513 2.769-3.27 4.436-2.498 1.667.771 1.428 1.705 2.016 3.575.588 1.87.336 3.803 1.078 5.614.741 1.811 1.913 2.933 2.26 4.618.346 1.685-.33 3.327-2.372 3.806-2.041.478-3.919-1.781-3.919-1.781z"/><path fill="#E0A577" d="M12.298 16.537c-2-1.35-2.416-3.682-2.416-3.682s-.75-4.975-.383-6.986c.367-2.01 2.215-2.616 3.549-1.998 1.333.617 1.142 1.364 1.613 2.86.47 1.496.269 3.042.862 4.491.593 1.449 1.531 2.347 1.808 3.694.277 1.348-.264 2.662-1.898 3.045-1.633.383-3.135-1.424-3.135-1.424z"/><ellipse cx="17.952" cy="32.656" fill="#C1694F" rx="4.218" ry="1.594"/><path fill="#E0A577" d="M16.858 21.858s-.546 6.792-.179 8.75c.367 1.958 1 2.344 2.042 2.25 1.041-.094 1.291-1.125 1.375-2.417.083-1.292.125-8.333.125-8.333l-3.363-.25z"/></svg>`;
|
|
7
|
-
var SVG_BEEF = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#BE1931" d="M35.728 10.357c-2.267-5.266-6.9-8.628-12.102-9.472-1.249-.203-7.308-.937-13.081 2.279C5.058 6.641 1.353 11.785.16 20.074c-.591 4.108-.074 7.093 1.539 8.871 2.021 2.229 5.555 2.596 8.306 2.596.976 0 1.87-.052 2.58-.103 2.018-.149 8.741-1.043 14.396-4.636 5.575-3.543 9.989-10.38 8.747-16.445z"/><path fill="#DD2E44" d="M33.728 11.357c-1.983-4.608-6.037-7.549-10.59-8.29-1.093-.178-6.395-.82-11.446 1.994C6.801 7.936 3.558 12.437 2.513 19.69c-.518 3.595-.065 6.207 1.347 7.762 1.769 1.951 4.861 2.272 7.268 2.272.854 0 1.636-.046 2.257-.09 1.766-.131 7.649-.913 12.597-4.057 4.88-3.102 8.742-9.085 7.746-14.22z"/><path fill="#BE1931" d="M23.901 5.398c-1.093-.178-6.395-.82-11.446 1.994-.969.54-1.859 1.157-2.674 1.833 1.019-.397 2.149-.652 3.394-.652 5.237 0 9.891 3.618 10.909 8.707.324 1.62.283 3.219-.056 4.73 3.019-2.727 5.476-6.757 4.62-10.392-1.983-4.608-6.037-7.549-10.59-8.29.614.09 4.219.788 5.843 2.07z"/><ellipse cx="12.814" cy="15.785" fill="#F7DECE" rx="7.021" ry="5.404"/><ellipse cx="12.814" cy="15.785" fill="#BE1931" rx="3.298" ry="2.54"/></svg>`;
|
|
8
|
-
var SVG_PORK = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#C1694F" d="M31.29 13.214c-.483-4.839-5.274-8.944-10.761-9.221-5.487-.277-9.12 2.704-10.481 7.571-1.361 4.867.636 11.714 1.959 14.199 1.323 2.485 2.978 4.354 6.27 4.648 3.292.294 6.234-1.102 8.413-3.826 2.179-2.724 5.083-8.532 4.6-13.371z"/><path fill="#E0A577" d="M28.632 13.661c-.386-3.871-4.219-7.155-8.609-7.377-4.39-.222-7.296 2.163-8.385 6.057-1.089 3.894.509 9.371 1.567 11.359 1.058 1.988 2.382 3.483 5.016 3.718 2.634.235 4.987-.882 6.73-3.061 1.744-2.179 4.067-6.825 3.681-10.696z"/><path fill="#FFCC4D" d="M10.733 19.714c-1.128 1.332-4.012 4.523-5.345 5.618-1.333 1.095-3.857 2.857-3.857 4.762s1.524 3.619 3.619 3.619c2.095 0 3.583-1.179 4.917-2.333 1.333-1.155 4.379-4.446 5.065-5.422.686-.976 1.143-2.531.762-3.238-.381-.708-2.115-.746-3.219-.368-1.105.381-1.942-2.638-1.942-2.638z"/><path fill="#FFAC33" d="M5.482 31.003c-.073 0-.146-.022-.209-.067-.156-.111-.193-.328-.082-.484 1.04-1.459 3.113-4.063 3.134-4.09.117-.148.331-.177.483-.063.151.114.182.328.067.48-.021.027-2.089 2.625-3.125 4.078-.069.095-.176.146-.268.146zm1.729.814c-.073 0-.147-.022-.21-.068-.155-.111-.192-.328-.081-.484 1.373-1.928 3.076-4.138 3.093-4.161.115-.151.33-.181.482-.066.152.113.183.328.068.48-.017.023-1.716 2.228-3.084 4.148-.068.098-.175.151-.268.151zm1.787.664c-.073 0-.147-.022-.21-.068-.155-.111-.192-.328-.081-.484 1.398-1.961 2.869-3.931 2.884-3.951.114-.152.33-.184.482-.069.153.113.185.327.071.48-.015.02-1.482 1.984-2.877 3.941-.068.099-.175.151-.269.151z"/><ellipse cx="6.833" cy="32.524" fill="#FFCC4D" rx="2.667" ry="1.143"/></svg>`;
|
|
9
|
-
var SVG_FISH = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#55ACEE" d="M27 2s-5.958 3.75-8.031 5.469C14.865 11.057 8.503 18.839 5 23c-1.5 1-2.5 2.25-2.5 3.5 0 2.5 2.603 5.5 4.5 5.5 1.5 0 2.5-1 3.5-2.5 3.5-4.5 10.654-10.588 13.5-13.5C25.806 14.056 31 9 31 9l-4-7z"/><circle cx="9.5" cy="27.5" r="1.5" fill="#292F33"/><path fill="#3B88C3" d="M25 4s-4.958 3.75-7.031 5.469C13.865 13.057 8.503 19.839 5 24c-1.5 1-2.083 2.5-2.083 3.5 0 1.75 1.686 3.5 3.583 3.5 1.5 0 2.5-1 3.5-2.5 3.5-4.5 9.654-9.588 12.5-12.5C24.306 14.056 29 10 29 10l-4-6z"/><path fill="#55ACEE" d="M31 8s3 3.334 3 6c0 2.668-3 6-3 6l-2.667-5.333L31 8z"/><path fill="#3B88C3" d="M29 10s3 2.334 3 5c0 2.668-3 5-3 5l-2-4.5 2-5.5z"/></svg>`;
|
|
10
|
-
var SVG_SHRIMP = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F4900C" d="M26.688 9.812c-.271 2.917-1.167 8.146-4.792 11.771-2.917 2.917-8.771 3.125-12.708 3.125-1.549 0-2.912-.049-3.938-.106-1.958-.107-2.313-.707-2.188-1.914s1.538-.998 3.059-.871c.761.063 1.722.107 2.817.107 3.458 0 8.146-.438 10.146-2.438 2.833-2.833 3.563-6.563 3.813-8.938.188-1.792.854-1.917 1.604-1.646.75.272.395 1.91.187 2.91z"/><path fill="#FFCC4D" d="M10.376 15.098c-2.188.354-3.188.917-3.188 2.417 0 1.125.667 1.792 1.792 1.792 1.75 0 2.104-.771 2.104-1.917s-.708-2.292-.708-2.292z"/><path fill="#F4900C" d="M16.542 10.639c-4.25 0-5.917 2.042-6.875 4.5.084-.001.162-.014.25-.014 2.292 0 2.667 2.417 2.667 3.583 0 1.75-.854 3.167-3.292 3.167-1.708 0-3-1.104-3.145-2.958-.032.035-.065.065-.098.101-1.125 1.25-1.875 3.063-1.875 5.875 0 4.166 3.333 8.229 8.833 8.229s9.667-4.229 9.667-9.646c0-6.625-3.25-12.837-6.132-12.837z"/><circle cx="9.396" cy="27.441" r="1.25" fill="#662113"/><path fill="#FFCC4D" d="M15.5 25c-1.375 0-2.5 1.625-2.5 3.5 0 1.25.375 2.5 1.875 2.5 1.667 0 2.125-1.417 2.125-2.917 0-1.208-.125-3.083-1.5-3.083zm4-1c-1.125 0-2 1.542-2 3.25 0 1.083.333 2.25 1.625 2.25 1.375 0 1.875-1.208 1.875-2.583 0-1.084-.167-2.917-1.5-2.917z"/><path fill="#F4900C" d="M5.813 25.77c-.094-.178-.428-.188-.746-.022-.318.166-.479.452-.385.631l1.334 2.428c.081.155.327.187.599.095-.233-.497-1.026-1.995-.802-3.132z"/><path fill="#FFCC4D" d="M30.599 5.401c-.345.174-.525.513-.431.785.036.104.136.393-.212.938-.49.768-1.679 1.717-4.002 2.882-5.708 2.862-8.62.67-10.33-.776-.615-.52-1.084-1.059-1.462-1.55-.295-.384-.764-.389-1.047-.01-.283.378-.172.919.168 1.27l.022.023c.396.443.925.986 1.622 1.555 1.981 1.616 5.846 4.287 12.511.948 2.549-1.277 3.944-2.394 4.604-3.429.451-.708.554-1.378.343-1.988-.094-.272-.34-.361-.513-.361-.089 0-.175.021-.249.059-.355.179-.549.504-.479.784.054.217-.011.448-.234.668-.356.351-1.085.787-2.186 1.323-3.364 1.637-5.539 1.314-6.753.552-1.028-.646-1.424-1.558-1.425-1.56-.116-.266-.5-.361-.857-.212-.356.149-.54.484-.423.749l.001.002c.02.046.508 1.131 1.778 1.933 1.535.968 4.167 1.378 8.079-.527 1.212-.59 2.036-1.087 2.495-1.54.538-.531.659-1.102.529-1.574-.132-.476-.51-.818-.993-.818-.109 0-.221.019-.334.056z"/><ellipse cx="27.819" cy="2.692" fill="#FFCC4D" rx="2.413" ry="1.025" transform="rotate(-63.435 27.82 2.693)"/><ellipse cx="30.569" cy="4.067" fill="#FFCC4D" rx="2.413" ry="1.025" transform="rotate(-63.435 30.57 4.067)"/></svg>`;
|
|
11
|
-
var SVG_EGG = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#E1E8ED" d="M18 35c-7.732 0-14-4.701-14-10.5C4 14.603 11.268 1 18 1s14 13.603 14 23.5c0 5.799-6.268 10.5-14 10.5z"/><path fill="#CCD6DD" d="M18 33c-6.627 0-12-3.873-12-8.5C6 15.603 12.268 3 18 3s12 12.603 12 21.5c0 4.627-5.373 8.5-12 8.5z"/></svg>`;
|
|
12
|
-
var SVG_BROCCOLI = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#77B255" d="M22.453 35.564c-.315 0-.636-.08-.934-.251-5.281-3.029-5.792-10.958-5.813-11.294-.042-.679.474-1.263 1.152-1.305.683-.048 1.263.474 1.305 1.152.005.073.456 7.134 4.607 9.515.59.339.795 1.091.456 1.683-.227.396-.642.617-1.069.617-.001-.117-.296-.117-.704-.117z"/><path fill="#5C913B" d="M13.838 35.564c-.315 0-.636-.08-.934-.251-5.281-3.029-5.792-10.958-5.813-11.294-.042-.679.474-1.263 1.152-1.305.683-.048 1.263.474 1.305 1.152.005.073.456 7.134 4.607 9.515.59.339.795 1.091.456 1.683-.227.396-.642.617-1.069.617-.001-.117-.296-.117-.704-.117z"/><ellipse cx="20.285" cy="18.546" fill="#77B255" rx="5.701" ry="5.476"/><ellipse cx="8.073" cy="15.9" fill="#5C913B" rx="5.145" ry="4.943"/><circle cx="23.111" cy="9.561" r="5.588" fill="#77B255"/><ellipse cx="13.838" cy="7.589" fill="#5C913B" rx="4.866" ry="4.674"/><circle cx="17.236" cy="13.369" r="6.145" fill="#3E721D"/><circle cx="10.166" cy="9.561" r="4.588" fill="#77B255"/><circle cx="26.508" cy="14.571" r="4.588" fill="#5C913B"/><ellipse cx="20.285" cy="4.787" fill="#5C913B" rx="4.31" ry="4.141"/></svg>`;
|
|
13
|
-
var SVG_RICE = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#CCD6DD" d="M33 22H3c-1.657 0-3 1.343-3 3v6c0 1.657 1.343 3 3 3h30c1.657 0 3-1.343 3-3v-6c0-1.657-1.343-3-3-3z"/><path fill="#E1E8ED" d="M33 20H3c-1.657 0-3 1.343-3 3v6c0 1.657 1.343 3 3 3h30c1.657 0 3-1.343 3-3v-6c0-1.657-1.343-3-3-3z"/><path fill="#F5F8FA" d="M8 18c-.552 0-1-.447-1-1v-4c0-.553.448-1 1-1s1 .447 1 1v4c0 .553-.448 1-1 1zm4 0c-.552 0-1-.447-1-1v-5c0-.553.448-1 1-1s1 .447 1 1v5c0 .553-.448 1-1 1zm4-1c-.552 0-1-.447-1-1v-4c0-.553.448-1 1-1s1 .447 1 1v4c0 .553-.448 1-1 1zm4 0c-.552 0-1-.447-1-1v-5c0-.553.448-1 1-1s1 .447 1 1v5c0 .553-.448 1-1 1zm4 1c-.552 0-1-.447-1-1v-4c0-.553.448-1 1-1s1 .447 1 1v4c0 .553-.448 1-1 1zm4 0c-.552 0-1-.447-1-1v-5c0-.553.448-1 1-1s1 .447 1 1v5c0 .553-.448 1-1 1z"/></svg>`;
|
|
14
|
-
var SVG_FRIED_EGG = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#E1E8ED" d="M35 19.5c0 4.142-3.582 7.5-8 7.5-2.348 0-4.471-.939-6-2.452C19.471 26.061 17.348 27 15 27c-4.418 0-8-3.358-8-7.5 0-.646.087-1.271.248-1.865C4.414 17.047 2 14.552 2 11.5 2 8.186 4.833 5.5 8.333 5.5c.357 0 .707.027 1.05.078C10.66 3.398 12.928 2 15.5 2c2.572 0 4.84 1.398 6.117 3.578.343-.051.693-.078 1.05-.078C26.167 5.5 29 8.186 29 11.5c0 .985-.227 1.918-.631 2.757C32.159 14.676 35 16.799 35 19.5z"/><ellipse cx="15" cy="18" fill="#FFCC4D" rx="8" ry="7"/><ellipse cx="15" cy="17" fill="#FFE8B6" rx="4" ry="3.5"/></svg>`;
|
|
2
|
+
var FLUENT_BASE = "https://registry.npmmirror.com/@lobehub/fluent-emoji-3d/latest/files/assets";
|
|
3
|
+
var fluent = (codepoint) => `${FLUENT_BASE}/${codepoint}.webp`;
|
|
15
4
|
var CATEGORY_ICONS = {
|
|
16
|
-
poultry:
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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
|
|
21
|
+
};
|
|
22
|
+
var POULTRY_ICONS = {
|
|
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
|
+
// 🦆
|
|
37
|
+
};
|
|
38
|
+
var BEEF_ICONS = {
|
|
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
|
+
// 🥓
|
|
55
|
+
};
|
|
56
|
+
var SEAFOOD_ICONS = {
|
|
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
|
+
// 🦀
|
|
71
|
+
};
|
|
72
|
+
var EGG_ICONS = {
|
|
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
|
+
// 🍳
|
|
83
|
+
};
|
|
84
|
+
var VEGETABLE_ICONS = {
|
|
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
|
+
// 🥑
|
|
113
|
+
};
|
|
114
|
+
var GRAIN_ICONS = {
|
|
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
|
+
// 🍚
|
|
24
125
|
};
|
|
25
126
|
var INGREDIENT_ICONS = {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
// Beef
|
|
34
|
-
beef_steak_ribeye: toDataUrl(SVG_BEEF),
|
|
35
|
-
beef_ground: toDataUrl(SVG_BEEF),
|
|
36
|
-
beef_roast: toDataUrl(SVG_BEEF),
|
|
37
|
-
// Pork
|
|
38
|
-
pork_chop: toDataUrl(SVG_PORK),
|
|
39
|
-
pork_tenderloin: toDataUrl(SVG_PORK),
|
|
40
|
-
pork_ribs: toDataUrl(SVG_PORK),
|
|
41
|
-
// Seafood
|
|
42
|
-
salmon_fillet: toDataUrl(SVG_FISH),
|
|
43
|
-
tuna_steak: toDataUrl(SVG_FISH),
|
|
44
|
-
cod_fillet: toDataUrl(SVG_FISH),
|
|
45
|
-
shrimp: toDataUrl(SVG_SHRIMP),
|
|
46
|
-
// Eggs
|
|
47
|
-
egg_fried: toDataUrl(SVG_FRIED_EGG),
|
|
48
|
-
egg_boiled: toDataUrl(SVG_EGG),
|
|
49
|
-
egg_scrambled: toDataUrl(SVG_FRIED_EGG),
|
|
50
|
-
egg_poached: toDataUrl(SVG_FRIED_EGG),
|
|
51
|
-
// Vegetables
|
|
52
|
-
broccoli: toDataUrl(SVG_BROCCOLI),
|
|
53
|
-
asparagus: toDataUrl(SVG_BROCCOLI),
|
|
54
|
-
potato: toDataUrl(SVG_BROCCOLI),
|
|
55
|
-
carrot: toDataUrl(SVG_BROCCOLI),
|
|
56
|
-
// Grains
|
|
57
|
-
rice_white: toDataUrl(SVG_RICE),
|
|
58
|
-
pasta: toDataUrl(SVG_RICE),
|
|
59
|
-
quinoa: toDataUrl(SVG_RICE)
|
|
127
|
+
...POULTRY_ICONS,
|
|
128
|
+
...BEEF_ICONS,
|
|
129
|
+
...PORK_ICONS,
|
|
130
|
+
...SEAFOOD_ICONS,
|
|
131
|
+
...EGG_ICONS,
|
|
132
|
+
...VEGETABLE_ICONS,
|
|
133
|
+
...GRAIN_ICONS
|
|
60
134
|
};
|
|
61
135
|
var getIcon = (id, category) => {
|
|
62
136
|
if (INGREDIENT_ICONS[id]) {
|
|
@@ -68,8 +142,15 @@ var getIcon = (id, category) => {
|
|
|
68
142
|
return void 0;
|
|
69
143
|
};
|
|
70
144
|
export {
|
|
145
|
+
BEEF_ICONS,
|
|
71
146
|
CATEGORY_ICONS,
|
|
147
|
+
EGG_ICONS,
|
|
148
|
+
GRAIN_ICONS,
|
|
72
149
|
INGREDIENT_ICONS,
|
|
150
|
+
PORK_ICONS,
|
|
151
|
+
POULTRY_ICONS,
|
|
152
|
+
SEAFOOD_ICONS,
|
|
153
|
+
VEGETABLE_ICONS,
|
|
73
154
|
getIcon
|
|
74
155
|
};
|
|
75
156
|
//# sourceMappingURL=icons.mjs.map
|
package/dist/icons.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../icons.ts"],"sourcesContent":["// High-quality flat-style food icons as data URLs\n// Consistent style, no external dependencies\n\n// Helper to encode SVG as data URL\nconst toDataUrl = (svg: string): string => {\n const encoded = encodeURIComponent(svg)\n .replace(/'/g, '%27')\n .replace(/\"/g, '%22');\n return `data:image/svg+xml,${encoded}`;\n};\n\n// =============================================================================\n// SVG DEFINITIONS\n// =============================================================================\n\nconst SVG_POULTRY = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 36 36\"><path fill=\"#C1694F\" d=\"M30.326 14.24c-.279-4.063-4.016-7.592-8.396-7.931-4.38-.339-7.294 1.908-8.406 5.865-1.113 3.958 1.006 9.672 1.006 9.672l1.781 2.281 3.594 5.719 3 .281 2.219-1.562 3.344-4.281 1.5-1.75.358-8.294z\"/><path fill=\"#E0A577\" d=\"M26.639 12.178c-.224-3.25-3.213-6.074-6.717-6.345-3.504-.271-5.836 1.526-6.725 4.692-.889 3.166.805 7.738.805 7.738l1.425 1.825 2.875 4.575 2.4.225 1.775-1.25 2.675-3.425 1.2-1.4.287-6.635z\"/><path fill=\"#C1694F\" d=\"M11.069 18.063c-2.5-1.688-3.02-4.602-3.02-4.602s-.937-6.219-.479-8.732c.458-2.513 2.769-3.27 4.436-2.498 1.667.771 1.428 1.705 2.016 3.575.588 1.87.336 3.803 1.078 5.614.741 1.811 1.913 2.933 2.26 4.618.346 1.685-.33 3.327-2.372 3.806-2.041.478-3.919-1.781-3.919-1.781z\"/><path fill=\"#E0A577\" d=\"M12.298 16.537c-2-1.35-2.416-3.682-2.416-3.682s-.75-4.975-.383-6.986c.367-2.01 2.215-2.616 3.549-1.998 1.333.617 1.142 1.364 1.613 2.86.47 1.496.269 3.042.862 4.491.593 1.449 1.531 2.347 1.808 3.694.277 1.348-.264 2.662-1.898 3.045-1.633.383-3.135-1.424-3.135-1.424z\"/><ellipse cx=\"17.952\" cy=\"32.656\" fill=\"#C1694F\" rx=\"4.218\" ry=\"1.594\"/><path fill=\"#E0A577\" d=\"M16.858 21.858s-.546 6.792-.179 8.75c.367 1.958 1 2.344 2.042 2.25 1.041-.094 1.291-1.125 1.375-2.417.083-1.292.125-8.333.125-8.333l-3.363-.25z\"/></svg>`;\n\nconst SVG_BEEF = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 36 36\"><path fill=\"#BE1931\" d=\"M35.728 10.357c-2.267-5.266-6.9-8.628-12.102-9.472-1.249-.203-7.308-.937-13.081 2.279C5.058 6.641 1.353 11.785.16 20.074c-.591 4.108-.074 7.093 1.539 8.871 2.021 2.229 5.555 2.596 8.306 2.596.976 0 1.87-.052 2.58-.103 2.018-.149 8.741-1.043 14.396-4.636 5.575-3.543 9.989-10.38 8.747-16.445z\"/><path fill=\"#DD2E44\" d=\"M33.728 11.357c-1.983-4.608-6.037-7.549-10.59-8.29-1.093-.178-6.395-.82-11.446 1.994C6.801 7.936 3.558 12.437 2.513 19.69c-.518 3.595-.065 6.207 1.347 7.762 1.769 1.951 4.861 2.272 7.268 2.272.854 0 1.636-.046 2.257-.09 1.766-.131 7.649-.913 12.597-4.057 4.88-3.102 8.742-9.085 7.746-14.22z\"/><path fill=\"#BE1931\" d=\"M23.901 5.398c-1.093-.178-6.395-.82-11.446 1.994-.969.54-1.859 1.157-2.674 1.833 1.019-.397 2.149-.652 3.394-.652 5.237 0 9.891 3.618 10.909 8.707.324 1.62.283 3.219-.056 4.73 3.019-2.727 5.476-6.757 4.62-10.392-1.983-4.608-6.037-7.549-10.59-8.29.614.09 4.219.788 5.843 2.07z\"/><ellipse cx=\"12.814\" cy=\"15.785\" fill=\"#F7DECE\" rx=\"7.021\" ry=\"5.404\"/><ellipse cx=\"12.814\" cy=\"15.785\" fill=\"#BE1931\" rx=\"3.298\" ry=\"2.54\"/></svg>`;\n\nconst SVG_PORK = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 36 36\"><path fill=\"#C1694F\" d=\"M31.29 13.214c-.483-4.839-5.274-8.944-10.761-9.221-5.487-.277-9.12 2.704-10.481 7.571-1.361 4.867.636 11.714 1.959 14.199 1.323 2.485 2.978 4.354 6.27 4.648 3.292.294 6.234-1.102 8.413-3.826 2.179-2.724 5.083-8.532 4.6-13.371z\"/><path fill=\"#E0A577\" d=\"M28.632 13.661c-.386-3.871-4.219-7.155-8.609-7.377-4.39-.222-7.296 2.163-8.385 6.057-1.089 3.894.509 9.371 1.567 11.359 1.058 1.988 2.382 3.483 5.016 3.718 2.634.235 4.987-.882 6.73-3.061 1.744-2.179 4.067-6.825 3.681-10.696z\"/><path fill=\"#FFCC4D\" d=\"M10.733 19.714c-1.128 1.332-4.012 4.523-5.345 5.618-1.333 1.095-3.857 2.857-3.857 4.762s1.524 3.619 3.619 3.619c2.095 0 3.583-1.179 4.917-2.333 1.333-1.155 4.379-4.446 5.065-5.422.686-.976 1.143-2.531.762-3.238-.381-.708-2.115-.746-3.219-.368-1.105.381-1.942-2.638-1.942-2.638z\"/><path fill=\"#FFAC33\" d=\"M5.482 31.003c-.073 0-.146-.022-.209-.067-.156-.111-.193-.328-.082-.484 1.04-1.459 3.113-4.063 3.134-4.09.117-.148.331-.177.483-.063.151.114.182.328.067.48-.021.027-2.089 2.625-3.125 4.078-.069.095-.176.146-.268.146zm1.729.814c-.073 0-.147-.022-.21-.068-.155-.111-.192-.328-.081-.484 1.373-1.928 3.076-4.138 3.093-4.161.115-.151.33-.181.482-.066.152.113.183.328.068.48-.017.023-1.716 2.228-3.084 4.148-.068.098-.175.151-.268.151zm1.787.664c-.073 0-.147-.022-.21-.068-.155-.111-.192-.328-.081-.484 1.398-1.961 2.869-3.931 2.884-3.951.114-.152.33-.184.482-.069.153.113.185.327.071.48-.015.02-1.482 1.984-2.877 3.941-.068.099-.175.151-.269.151z\"/><ellipse cx=\"6.833\" cy=\"32.524\" fill=\"#FFCC4D\" rx=\"2.667\" ry=\"1.143\"/></svg>`;\n\nconst SVG_FISH = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 36 36\"><path fill=\"#55ACEE\" d=\"M27 2s-5.958 3.75-8.031 5.469C14.865 11.057 8.503 18.839 5 23c-1.5 1-2.5 2.25-2.5 3.5 0 2.5 2.603 5.5 4.5 5.5 1.5 0 2.5-1 3.5-2.5 3.5-4.5 10.654-10.588 13.5-13.5C25.806 14.056 31 9 31 9l-4-7z\"/><circle cx=\"9.5\" cy=\"27.5\" r=\"1.5\" fill=\"#292F33\"/><path fill=\"#3B88C3\" d=\"M25 4s-4.958 3.75-7.031 5.469C13.865 13.057 8.503 19.839 5 24c-1.5 1-2.083 2.5-2.083 3.5 0 1.75 1.686 3.5 3.583 3.5 1.5 0 2.5-1 3.5-2.5 3.5-4.5 9.654-9.588 12.5-12.5C24.306 14.056 29 10 29 10l-4-6z\"/><path fill=\"#55ACEE\" d=\"M31 8s3 3.334 3 6c0 2.668-3 6-3 6l-2.667-5.333L31 8z\"/><path fill=\"#3B88C3\" d=\"M29 10s3 2.334 3 5c0 2.668-3 5-3 5l-2-4.5 2-5.5z\"/></svg>`;\n\nconst SVG_SHRIMP = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 36 36\"><path fill=\"#F4900C\" d=\"M26.688 9.812c-.271 2.917-1.167 8.146-4.792 11.771-2.917 2.917-8.771 3.125-12.708 3.125-1.549 0-2.912-.049-3.938-.106-1.958-.107-2.313-.707-2.188-1.914s1.538-.998 3.059-.871c.761.063 1.722.107 2.817.107 3.458 0 8.146-.438 10.146-2.438 2.833-2.833 3.563-6.563 3.813-8.938.188-1.792.854-1.917 1.604-1.646.75.272.395 1.91.187 2.91z\"/><path fill=\"#FFCC4D\" d=\"M10.376 15.098c-2.188.354-3.188.917-3.188 2.417 0 1.125.667 1.792 1.792 1.792 1.75 0 2.104-.771 2.104-1.917s-.708-2.292-.708-2.292z\"/><path fill=\"#F4900C\" d=\"M16.542 10.639c-4.25 0-5.917 2.042-6.875 4.5.084-.001.162-.014.25-.014 2.292 0 2.667 2.417 2.667 3.583 0 1.75-.854 3.167-3.292 3.167-1.708 0-3-1.104-3.145-2.958-.032.035-.065.065-.098.101-1.125 1.25-1.875 3.063-1.875 5.875 0 4.166 3.333 8.229 8.833 8.229s9.667-4.229 9.667-9.646c0-6.625-3.25-12.837-6.132-12.837z\"/><circle cx=\"9.396\" cy=\"27.441\" r=\"1.25\" fill=\"#662113\"/><path fill=\"#FFCC4D\" d=\"M15.5 25c-1.375 0-2.5 1.625-2.5 3.5 0 1.25.375 2.5 1.875 2.5 1.667 0 2.125-1.417 2.125-2.917 0-1.208-.125-3.083-1.5-3.083zm4-1c-1.125 0-2 1.542-2 3.25 0 1.083.333 2.25 1.625 2.25 1.375 0 1.875-1.208 1.875-2.583 0-1.084-.167-2.917-1.5-2.917z\"/><path fill=\"#F4900C\" d=\"M5.813 25.77c-.094-.178-.428-.188-.746-.022-.318.166-.479.452-.385.631l1.334 2.428c.081.155.327.187.599.095-.233-.497-1.026-1.995-.802-3.132z\"/><path fill=\"#FFCC4D\" d=\"M30.599 5.401c-.345.174-.525.513-.431.785.036.104.136.393-.212.938-.49.768-1.679 1.717-4.002 2.882-5.708 2.862-8.62.67-10.33-.776-.615-.52-1.084-1.059-1.462-1.55-.295-.384-.764-.389-1.047-.01-.283.378-.172.919.168 1.27l.022.023c.396.443.925.986 1.622 1.555 1.981 1.616 5.846 4.287 12.511.948 2.549-1.277 3.944-2.394 4.604-3.429.451-.708.554-1.378.343-1.988-.094-.272-.34-.361-.513-.361-.089 0-.175.021-.249.059-.355.179-.549.504-.479.784.054.217-.011.448-.234.668-.356.351-1.085.787-2.186 1.323-3.364 1.637-5.539 1.314-6.753.552-1.028-.646-1.424-1.558-1.425-1.56-.116-.266-.5-.361-.857-.212-.356.149-.54.484-.423.749l.001.002c.02.046.508 1.131 1.778 1.933 1.535.968 4.167 1.378 8.079-.527 1.212-.59 2.036-1.087 2.495-1.54.538-.531.659-1.102.529-1.574-.132-.476-.51-.818-.993-.818-.109 0-.221.019-.334.056z\"/><ellipse cx=\"27.819\" cy=\"2.692\" fill=\"#FFCC4D\" rx=\"2.413\" ry=\"1.025\" transform=\"rotate(-63.435 27.82 2.693)\"/><ellipse cx=\"30.569\" cy=\"4.067\" fill=\"#FFCC4D\" rx=\"2.413\" ry=\"1.025\" transform=\"rotate(-63.435 30.57 4.067)\"/></svg>`;\n\nconst SVG_EGG = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 36 36\"><path fill=\"#E1E8ED\" d=\"M18 35c-7.732 0-14-4.701-14-10.5C4 14.603 11.268 1 18 1s14 13.603 14 23.5c0 5.799-6.268 10.5-14 10.5z\"/><path fill=\"#CCD6DD\" d=\"M18 33c-6.627 0-12-3.873-12-8.5C6 15.603 12.268 3 18 3s12 12.603 12 21.5c0 4.627-5.373 8.5-12 8.5z\"/></svg>`;\n\nconst SVG_BROCCOLI = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 36 36\"><path fill=\"#77B255\" d=\"M22.453 35.564c-.315 0-.636-.08-.934-.251-5.281-3.029-5.792-10.958-5.813-11.294-.042-.679.474-1.263 1.152-1.305.683-.048 1.263.474 1.305 1.152.005.073.456 7.134 4.607 9.515.59.339.795 1.091.456 1.683-.227.396-.642.617-1.069.617-.001-.117-.296-.117-.704-.117z\"/><path fill=\"#5C913B\" d=\"M13.838 35.564c-.315 0-.636-.08-.934-.251-5.281-3.029-5.792-10.958-5.813-11.294-.042-.679.474-1.263 1.152-1.305.683-.048 1.263.474 1.305 1.152.005.073.456 7.134 4.607 9.515.59.339.795 1.091.456 1.683-.227.396-.642.617-1.069.617-.001-.117-.296-.117-.704-.117z\"/><ellipse cx=\"20.285\" cy=\"18.546\" fill=\"#77B255\" rx=\"5.701\" ry=\"5.476\"/><ellipse cx=\"8.073\" cy=\"15.9\" fill=\"#5C913B\" rx=\"5.145\" ry=\"4.943\"/><circle cx=\"23.111\" cy=\"9.561\" r=\"5.588\" fill=\"#77B255\"/><ellipse cx=\"13.838\" cy=\"7.589\" fill=\"#5C913B\" rx=\"4.866\" ry=\"4.674\"/><circle cx=\"17.236\" cy=\"13.369\" r=\"6.145\" fill=\"#3E721D\"/><circle cx=\"10.166\" cy=\"9.561\" r=\"4.588\" fill=\"#77B255\"/><circle cx=\"26.508\" cy=\"14.571\" r=\"4.588\" fill=\"#5C913B\"/><ellipse cx=\"20.285\" cy=\"4.787\" fill=\"#5C913B\" rx=\"4.31\" ry=\"4.141\"/></svg>`;\n\nconst SVG_RICE = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 36 36\"><path fill=\"#CCD6DD\" d=\"M33 22H3c-1.657 0-3 1.343-3 3v6c0 1.657 1.343 3 3 3h30c1.657 0 3-1.343 3-3v-6c0-1.657-1.343-3-3-3z\"/><path fill=\"#E1E8ED\" d=\"M33 20H3c-1.657 0-3 1.343-3 3v6c0 1.657 1.343 3 3 3h30c1.657 0 3-1.343 3-3v-6c0-1.657-1.343-3-3-3z\"/><path fill=\"#F5F8FA\" d=\"M8 18c-.552 0-1-.447-1-1v-4c0-.553.448-1 1-1s1 .447 1 1v4c0 .553-.448 1-1 1zm4 0c-.552 0-1-.447-1-1v-5c0-.553.448-1 1-1s1 .447 1 1v5c0 .553-.448 1-1 1zm4-1c-.552 0-1-.447-1-1v-4c0-.553.448-1 1-1s1 .447 1 1v4c0 .553-.448 1-1 1zm4 0c-.552 0-1-.447-1-1v-5c0-.553.448-1 1-1s1 .447 1 1v5c0 .553-.448 1-1 1zm4 1c-.552 0-1-.447-1-1v-4c0-.553.448-1 1-1s1 .447 1 1v4c0 .553-.448 1-1 1zm4 0c-.552 0-1-.447-1-1v-5c0-.553.448-1 1-1s1 .447 1 1v5c0 .553-.448 1-1 1z\"/></svg>`;\n\nconst SVG_FRIED_EGG = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 36 36\"><path fill=\"#E1E8ED\" d=\"M35 19.5c0 4.142-3.582 7.5-8 7.5-2.348 0-4.471-.939-6-2.452C19.471 26.061 17.348 27 15 27c-4.418 0-8-3.358-8-7.5 0-.646.087-1.271.248-1.865C4.414 17.047 2 14.552 2 11.5 2 8.186 4.833 5.5 8.333 5.5c.357 0 .707.027 1.05.078C10.66 3.398 12.928 2 15.5 2c2.572 0 4.84 1.398 6.117 3.578.343-.051.693-.078 1.05-.078C26.167 5.5 29 8.186 29 11.5c0 .985-.227 1.918-.631 2.757C32.159 14.676 35 16.799 35 19.5z\"/><ellipse cx=\"15\" cy=\"18\" fill=\"#FFCC4D\" rx=\"8\" ry=\"7\"/><ellipse cx=\"15\" cy=\"17\" fill=\"#FFE8B6\" rx=\"4\" ry=\"3.5\"/></svg>`;\n\n// =============================================================================\n// CATEGORY ICONS\n// =============================================================================\n\nexport const CATEGORY_ICONS: Record<string, string> = {\n poultry: toDataUrl(SVG_POULTRY),\n beef: toDataUrl(SVG_BEEF),\n pork: toDataUrl(SVG_PORK),\n seafood_fish: toDataUrl(SVG_FISH),\n seafood_shellfish: toDataUrl(SVG_SHRIMP),\n egg: toDataUrl(SVG_EGG),\n vegetable: toDataUrl(SVG_BROCCOLI),\n grain: toDataUrl(SVG_RICE),\n};\n\n// =============================================================================\n// INGREDIENT ICONS\n// =============================================================================\n\nexport const INGREDIENT_ICONS: Record<string, string> = {\n // Poultry\n chicken_breast: toDataUrl(SVG_POULTRY),\n chicken_breast_boneless: toDataUrl(SVG_POULTRY),\n chicken_thigh_boneless: toDataUrl(SVG_POULTRY),\n chicken_thigh: toDataUrl(SVG_POULTRY),\n chicken_whole: toDataUrl(SVG_POULTRY),\n turkey_breast: toDataUrl(SVG_POULTRY),\n\n // Beef\n beef_steak_ribeye: toDataUrl(SVG_BEEF),\n beef_ground: toDataUrl(SVG_BEEF),\n beef_roast: toDataUrl(SVG_BEEF),\n\n // Pork\n pork_chop: toDataUrl(SVG_PORK),\n pork_tenderloin: toDataUrl(SVG_PORK),\n pork_ribs: toDataUrl(SVG_PORK),\n\n // Seafood\n salmon_fillet: toDataUrl(SVG_FISH),\n tuna_steak: toDataUrl(SVG_FISH),\n cod_fillet: toDataUrl(SVG_FISH),\n shrimp: toDataUrl(SVG_SHRIMP),\n\n // Eggs\n egg_fried: toDataUrl(SVG_FRIED_EGG),\n egg_boiled: toDataUrl(SVG_EGG),\n egg_scrambled: toDataUrl(SVG_FRIED_EGG),\n egg_poached: toDataUrl(SVG_FRIED_EGG),\n\n // Vegetables\n broccoli: toDataUrl(SVG_BROCCOLI),\n asparagus: toDataUrl(SVG_BROCCOLI),\n potato: toDataUrl(SVG_BROCCOLI),\n carrot: toDataUrl(SVG_BROCCOLI),\n\n // Grains\n rice_white: toDataUrl(SVG_RICE),\n pasta: toDataUrl(SVG_RICE),\n quinoa: toDataUrl(SVG_RICE),\n};\n\n// =============================================================================\n// HELPER\n// =============================================================================\n\nexport const getIcon = (id: string, category?: string): string | undefined => {\n if (INGREDIENT_ICONS[id]) {\n return INGREDIENT_ICONS[id];\n }\n if (category && CATEGORY_ICONS[category]) {\n return CATEGORY_ICONS[category];\n }\n return undefined;\n};\n"],"mappings":";AAIA,IAAM,YAAY,CAAC,QAAwB;AACzC,QAAM,UAAU,mBAAmB,GAAG,EACnC,QAAQ,MAAM,KAAK,EACnB,QAAQ,MAAM,KAAK;AACtB,SAAO,sBAAsB,OAAO;AACtC;AAMA,IAAM,cAAc;AAEpB,IAAM,WAAW;AAEjB,IAAM,WAAW;AAEjB,IAAM,WAAW;AAEjB,IAAM,aAAa;AAEnB,IAAM,UAAU;AAEhB,IAAM,eAAe;AAErB,IAAM,WAAW;AAEjB,IAAM,gBAAgB;AAMf,IAAM,iBAAyC;AAAA,EACpD,SAAS,UAAU,WAAW;AAAA,EAC9B,MAAM,UAAU,QAAQ;AAAA,EACxB,MAAM,UAAU,QAAQ;AAAA,EACxB,cAAc,UAAU,QAAQ;AAAA,EAChC,mBAAmB,UAAU,UAAU;AAAA,EACvC,KAAK,UAAU,OAAO;AAAA,EACtB,WAAW,UAAU,YAAY;AAAA,EACjC,OAAO,UAAU,QAAQ;AAC3B;AAMO,IAAM,mBAA2C;AAAA;AAAA,EAEtD,gBAAgB,UAAU,WAAW;AAAA,EACrC,yBAAyB,UAAU,WAAW;AAAA,EAC9C,wBAAwB,UAAU,WAAW;AAAA,EAC7C,eAAe,UAAU,WAAW;AAAA,EACpC,eAAe,UAAU,WAAW;AAAA,EACpC,eAAe,UAAU,WAAW;AAAA;AAAA,EAGpC,mBAAmB,UAAU,QAAQ;AAAA,EACrC,aAAa,UAAU,QAAQ;AAAA,EAC/B,YAAY,UAAU,QAAQ;AAAA;AAAA,EAG9B,WAAW,UAAU,QAAQ;AAAA,EAC7B,iBAAiB,UAAU,QAAQ;AAAA,EACnC,WAAW,UAAU,QAAQ;AAAA;AAAA,EAG7B,eAAe,UAAU,QAAQ;AAAA,EACjC,YAAY,UAAU,QAAQ;AAAA,EAC9B,YAAY,UAAU,QAAQ;AAAA,EAC9B,QAAQ,UAAU,UAAU;AAAA;AAAA,EAG5B,WAAW,UAAU,aAAa;AAAA,EAClC,YAAY,UAAU,OAAO;AAAA,EAC7B,eAAe,UAAU,aAAa;AAAA,EACtC,aAAa,UAAU,aAAa;AAAA;AAAA,EAGpC,UAAU,UAAU,YAAY;AAAA,EAChC,WAAW,UAAU,YAAY;AAAA,EACjC,QAAQ,UAAU,YAAY;AAAA,EAC9B,QAAQ,UAAU,YAAY;AAAA;AAAA,EAG9B,YAAY,UAAU,QAAQ;AAAA,EAC9B,OAAO,UAAU,QAAQ;AAAA,EACzB,QAAQ,UAAU,QAAQ;AAC5B;AAMO,IAAM,UAAU,CAAC,IAAY,aAA0C;AAC5E,MAAI,iBAAiB,EAAE,GAAG;AACxB,WAAO,iBAAiB,EAAE;AAAA,EAC5B;AACA,MAAI,YAAY,eAAe,QAAQ,GAAG;AACxC,WAAO,eAAe,QAAQ;AAAA,EAChC;AACA,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",
|