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.
- package/README.md +47 -235
- package/babel.js +14 -0
- package/lib/commonjs/IconRenderer.js +91 -4
- package/lib/commonjs/IconRenderer.js.map +1 -1
- package/lib/commonjs/accessibility/AccessibilityProvider.js +189 -0
- package/lib/commonjs/accessibility/AccessibilityProvider.js.map +1 -0
- package/lib/commonjs/accessibility/index.js +87 -0
- package/lib/commonjs/accessibility/index.js.map +1 -0
- package/lib/commonjs/accessibility/types.js +6 -0
- package/lib/commonjs/accessibility/types.js.map +1 -0
- package/lib/commonjs/accessibility/useAccessibleIcon.js +119 -0
- package/lib/commonjs/accessibility/useAccessibleIcon.js.map +1 -0
- package/lib/commonjs/accessibility/utils.js +231 -0
- package/lib/commonjs/accessibility/utils.js.map +1 -0
- package/lib/commonjs/alias/Icon.js +113 -0
- package/lib/commonjs/alias/Icon.js.map +1 -0
- package/lib/commonjs/alias/IconAliasContext.js +177 -0
- package/lib/commonjs/alias/IconAliasContext.js.map +1 -0
- package/lib/commonjs/alias/createIconAliases.js +222 -0
- package/lib/commonjs/alias/createIconAliases.js.map +1 -0
- package/lib/commonjs/alias/index.js +57 -0
- package/lib/commonjs/alias/index.js.map +1 -0
- package/lib/commonjs/alias/types.js +6 -0
- package/lib/commonjs/alias/types.js.map +1 -0
- package/lib/commonjs/animated/AnimatedIcon.js +116 -0
- package/lib/commonjs/animated/AnimatedIcon.js.map +1 -0
- package/lib/commonjs/animated/index.js +76 -0
- package/lib/commonjs/animated/index.js.map +1 -0
- package/lib/commonjs/animated/presets.js +220 -0
- package/lib/commonjs/animated/presets.js.map +1 -0
- package/lib/commonjs/animated/types.js +71 -0
- package/lib/commonjs/animated/types.js.map +1 -0
- package/lib/commonjs/animated/useIconAnimation.js +313 -0
- package/lib/commonjs/animated/useIconAnimation.js.map +1 -0
- package/lib/commonjs/babel/ast-utils.js +214 -0
- package/lib/commonjs/babel/ast-utils.js.map +1 -0
- package/lib/commonjs/babel/cache-writer.js +281 -0
- package/lib/commonjs/babel/cache-writer.js.map +1 -0
- package/lib/commonjs/babel/collector.js +219 -0
- package/lib/commonjs/babel/collector.js.map +1 -0
- package/lib/commonjs/babel/index.js +104 -0
- package/lib/commonjs/babel/index.js.map +1 -0
- package/lib/commonjs/babel/plugin.js +226 -0
- package/lib/commonjs/babel/plugin.js.map +1 -0
- package/lib/commonjs/babel/types.js +485 -0
- package/lib/commonjs/babel/types.js.map +1 -0
- package/lib/commonjs/bundle/index.js +213 -0
- package/lib/commonjs/bundle/index.js.map +1 -0
- package/lib/commonjs/cache/CacheManager.js +105 -6
- package/lib/commonjs/cache/CacheManager.js.map +1 -1
- package/lib/commonjs/cli/commands/analyze.js +171 -0
- package/lib/commonjs/cli/commands/analyze.js.map +1 -0
- package/lib/commonjs/cli/commands/bundle.js +214 -0
- package/lib/commonjs/cli/commands/bundle.js.map +1 -0
- package/lib/commonjs/cli/index.js +142 -0
- package/lib/commonjs/cli/index.js.map +1 -0
- package/lib/commonjs/cli/parser.js +260 -0
- package/lib/commonjs/cli/parser.js.map +1 -0
- package/lib/commonjs/cli/types.js +42 -0
- package/lib/commonjs/cli/types.js.map +1 -0
- package/lib/commonjs/config/ConfigManager.js +182 -0
- package/lib/commonjs/config/ConfigManager.js.map +1 -0
- package/lib/commonjs/config/index.js +44 -0
- package/lib/commonjs/config/index.js.map +1 -0
- package/lib/commonjs/config/types.js +55 -0
- package/lib/commonjs/config/types.js.map +1 -0
- package/lib/commonjs/createIconSet.js +49 -11
- package/lib/commonjs/createIconSet.js.map +1 -1
- package/lib/commonjs/explorer/IconExplorer.js +827 -0
- package/lib/commonjs/explorer/IconExplorer.js.map +1 -0
- package/lib/commonjs/explorer/iconSets.js +303 -0
- package/lib/commonjs/explorer/iconSets.js.map +1 -0
- package/lib/commonjs/explorer/index.js +93 -0
- package/lib/commonjs/explorer/index.js.map +1 -0
- package/lib/commonjs/explorer/types.js +6 -0
- package/lib/commonjs/explorer/types.js.map +1 -0
- package/lib/commonjs/explorer/useExplorer.js +359 -0
- package/lib/commonjs/explorer/useExplorer.js.map +1 -0
- package/lib/commonjs/index.js +618 -12
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/navigation/createDrawerIcon.js +129 -0
- package/lib/commonjs/navigation/createDrawerIcon.js.map +1 -0
- package/lib/commonjs/navigation/createHeaderIcon.js +185 -0
- package/lib/commonjs/navigation/createHeaderIcon.js.map +1 -0
- package/lib/commonjs/navigation/createTabBarIcon.js +178 -0
- package/lib/commonjs/navigation/createTabBarIcon.js.map +1 -0
- package/lib/commonjs/navigation/index.js +83 -0
- package/lib/commonjs/navigation/index.js.map +1 -0
- package/lib/commonjs/navigation/types.js +94 -0
- package/lib/commonjs/navigation/types.js.map +1 -0
- package/lib/commonjs/navigation/useNavigationIcon.js +128 -0
- package/lib/commonjs/navigation/useNavigationIcon.js.map +1 -0
- package/lib/commonjs/network/IconifyAPI.js +154 -14
- package/lib/commonjs/network/IconifyAPI.js.map +1 -1
- package/lib/commonjs/network/index.js +18 -0
- package/lib/commonjs/network/index.js.map +1 -1
- package/lib/commonjs/performance/PerformanceMonitor.js +327 -0
- package/lib/commonjs/performance/PerformanceMonitor.js.map +1 -0
- package/lib/commonjs/performance/index.js +43 -0
- package/lib/commonjs/performance/index.js.map +1 -0
- package/lib/commonjs/performance/types.js +2 -0
- package/lib/commonjs/performance/types.js.map +1 -0
- package/lib/commonjs/placeholder/PlaceholderFactory.js +111 -0
- package/lib/commonjs/placeholder/PlaceholderFactory.js.map +1 -0
- package/lib/commonjs/placeholder/Pulse.js +77 -0
- package/lib/commonjs/placeholder/Pulse.js.map +1 -0
- package/lib/commonjs/placeholder/Shimmer.js +95 -0
- package/lib/commonjs/placeholder/Shimmer.js.map +1 -0
- package/lib/commonjs/placeholder/Skeleton.js +52 -0
- package/lib/commonjs/placeholder/Skeleton.js.map +1 -0
- package/lib/commonjs/placeholder/index.js +41 -0
- package/lib/commonjs/placeholder/index.js.map +1 -0
- package/lib/commonjs/placeholder/types.js +40 -0
- package/lib/commonjs/placeholder/types.js.map +1 -0
- package/lib/commonjs/theme/IconThemeProvider.js +96 -0
- package/lib/commonjs/theme/IconThemeProvider.js.map +1 -0
- package/lib/commonjs/theme/context.js +53 -0
- package/lib/commonjs/theme/context.js.map +1 -0
- package/lib/commonjs/theme/index.js +52 -0
- package/lib/commonjs/theme/index.js.map +1 -0
- package/lib/commonjs/theme/types.js +39 -0
- package/lib/commonjs/theme/types.js.map +1 -0
- package/lib/commonjs/theme/useIconTheme.js +121 -0
- package/lib/commonjs/theme/useIconTheme.js.map +1 -0
- package/lib/module/IconRenderer.js +92 -5
- package/lib/module/IconRenderer.js.map +1 -1
- package/lib/module/accessibility/AccessibilityProvider.js +179 -0
- package/lib/module/accessibility/AccessibilityProvider.js.map +1 -0
- package/lib/module/accessibility/index.js +42 -0
- package/lib/module/accessibility/index.js.map +1 -0
- package/lib/module/accessibility/types.js +2 -0
- package/lib/module/accessibility/types.js.map +1 -0
- package/lib/module/accessibility/useAccessibleIcon.js +112 -0
- package/lib/module/accessibility/useAccessibleIcon.js.map +1 -0
- package/lib/module/accessibility/utils.js +221 -0
- package/lib/module/accessibility/utils.js.map +1 -0
- package/lib/module/alias/Icon.js +105 -0
- package/lib/module/alias/Icon.js.map +1 -0
- package/lib/module/alias/IconAliasContext.js +166 -0
- package/lib/module/alias/IconAliasContext.js.map +1 -0
- package/lib/module/alias/createIconAliases.js +213 -0
- package/lib/module/alias/createIconAliases.js.map +1 -0
- package/lib/module/alias/index.js +45 -0
- package/lib/module/alias/index.js.map +1 -0
- package/lib/module/alias/types.js +2 -0
- package/lib/module/alias/types.js.map +1 -0
- package/lib/module/animated/AnimatedIcon.js +109 -0
- package/lib/module/animated/AnimatedIcon.js.map +1 -0
- package/lib/module/animated/index.js +80 -0
- package/lib/module/animated/index.js.map +1 -0
- package/lib/module/animated/presets.js +209 -0
- package/lib/module/animated/presets.js.map +1 -0
- package/lib/module/animated/types.js +65 -0
- package/lib/module/animated/types.js.map +1 -0
- package/lib/module/animated/useIconAnimation.js +306 -0
- package/lib/module/animated/useIconAnimation.js.map +1 -0
- package/lib/module/babel/ast-utils.js +201 -0
- package/lib/module/babel/ast-utils.js.map +1 -0
- package/lib/module/babel/cache-writer.js +269 -0
- package/lib/module/babel/cache-writer.js.map +1 -0
- package/lib/module/babel/collector.js +214 -0
- package/lib/module/babel/collector.js.map +1 -0
- package/lib/module/babel/index.js +51 -0
- package/lib/module/babel/index.js.map +1 -0
- package/lib/module/babel/plugin.js +220 -0
- package/lib/module/babel/plugin.js.map +1 -0
- package/lib/module/babel/types.js +476 -0
- package/lib/module/babel/types.js.map +1 -0
- package/lib/module/bundle/index.js +205 -0
- package/lib/module/bundle/index.js.map +1 -0
- package/lib/module/cache/CacheManager.js +106 -6
- package/lib/module/cache/CacheManager.js.map +1 -1
- package/lib/module/cli/commands/analyze.js +166 -0
- package/lib/module/cli/commands/analyze.js.map +1 -0
- package/lib/module/cli/commands/bundle.js +208 -0
- package/lib/module/cli/commands/bundle.js.map +1 -0
- package/lib/module/cli/index.js +140 -0
- package/lib/module/cli/index.js.map +1 -0
- package/lib/module/cli/parser.js +251 -0
- package/lib/module/cli/parser.js.map +1 -0
- package/lib/module/cli/types.js +36 -0
- package/lib/module/cli/types.js.map +1 -0
- package/lib/module/components/index.js +27 -1
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/config/ConfigManager.js +173 -0
- package/lib/module/config/ConfigManager.js.map +1 -0
- package/lib/module/config/index.js +28 -0
- package/lib/module/config/index.js.map +1 -0
- package/lib/module/config/types.js +49 -0
- package/lib/module/config/types.js.map +1 -0
- package/lib/module/createIconSet.js +49 -11
- package/lib/module/createIconSet.js.map +1 -1
- package/lib/module/explorer/IconExplorer.js +817 -0
- package/lib/module/explorer/IconExplorer.js.map +1 -0
- package/lib/module/explorer/iconSets.js +291 -0
- package/lib/module/explorer/iconSets.js.map +1 -0
- package/lib/module/explorer/index.js +42 -0
- package/lib/module/explorer/index.js.map +1 -0
- package/lib/module/explorer/types.js +2 -0
- package/lib/module/explorer/types.js.map +1 -0
- package/lib/module/explorer/useExplorer.js +353 -0
- package/lib/module/explorer/useExplorer.js.map +1 -0
- package/lib/module/index.js +26 -11
- package/lib/module/index.js.map +1 -1
- package/lib/module/navigation/createDrawerIcon.js +121 -0
- package/lib/module/navigation/createDrawerIcon.js.map +1 -0
- package/lib/module/navigation/createHeaderIcon.js +175 -0
- package/lib/module/navigation/createHeaderIcon.js.map +1 -0
- package/lib/module/navigation/createTabBarIcon.js +168 -0
- package/lib/module/navigation/createTabBarIcon.js.map +1 -0
- package/lib/module/navigation/index.js +59 -0
- package/lib/module/navigation/index.js.map +1 -0
- package/lib/module/navigation/types.js +88 -0
- package/lib/module/navigation/types.js.map +1 -0
- package/lib/module/navigation/useNavigationIcon.js +121 -0
- package/lib/module/navigation/useNavigationIcon.js.map +1 -0
- package/lib/module/network/IconifyAPI.js +152 -14
- package/lib/module/network/IconifyAPI.js.map +1 -1
- package/lib/module/network/index.js +1 -1
- package/lib/module/network/index.js.map +1 -1
- package/lib/module/performance/PerformanceMonitor.js +317 -0
- package/lib/module/performance/PerformanceMonitor.js.map +1 -0
- package/lib/module/performance/index.js +26 -0
- package/lib/module/performance/index.js.map +1 -0
- package/lib/module/performance/types.js +2 -0
- package/lib/module/performance/types.js.map +1 -0
- package/lib/module/placeholder/PlaceholderFactory.js +105 -0
- package/lib/module/placeholder/PlaceholderFactory.js.map +1 -0
- package/lib/module/placeholder/Pulse.js +70 -0
- package/lib/module/placeholder/Pulse.js.map +1 -0
- package/lib/module/placeholder/Shimmer.js +88 -0
- package/lib/module/placeholder/Shimmer.js.map +1 -0
- package/lib/module/placeholder/Skeleton.js +45 -0
- package/lib/module/placeholder/Skeleton.js.map +1 -0
- package/lib/module/placeholder/index.js +15 -0
- package/lib/module/placeholder/index.js.map +1 -0
- package/lib/module/placeholder/types.js +34 -0
- package/lib/module/placeholder/types.js.map +1 -0
- package/lib/module/theme/IconThemeProvider.js +89 -0
- package/lib/module/theme/IconThemeProvider.js.map +1 -0
- package/lib/module/theme/context.js +47 -0
- package/lib/module/theme/context.js.map +1 -0
- package/lib/module/theme/index.js +19 -0
- package/lib/module/theme/index.js.map +1 -0
- package/lib/module/theme/types.js +33 -0
- package/lib/module/theme/types.js.map +1 -0
- package/lib/module/theme/useIconTheme.js +114 -0
- package/lib/module/theme/useIconTheme.js.map +1 -0
- package/lib/typescript/IconRenderer.d.ts +1 -1
- package/lib/typescript/IconRenderer.d.ts.map +1 -1
- package/lib/typescript/accessibility/AccessibilityProvider.d.ts +57 -0
- package/lib/typescript/accessibility/AccessibilityProvider.d.ts.map +1 -0
- package/lib/typescript/accessibility/index.d.ts +37 -0
- package/lib/typescript/accessibility/index.d.ts.map +1 -0
- package/lib/typescript/accessibility/types.d.ts +130 -0
- package/lib/typescript/accessibility/types.d.ts.map +1 -0
- package/lib/typescript/accessibility/useAccessibleIcon.d.ts +111 -0
- package/lib/typescript/accessibility/useAccessibleIcon.d.ts.map +1 -0
- package/lib/typescript/accessibility/utils.d.ts +29 -0
- package/lib/typescript/accessibility/utils.d.ts.map +1 -0
- package/lib/typescript/alias/Icon.d.ts +38 -0
- package/lib/typescript/alias/Icon.d.ts.map +1 -0
- package/lib/typescript/alias/IconAliasContext.d.ts +52 -0
- package/lib/typescript/alias/IconAliasContext.d.ts.map +1 -0
- package/lib/typescript/alias/createIconAliases.d.ts +77 -0
- package/lib/typescript/alias/createIconAliases.d.ts.map +1 -0
- package/lib/typescript/alias/index.d.ts +36 -0
- package/lib/typescript/alias/index.d.ts.map +1 -0
- package/lib/typescript/alias/types.d.ts +115 -0
- package/lib/typescript/alias/types.d.ts.map +1 -0
- package/lib/typescript/animated/AnimatedIcon.d.ts +45 -0
- package/lib/typescript/animated/AnimatedIcon.d.ts.map +1 -0
- package/lib/typescript/animated/index.d.ts +70 -0
- package/lib/typescript/animated/index.d.ts.map +1 -0
- package/lib/typescript/animated/presets.d.ts +35 -0
- package/lib/typescript/animated/presets.d.ts.map +1 -0
- package/lib/typescript/animated/types.d.ts +196 -0
- package/lib/typescript/animated/types.d.ts.map +1 -0
- package/lib/typescript/animated/useIconAnimation.d.ts +64 -0
- package/lib/typescript/animated/useIconAnimation.d.ts.map +1 -0
- package/lib/typescript/babel/ast-utils.d.ts +52 -0
- package/lib/typescript/babel/ast-utils.d.ts.map +1 -0
- package/lib/typescript/babel/cache-writer.d.ts +56 -0
- package/lib/typescript/babel/cache-writer.d.ts.map +1 -0
- package/lib/typescript/babel/collector.d.ts +107 -0
- package/lib/typescript/babel/collector.d.ts.map +1 -0
- package/lib/typescript/babel/index.d.ts +47 -0
- package/lib/typescript/babel/index.d.ts.map +1 -0
- package/lib/typescript/babel/plugin.d.ts +17 -0
- package/lib/typescript/babel/plugin.d.ts.map +1 -0
- package/lib/typescript/babel/types.d.ts +129 -0
- package/lib/typescript/babel/types.d.ts.map +1 -0
- package/lib/typescript/bundle/index.d.ts +161 -0
- package/lib/typescript/bundle/index.d.ts.map +1 -0
- package/lib/typescript/cache/CacheManager.d.ts +52 -4
- package/lib/typescript/cache/CacheManager.d.ts.map +1 -1
- package/lib/typescript/cli/commands/analyze.d.ts +10 -0
- package/lib/typescript/cli/commands/analyze.d.ts.map +1 -0
- package/lib/typescript/cli/commands/bundle.d.ts +10 -0
- package/lib/typescript/cli/commands/bundle.d.ts.map +1 -0
- package/lib/typescript/cli/index.d.ts +7 -0
- package/lib/typescript/cli/index.d.ts.map +1 -0
- package/lib/typescript/cli/parser.d.ts +18 -0
- package/lib/typescript/cli/parser.d.ts.map +1 -0
- package/lib/typescript/cli/types.d.ts +157 -0
- package/lib/typescript/cli/types.d.ts.map +1 -0
- package/lib/typescript/components/Academicons.d.ts +1 -1
- package/lib/typescript/components/AkarIcons.d.ts +1 -1
- package/lib/typescript/components/AntDesign.d.ts +1 -1
- package/lib/typescript/components/Arcticons.d.ts +1 -1
- package/lib/typescript/components/Basil.d.ts +1 -1
- package/lib/typescript/components/Bi.d.ts +1 -1
- package/lib/typescript/components/BitcoinIcons.d.ts +1 -1
- package/lib/typescript/components/Bpmn.d.ts +1 -1
- package/lib/typescript/components/Brandico.d.ts +1 -1
- package/lib/typescript/components/Bx.d.ts +1 -1
- package/lib/typescript/components/Bxl.d.ts +1 -1
- package/lib/typescript/components/Bxs.d.ts +1 -1
- package/lib/typescript/components/Bytesize.d.ts +1 -1
- package/lib/typescript/components/Carbon.d.ts +1 -1
- package/lib/typescript/components/Catppuccin.d.ts +1 -1
- package/lib/typescript/components/Cbi.d.ts +1 -1
- package/lib/typescript/components/Charm.d.ts +1 -1
- package/lib/typescript/components/Ci.d.ts +1 -1
- package/lib/typescript/components/Cib.d.ts +1 -1
- package/lib/typescript/components/Cif.d.ts +1 -1
- package/lib/typescript/components/Cil.d.ts +1 -1
- package/lib/typescript/components/CircleFlags.d.ts +1 -1
- package/lib/typescript/components/Circum.d.ts +1 -1
- package/lib/typescript/components/Clarity.d.ts +1 -1
- package/lib/typescript/components/Codex.d.ts +1 -1
- package/lib/typescript/components/Codicon.d.ts +1 -1
- package/lib/typescript/components/Covid.d.ts +1 -1
- package/lib/typescript/components/Cryptocurrency.d.ts +1 -1
- package/lib/typescript/components/CryptocurrencyColor.d.ts +1 -1
- package/lib/typescript/components/Cuida.d.ts +1 -1
- package/lib/typescript/components/Dashicons.d.ts +1 -1
- package/lib/typescript/components/Devicon.d.ts +1 -1
- package/lib/typescript/components/DeviconPlain.d.ts +1 -1
- package/lib/typescript/components/DinkieIcons.d.ts +1 -1
- package/lib/typescript/components/DuoIcons.d.ts +1 -1
- package/lib/typescript/components/Ei.d.ts +1 -1
- package/lib/typescript/components/El.d.ts +1 -1
- package/lib/typescript/components/EmojioneMonotone.d.ts +1 -1
- package/lib/typescript/components/Entypo.d.ts +1 -1
- package/lib/typescript/components/EntypoSocial.d.ts +1 -1
- package/lib/typescript/components/EosIcons.d.ts +1 -1
- package/lib/typescript/components/Ep.d.ts +1 -1
- package/lib/typescript/components/Et.d.ts +1 -1
- package/lib/typescript/components/Eva.d.ts +1 -1
- package/lib/typescript/components/F7.d.ts +1 -1
- package/lib/typescript/components/Fa.d.ts +1 -1
- package/lib/typescript/components/Fa6Brands.d.ts +1 -1
- package/lib/typescript/components/Fa6Regular.d.ts +1 -1
- package/lib/typescript/components/Fa6Solid.d.ts +1 -1
- package/lib/typescript/components/Fa7Brands.d.ts +1 -1
- package/lib/typescript/components/Fa7Regular.d.ts +1 -1
- package/lib/typescript/components/Fa7Solid.d.ts +1 -1
- package/lib/typescript/components/FaBrands.d.ts +1 -1
- package/lib/typescript/components/FaRegular.d.ts +1 -1
- package/lib/typescript/components/FaSolid.d.ts +1 -1
- package/lib/typescript/components/Fad.d.ts +1 -1
- package/lib/typescript/components/Famicons.d.ts +1 -1
- package/lib/typescript/components/Fe.d.ts +1 -1
- package/lib/typescript/components/Feather.d.ts +1 -1
- package/lib/typescript/components/FileIcons.d.ts +1 -1
- package/lib/typescript/components/Flag.d.ts +1 -1
- package/lib/typescript/components/Flagpack.d.ts +1 -1
- package/lib/typescript/components/FlatUi.d.ts +1 -1
- package/lib/typescript/components/Flowbite.d.ts +1 -1
- package/lib/typescript/components/Fluent.d.ts +1 -1
- package/lib/typescript/components/FluentColor.d.ts +1 -1
- package/lib/typescript/components/FluentEmoji.d.ts +1 -1
- package/lib/typescript/components/FluentEmojiFlat.d.ts +1 -1
- package/lib/typescript/components/FluentEmojiHighContrast.d.ts +1 -1
- package/lib/typescript/components/FluentMdl2.d.ts +1 -1
- package/lib/typescript/components/Fontelico.d.ts +1 -1
- package/lib/typescript/components/Fontisto.d.ts +1 -1
- package/lib/typescript/components/Formkit.d.ts +1 -1
- package/lib/typescript/components/Foundation.d.ts +1 -1
- package/lib/typescript/components/Gala.d.ts +1 -1
- package/lib/typescript/components/GameIcons.d.ts +1 -1
- package/lib/typescript/components/Garden.d.ts +1 -1
- package/lib/typescript/components/Geo.d.ts +1 -1
- package/lib/typescript/components/Gg.d.ts +1 -1
- package/lib/typescript/components/Gis.d.ts +1 -1
- package/lib/typescript/components/GravityUi.d.ts +1 -1
- package/lib/typescript/components/Gridicons.d.ts +1 -1
- package/lib/typescript/components/GrommetIcons.d.ts +1 -1
- package/lib/typescript/components/Guidance.d.ts +1 -1
- package/lib/typescript/components/Healthicons.d.ts +1 -1
- package/lib/typescript/components/Heroicons.d.ts +1 -1
- package/lib/typescript/components/HeroiconsOutline.d.ts +1 -1
- package/lib/typescript/components/HeroiconsSolid.d.ts +1 -1
- package/lib/typescript/components/Hugeicons.d.ts +1 -1
- package/lib/typescript/components/Humbleicons.d.ts +1 -1
- package/lib/typescript/components/Ic.d.ts +1 -1
- package/lib/typescript/components/IcomoonFree.d.ts +1 -1
- package/lib/typescript/components/IconPark.d.ts +1 -1
- package/lib/typescript/components/IconParkOutline.d.ts +1 -1
- package/lib/typescript/components/IconParkSolid.d.ts +1 -1
- package/lib/typescript/components/IconParkTwotone.d.ts +1 -1
- package/lib/typescript/components/Iconamoon.d.ts +1 -1
- package/lib/typescript/components/Iconoir.d.ts +1 -1
- package/lib/typescript/components/Icons8.d.ts +1 -1
- package/lib/typescript/components/Il.d.ts +1 -1
- package/lib/typescript/components/Ion.d.ts +1 -1
- package/lib/typescript/components/Iwwa.d.ts +1 -1
- package/lib/typescript/components/Ix.d.ts +1 -1
- package/lib/typescript/components/Jam.d.ts +1 -1
- package/lib/typescript/components/La.d.ts +1 -1
- package/lib/typescript/components/LetsIcons.d.ts +1 -1
- package/lib/typescript/components/LineMd.d.ts +1 -1
- package/lib/typescript/components/Lineicons.d.ts +1 -1
- package/lib/typescript/components/Logos.d.ts +1 -1
- package/lib/typescript/components/Ls.d.ts +1 -1
- package/lib/typescript/components/Lsicon.d.ts +1 -1
- package/lib/typescript/components/Lucide.d.ts +1 -1
- package/lib/typescript/components/LucideLab.d.ts +1 -1
- package/lib/typescript/components/Mage.d.ts +1 -1
- package/lib/typescript/components/Majesticons.d.ts +1 -1
- package/lib/typescript/components/Maki.d.ts +1 -1
- package/lib/typescript/components/Map.d.ts +1 -1
- package/lib/typescript/components/Marketeq.d.ts +1 -1
- package/lib/typescript/components/MaterialIconTheme.d.ts +1 -1
- package/lib/typescript/components/MaterialSymbols.d.ts +1 -1
- package/lib/typescript/components/MaterialSymbolsLight.d.ts +1 -1
- package/lib/typescript/components/Mdi.d.ts +1 -1
- package/lib/typescript/components/MdiLight.d.ts +1 -1
- package/lib/typescript/components/MedicalIcon.d.ts +1 -1
- package/lib/typescript/components/Memory.d.ts +1 -1
- package/lib/typescript/components/Meteocons.d.ts +1 -1
- package/lib/typescript/components/MeteorIcons.d.ts +1 -1
- package/lib/typescript/components/Mi.d.ts +1 -1
- package/lib/typescript/components/Mingcute.d.ts +1 -1
- package/lib/typescript/components/MonoIcons.d.ts +1 -1
- package/lib/typescript/components/Mynaui.d.ts +1 -1
- package/lib/typescript/components/Nimbus.d.ts +1 -1
- package/lib/typescript/components/Nonicons.d.ts +1 -1
- package/lib/typescript/components/Nrk.d.ts +1 -1
- package/lib/typescript/components/Octicon.d.ts +1 -1
- package/lib/typescript/components/Oi.d.ts +1 -1
- package/lib/typescript/components/Ooui.d.ts +1 -1
- package/lib/typescript/components/Oui.d.ts +1 -1
- package/lib/typescript/components/Pajamas.d.ts +1 -1
- package/lib/typescript/components/Pepicons.d.ts +1 -1
- package/lib/typescript/components/PepiconsPencil.d.ts +1 -1
- package/lib/typescript/components/PepiconsPop.d.ts +1 -1
- package/lib/typescript/components/PepiconsPrint.d.ts +1 -1
- package/lib/typescript/components/Ph.d.ts +1 -1
- package/lib/typescript/components/Picon.d.ts +1 -1
- package/lib/typescript/components/Pixel.d.ts +1 -1
- package/lib/typescript/components/Pixelarticons.d.ts +1 -1
- package/lib/typescript/components/Prime.d.ts +1 -1
- package/lib/typescript/components/Proicons.d.ts +1 -1
- package/lib/typescript/components/Ps.d.ts +1 -1
- package/lib/typescript/components/QlementineIcons.d.ts +1 -1
- package/lib/typescript/components/Quill.d.ts +1 -1
- package/lib/typescript/components/RadixIcons.d.ts +1 -1
- package/lib/typescript/components/Raphael.d.ts +1 -1
- package/lib/typescript/components/Ri.d.ts +1 -1
- package/lib/typescript/components/RivetIcons.d.ts +1 -1
- package/lib/typescript/components/Roentgen.d.ts +1 -1
- package/lib/typescript/components/Si.d.ts +1 -1
- package/lib/typescript/components/SiGlyph.d.ts +1 -1
- package/lib/typescript/components/Sidekickicons.d.ts +1 -1
- package/lib/typescript/components/SimpleIcons.d.ts +1 -1
- package/lib/typescript/components/SimpleLineIcons.d.ts +1 -1
- package/lib/typescript/components/SkillIcons.d.ts +1 -1
- package/lib/typescript/components/Solar.d.ts +1 -1
- package/lib/typescript/components/Stash.d.ts +1 -1
- package/lib/typescript/components/Streamline.d.ts +1 -1
- package/lib/typescript/components/StreamlineBlock.d.ts +1 -1
- package/lib/typescript/components/StreamlineColor.d.ts +1 -1
- package/lib/typescript/components/StreamlineCyber.d.ts +1 -1
- package/lib/typescript/components/StreamlineCyberColor.d.ts +1 -1
- package/lib/typescript/components/StreamlineEmojis.d.ts +1 -1
- package/lib/typescript/components/StreamlineFlex.d.ts +1 -1
- package/lib/typescript/components/StreamlineFlexColor.d.ts +1 -1
- package/lib/typescript/components/StreamlineFreehand.d.ts +1 -1
- package/lib/typescript/components/StreamlineFreehandColor.d.ts +1 -1
- package/lib/typescript/components/StreamlineKameleonColor.d.ts +1 -1
- package/lib/typescript/components/StreamlineLogos.d.ts +1 -1
- package/lib/typescript/components/StreamlinePixel.d.ts +1 -1
- package/lib/typescript/components/StreamlinePlump.d.ts +1 -1
- package/lib/typescript/components/StreamlinePlumpColor.d.ts +1 -1
- package/lib/typescript/components/StreamlineSharp.d.ts +1 -1
- package/lib/typescript/components/StreamlineSharpColor.d.ts +1 -1
- package/lib/typescript/components/StreamlineStickiesColor.d.ts +1 -1
- package/lib/typescript/components/StreamlineUltimate.d.ts +1 -1
- package/lib/typescript/components/StreamlineUltimateColor.d.ts +1 -1
- package/lib/typescript/components/Subway.d.ts +1 -1
- package/lib/typescript/components/SvgSpinners.d.ts +1 -1
- package/lib/typescript/components/SystemUicons.d.ts +1 -1
- package/lib/typescript/components/Tabler.d.ts +1 -1
- package/lib/typescript/components/Tdesign.d.ts +1 -1
- package/lib/typescript/components/Teenyicons.d.ts +1 -1
- package/lib/typescript/components/Temaki.d.ts +1 -1
- package/lib/typescript/components/Token.d.ts +1 -1
- package/lib/typescript/components/TokenBranded.d.ts +1 -1
- package/lib/typescript/components/Topcoat.d.ts +1 -1
- package/lib/typescript/components/Typcn.d.ts +1 -1
- package/lib/typescript/components/Uil.d.ts +1 -1
- package/lib/typescript/components/Uim.d.ts +1 -1
- package/lib/typescript/components/Uis.d.ts +1 -1
- package/lib/typescript/components/Uit.d.ts +1 -1
- package/lib/typescript/components/Uiw.d.ts +1 -1
- package/lib/typescript/components/Unjs.d.ts +1 -1
- package/lib/typescript/components/Vaadin.d.ts +1 -1
- package/lib/typescript/components/Vs.d.ts +1 -1
- package/lib/typescript/components/VscodeIcons.d.ts +1 -1
- package/lib/typescript/components/Websymbol.d.ts +1 -1
- package/lib/typescript/components/Weui.d.ts +1 -1
- package/lib/typescript/components/Whh.d.ts +1 -1
- package/lib/typescript/components/Wi.d.ts +1 -1
- package/lib/typescript/components/Wpf.d.ts +1 -1
- package/lib/typescript/components/Zmdi.d.ts +1 -1
- package/lib/typescript/components/Zondicons.d.ts +1 -1
- package/lib/typescript/components/index.d.ts +38 -1
- package/lib/typescript/components/index.d.ts.map +1 -1
- package/lib/typescript/config/ConfigManager.d.ts +102 -0
- package/lib/typescript/config/ConfigManager.d.ts.map +1 -0
- package/lib/typescript/config/index.d.ts +22 -0
- package/lib/typescript/config/index.d.ts.map +1 -0
- package/lib/typescript/config/types.d.ts +112 -0
- package/lib/typescript/config/types.d.ts.map +1 -0
- package/lib/typescript/createIconSet.d.ts +1 -1
- package/lib/typescript/createIconSet.d.ts.map +1 -1
- package/lib/typescript/explorer/IconExplorer.d.ts +54 -0
- package/lib/typescript/explorer/IconExplorer.d.ts.map +1 -0
- package/lib/typescript/explorer/iconSets.d.ts +35 -0
- package/lib/typescript/explorer/iconSets.d.ts.map +1 -0
- package/lib/typescript/explorer/index.d.ts +33 -0
- package/lib/typescript/explorer/index.d.ts.map +1 -0
- package/lib/typescript/explorer/types.d.ts +329 -0
- package/lib/typescript/explorer/types.d.ts.map +1 -0
- package/lib/typescript/explorer/useExplorer.d.ts +18 -0
- package/lib/typescript/explorer/useExplorer.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +25 -4
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/navigation/createDrawerIcon.d.ts +74 -0
- package/lib/typescript/navigation/createDrawerIcon.d.ts.map +1 -0
- package/lib/typescript/navigation/createHeaderIcon.d.ts +145 -0
- package/lib/typescript/navigation/createHeaderIcon.d.ts.map +1 -0
- package/lib/typescript/navigation/createTabBarIcon.d.ts +99 -0
- package/lib/typescript/navigation/createTabBarIcon.d.ts.map +1 -0
- package/lib/typescript/navigation/index.d.ts +51 -0
- package/lib/typescript/navigation/index.d.ts.map +1 -0
- package/lib/typescript/navigation/types.d.ts +149 -0
- package/lib/typescript/navigation/types.d.ts.map +1 -0
- package/lib/typescript/navigation/useNavigationIcon.d.ts +91 -0
- package/lib/typescript/navigation/useNavigationIcon.d.ts.map +1 -0
- package/lib/typescript/network/IconifyAPI.d.ts +32 -0
- package/lib/typescript/network/IconifyAPI.d.ts.map +1 -1
- package/lib/typescript/network/index.d.ts +2 -1
- package/lib/typescript/network/index.d.ts.map +1 -1
- package/lib/typescript/performance/PerformanceMonitor.d.ts +76 -0
- package/lib/typescript/performance/PerformanceMonitor.d.ts.map +1 -0
- package/lib/typescript/performance/index.d.ts +21 -0
- package/lib/typescript/performance/index.d.ts.map +1 -0
- package/lib/typescript/performance/types.d.ts +156 -0
- package/lib/typescript/performance/types.d.ts.map +1 -0
- package/lib/typescript/placeholder/PlaceholderFactory.d.ts +44 -0
- package/lib/typescript/placeholder/PlaceholderFactory.d.ts.map +1 -0
- package/lib/typescript/placeholder/Pulse.d.ts +18 -0
- package/lib/typescript/placeholder/Pulse.d.ts.map +1 -0
- package/lib/typescript/placeholder/Shimmer.d.ts +19 -0
- package/lib/typescript/placeholder/Shimmer.d.ts.map +1 -0
- package/lib/typescript/placeholder/Skeleton.d.ts +18 -0
- package/lib/typescript/placeholder/Skeleton.d.ts.map +1 -0
- package/lib/typescript/placeholder/index.d.ts +12 -0
- package/lib/typescript/placeholder/index.d.ts.map +1 -0
- package/lib/typescript/placeholder/types.d.ts +63 -0
- package/lib/typescript/placeholder/types.d.ts.map +1 -0
- package/lib/typescript/theme/IconThemeProvider.d.ts +64 -0
- package/lib/typescript/theme/IconThemeProvider.d.ts.map +1 -0
- package/lib/typescript/theme/context.d.ts +24 -0
- package/lib/typescript/theme/context.d.ts.map +1 -0
- package/lib/typescript/theme/index.d.ts +10 -0
- package/lib/typescript/theme/index.d.ts.map +1 -0
- package/lib/typescript/theme/types.d.ts +85 -0
- package/lib/typescript/theme/types.d.ts.map +1 -0
- package/lib/typescript/theme/useIconTheme.d.ts +78 -0
- package/lib/typescript/theme/useIconTheme.d.ts.map +1 -0
- package/lib/typescript/types/index.d.ts +58 -1
- package/lib/typescript/types/index.d.ts.map +1 -1
- package/package.json +41 -3
- package/src/IconRenderer.tsx +91 -4
- package/src/accessibility/AccessibilityProvider.tsx +220 -0
- package/src/accessibility/index.ts +63 -0
- package/src/accessibility/types.ts +152 -0
- package/src/accessibility/useAccessibleIcon.ts +220 -0
- package/src/accessibility/utils.ts +180 -0
- package/src/alias/Icon.tsx +113 -0
- package/src/alias/IconAliasContext.tsx +180 -0
- package/src/alias/createIconAliases.tsx +233 -0
- package/src/alias/index.ts +59 -0
- package/src/alias/types.ts +132 -0
- package/src/animated/AnimatedIcon.tsx +116 -0
- package/src/animated/index.ts +97 -0
- package/src/animated/presets.ts +211 -0
- package/src/animated/types.ts +239 -0
- package/src/animated/useIconAnimation.ts +383 -0
- package/src/babel/ast-utils.ts +219 -0
- package/src/babel/cache-writer.ts +323 -0
- package/src/babel/collector.ts +224 -0
- package/src/babel/index.ts +60 -0
- package/src/babel/plugin.ts +254 -0
- package/src/babel/types.ts +717 -0
- package/src/bundle/index.ts +313 -0
- package/src/cache/CacheManager.ts +123 -6
- package/src/cli/commands/analyze.ts +195 -0
- package/src/cli/commands/bundle.ts +231 -0
- package/src/cli/index.ts +153 -0
- package/src/cli/parser.ts +275 -0
- package/src/cli/types.ts +187 -0
- package/src/components/index.ts +52 -1
- package/src/config/ConfigManager.ts +196 -0
- package/src/config/index.ts +34 -0
- package/src/config/types.ts +149 -0
- package/src/createIconSet.tsx +48 -9
- package/src/explorer/IconExplorer.tsx +844 -0
- package/src/explorer/iconSets.ts +334 -0
- package/src/explorer/index.ts +64 -0
- package/src/explorer/types.ts +392 -0
- package/src/explorer/useExplorer.ts +390 -0
- package/src/index.ts +218 -9
- package/src/navigation/createDrawerIcon.tsx +113 -0
- package/src/navigation/createHeaderIcon.tsx +213 -0
- package/src/navigation/createTabBarIcon.tsx +180 -0
- package/src/navigation/index.ts +80 -0
- package/src/navigation/types.ts +155 -0
- package/src/navigation/useNavigationIcon.tsx +156 -0
- package/src/network/IconifyAPI.ts +182 -14
- package/src/network/index.ts +11 -1
- package/src/performance/PerformanceMonitor.ts +367 -0
- package/src/performance/index.ts +39 -0
- package/src/performance/types.ts +185 -0
- package/src/placeholder/PlaceholderFactory.tsx +133 -0
- package/src/placeholder/Pulse.tsx +86 -0
- package/src/placeholder/Shimmer.tsx +104 -0
- package/src/placeholder/Skeleton.tsx +52 -0
- package/src/placeholder/index.ts +21 -0
- package/src/placeholder/types.ts +78 -0
- package/src/theme/IconThemeProvider.tsx +94 -0
- package/src/theme/context.ts +51 -0
- package/src/theme/index.ts +19 -0
- package/src/theme/types.ts +108 -0
- package/src/theme/useIconTheme.ts +119 -0
- package/src/types/index.ts +78 -1
- package/lib/commonjs/components/Phosphor.js +0 -493
- package/lib/commonjs/components/Phosphor.js.map +0 -1
- package/lib/module/components/Phosphor.js +0 -488
- package/lib/module/components/Phosphor.js.map +0 -1
- package/lib/typescript/components/Phosphor.d.ts +0 -472
- package/lib/typescript/components/Phosphor.d.ts.map +0 -1
- package/src/components/Phosphor.tsx +0 -506
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* React Navigation Integration Types
|
|
3
|
+
* Type definitions for navigation icon helpers
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import type { ReactNode } from 'react';
|
|
7
|
+
import type { StyleProp, ViewStyle } from 'react-native';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Props passed by React Navigation to tabBarIcon
|
|
11
|
+
*/
|
|
12
|
+
export interface TabBarIconProps {
|
|
13
|
+
focused: boolean;
|
|
14
|
+
color: string;
|
|
15
|
+
size: number;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Props passed by React Navigation to drawerIcon
|
|
20
|
+
*/
|
|
21
|
+
export interface DrawerIconProps {
|
|
22
|
+
focused: boolean;
|
|
23
|
+
color: string;
|
|
24
|
+
size: number;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Props passed by React Navigation to headerLeft/headerRight icons
|
|
29
|
+
*/
|
|
30
|
+
export interface HeaderIconProps {
|
|
31
|
+
tintColor?: string;
|
|
32
|
+
pressColor?: string;
|
|
33
|
+
pressOpacity?: number;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Icon specification - can be a full name or alias
|
|
38
|
+
* @example 'mdi:home' or 'home' (if alias is registered)
|
|
39
|
+
*/
|
|
40
|
+
export type IconSpec = string;
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Configuration for tab bar icon
|
|
44
|
+
*/
|
|
45
|
+
export interface TabBarIconConfig {
|
|
46
|
+
/**
|
|
47
|
+
* Icon to show when tab is focused
|
|
48
|
+
* Can be a full icon name (mdi:home) or alias (home)
|
|
49
|
+
*/
|
|
50
|
+
focused: IconSpec;
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Icon to show when tab is not focused
|
|
54
|
+
* If not provided, uses the focused icon with different styling
|
|
55
|
+
*/
|
|
56
|
+
unfocused?: IconSpec;
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Custom size override (default: uses navigation's size)
|
|
60
|
+
*/
|
|
61
|
+
size?: number;
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Custom color override for focused state
|
|
65
|
+
*/
|
|
66
|
+
focusedColor?: string;
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Custom color override for unfocused state
|
|
70
|
+
*/
|
|
71
|
+
unfocusedColor?: string;
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Additional style for the icon container
|
|
75
|
+
*/
|
|
76
|
+
style?: StyleProp<ViewStyle>;
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Accessibility label
|
|
80
|
+
*/
|
|
81
|
+
accessibilityLabel?: string;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Simple config - just icon names
|
|
86
|
+
*/
|
|
87
|
+
export type SimpleTabBarIconConfig = IconSpec | [IconSpec, IconSpec];
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Configuration for drawer icon
|
|
91
|
+
*/
|
|
92
|
+
export interface DrawerIconConfig {
|
|
93
|
+
/**
|
|
94
|
+
* Icon to show
|
|
95
|
+
*/
|
|
96
|
+
icon: IconSpec;
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Icon when drawer item is focused
|
|
100
|
+
*/
|
|
101
|
+
focusedIcon?: IconSpec;
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Custom size override
|
|
105
|
+
*/
|
|
106
|
+
size?: number;
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Additional style
|
|
110
|
+
*/
|
|
111
|
+
style?: StyleProp<ViewStyle>;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Return type for createTabBarIcon
|
|
116
|
+
*/
|
|
117
|
+
export type TabBarIconFunction = (props: TabBarIconProps) => ReactNode;
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Return type for createDrawerIcon
|
|
121
|
+
*/
|
|
122
|
+
export type DrawerIconFunction = (props: DrawerIconProps) => ReactNode;
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Return type for createHeaderIcon
|
|
126
|
+
*/
|
|
127
|
+
export type HeaderIconFunction = (props: HeaderIconProps) => ReactNode;
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Navigation icon preset - common icon patterns
|
|
131
|
+
*/
|
|
132
|
+
export interface NavigationIconPreset {
|
|
133
|
+
home: { focused: IconSpec; unfocused: IconSpec };
|
|
134
|
+
search: { focused: IconSpec; unfocused: IconSpec };
|
|
135
|
+
profile: { focused: IconSpec; unfocused: IconSpec };
|
|
136
|
+
settings: { focused: IconSpec; unfocused: IconSpec };
|
|
137
|
+
notifications: { focused: IconSpec; unfocused: IconSpec };
|
|
138
|
+
messages: { focused: IconSpec; unfocused: IconSpec };
|
|
139
|
+
favorites: { focused: IconSpec; unfocused: IconSpec };
|
|
140
|
+
cart: { focused: IconSpec; unfocused: IconSpec };
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Default icon presets using popular icon sets
|
|
145
|
+
*/
|
|
146
|
+
export const DEFAULT_NAVIGATION_PRESETS: NavigationIconPreset = {
|
|
147
|
+
home: { focused: 'mdi:home', unfocused: 'mdi:home-outline' },
|
|
148
|
+
search: { focused: 'mdi:magnify', unfocused: 'mdi:magnify' },
|
|
149
|
+
profile: { focused: 'mdi:account', unfocused: 'mdi:account-outline' },
|
|
150
|
+
settings: { focused: 'mdi:cog', unfocused: 'mdi:cog-outline' },
|
|
151
|
+
notifications: { focused: 'mdi:bell', unfocused: 'mdi:bell-outline' },
|
|
152
|
+
messages: { focused: 'mdi:message', unfocused: 'mdi:message-outline' },
|
|
153
|
+
favorites: { focused: 'mdi:heart', unfocused: 'mdi:heart-outline' },
|
|
154
|
+
cart: { focused: 'mdi:cart', unfocused: 'mdi:cart-outline' },
|
|
155
|
+
};
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useNavigationIcon - Hook for creating navigation icons
|
|
3
|
+
* Provides a clean API for creating icons with navigation context
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import React, { useMemo, useCallback } from 'react';
|
|
7
|
+
import { Icon } from '../alias';
|
|
8
|
+
import type {
|
|
9
|
+
TabBarIconProps,
|
|
10
|
+
DrawerIconProps,
|
|
11
|
+
TabBarIconFunction,
|
|
12
|
+
DrawerIconFunction,
|
|
13
|
+
} from './types';
|
|
14
|
+
|
|
15
|
+
// IconSpec is just a type alias for string (icon name)
|
|
16
|
+
type IconSpec = string;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Hook options
|
|
20
|
+
*/
|
|
21
|
+
export interface UseNavigationIconOptions {
|
|
22
|
+
/**
|
|
23
|
+
* Default size for icons
|
|
24
|
+
* @default 24
|
|
25
|
+
*/
|
|
26
|
+
defaultSize?: number;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Suffix for unfocused icon variants
|
|
30
|
+
* @default '-outline'
|
|
31
|
+
*/
|
|
32
|
+
outlineSuffix?: string;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Return type for useNavigationIcon
|
|
37
|
+
*/
|
|
38
|
+
export interface UseNavigationIconReturn {
|
|
39
|
+
/**
|
|
40
|
+
* Create a tab bar icon function
|
|
41
|
+
*/
|
|
42
|
+
tabBarIcon: (focused: IconSpec, unfocused?: IconSpec) => TabBarIconFunction;
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Create a drawer icon function
|
|
46
|
+
*/
|
|
47
|
+
drawerIcon: (icon: IconSpec, focusedIcon?: IconSpec) => DrawerIconFunction;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Create an auto-outline tab bar icon
|
|
51
|
+
* Uses {name} for focused and {name}-outline for unfocused
|
|
52
|
+
*/
|
|
53
|
+
autoTabBarIcon: (prefix: string, name: string) => TabBarIconFunction;
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Render an icon directly with navigation props
|
|
57
|
+
*/
|
|
58
|
+
renderIcon: (name: IconSpec, props: { color: string; size: number }) => React.ReactElement;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Hook for creating navigation icons with consistent styling
|
|
63
|
+
*
|
|
64
|
+
* @example Basic usage
|
|
65
|
+
* ```tsx
|
|
66
|
+
* import { useNavigationIcon } from 'rn-iconify/navigation';
|
|
67
|
+
*
|
|
68
|
+
* function MyTabs() {
|
|
69
|
+
* const { tabBarIcon, drawerIcon } = useNavigationIcon();
|
|
70
|
+
*
|
|
71
|
+
* return (
|
|
72
|
+
* <Tab.Navigator>
|
|
73
|
+
* <Tab.Screen
|
|
74
|
+
* name="Home"
|
|
75
|
+
* options={{
|
|
76
|
+
* tabBarIcon: tabBarIcon('mdi:home', 'mdi:home-outline'),
|
|
77
|
+
* }}
|
|
78
|
+
* />
|
|
79
|
+
* <Tab.Screen
|
|
80
|
+
* name="Settings"
|
|
81
|
+
* options={{
|
|
82
|
+
* tabBarIcon: tabBarIcon('mdi:cog'),
|
|
83
|
+
* }}
|
|
84
|
+
* />
|
|
85
|
+
* </Tab.Navigator>
|
|
86
|
+
* );
|
|
87
|
+
* }
|
|
88
|
+
* ```
|
|
89
|
+
*
|
|
90
|
+
* @example With auto-outline
|
|
91
|
+
* ```tsx
|
|
92
|
+
* const { autoTabBarIcon } = useNavigationIcon();
|
|
93
|
+
*
|
|
94
|
+
* <Tab.Screen
|
|
95
|
+
* options={{
|
|
96
|
+
* // Uses mdi:home (focused) and mdi:home-outline (unfocused)
|
|
97
|
+
* tabBarIcon: autoTabBarIcon('mdi', 'home'),
|
|
98
|
+
* }}
|
|
99
|
+
* />
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
102
|
+
export function useNavigationIcon(options: UseNavigationIconOptions = {}): UseNavigationIconReturn {
|
|
103
|
+
const { defaultSize = 24, outlineSuffix = '-outline' } = options;
|
|
104
|
+
|
|
105
|
+
// Create tab bar icon function
|
|
106
|
+
const tabBarIcon = useCallback(
|
|
107
|
+
(focused: IconSpec, unfocused?: IconSpec): TabBarIconFunction => {
|
|
108
|
+
return ({ focused: isFocused, color, size }: TabBarIconProps) => {
|
|
109
|
+
const iconName = isFocused ? focused : (unfocused ?? focused);
|
|
110
|
+
return <Icon name={iconName} size={size ?? defaultSize} color={color} />;
|
|
111
|
+
};
|
|
112
|
+
},
|
|
113
|
+
[defaultSize]
|
|
114
|
+
);
|
|
115
|
+
|
|
116
|
+
// Create drawer icon function
|
|
117
|
+
const drawerIcon = useCallback(
|
|
118
|
+
(icon: IconSpec, focusedIcon?: IconSpec): DrawerIconFunction => {
|
|
119
|
+
return ({ focused, color, size }: DrawerIconProps) => {
|
|
120
|
+
const iconName = focused && focusedIcon ? focusedIcon : icon;
|
|
121
|
+
return <Icon name={iconName} size={size ?? defaultSize} color={color} />;
|
|
122
|
+
};
|
|
123
|
+
},
|
|
124
|
+
[defaultSize]
|
|
125
|
+
);
|
|
126
|
+
|
|
127
|
+
// Create auto-outline tab bar icon
|
|
128
|
+
const autoTabBarIcon = useCallback(
|
|
129
|
+
(prefix: string, name: string): TabBarIconFunction => {
|
|
130
|
+
const focused = `${prefix}:${name}`;
|
|
131
|
+
const unfocused = `${prefix}:${name}${outlineSuffix}`;
|
|
132
|
+
return tabBarIcon(focused, unfocused);
|
|
133
|
+
},
|
|
134
|
+
[tabBarIcon, outlineSuffix]
|
|
135
|
+
);
|
|
136
|
+
|
|
137
|
+
// Render icon directly
|
|
138
|
+
const renderIcon = useCallback(
|
|
139
|
+
(name: IconSpec, props: { color: string; size: number }): React.ReactElement => {
|
|
140
|
+
return <Icon name={name} size={props.size ?? defaultSize} color={props.color} />;
|
|
141
|
+
},
|
|
142
|
+
[defaultSize]
|
|
143
|
+
);
|
|
144
|
+
|
|
145
|
+
return useMemo(
|
|
146
|
+
() => ({
|
|
147
|
+
tabBarIcon,
|
|
148
|
+
drawerIcon,
|
|
149
|
+
autoTabBarIcon,
|
|
150
|
+
renderIcon,
|
|
151
|
+
}),
|
|
152
|
+
[tabBarIcon, drawerIcon, autoTabBarIcon, renderIcon]
|
|
153
|
+
);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
export default useNavigationIcon;
|
|
@@ -1,14 +1,26 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Iconify API Client
|
|
3
3
|
* Handles fetching icon data from Iconify API
|
|
4
|
+
* Supports custom API servers via ConfigManager
|
|
4
5
|
*/
|
|
5
6
|
|
|
6
7
|
import type { IconifyAPIResponse, IconifyIconData } from '../types';
|
|
8
|
+
import { ConfigManager } from '../config';
|
|
7
9
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Get current API configuration
|
|
12
|
+
*/
|
|
13
|
+
function getAPISettings() {
|
|
14
|
+
const config = ConfigManager.getAPIConfig();
|
|
15
|
+
return {
|
|
16
|
+
baseUrl: config.apiUrl,
|
|
17
|
+
timeout: config.timeout,
|
|
18
|
+
retries: config.retries,
|
|
19
|
+
retryDelay: config.retryDelay,
|
|
20
|
+
headers: config.headers,
|
|
21
|
+
logging: config.logging,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
12
24
|
|
|
13
25
|
/**
|
|
14
26
|
* Request deduplication map
|
|
@@ -22,18 +34,26 @@ const pendingRequests = new Map<string, Promise<string>>();
|
|
|
22
34
|
async function fetchWithTimeout(
|
|
23
35
|
url: string,
|
|
24
36
|
options: RequestInit = {},
|
|
25
|
-
timeoutMs
|
|
37
|
+
timeoutMs?: number
|
|
26
38
|
): Promise<Response> {
|
|
39
|
+
const settings = getAPISettings();
|
|
40
|
+
const effectiveTimeout = timeoutMs ?? settings.timeout;
|
|
27
41
|
const controller = new AbortController();
|
|
28
|
-
const timeoutId = setTimeout(() => controller.abort(),
|
|
42
|
+
const timeoutId = setTimeout(() => controller.abort(), effectiveTimeout);
|
|
29
43
|
|
|
30
44
|
// Merge abort signals if one is provided
|
|
31
45
|
const signal = options.signal
|
|
32
46
|
? anySignal([options.signal, controller.signal])
|
|
33
47
|
: controller.signal;
|
|
34
48
|
|
|
49
|
+
// Merge headers from config
|
|
50
|
+
const headers = {
|
|
51
|
+
...settings.headers,
|
|
52
|
+
...(options.headers as Record<string, string> | undefined),
|
|
53
|
+
};
|
|
54
|
+
|
|
35
55
|
try {
|
|
36
|
-
const response = await fetch(url, { ...options, signal });
|
|
56
|
+
const response = await fetch(url, { ...options, headers, signal });
|
|
37
57
|
return response;
|
|
38
58
|
} finally {
|
|
39
59
|
clearTimeout(timeoutId);
|
|
@@ -150,16 +170,22 @@ export async function fetchIcon(iconName: string, signal?: AbortSignal): Promise
|
|
|
150
170
|
|
|
151
171
|
// Create and store the request promise
|
|
152
172
|
const requestPromise = (async () => {
|
|
173
|
+
const settings = getAPISettings();
|
|
153
174
|
let lastError: Error | null = null;
|
|
154
175
|
|
|
155
|
-
for (let attempt = 0; attempt <=
|
|
176
|
+
for (let attempt = 0; attempt <= settings.retries; attempt++) {
|
|
156
177
|
try {
|
|
157
178
|
// Check if already aborted
|
|
158
179
|
if (signal?.aborted) {
|
|
159
180
|
throw new DOMException('Aborted', 'AbortError');
|
|
160
181
|
}
|
|
161
182
|
|
|
162
|
-
const url = `${
|
|
183
|
+
const url = `${settings.baseUrl}/${prefix}.json?icons=${name}`;
|
|
184
|
+
|
|
185
|
+
if (settings.logging) {
|
|
186
|
+
console.log(`[rn-iconify] Fetching: ${url} (attempt ${attempt + 1})`);
|
|
187
|
+
}
|
|
188
|
+
|
|
163
189
|
const response = await fetchWithTimeout(url, { signal });
|
|
164
190
|
|
|
165
191
|
if (!response.ok) {
|
|
@@ -203,15 +229,20 @@ export async function fetchIcon(iconName: string, signal?: AbortSignal): Promise
|
|
|
203
229
|
lastError = error instanceof Error ? error : new Error(String(error));
|
|
204
230
|
|
|
205
231
|
// Wait before retrying (except on last attempt)
|
|
206
|
-
if (attempt <
|
|
207
|
-
|
|
232
|
+
if (attempt < settings.retries) {
|
|
233
|
+
const delay = settings.retryDelay * (attempt + 1);
|
|
234
|
+
if (settings.logging) {
|
|
235
|
+
console.log(`[rn-iconify] Retry ${attempt + 1} in ${delay}ms...`);
|
|
236
|
+
}
|
|
237
|
+
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
208
238
|
}
|
|
209
239
|
}
|
|
210
240
|
}
|
|
211
241
|
|
|
212
242
|
// All retries exhausted
|
|
213
243
|
throw (
|
|
214
|
-
lastError ??
|
|
244
|
+
lastError ??
|
|
245
|
+
new Error(`Failed to fetch icon "${iconName}" after ${settings.retries + 1} attempts`)
|
|
215
246
|
);
|
|
216
247
|
})();
|
|
217
248
|
|
|
@@ -261,6 +292,7 @@ export async function fetchIconsBatch(
|
|
|
261
292
|
}
|
|
262
293
|
|
|
263
294
|
// Fetch each prefix group with error handling per group
|
|
295
|
+
const settings = getAPISettings();
|
|
264
296
|
const fetchPromises = Array.from(byPrefix.entries()).map(async ([prefix, names]) => {
|
|
265
297
|
try {
|
|
266
298
|
// Check if aborted
|
|
@@ -271,7 +303,12 @@ export async function fetchIconsBatch(
|
|
|
271
303
|
|
|
272
304
|
// Sort icon names alphabetically for consistent caching (Iconify best practice)
|
|
273
305
|
const sortedNames = [...names].sort();
|
|
274
|
-
const url = `${
|
|
306
|
+
const url = `${settings.baseUrl}/${prefix}.json?icons=${sortedNames.join(',')}`;
|
|
307
|
+
|
|
308
|
+
if (settings.logging) {
|
|
309
|
+
console.log(`[rn-iconify] Batch fetching: ${url}`);
|
|
310
|
+
}
|
|
311
|
+
|
|
275
312
|
const response = await fetchWithTimeout(url, { signal });
|
|
276
313
|
|
|
277
314
|
if (!response.ok) {
|
|
@@ -321,12 +358,143 @@ export async function fetchIconsBatch(
|
|
|
321
358
|
* Check if Iconify API is reachable
|
|
322
359
|
*/
|
|
323
360
|
export async function checkAPIHealth(): Promise<boolean> {
|
|
361
|
+
const settings = getAPISettings();
|
|
324
362
|
try {
|
|
325
|
-
const response = await fetch(`${
|
|
363
|
+
const response = await fetch(`${settings.baseUrl}/collections`, {
|
|
326
364
|
method: 'HEAD',
|
|
365
|
+
headers: settings.headers,
|
|
327
366
|
});
|
|
328
367
|
return response.ok;
|
|
329
368
|
} catch {
|
|
330
369
|
return false;
|
|
331
370
|
}
|
|
332
371
|
}
|
|
372
|
+
|
|
373
|
+
/**
|
|
374
|
+
* Get the current API base URL
|
|
375
|
+
*/
|
|
376
|
+
export function getAPIBaseUrl(): string {
|
|
377
|
+
return getAPISettings().baseUrl;
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
/**
|
|
381
|
+
* Icon collection info from Iconify API
|
|
382
|
+
*/
|
|
383
|
+
export interface IconifyCollectionInfo {
|
|
384
|
+
prefix: string;
|
|
385
|
+
total: number;
|
|
386
|
+
title?: string;
|
|
387
|
+
icons: string[];
|
|
388
|
+
aliases?: Record<string, string>;
|
|
389
|
+
categories?: Record<string, string[]>;
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
/**
|
|
393
|
+
* Fetch all icons for a specific icon set from Iconify API
|
|
394
|
+
* @param prefix Icon set prefix (e.g., "mdi", "heroicons")
|
|
395
|
+
* @param signal Optional AbortSignal for cancellation
|
|
396
|
+
* @returns Collection info including all icon names
|
|
397
|
+
*/
|
|
398
|
+
export async function fetchCollection(
|
|
399
|
+
prefix: string,
|
|
400
|
+
signal?: AbortSignal
|
|
401
|
+
): Promise<IconifyCollectionInfo> {
|
|
402
|
+
// Validate prefix
|
|
403
|
+
if (!SAFE_NAME_PATTERN.test(prefix)) {
|
|
404
|
+
throw new Error(`Invalid icon set prefix: "${prefix}"`);
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
const settings = getAPISettings();
|
|
408
|
+
const url = `${settings.baseUrl}/collection?prefix=${prefix}`;
|
|
409
|
+
|
|
410
|
+
if (settings.logging) {
|
|
411
|
+
console.log(`[rn-iconify] Fetching collection: ${url}`);
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
const response = await fetchWithTimeout(url, { signal });
|
|
415
|
+
|
|
416
|
+
if (!response.ok) {
|
|
417
|
+
throw new Error(`HTTP ${response.status}: Failed to fetch collection "${prefix}"`);
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
const data = await response.json();
|
|
421
|
+
|
|
422
|
+
// Validate response structure
|
|
423
|
+
if (!data || typeof data !== 'object') {
|
|
424
|
+
throw new Error(`Invalid API response for collection "${prefix}"`);
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
// Build icons list from uncategorized or categories
|
|
428
|
+
let icons: string[] = [];
|
|
429
|
+
|
|
430
|
+
if (data.uncategorized && Array.isArray(data.uncategorized)) {
|
|
431
|
+
icons = [...data.uncategorized];
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
if (data.categories && typeof data.categories === 'object') {
|
|
435
|
+
for (const category of Object.values(data.categories)) {
|
|
436
|
+
if (Array.isArray(category)) {
|
|
437
|
+
icons.push(...category);
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
// Remove duplicates
|
|
443
|
+
icons = [...new Set(icons)];
|
|
444
|
+
|
|
445
|
+
return {
|
|
446
|
+
prefix,
|
|
447
|
+
total: data.total || icons.length,
|
|
448
|
+
title: data.title,
|
|
449
|
+
icons,
|
|
450
|
+
aliases: data.aliases,
|
|
451
|
+
categories: data.categories,
|
|
452
|
+
};
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
/**
|
|
456
|
+
* Search icons using Iconify API
|
|
457
|
+
* @param query Search query
|
|
458
|
+
* @param prefixes Optional array of icon set prefixes to search
|
|
459
|
+
* @param limit Maximum number of results
|
|
460
|
+
* @param signal Optional AbortSignal for cancellation
|
|
461
|
+
* @returns Array of icon names
|
|
462
|
+
*/
|
|
463
|
+
export async function searchIconsAPI(
|
|
464
|
+
query: string,
|
|
465
|
+
prefixes?: string[],
|
|
466
|
+
limit: number = 100,
|
|
467
|
+
signal?: AbortSignal
|
|
468
|
+
): Promise<string[]> {
|
|
469
|
+
const settings = getAPISettings();
|
|
470
|
+
|
|
471
|
+
// Build URL with query parameters
|
|
472
|
+
const params = new URLSearchParams();
|
|
473
|
+
params.set('query', query);
|
|
474
|
+
params.set('limit', String(limit));
|
|
475
|
+
|
|
476
|
+
if (prefixes && prefixes.length > 0) {
|
|
477
|
+
params.set('prefixes', prefixes.join(','));
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
const url = `${settings.baseUrl}/search?${params.toString()}`;
|
|
481
|
+
|
|
482
|
+
if (settings.logging) {
|
|
483
|
+
console.log(`[rn-iconify] Searching icons: ${url}`);
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
const response = await fetchWithTimeout(url, { signal });
|
|
487
|
+
|
|
488
|
+
if (!response.ok) {
|
|
489
|
+
throw new Error(`HTTP ${response.status}: Search failed`);
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
const data = await response.json();
|
|
493
|
+
|
|
494
|
+
// Response is an array of icon names
|
|
495
|
+
if (Array.isArray(data.icons)) {
|
|
496
|
+
return data.icons;
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
return [];
|
|
500
|
+
}
|
package/src/network/index.ts
CHANGED
|
@@ -1 +1,11 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export {
|
|
2
|
+
fetchIcon,
|
|
3
|
+
fetchIconsBatch,
|
|
4
|
+
parseIconName,
|
|
5
|
+
checkAPIHealth,
|
|
6
|
+
getAPIBaseUrl,
|
|
7
|
+
fetchCollection,
|
|
8
|
+
searchIconsAPI,
|
|
9
|
+
} from './IconifyAPI';
|
|
10
|
+
|
|
11
|
+
export type { BatchFetchResult, IconifyCollectionInfo } from './IconifyAPI';
|