react-native-inapp-inspector 1.1.21 → 1.1.23

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 (49) hide show
  1. package/dist/commonjs/components/AnalyticsDetail.js +5 -3
  2. package/dist/commonjs/components/AnalyticsEventCard.d.ts +0 -1
  3. package/dist/commonjs/components/AnalyticsEventCard.js +89 -97
  4. package/dist/commonjs/components/ErrorBoundary.js +17 -8
  5. package/dist/commonjs/components/Inspector/BundleTab.d.ts +1 -0
  6. package/dist/commonjs/components/Inspector/BundleTab.js +607 -685
  7. package/dist/commonjs/components/Inspector/LogDetail.js +12 -6
  8. package/dist/commonjs/components/Inspector/PerformanceTab.js +195 -254
  9. package/dist/commonjs/components/Inspector/ReduxDetail.js +2 -2
  10. package/dist/commonjs/components/Inspector/ReduxTab.js +9 -6
  11. package/dist/commonjs/components/NetworkIcons.d.ts +12 -0
  12. package/dist/commonjs/components/NetworkIcons.js +92 -1
  13. package/dist/commonjs/components/TreeNode.js +1 -1
  14. package/dist/commonjs/constants/version.d.ts +1 -1
  15. package/dist/commonjs/constants/version.js +1 -1
  16. package/dist/commonjs/customHooks/bundleAnalyzer.d.ts +115 -0
  17. package/dist/commonjs/customHooks/bundleAnalyzer.js +561 -0
  18. package/dist/commonjs/customHooks/performanceTracker.d.ts +84 -0
  19. package/dist/commonjs/customHooks/performanceTracker.js +541 -0
  20. package/dist/commonjs/helpers/index.d.ts +15 -0
  21. package/dist/commonjs/helpers/index.js +112 -1
  22. package/dist/commonjs/i18n/locales/en.json +225 -2
  23. package/dist/commonjs/styles/AppColors.d.ts +110 -0
  24. package/dist/commonjs/styles/AppColors.js +114 -0
  25. package/dist/esm/components/AnalyticsDetail.js +5 -3
  26. package/dist/esm/components/AnalyticsEventCard.d.ts +0 -1
  27. package/dist/esm/components/AnalyticsEventCard.js +89 -96
  28. package/dist/esm/components/ErrorBoundary.js +17 -8
  29. package/dist/esm/components/Inspector/BundleTab.d.ts +1 -0
  30. package/dist/esm/components/Inspector/BundleTab.js +612 -690
  31. package/dist/esm/components/Inspector/LogDetail.js +13 -7
  32. package/dist/esm/components/Inspector/PerformanceTab.js +196 -255
  33. package/dist/esm/components/Inspector/ReduxDetail.js +2 -2
  34. package/dist/esm/components/Inspector/ReduxTab.js +10 -7
  35. package/dist/esm/components/NetworkIcons.d.ts +12 -0
  36. package/dist/esm/components/NetworkIcons.js +79 -0
  37. package/dist/esm/components/TreeNode.js +2 -2
  38. package/dist/esm/constants/version.d.ts +1 -1
  39. package/dist/esm/constants/version.js +1 -1
  40. package/dist/esm/customHooks/bundleAnalyzer.d.ts +115 -0
  41. package/dist/esm/customHooks/bundleAnalyzer.js +554 -0
  42. package/dist/esm/customHooks/performanceTracker.d.ts +84 -0
  43. package/dist/esm/customHooks/performanceTracker.js +537 -0
  44. package/dist/esm/helpers/index.d.ts +15 -0
  45. package/dist/esm/helpers/index.js +107 -0
  46. package/dist/esm/i18n/locales/en.json +225 -2
  47. package/dist/esm/styles/AppColors.d.ts +110 -0
  48. package/dist/esm/styles/AppColors.js +114 -0
  49. package/package.json +1 -1
@@ -47,7 +47,9 @@ const AppFonts_1 = require("../styles/AppFonts");
47
47
  const helpers_1 = require("../helpers");
48
48
  // Stylesheet
49
49
  const AppColors_1 = require("../styles/AppColors");
50
+ const i18n_1 = require("../i18n");
50
51
  const AnalyticsDetail = ({ event, }) => {
52
+ const { t } = (0, i18n_1.useTranslation)();
51
53
  const [expandDepth, setExpandDepth] = (0, react_1.useState)(1);
52
54
  const [treeKey, setTreeKey] = (0, react_1.useState)(0);
53
55
  const params = event.params ?? {};
@@ -67,7 +69,7 @@ const AnalyticsDetail = ({ event, }) => {
67
69
  }
68
70
  else if (isArray) {
69
71
  typeLabel = 'array';
70
- countLabel = `${jsonData.length} items`;
72
+ countLabel = `${jsonData.length} ${t('analytics.items')}`;
71
73
  }
72
74
  else if (isObject) {
73
75
  typeLabel = 'object';
@@ -107,7 +109,7 @@ const AnalyticsDetail = ({ event, }) => {
107
109
  fontSize: 12,
108
110
  color: AppColors_1.AppColors.purple,
109
111
  }}>
110
- {expandDepth === 99 ? 'Collapse All' : 'Expand All'}
112
+ {expandDepth === 99 ? t('common.collapseAll') : t('common.expandAll')}
111
113
  </react_native_1.Text>
112
114
  </TouchableScale_1.default>
113
115
  <react_native_1.View style={{
@@ -144,7 +146,7 @@ const AnalyticsDetail = ({ event, }) => {
144
146
  </react_native_1.View>
145
147
  </react_native_1.View>
146
148
 
147
- <CopyButton_1.default value={JSON.stringify(jsonData, null, 2)} label="Copy JSON"/>
149
+ <CopyButton_1.default value={JSON.stringify(jsonData, null, 2)} label={t('common.copyJson')}/>
148
150
  </react_native_1.View>
149
151
 
150
152
  {/* Direct JSON Viewer View */}
@@ -1,5 +1,4 @@
1
1
  import React from 'react';
2
2
  import { AnalyticsEventCardProps } from '../types';
3
- export declare function getEventColor(name: string): string;
4
3
  declare const AnalyticsEventCard: React.NamedExoticComponent<AnalyticsEventCardProps>;
5
4
  export default AnalyticsEventCard;
@@ -36,94 +36,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
36
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.getEventColor = getEventColor;
40
39
  const react_1 = __importStar(require("react"));
41
40
  const react_native_1 = require("react-native");
42
41
  const AppColors_1 = require("../styles/AppColors");
43
42
  const AppFonts_1 = require("../styles/AppFonts");
44
43
  const helpers_1 = require("../helpers");
44
+ const i18n_1 = require("../i18n");
45
45
  const HighlightText_1 = __importDefault(require("./HighlightText"));
46
46
  const TouchableScale_1 = __importDefault(require("./TouchableScale"));
47
- // ─── Palette (Google Analytics colours) ───────────────────────────────────────
48
- const EVENT_PALETTE = [
49
- AppColors_1.AppColors.googleBlue, // blue
50
- AppColors_1.AppColors.googleGreen, // green
51
- AppColors_1.AppColors.googlePurple, // purple
52
- AppColors_1.AppColors.googleTeal, // teal
53
- AppColors_1.AppColors.googleRed, // red
54
- AppColors_1.AppColors.googleOrange, // orange
55
- AppColors_1.AppColors.blue700, // dark blue
56
- AppColors_1.AppColors.materialGreen, // dark green
57
- ];
58
- function getEventColor(name) {
59
- const safeName = typeof name === 'string' ? name : String(name || '');
60
- let hash = 0;
61
- for (let i = 0; i < safeName.length; i++) {
62
- hash = (hash * 31 + safeName.charCodeAt(i)) | 0;
63
- }
64
- return EVENT_PALETTE[Math.abs(hash) % EVENT_PALETTE.length];
65
- }
66
- // ─── Helpers ──────────────────────────────────────────────────────────────────
67
- function getEventCategory(name) {
68
- if (!name)
69
- return 'Custom';
70
- const lowercaseName = name.toLowerCase();
71
- if (lowercaseName === 'screen_view' || lowercaseName === 'page_view') {
72
- return 'Page View';
73
- }
74
- // Ecommerce events
75
- const ecommerceEvents = [
76
- 'purchase', 'add_to_cart', 'begin_checkout', 'view_item',
77
- 'select_item', 'remove_from_cart', 'view_cart',
78
- 'add_shipping_info', 'add_payment_info', 'refund',
79
- 'view_item_list', 'select_promotion', 'view_promotion'
80
- ];
81
- if (ecommerceEvents.includes(lowercaseName)) {
82
- return 'Ecommerce';
83
- }
84
- // Firebase System Auto-events
85
- const systemEvents = [
86
- 'first_open', 'session_start', 'user_engagement',
87
- 'app_clear_data', 'app_exception', 'app_update', 'os_update',
88
- 'notification_receive', 'notification_open', 'notification_dismiss',
89
- 'screen_active', 'screen_inactive'
90
- ];
91
- if (systemEvents.includes(lowercaseName) || lowercaseName.startsWith('firebase_') || lowercaseName.startsWith('_')) {
92
- return 'System';
93
- }
94
- return 'Custom';
95
- }
96
- function getCategoryColors(category) {
97
- switch (category) {
98
- case 'Page View':
99
- return {
100
- bg: AppColors_1.AppColors.blueBg,
101
- border: AppColors_1.AppColors.blueBorder,
102
- text: AppColors_1.AppColors.blue800,
103
- };
104
- case 'Ecommerce':
105
- return {
106
- bg: AppColors_1.AppColors.greenBg,
107
- border: AppColors_1.AppColors.greenBorder,
108
- text: AppColors_1.AppColors.materialGreen,
109
- };
110
- case 'System':
111
- return {
112
- bg: AppColors_1.AppColors.greyBg,
113
- border: AppColors_1.AppColors.greyBorder,
114
- text: AppColors_1.AppColors.grey600,
115
- };
116
- default:
117
- return {
118
- bg: AppColors_1.AppColors.purpleBg,
119
- border: AppColors_1.AppColors.purpleBorder,
120
- text: AppColors_1.AppColors.purpleText,
121
- };
122
- }
123
- }
47
+ const NetworkIcons_1 = require("./NetworkIcons");
124
48
  // ─── Component ────────────────────────────────────────────────────────────────
125
49
  const AnalyticsEventCard = react_1.default.memo(function AnalyticsEventCard({ event, onPress, isNew = false, searchStr = '', msSincePrev, computedScreenName, }) {
126
- const color = getEventColor(event.name);
50
+ const { t } = (0, i18n_1.useTranslation)();
51
+ const color = (0, helpers_1.getEventColor)(event.name);
127
52
  const paramCount = event.params ? Object.keys(event.params).length : 0;
128
53
  const userPropCount = event.userProperties
129
54
  ? Object.keys(event.userProperties).length
@@ -143,11 +68,19 @@ const AnalyticsEventCard = react_1.default.memo(function AnalyticsEventCard({ ev
143
68
  return (<react_native_1.View style={cardStyles.container}>
144
69
  {/* ── Gap Indicator ─────────────────────────────────────────────────── */}
145
70
  {showGap && (<react_native_1.View style={cardStyles.gapContainer}>
146
- <react_native_1.Text style={[cardStyles.gapText, { color: AppColors_1.AppColors.grayTextWeak }]}>{(0, helpers_1.formatGap)(msSincePrev)}</react_native_1.Text>
71
+ <react_native_1.Text style={[cardStyles.gapText, { color: AppColors_1.AppColors.grayTextWeak }]}>
72
+ {(0, helpers_1.formatGap)(msSincePrev)}
73
+ </react_native_1.Text>
147
74
  </react_native_1.View>)}
148
75
 
149
76
  {/* ── Main Card ─────────────────────────────────────────────────────── */}
150
- <TouchableScale_1.default onPress={onPress} style={[cardStyles.modernCard, { backgroundColor: AppColors_1.AppColors.primaryLight, borderColor: AppColors_1.AppColors.grayBorderSecondary }]}>
77
+ <TouchableScale_1.default onPress={onPress} style={[
78
+ cardStyles.modernCard,
79
+ {
80
+ backgroundColor: AppColors_1.AppColors.primaryLight,
81
+ borderColor: AppColors_1.AppColors.grayBorderSecondary,
82
+ },
83
+ ]}>
151
84
  <react_native_1.Animated.View style={[
152
85
  react_native_1.StyleSheet.absoluteFill,
153
86
  {
@@ -170,14 +103,21 @@ const AnalyticsEventCard = react_1.default.memo(function AnalyticsEventCard({ ev
170
103
  </react_native_1.View>
171
104
 
172
105
  {(() => {
173
- const category = getEventCategory(event.name);
174
- const tagColors = getCategoryColors(category);
106
+ const catKey = (0, helpers_1.getEventCategory)(event.name);
107
+ const tagColors = (0, helpers_1.getCategoryColors)(catKey);
108
+ const categoryLabel = catKey === 'page_view'
109
+ ? t('analytics.pageViewCategory')
110
+ : catKey === 'ecommerce'
111
+ ? t('analytics.ecommerceCategory')
112
+ : catKey === 'system'
113
+ ? t('analytics.systemCategory')
114
+ : t('analytics.customCategory');
175
115
  return (<react_native_1.View style={[
176
116
  cardStyles.categoryBadge,
177
117
  { backgroundColor: tagColors.bg, borderColor: tagColors.border },
178
118
  ]}>
179
119
  <react_native_1.Text style={[cardStyles.categoryText, { color: tagColors.text }]}>
180
- {category}
120
+ {categoryLabel}
181
121
  </react_native_1.Text>
182
122
  </react_native_1.View>);
183
123
  })()}
@@ -193,7 +133,8 @@ const AnalyticsEventCard = react_1.default.memo(function AnalyticsEventCard({ ev
193
133
  cardStyles.duplicateText,
194
134
  event.count === 1 && { color: AppColors_1.AppColors.grayTextStrong },
195
135
  ]}>
196
- {event.count}×{event.count > 1 ? ' Duplicate' : ''}
136
+ {event.count}×
137
+ {event.count > 1 ? ` ${t('analytics.duplicate')}` : ''}
197
138
  </react_native_1.Text>
198
139
  </react_native_1.View>) : null}
199
140
  </react_native_1.View>
@@ -216,7 +157,13 @@ const AnalyticsEventCard = react_1.default.memo(function AnalyticsEventCard({ ev
216
157
  const screenNameStr = typeof rawScreenName === 'object'
217
158
  ? JSON.stringify(rawScreenName)
218
159
  : String(rawScreenName);
219
- return (<react_native_1.View style={[cardStyles.chip, { backgroundColor: AppColors_1.AppColors.grayBackground, borderColor: AppColors_1.AppColors.grayBorderSecondary }]}>
160
+ return (<react_native_1.View style={[
161
+ cardStyles.chip,
162
+ {
163
+ backgroundColor: AppColors_1.AppColors.grayBackground,
164
+ borderColor: AppColors_1.AppColors.grayBorderSecondary,
165
+ },
166
+ ]}>
220
167
  <react_native_1.View style={[cardStyles.screenDot, { backgroundColor: color }]}/>
221
168
  <react_native_1.Text style={[cardStyles.chipText, { color: AppColors_1.AppColors.grayText }]} numberOfLines={1}>
222
169
  {screenNameStr}
@@ -224,22 +171,52 @@ const AnalyticsEventCard = react_1.default.memo(function AnalyticsEventCard({ ev
224
171
  </react_native_1.View>);
225
172
  })()}
226
173
 
227
- <react_native_1.View style={[cardStyles.chip, { backgroundColor: AppColors_1.AppColors.grayBackground, borderColor: AppColors_1.AppColors.grayBorderSecondary }]}>
174
+ <react_native_1.View style={[
175
+ cardStyles.chip,
176
+ {
177
+ backgroundColor: AppColors_1.AppColors.grayBackground,
178
+ borderColor: AppColors_1.AppColors.grayBorderSecondary,
179
+ },
180
+ ]}>
228
181
  <react_native_1.Text style={[cardStyles.chipText, { color: AppColors_1.AppColors.grayText }]}>
229
- {'{} '} {paramCount} params
182
+ {'{} '} {paramCount} {t('analytics.params')}
230
183
  </react_native_1.Text>
231
184
  </react_native_1.View>
232
185
 
233
- {userPropCount > 0 && (<react_native_1.View style={[cardStyles.chip, { backgroundColor: AppColors_1.AppColors.grayBackground, borderColor: AppColors_1.AppColors.grayBorderSecondary }]}>
234
- <react_native_1.Text style={[cardStyles.chipText, { color: AppColors_1.AppColors.grayText }]}>★ {userPropCount} props</react_native_1.Text>
186
+ {userPropCount > 0 && (<react_native_1.View style={[
187
+ cardStyles.chip,
188
+ {
189
+ backgroundColor: AppColors_1.AppColors.grayBackground,
190
+ borderColor: AppColors_1.AppColors.grayBorderSecondary,
191
+ },
192
+ ]}>
193
+ <react_native_1.Text style={[cardStyles.chipText, { color: AppColors_1.AppColors.grayText }]}>
194
+ ★ {userPropCount} {t('analytics.props')}
195
+ </react_native_1.Text>
235
196
  </react_native_1.View>)}
236
197
 
237
198
  {(() => {
238
199
  const items = event.params?.items;
239
200
  if (Array.isArray(items) && items.length > 0) {
240
- return (<react_native_1.View style={[cardStyles.chip, { backgroundColor: AppColors_1.AppColors.amberBg, borderColor: AppColors_1.AppColors.amberBorder }]}>
241
- <react_native_1.Text style={[cardStyles.chipText, { color: AppColors_1.AppColors.amber700, fontFamily: AppFonts_1.AppFonts.interBold }]}>
242
- 🛒 {items.length} {items.length === 1 ? 'item' : 'items'}
201
+ return (<react_native_1.View style={[
202
+ cardStyles.chip,
203
+ {
204
+ backgroundColor: AppColors_1.AppColors.amberBg,
205
+ borderColor: AppColors_1.AppColors.amberBorder,
206
+ },
207
+ ]}>
208
+ <NetworkIcons_1.CartIcon color={AppColors_1.AppColors.amber700} size={12}/>
209
+ <react_native_1.Text style={[
210
+ cardStyles.chipText,
211
+ {
212
+ color: AppColors_1.AppColors.amber700,
213
+ fontFamily: AppFonts_1.AppFonts.interBold,
214
+ },
215
+ ]}>
216
+ {items.length}{' '}
217
+ {items.length === 1
218
+ ? t('analytics.item')
219
+ : t('analytics.items')}
243
220
  </react_native_1.Text>
244
221
  </react_native_1.View>);
245
222
  }
@@ -251,10 +228,25 @@ const AnalyticsEventCard = react_1.default.memo(function AnalyticsEventCard({ ev
251
228
  const currency = event.params?.currency ?? '';
252
229
  const isPrimitive = typeof val === 'string' || typeof val === 'number';
253
230
  if (isPrimitive) {
254
- const currencyStr = typeof currency === 'string' || typeof currency === 'number' ? String(currency) : '';
255
- return (<react_native_1.View style={[cardStyles.chip, { backgroundColor: AppColors_1.AppColors.emeraldBg, borderColor: AppColors_1.AppColors.emeraldBorder }]}>
256
- <react_native_1.Text style={[cardStyles.chipText, { color: AppColors_1.AppColors.emerald600, fontFamily: AppFonts_1.AppFonts.interBold }]}>
257
- 💰 {String(val)} {currencyStr}
231
+ const currencyStr = typeof currency === 'string' || typeof currency === 'number'
232
+ ? String(currency)
233
+ : '';
234
+ return (<react_native_1.View style={[
235
+ cardStyles.chip,
236
+ {
237
+ backgroundColor: AppColors_1.AppColors.emeraldBg,
238
+ borderColor: AppColors_1.AppColors.emeraldBorder,
239
+ },
240
+ ]}>
241
+ <NetworkIcons_1.MoneyIcon color={AppColors_1.AppColors.emerald600} size={12}/>
242
+ <react_native_1.Text style={[
243
+ cardStyles.chipText,
244
+ {
245
+ color: AppColors_1.AppColors.emerald600,
246
+ fontFamily: AppFonts_1.AppFonts.interBold,
247
+ },
248
+ ]}>
249
+ {String(val)} {currencyStr}
258
250
  </react_native_1.Text>
259
251
  </react_native_1.View>);
260
252
  }
@@ -39,6 +39,7 @@ const react_native_1 = require("react-native");
39
39
  const AppColors_1 = require("../styles/AppColors");
40
40
  const AppFonts_1 = require("../styles/AppFonts");
41
41
  const helpers_1 = require("../helpers");
42
+ const NetworkIcons_1 = require("./NetworkIcons");
42
43
  function parseStackTrace(stack) {
43
44
  if (!stack)
44
45
  return null;
@@ -110,7 +111,10 @@ ${error.stack}`;
110
111
  const isInline = this.props.fallbackType === 'inline';
111
112
  if (isInline) {
112
113
  return (<react_native_1.View style={styles.inlineContainer}>
113
- <react_native_1.Text style={styles.inlineTitle}>⚠️ Inspector Crash</react_native_1.Text>
114
+ <react_native_1.View style={{ flexDirection: 'row', alignItems: 'center', gap: 6 }}>
115
+ <NetworkIcons_1.WarningTriangleIcon color={AppColors_1.AppColors.redErrorText} size={14}/>
116
+ <react_native_1.Text style={styles.inlineTitle}>Inspector Crash</react_native_1.Text>
117
+ </react_native_1.View>
114
118
  <react_native_1.TouchableOpacity style={styles.inlineResetBtn} onPress={this.handleReset}>
115
119
  <react_native_1.Text style={styles.inlineResetText}>Reload</react_native_1.Text>
116
120
  </react_native_1.TouchableOpacity>
@@ -121,7 +125,9 @@ ${error.stack}`;
121
125
  const parsed = error && error.stack ? parseStackTrace(error.stack) : null;
122
126
  return (<react_native_1.View style={styles.container}>
123
127
  <react_native_1.View style={styles.card}>
124
- <react_native_1.Text style={styles.emoji}>⚠️</react_native_1.Text>
128
+ <react_native_1.View style={{ marginBottom: 12, alignItems: 'center' }}>
129
+ <NetworkIcons_1.WarningTriangleIcon color={AppColors_1.AppColors.amber500} size={44}/>
130
+ </react_native_1.View>
125
131
  <react_native_1.Text style={styles.title}>Something went wrong</react_native_1.Text>
126
132
 
127
133
  <react_native_1.View style={{
@@ -134,13 +140,19 @@ ${error.stack}`;
134
140
  marginBottom: 12,
135
141
  gap: 4
136
142
  }}>
143
+ <react_native_1.View style={{
144
+ width: 8,
145
+ height: 8,
146
+ borderRadius: 4,
147
+ backgroundColor: isNativeCrash ? AppColors_1.AppColors.errorColor : AppColors_1.AppColors.amber500,
148
+ }}/>
137
149
  <react_native_1.Text style={{
138
150
  fontSize: 10,
139
151
  fontWeight: 'bold',
140
152
  color: isNativeCrash ? AppColors_1.AppColors.errorColor : AppColors_1.AppColors.amber500,
141
153
  fontFamily: AppFonts_1.AppFonts.interBold || 'System'
142
154
  }}>
143
- {isNativeCrash ? '🔴 NATIVE CRASH' : '🟡 JAVASCRIPT CRASH'}
155
+ {isNativeCrash ? 'NATIVE CRASH' : 'JAVASCRIPT CRASH'}
144
156
  </react_native_1.Text>
145
157
  </react_native_1.View>
146
158
 
@@ -187,8 +199,9 @@ ${error.stack}`;
187
199
  flexDirection: 'row',
188
200
  gap: 6
189
201
  }} onPress={this.handleCopyTrace}>
202
+ <NetworkIcons_1.CopyIcon color={AppColors_1.AppColors.white} size={14}/>
190
203
  <react_native_1.Text style={{ color: AppColors_1.AppColors.white, fontSize: 12, fontWeight: 'bold', fontFamily: AppFonts_1.AppFonts.interBold || 'System' }}>
191
- 📋 Copy Crash Traceback
204
+ Copy Crash Traceback
192
205
  </react_native_1.Text>
193
206
  </react_native_1.TouchableOpacity>
194
207
  </react_native_1.View>
@@ -231,10 +244,6 @@ const styles = react_native_1.StyleSheet.create({
231
244
  shadowRadius: 12,
232
245
  elevation: 8,
233
246
  },
234
- emoji: {
235
- fontSize: 40,
236
- marginBottom: 12,
237
- },
238
247
  title: {
239
248
  fontFamily: AppFonts_1.AppFonts.interBold || 'System',
240
249
  fontSize: 18,
@@ -32,6 +32,7 @@ export interface BundlePackageItem {
32
32
  lastActive?: string;
33
33
  npmUrl?: string;
34
34
  }
35
+ export type BundleIconType = 'source' | 'deps' | 'media' | 'overhead' | 'image' | 'typescript' | 'javascript' | 'font' | 'json' | 'folder' | 'ban' | 'bolt';
35
36
  export interface TreeNode {
36
37
  id: string;
37
38
  name: string;