react-native-inapp-inspector 1.1.14 → 1.1.16

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 (246) hide show
  1. package/README.md +133 -151
  2. package/dist/commonjs/assets/svgAssets.d.ts +3 -0
  3. package/dist/commonjs/assets/svgAssets.js +17 -0
  4. package/dist/commonjs/components/AnalyticsEventCard.d.ts +1 -14
  5. package/dist/commonjs/components/AnalyticsEventCard.js +34 -51
  6. package/dist/commonjs/components/AnalyticsGraph.d.ts +2 -6
  7. package/dist/commonjs/components/AnalyticsGraph.js +8 -8
  8. package/dist/commonjs/components/AnalyticsTabView.d.ts +15 -0
  9. package/dist/commonjs/components/AnalyticsTabView.js +157 -0
  10. package/dist/commonjs/components/AnimatedEntrance.d.ts +1 -1
  11. package/dist/commonjs/components/AnimatedEntrance.js +2 -2
  12. package/dist/commonjs/components/ApiDetailView.d.ts +22 -0
  13. package/dist/commonjs/components/ApiDetailView.js +304 -0
  14. package/dist/commonjs/components/ApisTabView.d.ts +33 -0
  15. package/dist/commonjs/components/ApisTabView.js +235 -0
  16. package/dist/commonjs/components/CodeSnippet.d.ts +1 -5
  17. package/dist/commonjs/components/CodeSnippet.js +34 -34
  18. package/dist/commonjs/components/ConsoleLogCard.d.ts +1 -8
  19. package/dist/commonjs/components/ConsoleLogCard.js +262 -442
  20. package/dist/commonjs/components/ConsoleLogDetailView.d.ts +9 -0
  21. package/dist/commonjs/components/ConsoleLogDetailView.js +278 -0
  22. package/dist/commonjs/components/ConsoleLogsTabView.d.ts +24 -0
  23. package/dist/commonjs/components/ConsoleLogsTabView.js +354 -0
  24. package/dist/commonjs/components/CopyButton.d.ts +1 -1
  25. package/dist/commonjs/components/CopyButton.js +4 -4
  26. package/dist/commonjs/components/DiffViewer.js +4 -2
  27. package/dist/commonjs/components/DomainHeader.js +66 -41
  28. package/dist/commonjs/components/EmptyState.d.ts +2 -2
  29. package/dist/commonjs/components/EmptyState.js +2 -2
  30. package/dist/commonjs/components/EndOfListFooter.d.ts +8 -0
  31. package/dist/commonjs/components/EndOfListFooter.js +89 -0
  32. package/dist/commonjs/components/ErrorBoundary.d.ts +5 -14
  33. package/dist/commonjs/components/ErrorBoundary.js +28 -28
  34. package/dist/commonjs/components/FloatingBubble.d.ts +14 -0
  35. package/dist/commonjs/components/FloatingBubble.js +75 -0
  36. package/dist/commonjs/components/HeadersSection.js +5 -3
  37. package/dist/commonjs/components/HighlightText.d.ts +1 -1
  38. package/dist/commonjs/components/HighlightText.js +5 -7
  39. package/dist/commonjs/components/Inspector/AnalyticsTab.d.ts +3 -0
  40. package/dist/commonjs/components/Inspector/AnalyticsTab.js +231 -0
  41. package/dist/commonjs/components/Inspector/ConsoleTab.d.ts +3 -0
  42. package/dist/commonjs/components/Inspector/ConsoleTab.js +410 -0
  43. package/dist/commonjs/components/Inspector/FabLauncher.d.ts +3 -0
  44. package/dist/commonjs/components/Inspector/FabLauncher.js +54 -0
  45. package/dist/commonjs/components/Inspector/InsightsDashboard.d.ts +3 -0
  46. package/dist/commonjs/components/Inspector/InsightsDashboard.js +619 -0
  47. package/dist/commonjs/components/Inspector/InspectorContext.d.ts +5 -0
  48. package/dist/commonjs/components/Inspector/InspectorContext.js +18 -0
  49. package/dist/commonjs/components/Inspector/InspectorHeader.d.ts +3 -0
  50. package/dist/commonjs/components/Inspector/InspectorHeader.js +452 -0
  51. package/dist/commonjs/components/Inspector/LogDetail.d.ts +3 -0
  52. package/dist/commonjs/components/Inspector/LogDetail.js +963 -0
  53. package/dist/commonjs/components/Inspector/MainScreen.d.ts +3 -0
  54. package/dist/commonjs/components/Inspector/MainScreen.js +68 -0
  55. package/dist/commonjs/components/Inspector/NavigationTracker.d.ts +3 -0
  56. package/dist/commonjs/components/Inspector/NavigationTracker.js +12 -0
  57. package/dist/commonjs/components/Inspector/NetworkDetail.d.ts +3 -0
  58. package/dist/commonjs/components/Inspector/NetworkDetail.js +405 -0
  59. package/dist/commonjs/components/Inspector/NetworkTab.d.ts +3 -0
  60. package/dist/commonjs/components/Inspector/NetworkTab.js +282 -0
  61. package/dist/commonjs/components/Inspector/ReduxTab.d.ts +3 -0
  62. package/dist/commonjs/components/Inspector/ReduxTab.js +75 -0
  63. package/dist/commonjs/components/Inspector/SettingsPanel.d.ts +3 -0
  64. package/dist/commonjs/components/Inspector/SettingsPanel.js +1476 -0
  65. package/dist/commonjs/components/Inspector/TabBar.d.ts +3 -0
  66. package/dist/commonjs/components/Inspector/TabBar.js +95 -0
  67. package/dist/commonjs/components/Inspector/WebViewTab.d.ts +3 -0
  68. package/dist/commonjs/components/Inspector/WebViewTab.js +757 -0
  69. package/dist/commonjs/components/InspectorHeader.d.ts +19 -0
  70. package/dist/commonjs/components/InspectorHeader.js +329 -0
  71. package/dist/commonjs/components/InspectorTabBar.d.ts +16 -0
  72. package/dist/commonjs/components/InspectorTabBar.js +90 -0
  73. package/dist/commonjs/components/JsonViewer.d.ts +5 -2
  74. package/dist/commonjs/components/JsonViewer.js +111 -172
  75. package/dist/commonjs/components/LogCard.js +109 -86
  76. package/dist/commonjs/components/MetaAccordion.d.ts +1 -10
  77. package/dist/commonjs/components/MetaAccordion.js +23 -21
  78. package/dist/commonjs/components/NavigationTracker.d.ts +7 -0
  79. package/dist/commonjs/components/NavigationTracker.js +76 -0
  80. package/dist/commonjs/components/NetworkIcons.d.ts +6 -0
  81. package/dist/commonjs/components/NetworkIcons.js +54 -8
  82. package/dist/commonjs/components/ReduxTabView.d.ts +9 -0
  83. package/dist/commonjs/components/ReduxTabView.js +56 -0
  84. package/dist/commonjs/components/ReduxTreeView.d.ts +2 -2
  85. package/dist/commonjs/components/ReduxTreeView.js +243 -203
  86. package/dist/commonjs/components/SegmentedTabs.d.ts +15 -0
  87. package/dist/commonjs/components/SegmentedTabs.js +52 -0
  88. package/dist/commonjs/components/SettingsView.d.ts +13 -0
  89. package/dist/commonjs/components/SettingsView.js +328 -0
  90. package/dist/commonjs/components/TouchableScale.d.ts +2 -2
  91. package/dist/commonjs/components/TouchableScale.js +2 -2
  92. package/dist/commonjs/components/TreeNode.js +2 -2
  93. package/dist/commonjs/constants/index.js +1 -12
  94. package/dist/commonjs/constants/version.d.ts +1 -1
  95. package/dist/commonjs/constants/version.js +1 -1
  96. package/dist/commonjs/customHooks/consoleLogger.js +137 -13
  97. package/dist/commonjs/customHooks/networkLogger.d.ts +0 -1
  98. package/dist/commonjs/customHooks/networkLogger.js +0 -1
  99. package/dist/commonjs/customHooks/reduxLogger.d.ts +2 -9
  100. package/dist/commonjs/enums/index.d.ts +39 -0
  101. package/dist/commonjs/enums/index.js +50 -0
  102. package/dist/commonjs/helpers/index.d.ts +27 -1
  103. package/dist/commonjs/helpers/index.js +187 -12
  104. package/dist/commonjs/helpers/settingsStore.d.ts +2 -24
  105. package/dist/commonjs/i18n/en.json +144 -0
  106. package/dist/commonjs/i18n/index.d.ts +2 -0
  107. package/dist/commonjs/i18n/index.js +27 -0
  108. package/dist/commonjs/i18n/locales/en.json +314 -0
  109. package/dist/commonjs/index.d.ts +1 -2
  110. package/dist/commonjs/index.js +196 -4800
  111. package/dist/commonjs/styles/AppColors.d.ts +148 -0
  112. package/dist/commonjs/styles/AppColors.js +176 -0
  113. package/dist/commonjs/styles/common.d.ts +3 -0
  114. package/dist/commonjs/styles/common.js +201 -0
  115. package/dist/commonjs/styles/index.d.ts +167 -442
  116. package/dist/commonjs/styles/index.js +239 -471
  117. package/dist/commonjs/types/enums.d.ts +9 -0
  118. package/dist/commonjs/types/enums.js +4 -0
  119. package/dist/commonjs/types/index.d.ts +4 -111
  120. package/dist/commonjs/types/index.js +16 -0
  121. package/dist/commonjs/types/interfaces.d.ts +337 -0
  122. package/dist/commonjs/types/interfaces.js +2 -0
  123. package/dist/esm/assets/svgAssets.d.ts +3 -0
  124. package/dist/esm/assets/svgAssets.js +14 -0
  125. package/dist/esm/components/AnalyticsEventCard.d.ts +1 -14
  126. package/dist/esm/components/AnalyticsEventCard.js +32 -49
  127. package/dist/esm/components/AnalyticsGraph.d.ts +2 -6
  128. package/dist/esm/components/AnalyticsGraph.js +8 -8
  129. package/dist/esm/components/AnalyticsTabView.d.ts +15 -0
  130. package/dist/esm/components/AnalyticsTabView.js +151 -0
  131. package/dist/esm/components/AnimatedEntrance.d.ts +1 -1
  132. package/dist/esm/components/AnimatedEntrance.js +2 -2
  133. package/dist/esm/components/ApiDetailView.d.ts +22 -0
  134. package/dist/esm/components/ApiDetailView.js +264 -0
  135. package/dist/esm/components/ApisTabView.d.ts +33 -0
  136. package/dist/esm/components/ApisTabView.js +196 -0
  137. package/dist/esm/components/CodeSnippet.d.ts +1 -5
  138. package/dist/esm/components/CodeSnippet.js +34 -34
  139. package/dist/esm/components/ConsoleLogCard.d.ts +1 -8
  140. package/dist/esm/components/ConsoleLogCard.js +262 -409
  141. package/dist/esm/components/ConsoleLogDetailView.d.ts +9 -0
  142. package/dist/esm/components/ConsoleLogDetailView.js +271 -0
  143. package/dist/esm/components/ConsoleLogsTabView.d.ts +24 -0
  144. package/dist/esm/components/ConsoleLogsTabView.js +348 -0
  145. package/dist/esm/components/CopyButton.d.ts +1 -1
  146. package/dist/esm/components/CopyButton.js +5 -5
  147. package/dist/esm/components/DiffViewer.js +4 -2
  148. package/dist/esm/components/DomainHeader.js +66 -41
  149. package/dist/esm/components/EmptyState.d.ts +2 -2
  150. package/dist/esm/components/EmptyState.js +2 -2
  151. package/dist/esm/components/EndOfListFooter.d.ts +8 -0
  152. package/dist/esm/components/EndOfListFooter.js +83 -0
  153. package/dist/esm/components/ErrorBoundary.d.ts +5 -14
  154. package/dist/esm/components/ErrorBoundary.js +29 -29
  155. package/dist/esm/components/FloatingBubble.d.ts +14 -0
  156. package/dist/esm/components/FloatingBubble.js +68 -0
  157. package/dist/esm/components/HeadersSection.js +5 -3
  158. package/dist/esm/components/HighlightText.d.ts +1 -1
  159. package/dist/esm/components/HighlightText.js +5 -7
  160. package/dist/esm/components/Inspector/AnalyticsTab.d.ts +3 -0
  161. package/dist/esm/components/Inspector/AnalyticsTab.js +193 -0
  162. package/dist/esm/components/Inspector/ConsoleTab.d.ts +3 -0
  163. package/dist/esm/components/Inspector/ConsoleTab.js +372 -0
  164. package/dist/esm/components/Inspector/FabLauncher.d.ts +3 -0
  165. package/dist/esm/components/Inspector/FabLauncher.js +49 -0
  166. package/dist/esm/components/Inspector/InsightsDashboard.d.ts +3 -0
  167. package/dist/esm/components/Inspector/InsightsDashboard.js +614 -0
  168. package/dist/esm/components/Inspector/InspectorContext.d.ts +5 -0
  169. package/dist/esm/components/Inspector/InspectorContext.js +13 -0
  170. package/dist/esm/components/Inspector/InspectorHeader.d.ts +3 -0
  171. package/dist/esm/components/Inspector/InspectorHeader.js +447 -0
  172. package/dist/esm/components/Inspector/LogDetail.d.ts +3 -0
  173. package/dist/esm/components/Inspector/LogDetail.js +925 -0
  174. package/dist/esm/components/Inspector/MainScreen.d.ts +3 -0
  175. package/dist/esm/components/Inspector/MainScreen.js +63 -0
  176. package/dist/esm/components/Inspector/NavigationTracker.d.ts +3 -0
  177. package/dist/esm/components/Inspector/NavigationTracker.js +10 -0
  178. package/dist/esm/components/Inspector/NetworkDetail.d.ts +3 -0
  179. package/dist/esm/components/Inspector/NetworkDetail.js +367 -0
  180. package/dist/esm/components/Inspector/NetworkTab.d.ts +3 -0
  181. package/dist/esm/components/Inspector/NetworkTab.js +244 -0
  182. package/dist/esm/components/Inspector/ReduxTab.d.ts +3 -0
  183. package/dist/esm/components/Inspector/ReduxTab.js +70 -0
  184. package/dist/esm/components/Inspector/SettingsPanel.d.ts +3 -0
  185. package/dist/esm/components/Inspector/SettingsPanel.js +1438 -0
  186. package/dist/esm/components/Inspector/TabBar.d.ts +3 -0
  187. package/dist/esm/components/Inspector/TabBar.js +90 -0
  188. package/dist/esm/components/Inspector/WebViewTab.d.ts +3 -0
  189. package/dist/esm/components/Inspector/WebViewTab.js +752 -0
  190. package/dist/esm/components/InspectorHeader.d.ts +19 -0
  191. package/dist/esm/components/InspectorHeader.js +323 -0
  192. package/dist/esm/components/InspectorTabBar.d.ts +16 -0
  193. package/dist/esm/components/InspectorTabBar.js +84 -0
  194. package/dist/esm/components/JsonViewer.d.ts +5 -2
  195. package/dist/esm/components/JsonViewer.js +112 -173
  196. package/dist/esm/components/LogCard.js +111 -88
  197. package/dist/esm/components/MetaAccordion.d.ts +1 -10
  198. package/dist/esm/components/MetaAccordion.js +23 -21
  199. package/dist/esm/components/NavigationTracker.d.ts +7 -0
  200. package/dist/esm/components/NavigationTracker.js +39 -0
  201. package/dist/esm/components/NetworkIcons.d.ts +6 -0
  202. package/dist/esm/components/NetworkIcons.js +46 -6
  203. package/dist/esm/components/ReduxTabView.d.ts +9 -0
  204. package/dist/esm/components/ReduxTabView.js +50 -0
  205. package/dist/esm/components/ReduxTreeView.d.ts +2 -2
  206. package/dist/esm/components/ReduxTreeView.js +245 -204
  207. package/dist/esm/components/SegmentedTabs.d.ts +15 -0
  208. package/dist/esm/components/SegmentedTabs.js +47 -0
  209. package/dist/esm/components/SettingsView.d.ts +13 -0
  210. package/dist/esm/components/SettingsView.js +321 -0
  211. package/dist/esm/components/TouchableScale.d.ts +2 -2
  212. package/dist/esm/components/TouchableScale.js +2 -2
  213. package/dist/esm/components/TreeNode.js +2 -2
  214. package/dist/esm/constants/index.js +1 -12
  215. package/dist/esm/constants/version.d.ts +1 -1
  216. package/dist/esm/constants/version.js +1 -1
  217. package/dist/esm/customHooks/consoleLogger.js +137 -13
  218. package/dist/esm/customHooks/networkLogger.d.ts +0 -1
  219. package/dist/esm/customHooks/networkLogger.js +0 -1
  220. package/dist/esm/customHooks/reduxLogger.d.ts +2 -9
  221. package/dist/esm/enums/index.d.ts +39 -0
  222. package/dist/esm/enums/index.js +47 -0
  223. package/dist/esm/helpers/index.d.ts +27 -1
  224. package/dist/esm/helpers/index.js +180 -11
  225. package/dist/esm/helpers/settingsStore.d.ts +2 -24
  226. package/dist/esm/i18n/en.json +144 -0
  227. package/dist/esm/i18n/index.d.ts +2 -0
  228. package/dist/esm/i18n/index.js +22 -0
  229. package/dist/esm/i18n/locales/en.json +314 -0
  230. package/dist/esm/index.d.ts +1 -2
  231. package/dist/esm/index.js +200 -4796
  232. package/dist/esm/styles/AppColors.d.ts +148 -0
  233. package/dist/esm/styles/AppColors.js +176 -0
  234. package/dist/esm/styles/common.d.ts +3 -0
  235. package/dist/esm/styles/common.js +197 -0
  236. package/dist/esm/styles/index.d.ts +167 -442
  237. package/dist/esm/styles/index.js +239 -471
  238. package/dist/esm/types/enums.d.ts +9 -0
  239. package/dist/esm/types/enums.js +3 -0
  240. package/dist/esm/types/index.d.ts +4 -111
  241. package/dist/esm/types/index.js +2 -1
  242. package/dist/esm/types/interfaces.d.ts +337 -0
  243. package/dist/esm/types/interfaces.js +1 -0
  244. package/example/App.tsx +145 -2
  245. package/example/README.md +33 -77
  246. package/package.json +3 -1
@@ -41,18 +41,19 @@ const react_1 = __importStar(require("react"));
41
41
  const react_native_1 = require("react-native");
42
42
  const AppColors_1 = require("../styles/AppColors");
43
43
  const AppFonts_1 = require("../styles/AppFonts");
44
+ const helpers_1 = require("../helpers");
44
45
  const HighlightText_1 = __importDefault(require("./HighlightText"));
45
46
  const TouchableScale_1 = __importDefault(require("./TouchableScale"));
46
47
  // ─── Palette (Google Analytics colours) ───────────────────────────────────────
47
48
  const EVENT_PALETTE = [
48
- '#4285F4', // blue
49
- '#34A853', // green
50
- '#9C27B0', // purple
51
- '#00897B', // teal
52
- '#E53935', // red
53
- '#F57C00', // orange
54
- '#1565C0', // dark blue
55
- '#2E7D32', // dark green
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
56
57
  ];
57
58
  function getEventColor(name) {
58
59
  const safeName = typeof name === 'string' ? name : String(name || '');
@@ -63,24 +64,6 @@ function getEventColor(name) {
63
64
  return EVENT_PALETTE[Math.abs(hash) % EVENT_PALETTE.length];
64
65
  }
65
66
  // ─── Helpers ──────────────────────────────────────────────────────────────────
66
- function formatTime(ts) {
67
- const d = new Date(ts);
68
- const hh = String(d.getHours()).padStart(2, '0');
69
- const mm = String(d.getMinutes()).padStart(2, '0');
70
- const ss = String(d.getSeconds()).padStart(2, '0');
71
- const ms = String(d.getMilliseconds()).padStart(3, '0');
72
- return `${hh}:${mm}:${ss}.${ms}`;
73
- }
74
- function formatGap(ms) {
75
- if (ms < 1000)
76
- return `+${ms}ms`;
77
- const s = Math.round(ms / 1000);
78
- if (s < 60)
79
- return `+${s}s`;
80
- const m = Math.floor(s / 60);
81
- const rem = s % 60;
82
- return rem > 0 ? `+${m}m ${rem}s` : `+${m}m`;
83
- }
84
67
  function getEventCategory(name) {
85
68
  if (!name)
86
69
  return 'Custom';
@@ -114,27 +97,27 @@ function getCategoryColors(category) {
114
97
  switch (category) {
115
98
  case 'Page View':
116
99
  return {
117
- bg: '#E3F2FD',
118
- border: '#BBDEFB',
119
- text: '#1976D2',
100
+ bg: AppColors_1.AppColors.blueBg,
101
+ border: AppColors_1.AppColors.blueBorder,
102
+ text: AppColors_1.AppColors.blue800,
120
103
  };
121
104
  case 'Ecommerce':
122
105
  return {
123
- bg: '#E8F5E9',
124
- border: '#C8E6C9',
125
- text: '#2E7D32',
106
+ bg: AppColors_1.AppColors.greenBg,
107
+ border: AppColors_1.AppColors.greenBorder,
108
+ text: AppColors_1.AppColors.materialGreen,
126
109
  };
127
110
  case 'System':
128
111
  return {
129
- bg: '#F5F5F5',
130
- border: '#E0E0E0',
131
- text: '#616161',
112
+ bg: AppColors_1.AppColors.greyBg,
113
+ border: AppColors_1.AppColors.greyBorder,
114
+ text: AppColors_1.AppColors.grey600,
132
115
  };
133
116
  default:
134
117
  return {
135
- bg: '#F3E5F5',
136
- border: '#E1BEE7',
137
- text: '#7B1FA2',
118
+ bg: AppColors_1.AppColors.purpleBg,
119
+ border: AppColors_1.AppColors.purpleBorder,
120
+ text: AppColors_1.AppColors.purpleText,
138
121
  };
139
122
  }
140
123
  }
@@ -160,7 +143,7 @@ const AnalyticsEventCard = react_1.default.memo(function AnalyticsEventCard({ ev
160
143
  return (<react_native_1.View style={cardStyles.container}>
161
144
  {/* ── Gap Indicator ─────────────────────────────────────────────────── */}
162
145
  {showGap && (<react_native_1.View style={cardStyles.gapContainer}>
163
- <react_native_1.Text style={[cardStyles.gapText, { color: AppColors_1.AppColors.grayTextWeak }]}>{formatGap(msSincePrev)}</react_native_1.Text>
146
+ <react_native_1.Text style={[cardStyles.gapText, { color: AppColors_1.AppColors.grayTextWeak }]}>{(0, helpers_1.formatGap)(msSincePrev)}</react_native_1.Text>
164
147
  </react_native_1.View>)}
165
148
 
166
149
  {/* ── Main Card ─────────────────────────────────────────────────────── */}
@@ -215,7 +198,7 @@ const AnalyticsEventCard = react_1.default.memo(function AnalyticsEventCard({ ev
215
198
  </react_native_1.View>) : null}
216
199
  </react_native_1.View>
217
200
  <react_native_1.Text style={[cardStyles.timestamp, { color: AppColors_1.AppColors.grayTextWeak }]}>
218
- {formatTime(event.timestamp)}
201
+ {(0, helpers_1.formatTime)(event.timestamp)}
219
202
  </react_native_1.Text>
220
203
  </react_native_1.View>
221
204
 
@@ -254,8 +237,8 @@ const AnalyticsEventCard = react_1.default.memo(function AnalyticsEventCard({ ev
254
237
  {(() => {
255
238
  const items = event.params?.items;
256
239
  if (Array.isArray(items) && items.length > 0) {
257
- return (<react_native_1.View style={[cardStyles.chip, { backgroundColor: '#FEF3C7', borderColor: '#FDE68A' }]}>
258
- <react_native_1.Text style={[cardStyles.chipText, { color: '#D97706', fontFamily: AppFonts_1.AppFonts.interBold }]}>
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 }]}>
259
242
  🛒 {items.length} {items.length === 1 ? 'item' : 'items'}
260
243
  </react_native_1.Text>
261
244
  </react_native_1.View>);
@@ -269,8 +252,8 @@ const AnalyticsEventCard = react_1.default.memo(function AnalyticsEventCard({ ev
269
252
  const isPrimitive = typeof val === 'string' || typeof val === 'number';
270
253
  if (isPrimitive) {
271
254
  const currencyStr = typeof currency === 'string' || typeof currency === 'number' ? String(currency) : '';
272
- return (<react_native_1.View style={[cardStyles.chip, { backgroundColor: '#ECFDF5', borderColor: '#A7F3D0' }]}>
273
- <react_native_1.Text style={[cardStyles.chipText, { color: '#059669', fontFamily: AppFonts_1.AppFonts.interBold }]}>
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 }]}>
274
257
  💰 {String(val)} {currencyStr}
275
258
  </react_native_1.Text>
276
259
  </react_native_1.View>);
@@ -299,12 +282,12 @@ const cardStyles = react_native_1.StyleSheet.create({
299
282
  letterSpacing: 0.5,
300
283
  },
301
284
  modernCard: {
302
- backgroundColor: '#FFFFFF',
285
+ backgroundColor: AppColors_1.AppColors.white,
303
286
  borderRadius: 8,
304
287
  borderWidth: 1,
305
- borderColor: '#EFEFEF',
288
+ borderColor: AppColors_1.AppColors.dividerColor,
306
289
  padding: 8,
307
- shadowColor: '#000',
290
+ shadowColor: AppColors_1.AppColors.black,
308
291
  shadowOpacity: 0.03,
309
292
  shadowRadius: 3,
310
293
  shadowOffset: { width: 0, height: 1 },
@@ -334,7 +317,7 @@ const cardStyles = react_native_1.StyleSheet.create({
334
317
  color: AppColors_1.AppColors.grayTextWeak,
335
318
  },
336
319
  highlight: {
337
- backgroundColor: '#FFE44D',
320
+ backgroundColor: AppColors_1.AppColors.yellowHighlight,
338
321
  color: AppColors_1.AppColors.primaryBlack,
339
322
  borderRadius: 2,
340
323
  },
@@ -372,8 +355,8 @@ const cardStyles = react_native_1.StyleSheet.create({
372
355
  marginRight: 4,
373
356
  },
374
357
  duplicateBadge: {
375
- backgroundColor: '#FFE4E6',
376
- borderColor: '#FCC2D7',
358
+ backgroundColor: AppColors_1.AppColors.roseBg,
359
+ borderColor: AppColors_1.AppColors.roseBorder,
377
360
  borderWidth: 1,
378
361
  paddingHorizontal: 5,
379
362
  paddingVertical: 2,
@@ -382,7 +365,7 @@ const cardStyles = react_native_1.StyleSheet.create({
382
365
  duplicateText: {
383
366
  fontFamily: AppFonts_1.AppFonts.interBold,
384
367
  fontSize: 9,
385
- color: '#E11D48',
368
+ color: AppColors_1.AppColors.rose600,
386
369
  textTransform: 'uppercase',
387
370
  letterSpacing: 0.5,
388
371
  },
@@ -1,8 +1,4 @@
1
1
  import React from 'react';
2
- import { AnalyticsEvent } from '../types';
3
- interface Props {
4
- event: AnalyticsEvent;
5
- accentColor: string;
6
- }
7
- declare const AnalyticsGraph: ({ event, accentColor }: Props) => React.JSX.Element;
2
+ import { AnalyticsGraphProps } from '../types';
3
+ declare const AnalyticsGraph: ({ event, accentColor }: AnalyticsGraphProps) => React.JSX.Element;
8
4
  export default AnalyticsGraph;
@@ -91,7 +91,7 @@ const AnalyticsGraph = ({ event, accentColor }) => {
91
91
  const typeData = [
92
92
  { label: 'Strings', value: paramTypes.string, color: AppColors_1.AppColors.purple },
93
93
  { label: 'Numbers', value: paramTypes.number, color: AppColors_1.AppColors.skyBlue },
94
- { label: 'Booleans', value: paramTypes.boolean, color: '#F59E0B' }, // Amber
94
+ { label: 'Booleans', value: paramTypes.boolean, color: AppColors_1.AppColors.amber500 }, // Amber
95
95
  { label: 'Objects', value: paramTypes.object, color: AppColors_1.AppColors.greenColor },
96
96
  ].filter(d => d.value > 0);
97
97
  strings.sort((a, b) => b.value - a.value);
@@ -132,7 +132,7 @@ const AnalyticsGraph = ({ event, accentColor }) => {
132
132
  <BarChart data={filteredItems.map((item, i) => ({
133
133
  label: item.item_name || item.item_id || `Item ${i + 1}`,
134
134
  value: item.price,
135
- }))} accentColor={AppColors_1.AppColors.successGreen || '#22C55E'} maxBarWidth={maxBarWidth} isGradient={false}/>
135
+ }))} accentColor={AppColors_1.AppColors.successGreen} maxBarWidth={maxBarWidth} isGradient={false}/>
136
136
  </react_native_1.View>)}
137
137
  </react_native_1.View>);
138
138
  };
@@ -219,12 +219,12 @@ const GaugeChart = ({ data, accentColor, }) => {
219
219
  paddingTop: 6,
220
220
  paddingBottom: 6,
221
221
  }}>
222
- {data.map((d, i) => {
222
+ {data.map(d => {
223
223
  const fillPct = Math.min(Math.abs(d.value) / maxVal, 1);
224
224
  const strokeDashoffset = Math.max(circumference - fillPct * circumference, 0.001); // avoid exact 0
225
225
  return (<react_native_1.View key={d.label} style={{ alignItems: 'center', width: 70 }}>
226
226
  <react_native_svg_1.default width="60" height="60" viewBox="0 0 60 60">
227
- <react_native_svg_1.Circle cx="30" cy="30" r={radius} stroke="#F3F4F6" strokeWidth={stroke} fill="none"/>
227
+ <react_native_svg_1.Circle cx="30" cy="30" r={radius} stroke={AppColors_1.AppColors.grayBorderSecondary} strokeWidth={stroke} fill="none"/>
228
228
  <react_native_svg_1.Circle cx="30" cy="30" r={radius} stroke={accentColor} strokeWidth={stroke} fill="none" strokeLinecap="round" strokeDasharray={circumference} strokeDashoffset={strokeDashoffset} rotation="-90" origin="30, 30"/>
229
229
  </react_native_svg_1.default>
230
230
  <react_native_1.View style={{
@@ -286,12 +286,12 @@ const CalendarChart = ({ data, accentColor, }) => {
286
286
  <react_native_1.View style={{
287
287
  width: 58,
288
288
  height: 62,
289
- backgroundColor: '#FFFFFF',
289
+ backgroundColor: AppColors_1.AppColors.white,
290
290
  borderRadius: 8,
291
291
  borderWidth: 1,
292
292
  borderColor: AppColors_1.AppColors.grayBorderSecondary,
293
293
  overflow: 'hidden',
294
- shadowColor: '#000',
294
+ shadowColor: AppColors_1.AppColors.black,
295
295
  shadowOpacity: 0.05,
296
296
  shadowRadius: 4,
297
297
  shadowOffset: { width: 0, height: 2 },
@@ -307,7 +307,7 @@ const CalendarChart = ({ data, accentColor, }) => {
307
307
  <react_native_1.Text style={{
308
308
  fontFamily: AppFonts_1.AppFonts.interBold,
309
309
  fontSize: 9,
310
- color: '#FFF',
310
+ color: AppColors_1.AppColors.white,
311
311
  textTransform: 'uppercase',
312
312
  letterSpacing: 0.5,
313
313
  }}>
@@ -319,7 +319,7 @@ const CalendarChart = ({ data, accentColor, }) => {
319
319
  flex: 1,
320
320
  justifyContent: 'center',
321
321
  alignItems: 'center',
322
- backgroundColor: '#FAFAFA',
322
+ backgroundColor: AppColors_1.AppColors.grayBackground,
323
323
  }}>
324
324
  <react_native_1.Text style={{
325
325
  fontFamily: AppFonts_1.AppFonts.interBold,
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import { AnalyticsEvent } from '../types';
3
+ interface AnalyticsTabViewProps {
4
+ analyticsSearch: string;
5
+ onSetAnalyticsSearch: (val: string) => void;
6
+ onDeleteEvents: () => void;
7
+ selectedEvent: AnalyticsEvent | null;
8
+ onSelectEvent: (event: AnalyticsEvent | null) => void;
9
+ filteredAnalyticsEvents: AnalyticsEvent[];
10
+ visibleAnalyticsEvents: AnalyticsEvent[];
11
+ currentUserProperties: Record<string, any>;
12
+ currentUserId: string | null;
13
+ }
14
+ export declare const AnalyticsTabView: React.FC<AnalyticsTabViewProps>;
15
+ export default AnalyticsTabView;
@@ -0,0 +1,157 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AnalyticsTabView = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const react_native_1 = require("react-native");
9
+ const react_i18next_1 = require("react-i18next");
10
+ const TouchableScale_1 = __importDefault(require("./TouchableScale"));
11
+ const AnalyticsEventCard_1 = __importDefault(require("./AnalyticsEventCard"));
12
+ const AnalyticsDetail_1 = __importDefault(require("./AnalyticsDetail"));
13
+ const EmptyState_1 = __importDefault(require("./EmptyState"));
14
+ const AnimatedEntrance_1 = __importDefault(require("./AnimatedEntrance"));
15
+ const NetworkIcons_1 = require("./NetworkIcons");
16
+ const AppColors_1 = require("../styles/AppColors");
17
+ const AppFonts_1 = require("../styles/AppFonts");
18
+ const styles_1 = __importDefault(require("../styles"));
19
+ exports.AnalyticsTabView = react_1.default.memo(({ analyticsSearch, onSetAnalyticsSearch, onDeleteEvents, selectedEvent, onSelectEvent, filteredAnalyticsEvents, visibleAnalyticsEvents, currentUserProperties, currentUserId, }) => {
20
+ const { t } = (0, react_i18next_1.useTranslation)();
21
+ const [userPropsExpanded, setUserPropsExpanded] = react_1.default.useState(false);
22
+ const renderItem = react_1.default.useCallback(({ item, index }) => (<AnimatedEntrance_1.default index={index} distance={8}>
23
+ <AnalyticsEventCard_1.default event={item} searchStr={analyticsSearch} onPress={() => onSelectEvent(item)}/>
24
+ </AnimatedEntrance_1.default>), [analyticsSearch, onSelectEvent]);
25
+ const keyExtractor = react_1.default.useCallback((item, index) => item.id != null ? item.id.toString() : index.toString(), []);
26
+ const renderAnalyticsHeader = () => {
27
+ const hasProps = Object.keys(currentUserProperties ?? {}).length > 0;
28
+ const total = visibleAnalyticsEvents.length;
29
+ const filtered = filteredAnalyticsEvents.length;
30
+ return (<react_native_1.View style={{ paddingHorizontal: 16, paddingTop: 8, paddingBottom: 4 }}>
31
+ {(hasProps || currentUserId) && (<react_native_1.View style={{
32
+ backgroundColor: AppColors_1.AppColors.primaryLight,
33
+ borderRadius: 10,
34
+ borderWidth: 1,
35
+ borderColor: AppColors_1.AppColors.grayBorderSecondary,
36
+ marginBottom: 10,
37
+ overflow: 'hidden',
38
+ }}>
39
+ <react_native_1.Pressable onPress={() => setUserPropsExpanded(v => !v)} style={{
40
+ flexDirection: 'row',
41
+ alignItems: 'center',
42
+ justifyContent: 'space-between',
43
+ padding: 10,
44
+ backgroundColor: AppColors_1.AppColors.grayBackground,
45
+ }}>
46
+ <react_native_1.View style={{
47
+ flexDirection: 'row',
48
+ alignItems: 'center',
49
+ gap: 6,
50
+ }}>
51
+ <NetworkIcons_1.UserIcon color={AppColors_1.AppColors.purple} size={14}/>
52
+ <react_native_1.Text style={{
53
+ fontFamily: AppFonts_1.AppFonts.interBold,
54
+ fontSize: 12,
55
+ color: AppColors_1.AppColors.primaryBlack,
56
+ }}>
57
+ {t('analytics.user_context')}
58
+ </react_native_1.Text>
59
+ {currentUserId && (<react_native_1.View style={{
60
+ backgroundColor: 'rgba(104,75,155,0.1)',
61
+ paddingHorizontal: 6,
62
+ paddingVertical: 1,
63
+ borderRadius: 4,
64
+ }}>
65
+ <react_native_1.Text style={{
66
+ fontFamily: AppFonts_1.AppFonts.interBold,
67
+ fontSize: 9,
68
+ color: AppColors_1.AppColors.purple,
69
+ }}>
70
+ {t('analytics.id')}: {currentUserId}
71
+ </react_native_1.Text>
72
+ </react_native_1.View>)}
73
+ </react_native_1.View>
74
+ <react_native_1.Text style={{
75
+ fontFamily: AppFonts_1.AppFonts.interMedium,
76
+ fontSize: 11,
77
+ color: AppColors_1.AppColors.purple,
78
+ }}>
79
+ {userPropsExpanded ? t('analytics.hide_props') : t('analytics.show_props')}
80
+ </react_native_1.Text>
81
+ </react_native_1.Pressable>
82
+
83
+ {userPropsExpanded && hasProps && (<react_native_1.View style={{
84
+ padding: 10,
85
+ borderTopWidth: 1,
86
+ borderTopColor: AppColors_1.AppColors.dividerColor,
87
+ gap: 4,
88
+ }}>
89
+ {Object.entries(currentUserProperties ?? {}).map(([k, v]) => (<react_native_1.View key={k} style={{
90
+ flexDirection: 'row',
91
+ justifyContent: 'space-between',
92
+ }}>
93
+ <react_native_1.Text style={{
94
+ fontFamily: AppFonts_1.AppFonts.interMedium,
95
+ fontSize: 11,
96
+ color: AppColors_1.AppColors.grayTextWeak,
97
+ }}>
98
+ {k}
99
+ </react_native_1.Text>
100
+ <react_native_1.Text style={{
101
+ fontFamily: AppFonts_1.AppFonts.interBold,
102
+ fontSize: 11,
103
+ color: AppColors_1.AppColors.primaryBlack,
104
+ }}>
105
+ {String(v)}
106
+ </react_native_1.Text>
107
+ </react_native_1.View>))}
108
+ </react_native_1.View>)}
109
+ </react_native_1.View>)}
110
+
111
+ <react_native_1.Text style={[styles_1.default.resultCount, { marginBottom: 4 }]}>
112
+ {t('filters.showing_analytics', { filtered, total })}
113
+ </react_native_1.Text>
114
+ </react_native_1.View>);
115
+ };
116
+ return (<react_native_1.View style={{ flex: 1 }}>
117
+ {selectedEvent != null ? (<AnalyticsDetail_1.default event={selectedEvent} onClose={() => onSelectEvent(null)}/>) : (<react_native_1.View style={{ flex: 1 }}>
118
+ <react_native_1.View style={{
119
+ backgroundColor: AppColors_1.AppColors.white,
120
+ borderBottomWidth: 1,
121
+ borderBottomColor: AppColors_1.AppColors.dividerColor,
122
+ paddingBottom: 6,
123
+ }}>
124
+ <react_native_1.View style={[
125
+ styles_1.default.toolbarRow,
126
+ { marginTop: 12, marginBottom: 8 },
127
+ ]}>
128
+ <react_native_1.View style={styles_1.default.searchContainer}>
129
+ <NetworkIcons_1.SearchIcon color={AppColors_1.AppColors.grayTextWeak} size={16}/>
130
+ <react_native_1.TextInput placeholder={t('search.analytics_placeholder')} placeholderTextColor={AppColors_1.AppColors.grayTextWeak} value={analyticsSearch} onChangeText={onSetAnalyticsSearch} style={styles_1.default.searchInput} autoCorrect={false} autoCapitalize="none"/>
131
+ {analyticsSearch.length > 0 && (<react_native_1.Pressable onPress={() => onSetAnalyticsSearch('')} hitSlop={10} style={styles_1.default.clearBtn}>
132
+ <NetworkIcons_1.ClearIcon color={AppColors_1.AppColors.grayTextWeak} size={14}/>
133
+ </react_native_1.Pressable>)}
134
+ </react_native_1.View>
135
+
136
+ <react_native_1.View style={styles_1.default.toolbarRight}>
137
+ <TouchableScale_1.default style={[
138
+ styles_1.default.toolbarBtn,
139
+ {
140
+ borderColor: 'rgba(255,46,87,0.22)',
141
+ backgroundColor: 'rgba(255,46,87,0.06)',
142
+ },
143
+ ]} onPress={onDeleteEvents} hitSlop={6}>
144
+ <NetworkIcons_1.WipeIcon color={AppColors_1.AppColors.errorColor} size={15}/>
145
+ </TouchableScale_1.default>
146
+ </react_native_1.View>
147
+ </react_native_1.View>
148
+ </react_native_1.View>
149
+
150
+ <react_native_1.FlatList data={filteredAnalyticsEvents} keyExtractor={keyExtractor} ListHeaderComponent={renderAnalyticsHeader} renderItem={renderItem} initialNumToRender={15} maxToRenderPerBatch={15} windowSize={7} removeClippedSubviews={true} ListEmptyComponent={<EmptyState_1.default isSearch={analyticsSearch.length > 0}/>} contentContainerStyle={[
151
+ styles_1.default.listContent,
152
+ filteredAnalyticsEvents.length === 0 && { flexGrow: 1 },
153
+ ]} keyboardShouldPersistTaps="handled"/>
154
+ </react_native_1.View>)}
155
+ </react_native_1.View>);
156
+ });
157
+ exports.default = exports.AnalyticsTabView;
@@ -8,5 +8,5 @@ interface AnimatedEntranceProps {
8
8
  index?: number;
9
9
  style?: ViewStyle | ViewStyle[];
10
10
  }
11
- declare const AnimatedEntrance: ({ children, delay, distance, duration, index, style, }: AnimatedEntranceProps) => React.JSX.Element;
11
+ declare const AnimatedEntrance: React.NamedExoticComponent<AnimatedEntranceProps>;
12
12
  export default AnimatedEntrance;
@@ -35,7 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  const react_1 = __importStar(require("react"));
37
37
  const react_native_1 = require("react-native");
38
- const AnimatedEntrance = ({ children, delay = 0, distance = 10, duration = 220, index = 0, style, }) => {
38
+ const AnimatedEntrance = react_1.default.memo(function AnimatedEntrance({ children, delay = 0, distance = 10, duration = 220, index = 0, style, }) {
39
39
  const progress = (0, react_1.useRef)(new react_native_1.Animated.Value(0)).current;
40
40
  (0, react_1.useEffect)(() => {
41
41
  progress.setValue(0);
@@ -68,5 +68,5 @@ const AnimatedEntrance = ({ children, delay = 0, distance = 10, duration = 220,
68
68
  ]}>
69
69
  {children}
70
70
  </react_native_1.Animated.View>);
71
- };
71
+ });
72
72
  exports.default = AnimatedEntrance;
@@ -0,0 +1,22 @@
1
+ import React from 'react';
2
+ import { NetworkLog } from '../types';
3
+ import { ApiDetailTab } from '../enums';
4
+ interface ApiDetailViewProps {
5
+ selected: NetworkLog;
6
+ apiDetailActiveTab: ApiDetailTab | 'metadata' | 'headers' | 'request' | 'response';
7
+ onSetApiDetailActiveTab: (tab: ApiDetailTab | 'metadata' | 'headers' | 'request' | 'response') => void;
8
+ detailSearch: string;
9
+ onSetDetailSearch: (val: string) => void;
10
+ reqExpanded: boolean;
11
+ onToggleReqExpanded: () => void;
12
+ resExpanded: boolean;
13
+ onToggleResExpanded: () => void;
14
+ showReqDiff: boolean;
15
+ onToggleShowReqDiff: () => void;
16
+ showResDiff: boolean;
17
+ onToggleShowResDiff: () => void;
18
+ prevRequestData: any;
19
+ prevResponseData: any;
20
+ }
21
+ export declare const ApiDetailView: React.FC<ApiDetailViewProps>;
22
+ export default ApiDetailView;