react-native-inapp-inspector 2.2.2 → 2.2.4

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 (159) hide show
  1. package/dist/commonjs/components/AnalyticsDetail.js +5 -1
  2. package/dist/commonjs/components/AnalyticsEventCard.js +2 -1
  3. package/dist/commonjs/components/DiffViewer.js +1 -1
  4. package/dist/commonjs/components/Inspector/BundleTab.js +22 -0
  5. package/dist/commonjs/components/Inspector/DeviceInfoTab.d.ts +3 -0
  6. package/dist/commonjs/components/Inspector/DeviceInfoTab.js +835 -0
  7. package/dist/commonjs/components/Inspector/InspectorHeader.js +12 -14
  8. package/dist/commonjs/components/Inspector/LogDetail.js +6 -3
  9. package/dist/commonjs/components/Inspector/MainScreen.js +7 -3
  10. package/dist/commonjs/components/Inspector/NetworkTab.js +92 -15
  11. package/dist/commonjs/components/Inspector/PerformanceTab.js +38 -12
  12. package/dist/commonjs/components/Inspector/SettingsPanel.js +440 -229
  13. package/dist/commonjs/components/Inspector/StorageTab.d.ts +3 -0
  14. package/dist/commonjs/components/Inspector/StorageTab.js +892 -0
  15. package/dist/commonjs/components/Inspector/TabBar.js +14 -0
  16. package/dist/commonjs/components/Inspector/TelemetryConsentModal.js +11 -2
  17. package/dist/commonjs/components/Inspector/UpdateAvailableModal.js +4 -1
  18. package/dist/commonjs/components/NetworkIcons.d.ts +6 -0
  19. package/dist/commonjs/components/NetworkIcons.js +30 -1
  20. package/dist/commonjs/constants/version.d.ts +1 -1
  21. package/dist/commonjs/constants/version.js +1 -1
  22. package/dist/commonjs/customHooks/bundleAnalyzer.js +44 -22
  23. package/dist/commonjs/customHooks/storageInspector.d.ts +67 -0
  24. package/dist/commonjs/customHooks/storageInspector.js +486 -0
  25. package/dist/commonjs/i18n/locales/en.json +8 -2
  26. package/dist/commonjs/index.d.ts +1 -0
  27. package/dist/commonjs/index.js +16 -1
  28. package/dist/commonjs/storage.d.ts +5 -0
  29. package/dist/commonjs/storage.js +18 -0
  30. package/dist/commonjs/types/enums.d.ts +5 -0
  31. package/dist/commonjs/types/enums.js +5 -0
  32. package/dist/esm/components/AnalyticsDetail.js +6 -2
  33. package/dist/esm/components/AnalyticsEventCard.js +2 -1
  34. package/dist/esm/components/DiffViewer.js +1 -1
  35. package/dist/esm/components/Inspector/BundleTab.js +22 -0
  36. package/dist/esm/components/Inspector/DeviceInfoTab.d.ts +3 -0
  37. package/dist/esm/components/Inspector/DeviceInfoTab.js +796 -0
  38. package/dist/esm/components/Inspector/InspectorHeader.js +13 -15
  39. package/dist/esm/components/Inspector/LogDetail.js +7 -4
  40. package/dist/esm/components/Inspector/MainScreen.js +7 -3
  41. package/dist/esm/components/Inspector/NetworkTab.js +93 -16
  42. package/dist/esm/components/Inspector/PerformanceTab.js +39 -13
  43. package/dist/esm/components/Inspector/SettingsPanel.js +441 -230
  44. package/dist/esm/components/Inspector/StorageTab.d.ts +3 -0
  45. package/dist/esm/components/Inspector/StorageTab.js +853 -0
  46. package/dist/esm/components/Inspector/TabBar.js +15 -1
  47. package/dist/esm/components/Inspector/TelemetryConsentModal.js +11 -2
  48. package/dist/esm/components/Inspector/UpdateAvailableModal.js +4 -1
  49. package/dist/esm/components/NetworkIcons.d.ts +6 -0
  50. package/dist/esm/components/NetworkIcons.js +23 -0
  51. package/dist/esm/constants/version.d.ts +1 -1
  52. package/dist/esm/constants/version.js +1 -1
  53. package/dist/esm/customHooks/bundleAnalyzer.js +44 -22
  54. package/dist/esm/customHooks/storageInspector.d.ts +67 -0
  55. package/dist/esm/customHooks/storageInspector.js +469 -0
  56. package/dist/esm/i18n/locales/en.json +8 -2
  57. package/dist/esm/index.d.ts +1 -0
  58. package/dist/esm/index.js +5 -0
  59. package/dist/esm/storage.d.ts +5 -0
  60. package/dist/esm/storage.js +5 -0
  61. package/dist/esm/types/enums.d.ts +5 -0
  62. package/dist/esm/types/enums.js +5 -0
  63. package/package.json +9 -1
  64. package/src/analytics.ts +35 -0
  65. package/src/bundle.ts +25 -0
  66. package/src/components/AnalyticsDetail.tsx +870 -0
  67. package/src/components/AnalyticsEventCard.tsx +442 -0
  68. package/src/components/AnalyticsGraph.tsx +583 -0
  69. package/src/components/AnimatedEntrance.tsx +64 -0
  70. package/src/components/AppHeaderLogo.tsx +109 -0
  71. package/src/components/BrandCircleIcon.tsx +144 -0
  72. package/src/components/BrandSquareIcon.tsx +144 -0
  73. package/src/components/CodeSnippet.tsx +725 -0
  74. package/src/components/ConsoleLogCard.tsx +628 -0
  75. package/src/components/CopyButton.tsx +87 -0
  76. package/src/components/DiffViewer.tsx +82 -0
  77. package/src/components/DomainHeader.tsx +237 -0
  78. package/src/components/EmptyState.tsx +73 -0
  79. package/src/components/EndOfListFooter.tsx +100 -0
  80. package/src/components/ErrorBoundary.tsx +688 -0
  81. package/src/components/HeadersSection.tsx +192 -0
  82. package/src/components/HighlightText.tsx +100 -0
  83. package/src/components/Inspector/AnalyticsFilterModal.tsx +1250 -0
  84. package/src/components/Inspector/AnalyticsTab.tsx +1336 -0
  85. package/src/components/Inspector/BundleTab.tsx +4760 -0
  86. package/src/components/Inspector/ConsoleTab.tsx +702 -0
  87. package/src/components/Inspector/CrashDetail.tsx +941 -0
  88. package/src/components/Inspector/CrashFilterModal.tsx +721 -0
  89. package/src/components/Inspector/CrashTab.tsx +871 -0
  90. package/src/components/Inspector/DeviceInfoTab.tsx +1204 -0
  91. package/src/components/Inspector/FabLauncher.tsx +80 -0
  92. package/src/components/Inspector/InspectorContext.tsx +28 -0
  93. package/src/components/Inspector/InspectorHeader.tsx +972 -0
  94. package/src/components/Inspector/LogDetail.tsx +1431 -0
  95. package/src/components/Inspector/MainScreen.tsx +262 -0
  96. package/src/components/Inspector/NavigationTracker.tsx +13 -0
  97. package/src/components/Inspector/NetworkDetail.tsx +794 -0
  98. package/src/components/Inspector/NetworkTab.tsx +1183 -0
  99. package/src/components/Inspector/NpmUpdateToast.tsx +392 -0
  100. package/src/components/Inspector/PerformanceTab.tsx +1928 -0
  101. package/src/components/Inspector/ReduxDetail.tsx +1651 -0
  102. package/src/components/Inspector/ReduxTab.tsx +954 -0
  103. package/src/components/Inspector/SettingsPanel.tsx +3447 -0
  104. package/src/components/Inspector/StorageTab.tsx +1048 -0
  105. package/src/components/Inspector/TabBar.tsx +207 -0
  106. package/src/components/Inspector/TelemetryConsentModal.tsx +416 -0
  107. package/src/components/Inspector/UpdateAvailableModal.tsx +557 -0
  108. package/src/components/JsonViewer.tsx +486 -0
  109. package/src/components/LogCard.tsx +491 -0
  110. package/src/components/LogSyntaxHighlighter.tsx +178 -0
  111. package/src/components/MetaAccordion.tsx +340 -0
  112. package/src/components/MiniBarChart.tsx +42 -0
  113. package/src/components/MiniLineChart.tsx +33 -0
  114. package/src/components/NetworkIcons.tsx +2221 -0
  115. package/src/components/SectionHeader.tsx +113 -0
  116. package/src/components/SegmentedTabs.tsx +83 -0
  117. package/src/components/Slider.tsx +300 -0
  118. package/src/components/SourcePageCard.tsx +148 -0
  119. package/src/components/Toast.tsx +131 -0
  120. package/src/components/TouchableScale.tsx +91 -0
  121. package/src/components/TreeNode.tsx +186 -0
  122. package/src/console.ts +24 -0
  123. package/src/constants/index.ts +38 -0
  124. package/src/constants/version.ts +3 -0
  125. package/src/crash.ts +32 -0
  126. package/src/customHooks/analyticsLogger.ts +336 -0
  127. package/src/customHooks/bundleAnalyzer.ts +1256 -0
  128. package/src/customHooks/consoleLogger.ts +497 -0
  129. package/src/customHooks/crashHandler.ts +944 -0
  130. package/src/customHooks/logFilters.ts +32 -0
  131. package/src/customHooks/networkLogger.ts +419 -0
  132. package/src/customHooks/performanceTracker.ts +1014 -0
  133. package/src/customHooks/reduxLogger.ts +406 -0
  134. package/src/customHooks/storageInspector.ts +509 -0
  135. package/src/customHooks/useAccordion.tsx +60 -0
  136. package/src/decorators/index.ts +184 -0
  137. package/src/helpers/gaAnalyticsRegistry.ts +204 -0
  138. package/src/helpers/index.ts +860 -0
  139. package/src/helpers/memoryManager.ts +138 -0
  140. package/src/helpers/searchQueryParser.ts +283 -0
  141. package/src/helpers/settingsStore.ts +171 -0
  142. package/src/helpers/telemetry.ts +505 -0
  143. package/src/helpers/toast.ts +17 -0
  144. package/src/i18n/index.ts +69 -0
  145. package/src/i18n/locales/en.json +1058 -0
  146. package/src/index.tsx +2356 -0
  147. package/src/native/NativeInspector.ts +397 -0
  148. package/src/native/NativeNetworkInspector.ts +24 -0
  149. package/src/network.ts +22 -0
  150. package/src/performance.ts +38 -0
  151. package/src/redux.ts +23 -0
  152. package/src/storage.ts +18 -0
  153. package/src/styles/AppColors.ts +408 -0
  154. package/src/styles/AppFonts.ts +8 -0
  155. package/src/styles/common.ts +209 -0
  156. package/src/styles/index.ts +1570 -0
  157. package/src/types/enums.ts +199 -0
  158. package/src/types/index.ts +34 -0
  159. package/src/types/interfaces.ts +515 -0
@@ -0,0 +1,392 @@
1
+ import React, {useState, useEffect, useRef} from 'react';
2
+ import {
3
+ Animated,
4
+ Linking,
5
+ Platform,
6
+ StyleSheet,
7
+ Text,
8
+ TouchableOpacity,
9
+ View,
10
+ } from 'react-native';
11
+ import Svg, {Path} from 'react-native-svg';
12
+ import {useInspector} from './InspectorContext';
13
+ import {LIB_VERSION} from '../../constants';
14
+ import {NpmIcon} from '../NetworkIcons';
15
+ import {copyToClipboard} from '../../helpers';
16
+ import {showToast} from '../../helpers/toast';
17
+
18
+ const CloseSvg = ({size = 13, color = '#94A3B8'}: {size?: number; color?: string}) => (
19
+ <Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
20
+ <Path
21
+ d="M18 6L6 18M6 6l12 12"
22
+ stroke={color}
23
+ strokeWidth="2.4"
24
+ strokeLinecap="round"
25
+ strokeLinejoin="round"
26
+ />
27
+ </Svg>
28
+ );
29
+
30
+ const CopySvg = ({size = 11, color = '#94A3B8'}: {size?: number; color?: string}) => (
31
+ <Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
32
+ <Path
33
+ d="M8 4v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2z"
34
+ stroke={color}
35
+ strokeWidth="2"
36
+ strokeLinecap="round"
37
+ strokeLinejoin="round"
38
+ />
39
+ <Path
40
+ d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"
41
+ stroke={color}
42
+ strokeWidth="2"
43
+ strokeLinecap="round"
44
+ strokeLinejoin="round"
45
+ />
46
+ </Svg>
47
+ );
48
+
49
+ const CheckSvg = ({size = 11, color = '#10B981'}: {size?: number; color?: string}) => (
50
+ <Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
51
+ <Path
52
+ d="M20 6L9 17l-5-5"
53
+ stroke={color}
54
+ strokeWidth="2.4"
55
+ strokeLinecap="round"
56
+ strokeLinejoin="round"
57
+ />
58
+ </Svg>
59
+ );
60
+
61
+ const ExternalLinkSvg = ({size = 11, color = '#FFFFFF'}: {size?: number; color?: string}) => (
62
+ <Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
63
+ <Path
64
+ d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"
65
+ stroke={color}
66
+ strokeWidth="2"
67
+ strokeLinecap="round"
68
+ strokeLinejoin="round"
69
+ />
70
+ <Path
71
+ d="M15 3h6v6"
72
+ stroke={color}
73
+ strokeWidth="2"
74
+ strokeLinecap="round"
75
+ strokeLinejoin="round"
76
+ />
77
+ <Path
78
+ d="M10 14L21 3"
79
+ stroke={color}
80
+ strokeWidth="2"
81
+ strokeLinecap="round"
82
+ strokeLinejoin="round"
83
+ />
84
+ </Svg>
85
+ );
86
+
87
+ const TOAST_TIMEOUT_MS = 7000;
88
+
89
+ export const NpmUpdateToast = () => {
90
+ const {updateAvailable, latestNpmVersion, showUpdateToast} = useInspector();
91
+ const [dismissed, setDismissed] = useState(false);
92
+ const [visible, setVisible] = useState(false);
93
+ const [copied, setCopied] = useState(false);
94
+
95
+ const translateYAnim = useRef(new Animated.Value(60)).current;
96
+ const opacityAnim = useRef(new Animated.Value(0)).current;
97
+ const progressAnim = useRef(new Animated.Value(1)).current;
98
+ const timerRef = useRef<NodeJS.Timeout | null>(null);
99
+
100
+ useEffect(() => {
101
+ if (showUpdateToast && updateAvailable && latestNpmVersion && !dismissed) {
102
+ setVisible(true);
103
+
104
+ // Slide and fade in
105
+ Animated.parallel([
106
+ Animated.spring(translateYAnim, {
107
+ toValue: 0,
108
+ friction: 8,
109
+ tension: 40,
110
+ useNativeDriver: true,
111
+ }),
112
+ Animated.timing(opacityAnim, {
113
+ toValue: 1,
114
+ duration: 250,
115
+ useNativeDriver: true,
116
+ }),
117
+ ]).start();
118
+
119
+ // Progress bar countdown from 1 to 0
120
+ progressAnim.setValue(1);
121
+ Animated.timing(progressAnim, {
122
+ toValue: 0,
123
+ duration: TOAST_TIMEOUT_MS,
124
+ useNativeDriver: false,
125
+ }).start();
126
+
127
+ // Auto-hide after timeout
128
+ timerRef.current = setTimeout(() => {
129
+ handleDismiss();
130
+ }, TOAST_TIMEOUT_MS);
131
+ }
132
+
133
+ return () => {
134
+ if (timerRef.current) {
135
+ clearTimeout(timerRef.current);
136
+ }
137
+ };
138
+ }, [showUpdateToast, updateAvailable, latestNpmVersion, dismissed]);
139
+
140
+ const handleDismiss = () => {
141
+ Animated.parallel([
142
+ Animated.timing(opacityAnim, {
143
+ toValue: 0,
144
+ duration: 180,
145
+ useNativeDriver: true,
146
+ }),
147
+ Animated.timing(translateYAnim, {
148
+ toValue: 60,
149
+ duration: 180,
150
+ useNativeDriver: true,
151
+ }),
152
+ ]).start(() => {
153
+ setVisible(false);
154
+ setDismissed(true);
155
+ });
156
+ };
157
+
158
+ const handleCopyCommand = () => {
159
+ copyToClipboard('npm install react-native-inapp-inspector@latest', 'Install Command');
160
+ setCopied(true);
161
+ showToast('Copied npm install command!');
162
+ setTimeout(() => {
163
+ setCopied(false);
164
+ }, 2000);
165
+ };
166
+
167
+ const handleOpenNpm = () => {
168
+ Linking.openURL('https://www.npmjs.com/package/react-native-inapp-inspector').catch(() => {});
169
+ handleDismiss();
170
+ };
171
+
172
+ if (!showUpdateToast || !visible || !updateAvailable || !latestNpmVersion) return null;
173
+
174
+ const progressWidth = progressAnim.interpolate({
175
+ inputRange: [0, 1],
176
+ outputRange: ['0%', '100%'],
177
+ });
178
+
179
+ return (
180
+ <Animated.View
181
+ style={[
182
+ styles.container,
183
+ {
184
+ opacity: opacityAnim,
185
+ transform: [{translateY: translateYAnim}],
186
+ },
187
+ ]}>
188
+ <View style={styles.contentRow}>
189
+ {/* Left NPM Badge Icon */}
190
+ <View style={styles.npmIconContainer}>
191
+ <NpmIcon size={15} color="#CB3837" />
192
+ </View>
193
+
194
+ {/* Text Details */}
195
+ <View style={styles.textContainer}>
196
+ <View style={styles.titleRow}>
197
+ <Text style={styles.titleText}>Update Available</Text>
198
+ <View style={styles.versionPill}>
199
+ <Text style={styles.versionPillText}>v{latestNpmVersion}</Text>
200
+ </View>
201
+ </View>
202
+ <Text style={styles.subtitleText} numberOfLines={1}>
203
+ Installed: v{LIB_VERSION} • New version is ready
204
+ </Text>
205
+ </View>
206
+
207
+ {/* Copy command quick button */}
208
+ <TouchableOpacity
209
+ style={styles.copyButton}
210
+ onPress={handleCopyCommand}
211
+ hitSlop={6}
212
+ activeOpacity={0.75}>
213
+ {copied ? <CheckSvg size={11} color="#10B981" /> : <CopySvg size={11} color="#94A3B8" />}
214
+ <Text style={[styles.copyButtonText, copied && {color: '#10B981'}]}>
215
+ {copied ? 'Copied' : 'Copy'}
216
+ </Text>
217
+ </TouchableOpacity>
218
+
219
+ {/* Action Button: View */}
220
+ <TouchableOpacity
221
+ style={styles.actionButton}
222
+ onPress={handleOpenNpm}
223
+ activeOpacity={0.8}>
224
+ <Text style={styles.actionButtonText}>View</Text>
225
+ <ExternalLinkSvg size={10} color="#FFFFFF" />
226
+ </TouchableOpacity>
227
+
228
+ {/* Close Button */}
229
+ <TouchableOpacity
230
+ style={styles.closeButton}
231
+ onPress={handleDismiss}
232
+ hitSlop={8}
233
+ activeOpacity={0.7}>
234
+ <CloseSvg size={12} color="#94A3B8" />
235
+ </TouchableOpacity>
236
+ </View>
237
+
238
+ {/* Animated Linear Timeout Progress Bar */}
239
+ <View style={styles.progressBarTrack}>
240
+ <Animated.View style={[styles.progressBarFill, {width: progressWidth}]} />
241
+ </View>
242
+ </Animated.View>
243
+ );
244
+ };
245
+
246
+ const fontStack = Platform.select({
247
+ ios: {
248
+ fontFamily: 'System',
249
+ },
250
+ android: {
251
+ fontFamily: 'sans-serif',
252
+ },
253
+ default: {},
254
+ });
255
+
256
+ const styles = StyleSheet.create({
257
+ container: {
258
+ position: 'absolute',
259
+ bottom: 24,
260
+ left: 14,
261
+ right: 14,
262
+ backgroundColor: '#0F172A',
263
+ borderRadius: 16,
264
+ borderWidth: 1,
265
+ borderColor: '#334155',
266
+ shadowColor: '#000000',
267
+ shadowOffset: {width: 0, height: 12},
268
+ shadowOpacity: 0.4,
269
+ shadowRadius: 24,
270
+ elevation: 24,
271
+ overflow: 'hidden',
272
+ zIndex: 99999,
273
+ },
274
+ contentRow: {
275
+ flexDirection: 'row',
276
+ alignItems: 'center',
277
+ paddingVertical: 11,
278
+ paddingHorizontal: 12,
279
+ gap: 8,
280
+ },
281
+ npmIconContainer: {
282
+ width: 32,
283
+ height: 32,
284
+ borderRadius: 9,
285
+ backgroundColor: '#FFFFFF',
286
+ justifyContent: 'center',
287
+ alignItems: 'center',
288
+ borderWidth: 1,
289
+ borderColor: '#E2E8F0',
290
+ flexShrink: 0,
291
+ shadowColor: '#000000',
292
+ shadowOffset: {width: 0, height: 1},
293
+ shadowOpacity: 0.15,
294
+ shadowRadius: 2,
295
+ elevation: 2,
296
+ },
297
+ textContainer: {
298
+ flex: 1,
299
+ minWidth: 0,
300
+ },
301
+ titleRow: {
302
+ flexDirection: 'row',
303
+ alignItems: 'center',
304
+ gap: 5,
305
+ },
306
+ titleText: {
307
+ fontSize: 12.5,
308
+ fontWeight: '700',
309
+ color: '#F8FAFC',
310
+ letterSpacing: -0.2,
311
+ ...fontStack,
312
+ },
313
+ versionPill: {
314
+ backgroundColor: '#7C3AED33',
315
+ paddingHorizontal: 5.5,
316
+ paddingVertical: 1.5,
317
+ borderRadius: 5,
318
+ borderWidth: 1,
319
+ borderColor: '#8B5CF680',
320
+ },
321
+ versionPillText: {
322
+ fontSize: 10,
323
+ fontWeight: '700',
324
+ color: '#C4B5FD',
325
+ ...fontStack,
326
+ },
327
+ subtitleText: {
328
+ fontSize: 10.5,
329
+ color: '#94A3B8',
330
+ marginTop: 1,
331
+ ...fontStack,
332
+ },
333
+ copyButton: {
334
+ flexDirection: 'row',
335
+ alignItems: 'center',
336
+ gap: 3.5,
337
+ backgroundColor: '#1E293B',
338
+ paddingVertical: 5.5,
339
+ paddingHorizontal: 8,
340
+ borderRadius: 7,
341
+ borderWidth: 1,
342
+ borderColor: '#334155',
343
+ flexShrink: 0,
344
+ },
345
+ copyButtonText: {
346
+ fontSize: 10.5,
347
+ fontWeight: '600',
348
+ color: '#94A3B8',
349
+ ...fontStack,
350
+ },
351
+ actionButton: {
352
+ flexDirection: 'row',
353
+ alignItems: 'center',
354
+ gap: 3.5,
355
+ backgroundColor: '#7C3AED',
356
+ paddingVertical: 5.5,
357
+ paddingHorizontal: 9,
358
+ borderRadius: 7,
359
+ flexShrink: 0,
360
+ shadowColor: '#7C3AED',
361
+ shadowOffset: {width: 0, height: 2},
362
+ shadowOpacity: 0.35,
363
+ shadowRadius: 4,
364
+ elevation: 3,
365
+ },
366
+ actionButtonText: {
367
+ fontSize: 11,
368
+ fontWeight: '700',
369
+ color: '#FFFFFF',
370
+ ...fontStack,
371
+ },
372
+ closeButton: {
373
+ width: 22,
374
+ height: 22,
375
+ borderRadius: 11,
376
+ backgroundColor: '#1E293B',
377
+ justifyContent: 'center',
378
+ alignItems: 'center',
379
+ flexShrink: 0,
380
+ },
381
+ progressBarTrack: {
382
+ height: 2.5,
383
+ width: '100%',
384
+ backgroundColor: '#1E293B',
385
+ },
386
+ progressBarFill: {
387
+ height: '100%',
388
+ backgroundColor: '#8B5CF6',
389
+ },
390
+ });
391
+
392
+ export default NpmUpdateToast;