@hugeicons/core-free-icons 1.2.0 → 2.0.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 (266) hide show
  1. package/README.md +7 -118
  2. package/dist/cjs/index.js +608 -627
  3. package/dist/cjs/index.min.js +1 -1
  4. package/dist/esm/AccountRecoveryIcon.js +7 -0
  5. package/dist/esm/AccountRecoveryIcon.js.map +1 -0
  6. package/dist/esm/AiChemistry02Icon.js +4 -4
  7. package/dist/esm/AiDnaIcon.js +2 -2
  8. package/dist/esm/AiImageIcon.js +1 -1
  9. package/dist/esm/AiLaptopIcon.js +3 -3
  10. package/dist/esm/AiMail02Icon.js +3 -3
  11. package/dist/esm/AiScanIcon.js +1 -1
  12. package/dist/esm/AiSecurity02Icon.js +1 -1
  13. package/dist/esm/Airplane02Icon.js +1 -1
  14. package/dist/esm/AmmoIcon.js +8 -8
  15. package/dist/esm/AppleMusicIcon.js +7 -0
  16. package/dist/esm/AppleMusicIcon.js.map +1 -0
  17. package/dist/esm/Archive04Icon.js +1 -1
  18. package/dist/esm/ArrowExpand01Icon.js +1 -1
  19. package/dist/esm/ArrowExpandDiagonal01Icon.js +1 -1
  20. package/dist/esm/ArrowExpandIcon.js +2 -2
  21. package/dist/esm/ArrowLeftRightIcon.js +1 -1
  22. package/dist/esm/ArrowShrink01Icon.js +1 -1
  23. package/dist/esm/ArrowShrinkIcon.js +1 -1
  24. package/dist/esm/BackgroundIcon.js +2 -2
  25. package/dist/esm/BedBunkIcon.js +1 -1
  26. package/dist/esm/BedIcon.js +1 -1
  27. package/dist/esm/BitcoinTagIcon.js +2 -2
  28. package/dist/esm/BitcoinUp01Icon.js +3 -3
  29. package/dist/esm/BitcoinUp02Icon.js +1 -1
  30. package/dist/esm/Blockchain07Icon.js +3 -3
  31. package/dist/esm/Brain01Icon.js +1 -5
  32. package/dist/esm/BubbleChatTemporaryIcon.js +1 -1
  33. package/dist/esm/BulletIcon.js +1 -1
  34. package/dist/esm/CalendarDownload02Icon.js +4 -4
  35. package/dist/esm/CentralizedIcon.js +2 -2
  36. package/dist/esm/ChartDownIcon.js +1 -1
  37. package/dist/esm/CircleArrowLeft02Icon.js +1 -1
  38. package/dist/esm/CircleArrowMoveDownLeftIcon.js +1 -1
  39. package/dist/esm/CircleArrowUpRight02Icon.js +3 -3
  40. package/dist/esm/CircleArrowVerticalIcon.js +1 -1
  41. package/dist/esm/Clock03Icon.js +1 -1
  42. package/dist/esm/Clock05Icon.js +1 -1
  43. package/dist/esm/DeepseekIcon.js +1 -1
  44. package/dist/esm/DigestionIcon.js +3 -3
  45. package/dist/esm/DragDropHorizontalIcon.js +6 -1
  46. package/dist/esm/DragDropIcon.js +9 -1
  47. package/dist/esm/EaseCurveControlPointsIcon.js +4 -2
  48. package/dist/esm/EidMubarakIcon.js +2 -2
  49. package/dist/esm/EightSquareIcon.js +2 -2
  50. package/dist/esm/EthereumIcon.js +1 -1
  51. package/dist/esm/ExpandParagraphIcon.js +9 -0
  52. package/dist/esm/ExpandParagraphIcon.js.map +1 -0
  53. package/dist/esm/Fan01Icon.js +2 -2
  54. package/dist/esm/Fan02Icon.js +1 -1
  55. package/dist/esm/FileDollarIcon.js +2 -2
  56. package/dist/esm/Files01Icon.js +1 -1
  57. package/dist/esm/Files02Icon.js +1 -1
  58. package/dist/esm/FireSecurityIcon.js +1 -1
  59. package/dist/esm/FiveSquareIcon.js +2 -2
  60. package/dist/esm/FlipBottomIcon.js +2 -2
  61. package/dist/esm/FourSquareIcon.js +2 -2
  62. package/dist/esm/GasStoveIcon.js +5 -5
  63. package/dist/esm/GlobalEducationIcon.js +3 -2
  64. package/dist/esm/GloveIcon.js +2 -2
  65. package/dist/esm/GnomeIcon.js +3 -3
  66. package/dist/esm/HajiIcon.js +7 -7
  67. package/dist/esm/HalalIcon.js +2 -2
  68. package/dist/esm/HandBeaterIcon.js +4 -4
  69. package/dist/esm/HandSanitizerIcon.js +2 -2
  70. package/dist/esm/HijabIcon.js +4 -4
  71. package/dist/esm/Image03Icon.js +3 -3
  72. package/dist/esm/ImageCounterClockwiseIcon.js +4 -4
  73. package/dist/esm/ImageFlipHorizontalIcon.js +7 -0
  74. package/dist/esm/ImageFlipHorizontalIcon.js.map +1 -0
  75. package/dist/esm/ImageFlipVerticalIcon.js +2 -2
  76. package/dist/esm/ImageRotationClockwiseIcon.js +4 -4
  77. package/dist/esm/InboxCheckIcon.js +3 -3
  78. package/dist/esm/JarIcon.js +2 -2
  79. package/dist/esm/Kaaba01Icon.js +5 -5
  80. package/dist/esm/Kaaba02Icon.js +7 -7
  81. package/dist/esm/KeffiyehIcon.js +3 -3
  82. package/dist/esm/KettleIcon.js +5 -5
  83. package/dist/esm/KetupatIcon.js +3 -3
  84. package/dist/esm/KitchenUtensilsIcon.js +3 -3
  85. package/dist/esm/Knife01Icon.js +2 -2
  86. package/dist/esm/Knife02Icon.js +1 -1
  87. package/dist/esm/KnifeBreadIcon.js +1 -1
  88. package/dist/esm/KnivesIcon.js +3 -3
  89. package/dist/esm/Kurta01Icon.js +3 -3
  90. package/dist/esm/Lamp02Icon.js +2 -2
  91. package/dist/esm/Lamp05Icon.js +3 -3
  92. package/dist/esm/LanternIcon.js +9 -9
  93. package/dist/esm/Layout04Icon.js +1 -1
  94. package/dist/esm/LicenseDraftIcon.js +2 -2
  95. package/dist/esm/LockKeyIcon.js +2 -2
  96. package/dist/esm/LoginSquare02Icon.js +1 -1
  97. package/dist/esm/LogoutSquare02Icon.js +1 -1
  98. package/dist/esm/Mail02Icon.js +1 -1
  99. package/dist/esm/MailBlock01Icon.js +1 -1
  100. package/dist/esm/MailDownload01Icon.js +1 -1
  101. package/dist/esm/MailEdit01Icon.js +2 -2
  102. package/dist/esm/MailLove01Icon.js +1 -1
  103. package/dist/esm/MailReceive01Icon.js +1 -1
  104. package/dist/esm/MailReply01Icon.js +3 -3
  105. package/dist/esm/MailReplyAll01Icon.js +4 -4
  106. package/dist/esm/MailSearch01Icon.js +2 -2
  107. package/dist/esm/MailSearch02Icon.js +1 -1
  108. package/dist/esm/MailSecure01Icon.js +1 -1
  109. package/dist/esm/MailSend01Icon.js +1 -1
  110. package/dist/esm/MailSetting01Icon.js +1 -1
  111. package/dist/esm/MailUpload01Icon.js +1 -1
  112. package/dist/esm/MapsRefreshIcon.js +1 -1
  113. package/dist/esm/MaskLoveIcon.js +5 -5
  114. package/dist/esm/MaskTheater01Icon.js +4 -4
  115. package/dist/esm/MaskTheater02Icon.js +2 -2
  116. package/dist/esm/McpServerIcon.js +1 -1
  117. package/dist/esm/MessageAdd02Icon.js +2 -2
  118. package/dist/esm/MessageDelay02Icon.js +2 -2
  119. package/dist/esm/MessageDone02Icon.js +2 -2
  120. package/dist/esm/MessageDownload02Icon.js +2 -2
  121. package/dist/esm/MessageEdit01Icon.js +3 -3
  122. package/dist/esm/MessageEdit02Icon.js +3 -3
  123. package/dist/esm/MessageFavourite02Icon.js +2 -2
  124. package/dist/esm/MessageIncoming02Icon.js +1 -1
  125. package/dist/esm/MessageOutgoing02Icon.js +1 -1
  126. package/dist/esm/MessageSearch02Icon.js +2 -2
  127. package/dist/esm/MicrosoftAdminIcon.js +1 -1
  128. package/dist/esm/Mining01Icon.js +3 -3
  129. package/dist/esm/Mining03Icon.js +2 -2
  130. package/dist/esm/MonocleIcon.js +3 -3
  131. package/dist/esm/More01Icon.js +9 -9
  132. package/dist/esm/MoreHorizontalIcon.js +3 -3
  133. package/dist/esm/MoreVerticalIcon.js +3 -3
  134. package/dist/esm/Mosque01Icon.js +4 -4
  135. package/dist/esm/Mosque02Icon.js +7 -7
  136. package/dist/esm/MosqueLocationIcon.js +2 -2
  137. package/dist/esm/MoveToIcon.js +6 -6
  138. package/dist/esm/MuhammadIcon.js +2 -2
  139. package/dist/esm/MuslimIcon.js +5 -5
  140. package/dist/esm/Navigator02Icon.js +2 -2
  141. package/dist/esm/NewJobIcon.js +1 -1
  142. package/dist/esm/NineSquareIcon.js +3 -3
  143. package/dist/esm/NiqabIcon.js +4 -4
  144. package/dist/esm/PackageProcess01Icon.js +2 -2
  145. package/dist/esm/PackagingIcon.js +1 -1
  146. package/dist/esm/Passport01Icon.js +1 -1
  147. package/dist/esm/PhoneDeveloperModeIcon.js +1 -1
  148. package/dist/esm/PieChart09Icon.js +1 -1
  149. package/dist/esm/PieChartSquareIcon.js +1 -1
  150. package/dist/esm/PoundReceiveIcon.js +1 -1
  151. package/dist/esm/PrayerRug01Icon.js +7 -7
  152. package/dist/esm/PrayerRug02Icon.js +10 -10
  153. package/dist/esm/PropertyNewIcon.js +1 -1
  154. package/dist/esm/QuestionIcon.js +3 -3
  155. package/dist/esm/Quran01Icon.js +2 -2
  156. package/dist/esm/Quran02Icon.js +4 -4
  157. package/dist/esm/Quran03Icon.js +5 -5
  158. package/dist/esm/Ramadhan01Icon.js +2 -2
  159. package/dist/esm/Ramadhan02Icon.js +5 -5
  160. package/dist/esm/RamadhanMonthIcon.js +5 -5
  161. package/dist/esm/ReactIcon.js +1 -1
  162. package/dist/esm/ReduceParagraphIcon.js +8 -0
  163. package/dist/esm/ReduceParagraphIcon.js.map +1 -0
  164. package/dist/esm/Refresh01Icon.js +7 -0
  165. package/dist/esm/Refresh01Icon.js.map +1 -0
  166. package/dist/esm/ReminderIcon.js +4 -4
  167. package/dist/esm/RepostIcon.js +9 -0
  168. package/dist/esm/RepostIcon.js.map +1 -0
  169. package/dist/esm/RestoreBinIcon.js +3 -3
  170. package/dist/esm/RiceBowl02Icon.js +1 -1
  171. package/dist/esm/RubElHizbIcon.js +3 -3
  172. package/dist/esm/RubberDuckIcon.js +3 -3
  173. package/dist/esm/RukuIcon.js +3 -3
  174. package/dist/esm/SalahIcon.js +1 -1
  175. package/dist/esm/SalahTimeIcon.js +3 -3
  176. package/dist/esm/ScanImageIcon.js +9 -0
  177. package/dist/esm/ScanImageIcon.js.map +1 -0
  178. package/dist/esm/ScreenLockRotationIcon.js +3 -3
  179. package/dist/esm/SentIcon.js +1 -1
  180. package/dist/esm/SevenSquareIcon.js +2 -2
  181. package/dist/esm/Share01Icon.js +1 -1
  182. package/dist/esm/ShoppingBag01Icon.js +2 -2
  183. package/dist/esm/ShoppingBag03Icon.js +3 -3
  184. package/dist/esm/ShoppingBasketAdd03Icon.js +1 -1
  185. package/dist/esm/ShoppingBasketRemove03Icon.js +1 -1
  186. package/dist/esm/SignLanguageCIcon.js +1 -1
  187. package/dist/esm/SixSquareIcon.js +3 -3
  188. package/dist/esm/SmartPhoneLandscape02Icon.js +2 -2
  189. package/dist/esm/SolarPanel02Icon.js +1 -1
  190. package/dist/esm/Sorting91Icon.js +1 -1
  191. package/dist/esm/SquareArrowDown02Icon.js +1 -1
  192. package/dist/esm/SquareArrowRight02Icon.js +2 -2
  193. package/dist/esm/SquareArrowUp02Icon.js +1 -1
  194. package/dist/esm/SquareArrowUpLeftIcon.js +1 -1
  195. package/dist/esm/SquareLock02Icon.js +1 -1
  196. package/dist/esm/SquareUnlock01Icon.js +1 -1
  197. package/dist/esm/Store01Icon.js +2 -2
  198. package/dist/esm/Store02Icon.js +2 -2
  199. package/dist/esm/Store03Icon.js +3 -3
  200. package/dist/esm/Store04Icon.js +3 -3
  201. package/dist/esm/StoreAdd01Icon.js +2 -2
  202. package/dist/esm/StoreLocation01Icon.js +2 -2
  203. package/dist/esm/StoreLocation02Icon.js +4 -4
  204. package/dist/esm/StoreManagement01Icon.js +2 -2
  205. package/dist/esm/StoreManagement02Icon.js +1 -1
  206. package/dist/esm/StoreRemove01Icon.js +2 -2
  207. package/dist/esm/StoreVerified01Icon.js +1 -1
  208. package/dist/esm/StructureCheckIcon.js +2 -2
  209. package/dist/esm/StructureFailIcon.js +2 -2
  210. package/dist/esm/SujoodIcon.js +2 -2
  211. package/dist/esm/SuperMarioIcon.js +1 -1
  212. package/dist/esm/SwipeDown06Icon.js +1 -1
  213. package/dist/esm/SwipeRight08Icon.js +1 -1
  214. package/dist/esm/TabletConnectedUsbIcon.js +3 -3
  215. package/dist/esm/Target02Icon.js +1 -1
  216. package/dist/esm/TasbihIcon.js +9 -9
  217. package/dist/esm/Task01Icon.js +2 -2
  218. package/dist/esm/TaskDaily01Icon.js +3 -3
  219. package/dist/esm/UnfoldMoreIcon.js +2 -2
  220. package/dist/esm/Upload01Icon.js +2 -2
  221. package/dist/esm/Upload02Icon.js +1 -1
  222. package/dist/esm/Upload03Icon.js +1 -1
  223. package/dist/esm/Upload05Icon.js +3 -3
  224. package/dist/esm/UploadCircle01Icon.js +1 -1
  225. package/dist/esm/UploadSquare01Icon.js +1 -1
  226. package/dist/esm/UsbErrorIcon.js +1 -1
  227. package/dist/esm/UserAccountIcon.js +3 -4
  228. package/dist/esm/UserCircleIcon.js +2 -2
  229. package/dist/esm/UserGroup03Icon.js +1 -1
  230. package/dist/esm/UserSquareIcon.js +3 -3
  231. package/dist/esm/UserStatusIcon.js +4 -4
  232. package/dist/esm/Uv02Icon.js +1 -1
  233. package/dist/esm/Uv03Icon.js +1 -1
  234. package/dist/esm/WaiterIcon.js +2 -2
  235. package/dist/esm/WasteIcon.js +3 -3
  236. package/dist/esm/WasteRestoreIcon.js +3 -3
  237. package/dist/esm/WaterPoloIcon.js +2 -2
  238. package/dist/esm/WaveTriangleIcon.js +1 -1
  239. package/dist/esm/WifiError02Icon.js +1 -1
  240. package/dist/esm/WifiOff01Icon.js +1 -1
  241. package/dist/esm/WifiOff02Icon.js +1 -1
  242. package/dist/esm/WindTurbineIcon.js +5 -5
  243. package/dist/esm/WuduIcon.js +2 -2
  244. package/dist/esm/ZakatIcon.js +2 -2
  245. package/dist/esm/index.js +11 -4
  246. package/dist/esm/index.min.js +1 -1
  247. package/dist/esm/loader.native.js +4620 -0
  248. package/dist/esm/loader.native.js.map +1 -0
  249. package/dist/esm/loader.node.js +4621 -0
  250. package/dist/esm/loader.node.js.map +1 -0
  251. package/dist/esm/loader.web.js +4621 -0
  252. package/dist/esm/loader.web.js.map +1 -0
  253. package/dist/types/index.d.ts +23 -36
  254. package/dist/types/loader.native.d.ts +22 -0
  255. package/dist/types/loader.node.d.ts +22 -0
  256. package/dist/types/loader.web.d.ts +22 -0
  257. package/package.json +10 -5
  258. package/dist/cjs/loader.js +0 -122
  259. package/dist/cjs/loader.js.map +0 -1
  260. package/dist/cjs/loader.min.js +0 -2
  261. package/dist/cjs/loader.min.js.map +0 -1
  262. package/dist/esm/loader.js +0 -111
  263. package/dist/esm/loader.js.map +0 -1
  264. package/dist/esm/loader.min.js +0 -2
  265. package/dist/esm/loader.min.js.map +0 -1
  266. package/dist/types/loader.d.ts +0 -57
package/README.md CHANGED
@@ -60,7 +60,7 @@ Loads the entire icon library (use when you need many icons dynamically):
60
60
  const { Home01Icon } = await import('@hugeicons/core-free-icons');
61
61
  ```
62
62
 
63
- #### 3. Dynamic Import - Individual Icons
63
+ #### 3. Dynamic Import - Individual Icons (NEW ✨)
64
64
  Loads only the specific icon you need (99% smaller bundle size):
65
65
 
66
66
  ```javascript
@@ -69,125 +69,16 @@ const icon = await import('@hugeicons/core-free-icons/Home01Icon');
69
69
  const Home01Icon = icon.default;
70
70
  ```
71
71
 
72
- #### 4. Dynamic Loader Functions (NEW ✨ Recommended)
73
- The most efficient way to load icons dynamically with built-in caching:
74
-
75
- ```javascript
76
- import { loadIcon, loadIcons } from '@hugeicons/core-free-icons/loader';
77
-
78
- // Load single icon
79
- const homeIcon = await loadIcon('Home01Icon');
80
-
81
- // Load multiple icons (parallel loading)
82
- const icons = await loadIcons(['Calendar01Icon', 'UserIcon', 'SearchIcon']);
83
-
84
- // Check if icon exists
85
- const exists = await iconExists('Home01Icon'); // true
86
- ```
87
-
88
- **Loader Benefits:**
89
- - ✅ **Automatic Caching** - Icons are cached after first load
90
- - ✅ **TypeScript Support** - Full type definitions included
91
- - ✅ **On-Demand Loading** - Only loads what you request
92
- - ✅ **Parallel Loading** - `loadIcons` loads multiple icons simultaneously
93
- - ✅ **Error Handling** - Clear error messages for missing icons
94
- - ✅ **Zero Vite Overhead** - No dev server slowdown
95
-
96
- **React Example with Loader:**
97
- ```jsx
98
- import { useState, useEffect } from 'react';
99
- import { loadIcon } from '@hugeicons/core-free-icons/loader';
100
- import { HugeiconsIcon } from '@hugeicons/react';
101
-
102
- function DynamicIcon({ iconName }) {
103
- const [icon, setIcon] = useState(null);
104
- const [loading, setLoading] = useState(true);
105
-
106
- useEffect(() => {
107
- loadIcon(iconName)
108
- .then(setIcon)
109
- .catch(console.error)
110
- .finally(() => setLoading(false));
111
- }, [iconName]);
112
-
113
- if (loading) return <div>Loading...</div>;
114
- if (!icon) return <div>Icon not found</div>;
115
-
116
- return <HugeiconsIcon icon={icon} size={24} />;
117
- }
118
- ```
119
-
120
72
  ### Performance Comparison
121
73
 
122
- | Import Method | Bundle Size | Load Time | Caching | Best For |
123
- |--------------|-------------|-----------|---------|----------|
124
- | Static Import | ~2-3KB per icon | 0ms (bundled) | N/A | Production builds |
125
- | Dynamic Full Bundle | ~5MB | 100-200ms | No | Many dynamic icons |
126
- | Dynamic Individual | ~0.75KB | 10-20ms | No | Icon pickers, lazy loading |
127
- | **Loader Functions** ⭐ | **~2KB + 0.75KB per icon** | **8-20ms** | **Yes** | **Dynamic apps, CMS, config-driven UIs** |
74
+ | Import Method | Bundle Size | Load Time | Best For |
75
+ |--------------|-------------|-----------|----------|
76
+ | Static Import | ~2-3KB per icon | 0ms (bundled) | Production builds |
77
+ | Dynamic Full Bundle | ~5MB | 100-200ms | Many dynamic icons |
78
+ | Dynamic Individual | ~0.75KB | 10-20ms | Icon pickers, lazy loading |
128
79
 
129
80
  For real-world applications, we recommend using our framework-specific packages that provide optimized components and additional features. Check out the Framework Support section below for more details.
130
81
 
131
- ## Loader API Reference
132
-
133
- The loader provides a complete API for dynamic icon management:
134
-
135
- ### Available Functions
136
-
137
- ```typescript
138
- // Load single icon with caching
139
- loadIcon(iconName: string): Promise<IconSvgObject>
140
-
141
- // Load multiple icons in parallel
142
- loadIcons(iconNames: string[]): Promise<IconSvgObject[]>
143
-
144
- // Check if an icon exists
145
- iconExists(iconName: string): Promise<boolean>
146
-
147
- // Clear icon cache
148
- clearIconCache(): void
149
-
150
- // Get cache size
151
- getCacheSize(): number
152
-
153
- // Style-specific aliases (for multi-package usage)
154
- loadIconFreeIcons(iconName: string): Promise<IconSvgObject>
155
- loadIconsFreeIcons(iconNames: string[]): Promise<IconSvgObject[]>
156
- ```
157
-
158
- ### Complete Usage Example
159
-
160
- ```javascript
161
- import {
162
- loadIcon,
163
- loadIcons,
164
- iconExists,
165
- clearIconCache,
166
- getCacheSize
167
- } from '@hugeicons/core-free-icons/loader';
168
-
169
- // Load single icon
170
- const home = await loadIcon('Home01Icon');
171
- console.log('Loaded:', home); // Array of SVG path data
172
-
173
- // Load multiple icons
174
- const [calendar, user, search] = await loadIcons([
175
- 'Calendar01Icon',
176
- 'UserIcon',
177
- 'Search01Icon'
178
- ]);
179
-
180
- // Check existence before loading
181
- if (await iconExists('Rocket01Icon')) {
182
- const rocket = await loadIcon('Rocket01Icon');
183
- }
184
-
185
- // Cache management
186
- console.log('Cached icons:', getCacheSize()); // 4
187
- clearIconCache();
188
- console.log('After clear:', getCacheSize()); // 0
189
- ```
190
-
191
82
  ## Tree-Shaking Support
192
83
 
193
84
  This package is optimized for tree-shaking with modern bundlers (Webpack, Rollup, Vite, etc.). When you import icons using the standard syntax, bundlers will automatically eliminate unused icons:
@@ -207,14 +98,12 @@ import { UserIcon, HomeIcon } from '@hugeicons/core-free-icons';
207
98
 
208
99
  ## Features
209
100
 
210
- - ⭐ **Dynamic Loader Functions**: NEW! Load icons on-demand with automatic caching
211
101
  - 🎯 **Individual Icon Imports**: Load only what you need with 99% bundle size reduction
212
102
  - 🌳 **Tree-shakeable**: Optimized for modern bundlers
213
- - 📦 **Multiple Import Methods**: Static, dynamic bundle, dynamic individual, or loader
103
+ - 📦 **Multiple Import Methods**: Static, dynamic bundle, or dynamic individual
214
104
  - 🔷 **TypeScript Support**: Full type definitions included
215
105
  - 📱 **Framework Agnostic**: Works with any JavaScript framework
216
106
  - ⚡ **Optimized Performance**: Lazy load icons on demand
217
- - 💾 **Built-in Caching**: In-memory cache for faster subsequent loads
218
107
  - 🎨 **Customizable**: Easy to style with CSS or inline styles
219
108
  - ✅ **ESM & CommonJS**: Support for both module systems
220
109
  - 🚀 **Zero Dependencies**: No external dependencies