react-native-debug-toolkit 2.0.0 → 2.1.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 (228) hide show
  1. package/README.md +72 -72
  2. package/README.zh-CN.md +209 -0
  3. package/lib/commonjs/components/ClipboardTab.js +15 -16
  4. package/lib/commonjs/components/ClipboardTab.js.map +1 -1
  5. package/lib/commonjs/components/ConsoleLogTab.js +69 -202
  6. package/lib/commonjs/components/ConsoleLogTab.js.map +1 -1
  7. package/lib/commonjs/components/DebugPanel.js +230 -0
  8. package/lib/commonjs/components/DebugPanel.js.map +1 -0
  9. package/lib/commonjs/components/DebugView.js +66 -0
  10. package/lib/commonjs/components/DebugView.js.map +1 -0
  11. package/lib/commonjs/components/EnvironmentTab.js +22 -23
  12. package/lib/commonjs/components/EnvironmentTab.js.map +1 -1
  13. package/lib/commonjs/components/FeatureTabBar.js +182 -0
  14. package/lib/commonjs/components/FeatureTabBar.js.map +1 -0
  15. package/lib/commonjs/components/FloatIcon.js +187 -0
  16. package/lib/commonjs/components/FloatIcon.js.map +1 -0
  17. package/lib/commonjs/components/FloatPanelView.js +140 -723
  18. package/lib/commonjs/components/FloatPanelView.js.map +1 -1
  19. package/lib/commonjs/components/NavigationLogTab.js +8 -8
  20. package/lib/commonjs/components/NavigationLogTab.js.map +1 -1
  21. package/lib/commonjs/components/NetworkLogTab.js +179 -350
  22. package/lib/commonjs/components/NetworkLogTab.js.map +1 -1
  23. package/lib/commonjs/components/ThirdPartyLibsTab.js +8 -8
  24. package/lib/commonjs/components/ThirdPartyLibsTab.js.map +1 -1
  25. package/lib/commonjs/components/TrackLogTab.js +106 -248
  26. package/lib/commonjs/components/TrackLogTab.js.map +1 -1
  27. package/lib/commonjs/components/ZustandLogTab.js +148 -288
  28. package/lib/commonjs/components/ZustandLogTab.js.map +1 -1
  29. package/lib/commonjs/components/shared/CollapsibleSection.js +4 -4
  30. package/lib/commonjs/components/shared/CollapsibleSection.js.map +1 -1
  31. package/lib/commonjs/components/shared/CopyButton.js +3 -3
  32. package/lib/commonjs/components/shared/CopyButton.js.map +1 -1
  33. package/lib/commonjs/components/shared/LogListScreen.js +174 -0
  34. package/lib/commonjs/components/shared/LogListScreen.js.map +1 -0
  35. package/lib/commonjs/core/DebugToolkit.js +92 -112
  36. package/lib/commonjs/core/DebugToolkit.js.map +1 -1
  37. package/lib/commonjs/core/DebugToolkitProvider.js +30 -28
  38. package/lib/commonjs/core/DebugToolkitProvider.js.map +1 -1
  39. package/lib/commonjs/features/ClipboardFeature.js +6 -2
  40. package/lib/commonjs/features/ClipboardFeature.js.map +1 -1
  41. package/lib/commonjs/features/ConsoleLogFeature.js +66 -49
  42. package/lib/commonjs/features/ConsoleLogFeature.js.map +1 -1
  43. package/lib/commonjs/features/EnvironmentFeature.js +5 -13
  44. package/lib/commonjs/features/EnvironmentFeature.js.map +1 -1
  45. package/lib/commonjs/features/NavigationLogFeature.js +17 -38
  46. package/lib/commonjs/features/NavigationLogFeature.js.map +1 -1
  47. package/lib/commonjs/features/NetworkFeature.js +35 -256
  48. package/lib/commonjs/features/NetworkFeature.js.map +1 -1
  49. package/lib/commonjs/features/TrackFeature.js +17 -38
  50. package/lib/commonjs/features/TrackFeature.js.map +1 -1
  51. package/lib/commonjs/features/ZustandLogFeature.js +21 -38
  52. package/lib/commonjs/features/ZustandLogFeature.js.map +1 -1
  53. package/lib/commonjs/hooks/useNavigationLogger.js.map +1 -1
  54. package/lib/commonjs/index.js +7 -20
  55. package/lib/commonjs/index.js.map +1 -1
  56. package/lib/commonjs/initialize.js +19 -96
  57. package/lib/commonjs/initialize.js.map +1 -1
  58. package/lib/commonjs/interceptors/networkInterceptor.js +466 -0
  59. package/lib/commonjs/interceptors/networkInterceptor.js.map +1 -0
  60. package/lib/commonjs/utils/colors.js +48 -0
  61. package/lib/commonjs/utils/colors.js.map +1 -0
  62. package/lib/commonjs/utils/createChannelFeature.js +48 -0
  63. package/lib/commonjs/utils/createChannelFeature.js.map +1 -0
  64. package/lib/commonjs/utils/layout.js +8 -0
  65. package/lib/commonjs/utils/layout.js.map +1 -0
  66. package/lib/commonjs/utils/urlRewriterRegistry.js +14 -0
  67. package/lib/commonjs/utils/urlRewriterRegistry.js.map +1 -0
  68. package/lib/module/components/ClipboardTab.js +8 -8
  69. package/lib/module/components/ClipboardTab.js.map +1 -1
  70. package/lib/module/components/ConsoleLogTab.js +66 -199
  71. package/lib/module/components/ConsoleLogTab.js.map +1 -1
  72. package/lib/module/components/DebugPanel.js +225 -0
  73. package/lib/module/components/DebugPanel.js.map +1 -0
  74. package/lib/module/components/DebugView.js +61 -0
  75. package/lib/module/components/DebugView.js.map +1 -0
  76. package/lib/module/components/EnvironmentTab.js +3 -3
  77. package/lib/module/components/EnvironmentTab.js.map +1 -1
  78. package/lib/module/components/FeatureTabBar.js +177 -0
  79. package/lib/module/components/FeatureTabBar.js.map +1 -0
  80. package/lib/module/components/FloatIcon.js +182 -0
  81. package/lib/module/components/FloatIcon.js.map +1 -0
  82. package/lib/module/components/FloatPanelView.js +141 -723
  83. package/lib/module/components/FloatPanelView.js.map +1 -1
  84. package/lib/module/components/NavigationLogTab.js +1 -1
  85. package/lib/module/components/NavigationLogTab.js.map +1 -1
  86. package/lib/module/components/NetworkLogTab.js +167 -338
  87. package/lib/module/components/NetworkLogTab.js.map +1 -1
  88. package/lib/module/components/ThirdPartyLibsTab.js +1 -1
  89. package/lib/module/components/ThirdPartyLibsTab.js.map +1 -1
  90. package/lib/module/components/TrackLogTab.js +94 -236
  91. package/lib/module/components/TrackLogTab.js.map +1 -1
  92. package/lib/module/components/ZustandLogTab.js +136 -276
  93. package/lib/module/components/ZustandLogTab.js.map +1 -1
  94. package/lib/module/components/shared/CollapsibleSection.js +1 -1
  95. package/lib/module/components/shared/CollapsibleSection.js.map +1 -1
  96. package/lib/module/components/shared/CopyButton.js +1 -1
  97. package/lib/module/components/shared/CopyButton.js.map +1 -1
  98. package/lib/module/components/shared/LogListScreen.js +169 -0
  99. package/lib/module/components/shared/LogListScreen.js.map +1 -0
  100. package/lib/module/core/DebugToolkit.js +92 -111
  101. package/lib/module/core/DebugToolkit.js.map +1 -1
  102. package/lib/module/core/DebugToolkitProvider.js +31 -29
  103. package/lib/module/core/DebugToolkitProvider.js.map +1 -1
  104. package/lib/module/features/ClipboardFeature.js +6 -2
  105. package/lib/module/features/ClipboardFeature.js.map +1 -1
  106. package/lib/module/features/ConsoleLogFeature.js +65 -49
  107. package/lib/module/features/ConsoleLogFeature.js.map +1 -1
  108. package/lib/module/features/EnvironmentFeature.js +5 -13
  109. package/lib/module/features/EnvironmentFeature.js.map +1 -1
  110. package/lib/module/features/NavigationLogFeature.js +16 -38
  111. package/lib/module/features/NavigationLogFeature.js.map +1 -1
  112. package/lib/module/features/NetworkFeature.js +34 -255
  113. package/lib/module/features/NetworkFeature.js.map +1 -1
  114. package/lib/module/features/TrackFeature.js +16 -38
  115. package/lib/module/features/TrackFeature.js.map +1 -1
  116. package/lib/module/features/ZustandLogFeature.js +22 -38
  117. package/lib/module/features/ZustandLogFeature.js.map +1 -1
  118. package/lib/module/hooks/useNavigationLogger.js.map +1 -1
  119. package/lib/module/index.js +2 -3
  120. package/lib/module/index.js.map +1 -1
  121. package/lib/module/initialize.js +19 -95
  122. package/lib/module/initialize.js.map +1 -1
  123. package/lib/module/interceptors/networkInterceptor.js +460 -0
  124. package/lib/module/interceptors/networkInterceptor.js.map +1 -0
  125. package/lib/module/utils/colors.js +43 -0
  126. package/lib/module/utils/colors.js.map +1 -0
  127. package/lib/module/utils/createChannelFeature.js +44 -0
  128. package/lib/module/utils/createChannelFeature.js.map +1 -0
  129. package/lib/module/utils/layout.js +4 -0
  130. package/lib/module/utils/layout.js.map +1 -0
  131. package/lib/module/utils/urlRewriterRegistry.js +10 -0
  132. package/lib/module/utils/urlRewriterRegistry.js.map +1 -0
  133. package/lib/typescript/src/components/ClipboardTab.d.ts.map +1 -1
  134. package/lib/typescript/src/components/ConsoleLogTab.d.ts.map +1 -1
  135. package/lib/typescript/src/components/DebugPanel.d.ts +9 -0
  136. package/lib/typescript/src/components/DebugPanel.d.ts.map +1 -0
  137. package/lib/typescript/src/components/DebugView.d.ts +19 -0
  138. package/lib/typescript/src/components/DebugView.d.ts.map +1 -0
  139. package/lib/typescript/src/components/EnvironmentTab.d.ts.map +1 -1
  140. package/lib/typescript/src/components/FeatureTabBar.d.ts +13 -0
  141. package/lib/typescript/src/components/FeatureTabBar.d.ts.map +1 -0
  142. package/lib/typescript/src/components/FloatIcon.d.ts +12 -0
  143. package/lib/typescript/src/components/FloatIcon.d.ts.map +1 -0
  144. package/lib/typescript/src/components/FloatPanelView.d.ts +4 -59
  145. package/lib/typescript/src/components/FloatPanelView.d.ts.map +1 -1
  146. package/lib/typescript/src/components/NetworkLogTab.d.ts.map +1 -1
  147. package/lib/typescript/src/components/ThirdPartyLibsTab.d.ts.map +1 -1
  148. package/lib/typescript/src/components/TrackLogTab.d.ts.map +1 -1
  149. package/lib/typescript/src/components/ZustandLogTab.d.ts.map +1 -1
  150. package/lib/typescript/src/components/shared/LogListScreen.d.ts +21 -0
  151. package/lib/typescript/src/components/shared/LogListScreen.d.ts.map +1 -0
  152. package/lib/typescript/src/core/DebugToolkit.d.ts +11 -18
  153. package/lib/typescript/src/core/DebugToolkit.d.ts.map +1 -1
  154. package/lib/typescript/src/core/DebugToolkitProvider.d.ts +2 -5
  155. package/lib/typescript/src/core/DebugToolkitProvider.d.ts.map +1 -1
  156. package/lib/typescript/src/features/ClipboardFeature.d.ts +4 -0
  157. package/lib/typescript/src/features/ClipboardFeature.d.ts.map +1 -1
  158. package/lib/typescript/src/features/ConsoleLogFeature.d.ts +2 -0
  159. package/lib/typescript/src/features/ConsoleLogFeature.d.ts.map +1 -1
  160. package/lib/typescript/src/features/EnvironmentFeature.d.ts.map +1 -1
  161. package/lib/typescript/src/features/NavigationLogFeature.d.ts +2 -0
  162. package/lib/typescript/src/features/NavigationLogFeature.d.ts.map +1 -1
  163. package/lib/typescript/src/features/NetworkFeature.d.ts +7 -20
  164. package/lib/typescript/src/features/NetworkFeature.d.ts.map +1 -1
  165. package/lib/typescript/src/features/TrackFeature.d.ts +2 -0
  166. package/lib/typescript/src/features/TrackFeature.d.ts.map +1 -1
  167. package/lib/typescript/src/features/ZustandLogFeature.d.ts +2 -0
  168. package/lib/typescript/src/features/ZustandLogFeature.d.ts.map +1 -1
  169. package/lib/typescript/src/hooks/useNavigationLogger.d.ts +1 -8
  170. package/lib/typescript/src/hooks/useNavigationLogger.d.ts.map +1 -1
  171. package/lib/typescript/src/index.d.ts +5 -5
  172. package/lib/typescript/src/index.d.ts.map +1 -1
  173. package/lib/typescript/src/initialize.d.ts +3 -22
  174. package/lib/typescript/src/initialize.d.ts.map +1 -1
  175. package/lib/typescript/src/interceptors/networkInterceptor.d.ts +18 -0
  176. package/lib/typescript/src/interceptors/networkInterceptor.d.ts.map +1 -0
  177. package/lib/typescript/src/types/index.d.ts +26 -29
  178. package/lib/typescript/src/types/index.d.ts.map +1 -1
  179. package/lib/typescript/src/utils/colors.d.ts +21 -0
  180. package/lib/typescript/src/utils/colors.d.ts.map +1 -0
  181. package/lib/typescript/src/utils/createChannelFeature.d.ts +18 -0
  182. package/lib/typescript/src/utils/createChannelFeature.d.ts.map +1 -0
  183. package/lib/typescript/src/utils/layout.d.ts +2 -0
  184. package/lib/typescript/src/utils/layout.d.ts.map +1 -0
  185. package/lib/typescript/src/utils/urlRewriterRegistry.d.ts +7 -0
  186. package/lib/typescript/src/utils/urlRewriterRegistry.d.ts.map +1 -0
  187. package/package.json +5 -1
  188. package/src/components/ClipboardTab.tsx +8 -8
  189. package/src/components/ConsoleLogTab.tsx +49 -163
  190. package/src/components/DebugPanel.tsx +215 -0
  191. package/src/components/DebugView.tsx +80 -0
  192. package/src/components/EnvironmentTab.tsx +3 -3
  193. package/src/components/FeatureTabBar.tsx +204 -0
  194. package/src/components/FloatIcon.tsx +171 -0
  195. package/src/components/FloatPanelView.tsx +135 -647
  196. package/src/components/NavigationLogTab.tsx +1 -1
  197. package/src/components/NetworkLogTab.tsx +128 -269
  198. package/src/components/ThirdPartyLibsTab.tsx +3 -3
  199. package/src/components/TrackLogTab.tsx +53 -188
  200. package/src/components/ZustandLogTab.tsx +79 -181
  201. package/src/components/shared/CollapsibleSection.tsx +1 -1
  202. package/src/components/shared/CopyButton.tsx +1 -1
  203. package/src/components/shared/LogListScreen.tsx +164 -0
  204. package/src/core/DebugToolkit.tsx +114 -138
  205. package/src/core/DebugToolkitProvider.tsx +32 -38
  206. package/src/features/ClipboardFeature.ts +6 -2
  207. package/src/features/ConsoleLogFeature.ts +66 -68
  208. package/src/features/EnvironmentFeature.ts +5 -13
  209. package/src/features/NavigationLogFeature.ts +12 -42
  210. package/src/features/NetworkFeature.ts +43 -405
  211. package/src/features/TrackFeature.ts +14 -49
  212. package/src/features/ZustandLogFeature.ts +16 -42
  213. package/src/hooks/useNavigationLogger.ts +1 -6
  214. package/src/index.ts +5 -9
  215. package/src/initialize.ts +28 -120
  216. package/src/interceptors/networkInterceptor.ts +646 -0
  217. package/src/types/index.ts +25 -36
  218. package/src/utils/colors.ts +38 -0
  219. package/src/utils/createChannelFeature.ts +55 -0
  220. package/src/utils/layout.ts +1 -0
  221. package/src/utils/urlRewriterRegistry.ts +10 -0
  222. package/lib/commonjs/utils/constants.js +0 -135
  223. package/lib/commonjs/utils/constants.js.map +0 -1
  224. package/lib/module/utils/constants.js +0 -130
  225. package/lib/module/utils/constants.js.map +0 -1
  226. package/lib/typescript/src/utils/constants.d.ts +0 -96
  227. package/lib/typescript/src/utils/constants.d.ts.map +0 -1
  228. package/src/utils/constants.ts +0 -91
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+
3
+ import React, { useMemo, useState } from 'react';
4
+ import { View, Text, FlatList, TouchableOpacity, StyleSheet, Animated } from 'react-native';
5
+ import { Colors } from '../../utils/colors';
6
+ import { useSlideDetailAnimation } from '../../hooks/useSlideDetailAnimation';
7
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
+ /**
9
+ * Shared list→detail screen with slide animation.
10
+ * Handles: selected state, FlatList, empty state, back button, push navigation.
11
+ * Each tab provides renderRow, renderDetailBody, and optional renderDetailHeader.
12
+ */
13
+ export function LogListScreen({
14
+ data,
15
+ renderRow,
16
+ renderListHeader,
17
+ renderDetailHeader,
18
+ renderDetailBody,
19
+ emptyText,
20
+ reversed = true
21
+ }) {
22
+ const [selected, setSelected] = useState(null);
23
+ const {
24
+ detailTranslateX,
25
+ listTranslateX,
26
+ listOpacity
27
+ } = useSlideDetailAnimation(selected);
28
+ const displayData = useMemo(() => reversed ? [...data].reverse() : data, [data, reversed]);
29
+ return /*#__PURE__*/_jsxs(View, {
30
+ style: styles.container,
31
+ children: [/*#__PURE__*/_jsxs(Animated.View, {
32
+ style: [styles.listWrap, selected ? {
33
+ opacity: listOpacity,
34
+ transform: [{
35
+ translateX: listTranslateX
36
+ }]
37
+ } : null],
38
+ children: [renderListHeader?.(), displayData.length === 0 ? /*#__PURE__*/_jsxs(View, {
39
+ style: styles.emptyContainer,
40
+ children: [/*#__PURE__*/_jsx(Text, {
41
+ style: styles.emptyIcon,
42
+ children: "~"
43
+ }), /*#__PURE__*/_jsx(Text, {
44
+ style: styles.empty,
45
+ children: emptyText
46
+ })]
47
+ }) : /*#__PURE__*/_jsx(FlatList, {
48
+ data: displayData,
49
+ renderItem: ({
50
+ item
51
+ }) => /*#__PURE__*/_jsx(TouchableOpacity, {
52
+ style: styles.card,
53
+ onPress: () => setSelected(item),
54
+ activeOpacity: 0.6,
55
+ children: renderRow(item)
56
+ }),
57
+ keyExtractor: item => item.id,
58
+ contentContainerStyle: styles.listContent,
59
+ initialNumToRender: 20,
60
+ maxToRenderPerBatch: 10,
61
+ windowSize: 5,
62
+ removeClippedSubviews: true
63
+ })]
64
+ }), selected && /*#__PURE__*/_jsx(Animated.View, {
65
+ style: [styles.detailOverlay, {
66
+ transform: [{
67
+ translateX: detailTranslateX
68
+ }]
69
+ }],
70
+ children: /*#__PURE__*/_jsxs(View, {
71
+ style: styles.detailWrap,
72
+ children: [/*#__PURE__*/_jsxs(View, {
73
+ style: styles.detailHeader,
74
+ children: [/*#__PURE__*/_jsxs(TouchableOpacity, {
75
+ onPress: () => setSelected(null),
76
+ style: styles.backBtn,
77
+ activeOpacity: 0.6,
78
+ children: [/*#__PURE__*/_jsx(Text, {
79
+ style: styles.backIcon,
80
+ children: "\u2039"
81
+ }), /*#__PURE__*/_jsx(Text, {
82
+ style: styles.backText,
83
+ children: "Back"
84
+ })]
85
+ }), renderDetailHeader?.(selected)]
86
+ }), renderDetailBody(selected)]
87
+ })
88
+ })]
89
+ });
90
+ }
91
+ const styles = StyleSheet.create({
92
+ container: {
93
+ flex: 1,
94
+ backgroundColor: Colors.background
95
+ },
96
+ listWrap: {
97
+ position: 'absolute',
98
+ top: 0,
99
+ left: 0,
100
+ right: 0,
101
+ bottom: 0
102
+ },
103
+ listContent: {
104
+ padding: 12
105
+ },
106
+ emptyContainer: {
107
+ flex: 1,
108
+ alignItems: 'center',
109
+ justifyContent: 'center'
110
+ },
111
+ emptyIcon: {
112
+ fontSize: 40,
113
+ color: Colors.textLight,
114
+ marginBottom: 4
115
+ },
116
+ empty: {
117
+ textAlign: 'center',
118
+ color: Colors.textLight,
119
+ fontSize: 14
120
+ },
121
+ card: {
122
+ backgroundColor: Colors.surface,
123
+ borderRadius: 12,
124
+ marginBottom: 8,
125
+ overflow: 'hidden'
126
+ },
127
+ detailOverlay: {
128
+ position: 'absolute',
129
+ top: 0,
130
+ left: 0,
131
+ right: 0,
132
+ bottom: 0,
133
+ backgroundColor: Colors.background
134
+ },
135
+ detailWrap: {
136
+ flex: 1,
137
+ backgroundColor: Colors.background
138
+ },
139
+ detailHeader: {
140
+ flexDirection: 'row',
141
+ alignItems: 'center',
142
+ paddingHorizontal: 8,
143
+ paddingVertical: 10,
144
+ backgroundColor: Colors.surface,
145
+ borderBottomWidth: StyleSheet.hairlineWidth,
146
+ borderBottomColor: Colors.border,
147
+ gap: 8
148
+ },
149
+ backBtn: {
150
+ flexDirection: 'row',
151
+ alignItems: 'center',
152
+ paddingHorizontal: 6,
153
+ paddingVertical: 4,
154
+ borderRadius: 8
155
+ },
156
+ backIcon: {
157
+ fontSize: 24,
158
+ fontWeight: '300',
159
+ color: Colors.primary,
160
+ marginTop: -2,
161
+ marginRight: 2
162
+ },
163
+ backText: {
164
+ fontSize: 16,
165
+ color: Colors.primary,
166
+ fontWeight: '500'
167
+ }
168
+ });
169
+ //# sourceMappingURL=LogListScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useMemo","useState","View","Text","FlatList","TouchableOpacity","StyleSheet","Animated","Colors","useSlideDetailAnimation","jsx","_jsx","jsxs","_jsxs","LogListScreen","data","renderRow","renderListHeader","renderDetailHeader","renderDetailBody","emptyText","reversed","selected","setSelected","detailTranslateX","listTranslateX","listOpacity","displayData","reverse","style","styles","container","children","listWrap","opacity","transform","translateX","length","emptyContainer","emptyIcon","empty","renderItem","item","card","onPress","activeOpacity","keyExtractor","id","contentContainerStyle","listContent","initialNumToRender","maxToRenderPerBatch","windowSize","removeClippedSubviews","detailOverlay","detailWrap","detailHeader","backBtn","backIcon","backText","create","flex","backgroundColor","background","position","top","left","right","bottom","padding","alignItems","justifyContent","fontSize","color","textLight","marginBottom","textAlign","surface","borderRadius","overflow","flexDirection","paddingHorizontal","paddingVertical","borderBottomWidth","hairlineWidth","borderBottomColor","border","gap","fontWeight","primary","marginTop","marginRight"],"sourceRoot":"../../../../src","sources":["components/shared/LogListScreen.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,137 +1,118 @@
1
1
  "use strict";
2
2
 
3
- export class DebugToolkit {
4
- static instance = null;
5
- _features = [];
6
- _panelVisible = false;
7
- renderCallback = null;
8
- constructor(enabled = true) {
9
- this._enabled = enabled;
10
- }
11
- static getInstance(enabled = true) {
12
- if (!DebugToolkit.instance) {
13
- DebugToolkit.instance = new DebugToolkit(enabled);
14
- } else {
15
- DebugToolkit.instance._enabled = enabled;
16
- }
17
- return DebugToolkit.instance;
18
- }
3
+ const listeners = new Set();
4
+ let _features = [];
5
+ let _panelVisible = false;
6
+ let _enabled = true;
7
+ function notify() {
8
+ listeners.forEach(l => l());
9
+ }
10
+ function setupFeature(feature) {
11
+ feature.setup?.();
12
+ }
13
+ function cleanupFeature(feature) {
14
+ feature.cleanup?.();
15
+ }
16
+ export const DebugToolkit = {
17
+ subscribe(listener) {
18
+ listeners.add(listener);
19
+ return () => {
20
+ listeners.delete(listener);
21
+ };
22
+ },
19
23
  get features() {
20
- return [...this._features];
21
- }
24
+ return [..._features];
25
+ },
22
26
  get enabled() {
23
- return this._enabled;
24
- }
27
+ return _enabled;
28
+ },
25
29
  get panelVisible() {
26
- return this._panelVisible;
27
- }
28
- registerRenderCallback(cb) {
29
- if (this.renderCallback) {
30
- console.warn('[DebugToolkit] A render callback is already registered. Overwriting. ' + 'Make sure only one <DebugToolkitProvider> is mounted at a time.');
31
- }
32
- this.renderCallback = cb;
33
- }
34
- unregisterRenderCallback() {
35
- this.renderCallback = null;
36
- }
30
+ return _panelVisible;
31
+ },
37
32
  setEnabled(enabled) {
38
- if (this._enabled === enabled) {
39
- return;
40
- }
41
- this._enabled = enabled;
33
+ if (_enabled === enabled) return;
34
+ _enabled = enabled;
42
35
  if (!enabled) {
43
- this.hidePanel();
44
- this._features.forEach(feature => feature.cleanup?.());
45
- this._features = [];
36
+ _panelVisible = false;
37
+ _features.forEach(cleanupFeature);
38
+ _features = [];
46
39
  }
47
- }
48
- updatePanel() {
49
- this.renderCallback?.();
50
- }
40
+ notify();
41
+ },
42
+ replaceFeatures(features) {
43
+ if (!_enabled) return;
44
+ const next = features.filter((f, i, arr) => f && typeof f.name === 'string' && arr.findIndex(item => item.name === f.name) === i);
45
+ const prevMap = new Map(_features.map(f => [f.name, f]));
46
+ const nextMap = new Map(next.map(f => [f.name, f]));
47
+ _features.forEach(f => {
48
+ if (!nextMap.get(f.name) || nextMap.get(f.name) !== f) cleanupFeature(f);
49
+ });
50
+ next.forEach(f => {
51
+ if (!prevMap.get(f.name) || prevMap.get(f.name) !== f) setupFeature(f);
52
+ });
53
+ _features = next;
54
+ notify();
55
+ },
51
56
  addFeature(feature) {
52
- if (!this._enabled) {
57
+ if (!_enabled || !feature || typeof feature.name !== 'string') {
53
58
  return;
54
59
  }
55
- if (feature && typeof feature.name === 'string') {
56
- const existingIndex = this._features.findIndex(item => item.name === feature.name);
57
- if (existingIndex >= 0) {
58
- const currentFeature = this._features[existingIndex];
59
- if (currentFeature === feature) {
60
- return;
61
- }
62
- currentFeature.cleanup?.();
63
- this._features = this._features.map((item, index) => index === existingIndex ? feature : item);
64
- } else {
65
- this._features = [...this._features, feature];
60
+ const existingIndex = _features.findIndex(f => f.name === feature.name);
61
+ if (existingIndex >= 0) {
62
+ const existing = _features[existingIndex];
63
+ if (existing === feature) {
64
+ return;
66
65
  }
67
- feature.setup?.();
68
- this.updatePanel();
66
+ cleanupFeature(existing);
67
+ setupFeature(feature);
68
+ _features = [..._features.slice(0, existingIndex), feature, ..._features.slice(existingIndex + 1)];
69
+ notify();
70
+ return;
69
71
  }
70
- }
72
+ setupFeature(feature);
73
+ _features = [..._features, feature];
74
+ notify();
75
+ },
71
76
  removeFeature(name) {
72
- const idx = this._features.findIndex(f => f.name === name);
73
- if (idx >= 0) {
74
- this._features[idx].cleanup?.();
75
- this._features = this._features.filter(feature => feature.name !== name);
76
- this.updatePanel();
77
+ if (!_enabled) {
78
+ return;
77
79
  }
78
- }
79
- replaceFeatures(features) {
80
- if (!this._enabled) {
80
+ const feature = _features.find(f => f.name === name);
81
+ if (!feature) {
81
82
  return;
82
83
  }
83
- const nextFeatures = features.filter((feature, index, array) => feature && typeof feature.name === 'string' && array.findIndex(item => item.name === feature.name) === index);
84
- const previousByName = new Map(this._features.map(feature => [feature.name, feature]));
85
- const nextByName = new Map(nextFeatures.map(feature => [feature.name, feature]));
86
- this._features.forEach(feature => {
87
- const nextFeature = nextByName.get(feature.name);
88
- if (!nextFeature || nextFeature !== feature) {
89
- feature.cleanup?.();
90
- }
91
- });
92
- nextFeatures.forEach(feature => {
93
- const currentFeature = previousByName.get(feature.name);
94
- if (!currentFeature || currentFeature !== feature) {
95
- feature.setup?.();
96
- }
97
- });
98
- this._features = nextFeatures;
99
- this.updatePanel();
100
- }
84
+ cleanupFeature(feature);
85
+ _features = _features.filter(f => f.name !== name);
86
+ if (_features.length === 0) {
87
+ _panelVisible = false;
88
+ }
89
+ notify();
90
+ },
101
91
  reset() {
102
- this.hidePanel();
103
- this._features.forEach(feature => feature.cleanup?.());
104
- this._features = [];
105
- }
92
+ _panelVisible = false;
93
+ _features.forEach(cleanupFeature);
94
+ _features = [];
95
+ notify();
96
+ },
106
97
  hasFeatures() {
107
- return this._features.length > 0;
108
- }
98
+ return _features.length > 0;
99
+ },
109
100
  showPanel() {
110
- if (!this._enabled) {
111
- return;
112
- }
113
- this._panelVisible = true;
114
- this.updatePanel();
115
- }
101
+ if (!_enabled) return;
102
+ _panelVisible = true;
103
+ notify();
104
+ },
116
105
  hidePanel() {
117
- this._panelVisible = false;
118
- this.updatePanel();
119
- }
106
+ _panelVisible = false;
107
+ notify();
108
+ },
120
109
  clearAll() {
121
- this._features.forEach(f => {
122
- if (f.clear) {
123
- f.clear();
124
- } else {
125
- f.cleanup?.();
126
- f.setup?.();
127
- }
128
- });
129
- this.updatePanel();
130
- }
110
+ _features.forEach(f => f.clear?.());
111
+ notify();
112
+ },
131
113
  destroy() {
132
114
  this.reset();
133
- this.unregisterRenderCallback();
134
- DebugToolkit.instance = null;
115
+ listeners.clear();
135
116
  }
136
- }
117
+ };
137
118
  //# sourceMappingURL=DebugToolkit.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["DebugToolkit","instance","_features","_panelVisible","renderCallback","constructor","enabled","_enabled","getInstance","features","panelVisible","registerRenderCallback","cb","console","warn","unregisterRenderCallback","setEnabled","hidePanel","forEach","feature","cleanup","updatePanel","addFeature","name","existingIndex","findIndex","item","currentFeature","map","index","setup","removeFeature","idx","f","filter","replaceFeatures","nextFeatures","array","previousByName","Map","nextByName","nextFeature","get","reset","hasFeatures","length","showPanel","clearAll","clear","destroy"],"sourceRoot":"../../../src","sources":["core/DebugToolkit.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["listeners","Set","_features","_panelVisible","_enabled","notify","forEach","l","setupFeature","feature","setup","cleanupFeature","cleanup","DebugToolkit","subscribe","listener","add","delete","features","enabled","panelVisible","setEnabled","replaceFeatures","next","filter","f","i","arr","name","findIndex","item","prevMap","Map","map","nextMap","get","addFeature","existingIndex","existing","slice","removeFeature","find","length","reset","hasFeatures","showPanel","hidePanel","clearAll","clear","destroy"],"sourceRoot":"../../../src","sources":["core/DebugToolkit.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import React, { createContext, useContext, useEffect, useState } from 'react';
3
+ import React, { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';
4
4
  import { DebugToolkit } from './DebugToolkit';
5
5
  import { FloatPanelView } from '../components/FloatPanelView';
6
6
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
@@ -8,43 +8,45 @@ const ToolkitContext = /*#__PURE__*/createContext(null);
8
8
  export function DebugToolkitProvider({
9
9
  children
10
10
  }) {
11
- const [state, setState] = useState(() => {
12
- const toolkit = DebugToolkit.getInstance();
13
- return {
14
- panelVisible: toolkit.panelVisible,
15
- features: toolkit.features
16
- };
17
- });
11
+ const [state, setState] = useState(() => ({
12
+ panelVisible: DebugToolkit.panelVisible,
13
+ features: DebugToolkit.features
14
+ }));
18
15
  useEffect(() => {
19
- const toolkit = DebugToolkit.getInstance();
20
- const syncState = () => {
16
+ // Sync current state — initializeDebugToolkit() may have been called
17
+ // in a child useEffect that runs before this parent effect subscribes.
18
+ setState({
19
+ panelVisible: DebugToolkit.panelVisible,
20
+ features: DebugToolkit.features
21
+ });
22
+ const unsubscribe = DebugToolkit.subscribe(() => {
21
23
  setState({
22
- panelVisible: toolkit.panelVisible,
23
- features: toolkit.features
24
+ panelVisible: DebugToolkit.panelVisible,
25
+ features: DebugToolkit.features
24
26
  });
25
- };
26
- toolkit.registerRenderCallback(syncState);
27
- syncState();
28
- return () => {
29
- toolkit.unregisterRenderCallback();
30
- };
27
+ });
28
+ return unsubscribe;
29
+ }, []);
30
+ const showPanel = useCallback(() => {
31
+ DebugToolkit.showPanel();
32
+ }, []);
33
+ const hidePanel = useCallback(() => {
34
+ DebugToolkit.hidePanel();
35
+ }, []);
36
+ const clearAll = useCallback(() => {
37
+ DebugToolkit.clearAll();
31
38
  }, []);
32
- const toolkit = DebugToolkit.getInstance();
33
- const contextValue = {
39
+ const contextValue = useMemo(() => ({
34
40
  features: state.features,
35
- showPanel: toolkit.showPanel.bind(toolkit),
36
- hidePanel: toolkit.hidePanel.bind(toolkit),
37
- addFeature: toolkit.addFeature.bind(toolkit),
38
- removeFeature: toolkit.removeFeature.bind(toolkit),
39
- clearAll: toolkit.clearAll.bind(toolkit),
40
- destroy: toolkit.destroy.bind(toolkit)
41
- };
41
+ showPanel,
42
+ hidePanel,
43
+ clearAll
44
+ }), [state.features, showPanel, hidePanel, clearAll]);
42
45
  return /*#__PURE__*/_jsxs(ToolkitContext.Provider, {
43
46
  value: contextValue,
44
47
  children: [children, state.panelVisible && /*#__PURE__*/_jsx(FloatPanelView, {
45
48
  features: state.features,
46
- onClose: () => toolkit.hidePanel(),
47
- onClearAll: () => toolkit.clearAll()
49
+ onClearAll: () => DebugToolkit.clearAll()
48
50
  })]
49
51
  });
50
52
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","createContext","useContext","useEffect","useState","DebugToolkit","FloatPanelView","jsx","_jsx","jsxs","_jsxs","ToolkitContext","DebugToolkitProvider","children","state","setState","toolkit","getInstance","panelVisible","features","syncState","registerRenderCallback","unregisterRenderCallback","contextValue","showPanel","bind","hidePanel","addFeature","removeFeature","clearAll","destroy","Provider","value","onClose","onClearAll","useDebugToolkit","context","Error"],"sourceRoot":"../../../src","sources":["core/DebugToolkitProvider.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,aAAa,EAAEC,UAAU,EAAEC,SAAS,EAAEC,QAAQ,QAAwB,OAAO;AAC7F,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,cAAc,QAAQ,8BAA8B;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAa9D,MAAMC,cAAc,gBAAGV,aAAa,CAA6B,IAAI,CAAC;AAWtE,OAAO,SAASW,oBAAoBA,CAAC;EAAEC;AAAoC,CAAC,EAAE;EAC5E,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGX,QAAQ,CAAgB,MAAM;IACtD,MAAMY,OAAO,GAAGX,YAAY,CAACY,WAAW,CAAC,CAAC;IAC1C,OAAO;MACLC,YAAY,EAAEF,OAAO,CAACE,YAAY;MAClCC,QAAQ,EAAEH,OAAO,CAACG;IACpB,CAAC;EACH,CAAC,CAAC;EAEFhB,SAAS,CAAC,MAAM;IACd,MAAMa,OAAO,GAAGX,YAAY,CAACY,WAAW,CAAC,CAAC;IAE1C,MAAMG,SAAS,GAAGA,CAAA,KAAM;MACtBL,QAAQ,CAAC;QACPG,YAAY,EAAEF,OAAO,CAACE,YAAY;QAClCC,QAAQ,EAAEH,OAAO,CAACG;MACpB,CAAC,CAAC;IACJ,CAAC;IAEDH,OAAO,CAACK,sBAAsB,CAACD,SAAS,CAAC;IACzCA,SAAS,CAAC,CAAC;IAEX,OAAO,MAAM;MACXJ,OAAO,CAACM,wBAAwB,CAAC,CAAC;IACpC,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMN,OAAO,GAAGX,YAAY,CAACY,WAAW,CAAC,CAAC;EAE1C,MAAMM,YAAiC,GAAG;IACxCJ,QAAQ,EAAEL,KAAK,CAACK,QAAQ;IACxBK,SAAS,EAAER,OAAO,CAACQ,SAAS,CAACC,IAAI,CAACT,OAAO,CAAC;IAC1CU,SAAS,EAAEV,OAAO,CAACU,SAAS,CAACD,IAAI,CAACT,OAAO,CAAC;IAC1CW,UAAU,EAAEX,OAAO,CAACW,UAAU,CAACF,IAAI,CAACT,OAAO,CAAC;IAC5CY,aAAa,EAAEZ,OAAO,CAACY,aAAa,CAACH,IAAI,CAACT,OAAO,CAAC;IAClDa,QAAQ,EAAEb,OAAO,CAACa,QAAQ,CAACJ,IAAI,CAACT,OAAO,CAAC;IACxCc,OAAO,EAAEd,OAAO,CAACc,OAAO,CAACL,IAAI,CAACT,OAAO;EACvC,CAAC;EAED,oBACEN,KAAA,CAACC,cAAc,CAACoB,QAAQ;IAACC,KAAK,EAAET,YAAa;IAAAV,QAAA,GAC1CA,QAAQ,EACRC,KAAK,CAACI,YAAY,iBACjBV,IAAA,CAACF,cAAc;MACba,QAAQ,EAAEL,KAAK,CAACK,QAAS;MACzBc,OAAO,EAAEA,CAAA,KAAMjB,OAAO,CAACU,SAAS,CAAC,CAAE;MACnCQ,UAAU,EAAEA,CAAA,KAAMlB,OAAO,CAACa,QAAQ,CAAC;IAAE,CACtC,CACF;EAAA,CACsB,CAAC;AAE9B;AAEA,OAAO,SAASM,eAAeA,CAAA,EAAwB;EACrD,MAAMC,OAAO,GAAGlC,UAAU,CAACS,cAAc,CAAC;EAC1C,IAAI,CAACyB,OAAO,EAAE;IACZ,MAAM,IAAIC,KAAK,CACb,gEAAgE,GAC9D,4CACJ,CAAC;EACH;EACA,OAAOD,OAAO;AAChB","ignoreList":[]}
1
+ {"version":3,"names":["React","createContext","useCallback","useContext","useEffect","useMemo","useState","DebugToolkit","FloatPanelView","jsx","_jsx","jsxs","_jsxs","ToolkitContext","DebugToolkitProvider","children","state","setState","panelVisible","features","unsubscribe","subscribe","showPanel","hidePanel","clearAll","contextValue","Provider","value","onClearAll","useDebugToolkit","context","Error"],"sourceRoot":"../../../src","sources":["core/DebugToolkitProvider.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,aAAa,EAAEC,WAAW,EAAEC,UAAU,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAwB,OAAO;AACnH,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,cAAc,QAAQ,8BAA8B;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAU9D,MAAMC,cAAc,gBAAGZ,aAAa,CAA6B,IAAI,CAAC;AAWtE,OAAO,SAASa,oBAAoBA,CAAC;EAAEC;AAAoC,CAAC,EAAE;EAC5E,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGX,QAAQ,CAAgB,OAAO;IACvDY,YAAY,EAAEX,YAAY,CAACW,YAAY;IACvCC,QAAQ,EAAEZ,YAAY,CAACY;EACzB,CAAC,CAAC,CAAC;EAEHf,SAAS,CAAC,MAAM;IACd;IACA;IACAa,QAAQ,CAAC;MACPC,YAAY,EAAEX,YAAY,CAACW,YAAY;MACvCC,QAAQ,EAAEZ,YAAY,CAACY;IACzB,CAAC,CAAC;IAEF,MAAMC,WAAW,GAAGb,YAAY,CAACc,SAAS,CAAC,MAAM;MAC/CJ,QAAQ,CAAC;QACPC,YAAY,EAAEX,YAAY,CAACW,YAAY;QACvCC,QAAQ,EAAEZ,YAAY,CAACY;MACzB,CAAC,CAAC;IACJ,CAAC,CAAC;IACF,OAAOC,WAAW;EACpB,CAAC,EAAE,EAAE,CAAC;EAEN,MAAME,SAAS,GAAGpB,WAAW,CAAC,MAAM;IAAEK,YAAY,CAACe,SAAS,CAAC,CAAC;EAAE,CAAC,EAAE,EAAE,CAAC;EACtE,MAAMC,SAAS,GAAGrB,WAAW,CAAC,MAAM;IAAEK,YAAY,CAACgB,SAAS,CAAC,CAAC;EAAE,CAAC,EAAE,EAAE,CAAC;EACtE,MAAMC,QAAQ,GAAGtB,WAAW,CAAC,MAAM;IAAEK,YAAY,CAACiB,QAAQ,CAAC,CAAC;EAAE,CAAC,EAAE,EAAE,CAAC;EAEpE,MAAMC,YAAY,GAAGpB,OAAO,CAC1B,OAAO;IACLc,QAAQ,EAAEH,KAAK,CAACG,QAAQ;IACxBG,SAAS;IACTC,SAAS;IACTC;EACF,CAAC,CAAC,EACF,CAACR,KAAK,CAACG,QAAQ,EAAEG,SAAS,EAAEC,SAAS,EAAEC,QAAQ,CACjD,CAAC;EAED,oBACEZ,KAAA,CAACC,cAAc,CAACa,QAAQ;IAACC,KAAK,EAAEF,YAAa;IAAAV,QAAA,GAC1CA,QAAQ,EACRC,KAAK,CAACE,YAAY,iBACjBR,IAAA,CAACF,cAAc;MACbW,QAAQ,EAAEH,KAAK,CAACG,QAAS;MACzBS,UAAU,EAAEA,CAAA,KAAMrB,YAAY,CAACiB,QAAQ,CAAC;IAAE,CAC3C,CACF;EAAA,CACsB,CAAC;AAE9B;AAEA,OAAO,SAASK,eAAeA,CAAA,EAAwB;EACrD,MAAMC,OAAO,GAAG3B,UAAU,CAACU,cAAc,CAAC;EAC1C,IAAI,CAACiB,OAAO,EAAE;IACZ,MAAM,IAAIC,KAAK,CACb,gEAAgE,GAC9D,4CACJ,CAAC;EACH;EACA,OAAOD,OAAO;AAChB","ignoreList":[]}
@@ -1,12 +1,16 @@
1
1
  "use strict";
2
2
 
3
3
  import { ClipboardTab } from '../components/ClipboardTab';
4
+ /**
5
+ * Clipboard feature — all logic lives in ClipboardTab.
6
+ * Data flow is user-driven (TextInput), not event-based.
7
+ */
4
8
  export const createClipboardFeature = () => ({
5
9
  name: 'clipboard',
6
10
  label: 'Clipboard',
7
11
  renderContent: ClipboardTab,
8
- setup: () => {},
12
+ setup() {},
9
13
  getData: () => [],
10
- cleanup: () => {}
14
+ cleanup() {}
11
15
  });
12
16
  //# sourceMappingURL=ClipboardFeature.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ClipboardTab","createClipboardFeature","name","label","renderContent","setup","getData","cleanup"],"sourceRoot":"../../../src","sources":["features/ClipboardFeature.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,4BAA4B;AAGzD,OAAO,MAAMC,sBAAsB,GAAGA,CAAA,MAA2B;EAC/DC,IAAI,EAAE,WAAW;EACjBC,KAAK,EAAE,WAAW;EAClBC,aAAa,EAAEJ,YAAY;EAC3BK,KAAK,EAAEA,CAAA,KAAM,CAAC,CAAC;EACfC,OAAO,EAAEA,CAAA,KAAM,EAAE;EACjBC,OAAO,EAAEA,CAAA,KAAM,CAAC;AAClB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["ClipboardTab","createClipboardFeature","name","label","renderContent","setup","getData","cleanup"],"sourceRoot":"../../../src","sources":["features/ClipboardFeature.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,4BAA4B;AAGzD;AACA;AACA;AACA;AACA,OAAO,MAAMC,sBAAsB,GAAGA,CAAA,MAA2B;EAC/DC,IAAI,EAAE,WAAW;EACjBC,KAAK,EAAE,WAAW;EAClBC,aAAa,EAAEJ,YAAY;EAC3BK,KAAKA,CAAA,EAAG,CAAC,CAAC;EACVC,OAAO,EAAEA,CAAA,KAAM,EAAE;EACjBC,OAAOA,CAAA,EAAG,CAAC;AACb,CAAC,CAAC","ignoreList":[]}