rn-iconify 1.0.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 (657) hide show
  1. package/README.md +47 -235
  2. package/babel.js +14 -0
  3. package/lib/commonjs/IconRenderer.js +91 -4
  4. package/lib/commonjs/IconRenderer.js.map +1 -1
  5. package/lib/commonjs/accessibility/AccessibilityProvider.js +189 -0
  6. package/lib/commonjs/accessibility/AccessibilityProvider.js.map +1 -0
  7. package/lib/commonjs/accessibility/index.js +87 -0
  8. package/lib/commonjs/accessibility/index.js.map +1 -0
  9. package/lib/commonjs/accessibility/types.js +6 -0
  10. package/lib/commonjs/accessibility/types.js.map +1 -0
  11. package/lib/commonjs/accessibility/useAccessibleIcon.js +119 -0
  12. package/lib/commonjs/accessibility/useAccessibleIcon.js.map +1 -0
  13. package/lib/commonjs/accessibility/utils.js +231 -0
  14. package/lib/commonjs/accessibility/utils.js.map +1 -0
  15. package/lib/commonjs/alias/Icon.js +113 -0
  16. package/lib/commonjs/alias/Icon.js.map +1 -0
  17. package/lib/commonjs/alias/IconAliasContext.js +177 -0
  18. package/lib/commonjs/alias/IconAliasContext.js.map +1 -0
  19. package/lib/commonjs/alias/createIconAliases.js +222 -0
  20. package/lib/commonjs/alias/createIconAliases.js.map +1 -0
  21. package/lib/commonjs/alias/index.js +57 -0
  22. package/lib/commonjs/alias/index.js.map +1 -0
  23. package/lib/commonjs/alias/types.js +6 -0
  24. package/lib/commonjs/alias/types.js.map +1 -0
  25. package/lib/commonjs/animated/AnimatedIcon.js +116 -0
  26. package/lib/commonjs/animated/AnimatedIcon.js.map +1 -0
  27. package/lib/commonjs/animated/index.js +76 -0
  28. package/lib/commonjs/animated/index.js.map +1 -0
  29. package/lib/commonjs/animated/presets.js +220 -0
  30. package/lib/commonjs/animated/presets.js.map +1 -0
  31. package/lib/commonjs/animated/types.js +71 -0
  32. package/lib/commonjs/animated/types.js.map +1 -0
  33. package/lib/commonjs/animated/useIconAnimation.js +313 -0
  34. package/lib/commonjs/animated/useIconAnimation.js.map +1 -0
  35. package/lib/commonjs/babel/ast-utils.js +214 -0
  36. package/lib/commonjs/babel/ast-utils.js.map +1 -0
  37. package/lib/commonjs/babel/cache-writer.js +281 -0
  38. package/lib/commonjs/babel/cache-writer.js.map +1 -0
  39. package/lib/commonjs/babel/collector.js +219 -0
  40. package/lib/commonjs/babel/collector.js.map +1 -0
  41. package/lib/commonjs/babel/index.js +104 -0
  42. package/lib/commonjs/babel/index.js.map +1 -0
  43. package/lib/commonjs/babel/plugin.js +226 -0
  44. package/lib/commonjs/babel/plugin.js.map +1 -0
  45. package/lib/commonjs/babel/types.js +485 -0
  46. package/lib/commonjs/babel/types.js.map +1 -0
  47. package/lib/commonjs/bundle/index.js +213 -0
  48. package/lib/commonjs/bundle/index.js.map +1 -0
  49. package/lib/commonjs/cache/CacheManager.js +105 -6
  50. package/lib/commonjs/cache/CacheManager.js.map +1 -1
  51. package/lib/commonjs/cli/commands/analyze.js +171 -0
  52. package/lib/commonjs/cli/commands/analyze.js.map +1 -0
  53. package/lib/commonjs/cli/commands/bundle.js +214 -0
  54. package/lib/commonjs/cli/commands/bundle.js.map +1 -0
  55. package/lib/commonjs/cli/index.js +142 -0
  56. package/lib/commonjs/cli/index.js.map +1 -0
  57. package/lib/commonjs/cli/parser.js +260 -0
  58. package/lib/commonjs/cli/parser.js.map +1 -0
  59. package/lib/commonjs/cli/types.js +42 -0
  60. package/lib/commonjs/cli/types.js.map +1 -0
  61. package/lib/commonjs/config/ConfigManager.js +182 -0
  62. package/lib/commonjs/config/ConfigManager.js.map +1 -0
  63. package/lib/commonjs/config/index.js +44 -0
  64. package/lib/commonjs/config/index.js.map +1 -0
  65. package/lib/commonjs/config/types.js +55 -0
  66. package/lib/commonjs/config/types.js.map +1 -0
  67. package/lib/commonjs/createIconSet.js +49 -11
  68. package/lib/commonjs/createIconSet.js.map +1 -1
  69. package/lib/commonjs/explorer/IconExplorer.js +827 -0
  70. package/lib/commonjs/explorer/IconExplorer.js.map +1 -0
  71. package/lib/commonjs/explorer/iconSets.js +303 -0
  72. package/lib/commonjs/explorer/iconSets.js.map +1 -0
  73. package/lib/commonjs/explorer/index.js +93 -0
  74. package/lib/commonjs/explorer/index.js.map +1 -0
  75. package/lib/commonjs/explorer/types.js +6 -0
  76. package/lib/commonjs/explorer/types.js.map +1 -0
  77. package/lib/commonjs/explorer/useExplorer.js +359 -0
  78. package/lib/commonjs/explorer/useExplorer.js.map +1 -0
  79. package/lib/commonjs/index.js +618 -12
  80. package/lib/commonjs/index.js.map +1 -1
  81. package/lib/commonjs/navigation/createDrawerIcon.js +129 -0
  82. package/lib/commonjs/navigation/createDrawerIcon.js.map +1 -0
  83. package/lib/commonjs/navigation/createHeaderIcon.js +185 -0
  84. package/lib/commonjs/navigation/createHeaderIcon.js.map +1 -0
  85. package/lib/commonjs/navigation/createTabBarIcon.js +178 -0
  86. package/lib/commonjs/navigation/createTabBarIcon.js.map +1 -0
  87. package/lib/commonjs/navigation/index.js +83 -0
  88. package/lib/commonjs/navigation/index.js.map +1 -0
  89. package/lib/commonjs/navigation/types.js +94 -0
  90. package/lib/commonjs/navigation/types.js.map +1 -0
  91. package/lib/commonjs/navigation/useNavigationIcon.js +128 -0
  92. package/lib/commonjs/navigation/useNavigationIcon.js.map +1 -0
  93. package/lib/commonjs/network/IconifyAPI.js +154 -14
  94. package/lib/commonjs/network/IconifyAPI.js.map +1 -1
  95. package/lib/commonjs/network/index.js +18 -0
  96. package/lib/commonjs/network/index.js.map +1 -1
  97. package/lib/commonjs/performance/PerformanceMonitor.js +327 -0
  98. package/lib/commonjs/performance/PerformanceMonitor.js.map +1 -0
  99. package/lib/commonjs/performance/index.js +43 -0
  100. package/lib/commonjs/performance/index.js.map +1 -0
  101. package/lib/commonjs/performance/types.js +2 -0
  102. package/lib/commonjs/performance/types.js.map +1 -0
  103. package/lib/commonjs/placeholder/PlaceholderFactory.js +111 -0
  104. package/lib/commonjs/placeholder/PlaceholderFactory.js.map +1 -0
  105. package/lib/commonjs/placeholder/Pulse.js +77 -0
  106. package/lib/commonjs/placeholder/Pulse.js.map +1 -0
  107. package/lib/commonjs/placeholder/Shimmer.js +95 -0
  108. package/lib/commonjs/placeholder/Shimmer.js.map +1 -0
  109. package/lib/commonjs/placeholder/Skeleton.js +52 -0
  110. package/lib/commonjs/placeholder/Skeleton.js.map +1 -0
  111. package/lib/commonjs/placeholder/index.js +41 -0
  112. package/lib/commonjs/placeholder/index.js.map +1 -0
  113. package/lib/commonjs/placeholder/types.js +40 -0
  114. package/lib/commonjs/placeholder/types.js.map +1 -0
  115. package/lib/commonjs/theme/IconThemeProvider.js +96 -0
  116. package/lib/commonjs/theme/IconThemeProvider.js.map +1 -0
  117. package/lib/commonjs/theme/context.js +53 -0
  118. package/lib/commonjs/theme/context.js.map +1 -0
  119. package/lib/commonjs/theme/index.js +52 -0
  120. package/lib/commonjs/theme/index.js.map +1 -0
  121. package/lib/commonjs/theme/types.js +39 -0
  122. package/lib/commonjs/theme/types.js.map +1 -0
  123. package/lib/commonjs/theme/useIconTheme.js +121 -0
  124. package/lib/commonjs/theme/useIconTheme.js.map +1 -0
  125. package/lib/module/IconRenderer.js +92 -5
  126. package/lib/module/IconRenderer.js.map +1 -1
  127. package/lib/module/accessibility/AccessibilityProvider.js +179 -0
  128. package/lib/module/accessibility/AccessibilityProvider.js.map +1 -0
  129. package/lib/module/accessibility/index.js +42 -0
  130. package/lib/module/accessibility/index.js.map +1 -0
  131. package/lib/module/accessibility/types.js +2 -0
  132. package/lib/module/accessibility/types.js.map +1 -0
  133. package/lib/module/accessibility/useAccessibleIcon.js +112 -0
  134. package/lib/module/accessibility/useAccessibleIcon.js.map +1 -0
  135. package/lib/module/accessibility/utils.js +221 -0
  136. package/lib/module/accessibility/utils.js.map +1 -0
  137. package/lib/module/alias/Icon.js +105 -0
  138. package/lib/module/alias/Icon.js.map +1 -0
  139. package/lib/module/alias/IconAliasContext.js +166 -0
  140. package/lib/module/alias/IconAliasContext.js.map +1 -0
  141. package/lib/module/alias/createIconAliases.js +213 -0
  142. package/lib/module/alias/createIconAliases.js.map +1 -0
  143. package/lib/module/alias/index.js +45 -0
  144. package/lib/module/alias/index.js.map +1 -0
  145. package/lib/module/alias/types.js +2 -0
  146. package/lib/module/alias/types.js.map +1 -0
  147. package/lib/module/animated/AnimatedIcon.js +109 -0
  148. package/lib/module/animated/AnimatedIcon.js.map +1 -0
  149. package/lib/module/animated/index.js +80 -0
  150. package/lib/module/animated/index.js.map +1 -0
  151. package/lib/module/animated/presets.js +209 -0
  152. package/lib/module/animated/presets.js.map +1 -0
  153. package/lib/module/animated/types.js +65 -0
  154. package/lib/module/animated/types.js.map +1 -0
  155. package/lib/module/animated/useIconAnimation.js +306 -0
  156. package/lib/module/animated/useIconAnimation.js.map +1 -0
  157. package/lib/module/babel/ast-utils.js +201 -0
  158. package/lib/module/babel/ast-utils.js.map +1 -0
  159. package/lib/module/babel/cache-writer.js +269 -0
  160. package/lib/module/babel/cache-writer.js.map +1 -0
  161. package/lib/module/babel/collector.js +214 -0
  162. package/lib/module/babel/collector.js.map +1 -0
  163. package/lib/module/babel/index.js +51 -0
  164. package/lib/module/babel/index.js.map +1 -0
  165. package/lib/module/babel/plugin.js +220 -0
  166. package/lib/module/babel/plugin.js.map +1 -0
  167. package/lib/module/babel/types.js +476 -0
  168. package/lib/module/babel/types.js.map +1 -0
  169. package/lib/module/bundle/index.js +205 -0
  170. package/lib/module/bundle/index.js.map +1 -0
  171. package/lib/module/cache/CacheManager.js +106 -6
  172. package/lib/module/cache/CacheManager.js.map +1 -1
  173. package/lib/module/cli/commands/analyze.js +166 -0
  174. package/lib/module/cli/commands/analyze.js.map +1 -0
  175. package/lib/module/cli/commands/bundle.js +208 -0
  176. package/lib/module/cli/commands/bundle.js.map +1 -0
  177. package/lib/module/cli/index.js +140 -0
  178. package/lib/module/cli/index.js.map +1 -0
  179. package/lib/module/cli/parser.js +251 -0
  180. package/lib/module/cli/parser.js.map +1 -0
  181. package/lib/module/cli/types.js +36 -0
  182. package/lib/module/cli/types.js.map +1 -0
  183. package/lib/module/components/index.js +27 -1
  184. package/lib/module/components/index.js.map +1 -1
  185. package/lib/module/config/ConfigManager.js +173 -0
  186. package/lib/module/config/ConfigManager.js.map +1 -0
  187. package/lib/module/config/index.js +28 -0
  188. package/lib/module/config/index.js.map +1 -0
  189. package/lib/module/config/types.js +49 -0
  190. package/lib/module/config/types.js.map +1 -0
  191. package/lib/module/createIconSet.js +49 -11
  192. package/lib/module/createIconSet.js.map +1 -1
  193. package/lib/module/explorer/IconExplorer.js +817 -0
  194. package/lib/module/explorer/IconExplorer.js.map +1 -0
  195. package/lib/module/explorer/iconSets.js +291 -0
  196. package/lib/module/explorer/iconSets.js.map +1 -0
  197. package/lib/module/explorer/index.js +42 -0
  198. package/lib/module/explorer/index.js.map +1 -0
  199. package/lib/module/explorer/types.js +2 -0
  200. package/lib/module/explorer/types.js.map +1 -0
  201. package/lib/module/explorer/useExplorer.js +353 -0
  202. package/lib/module/explorer/useExplorer.js.map +1 -0
  203. package/lib/module/index.js +26 -11
  204. package/lib/module/index.js.map +1 -1
  205. package/lib/module/navigation/createDrawerIcon.js +121 -0
  206. package/lib/module/navigation/createDrawerIcon.js.map +1 -0
  207. package/lib/module/navigation/createHeaderIcon.js +175 -0
  208. package/lib/module/navigation/createHeaderIcon.js.map +1 -0
  209. package/lib/module/navigation/createTabBarIcon.js +168 -0
  210. package/lib/module/navigation/createTabBarIcon.js.map +1 -0
  211. package/lib/module/navigation/index.js +59 -0
  212. package/lib/module/navigation/index.js.map +1 -0
  213. package/lib/module/navigation/types.js +88 -0
  214. package/lib/module/navigation/types.js.map +1 -0
  215. package/lib/module/navigation/useNavigationIcon.js +121 -0
  216. package/lib/module/navigation/useNavigationIcon.js.map +1 -0
  217. package/lib/module/network/IconifyAPI.js +152 -14
  218. package/lib/module/network/IconifyAPI.js.map +1 -1
  219. package/lib/module/network/index.js +1 -1
  220. package/lib/module/network/index.js.map +1 -1
  221. package/lib/module/performance/PerformanceMonitor.js +317 -0
  222. package/lib/module/performance/PerformanceMonitor.js.map +1 -0
  223. package/lib/module/performance/index.js +26 -0
  224. package/lib/module/performance/index.js.map +1 -0
  225. package/lib/module/performance/types.js +2 -0
  226. package/lib/module/performance/types.js.map +1 -0
  227. package/lib/module/placeholder/PlaceholderFactory.js +105 -0
  228. package/lib/module/placeholder/PlaceholderFactory.js.map +1 -0
  229. package/lib/module/placeholder/Pulse.js +70 -0
  230. package/lib/module/placeholder/Pulse.js.map +1 -0
  231. package/lib/module/placeholder/Shimmer.js +88 -0
  232. package/lib/module/placeholder/Shimmer.js.map +1 -0
  233. package/lib/module/placeholder/Skeleton.js +45 -0
  234. package/lib/module/placeholder/Skeleton.js.map +1 -0
  235. package/lib/module/placeholder/index.js +15 -0
  236. package/lib/module/placeholder/index.js.map +1 -0
  237. package/lib/module/placeholder/types.js +34 -0
  238. package/lib/module/placeholder/types.js.map +1 -0
  239. package/lib/module/theme/IconThemeProvider.js +89 -0
  240. package/lib/module/theme/IconThemeProvider.js.map +1 -0
  241. package/lib/module/theme/context.js +47 -0
  242. package/lib/module/theme/context.js.map +1 -0
  243. package/lib/module/theme/index.js +19 -0
  244. package/lib/module/theme/index.js.map +1 -0
  245. package/lib/module/theme/types.js +33 -0
  246. package/lib/module/theme/types.js.map +1 -0
  247. package/lib/module/theme/useIconTheme.js +114 -0
  248. package/lib/module/theme/useIconTheme.js.map +1 -0
  249. package/lib/typescript/IconRenderer.d.ts +1 -1
  250. package/lib/typescript/IconRenderer.d.ts.map +1 -1
  251. package/lib/typescript/accessibility/AccessibilityProvider.d.ts +57 -0
  252. package/lib/typescript/accessibility/AccessibilityProvider.d.ts.map +1 -0
  253. package/lib/typescript/accessibility/index.d.ts +37 -0
  254. package/lib/typescript/accessibility/index.d.ts.map +1 -0
  255. package/lib/typescript/accessibility/types.d.ts +130 -0
  256. package/lib/typescript/accessibility/types.d.ts.map +1 -0
  257. package/lib/typescript/accessibility/useAccessibleIcon.d.ts +111 -0
  258. package/lib/typescript/accessibility/useAccessibleIcon.d.ts.map +1 -0
  259. package/lib/typescript/accessibility/utils.d.ts +29 -0
  260. package/lib/typescript/accessibility/utils.d.ts.map +1 -0
  261. package/lib/typescript/alias/Icon.d.ts +38 -0
  262. package/lib/typescript/alias/Icon.d.ts.map +1 -0
  263. package/lib/typescript/alias/IconAliasContext.d.ts +52 -0
  264. package/lib/typescript/alias/IconAliasContext.d.ts.map +1 -0
  265. package/lib/typescript/alias/createIconAliases.d.ts +77 -0
  266. package/lib/typescript/alias/createIconAliases.d.ts.map +1 -0
  267. package/lib/typescript/alias/index.d.ts +36 -0
  268. package/lib/typescript/alias/index.d.ts.map +1 -0
  269. package/lib/typescript/alias/types.d.ts +115 -0
  270. package/lib/typescript/alias/types.d.ts.map +1 -0
  271. package/lib/typescript/animated/AnimatedIcon.d.ts +45 -0
  272. package/lib/typescript/animated/AnimatedIcon.d.ts.map +1 -0
  273. package/lib/typescript/animated/index.d.ts +70 -0
  274. package/lib/typescript/animated/index.d.ts.map +1 -0
  275. package/lib/typescript/animated/presets.d.ts +35 -0
  276. package/lib/typescript/animated/presets.d.ts.map +1 -0
  277. package/lib/typescript/animated/types.d.ts +196 -0
  278. package/lib/typescript/animated/types.d.ts.map +1 -0
  279. package/lib/typescript/animated/useIconAnimation.d.ts +64 -0
  280. package/lib/typescript/animated/useIconAnimation.d.ts.map +1 -0
  281. package/lib/typescript/babel/ast-utils.d.ts +52 -0
  282. package/lib/typescript/babel/ast-utils.d.ts.map +1 -0
  283. package/lib/typescript/babel/cache-writer.d.ts +56 -0
  284. package/lib/typescript/babel/cache-writer.d.ts.map +1 -0
  285. package/lib/typescript/babel/collector.d.ts +107 -0
  286. package/lib/typescript/babel/collector.d.ts.map +1 -0
  287. package/lib/typescript/babel/index.d.ts +47 -0
  288. package/lib/typescript/babel/index.d.ts.map +1 -0
  289. package/lib/typescript/babel/plugin.d.ts +17 -0
  290. package/lib/typescript/babel/plugin.d.ts.map +1 -0
  291. package/lib/typescript/babel/types.d.ts +129 -0
  292. package/lib/typescript/babel/types.d.ts.map +1 -0
  293. package/lib/typescript/bundle/index.d.ts +161 -0
  294. package/lib/typescript/bundle/index.d.ts.map +1 -0
  295. package/lib/typescript/cache/CacheManager.d.ts +52 -4
  296. package/lib/typescript/cache/CacheManager.d.ts.map +1 -1
  297. package/lib/typescript/cli/commands/analyze.d.ts +10 -0
  298. package/lib/typescript/cli/commands/analyze.d.ts.map +1 -0
  299. package/lib/typescript/cli/commands/bundle.d.ts +10 -0
  300. package/lib/typescript/cli/commands/bundle.d.ts.map +1 -0
  301. package/lib/typescript/cli/index.d.ts +7 -0
  302. package/lib/typescript/cli/index.d.ts.map +1 -0
  303. package/lib/typescript/cli/parser.d.ts +18 -0
  304. package/lib/typescript/cli/parser.d.ts.map +1 -0
  305. package/lib/typescript/cli/types.d.ts +157 -0
  306. package/lib/typescript/cli/types.d.ts.map +1 -0
  307. package/lib/typescript/components/Academicons.d.ts +1 -1
  308. package/lib/typescript/components/AkarIcons.d.ts +1 -1
  309. package/lib/typescript/components/AntDesign.d.ts +1 -1
  310. package/lib/typescript/components/Arcticons.d.ts +1 -1
  311. package/lib/typescript/components/Basil.d.ts +1 -1
  312. package/lib/typescript/components/Bi.d.ts +1 -1
  313. package/lib/typescript/components/BitcoinIcons.d.ts +1 -1
  314. package/lib/typescript/components/Bpmn.d.ts +1 -1
  315. package/lib/typescript/components/Brandico.d.ts +1 -1
  316. package/lib/typescript/components/Bx.d.ts +1 -1
  317. package/lib/typescript/components/Bxl.d.ts +1 -1
  318. package/lib/typescript/components/Bxs.d.ts +1 -1
  319. package/lib/typescript/components/Bytesize.d.ts +1 -1
  320. package/lib/typescript/components/Carbon.d.ts +1 -1
  321. package/lib/typescript/components/Catppuccin.d.ts +1 -1
  322. package/lib/typescript/components/Cbi.d.ts +1 -1
  323. package/lib/typescript/components/Charm.d.ts +1 -1
  324. package/lib/typescript/components/Ci.d.ts +1 -1
  325. package/lib/typescript/components/Cib.d.ts +1 -1
  326. package/lib/typescript/components/Cif.d.ts +1 -1
  327. package/lib/typescript/components/Cil.d.ts +1 -1
  328. package/lib/typescript/components/CircleFlags.d.ts +1 -1
  329. package/lib/typescript/components/Circum.d.ts +1 -1
  330. package/lib/typescript/components/Clarity.d.ts +1 -1
  331. package/lib/typescript/components/Codex.d.ts +1 -1
  332. package/lib/typescript/components/Codicon.d.ts +1 -1
  333. package/lib/typescript/components/Covid.d.ts +1 -1
  334. package/lib/typescript/components/Cryptocurrency.d.ts +1 -1
  335. package/lib/typescript/components/CryptocurrencyColor.d.ts +1 -1
  336. package/lib/typescript/components/Cuida.d.ts +1 -1
  337. package/lib/typescript/components/Dashicons.d.ts +1 -1
  338. package/lib/typescript/components/Devicon.d.ts +1 -1
  339. package/lib/typescript/components/DeviconPlain.d.ts +1 -1
  340. package/lib/typescript/components/DinkieIcons.d.ts +1 -1
  341. package/lib/typescript/components/DuoIcons.d.ts +1 -1
  342. package/lib/typescript/components/Ei.d.ts +1 -1
  343. package/lib/typescript/components/El.d.ts +1 -1
  344. package/lib/typescript/components/EmojioneMonotone.d.ts +1 -1
  345. package/lib/typescript/components/Entypo.d.ts +1 -1
  346. package/lib/typescript/components/EntypoSocial.d.ts +1 -1
  347. package/lib/typescript/components/EosIcons.d.ts +1 -1
  348. package/lib/typescript/components/Ep.d.ts +1 -1
  349. package/lib/typescript/components/Et.d.ts +1 -1
  350. package/lib/typescript/components/Eva.d.ts +1 -1
  351. package/lib/typescript/components/F7.d.ts +1 -1
  352. package/lib/typescript/components/Fa.d.ts +1 -1
  353. package/lib/typescript/components/Fa6Brands.d.ts +1 -1
  354. package/lib/typescript/components/Fa6Regular.d.ts +1 -1
  355. package/lib/typescript/components/Fa6Solid.d.ts +1 -1
  356. package/lib/typescript/components/Fa7Brands.d.ts +1 -1
  357. package/lib/typescript/components/Fa7Regular.d.ts +1 -1
  358. package/lib/typescript/components/Fa7Solid.d.ts +1 -1
  359. package/lib/typescript/components/FaBrands.d.ts +1 -1
  360. package/lib/typescript/components/FaRegular.d.ts +1 -1
  361. package/lib/typescript/components/FaSolid.d.ts +1 -1
  362. package/lib/typescript/components/Fad.d.ts +1 -1
  363. package/lib/typescript/components/Famicons.d.ts +1 -1
  364. package/lib/typescript/components/Fe.d.ts +1 -1
  365. package/lib/typescript/components/Feather.d.ts +1 -1
  366. package/lib/typescript/components/FileIcons.d.ts +1 -1
  367. package/lib/typescript/components/Flag.d.ts +1 -1
  368. package/lib/typescript/components/Flagpack.d.ts +1 -1
  369. package/lib/typescript/components/FlatUi.d.ts +1 -1
  370. package/lib/typescript/components/Flowbite.d.ts +1 -1
  371. package/lib/typescript/components/Fluent.d.ts +1 -1
  372. package/lib/typescript/components/FluentColor.d.ts +1 -1
  373. package/lib/typescript/components/FluentEmoji.d.ts +1 -1
  374. package/lib/typescript/components/FluentEmojiFlat.d.ts +1 -1
  375. package/lib/typescript/components/FluentEmojiHighContrast.d.ts +1 -1
  376. package/lib/typescript/components/FluentMdl2.d.ts +1 -1
  377. package/lib/typescript/components/Fontelico.d.ts +1 -1
  378. package/lib/typescript/components/Fontisto.d.ts +1 -1
  379. package/lib/typescript/components/Formkit.d.ts +1 -1
  380. package/lib/typescript/components/Foundation.d.ts +1 -1
  381. package/lib/typescript/components/Gala.d.ts +1 -1
  382. package/lib/typescript/components/GameIcons.d.ts +1 -1
  383. package/lib/typescript/components/Garden.d.ts +1 -1
  384. package/lib/typescript/components/Geo.d.ts +1 -1
  385. package/lib/typescript/components/Gg.d.ts +1 -1
  386. package/lib/typescript/components/Gis.d.ts +1 -1
  387. package/lib/typescript/components/GravityUi.d.ts +1 -1
  388. package/lib/typescript/components/Gridicons.d.ts +1 -1
  389. package/lib/typescript/components/GrommetIcons.d.ts +1 -1
  390. package/lib/typescript/components/Guidance.d.ts +1 -1
  391. package/lib/typescript/components/Healthicons.d.ts +1 -1
  392. package/lib/typescript/components/Heroicons.d.ts +1 -1
  393. package/lib/typescript/components/HeroiconsOutline.d.ts +1 -1
  394. package/lib/typescript/components/HeroiconsSolid.d.ts +1 -1
  395. package/lib/typescript/components/Hugeicons.d.ts +1 -1
  396. package/lib/typescript/components/Humbleicons.d.ts +1 -1
  397. package/lib/typescript/components/Ic.d.ts +1 -1
  398. package/lib/typescript/components/IcomoonFree.d.ts +1 -1
  399. package/lib/typescript/components/IconPark.d.ts +1 -1
  400. package/lib/typescript/components/IconParkOutline.d.ts +1 -1
  401. package/lib/typescript/components/IconParkSolid.d.ts +1 -1
  402. package/lib/typescript/components/IconParkTwotone.d.ts +1 -1
  403. package/lib/typescript/components/Iconamoon.d.ts +1 -1
  404. package/lib/typescript/components/Iconoir.d.ts +1 -1
  405. package/lib/typescript/components/Icons8.d.ts +1 -1
  406. package/lib/typescript/components/Il.d.ts +1 -1
  407. package/lib/typescript/components/Ion.d.ts +1 -1
  408. package/lib/typescript/components/Iwwa.d.ts +1 -1
  409. package/lib/typescript/components/Ix.d.ts +1 -1
  410. package/lib/typescript/components/Jam.d.ts +1 -1
  411. package/lib/typescript/components/La.d.ts +1 -1
  412. package/lib/typescript/components/LetsIcons.d.ts +1 -1
  413. package/lib/typescript/components/LineMd.d.ts +1 -1
  414. package/lib/typescript/components/Lineicons.d.ts +1 -1
  415. package/lib/typescript/components/Logos.d.ts +1 -1
  416. package/lib/typescript/components/Ls.d.ts +1 -1
  417. package/lib/typescript/components/Lsicon.d.ts +1 -1
  418. package/lib/typescript/components/Lucide.d.ts +1 -1
  419. package/lib/typescript/components/LucideLab.d.ts +1 -1
  420. package/lib/typescript/components/Mage.d.ts +1 -1
  421. package/lib/typescript/components/Majesticons.d.ts +1 -1
  422. package/lib/typescript/components/Maki.d.ts +1 -1
  423. package/lib/typescript/components/Map.d.ts +1 -1
  424. package/lib/typescript/components/Marketeq.d.ts +1 -1
  425. package/lib/typescript/components/MaterialIconTheme.d.ts +1 -1
  426. package/lib/typescript/components/MaterialSymbols.d.ts +1 -1
  427. package/lib/typescript/components/MaterialSymbolsLight.d.ts +1 -1
  428. package/lib/typescript/components/Mdi.d.ts +1 -1
  429. package/lib/typescript/components/MdiLight.d.ts +1 -1
  430. package/lib/typescript/components/MedicalIcon.d.ts +1 -1
  431. package/lib/typescript/components/Memory.d.ts +1 -1
  432. package/lib/typescript/components/Meteocons.d.ts +1 -1
  433. package/lib/typescript/components/MeteorIcons.d.ts +1 -1
  434. package/lib/typescript/components/Mi.d.ts +1 -1
  435. package/lib/typescript/components/Mingcute.d.ts +1 -1
  436. package/lib/typescript/components/MonoIcons.d.ts +1 -1
  437. package/lib/typescript/components/Mynaui.d.ts +1 -1
  438. package/lib/typescript/components/Nimbus.d.ts +1 -1
  439. package/lib/typescript/components/Nonicons.d.ts +1 -1
  440. package/lib/typescript/components/Nrk.d.ts +1 -1
  441. package/lib/typescript/components/Octicon.d.ts +1 -1
  442. package/lib/typescript/components/Oi.d.ts +1 -1
  443. package/lib/typescript/components/Ooui.d.ts +1 -1
  444. package/lib/typescript/components/Oui.d.ts +1 -1
  445. package/lib/typescript/components/Pajamas.d.ts +1 -1
  446. package/lib/typescript/components/Pepicons.d.ts +1 -1
  447. package/lib/typescript/components/PepiconsPencil.d.ts +1 -1
  448. package/lib/typescript/components/PepiconsPop.d.ts +1 -1
  449. package/lib/typescript/components/PepiconsPrint.d.ts +1 -1
  450. package/lib/typescript/components/Ph.d.ts +1 -1
  451. package/lib/typescript/components/Picon.d.ts +1 -1
  452. package/lib/typescript/components/Pixel.d.ts +1 -1
  453. package/lib/typescript/components/Pixelarticons.d.ts +1 -1
  454. package/lib/typescript/components/Prime.d.ts +1 -1
  455. package/lib/typescript/components/Proicons.d.ts +1 -1
  456. package/lib/typescript/components/Ps.d.ts +1 -1
  457. package/lib/typescript/components/QlementineIcons.d.ts +1 -1
  458. package/lib/typescript/components/Quill.d.ts +1 -1
  459. package/lib/typescript/components/RadixIcons.d.ts +1 -1
  460. package/lib/typescript/components/Raphael.d.ts +1 -1
  461. package/lib/typescript/components/Ri.d.ts +1 -1
  462. package/lib/typescript/components/RivetIcons.d.ts +1 -1
  463. package/lib/typescript/components/Roentgen.d.ts +1 -1
  464. package/lib/typescript/components/Si.d.ts +1 -1
  465. package/lib/typescript/components/SiGlyph.d.ts +1 -1
  466. package/lib/typescript/components/Sidekickicons.d.ts +1 -1
  467. package/lib/typescript/components/SimpleIcons.d.ts +1 -1
  468. package/lib/typescript/components/SimpleLineIcons.d.ts +1 -1
  469. package/lib/typescript/components/SkillIcons.d.ts +1 -1
  470. package/lib/typescript/components/Solar.d.ts +1 -1
  471. package/lib/typescript/components/Stash.d.ts +1 -1
  472. package/lib/typescript/components/Streamline.d.ts +1 -1
  473. package/lib/typescript/components/StreamlineBlock.d.ts +1 -1
  474. package/lib/typescript/components/StreamlineColor.d.ts +1 -1
  475. package/lib/typescript/components/StreamlineCyber.d.ts +1 -1
  476. package/lib/typescript/components/StreamlineCyberColor.d.ts +1 -1
  477. package/lib/typescript/components/StreamlineEmojis.d.ts +1 -1
  478. package/lib/typescript/components/StreamlineFlex.d.ts +1 -1
  479. package/lib/typescript/components/StreamlineFlexColor.d.ts +1 -1
  480. package/lib/typescript/components/StreamlineFreehand.d.ts +1 -1
  481. package/lib/typescript/components/StreamlineFreehandColor.d.ts +1 -1
  482. package/lib/typescript/components/StreamlineKameleonColor.d.ts +1 -1
  483. package/lib/typescript/components/StreamlineLogos.d.ts +1 -1
  484. package/lib/typescript/components/StreamlinePixel.d.ts +1 -1
  485. package/lib/typescript/components/StreamlinePlump.d.ts +1 -1
  486. package/lib/typescript/components/StreamlinePlumpColor.d.ts +1 -1
  487. package/lib/typescript/components/StreamlineSharp.d.ts +1 -1
  488. package/lib/typescript/components/StreamlineSharpColor.d.ts +1 -1
  489. package/lib/typescript/components/StreamlineStickiesColor.d.ts +1 -1
  490. package/lib/typescript/components/StreamlineUltimate.d.ts +1 -1
  491. package/lib/typescript/components/StreamlineUltimateColor.d.ts +1 -1
  492. package/lib/typescript/components/Subway.d.ts +1 -1
  493. package/lib/typescript/components/SvgSpinners.d.ts +1 -1
  494. package/lib/typescript/components/SystemUicons.d.ts +1 -1
  495. package/lib/typescript/components/Tabler.d.ts +1 -1
  496. package/lib/typescript/components/Tdesign.d.ts +1 -1
  497. package/lib/typescript/components/Teenyicons.d.ts +1 -1
  498. package/lib/typescript/components/Temaki.d.ts +1 -1
  499. package/lib/typescript/components/Token.d.ts +1 -1
  500. package/lib/typescript/components/TokenBranded.d.ts +1 -1
  501. package/lib/typescript/components/Topcoat.d.ts +1 -1
  502. package/lib/typescript/components/Typcn.d.ts +1 -1
  503. package/lib/typescript/components/Uil.d.ts +1 -1
  504. package/lib/typescript/components/Uim.d.ts +1 -1
  505. package/lib/typescript/components/Uis.d.ts +1 -1
  506. package/lib/typescript/components/Uit.d.ts +1 -1
  507. package/lib/typescript/components/Uiw.d.ts +1 -1
  508. package/lib/typescript/components/Unjs.d.ts +1 -1
  509. package/lib/typescript/components/Vaadin.d.ts +1 -1
  510. package/lib/typescript/components/Vs.d.ts +1 -1
  511. package/lib/typescript/components/VscodeIcons.d.ts +1 -1
  512. package/lib/typescript/components/Websymbol.d.ts +1 -1
  513. package/lib/typescript/components/Weui.d.ts +1 -1
  514. package/lib/typescript/components/Whh.d.ts +1 -1
  515. package/lib/typescript/components/Wi.d.ts +1 -1
  516. package/lib/typescript/components/Wpf.d.ts +1 -1
  517. package/lib/typescript/components/Zmdi.d.ts +1 -1
  518. package/lib/typescript/components/Zondicons.d.ts +1 -1
  519. package/lib/typescript/components/index.d.ts +38 -1
  520. package/lib/typescript/components/index.d.ts.map +1 -1
  521. package/lib/typescript/config/ConfigManager.d.ts +102 -0
  522. package/lib/typescript/config/ConfigManager.d.ts.map +1 -0
  523. package/lib/typescript/config/index.d.ts +22 -0
  524. package/lib/typescript/config/index.d.ts.map +1 -0
  525. package/lib/typescript/config/types.d.ts +112 -0
  526. package/lib/typescript/config/types.d.ts.map +1 -0
  527. package/lib/typescript/createIconSet.d.ts +1 -1
  528. package/lib/typescript/createIconSet.d.ts.map +1 -1
  529. package/lib/typescript/explorer/IconExplorer.d.ts +54 -0
  530. package/lib/typescript/explorer/IconExplorer.d.ts.map +1 -0
  531. package/lib/typescript/explorer/iconSets.d.ts +35 -0
  532. package/lib/typescript/explorer/iconSets.d.ts.map +1 -0
  533. package/lib/typescript/explorer/index.d.ts +33 -0
  534. package/lib/typescript/explorer/index.d.ts.map +1 -0
  535. package/lib/typescript/explorer/types.d.ts +329 -0
  536. package/lib/typescript/explorer/types.d.ts.map +1 -0
  537. package/lib/typescript/explorer/useExplorer.d.ts +18 -0
  538. package/lib/typescript/explorer/useExplorer.d.ts.map +1 -0
  539. package/lib/typescript/index.d.ts +25 -4
  540. package/lib/typescript/index.d.ts.map +1 -1
  541. package/lib/typescript/navigation/createDrawerIcon.d.ts +74 -0
  542. package/lib/typescript/navigation/createDrawerIcon.d.ts.map +1 -0
  543. package/lib/typescript/navigation/createHeaderIcon.d.ts +145 -0
  544. package/lib/typescript/navigation/createHeaderIcon.d.ts.map +1 -0
  545. package/lib/typescript/navigation/createTabBarIcon.d.ts +99 -0
  546. package/lib/typescript/navigation/createTabBarIcon.d.ts.map +1 -0
  547. package/lib/typescript/navigation/index.d.ts +51 -0
  548. package/lib/typescript/navigation/index.d.ts.map +1 -0
  549. package/lib/typescript/navigation/types.d.ts +149 -0
  550. package/lib/typescript/navigation/types.d.ts.map +1 -0
  551. package/lib/typescript/navigation/useNavigationIcon.d.ts +91 -0
  552. package/lib/typescript/navigation/useNavigationIcon.d.ts.map +1 -0
  553. package/lib/typescript/network/IconifyAPI.d.ts +32 -0
  554. package/lib/typescript/network/IconifyAPI.d.ts.map +1 -1
  555. package/lib/typescript/network/index.d.ts +2 -1
  556. package/lib/typescript/network/index.d.ts.map +1 -1
  557. package/lib/typescript/performance/PerformanceMonitor.d.ts +76 -0
  558. package/lib/typescript/performance/PerformanceMonitor.d.ts.map +1 -0
  559. package/lib/typescript/performance/index.d.ts +21 -0
  560. package/lib/typescript/performance/index.d.ts.map +1 -0
  561. package/lib/typescript/performance/types.d.ts +156 -0
  562. package/lib/typescript/performance/types.d.ts.map +1 -0
  563. package/lib/typescript/placeholder/PlaceholderFactory.d.ts +44 -0
  564. package/lib/typescript/placeholder/PlaceholderFactory.d.ts.map +1 -0
  565. package/lib/typescript/placeholder/Pulse.d.ts +18 -0
  566. package/lib/typescript/placeholder/Pulse.d.ts.map +1 -0
  567. package/lib/typescript/placeholder/Shimmer.d.ts +19 -0
  568. package/lib/typescript/placeholder/Shimmer.d.ts.map +1 -0
  569. package/lib/typescript/placeholder/Skeleton.d.ts +18 -0
  570. package/lib/typescript/placeholder/Skeleton.d.ts.map +1 -0
  571. package/lib/typescript/placeholder/index.d.ts +12 -0
  572. package/lib/typescript/placeholder/index.d.ts.map +1 -0
  573. package/lib/typescript/placeholder/types.d.ts +63 -0
  574. package/lib/typescript/placeholder/types.d.ts.map +1 -0
  575. package/lib/typescript/theme/IconThemeProvider.d.ts +64 -0
  576. package/lib/typescript/theme/IconThemeProvider.d.ts.map +1 -0
  577. package/lib/typescript/theme/context.d.ts +24 -0
  578. package/lib/typescript/theme/context.d.ts.map +1 -0
  579. package/lib/typescript/theme/index.d.ts +10 -0
  580. package/lib/typescript/theme/index.d.ts.map +1 -0
  581. package/lib/typescript/theme/types.d.ts +85 -0
  582. package/lib/typescript/theme/types.d.ts.map +1 -0
  583. package/lib/typescript/theme/useIconTheme.d.ts +78 -0
  584. package/lib/typescript/theme/useIconTheme.d.ts.map +1 -0
  585. package/lib/typescript/types/index.d.ts +58 -1
  586. package/lib/typescript/types/index.d.ts.map +1 -1
  587. package/package.json +41 -3
  588. package/src/IconRenderer.tsx +91 -4
  589. package/src/accessibility/AccessibilityProvider.tsx +220 -0
  590. package/src/accessibility/index.ts +63 -0
  591. package/src/accessibility/types.ts +152 -0
  592. package/src/accessibility/useAccessibleIcon.ts +220 -0
  593. package/src/accessibility/utils.ts +180 -0
  594. package/src/alias/Icon.tsx +113 -0
  595. package/src/alias/IconAliasContext.tsx +180 -0
  596. package/src/alias/createIconAliases.tsx +233 -0
  597. package/src/alias/index.ts +59 -0
  598. package/src/alias/types.ts +132 -0
  599. package/src/animated/AnimatedIcon.tsx +116 -0
  600. package/src/animated/index.ts +97 -0
  601. package/src/animated/presets.ts +211 -0
  602. package/src/animated/types.ts +239 -0
  603. package/src/animated/useIconAnimation.ts +383 -0
  604. package/src/babel/ast-utils.ts +219 -0
  605. package/src/babel/cache-writer.ts +323 -0
  606. package/src/babel/collector.ts +224 -0
  607. package/src/babel/index.ts +60 -0
  608. package/src/babel/plugin.ts +254 -0
  609. package/src/babel/types.ts +717 -0
  610. package/src/bundle/index.ts +313 -0
  611. package/src/cache/CacheManager.ts +123 -6
  612. package/src/cli/commands/analyze.ts +195 -0
  613. package/src/cli/commands/bundle.ts +231 -0
  614. package/src/cli/index.ts +153 -0
  615. package/src/cli/parser.ts +275 -0
  616. package/src/cli/types.ts +187 -0
  617. package/src/components/index.ts +52 -1
  618. package/src/config/ConfigManager.ts +196 -0
  619. package/src/config/index.ts +34 -0
  620. package/src/config/types.ts +149 -0
  621. package/src/createIconSet.tsx +48 -9
  622. package/src/explorer/IconExplorer.tsx +844 -0
  623. package/src/explorer/iconSets.ts +334 -0
  624. package/src/explorer/index.ts +64 -0
  625. package/src/explorer/types.ts +392 -0
  626. package/src/explorer/useExplorer.ts +390 -0
  627. package/src/index.ts +218 -9
  628. package/src/navigation/createDrawerIcon.tsx +113 -0
  629. package/src/navigation/createHeaderIcon.tsx +213 -0
  630. package/src/navigation/createTabBarIcon.tsx +180 -0
  631. package/src/navigation/index.ts +80 -0
  632. package/src/navigation/types.ts +155 -0
  633. package/src/navigation/useNavigationIcon.tsx +156 -0
  634. package/src/network/IconifyAPI.ts +182 -14
  635. package/src/network/index.ts +11 -1
  636. package/src/performance/PerformanceMonitor.ts +367 -0
  637. package/src/performance/index.ts +39 -0
  638. package/src/performance/types.ts +185 -0
  639. package/src/placeholder/PlaceholderFactory.tsx +133 -0
  640. package/src/placeholder/Pulse.tsx +86 -0
  641. package/src/placeholder/Shimmer.tsx +104 -0
  642. package/src/placeholder/Skeleton.tsx +52 -0
  643. package/src/placeholder/index.ts +21 -0
  644. package/src/placeholder/types.ts +78 -0
  645. package/src/theme/IconThemeProvider.tsx +94 -0
  646. package/src/theme/context.ts +51 -0
  647. package/src/theme/index.ts +19 -0
  648. package/src/theme/types.ts +108 -0
  649. package/src/theme/useIconTheme.ts +119 -0
  650. package/src/types/index.ts +78 -1
  651. package/lib/commonjs/components/Phosphor.js +0 -493
  652. package/lib/commonjs/components/Phosphor.js.map +0 -1
  653. package/lib/module/components/Phosphor.js +0 -488
  654. package/lib/module/components/Phosphor.js.map +0 -1
  655. package/lib/typescript/components/Phosphor.d.ts +0 -472
  656. package/lib/typescript/components/Phosphor.d.ts.map +0 -1
  657. package/src/components/Phosphor.tsx +0 -506
@@ -4,10 +4,12 @@
4
4
  */
5
5
 
6
6
  import React, { useState, useEffect, useCallback, useRef, useMemo } from 'react';
7
- import { View, StyleSheet } from 'react-native';
7
+ import { View, StyleSheet, Animated } from 'react-native';
8
8
  import { SvgXml } from 'react-native-svg';
9
9
  import { CacheManager } from './cache/CacheManager';
10
10
  import { fetchIcon } from './network/IconifyAPI';
11
+ import { PlaceholderFactory } from './placeholder';
12
+ import { useIconAnimation } from './animated/useIconAnimation';
11
13
  /**
12
14
  * Escape special characters for XML attribute values
13
15
  * Prevents XSS attacks when user input is used as color prop
@@ -26,10 +28,21 @@ export function IconRenderer({
26
28
  flip,
27
29
  fallback,
28
30
  fallbackDelay = 0,
31
+ placeholder,
32
+ placeholderColor,
33
+ placeholderDuration,
29
34
  onLoad,
30
35
  onError,
31
36
  accessibilityLabel,
32
- testID
37
+ testID,
38
+ // Animation props
39
+ animate,
40
+ animationDuration,
41
+ animationLoop,
42
+ animationEasing,
43
+ animationDelay,
44
+ autoPlay = true,
45
+ onAnimationComplete
33
46
  }) {
34
47
  const [svg, setSvg] = useState(null);
35
48
  const [state, setState] = useState('idle');
@@ -43,6 +56,20 @@ export function IconRenderer({
43
56
  const iconWidth = propWidth ?? size;
44
57
  const iconHeight = propHeight ?? size;
45
58
 
59
+ // Animation hook
60
+ const {
61
+ animatedStyle,
62
+ hasAnimation
63
+ } = useIconAnimation({
64
+ animation: animate,
65
+ duration: animationDuration,
66
+ loop: animationLoop,
67
+ easing: animationEasing,
68
+ delay: animationDelay,
69
+ autoPlay,
70
+ onComplete: onAnimationComplete
71
+ });
72
+
46
73
  // Load icon
47
74
  const loadIcon = useCallback(async () => {
48
75
  if (!iconName) return;
@@ -149,8 +176,30 @@ export function IconRenderer({
149
176
  return svg.replace(/currentColor/g, safeColor).replace(/<svg/, `<svg fill="${safeColor}"`);
150
177
  }, [svg, color]);
151
178
 
152
- // Render fallback
153
- if (state === 'loading' && showFallback || state === 'error') {
179
+ // Determine if we should show placeholder/fallback
180
+ const shouldShowPlaceholder = state === 'loading' && showFallback || state === 'error';
181
+
182
+ // Render placeholder or fallback during loading/error
183
+ if (shouldShowPlaceholder) {
184
+ // Priority: placeholder > fallback
185
+ if (placeholder !== undefined) {
186
+ return /*#__PURE__*/React.createElement(View, {
187
+ style: [{
188
+ width: iconWidth,
189
+ height: iconHeight
190
+ }, style],
191
+ accessibilityLabel: accessibilityLabel,
192
+ testID: testID
193
+ }, /*#__PURE__*/React.createElement(PlaceholderFactory, {
194
+ type: placeholder,
195
+ width: iconWidth,
196
+ height: iconHeight,
197
+ color: placeholderColor,
198
+ duration: placeholderDuration
199
+ }));
200
+ }
201
+
202
+ // Fallback for backwards compatibility (deprecated)
154
203
  if (fallback) {
155
204
  return /*#__PURE__*/React.createElement(View, {
156
205
  style: [{
@@ -161,7 +210,8 @@ export function IconRenderer({
161
210
  testID: testID
162
211
  }, fallback);
163
212
  }
164
- // Return empty view if no fallback
213
+
214
+ // Return empty view if no placeholder/fallback
165
215
  return /*#__PURE__*/React.createElement(View, {
166
216
  style: [{
167
217
  width: iconWidth,
@@ -174,6 +224,25 @@ export function IconRenderer({
174
224
 
175
225
  // Render icon
176
226
  if (colorizedSvg) {
227
+ // Render with animation wrapper if animation is enabled
228
+ if (hasAnimation) {
229
+ return /*#__PURE__*/React.createElement(Animated.View, {
230
+ style: [styles.container, {
231
+ width: iconWidth,
232
+ height: iconHeight,
233
+ transform: transformStyle
234
+ }, style, animatedStyle],
235
+ accessibilityLabel: accessibilityLabel,
236
+ accessibilityRole: "image",
237
+ testID: testID
238
+ }, /*#__PURE__*/React.createElement(SvgXml, {
239
+ xml: colorizedSvg,
240
+ width: iconWidth,
241
+ height: iconHeight
242
+ }));
243
+ }
244
+
245
+ // Render without animation
177
246
  return /*#__PURE__*/React.createElement(View, {
178
247
  style: [styles.container, {
179
248
  width: iconWidth,
@@ -190,6 +259,24 @@ export function IconRenderer({
190
259
  }));
191
260
  }
192
261
 
262
+ // Show placeholder immediately if set (no delay), otherwise empty view
263
+ if (placeholder !== undefined && state === 'loading') {
264
+ return /*#__PURE__*/React.createElement(View, {
265
+ style: [{
266
+ width: iconWidth,
267
+ height: iconHeight
268
+ }, style],
269
+ accessibilityLabel: accessibilityLabel,
270
+ testID: testID
271
+ }, /*#__PURE__*/React.createElement(PlaceholderFactory, {
272
+ type: placeholder,
273
+ width: iconWidth,
274
+ height: iconHeight,
275
+ color: placeholderColor,
276
+ duration: placeholderDuration
277
+ }));
278
+ }
279
+
193
280
  // Return empty view while loading (before fallback delay)
194
281
  return /*#__PURE__*/React.createElement(View, {
195
282
  style: [{
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","useEffect","useCallback","useRef","useMemo","View","StyleSheet","SvgXml","CacheManager","fetchIcon","escapeXmlAttribute","value","replace","IconRenderer","iconName","size","color","width","propWidth","height","propHeight","style","rotate","flip","fallback","fallbackDelay","onLoad","onError","accessibilityLabel","testID","svg","setSvg","state","setState","showFallback","setShowFallback","mountedRef","fallbackTimerRef","abortControllerRef","isLoadingRef","iconWidth","iconHeight","loadIcon","current","abort","AbortController","cached","get","setTimeout","fetchedSvg","signal","set","error","Error","name","String","clearTimeout","transformStyle","transforms","push","scaleX","scaleY","length","undefined","colorizedSvg","safeColor","createElement","styles","container","transform","accessibilityRole","xml","create","alignItems","justifyContent"],"sourceRoot":"../../src","sources":["IconRenderer.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useState","useEffect","useCallback","useRef","useMemo","View","StyleSheet","Animated","SvgXml","CacheManager","fetchIcon","PlaceholderFactory","useIconAnimation","escapeXmlAttribute","value","replace","IconRenderer","iconName","size","color","width","propWidth","height","propHeight","style","rotate","flip","fallback","fallbackDelay","placeholder","placeholderColor","placeholderDuration","onLoad","onError","accessibilityLabel","testID","animate","animationDuration","animationLoop","animationEasing","animationDelay","autoPlay","onAnimationComplete","svg","setSvg","state","setState","showFallback","setShowFallback","mountedRef","fallbackTimerRef","abortControllerRef","isLoadingRef","iconWidth","iconHeight","animatedStyle","hasAnimation","animation","duration","loop","easing","delay","onComplete","loadIcon","current","abort","AbortController","cached","get","setTimeout","fetchedSvg","signal","set","error","Error","name","String","clearTimeout","transformStyle","transforms","push","scaleX","scaleY","length","undefined","colorizedSvg","safeColor","shouldShowPlaceholder","createElement","type","styles","container","transform","accessibilityRole","xml","create","alignItems","justifyContent"],"sourceRoot":"../../src","sources":["IconRenderer.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,179 @@
1
+ /**
2
+ * Accessibility Provider for rn-iconify
3
+ * Provides accessibility context to all icon components
4
+ */
5
+
6
+ import React, { createContext, useContext, useState, useMemo, useCallback, useEffect } from 'react';
7
+ import { AccessibilityInfo } from 'react-native';
8
+ import { defaultLabelGenerator, adjustForHighContrast } from './utils';
9
+
10
+ /**
11
+ * Default accessibility configuration
12
+ */
13
+ export const DEFAULT_ACCESSIBILITY_CONFIG = {
14
+ autoLabels: true,
15
+ labelGenerator: defaultLabelGenerator,
16
+ highContrast: false,
17
+ respectReducedMotion: true,
18
+ defaultRole: 'image',
19
+ showFocusIndicators: true,
20
+ minTouchTargetSize: 44
21
+ };
22
+
23
+ /**
24
+ * Accessibility context
25
+ */
26
+ export const AccessibilityContext = /*#__PURE__*/createContext(null);
27
+
28
+ /**
29
+ * Props for AccessibilityProvider
30
+ */
31
+
32
+ /**
33
+ * Accessibility Provider Component
34
+ * Wraps your app to provide accessibility features to all icons
35
+ *
36
+ * @example
37
+ * ```tsx
38
+ * import { AccessibilityProvider } from 'rn-iconify';
39
+ *
40
+ * function App() {
41
+ * return (
42
+ * <AccessibilityProvider config={{ autoLabels: true }}>
43
+ * <MyApp />
44
+ * </AccessibilityProvider>
45
+ * );
46
+ * }
47
+ * ```
48
+ */
49
+ export function AccessibilityProvider({
50
+ config: initialConfig,
51
+ children
52
+ }) {
53
+ // Resolved configuration state
54
+ const [config, setConfigState] = useState(() => ({
55
+ ...DEFAULT_ACCESSIBILITY_CONFIG,
56
+ ...initialConfig,
57
+ labelGenerator: initialConfig?.labelGenerator ?? DEFAULT_ACCESSIBILITY_CONFIG.labelGenerator
58
+ }));
59
+
60
+ // System preferences
61
+ const [prefersReducedMotion, setPrefersReducedMotion] = useState(false);
62
+ const [isHighContrast, setIsHighContrast] = useState(false);
63
+
64
+ // Listen for reduced motion preference
65
+ useEffect(() => {
66
+ const checkReducedMotion = async () => {
67
+ try {
68
+ const isReducedMotion = await AccessibilityInfo.isReduceMotionEnabled();
69
+ setPrefersReducedMotion(isReducedMotion);
70
+ } catch {
71
+ // Ignore errors on unsupported platforms
72
+ }
73
+ };
74
+ checkReducedMotion();
75
+ const subscription = AccessibilityInfo.addEventListener('reduceMotionChanged', setPrefersReducedMotion);
76
+ return () => {
77
+ subscription?.remove();
78
+ };
79
+ }, []);
80
+
81
+ // Listen for high contrast preference (iOS only, via bold text as proxy)
82
+ useEffect(() => {
83
+ const checkHighContrast = async () => {
84
+ try {
85
+ // Use bold text as a proxy for high contrast preference
86
+ const isBoldText = await AccessibilityInfo.isBoldTextEnabled();
87
+ setIsHighContrast(isBoldText);
88
+ } catch {
89
+ // Ignore errors on unsupported platforms
90
+ }
91
+ };
92
+ checkHighContrast();
93
+ const subscription = AccessibilityInfo.addEventListener('boldTextChanged', setIsHighContrast);
94
+ return () => {
95
+ subscription?.remove();
96
+ };
97
+ }, []);
98
+
99
+ // Update config handler
100
+ const setConfig = useCallback(newConfig => {
101
+ setConfigState(prev => ({
102
+ ...prev,
103
+ ...newConfig,
104
+ labelGenerator: newConfig.labelGenerator ?? prev.labelGenerator
105
+ }));
106
+ }, []);
107
+
108
+ // Destructure config for stable dependencies
109
+ const {
110
+ autoLabels,
111
+ labelGenerator,
112
+ highContrast,
113
+ respectReducedMotion
114
+ } = config;
115
+
116
+ // Get label for icon
117
+ const getLabel = useCallback((iconName, customLabel) => {
118
+ // Custom label takes precedence
119
+ if (customLabel) return customLabel;
120
+
121
+ // Return undefined if auto-labels are disabled
122
+ if (!autoLabels) return undefined;
123
+
124
+ // Generate label using configured generator
125
+ return labelGenerator(iconName);
126
+ }, [autoLabels, labelGenerator]);
127
+
128
+ // Get contrast-adjusted color
129
+ const getContrastColor = useCallback(color => {
130
+ // Check if high contrast should be applied
131
+ const shouldApplyHighContrast = highContrast || isHighContrast;
132
+ if (shouldApplyHighContrast) {
133
+ return adjustForHighContrast(color);
134
+ }
135
+ return color;
136
+ }, [highContrast, isHighContrast]);
137
+
138
+ // Check if animations should be disabled
139
+ const shouldDisableAnimations = useCallback(() => {
140
+ if (!respectReducedMotion) return false;
141
+ return prefersReducedMotion;
142
+ }, [respectReducedMotion, prefersReducedMotion]);
143
+
144
+ // Context value
145
+ const contextValue = useMemo(() => ({
146
+ config,
147
+ prefersReducedMotion,
148
+ isHighContrast,
149
+ setConfig,
150
+ getLabel,
151
+ getContrastColor,
152
+ shouldDisableAnimations
153
+ }), [config, prefersReducedMotion, isHighContrast, setConfig, getLabel, getContrastColor, shouldDisableAnimations]);
154
+ return /*#__PURE__*/React.createElement(AccessibilityContext.Provider, {
155
+ value: contextValue
156
+ }, children);
157
+ }
158
+
159
+ /**
160
+ * Hook to access accessibility context
161
+ * Throws if used outside AccessibilityProvider
162
+ */
163
+ export function useAccessibilityContext() {
164
+ const context = useContext(AccessibilityContext);
165
+ if (!context) {
166
+ throw new Error('useAccessibilityContext must be used within an AccessibilityProvider');
167
+ }
168
+ return context;
169
+ }
170
+
171
+ /**
172
+ * Hook to safely access accessibility context
173
+ * Returns null if used outside AccessibilityProvider
174
+ */
175
+ export function useAccessibility() {
176
+ return useContext(AccessibilityContext);
177
+ }
178
+ export default AccessibilityProvider;
179
+ //# sourceMappingURL=AccessibilityProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","createContext","useContext","useState","useMemo","useCallback","useEffect","AccessibilityInfo","defaultLabelGenerator","adjustForHighContrast","DEFAULT_ACCESSIBILITY_CONFIG","autoLabels","labelGenerator","highContrast","respectReducedMotion","defaultRole","showFocusIndicators","minTouchTargetSize","AccessibilityContext","AccessibilityProvider","config","initialConfig","children","setConfigState","prefersReducedMotion","setPrefersReducedMotion","isHighContrast","setIsHighContrast","checkReducedMotion","isReducedMotion","isReduceMotionEnabled","subscription","addEventListener","remove","checkHighContrast","isBoldText","isBoldTextEnabled","setConfig","newConfig","prev","getLabel","iconName","customLabel","undefined","getContrastColor","color","shouldApplyHighContrast","shouldDisableAnimations","contextValue","createElement","Provider","value","useAccessibilityContext","context","Error","useAccessibility"],"sourceRoot":"../../../src","sources":["accessibility/AccessibilityProvider.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Accessibility Module for rn-iconify
3
+ * Provides accessibility features for icon components
4
+ *
5
+ * @example
6
+ * ```tsx
7
+ * import { AccessibilityProvider, useAccessibleIcon } from 'rn-iconify';
8
+ *
9
+ * // Wrap your app with AccessibilityProvider
10
+ * function App() {
11
+ * return (
12
+ * <AccessibilityProvider config={{ autoLabels: true, highContrast: false }}>
13
+ * <MyApp />
14
+ * </AccessibilityProvider>
15
+ * );
16
+ * }
17
+ *
18
+ * // Use the hook in your components
19
+ * function MyIcon({ name, size, color }) {
20
+ * const { accessibilityProps, adjustedColor } = useAccessibleIcon({
21
+ * iconName: name,
22
+ * size,
23
+ * color,
24
+ * });
25
+ *
26
+ * return <Icon name={name} size={size} color={adjustedColor} {...accessibilityProps} />;
27
+ * }
28
+ * ```
29
+ */
30
+
31
+ // Types
32
+
33
+ // Provider
34
+ export { AccessibilityProvider, AccessibilityContext, useAccessibilityContext, useAccessibility, DEFAULT_ACCESSIBILITY_CONFIG } from './AccessibilityProvider';
35
+ // Hook
36
+ export { useAccessibleIcon, withAccessibility } from './useAccessibleIcon';
37
+ // Utilities
38
+ export { defaultLabelGenerator, adjustForHighContrast, meetsContrastRequirement, getHighContrastAlternative, calculateTouchTargetPadding } from './utils';
39
+
40
+ // Default export
41
+ export { AccessibilityProvider as default } from './AccessibilityProvider';
42
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["AccessibilityProvider","AccessibilityContext","useAccessibilityContext","useAccessibility","DEFAULT_ACCESSIBILITY_CONFIG","useAccessibleIcon","withAccessibility","defaultLabelGenerator","adjustForHighContrast","meetsContrastRequirement","getHighContrastAlternative","calculateTouchTargetPadding","default"],"sourceRoot":"../../../src","sources":["accessibility/index.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAQA;AACA,SACEA,qBAAqB,EACrBC,oBAAoB,EACpBC,uBAAuB,EACvBC,gBAAgB,EAChBC,4BAA4B,QACvB,yBAAyB;AAGhC;AACA,SAASC,iBAAiB,EAAEC,iBAAiB,QAAQ,qBAAqB;AAG1E;AACA,SACEC,qBAAqB,EACrBC,qBAAqB,EACrBC,wBAAwB,EACxBC,0BAA0B,EAC1BC,2BAA2B,QACtB,SAAS;;AAEhB;AACA,SAASX,qBAAqB,IAAIY,OAAO,QAAQ,yBAAyB","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["accessibility/types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,112 @@
1
+ /**
2
+ * Hook for creating accessible icon props
3
+ */
4
+
5
+ import { useMemo } from 'react';
6
+ import { useAccessibility } from './AccessibilityProvider';
7
+ import { calculateTouchTargetPadding, adjustForHighContrast } from './utils';
8
+
9
+ /**
10
+ * Input props for useAccessibleIcon hook
11
+ */
12
+
13
+ /**
14
+ * Output props from useAccessibleIcon hook
15
+ */
16
+
17
+ /**
18
+ * Hook for creating accessible icon props
19
+ * Automatically generates labels, adjusts colors, and calculates touch targets
20
+ *
21
+ * @example
22
+ * ```tsx
23
+ * function MyIcon({ name, size, color }) {
24
+ * const { accessibilityProps, adjustedColor, touchTargetPadding } = useAccessibleIcon({
25
+ * iconName: name,
26
+ * size,
27
+ * color,
28
+ * });
29
+ *
30
+ * return (
31
+ * <View style={{ padding: touchTargetPadding }} {...accessibilityProps}>
32
+ * <Icon name={name} size={size} color={adjustedColor} />
33
+ * </View>
34
+ * );
35
+ * }
36
+ * ```
37
+ */
38
+ export function useAccessibleIcon(input) {
39
+ const accessibility = useAccessibility();
40
+ return useMemo(() => {
41
+ // Default values when no provider is present
42
+ const defaults = {
43
+ accessibilityProps: {
44
+ accessible: true,
45
+ accessibilityRole: input.accessibilityRole ?? 'image',
46
+ accessibilityLabel: input.accessibilityLabel,
47
+ accessibilityHint: input.accessibilityHint,
48
+ accessibilityElementsHidden: input.accessibilityElementsHidden,
49
+ importantForAccessibility: input.importantForAccessibility
50
+ },
51
+ adjustedColor: input.color,
52
+ touchTargetPadding: 0,
53
+ shouldDisableAnimations: false,
54
+ isHighContrast: false
55
+ };
56
+
57
+ // Return defaults if no accessibility context
58
+ if (!accessibility) {
59
+ return defaults;
60
+ }
61
+ const {
62
+ config,
63
+ getLabel,
64
+ getContrastColor,
65
+ shouldDisableAnimations,
66
+ isHighContrast
67
+ } = accessibility;
68
+
69
+ // Determine accessibility role
70
+ const role = input.accessibilityRole ?? config.defaultRole;
71
+
72
+ // Generate label
73
+ const label = input.accessibilityElementsHidden ? undefined : getLabel(input.iconName, input.accessibilityLabel);
74
+
75
+ // Calculate touch target padding for interactive icons
76
+ const touchTargetPadding = input.isInteractive && input.size ? calculateTouchTargetPadding(input.size, config.minTouchTargetSize) : 0;
77
+
78
+ // Adjust color for high contrast if needed
79
+ const shouldUseHighContrast = input.highContrast ?? isHighContrast;
80
+ // Use adjustForHighContrast directly when prop is set, otherwise use context's getContrastColor
81
+ const adjustedColor = input.color && shouldUseHighContrast ? input.highContrast ? adjustForHighContrast(input.color) : getContrastColor(input.color) : input.color;
82
+ return {
83
+ accessibilityProps: {
84
+ accessible: !input.accessibilityElementsHidden,
85
+ accessibilityLabel: label,
86
+ accessibilityHint: input.accessibilityHint,
87
+ accessibilityRole: role,
88
+ accessibilityElementsHidden: input.accessibilityElementsHidden,
89
+ importantForAccessibility: input.importantForAccessibility
90
+ },
91
+ adjustedColor,
92
+ touchTargetPadding,
93
+ shouldDisableAnimations: shouldDisableAnimations(),
94
+ isHighContrast: shouldUseHighContrast
95
+ };
96
+ }, [accessibility, input.iconName, input.size, input.accessibilityLabel, input.accessibilityHint, input.accessibilityRole, input.highContrast, input.accessibilityElementsHidden, input.importantForAccessibility, input.color, input.isInteractive]);
97
+ }
98
+
99
+ /**
100
+ * Higher-order component props enhancer
101
+ * Use this to add accessibility to existing icon components
102
+ */
103
+ export function withAccessibility(props) {
104
+ // This is a simple merge for use without hooks (SSR, etc.)
105
+ return {
106
+ ...props,
107
+ accessible: !props.accessibilityElementsHidden,
108
+ accessibilityRole: props.accessibilityRole ?? 'image'
109
+ };
110
+ }
111
+ export default useAccessibleIcon;
112
+ //# sourceMappingURL=useAccessibleIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useMemo","useAccessibility","calculateTouchTargetPadding","adjustForHighContrast","useAccessibleIcon","input","accessibility","defaults","accessibilityProps","accessible","accessibilityRole","accessibilityLabel","accessibilityHint","accessibilityElementsHidden","importantForAccessibility","adjustedColor","color","touchTargetPadding","shouldDisableAnimations","isHighContrast","config","getLabel","getContrastColor","role","defaultRole","label","undefined","iconName","isInteractive","size","minTouchTargetSize","shouldUseHighContrast","highContrast","withAccessibility","props"],"sourceRoot":"../../../src","sources":["accessibility/useAccessibleIcon.ts"],"mappings":"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","ignoreList":[]}