rn-iconify 2.1.1 → 2.2.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 (93) hide show
  1. package/lib/commonjs/IconRenderer.js +54 -12
  2. package/lib/commonjs/IconRenderer.js.map +1 -1
  3. package/lib/commonjs/babel/cache-writer.js +102 -26
  4. package/lib/commonjs/babel/cache-writer.js.map +1 -1
  5. package/lib/commonjs/babel/plugin.js +129 -44
  6. package/lib/commonjs/babel/plugin.js.map +1 -1
  7. package/lib/commonjs/babel/scanner.js +219 -0
  8. package/lib/commonjs/babel/scanner.js.map +1 -0
  9. package/lib/commonjs/babel/types.js.map +1 -1
  10. package/lib/commonjs/cache/CacheManager.js +70 -1
  11. package/lib/commonjs/cache/CacheManager.js.map +1 -1
  12. package/lib/commonjs/config/ConfigManager.js +8 -1
  13. package/lib/commonjs/config/ConfigManager.js.map +1 -1
  14. package/lib/commonjs/config/index.js.map +1 -1
  15. package/lib/commonjs/config/types.js +9 -0
  16. package/lib/commonjs/config/types.js.map +1 -1
  17. package/lib/commonjs/index.js.map +1 -1
  18. package/lib/commonjs/metro/devServerMiddleware.js +150 -0
  19. package/lib/commonjs/metro/devServerMiddleware.js.map +1 -0
  20. package/lib/commonjs/metro/index.js +20 -0
  21. package/lib/commonjs/metro/index.js.map +1 -0
  22. package/lib/commonjs/metro/types.js +6 -0
  23. package/lib/commonjs/metro/types.js.map +1 -0
  24. package/lib/commonjs/metro/withRnIconify.js +53 -0
  25. package/lib/commonjs/metro/withRnIconify.js.map +1 -0
  26. package/lib/module/IconRenderer.js +54 -12
  27. package/lib/module/IconRenderer.js.map +1 -1
  28. package/lib/module/babel/cache-writer.js +99 -26
  29. package/lib/module/babel/cache-writer.js.map +1 -1
  30. package/lib/module/babel/plugin.js +129 -46
  31. package/lib/module/babel/plugin.js.map +1 -1
  32. package/lib/module/babel/scanner.js +213 -0
  33. package/lib/module/babel/scanner.js.map +1 -0
  34. package/lib/module/babel/types.js.map +1 -1
  35. package/lib/module/cache/CacheManager.js +70 -1
  36. package/lib/module/cache/CacheManager.js.map +1 -1
  37. package/lib/module/config/ConfigManager.js +8 -1
  38. package/lib/module/config/ConfigManager.js.map +1 -1
  39. package/lib/module/config/index.js.map +1 -1
  40. package/lib/module/config/types.js +9 -0
  41. package/lib/module/config/types.js.map +1 -1
  42. package/lib/module/index.js.map +1 -1
  43. package/lib/module/metro/devServerMiddleware.js +143 -0
  44. package/lib/module/metro/devServerMiddleware.js.map +1 -0
  45. package/lib/module/metro/index.js +19 -0
  46. package/lib/module/metro/index.js.map +1 -0
  47. package/lib/module/metro/types.js +2 -0
  48. package/lib/module/metro/types.js.map +1 -0
  49. package/lib/module/metro/withRnIconify.js +48 -0
  50. package/lib/module/metro/withRnIconify.js.map +1 -0
  51. package/lib/typescript/IconRenderer.d.ts.map +1 -1
  52. package/lib/typescript/babel/cache-writer.d.ts +16 -2
  53. package/lib/typescript/babel/cache-writer.d.ts.map +1 -1
  54. package/lib/typescript/babel/plugin.d.ts +5 -0
  55. package/lib/typescript/babel/plugin.d.ts.map +1 -1
  56. package/lib/typescript/babel/scanner.d.ts +31 -0
  57. package/lib/typescript/babel/scanner.d.ts.map +1 -0
  58. package/lib/typescript/babel/types.d.ts +8 -1
  59. package/lib/typescript/babel/types.d.ts.map +1 -1
  60. package/lib/typescript/cache/CacheManager.d.ts +16 -0
  61. package/lib/typescript/cache/CacheManager.d.ts.map +1 -1
  62. package/lib/typescript/config/ConfigManager.d.ts +5 -1
  63. package/lib/typescript/config/ConfigManager.d.ts.map +1 -1
  64. package/lib/typescript/config/index.d.ts +1 -1
  65. package/lib/typescript/config/index.d.ts.map +1 -1
  66. package/lib/typescript/config/types.d.ts +26 -0
  67. package/lib/typescript/config/types.d.ts.map +1 -1
  68. package/lib/typescript/index.d.ts +1 -1
  69. package/lib/typescript/index.d.ts.map +1 -1
  70. package/lib/typescript/metro/devServerMiddleware.d.ts +11 -0
  71. package/lib/typescript/metro/devServerMiddleware.d.ts.map +1 -0
  72. package/lib/typescript/metro/index.d.ts +19 -0
  73. package/lib/typescript/metro/index.d.ts.map +1 -0
  74. package/lib/typescript/metro/types.d.ts +46 -0
  75. package/lib/typescript/metro/types.d.ts.map +1 -0
  76. package/lib/typescript/metro/withRnIconify.d.ts +20 -0
  77. package/lib/typescript/metro/withRnIconify.d.ts.map +1 -0
  78. package/metro.js +12 -0
  79. package/package.json +8 -4
  80. package/src/IconRenderer.tsx +59 -12
  81. package/src/babel/cache-writer.ts +105 -31
  82. package/src/babel/plugin.ts +157 -34
  83. package/src/babel/scanner.ts +274 -0
  84. package/src/babel/types.ts +9 -1
  85. package/src/cache/CacheManager.ts +70 -1
  86. package/src/config/ConfigManager.ts +9 -0
  87. package/src/config/index.ts +1 -0
  88. package/src/config/types.ts +35 -0
  89. package/src/index.ts +1 -0
  90. package/src/metro/devServerMiddleware.ts +137 -0
  91. package/src/metro/index.ts +19 -0
  92. package/src/metro/types.ts +52 -0
  93. package/src/metro/withRnIconify.ts +52 -0
@@ -34,6 +34,11 @@ class CacheManagerImpl {
34
34
  */
35
35
  bundledIconsInitialized = false;
36
36
 
37
+ /**
38
+ * Guard to prevent reporting icons during bundle load
39
+ */
40
+ isLoadingBundle = false;
41
+
37
42
  /**
38
43
  * Initialize bundled icons from the Babel plugin cache
39
44
  * This should be called automatically on first access
@@ -60,10 +65,10 @@ class CacheManagerImpl {
60
65
  if (!bundle || !bundle.icons || bundle.version !== '1.0.0') {
61
66
  return 0;
62
67
  }
68
+ this.isLoadingBundle = true;
63
69
  this.bundledIcons = new Map();
64
70
  let skippedCount = 0;
65
71
  for (const [iconName, data] of Object.entries(bundle.icons)) {
66
- // Validate icon data has a valid SVG string
67
72
  if (data && typeof data.svg === 'string' && data.svg.length > 0) {
68
73
  this.bundledIcons.set(iconName, data.svg);
69
74
  } else {
@@ -77,6 +82,10 @@ class CacheManagerImpl {
77
82
  console.warn(`[rn-iconify] Skipped ${skippedCount} invalid icons in bundle`);
78
83
  }
79
84
  this.bundledIconsInitialized = true;
85
+
86
+ // Warmup memory cache from disk cache
87
+ this.warmup();
88
+ this.isLoadingBundle = false;
80
89
  return this.bundledIcons.size;
81
90
  }
82
91
 
@@ -138,6 +147,11 @@ class CacheManagerImpl {
138
147
  set(iconName, svg) {
139
148
  MemoryCache.set(iconName, svg);
140
149
  DiskCache.set(iconName, svg);
150
+
151
+ // Report to Metro dev server for dynamic icon learning
152
+ if (!this.isLoadingBundle) {
153
+ this.reportIconUsage(iconName);
154
+ }
141
155
  }
142
156
 
143
157
  /**
@@ -312,6 +326,61 @@ class CacheManagerImpl {
312
326
  }
313
327
  }
314
328
  }
329
+
330
+ /**
331
+ * Warmup memory cache by loading recent disk cache entries
332
+ * Called automatically at the end of loadBundle()
333
+ *
334
+ * @param maxIcons Maximum number of icons to load into memory
335
+ */
336
+ warmup(maxIcons = 100) {
337
+ try {
338
+ const keys = DiskCache.keys();
339
+ const toLoad = keys.slice(0, maxIcons);
340
+ let loaded = 0;
341
+ for (const key of toLoad) {
342
+ if (!MemoryCache.has(key)) {
343
+ const svg = DiskCache.get(key);
344
+ if (svg) {
345
+ MemoryCache.set(key, svg);
346
+ loaded++;
347
+ }
348
+ }
349
+ }
350
+ if (__DEV__ && loaded > 0) {
351
+ console.log(`[rn-iconify] Warmed up ${loaded} icons from disk cache`);
352
+ }
353
+ } catch {
354
+ // Warmup is best-effort, don't fail
355
+ }
356
+ }
357
+
358
+ /**
359
+ * Report icon usage to Metro dev server (DEV only)
360
+ * Fire-and-forget POST to the Metro middleware
361
+ */
362
+ reportIconUsage(iconName) {
363
+ if (typeof __DEV__ === 'undefined' || !__DEV__) return;
364
+ if (this.isLoadingBundle) return;
365
+ try {
366
+ // Use global fetch if available (React Native)
367
+ if (typeof fetch === 'function') {
368
+ fetch('http://localhost:8081/__rn_iconify_log', {
369
+ method: 'POST',
370
+ headers: {
371
+ 'Content-Type': 'application/json'
372
+ },
373
+ body: JSON.stringify({
374
+ icon: iconName
375
+ })
376
+ }).catch(() => {
377
+ // Silently ignore - Metro server might not have the plugin
378
+ });
379
+ }
380
+ } catch {
381
+ // Silently ignore
382
+ }
383
+ }
315
384
  }
316
385
 
317
386
  // Singleton instance
@@ -1 +1 @@
1
- {"version":3,"names":["MemoryCache","DiskCache","getNativeIconify","isNativeModuleAvailable","CacheManagerImpl","prefetchingIcons","Set","bundledIcons","bundledIconsInitialized","initBundledIcons","loadBundle","bundle","icons","version","Map","skippedCount","iconName","data","Object","entries","svg","length","set","__DEV__","console","warn","size","hasBundled","has","getBundledCount","get","memoryCached","bundledSvg","diskCached","delete","clear","clearMemory","getStats","diskStats","memoryCount","bundledCount","diskCount","iconCount","diskSizeBytes","sizeBytes","prefetch","iconNames","fetchFn","toFetch","filter","name","success","failed","forEach","add","nativeModule","result","prefetchIcons","error","prefetchWithJS","CONCURRENCY","i","batch","slice","results","Promise","allSettled","map","j","status","push","value","isNativeAvailable","getNativeStats","getCacheStats","clearNative","clearCache","CacheManager"],"sourceRoot":"../../../src","sources":["cache/CacheManager.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["MemoryCache","DiskCache","getNativeIconify","isNativeModuleAvailable","CacheManagerImpl","prefetchingIcons","Set","bundledIcons","bundledIconsInitialized","isLoadingBundle","initBundledIcons","loadBundle","bundle","icons","version","Map","skippedCount","iconName","data","Object","entries","svg","length","set","__DEV__","console","warn","warmup","size","hasBundled","has","getBundledCount","get","memoryCached","bundledSvg","diskCached","reportIconUsage","delete","clear","clearMemory","getStats","diskStats","memoryCount","bundledCount","diskCount","iconCount","diskSizeBytes","sizeBytes","prefetch","iconNames","fetchFn","toFetch","filter","name","success","failed","forEach","add","nativeModule","result","prefetchIcons","error","prefetchWithJS","CONCURRENCY","i","batch","slice","results","Promise","allSettled","map","j","status","push","value","isNativeAvailable","getNativeStats","getCacheStats","clearNative","clearCache","maxIcons","keys","toLoad","loaded","key","log","fetch","method","headers","body","JSON","stringify","icon","catch","CacheManager"],"sourceRoot":"../../../src","sources":["cache/CacheManager.ts"],"mappings":"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","ignoreList":[]}
@@ -62,6 +62,12 @@ export const ConfigManager = {
62
62
  getPerformanceConfig() {
63
63
  return currentConfig.performance;
64
64
  },
65
+ /**
66
+ * Get defaults configuration
67
+ */
68
+ getDefaultsConfig() {
69
+ return currentConfig.defaults;
70
+ },
65
71
  /**
66
72
  * Update configuration
67
73
  * Merges with existing configuration
@@ -70,7 +76,8 @@ export const ConfigManager = {
70
76
  currentConfig = {
71
77
  api: deepMerge(currentConfig.api, config.api ?? {}),
72
78
  cache: deepMerge(currentConfig.cache, config.cache ?? {}),
73
- performance: deepMerge(currentConfig.performance, config.performance ?? {})
79
+ performance: deepMerge(currentConfig.performance, config.performance ?? {}),
80
+ defaults: deepMerge(currentConfig.defaults, config.defaults ?? {})
74
81
  };
75
82
 
76
83
  // Notify listeners
@@ -1 +1 @@
1
- {"version":3,"names":["DEFAULT_CONFIG","deepMerge","target","source","result","key","Object","prototype","hasOwnProperty","call","sourceValue","targetValue","undefined","Array","isArray","currentConfig","configChangeListeners","ConfigManager","getConfig","getAPIConfig","api","getCacheConfig","cache","getPerformanceConfig","performance","setConfig","config","forEach","listener","resetConfig","onConfigChange","push","filter","l","isCustomServer","apiUrl","getAPIUrl","configure","resetConfiguration","getConfiguration"],"sourceRoot":"../../../src","sources":["config/ConfigManager.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["DEFAULT_CONFIG","deepMerge","target","source","result","key","Object","prototype","hasOwnProperty","call","sourceValue","targetValue","undefined","Array","isArray","currentConfig","configChangeListeners","ConfigManager","getConfig","getAPIConfig","api","getCacheConfig","cache","getPerformanceConfig","performance","getDefaultsConfig","defaults","setConfig","config","forEach","listener","resetConfig","onConfigChange","push","filter","l","isCustomServer","apiUrl","getAPIUrl","configure","resetConfiguration","getConfiguration"],"sourceRoot":"../../../src","sources":["config/ConfigManager.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["DEFAULT_CONFIG","ConfigManager","configure","resetConfiguration","getConfiguration","default"],"sourceRoot":"../../../src","sources":["config/index.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AASA,SAASA,cAAc,QAAQ,SAAS;;AAExC;AACA,SAASC,aAAa,EAAEC,SAAS,EAAEC,kBAAkB,EAAEC,gBAAgB,QAAQ,iBAAiB;;AAEhG;AACA,SAASF,SAAS,IAAIG,OAAO,QAAQ,iBAAiB","ignoreList":[]}
1
+ {"version":3,"names":["DEFAULT_CONFIG","ConfigManager","configure","resetConfiguration","getConfiguration","default"],"sourceRoot":"../../../src","sources":["config/index.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAUA,SAASA,cAAc,QAAQ,SAAS;;AAExC;AACA,SAASC,aAAa,EAAEC,SAAS,EAAEC,kBAAkB,EAAEC,gBAAgB,QAAQ,iBAAiB;;AAEhG;AACA,SAASF,SAAS,IAAIG,OAAO,QAAQ,iBAAiB","ignoreList":[]}
@@ -10,6 +10,10 @@
10
10
  * Cache configuration options
11
11
  */
12
12
 
13
+ /**
14
+ * Default icon rendering configuration
15
+ */
16
+
13
17
  /**
14
18
  * Performance monitoring configuration
15
19
  */
@@ -44,6 +48,11 @@ export const DEFAULT_CONFIG = {
44
48
  trackLoadTimes: true,
45
49
  trackCacheStats: true,
46
50
  maxHistorySize: 1000
51
+ },
52
+ defaults: {
53
+ placeholder: false,
54
+ fadeIn: true,
55
+ fadeInDuration: 150
47
56
  }
48
57
  };
49
58
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["DEFAULT_CONFIG","api","apiUrl","timeout","retries","retryDelay","headers","logging","cache","maxMemoryItems","enableDiskCache","diskCachePrefix","performance","enabled","trackLoadTimes","trackCacheStats","maxHistorySize"],"sourceRoot":"../../../src","sources":["config/types.ts"],"mappings":"AAAA;AACA;AACA;;AAEA;AACA;AACA;;AAsCA;AACA;AACA;;AAqBA;AACA;AACA;;AA2BA;AACA;AACA;;AAkBA;AACA;AACA;;AAOA;AACA;AACA;AACA,OAAO,MAAMA,cAA8B,GAAG;EAC5CC,GAAG,EAAE;IACHC,MAAM,EAAE,4BAA4B;IACpCC,OAAO,EAAE,KAAK;IACdC,OAAO,EAAE,CAAC;IACVC,UAAU,EAAE,IAAI;IAChBC,OAAO,EAAE,CAAC,CAAC;IACXC,OAAO,EAAE;EACX,CAAC;EACDC,KAAK,EAAE;IACLC,cAAc,EAAE,GAAG;IACnBC,eAAe,EAAE,IAAI;IACrBC,eAAe,EAAE;EACnB,CAAC;EACDC,WAAW,EAAE;IACXC,OAAO,EAAE,KAAK;IACdC,cAAc,EAAE,IAAI;IACpBC,eAAe,EAAE,IAAI;IACrBC,cAAc,EAAE;EAClB;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["DEFAULT_CONFIG","api","apiUrl","timeout","retries","retryDelay","headers","logging","cache","maxMemoryItems","enableDiskCache","diskCachePrefix","performance","enabled","trackLoadTimes","trackCacheStats","maxHistorySize","defaults","placeholder","fadeIn","fadeInDuration"],"sourceRoot":"../../../src","sources":["config/types.ts"],"mappings":"AAAA;AACA;AACA;;AAEA;AACA;AACA;;AAsCA;AACA;AACA;;AAqBA;AACA;AACA;;AAsBA;AACA;AACA;;AA2BA;AACA;AACA;;AAuBA;AACA;AACA;;AAQA;AACA;AACA;AACA,OAAO,MAAMA,cAA8B,GAAG;EAC5CC,GAAG,EAAE;IACHC,MAAM,EAAE,4BAA4B;IACpCC,OAAO,EAAE,KAAK;IACdC,OAAO,EAAE,CAAC;IACVC,UAAU,EAAE,IAAI;IAChBC,OAAO,EAAE,CAAC,CAAC;IACXC,OAAO,EAAE;EACX,CAAC;EACDC,KAAK,EAAE;IACLC,cAAc,EAAE,GAAG;IACnBC,eAAe,EAAE,IAAI;IACrBC,eAAe,EAAE;EACnB,CAAC;EACDC,WAAW,EAAE;IACXC,OAAO,EAAE,KAAK;IACdC,cAAc,EAAE,IAAI;IACpBC,eAAe,EAAE,IAAI;IACrBC,cAAc,EAAE;EAClB,CAAC;EACDC,QAAQ,EAAE;IACRC,WAAW,EAAE,KAAK;IAClBC,MAAM,EAAE,IAAI;IACZC,cAAc,EAAE;EAClB;AACF,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["Skeleton","Pulse","Shimmer","PlaceholderFactory","DEFAULT_PLACEHOLDER_CONFIG","IconThemeProvider","IconThemeContext","useIconTheme","useIconThemeValue","useMergedIconProps","DEFAULT_ICON_THEME","mergeWithDefaults","Icon","IconAliasProvider","IconAliasContext","useIconAliasContext","useResolveIcon","createIconAliases","defineAliases","createIconSet","AnimatedIcon","useIconAnimation","ANIMATION_PRESETS","resolveAnimation","isAnimationPreset","getEasingFunction","getDefaultDuration","getDefaultLoop","DEFAULT_ANIMATION_DURATIONS","DEFAULT_ANIMATION_LOOPS","createTabBarIcon","createTabBarIcons","tabIcon","createDrawerIcon","createDrawerIcons","createHeaderIcon","createBackIcon","createCloseIcon","createMenuIcon","useNavigationIcon","DEFAULT_NAVIGATION_PRESETS","CacheManager","configure","resetConfiguration","getConfiguration","ConfigManager","DEFAULT_CONFIG","fetchIcon","fetchIconsBatch","parseIconName","checkAPIHealth","getAPIBaseUrl","fetchCollection","searchIconsAPI","getNativeIconify","isNativeModuleAvailable","loadOfflineBundle","loadOfflineBundleAsync","isBundleCompatible","getBundleStats","PerformanceMonitor","enablePerformanceMonitoring","disablePerformanceMonitoring","getPerformanceReport","printPerformanceReport","AccessibilityProvider","AccessibilityContext","useAccessibilityContext","useAccessibility","useAccessibleIcon","withAccessibility","defaultLabelGenerator","adjustForHighContrast","meetsContrastRequirement","getHighContrastAlternative","calculateTouchTargetPadding","DEFAULT_ACCESSIBILITY_CONFIG","IconExplorer","ExplorerContext","useExplorerContext","useExplorer","getAllIconSets","getIconSetByPrefix","getIconSetsByCategory","searchIconSets","generateImportStatement","generateIconJSX","POPULAR_ICON_SETS","DEFAULT_PREVIEW_CONFIG","DEFAULT_EXPLORER_CONFIG","prefetchIcons","iconNames","prefetch","clearCache","clear","clearNative","getCacheStats","getStats"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Skeleton","Pulse","Shimmer","PlaceholderFactory","DEFAULT_PLACEHOLDER_CONFIG","IconThemeProvider","IconThemeContext","useIconTheme","useIconThemeValue","useMergedIconProps","DEFAULT_ICON_THEME","mergeWithDefaults","Icon","IconAliasProvider","IconAliasContext","useIconAliasContext","useResolveIcon","createIconAliases","defineAliases","createIconSet","AnimatedIcon","useIconAnimation","ANIMATION_PRESETS","resolveAnimation","isAnimationPreset","getEasingFunction","getDefaultDuration","getDefaultLoop","DEFAULT_ANIMATION_DURATIONS","DEFAULT_ANIMATION_LOOPS","createTabBarIcon","createTabBarIcons","tabIcon","createDrawerIcon","createDrawerIcons","createHeaderIcon","createBackIcon","createCloseIcon","createMenuIcon","useNavigationIcon","DEFAULT_NAVIGATION_PRESETS","CacheManager","configure","resetConfiguration","getConfiguration","ConfigManager","DEFAULT_CONFIG","fetchIcon","fetchIconsBatch","parseIconName","checkAPIHealth","getAPIBaseUrl","fetchCollection","searchIconsAPI","getNativeIconify","isNativeModuleAvailable","loadOfflineBundle","loadOfflineBundleAsync","isBundleCompatible","getBundleStats","PerformanceMonitor","enablePerformanceMonitoring","disablePerformanceMonitoring","getPerformanceReport","printPerformanceReport","AccessibilityProvider","AccessibilityContext","useAccessibilityContext","useAccessibility","useAccessibleIcon","withAccessibility","defaultLabelGenerator","adjustForHighContrast","meetsContrastRequirement","getHighContrastAlternative","calculateTouchTargetPadding","DEFAULT_ACCESSIBILITY_CONFIG","IconExplorer","ExplorerContext","useExplorerContext","useExplorer","getAllIconSets","getIconSetByPrefix","getIconSetsByCategory","searchIconSets","generateImportStatement","generateIconJSX","POPULAR_ICON_SETS","DEFAULT_PREVIEW_CONFIG","DEFAULT_EXPLORER_CONFIG","prefetchIcons","iconNames","prefetch","clearCache","clear","clearNative","getCacheStats","getStats"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,143 @@
1
+ /**
2
+ * Metro Dev Server Middleware
3
+ * Handles runtime icon usage reporting from the app
4
+ */
5
+
6
+ import * as fs from 'fs';
7
+ import * as path from 'path';
8
+ const USAGE_ENDPOINT = '/__rn_iconify_log';
9
+ const STATUS_ENDPOINT = '/__rn_iconify_status';
10
+
11
+ /**
12
+ * Read the current usage file
13
+ */
14
+ function readUsageFile(usagePath) {
15
+ try {
16
+ if (fs.existsSync(usagePath)) {
17
+ const content = fs.readFileSync(usagePath, 'utf-8');
18
+ const data = JSON.parse(content);
19
+ if (data.version === '1.0.0' && Array.isArray(data.icons)) {
20
+ return data;
21
+ }
22
+ }
23
+ } catch {
24
+ // File corrupted or doesn't exist
25
+ }
26
+ return {
27
+ version: '1.0.0',
28
+ icons: [],
29
+ updatedAt: new Date().toISOString()
30
+ };
31
+ }
32
+
33
+ /**
34
+ * Write usage file atomically (temp file + rename)
35
+ */
36
+ function writeUsageFile(usagePath, data) {
37
+ const dir = path.dirname(usagePath);
38
+ if (!fs.existsSync(dir)) {
39
+ fs.mkdirSync(dir, {
40
+ recursive: true
41
+ });
42
+ }
43
+ const tmpPath = usagePath + '.tmp';
44
+ fs.writeFileSync(tmpPath, JSON.stringify(data, null, 2), 'utf-8');
45
+ fs.renameSync(tmpPath, usagePath);
46
+ }
47
+
48
+ /**
49
+ * Parse JSON body from request
50
+ */
51
+ function parseBody(req) {
52
+ return new Promise((resolve, reject) => {
53
+ let body = '';
54
+ req.on('data', chunk => {
55
+ body += chunk.toString();
56
+ });
57
+ req.on('end', () => {
58
+ try {
59
+ resolve(JSON.parse(body));
60
+ } catch {
61
+ reject(new Error('Invalid JSON'));
62
+ }
63
+ });
64
+ req.on('error', reject);
65
+ });
66
+ }
67
+
68
+ /**
69
+ * Create the dev server middleware handler
70
+ */
71
+ export function createDevServerMiddleware(options = {}) {
72
+ const {
73
+ outputDir = '.rn-iconify',
74
+ verbose = false
75
+ } = options;
76
+ const projectRoot = process.cwd();
77
+ const usagePath = path.isAbsolute(outputDir) ? path.join(outputDir, 'usage.json') : path.join(projectRoot, outputDir, 'usage.json');
78
+ return async function handleRequest(req, res, next) {
79
+ const url = req.url;
80
+
81
+ // POST /__rn_iconify_log — report icon usage
82
+ if (req.method === 'POST' && url === USAGE_ENDPOINT) {
83
+ try {
84
+ const body = await parseBody(req);
85
+ const icon = body.icon;
86
+ if (typeof icon !== 'string' || !icon.includes(':')) {
87
+ res.writeHead(400, {
88
+ 'Content-Type': 'application/json'
89
+ });
90
+ res.end(JSON.stringify({
91
+ error: 'Invalid icon name'
92
+ }));
93
+ return;
94
+ }
95
+
96
+ // Read existing usage
97
+ const usage = readUsageFile(usagePath);
98
+
99
+ // Deduplicate
100
+ if (!usage.icons.includes(icon)) {
101
+ usage.icons.push(icon);
102
+ usage.updatedAt = new Date().toISOString();
103
+ writeUsageFile(usagePath, usage);
104
+ if (verbose) {
105
+ console.log(`[rn-iconify:metro] Learned icon: ${icon} (total: ${usage.icons.length})`);
106
+ }
107
+ }
108
+ res.writeHead(200, {
109
+ 'Content-Type': 'application/json'
110
+ });
111
+ res.end(JSON.stringify({
112
+ ok: true
113
+ }));
114
+ } catch (error) {
115
+ res.writeHead(500, {
116
+ 'Content-Type': 'application/json'
117
+ });
118
+ res.end(JSON.stringify({
119
+ error: 'Internal error'
120
+ }));
121
+ }
122
+ return;
123
+ }
124
+
125
+ // GET /__rn_iconify_status — debug stats
126
+ if (req.method === 'GET' && url === STATUS_ENDPOINT) {
127
+ const usage = readUsageFile(usagePath);
128
+ res.writeHead(200, {
129
+ 'Content-Type': 'application/json'
130
+ });
131
+ res.end(JSON.stringify({
132
+ iconCount: usage.icons.length,
133
+ icons: usage.icons,
134
+ updatedAt: usage.updatedAt
135
+ }));
136
+ return;
137
+ }
138
+
139
+ // Pass through to next middleware
140
+ next();
141
+ };
142
+ }
143
+ //# sourceMappingURL=devServerMiddleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["fs","path","USAGE_ENDPOINT","STATUS_ENDPOINT","readUsageFile","usagePath","existsSync","content","readFileSync","data","JSON","parse","version","Array","isArray","icons","updatedAt","Date","toISOString","writeUsageFile","dir","dirname","mkdirSync","recursive","tmpPath","writeFileSync","stringify","renameSync","parseBody","req","Promise","resolve","reject","body","on","chunk","toString","Error","createDevServerMiddleware","options","outputDir","verbose","projectRoot","process","cwd","isAbsolute","join","handleRequest","res","next","url","method","icon","includes","writeHead","end","error","usage","push","console","log","length","ok","iconCount"],"sourceRoot":"../../../src","sources":["metro/devServerMiddleware.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * rn-iconify Metro Plugin
3
+ *
4
+ * Adds dev server middleware for runtime icon usage learning.
5
+ * When used with the Babel plugin, enables zero-config 0ms rendering.
6
+ *
7
+ * @example
8
+ * ```js
9
+ * // metro.config.js
10
+ * const { withRnIconify } = require('rn-iconify/metro');
11
+ *
12
+ * const config = getDefaultConfig(__dirname);
13
+ * module.exports = withRnIconify(config);
14
+ * ```
15
+ */
16
+
17
+ export { withRnIconify } from './withRnIconify';
18
+ export { createDevServerMiddleware } from './devServerMiddleware';
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["withRnIconify","createDevServerMiddleware"],"sourceRoot":"../../../src","sources":["metro/index.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,yBAAyB,QAAQ,uBAAuB","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["metro/types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Metro Config Wrapper
3
+ * Adds rn-iconify middleware to the Metro dev server
4
+ *
5
+ * @example
6
+ * ```js
7
+ * // metro.config.js
8
+ * const { withRnIconify } = require('rn-iconify/metro');
9
+ *
10
+ * const config = getDefaultConfig(__dirname);
11
+ * module.exports = withRnIconify(config);
12
+ * ```
13
+ */
14
+
15
+ import { createDevServerMiddleware } from './devServerMiddleware';
16
+
17
+ /**
18
+ * Wrap a Metro config to add rn-iconify dev server middleware
19
+ * This enables runtime icon usage learning during development
20
+ */
21
+ export function withRnIconify(config, options) {
22
+ const middleware = createDevServerMiddleware(options);
23
+ const existingEnhance = config.server?.enhanceMiddleware;
24
+ return {
25
+ ...config,
26
+ server: {
27
+ ...config.server,
28
+ enhanceMiddleware: (metroMiddleware, server) => {
29
+ // Apply existing enhanceMiddleware if present
30
+ const enhanced = existingEnhance ? existingEnhance(metroMiddleware, server) : metroMiddleware;
31
+
32
+ // Wrap with our middleware
33
+ return (req, res, next) => {
34
+ // Check if this is our endpoint
35
+ const url = req.url;
36
+ if (url === '/__rn_iconify_log' || url === '/__rn_iconify_status') {
37
+ middleware(req, res, next);
38
+ return;
39
+ }
40
+
41
+ // Otherwise pass through
42
+ enhanced(req, res, next);
43
+ };
44
+ }
45
+ }
46
+ };
47
+ }
48
+ //# sourceMappingURL=withRnIconify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createDevServerMiddleware","withRnIconify","config","options","middleware","existingEnhance","server","enhanceMiddleware","metroMiddleware","enhanced","req","res","next","url"],"sourceRoot":"../../../src","sources":["metro/withRnIconify.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,yBAAyB,QAAQ,uBAAuB;;AAEjE;AACA;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAACC,MAAmB,EAAEC,OAA+B,EAAe;EAC/F,MAAMC,UAAU,GAAGJ,yBAAyB,CAACG,OAAO,CAAC;EAErD,MAAME,eAAe,GAAGH,MAAM,CAACI,MAAM,EAAEC,iBAAiB;EAExD,OAAO;IACL,GAAGL,MAAM;IACTI,MAAM,EAAE;MACN,GAAGJ,MAAM,CAACI,MAAM;MAChBC,iBAAiB,EAAEA,CAACC,eAAgC,EAAEF,MAAe,KAAsB;QACzF;QACA,MAAMG,QAAQ,GAAGJ,eAAe,GAC5BA,eAAe,CAACG,eAAe,EAAEF,MAAM,CAAC,GACxCE,eAAe;;QAEnB;QACA,OAAO,CAACE,GAAG,EAAEC,GAAG,EAAEC,IAAI,KAAK;UACzB;UACA,MAAMC,GAAG,GAAGH,GAAG,CAACG,GAAG;UACnB,IAAIA,GAAG,KAAK,mBAAmB,IAAIA,GAAG,KAAK,sBAAsB,EAAE;YACjET,UAAU,CAACM,GAAG,EAAEC,GAAG,EAAEC,IAAI,CAAC;YAC1B;UACF;;UAEA;UACAH,QAAQ,CAACC,GAAG,EAAEC,GAAG,EAAEC,IAAI,CAAC;QAC1B,CAAC;MACH;IACF;EACF,CAAC;AACH","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"IconRenderer.d.ts","sourceRoot":"","sources":["../../src/IconRenderer.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAA4D,MAAM,OAAO,CAAC;AAOjF,OAAO,KAAK,EAAE,iBAAiB,EAAoB,MAAM,SAAS,CAAC;AAenE,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,IAAS,EACT,KAAiB,EACjB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,UAAU,EAClB,KAAK,EACL,SAAS,EACT,MAAU,EACV,IAAI,EACJ,QAAQ,EACR,aAAiB,EACjB,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EACnB,MAAM,EACN,OAAO,EACP,kBAAkB,EAClB,MAAM,EAEN,OAAO,EACP,WAAW,EACX,SAAS,EACT,UAAU,EACV,QAAQ,EACR,YAAY,EAEZ,OAAO,EACP,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,cAAc,EACd,QAAe,EACf,mBAAmB,GACpB,EAAE,iBAAiB,gGAuRnB"}
1
+ {"version":3,"file":"IconRenderer.d.ts","sourceRoot":"","sources":["../../src/IconRenderer.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAA4D,MAAM,OAAO,CAAC;AAQjF,OAAO,KAAK,EAAE,iBAAiB,EAAoB,MAAM,SAAS,CAAC;AAenE,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,IAAS,EACT,KAAiB,EACjB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,UAAU,EAClB,KAAK,EACL,SAAS,EACT,MAAU,EACV,IAAI,EACJ,QAAQ,EACR,aAAiB,EACjB,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EACnB,MAAM,EACN,OAAO,EACP,kBAAkB,EAClB,MAAM,EAEN,OAAO,EACP,WAAW,EACX,SAAS,EACT,UAAU,EACV,QAAQ,EACR,YAAY,EAEZ,OAAO,EACP,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,cAAc,EACd,QAAe,EACf,mBAAmB,GACpB,EAAE,iBAAiB,gGAqUnB"}
@@ -41,13 +41,27 @@ export declare function groupIconsByPrefix(iconNames: string[]): Map<string, str
41
41
  */
42
42
  export declare function fetchAndCreateBundle(iconNames: string[], options: BabelPluginOptions): Promise<IconBundle>;
43
43
  /**
44
- * Write bundle to file
44
+ * Read existing bundle from disk
45
+ * Returns null if file doesn't exist or is invalid
46
+ */
47
+ export declare function readExistingBundle(bundlePath: string): IconBundle | null;
48
+ /**
49
+ * Determine which icons are new and need to be fetched
50
+ */
51
+ export declare function getNewIconNames(allIcons: string[], existingBundle: IconBundle | null): string[];
52
+ /**
53
+ * Write bundle to file (only if content changed)
45
54
  */
46
55
  export declare function writeBundleToFile(bundle: IconBundle, outputPath: string, verbose: boolean): void;
56
+ /**
57
+ * Resolve the bundle directory path
58
+ */
59
+ export declare function resolveBundleDir(outputPath: string, projectRoot: string): string;
47
60
  /**
48
61
  * Generate icon bundle from collected icons
62
+ * Supports incremental fetching: only fetches icons not already in the existing bundle
49
63
  */
50
- export declare function generateBundle(iconNames: string[], options: BabelPluginOptions, projectRoot: string): Promise<void>;
64
+ export declare function generateBundle(iconNames: string[], options: BabelPluginOptions, projectRoot: string, existingBundle?: IconBundle | null): Promise<void>;
51
65
  /**
52
66
  * Check if bundle file exists and is valid
53
67
  */
@@ -1 +1 @@
1
- {"version":3,"file":"cache-writer.d.ts","sourceRoot":"","sources":["../../../src/babel/cache-writer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAW9D;;GAEG;AACH,UAAU,kBAAkB;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CACX,MAAM,EACN;QACE,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CACF,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAoBD;;;GAGG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,EACzC,YAAY,SAAK,EACjB,aAAa,SAAK,GACjB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAgChD;AAmED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAc7E;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EAAE,EACnB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,UAAU,CAAC,CAwCrB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAehG;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EAAE,EACnB,OAAO,EAAE,kBAAkB,EAC3B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAwCf;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAgB9E"}
1
+ {"version":3,"file":"cache-writer.d.ts","sourceRoot":"","sources":["../../../src/babel/cache-writer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAW9D;;GAEG;AACH,UAAU,kBAAkB;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CACX,MAAM,EACN;QACE,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CACF,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAoBD;;;GAGG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,EACzC,YAAY,SAAK,EACjB,aAAa,SAAK,GACjB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAgChD;AAmED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAc7E;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EAAE,EACnB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,UAAU,CAAC,CAwCrB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAYxE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,UAAU,GAAG,IAAI,GAAG,MAAM,EAAE,CAG/F;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAoChG;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAIhF;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EAAE,EACnB,OAAO,EAAE,kBAAkB,EAC3B,WAAW,EAAE,MAAM,EACnB,cAAc,CAAC,EAAE,UAAU,GAAG,IAAI,GACjC,OAAO,CAAC,IAAI,CAAC,CAmEf;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAK9E"}
@@ -1,6 +1,11 @@
1
1
  /**
2
2
  * Babel Plugin Visitor
3
3
  * Main visitor logic for the rn-iconify Babel plugin
4
+ *
5
+ * Auto-inject flow:
6
+ * 1. pre hook: scan project → detect icons → check if bundle exists
7
+ * 2. ImportDeclaration visitor: inject loadOfflineBundle + bundle import when bundle exists
8
+ * 3. post hook: generate/update bundle incrementally
4
9
  */
5
10
  import type { PluginObj, types as BabelTypes } from '@babel/core';
6
11
  import type { BabelPluginState } from './types';
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/babel/plugin.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAsB,MAAM,SAAS,CAAC;AA2DpE;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,KAAK,EAAE,OAAO,UAAU,CAAC;CAC1B,GAAG,SAAS,CAAC,gBAAgB,CAAC,CA0K9B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAQvC"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/babel/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,IAAI,UAAU,EAAY,MAAM,aAAa,CAAC;AAE5E,OAAO,KAAK,EAAE,gBAAgB,EAAsB,MAAM,SAAS,CAAC;AAsFpE;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,KAAK,EAAE,OAAO,UAAU,CAAC;CAC1B,GAAG,SAAS,CAAC,gBAAgB,CAAC,CA8P9B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAavC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Project File Scanner
3
+ * Synchronously scans project source files for icon usage using regex
4
+ * Used by the Babel plugin to discover all icons before the build
5
+ */
6
+ /**
7
+ * Scanner options
8
+ */
9
+ export interface ScannerOptions {
10
+ /**
11
+ * File extensions to scan
12
+ * @default ['.tsx', '.jsx', '.ts', '.js']
13
+ */
14
+ extensions?: string[];
15
+ /**
16
+ * Directories to exclude from scanning
17
+ * @default ['node_modules', 'lib', '.rn-iconify', '__tests__', '__mocks__', 'dist', '.expo', '.git']
18
+ */
19
+ excludeDirs?: string[];
20
+ /**
21
+ * Enable verbose logging
22
+ * @default false
23
+ */
24
+ verbose?: boolean;
25
+ }
26
+ /**
27
+ * Scan the entire project for icon usage
28
+ * Returns a deduplicated array of full icon names (e.g., ['ion:home', 'mdi:settings'])
29
+ */
30
+ export declare function scanProjectForIcons(projectRoot: string, options?: ScannerOptions): string[];
31
+ //# sourceMappingURL=scanner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../../src/babel/scanner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAEtB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAEvB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAiMD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,MAAM,EAAE,CA6C/F"}
@@ -20,7 +20,7 @@ export interface BabelPluginOptions {
20
20
  exclude?: string[];
21
21
  /**
22
22
  * Output directory for the generated cache
23
- * @default 'node_modules/.cache/rn-iconify'
23
+ * @default '.rn-iconify'
24
24
  */
25
25
  outputPath?: string;
26
26
  /**
@@ -33,6 +33,13 @@ export interface BabelPluginOptions {
33
33
  * @default false
34
34
  */
35
35
  disabled?: boolean;
36
+ /**
37
+ * Auto-inject loadOfflineBundle call when bundle exists
38
+ * When true, the plugin will automatically inject import and load
39
+ * statements for the generated icon bundle.
40
+ * @default true
41
+ */
42
+ autoInject?: boolean;
36
43
  }
37
44
  /**
38
45
  * Babel file object structure (for pre/post hooks)
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/babel/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE;QACJ,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAyCD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAYpE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAiBhD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAEzD;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CACX,MAAM,EACN;QACE,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CACF,CAAC;IACF,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAE9F;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAE5F;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAsevD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAQvD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,aAA6C,CAAC;AAE3E;;GAEG;AACH,eAAO,MAAM,cAAc,aAA+C,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/babel/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE;QACJ,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAyCD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAYpE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAiBhD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAEzD;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CACX,MAAM,EACN;QACE,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CACF,CAAC;IACF,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAE9F;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAE5F;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAsevD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAQvD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,aAA6C,CAAC;AAE3E;;GAEG;AACH,eAAO,MAAM,cAAc,aAA+C,CAAC"}