@ingredient-icons/core 0.3.0 → 0.4.0

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.
Files changed (186) hide show
  1. package/README.md +9 -6
  2. package/dist/data.d.ts +1 -1
  3. package/dist/data.js +3 -3
  4. package/dist/index.d.ts +12 -5
  5. package/dist/index.js +12 -4
  6. package/icons/webp/128/en_balsamic-vinegar.webp +0 -0
  7. package/icons/webp/128/en_beef-broth.webp +0 -0
  8. package/icons/webp/128/en_bulgur.webp +0 -0
  9. package/icons/webp/128/en_camembert.webp +0 -0
  10. package/icons/webp/128/en_cashew-nuts.webp +0 -0
  11. package/icons/webp/128/en_cheese.webp +0 -0
  12. package/icons/webp/128/en_cherry-tomato.webp +0 -0
  13. package/icons/webp/128/en_chicken-fillet.webp +0 -0
  14. package/icons/webp/128/en_chicken-thigh.webp +0 -0
  15. package/icons/webp/128/en_chopped-tomato.webp +0 -0
  16. package/icons/webp/128/en_chorizo.webp +0 -0
  17. package/icons/webp/128/en_coconut.webp +0 -0
  18. package/icons/webp/128/en_coriander-seed.webp +0 -0
  19. package/icons/webp/128/en_corn.webp +0 -0
  20. package/icons/webp/128/en_cream-cheese.webp +0 -0
  21. package/icons/webp/128/en_curry-powder.webp +0 -0
  22. package/icons/webp/128/en_dill.webp +0 -0
  23. package/icons/webp/128/en_dough.webp +0 -0
  24. package/icons/webp/128/en_dried-thyme.webp +0 -0
  25. package/icons/webp/128/en_dried-tomatoes.webp +0 -0
  26. package/icons/webp/128/en_fish-sauce.webp +0 -0
  27. package/icons/webp/128/en_fish.webp +0 -0
  28. package/icons/webp/128/en_fruit.webp +0 -0
  29. package/icons/webp/128/en_green-olive.webp +0 -0
  30. package/icons/webp/128/en_harissa.webp +0 -0
  31. package/icons/webp/128/en_herb.webp +0 -0
  32. package/icons/webp/128/en_honey.webp +0 -0
  33. package/icons/webp/128/en_hummus.webp +0 -0
  34. package/icons/webp/128/en_kale.webp +0 -0
  35. package/icons/webp/128/en_ketchup.webp +0 -0
  36. package/icons/webp/128/en_kiwifruit.webp +0 -0
  37. package/icons/webp/128/en_nut.webp +0 -0
  38. package/icons/webp/128/en_oregano.webp +0 -0
  39. package/icons/webp/128/en_pak-choi.webp +0 -0
  40. package/icons/webp/128/en_pastry.webp +0 -0
  41. package/icons/webp/128/en_peanut.webp +0 -0
  42. package/icons/webp/128/en_pecorino.webp +0 -0
  43. package/icons/webp/128/en_pepper.webp +0 -0
  44. package/icons/webp/128/en_pesto.webp +0 -0
  45. package/icons/webp/128/en_pine-nuts.webp +0 -0
  46. package/icons/webp/128/en_pistachio-nuts.webp +0 -0
  47. package/icons/webp/128/en_pork.webp +0 -0
  48. package/icons/webp/128/en_poultry-broth.webp +0 -0
  49. package/icons/webp/128/en_pulse.webp +0 -0
  50. package/icons/webp/128/en_red-bean.webp +0 -0
  51. package/icons/webp/128/en_red-wine-vinegar.webp +0 -0
  52. package/icons/webp/128/en_rice-vinegar.webp +0 -0
  53. package/icons/webp/128/en_romaine-lettuce.webp +0 -0
  54. package/icons/webp/128/en_salad.webp +0 -0
  55. package/icons/webp/128/en_sauce.webp +0 -0
  56. package/icons/webp/128/en_sausage.webp +0 -0
  57. package/icons/webp/128/en_seed.webp +0 -0
  58. package/icons/webp/128/en_semolina.webp +0 -0
  59. package/icons/webp/128/en_sesame-oil.webp +0 -0
  60. package/icons/webp/128/en_sesame.webp +0 -0
  61. package/icons/webp/128/en_spice.webp +0 -0
  62. package/icons/webp/128/en_tortilla.webp +0 -0
  63. package/icons/webp/128/en_turmeric.webp +0 -0
  64. package/icons/webp/128/en_white-beans.webp +0 -0
  65. package/icons/webp/128/generic.webp +0 -0
  66. package/icons/webp/256/en_balsamic-vinegar.webp +0 -0
  67. package/icons/webp/256/en_beef-broth.webp +0 -0
  68. package/icons/webp/256/en_bulgur.webp +0 -0
  69. package/icons/webp/256/en_camembert.webp +0 -0
  70. package/icons/webp/256/en_cashew-nuts.webp +0 -0
  71. package/icons/webp/256/en_cheese.webp +0 -0
  72. package/icons/webp/256/en_cherry-tomato.webp +0 -0
  73. package/icons/webp/256/en_chicken-fillet.webp +0 -0
  74. package/icons/webp/256/en_chicken-thigh.webp +0 -0
  75. package/icons/webp/256/en_chopped-tomato.webp +0 -0
  76. package/icons/webp/256/en_chorizo.webp +0 -0
  77. package/icons/webp/256/en_coconut.webp +0 -0
  78. package/icons/webp/256/en_coriander-seed.webp +0 -0
  79. package/icons/webp/256/en_corn.webp +0 -0
  80. package/icons/webp/256/en_cream-cheese.webp +0 -0
  81. package/icons/webp/256/en_curry-powder.webp +0 -0
  82. package/icons/webp/256/en_dill.webp +0 -0
  83. package/icons/webp/256/en_dough.webp +0 -0
  84. package/icons/webp/256/en_dried-thyme.webp +0 -0
  85. package/icons/webp/256/en_dried-tomatoes.webp +0 -0
  86. package/icons/webp/256/en_fish-sauce.webp +0 -0
  87. package/icons/webp/256/en_fish.webp +0 -0
  88. package/icons/webp/256/en_fruit.webp +0 -0
  89. package/icons/webp/256/en_green-olive.webp +0 -0
  90. package/icons/webp/256/en_harissa.webp +0 -0
  91. package/icons/webp/256/en_herb.webp +0 -0
  92. package/icons/webp/256/en_honey.webp +0 -0
  93. package/icons/webp/256/en_hummus.webp +0 -0
  94. package/icons/webp/256/en_kale.webp +0 -0
  95. package/icons/webp/256/en_ketchup.webp +0 -0
  96. package/icons/webp/256/en_kiwifruit.webp +0 -0
  97. package/icons/webp/256/en_nut.webp +0 -0
  98. package/icons/webp/256/en_oregano.webp +0 -0
  99. package/icons/webp/256/en_pak-choi.webp +0 -0
  100. package/icons/webp/256/en_pastry.webp +0 -0
  101. package/icons/webp/256/en_peanut.webp +0 -0
  102. package/icons/webp/256/en_pecorino.webp +0 -0
  103. package/icons/webp/256/en_pepper.webp +0 -0
  104. package/icons/webp/256/en_pesto.webp +0 -0
  105. package/icons/webp/256/en_pine-nuts.webp +0 -0
  106. package/icons/webp/256/en_pistachio-nuts.webp +0 -0
  107. package/icons/webp/256/en_pork.webp +0 -0
  108. package/icons/webp/256/en_poultry-broth.webp +0 -0
  109. package/icons/webp/256/en_pulse.webp +0 -0
  110. package/icons/webp/256/en_red-bean.webp +0 -0
  111. package/icons/webp/256/en_red-wine-vinegar.webp +0 -0
  112. package/icons/webp/256/en_rice-vinegar.webp +0 -0
  113. package/icons/webp/256/en_romaine-lettuce.webp +0 -0
  114. package/icons/webp/256/en_salad.webp +0 -0
  115. package/icons/webp/256/en_sauce.webp +0 -0
  116. package/icons/webp/256/en_sausage.webp +0 -0
  117. package/icons/webp/256/en_seed.webp +0 -0
  118. package/icons/webp/256/en_semolina.webp +0 -0
  119. package/icons/webp/256/en_sesame-oil.webp +0 -0
  120. package/icons/webp/256/en_sesame.webp +0 -0
  121. package/icons/webp/256/en_spice.webp +0 -0
  122. package/icons/webp/256/en_tortilla.webp +0 -0
  123. package/icons/webp/256/en_turmeric.webp +0 -0
  124. package/icons/webp/256/en_white-beans.webp +0 -0
  125. package/icons/webp/256/generic.webp +0 -0
  126. package/icons/webp/64/en_balsamic-vinegar.webp +0 -0
  127. package/icons/webp/64/en_beef-broth.webp +0 -0
  128. package/icons/webp/64/en_bulgur.webp +0 -0
  129. package/icons/webp/64/en_camembert.webp +0 -0
  130. package/icons/webp/64/en_cashew-nuts.webp +0 -0
  131. package/icons/webp/64/en_cheese.webp +0 -0
  132. package/icons/webp/64/en_cherry-tomato.webp +0 -0
  133. package/icons/webp/64/en_chicken-fillet.webp +0 -0
  134. package/icons/webp/64/en_chicken-thigh.webp +0 -0
  135. package/icons/webp/64/en_chopped-tomato.webp +0 -0
  136. package/icons/webp/64/en_chorizo.webp +0 -0
  137. package/icons/webp/64/en_coconut.webp +0 -0
  138. package/icons/webp/64/en_coriander-seed.webp +0 -0
  139. package/icons/webp/64/en_corn.webp +0 -0
  140. package/icons/webp/64/en_cream-cheese.webp +0 -0
  141. package/icons/webp/64/en_curry-powder.webp +0 -0
  142. package/icons/webp/64/en_dill.webp +0 -0
  143. package/icons/webp/64/en_dough.webp +0 -0
  144. package/icons/webp/64/en_dried-thyme.webp +0 -0
  145. package/icons/webp/64/en_dried-tomatoes.webp +0 -0
  146. package/icons/webp/64/en_fish-sauce.webp +0 -0
  147. package/icons/webp/64/en_fish.webp +0 -0
  148. package/icons/webp/64/en_fruit.webp +0 -0
  149. package/icons/webp/64/en_green-olive.webp +0 -0
  150. package/icons/webp/64/en_harissa.webp +0 -0
  151. package/icons/webp/64/en_herb.webp +0 -0
  152. package/icons/webp/64/en_honey.webp +0 -0
  153. package/icons/webp/64/en_hummus.webp +0 -0
  154. package/icons/webp/64/en_kale.webp +0 -0
  155. package/icons/webp/64/en_ketchup.webp +0 -0
  156. package/icons/webp/64/en_kiwifruit.webp +0 -0
  157. package/icons/webp/64/en_nut.webp +0 -0
  158. package/icons/webp/64/en_oregano.webp +0 -0
  159. package/icons/webp/64/en_pak-choi.webp +0 -0
  160. package/icons/webp/64/en_pastry.webp +0 -0
  161. package/icons/webp/64/en_peanut.webp +0 -0
  162. package/icons/webp/64/en_pecorino.webp +0 -0
  163. package/icons/webp/64/en_pepper.webp +0 -0
  164. package/icons/webp/64/en_pesto.webp +0 -0
  165. package/icons/webp/64/en_pine-nuts.webp +0 -0
  166. package/icons/webp/64/en_pistachio-nuts.webp +0 -0
  167. package/icons/webp/64/en_pork.webp +0 -0
  168. package/icons/webp/64/en_poultry-broth.webp +0 -0
  169. package/icons/webp/64/en_pulse.webp +0 -0
  170. package/icons/webp/64/en_red-bean.webp +0 -0
  171. package/icons/webp/64/en_red-wine-vinegar.webp +0 -0
  172. package/icons/webp/64/en_rice-vinegar.webp +0 -0
  173. package/icons/webp/64/en_romaine-lettuce.webp +0 -0
  174. package/icons/webp/64/en_salad.webp +0 -0
  175. package/icons/webp/64/en_sauce.webp +0 -0
  176. package/icons/webp/64/en_sausage.webp +0 -0
  177. package/icons/webp/64/en_seed.webp +0 -0
  178. package/icons/webp/64/en_semolina.webp +0 -0
  179. package/icons/webp/64/en_sesame-oil.webp +0 -0
  180. package/icons/webp/64/en_sesame.webp +0 -0
  181. package/icons/webp/64/en_spice.webp +0 -0
  182. package/icons/webp/64/en_tortilla.webp +0 -0
  183. package/icons/webp/64/en_turmeric.webp +0 -0
  184. package/icons/webp/64/en_white-beans.webp +0 -0
  185. package/icons/webp/64/generic.webp +0 -0
  186. package/package.json +1 -1
package/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
  </p>
6
6
 
7
7
  <p align="center">
8
- <b>265 soft 3D icons for recipe apps, keyed by the Open Food Facts taxonomy.</b><br>
8
+ <b>324 soft 3D icons for recipe apps, keyed by the Open Food Facts taxonomy.</b><br>
9
9
  Shallots, crème fraîche, salt and pepper each get their own, and anything else borrows its closest parent's.
10
10
  </p>
11
11
 
@@ -53,25 +53,28 @@ export function Ingredient({ id, quantity, name }) {
53
53
  URLs point to the exact release you installed on jsDelivr, so icons never change under you. Pass `baseUrl` to serve them from your own CDN or app bundle. Works in React, React Native, Node, Bun, Deno and anything else that shows images, with TypeScript types included.
54
54
 
55
55
  ```ts
56
- import { findIcon, iconName, iconUrl } from "@ingredient-icons/core"
56
+ import { findIcon, GENERIC_ID, iconName, iconUrl } from "@ingredient-icons/core"
57
57
 
58
58
  iconUrl("en:shallot", { size: 256 })
59
59
  // https://cdn.jsdelivr.net/npm/@ingredient-icons/core@<version>/icons/webp/256/en_shallot.webp
60
60
 
61
- findIcon("en:cherry-tomato") // { id: "en:tomato", file: "en_tomato", exact: false }
61
+ findIcon("en:peeled-tomatoes") // { id: "en:tomato", file: "en_tomato", exact: false }
62
62
  iconName("en:shallot", "fr") // "échalote"
63
- findIcon("en:unicorn-steak") // undefined: show your own placeholder
63
+ findIcon("en:unicorn-steak") // undefined: the fallback is yours
64
+ iconUrl("en:unicorn-steak") ?? iconUrl(GENERIC_ID) // the generic icon, a cluster of fresh ingredients
64
65
  ```
65
66
 
67
+ `GENERIC_ID` (`"generic"`) is a reserved id, not an Open Food Facts one: the icon to show when `findIcon` returns `undefined`, for an ingredient the taxonomy cannot place at all.
68
+
66
69
  [React](https://ingredient-icons.vercel.app/docs/guides/react) · [React Native](https://ingredient-icons.vercel.app/docs/guides/react-native) · [Next.js](https://ingredient-icons.vercel.app/docs/guides/nextjs) · [Self-hosting](https://ingredient-icons.vercel.app/docs/guides/self-hosting) · [Without npm](https://ingredient-icons.vercel.app/docs/guides/without-npm) · [API reference](https://ingredient-icons.vercel.app/docs/reference/api)
67
70
 
68
71
  ## No icon of its own? It borrows its parent's
69
72
 
70
- Ids follow the Open Food Facts taxonomy, which knows that fleur de sel is a sea salt and sea salt is a salt. When an ingredient has no icon, `findIcon` walks up its parents and takes the first one that has. That's how **265 icons cover 2,843 ingredients**.
73
+ Ids follow the Open Food Facts taxonomy, which knows that fleur de sel is a sea salt and sea salt is a salt. When an ingredient has no icon, `findIcon` walks up its parents and takes the first one that has. That's how **324 icons cover 3,817 ingredients**.
71
74
 
72
75
  <p>
73
76
  <code>en:fleur-de-sel</code> → <code>en:sea-salt</code> → <img src="https://raw.githubusercontent.com/EBf-Studio/ingredient-icons/main/icons/png/128/en_salt.png" width="40" alt="" align="center"> <code>en:salt</code><br>
74
- <code>en:cherry-tomato</code> → <img src="https://raw.githubusercontent.com/EBf-Studio/ingredient-icons/main/icons/png/128/en_tomato.png" width="40" alt="" align="center"> <code>en:tomato</code>
77
+ <code>en:peeled-tomatoes</code> → <img src="https://raw.githubusercontent.com/EBf-Studio/ingredient-icons/main/icons/png/128/en_tomato.png" width="40" alt="" align="center"> <code>en:tomato</code>
75
78
  </p>
76
79
 
77
80
  Try it with any ingredient [on the website](https://ingredient-icons.vercel.app).
package/dist/data.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export declare const VERSION = "0.3.0";
1
+ export declare const VERSION = "0.4.0";
2
2
  export declare const STYLE = 1;
3
3
  export declare const SIZES: readonly [64, 128, 256];
4
4
  export declare const TAXONOMY_RELEASE = "v2.118.0";