react-native-debug-toolkit 3.3.4 → 3.5.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 (258) hide show
  1. package/README.md +48 -46
  2. package/README.zh-CN.md +48 -46
  3. package/android/src/main/java/com/reactnativedebugtoolkit/DebugToolkitDevConnectModule.java +0 -187
  4. package/bin/debug-toolkit.js +0 -16
  5. package/ios/DebugToolkitDevConnect.h +0 -12
  6. package/ios/DebugToolkitDevConnect.mm +0 -321
  7. package/lib/commonjs/constants/logLevels.js +19 -0
  8. package/lib/commonjs/constants/logLevels.js.map +1 -0
  9. package/lib/commonjs/core/initialize.js +36 -18
  10. package/lib/commonjs/core/initialize.js.map +1 -1
  11. package/lib/commonjs/features/console/ConsoleLogTab.js +4 -15
  12. package/lib/commonjs/features/console/ConsoleLogTab.js.map +1 -1
  13. package/lib/commonjs/features/console/index.js +15 -8
  14. package/lib/commonjs/features/console/index.js.map +1 -1
  15. package/lib/commonjs/features/devConnect/DevConnectTab.js +18 -470
  16. package/lib/commonjs/features/devConnect/DevConnectTab.js.map +1 -1
  17. package/lib/commonjs/features/devConnect/devConnectPreferences.js +0 -12
  18. package/lib/commonjs/features/devConnect/devConnectPreferences.js.map +1 -1
  19. package/lib/commonjs/features/devConnect/devConnectUtils.js +2 -57
  20. package/lib/commonjs/features/devConnect/devConnectUtils.js.map +1 -1
  21. package/lib/commonjs/features/devConnect/index.js +1 -23
  22. package/lib/commonjs/features/devConnect/index.js.map +1 -1
  23. package/lib/commonjs/features/devConnect/nativeDevConnect.js +1 -103
  24. package/lib/commonjs/features/devConnect/nativeDevConnect.js.map +1 -1
  25. package/lib/commonjs/features/network/NetworkLogTab.js +91 -93
  26. package/lib/commonjs/features/network/NetworkLogTab.js.map +1 -1
  27. package/lib/commonjs/features/network/index.js +7 -4
  28. package/lib/commonjs/features/network/index.js.map +1 -1
  29. package/lib/commonjs/features/sessionHistory/SessionHistoryTab.js +1044 -0
  30. package/lib/commonjs/features/sessionHistory/SessionHistoryTab.js.map +1 -0
  31. package/lib/commonjs/features/sessionHistory/index.js +103 -0
  32. package/lib/commonjs/features/sessionHistory/index.js.map +1 -0
  33. package/lib/commonjs/features/track/index.js +4 -3
  34. package/lib/commonjs/features/track/index.js.map +1 -1
  35. package/lib/commonjs/index.js +27 -0
  36. package/lib/commonjs/index.js.map +1 -1
  37. package/lib/commonjs/ui/DebugView.js +3 -0
  38. package/lib/commonjs/ui/DebugView.js.map +1 -1
  39. package/lib/commonjs/ui/panel/DebugPanel.js +67 -34
  40. package/lib/commonjs/ui/panel/DebugPanel.js.map +1 -1
  41. package/lib/commonjs/ui/panel/FeatureIntroCard.js +131 -0
  42. package/lib/commonjs/ui/panel/FeatureIntroCard.js.map +1 -0
  43. package/lib/commonjs/ui/panel/FeatureRail.js +163 -0
  44. package/lib/commonjs/ui/panel/FeatureRail.js.map +1 -0
  45. package/lib/commonjs/ui/panel/FloatPanelView.js +169 -32
  46. package/lib/commonjs/ui/panel/FloatPanelView.js.map +1 -1
  47. package/lib/commonjs/ui/panel/buildFeatureSummary.js +207 -0
  48. package/lib/commonjs/ui/panel/buildFeatureSummary.js.map +1 -0
  49. package/lib/commonjs/ui/panel/filterFeatureSnapshot.js +43 -0
  50. package/lib/commonjs/ui/panel/filterFeatureSnapshot.js.map +1 -0
  51. package/lib/commonjs/ui/panel/tabPersistence.js +17 -0
  52. package/lib/commonjs/ui/panel/tabPersistence.js.map +1 -0
  53. package/lib/commonjs/ui/theme/colors.js +6 -0
  54. package/lib/commonjs/ui/theme/colors.js.map +1 -1
  55. package/lib/commonjs/utils/DaemonClient.js +30 -8
  56. package/lib/commonjs/utils/DaemonClient.js.map +1 -1
  57. package/lib/commonjs/utils/SessionManager.js +132 -0
  58. package/lib/commonjs/utils/SessionManager.js.map +1 -0
  59. package/lib/commonjs/utils/StorageAdapter.js +104 -0
  60. package/lib/commonjs/utils/StorageAdapter.js.map +1 -0
  61. package/lib/commonjs/utils/createChannelFeature.js +22 -5
  62. package/lib/commonjs/utils/createChannelFeature.js.map +1 -1
  63. package/lib/commonjs/utils/createDebugTab.js +21 -0
  64. package/lib/commonjs/utils/createDebugTab.js.map +1 -0
  65. package/lib/commonjs/utils/createPersistedObservableStore.js +14 -8
  66. package/lib/commonjs/utils/createPersistedObservableStore.js.map +1 -1
  67. package/lib/commonjs/utils/debugPreferences.js +28 -6
  68. package/lib/commonjs/utils/debugPreferences.js.map +1 -1
  69. package/lib/commonjs/utils/deviceReport.js +5 -1
  70. package/lib/commonjs/utils/deviceReport.js.map +1 -1
  71. package/lib/commonjs/utils/logRuntime.js +32 -0
  72. package/lib/commonjs/utils/logRuntime.js.map +1 -0
  73. package/lib/module/constants/logLevels.js +15 -0
  74. package/lib/module/constants/logLevels.js.map +1 -0
  75. package/lib/module/core/initialize.js +36 -18
  76. package/lib/module/core/initialize.js.map +1 -1
  77. package/lib/module/features/console/ConsoleLogTab.js +1 -12
  78. package/lib/module/features/console/ConsoleLogTab.js.map +1 -1
  79. package/lib/module/features/console/index.js +15 -8
  80. package/lib/module/features/console/index.js.map +1 -1
  81. package/lib/module/features/devConnect/DevConnectTab.js +21 -473
  82. package/lib/module/features/devConnect/DevConnectTab.js.map +1 -1
  83. package/lib/module/features/devConnect/devConnectPreferences.js +1 -12
  84. package/lib/module/features/devConnect/devConnectPreferences.js.map +1 -1
  85. package/lib/module/features/devConnect/devConnectUtils.js +1 -53
  86. package/lib/module/features/devConnect/devConnectUtils.js.map +1 -1
  87. package/lib/module/features/devConnect/index.js +5 -9
  88. package/lib/module/features/devConnect/index.js.map +1 -1
  89. package/lib/module/features/devConnect/nativeDevConnect.js +1 -100
  90. package/lib/module/features/devConnect/nativeDevConnect.js.map +1 -1
  91. package/lib/module/features/network/NetworkLogTab.js +91 -93
  92. package/lib/module/features/network/NetworkLogTab.js.map +1 -1
  93. package/lib/module/features/network/index.js +7 -4
  94. package/lib/module/features/network/index.js.map +1 -1
  95. package/lib/module/features/sessionHistory/SessionHistoryTab.js +1039 -0
  96. package/lib/module/features/sessionHistory/SessionHistoryTab.js.map +1 -0
  97. package/lib/module/features/sessionHistory/index.js +99 -0
  98. package/lib/module/features/sessionHistory/index.js.map +1 -0
  99. package/lib/module/features/track/index.js +4 -3
  100. package/lib/module/features/track/index.js.map +1 -1
  101. package/lib/module/index.js +4 -0
  102. package/lib/module/index.js.map +1 -1
  103. package/lib/module/ui/DebugView.js +3 -0
  104. package/lib/module/ui/DebugView.js.map +1 -1
  105. package/lib/module/ui/panel/DebugPanel.js +67 -34
  106. package/lib/module/ui/panel/DebugPanel.js.map +1 -1
  107. package/lib/module/ui/panel/FeatureIntroCard.js +126 -0
  108. package/lib/module/ui/panel/FeatureIntroCard.js.map +1 -0
  109. package/lib/module/ui/panel/FeatureRail.js +158 -0
  110. package/lib/module/ui/panel/FeatureRail.js.map +1 -0
  111. package/lib/module/ui/panel/FloatPanelView.js +170 -33
  112. package/lib/module/ui/panel/FloatPanelView.js.map +1 -1
  113. package/lib/module/ui/panel/buildFeatureSummary.js +203 -0
  114. package/lib/module/ui/panel/buildFeatureSummary.js.map +1 -0
  115. package/lib/module/ui/panel/filterFeatureSnapshot.js +39 -0
  116. package/lib/module/ui/panel/filterFeatureSnapshot.js.map +1 -0
  117. package/lib/module/ui/panel/tabPersistence.js +13 -0
  118. package/lib/module/ui/panel/tabPersistence.js.map +1 -0
  119. package/lib/module/ui/theme/colors.js +6 -0
  120. package/lib/module/ui/theme/colors.js.map +1 -1
  121. package/lib/module/utils/DaemonClient.js +30 -8
  122. package/lib/module/utils/DaemonClient.js.map +1 -1
  123. package/lib/module/utils/SessionManager.js +127 -0
  124. package/lib/module/utils/SessionManager.js.map +1 -0
  125. package/lib/module/utils/StorageAdapter.js +96 -0
  126. package/lib/module/utils/StorageAdapter.js.map +1 -0
  127. package/lib/module/utils/createChannelFeature.js +22 -5
  128. package/lib/module/utils/createChannelFeature.js.map +1 -1
  129. package/lib/module/utils/createDebugTab.js +17 -0
  130. package/lib/module/utils/createDebugTab.js.map +1 -0
  131. package/lib/module/utils/createPersistedObservableStore.js +14 -8
  132. package/lib/module/utils/createPersistedObservableStore.js.map +1 -1
  133. package/lib/module/utils/debugPreferences.js +27 -6
  134. package/lib/module/utils/debugPreferences.js.map +1 -1
  135. package/lib/module/utils/deviceReport.js +4 -1
  136. package/lib/module/utils/deviceReport.js.map +1 -1
  137. package/lib/module/utils/logRuntime.js +26 -0
  138. package/lib/module/utils/logRuntime.js.map +1 -0
  139. package/lib/typescript/src/constants/logLevels.d.ts +3 -0
  140. package/lib/typescript/src/constants/logLevels.d.ts.map +1 -0
  141. package/lib/typescript/src/core/initialize.d.ts +6 -0
  142. package/lib/typescript/src/core/initialize.d.ts.map +1 -1
  143. package/lib/typescript/src/features/console/ConsoleLogTab.d.ts.map +1 -1
  144. package/lib/typescript/src/features/console/index.d.ts +2 -1
  145. package/lib/typescript/src/features/console/index.d.ts.map +1 -1
  146. package/lib/typescript/src/features/devConnect/DevConnectTab.d.ts.map +1 -1
  147. package/lib/typescript/src/features/devConnect/devConnectPreferences.d.ts +0 -2
  148. package/lib/typescript/src/features/devConnect/devConnectPreferences.d.ts.map +1 -1
  149. package/lib/typescript/src/features/devConnect/devConnectUtils.d.ts +0 -20
  150. package/lib/typescript/src/features/devConnect/devConnectUtils.d.ts.map +1 -1
  151. package/lib/typescript/src/features/devConnect/index.d.ts +2 -2
  152. package/lib/typescript/src/features/devConnect/index.d.ts.map +1 -1
  153. package/lib/typescript/src/features/devConnect/nativeDevConnect.d.ts +0 -25
  154. package/lib/typescript/src/features/devConnect/nativeDevConnect.d.ts.map +1 -1
  155. package/lib/typescript/src/features/devConnect/types.d.ts +1 -3
  156. package/lib/typescript/src/features/devConnect/types.d.ts.map +1 -1
  157. package/lib/typescript/src/features/network/NetworkLogTab.d.ts.map +1 -1
  158. package/lib/typescript/src/features/network/index.d.ts +2 -1
  159. package/lib/typescript/src/features/network/index.d.ts.map +1 -1
  160. package/lib/typescript/src/features/sessionHistory/SessionHistoryTab.d.ts +20 -0
  161. package/lib/typescript/src/features/sessionHistory/SessionHistoryTab.d.ts.map +1 -0
  162. package/lib/typescript/src/features/sessionHistory/index.d.ts +4 -0
  163. package/lib/typescript/src/features/sessionHistory/index.d.ts.map +1 -0
  164. package/lib/typescript/src/features/track/index.d.ts +2 -1
  165. package/lib/typescript/src/features/track/index.d.ts.map +1 -1
  166. package/lib/typescript/src/index.d.ts +6 -0
  167. package/lib/typescript/src/index.d.ts.map +1 -1
  168. package/lib/typescript/src/types/feature.d.ts +1 -1
  169. package/lib/typescript/src/types/feature.d.ts.map +1 -1
  170. package/lib/typescript/src/types/index.d.ts +2 -0
  171. package/lib/typescript/src/types/index.d.ts.map +1 -1
  172. package/lib/typescript/src/ui/DebugView.d.ts +4 -2
  173. package/lib/typescript/src/ui/DebugView.d.ts.map +1 -1
  174. package/lib/typescript/src/ui/panel/DebugPanel.d.ts +3 -1
  175. package/lib/typescript/src/ui/panel/DebugPanel.d.ts.map +1 -1
  176. package/lib/typescript/src/ui/panel/FeatureIntroCard.d.ts +11 -0
  177. package/lib/typescript/src/ui/panel/FeatureIntroCard.d.ts.map +1 -0
  178. package/lib/typescript/src/ui/panel/FeatureRail.d.ts +16 -0
  179. package/lib/typescript/src/ui/panel/FeatureRail.d.ts.map +1 -0
  180. package/lib/typescript/src/ui/panel/FloatPanelView.d.ts.map +1 -1
  181. package/lib/typescript/src/ui/panel/buildFeatureSummary.d.ts +13 -0
  182. package/lib/typescript/src/ui/panel/buildFeatureSummary.d.ts.map +1 -0
  183. package/lib/typescript/src/ui/panel/filterFeatureSnapshot.d.ts +3 -0
  184. package/lib/typescript/src/ui/panel/filterFeatureSnapshot.d.ts.map +1 -0
  185. package/lib/typescript/src/ui/panel/tabPersistence.d.ts +3 -0
  186. package/lib/typescript/src/ui/panel/tabPersistence.d.ts.map +1 -0
  187. package/lib/typescript/src/ui/theme/colors.d.ts +5 -0
  188. package/lib/typescript/src/ui/theme/colors.d.ts.map +1 -1
  189. package/lib/typescript/src/utils/DaemonClient.d.ts +7 -1
  190. package/lib/typescript/src/utils/DaemonClient.d.ts.map +1 -1
  191. package/lib/typescript/src/utils/SessionManager.d.ts +30 -0
  192. package/lib/typescript/src/utils/SessionManager.d.ts.map +1 -0
  193. package/lib/typescript/src/utils/StorageAdapter.d.ts +38 -0
  194. package/lib/typescript/src/utils/StorageAdapter.d.ts.map +1 -0
  195. package/lib/typescript/src/utils/createChannelFeature.d.ts +2 -0
  196. package/lib/typescript/src/utils/createChannelFeature.d.ts.map +1 -1
  197. package/lib/typescript/src/utils/createDebugTab.d.ts +18 -0
  198. package/lib/typescript/src/utils/createDebugTab.d.ts.map +1 -0
  199. package/lib/typescript/src/utils/createPersistedObservableStore.d.ts +4 -1
  200. package/lib/typescript/src/utils/createPersistedObservableStore.d.ts.map +1 -1
  201. package/lib/typescript/src/utils/debugPreferences.d.ts +1 -4
  202. package/lib/typescript/src/utils/debugPreferences.d.ts.map +1 -1
  203. package/lib/typescript/src/utils/deviceReport.d.ts +1 -0
  204. package/lib/typescript/src/utils/deviceReport.d.ts.map +1 -1
  205. package/lib/typescript/src/utils/logRuntime.d.ts +13 -0
  206. package/lib/typescript/src/utils/logRuntime.d.ts.map +1 -0
  207. package/package.json +10 -6
  208. package/src/constants/logLevels.ts +13 -0
  209. package/src/core/initialize.ts +61 -21
  210. package/src/features/console/ConsoleLogTab.tsx +1 -14
  211. package/src/features/console/index.ts +18 -8
  212. package/src/features/devConnect/DevConnectTab.tsx +17 -381
  213. package/src/features/devConnect/devConnectPreferences.ts +0 -15
  214. package/src/features/devConnect/devConnectUtils.ts +1 -81
  215. package/src/features/devConnect/index.ts +2 -9
  216. package/src/features/devConnect/nativeDevConnect.ts +1 -136
  217. package/src/features/devConnect/types.ts +1 -3
  218. package/src/features/network/NetworkLogTab.tsx +61 -71
  219. package/src/features/network/index.ts +12 -3
  220. package/src/features/sessionHistory/SessionHistoryTab.tsx +691 -0
  221. package/src/features/sessionHistory/index.ts +102 -0
  222. package/src/features/track/index.ts +10 -3
  223. package/src/index.ts +13 -0
  224. package/src/types/feature.ts +2 -1
  225. package/src/types/index.ts +10 -0
  226. package/src/ui/DebugView.tsx +6 -1
  227. package/src/ui/panel/DebugPanel.tsx +60 -30
  228. package/src/ui/panel/FeatureIntroCard.tsx +127 -0
  229. package/src/ui/panel/FeatureRail.tsx +165 -0
  230. package/src/ui/panel/FloatPanelView.tsx +176 -25
  231. package/src/ui/panel/buildFeatureSummary.ts +288 -0
  232. package/src/ui/panel/filterFeatureSnapshot.ts +51 -0
  233. package/src/ui/panel/tabPersistence.ts +22 -0
  234. package/src/ui/theme/colors.ts +7 -0
  235. package/src/utils/DaemonClient.ts +33 -5
  236. package/src/utils/SessionManager.ts +174 -0
  237. package/src/utils/StorageAdapter.ts +135 -0
  238. package/src/utils/createChannelFeature.ts +28 -6
  239. package/src/utils/createDebugTab.ts +32 -0
  240. package/src/utils/createPersistedObservableStore.ts +18 -10
  241. package/src/utils/debugPreferences.ts +38 -8
  242. package/src/utils/deviceReport.ts +5 -1
  243. package/src/utils/logRuntime.ts +39 -0
  244. package/app.plugin.js +0 -51
  245. package/dev-client.js +0 -3
  246. package/lib/commonjs/ui/panel/FeatureTabBar.js +0 -182
  247. package/lib/commonjs/ui/panel/FeatureTabBar.js.map +0 -1
  248. package/lib/module/ui/panel/FeatureTabBar.js +0 -177
  249. package/lib/module/ui/panel/FeatureTabBar.js.map +0 -1
  250. package/lib/typescript/src/ui/panel/FeatureTabBar.d.ts +0 -13
  251. package/lib/typescript/src/ui/panel/FeatureTabBar.d.ts.map +0 -1
  252. package/scripts/bundle/android.js +0 -101
  253. package/scripts/bundle/cli.js +0 -57
  254. package/scripts/bundle/doctor.js +0 -38
  255. package/scripts/bundle/ios.js +0 -179
  256. package/scripts/bundle/setup.js +0 -39
  257. package/scripts/debug-bundle.gradle +0 -147
  258. package/src/ui/panel/FeatureTabBar.tsx +0 -204
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","Text","Pressable","StyleSheet","Colors","jsx","_jsx","jsxs","_jsxs","hexWithAlpha","hex","alpha","test","signalDefaultBg","FeatureIntroCard","title","summary","filterBad","onFilterBad","statusLabel","statusColor","supportsBadFilter","style","styles","card","children","titleRow","numberOfLines","statusChip","backgroundColor","statusText","color","actionRow","chip","chipActive","onPress","chipText","chipTextActive","chipBadActive","chipTextBad","create","paddingHorizontal","paddingVertical","borderBottomWidth","hairlineWidth","borderBottomColor","border","background","flexDirection","alignItems","gap","fontSize","fontWeight","text","flex","borderRadius","textSecondary","marginTop","height","justifyContent","borderWidth","borderColor","surface","error"],"sourceRoot":"../../../../src","sources":["ui/panel/FeatureIntroCard.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { View, Text, StyleSheet, ScrollView, Pressable } from 'react-native';
5
+ import { Colors } from '../theme/colors';
6
+
7
+ // ─── Label Model ──────────────────────────────────────
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ const SHORT_LABEL_MAP = {
10
+ network: 'network',
11
+ console: 'console',
12
+ native: 'native',
13
+ navigation: 'nav',
14
+ zustand: 'zustand',
15
+ track: 'track',
16
+ clipboard: 'clip',
17
+ environment: 'env',
18
+ devConnect: 'dev',
19
+ sessionHistory: 'session',
20
+ thirdPartyLibs: 'libs'
21
+ };
22
+ export function shortLabelForFeature(label, id) {
23
+ const mapped = SHORT_LABEL_MAP[id];
24
+ if (mapped) return mapped;
25
+ const trimmed = label.trim();
26
+ return trimmed.toLowerCase().slice(0, 7);
27
+ }
28
+
29
+ // ─── Rail Component ───────────────────────────────────
30
+
31
+ export function FeatureRail({
32
+ items,
33
+ activeIndex,
34
+ onSelectTab
35
+ }) {
36
+ return /*#__PURE__*/_jsx(View, {
37
+ style: styles.rail,
38
+ children: /*#__PURE__*/_jsx(ScrollView, {
39
+ showsVerticalScrollIndicator: false,
40
+ contentContainerStyle: styles.scrollContent,
41
+ children: items.map((item, index) => {
42
+ const isActive = index === activeIndex;
43
+ const short = shortLabelForFeature(item.label, item.id);
44
+ const dotColor = item.dotColor ?? null;
45
+ const hasCount = item.count != null && item.count > 0;
46
+ return /*#__PURE__*/_jsxs(Pressable, {
47
+ onPress: () => onSelectTab(index),
48
+ style: [styles.item, isActive && styles.activeItem],
49
+ accessibilityRole: "tab",
50
+ accessibilityLabel: item.label,
51
+ accessibilityState: {
52
+ selected: isActive
53
+ },
54
+ children: [isActive && /*#__PURE__*/_jsx(View, {
55
+ style: styles.activeBar
56
+ }), /*#__PURE__*/_jsx(Text, {
57
+ style: [styles.itemName, isActive && styles.activeItemName],
58
+ numberOfLines: 1,
59
+ children: short
60
+ }), /*#__PURE__*/_jsxs(View, {
61
+ style: styles.itemMeta,
62
+ children: [dotColor && /*#__PURE__*/_jsx(View, {
63
+ style: [styles.dot, {
64
+ backgroundColor: dotColor
65
+ }]
66
+ }), hasCount && /*#__PURE__*/_jsx(View, {
67
+ style: styles.countPill,
68
+ children: /*#__PURE__*/_jsx(Text, {
69
+ style: styles.countText,
70
+ children: item.count
71
+ })
72
+ })]
73
+ })]
74
+ }, item.id);
75
+ })
76
+ })
77
+ });
78
+ }
79
+ const RAIL_WIDTH = 80;
80
+ const styles = StyleSheet.create({
81
+ rail: {
82
+ width: RAIL_WIDTH,
83
+ backgroundColor: Colors.railBackground,
84
+ borderRightWidth: StyleSheet.hairlineWidth,
85
+ borderRightColor: Colors.panelDivider
86
+ },
87
+ scrollContent: {
88
+ paddingVertical: 6,
89
+ paddingHorizontal: 6,
90
+ gap: 3
91
+ },
92
+ item: {
93
+ minHeight: 56,
94
+ borderRadius: 8,
95
+ justifyContent: 'center',
96
+ alignItems: 'center',
97
+ paddingVertical: 8,
98
+ paddingHorizontal: 4,
99
+ position: 'relative',
100
+ overflow: 'hidden'
101
+ },
102
+ activeItem: {
103
+ backgroundColor: Colors.surface,
104
+ elevation: 2,
105
+ shadowColor: '#000',
106
+ shadowOffset: {
107
+ width: 0,
108
+ height: 2
109
+ },
110
+ shadowOpacity: 0.06,
111
+ shadowRadius: 4
112
+ },
113
+ activeBar: {
114
+ position: 'absolute',
115
+ left: 0,
116
+ top: 10,
117
+ bottom: 10,
118
+ width: 3,
119
+ borderRadius: 1.5,
120
+ backgroundColor: Colors.primary
121
+ },
122
+ itemName: {
123
+ fontSize: 9,
124
+ fontWeight: '700',
125
+ color: Colors.textSecondary,
126
+ letterSpacing: 0
127
+ },
128
+ activeItemName: {
129
+ color: Colors.text,
130
+ fontWeight: '800'
131
+ },
132
+ itemMeta: {
133
+ marginTop: 4,
134
+ flexDirection: 'row',
135
+ alignItems: 'center',
136
+ gap: 3
137
+ },
138
+ dot: {
139
+ width: 6,
140
+ height: 6,
141
+ borderRadius: 3
142
+ },
143
+ countPill: {
144
+ minWidth: 18,
145
+ height: 14,
146
+ borderRadius: 7,
147
+ backgroundColor: Colors.background,
148
+ paddingHorizontal: 4,
149
+ alignItems: 'center',
150
+ justifyContent: 'center'
151
+ },
152
+ countText: {
153
+ fontSize: 8,
154
+ fontWeight: '800',
155
+ color: Colors.textSecondary
156
+ }
157
+ });
158
+ //# sourceMappingURL=FeatureRail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","Text","StyleSheet","ScrollView","Pressable","Colors","jsx","_jsx","jsxs","_jsxs","SHORT_LABEL_MAP","network","console","native","navigation","zustand","track","clipboard","environment","devConnect","sessionHistory","thirdPartyLibs","shortLabelForFeature","label","id","mapped","trimmed","trim","toLowerCase","slice","FeatureRail","items","activeIndex","onSelectTab","style","styles","rail","children","showsVerticalScrollIndicator","contentContainerStyle","scrollContent","map","item","index","isActive","short","dotColor","hasCount","count","onPress","activeItem","accessibilityRole","accessibilityLabel","accessibilityState","selected","activeBar","itemName","activeItemName","numberOfLines","itemMeta","dot","backgroundColor","countPill","countText","RAIL_WIDTH","create","width","railBackground","borderRightWidth","hairlineWidth","borderRightColor","panelDivider","paddingVertical","paddingHorizontal","gap","minHeight","borderRadius","justifyContent","alignItems","position","overflow","surface","elevation","shadowColor","shadowOffset","height","shadowOpacity","shadowRadius","left","top","bottom","primary","fontSize","fontWeight","color","textSecondary","letterSpacing","text","marginTop","flexDirection","minWidth","background"],"sourceRoot":"../../../../src","sources":["ui/panel/FeatureRail.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,11 +1,16 @@
1
1
  "use strict";
2
2
 
3
3
  import React, { Component, useCallback, useEffect, useRef, useState } from 'react';
4
- import { View, Text, StyleSheet, Animated } from 'react-native';
4
+ import { View, Text, TextInput, StyleSheet, Animated } from 'react-native';
5
+ import { Colors } from '../theme/colors';
5
6
  import { getPreference, setPreference, KEYS } from '../../utils/debugPreferences';
6
7
  import { FloatIcon } from '../floating/FloatIcon';
7
8
  import { DebugPanel } from './DebugPanel';
8
- import { FeatureTabBar } from './FeatureTabBar';
9
+ import { FeatureRail } from './FeatureRail';
10
+ import { FeatureIntroCard } from './FeatureIntroCard';
11
+ import { buildFeatureSummary } from './buildFeatureSummary';
12
+ import { filterFeatureSnapshot } from './filterFeatureSnapshot';
13
+ import { resolveStoredTabIndex } from './tabPersistence';
9
14
  import { useTabAnimation } from './useTabAnimation';
10
15
 
11
16
  // ─── Error Boundary ────────────────────────────────────
@@ -28,6 +33,50 @@ class DebugErrorBoundary extends Component {
28
33
  return this.props.children;
29
34
  }
30
35
  }
36
+
37
+ // ─── Snapshot helpers ──────────────────────────────────
38
+
39
+ function snapshotCount(feature) {
40
+ try {
41
+ const snap = feature.getSnapshot();
42
+ if (Array.isArray(snap)) return snap.length;
43
+ if (snap && typeof snap === 'object') {
44
+ const obj = snap;
45
+ if (Array.isArray(obj.items)) return obj.items.length;
46
+ if (Array.isArray(obj.logs)) return obj.logs.length;
47
+ if (Array.isArray(obj.entries)) return obj.entries.length;
48
+ if (Array.isArray(obj.environments)) return obj.environments.length;
49
+ }
50
+ } catch {/* ignore */}
51
+ return undefined;
52
+ }
53
+ function buildPanelConnectionStatus(features) {
54
+ const devConnect = features.find(f => f.name === 'devConnect');
55
+ if (!devConnect) {
56
+ return {
57
+ label: 'offline desktop sync unavailable',
58
+ color: Colors.textLight
59
+ };
60
+ }
61
+ try {
62
+ const snap = devConnect.getSnapshot() ?? {};
63
+ const host = snap.isSimulator ? 'localhost' : snap.computerHost?.trim();
64
+ const port = snap.daemonPort?.trim();
65
+ const target = host && port ? `${host}:${port}` : host || (port ? `port ${port}` : 'not configured');
66
+ return {
67
+ label: `${snap.streaming ? 'live' : 'offline'} ${target}`,
68
+ color: snap.streaming ? Colors.success : Colors.textLight
69
+ };
70
+ } catch {
71
+ return {
72
+ label: 'offline desktop sync unavailable',
73
+ color: Colors.textLight
74
+ };
75
+ }
76
+ }
77
+
78
+ // ─── Main Component ────────────────────────────────────
79
+
31
80
  export function FloatPanelView({
32
81
  features,
33
82
  panelOpen,
@@ -36,23 +85,28 @@ export function FloatPanelView({
36
85
  onClearAll
37
86
  }) {
38
87
  const [activeTab, setActiveTab] = useState(0);
88
+ const [searchQuery, setSearchQuery] = useState('');
89
+ const [filterBad, setFilterBad] = useState(false);
39
90
  const tabLoaded = useRef(false);
40
91
 
41
92
  // Restore last tab on mount
42
93
  useEffect(() => {
94
+ if (tabLoaded.current || features.length === 0) return;
43
95
  let mounted = true;
44
96
  getPreference(KEYS.lastTab).then(val => {
45
- if (!mounted || !val) return;
46
- const idx = parseInt(val, 10);
47
- if (!isNaN(idx) && idx >= 0) {
48
- setActiveTab(idx);
49
- tabLoaded.current = true;
97
+ if (!mounted || tabLoaded.current) return;
98
+ const idx = resolveStoredTabIndex(features, val);
99
+ setActiveTab(idx);
100
+ const featureName = features[idx]?.name;
101
+ if (featureName && featureName !== val) {
102
+ setPreference(KEYS.lastTab, featureName);
50
103
  }
104
+ tabLoaded.current = true;
51
105
  });
52
106
  return () => {
53
107
  mounted = false;
54
108
  };
55
- }, []);
109
+ }, [features]);
56
110
  const {
57
111
  contentOpacity,
58
112
  contentTranslateX,
@@ -62,9 +116,15 @@ export function FloatPanelView({
62
116
  activeTab,
63
117
  tabCount: features.length,
64
118
  onTabChange: useCallback(index => {
119
+ tabLoaded.current = true;
120
+ setSearchQuery('');
121
+ setFilterBad(false);
65
122
  setActiveTab(index);
66
- setPreference(KEYS.lastTab, String(index));
67
- }, [])
123
+ const featureName = features[index]?.name;
124
+ if (featureName) {
125
+ setPreference(KEYS.lastTab, featureName);
126
+ }
127
+ }, [features])
68
128
  });
69
129
 
70
130
  // Feature subscription → re-render on data changes
@@ -86,17 +146,42 @@ export function FloatPanelView({
86
146
  // Clamp activeTab if features shrink
87
147
  useEffect(() => {
88
148
  if (features.length > 0 && activeTab >= features.length) {
149
+ tabLoaded.current = true;
89
150
  setActiveTab(0);
90
- setPreference(KEYS.lastTab, '0');
151
+ const featureName = features[0]?.name;
152
+ if (featureName) {
153
+ setPreference(KEYS.lastTab, featureName);
154
+ }
91
155
  }
92
- }, [features.length, activeTab]);
156
+ }, [features, activeTab]);
93
157
 
94
158
  // Badge (first feature that returns one)
95
159
  const envBadge = features.map(f => f.badge?.()).find(b => b != null) ?? null;
96
- const tabs = features.map(f => ({
97
- label: f.label,
98
- id: f.name
99
- }));
160
+
161
+ // Rail items with counts
162
+ const railItems = features.map(f => {
163
+ const b = f.badge?.();
164
+ return {
165
+ id: f.name,
166
+ label: f.label,
167
+ dotColor: b?.color ?? null,
168
+ count: snapshotCount(f)
169
+ };
170
+ });
171
+ const panelConnectionStatus = buildPanelConnectionStatus(features);
172
+ const handleClearAll = useCallback(() => {
173
+ setSearchQuery('');
174
+ setFilterBad(false);
175
+ onClearAll();
176
+ }, [onClearAll]);
177
+
178
+ // Active feature + summary
179
+ const activeFeature = features[activeTab];
180
+ const activeSnapshot = activeFeature?.getSnapshot();
181
+ const activeSummary = activeFeature ? buildFeatureSummary(activeFeature, activeSnapshot) : null;
182
+
183
+ // Filtered snapshot — reuse activeSnapshot to avoid double getSnapshot()
184
+ const filteredSnapshot = activeFeature ? filterFeatureSnapshot(activeFeature, activeSnapshot, searchQuery, filterBad ? 'bad' : 'all') : null;
100
185
 
101
186
  // Render active feature content
102
187
  const renderFeatureContent = () => {
@@ -111,7 +196,7 @@ export function FloatPanelView({
111
196
  style: styles.emptyText,
112
197
  children: "Feature not found"
113
198
  });
114
- const snapshot = feature.getSnapshot();
199
+ const snapshot = filteredSnapshot;
115
200
  const TabComponent = feature.renderContent;
116
201
  if (TabComponent) return /*#__PURE__*/_jsx(TabComponent, {
117
202
  snapshot: snapshot,
@@ -125,6 +210,7 @@ export function FloatPanelView({
125
210
  })
126
211
  });
127
212
  };
213
+ const showSearch = activeSummary ? activeSummary.count != null && activeSummary.count > 0 : false;
128
214
  return /*#__PURE__*/_jsx(DebugErrorBoundary, {
129
215
  onError: onClosePanel,
130
216
  children: /*#__PURE__*/_jsxs(View, {
@@ -134,23 +220,46 @@ export function FloatPanelView({
134
220
  visible: !panelOpen,
135
221
  onPress: onOpenPanel,
136
222
  badge: envBadge
137
- }), panelOpen && /*#__PURE__*/_jsxs(DebugPanel, {
223
+ }), panelOpen && /*#__PURE__*/_jsx(DebugPanel, {
138
224
  onClose: onClosePanel,
139
- onClearAll: onClearAll,
140
- children: [/*#__PURE__*/_jsx(FeatureTabBar, {
141
- tabs: tabs,
142
- activeIndex: activeTab,
143
- onSelectTab: switchTab
144
- }), /*#__PURE__*/_jsx(Animated.View, {
145
- style: [styles.contentContainer, {
146
- opacity: contentOpacity,
147
- transform: [{
148
- translateX: contentTranslateX
149
- }]
150
- }],
151
- ...panHandlers,
152
- children: renderFeatureContent()
153
- })]
225
+ onClearAll: handleClearAll,
226
+ syncLabel: panelConnectionStatus.label,
227
+ syncColor: panelConnectionStatus.color,
228
+ children: /*#__PURE__*/_jsxs(View, {
229
+ style: styles.bodyRow,
230
+ children: [/*#__PURE__*/_jsx(FeatureRail, {
231
+ items: railItems,
232
+ activeIndex: activeTab,
233
+ onSelectTab: switchTab
234
+ }), /*#__PURE__*/_jsxs(View, {
235
+ style: styles.contentColumn,
236
+ children: [activeFeature && activeSummary && /*#__PURE__*/_jsx(FeatureIntroCard, {
237
+ title: activeFeature.label,
238
+ summary: activeSummary,
239
+ filterBad: filterBad,
240
+ onFilterBad: setFilterBad
241
+ }), showSearch && /*#__PURE__*/_jsx(View, {
242
+ style: styles.toolbar,
243
+ children: /*#__PURE__*/_jsx(TextInput, {
244
+ style: styles.searchInput,
245
+ placeholder: "Search...",
246
+ placeholderTextColor: Colors.textLight,
247
+ value: searchQuery,
248
+ onChangeText: setSearchQuery,
249
+ returnKeyType: "search"
250
+ })
251
+ }), /*#__PURE__*/_jsx(Animated.View, {
252
+ style: [styles.contentContainer, {
253
+ opacity: contentOpacity,
254
+ transform: [{
255
+ translateX: contentTranslateX
256
+ }]
257
+ }],
258
+ ...panHandlers,
259
+ children: renderFeatureContent()
260
+ })]
261
+ })]
262
+ })
154
263
  })]
155
264
  })
156
265
  });
@@ -164,6 +273,34 @@ const styles = StyleSheet.create({
164
273
  bottom: 0,
165
274
  zIndex: 999
166
275
  },
276
+ bodyRow: {
277
+ flex: 1,
278
+ flexDirection: 'row'
279
+ },
280
+ contentColumn: {
281
+ flex: 1
282
+ },
283
+ toolbar: {
284
+ flexDirection: 'row',
285
+ alignItems: 'center',
286
+ gap: 8,
287
+ paddingHorizontal: 10,
288
+ paddingVertical: 8,
289
+ borderBottomWidth: StyleSheet.hairlineWidth,
290
+ borderBottomColor: Colors.border,
291
+ backgroundColor: Colors.background
292
+ },
293
+ searchInput: {
294
+ flex: 1,
295
+ height: 34,
296
+ borderWidth: 1,
297
+ borderColor: Colors.border,
298
+ borderRadius: 8,
299
+ backgroundColor: Colors.surface,
300
+ paddingHorizontal: 10,
301
+ fontSize: 13,
302
+ color: Colors.text
303
+ },
167
304
  contentContainer: {
168
305
  flex: 1
169
306
  },
@@ -1 +1 @@
1
- {"version":3,"names":["React","Component","useCallback","useEffect","useRef","useState","View","Text","StyleSheet","Animated","getPreference","setPreference","KEYS","FloatIcon","DebugPanel","FeatureTabBar","useTabAnimation","jsx","_jsx","jsxs","_jsxs","DebugErrorBoundary","state","hasError","getDerivedStateFromError","componentDidCatch","error","info","console","componentStack","props","onError","render","children","FloatPanelView","features","panelOpen","onOpenPanel","onClosePanel","onClearAll","activeTab","setActiveTab","tabLoaded","mounted","lastTab","then","val","idx","parseInt","isNaN","current","contentOpacity","contentTranslateX","panHandlers","switchTab","tabCount","length","onTabChange","index","String","setTick","refreshQueued","scheduleRefresh","requestAnimationFrame","t","unsubs","map","f","subscribe","filter","u","forEach","envBadge","badge","find","b","tabs","label","id","name","renderFeatureContent","style","styles","emptyText","feature","snapshot","getSnapshot","TabComponent","renderContent","genericContent","jsonContent","JSON","stringify","container","pointerEvents","visible","onPress","onClose","activeIndex","onSelectTab","contentContainer","opacity","transform","translateX","create","position","top","left","right","bottom","zIndex","flex","padding","textAlign","color","fontSize","fontFamily"],"sourceRoot":"../../../../src","sources":["ui/panel/FloatPanelView.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Component","useCallback","useEffect","useRef","useState","View","Text","TextInput","StyleSheet","Animated","Colors","getPreference","setPreference","KEYS","FloatIcon","DebugPanel","FeatureRail","FeatureIntroCard","buildFeatureSummary","filterFeatureSnapshot","resolveStoredTabIndex","useTabAnimation","jsx","_jsx","jsxs","_jsxs","DebugErrorBoundary","state","hasError","getDerivedStateFromError","componentDidCatch","error","info","console","componentStack","props","onError","render","children","snapshotCount","feature","snap","getSnapshot","Array","isArray","length","obj","items","logs","entries","environments","undefined","buildPanelConnectionStatus","features","devConnect","find","f","name","label","color","textLight","host","isSimulator","computerHost","trim","port","daemonPort","target","streaming","success","FloatPanelView","panelOpen","onOpenPanel","onClosePanel","onClearAll","activeTab","setActiveTab","searchQuery","setSearchQuery","filterBad","setFilterBad","tabLoaded","current","mounted","lastTab","then","val","idx","featureName","contentOpacity","contentTranslateX","panHandlers","switchTab","tabCount","onTabChange","index","setTick","refreshQueued","scheduleRefresh","requestAnimationFrame","t","unsubs","map","subscribe","filter","u","forEach","envBadge","badge","b","railItems","id","dotColor","count","panelConnectionStatus","handleClearAll","activeFeature","activeSnapshot","activeSummary","filteredSnapshot","renderFeatureContent","style","styles","emptyText","snapshot","TabComponent","renderContent","genericContent","jsonContent","JSON","stringify","showSearch","container","pointerEvents","visible","onPress","onClose","syncLabel","syncColor","bodyRow","activeIndex","onSelectTab","contentColumn","title","summary","onFilterBad","toolbar","searchInput","placeholder","placeholderTextColor","value","onChangeText","returnKeyType","contentContainer","opacity","transform","translateX","create","position","top","left","right","bottom","zIndex","flex","flexDirection","alignItems","gap","paddingHorizontal","paddingVertical","borderBottomWidth","hairlineWidth","borderBottomColor","border","backgroundColor","background","height","borderWidth","borderColor","borderRadius","surface","fontSize","text","padding","textAlign","fontFamily"],"sourceRoot":"../../../../src","sources":["ui/panel/FloatPanelView.tsx"],"mappings":"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","ignoreList":[]}