react-native-debug-toolkit 0.6.4 → 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 (340) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +149 -211
  3. package/README.zh-CN.md +150 -171
  4. package/lib/commonjs/components/ClipboardTab.js +91 -0
  5. package/lib/commonjs/components/ClipboardTab.js.map +1 -0
  6. package/lib/commonjs/components/ConsoleLogTab.js +162 -0
  7. package/lib/commonjs/components/ConsoleLogTab.js.map +1 -0
  8. package/lib/commonjs/components/DebugPanel.js +230 -0
  9. package/lib/commonjs/components/DebugPanel.js.map +1 -0
  10. package/lib/commonjs/components/DebugView.js +66 -0
  11. package/lib/commonjs/components/DebugView.js.map +1 -0
  12. package/lib/commonjs/components/EnvironmentTab.js +287 -0
  13. package/lib/commonjs/components/EnvironmentTab.js.map +1 -0
  14. package/lib/commonjs/components/FeatureTabBar.js +182 -0
  15. package/lib/commonjs/components/FeatureTabBar.js.map +1 -0
  16. package/lib/commonjs/components/FloatIcon.js +187 -0
  17. package/lib/commonjs/components/FloatIcon.js.map +1 -0
  18. package/lib/commonjs/components/FloatPanelView.js +214 -0
  19. package/lib/commonjs/components/FloatPanelView.js.map +1 -0
  20. package/lib/commonjs/components/NavigationLogTab.js +131 -0
  21. package/lib/commonjs/components/NavigationLogTab.js.map +1 -0
  22. package/lib/commonjs/components/NetworkLogTab.js +404 -0
  23. package/lib/commonjs/components/NetworkLogTab.js.map +1 -0
  24. package/lib/commonjs/components/ThirdPartyLibsTab.js +97 -0
  25. package/lib/commonjs/components/ThirdPartyLibsTab.js.map +1 -0
  26. package/lib/commonjs/components/TrackLogTab.js +230 -0
  27. package/lib/commonjs/components/TrackLogTab.js.map +1 -0
  28. package/lib/commonjs/components/ZustandLogTab.js +311 -0
  29. package/lib/commonjs/components/ZustandLogTab.js.map +1 -0
  30. package/lib/commonjs/components/shared/CollapsibleSection.js +84 -0
  31. package/lib/commonjs/components/shared/CollapsibleSection.js.map +1 -0
  32. package/lib/commonjs/components/shared/CopyButton.js +64 -0
  33. package/lib/commonjs/components/shared/CopyButton.js.map +1 -0
  34. package/lib/commonjs/components/shared/JsonView.js +157 -0
  35. package/lib/commonjs/components/shared/JsonView.js.map +1 -0
  36. package/lib/commonjs/components/shared/LogListScreen.js +174 -0
  37. package/lib/commonjs/components/shared/LogListScreen.js.map +1 -0
  38. package/lib/commonjs/core/DebugToolkit.js +122 -0
  39. package/lib/commonjs/core/DebugToolkit.js.map +1 -0
  40. package/lib/commonjs/core/DebugToolkitProvider.js +66 -0
  41. package/lib/commonjs/core/DebugToolkitProvider.js.map +1 -0
  42. package/lib/commonjs/features/ClipboardFeature.js +21 -0
  43. package/lib/commonjs/features/ClipboardFeature.js.map +1 -0
  44. package/lib/commonjs/features/ConsoleLogFeature.js +115 -0
  45. package/lib/commonjs/features/ConsoleLogFeature.js.map +1 -0
  46. package/lib/commonjs/features/EnvironmentFeature.js +160 -0
  47. package/lib/commonjs/features/EnvironmentFeature.js.map +1 -0
  48. package/lib/commonjs/features/NavigationLogFeature.js +39 -0
  49. package/lib/commonjs/features/NavigationLogFeature.js.map +1 -0
  50. package/lib/commonjs/features/NetworkFeature.js +107 -0
  51. package/lib/commonjs/features/NetworkFeature.js.map +1 -0
  52. package/lib/commonjs/features/ThirdPartyLibsFeature.js +51 -0
  53. package/lib/commonjs/features/ThirdPartyLibsFeature.js.map +1 -0
  54. package/lib/commonjs/features/TrackFeature.js +34 -0
  55. package/lib/commonjs/features/TrackFeature.js.map +1 -0
  56. package/lib/commonjs/features/ZustandLogFeature.js +59 -0
  57. package/lib/commonjs/features/ZustandLogFeature.js.map +1 -0
  58. package/lib/commonjs/hooks/useNavigationLogger.js +78 -0
  59. package/lib/commonjs/hooks/useNavigationLogger.js.map +1 -0
  60. package/lib/commonjs/hooks/useSlideDetailAnimation.js +53 -0
  61. package/lib/commonjs/hooks/useSlideDetailAnimation.js.map +1 -0
  62. package/lib/commonjs/index.js +152 -0
  63. package/lib/commonjs/index.js.map +1 -0
  64. package/lib/commonjs/initialize.js +84 -0
  65. package/lib/commonjs/initialize.js.map +1 -0
  66. package/lib/commonjs/interceptors/networkInterceptor.js +466 -0
  67. package/lib/commonjs/interceptors/networkInterceptor.js.map +1 -0
  68. package/lib/commonjs/native/NativeDebugLibs.js +58 -0
  69. package/lib/commonjs/native/NativeDebugLibs.js.map +1 -0
  70. package/lib/commonjs/package.json +1 -0
  71. package/lib/commonjs/types/index.js +6 -0
  72. package/lib/commonjs/types/index.js.map +1 -0
  73. package/lib/commonjs/utils/colors.js +48 -0
  74. package/lib/commonjs/utils/colors.js.map +1 -0
  75. package/lib/commonjs/utils/copyToComputer.js +97 -0
  76. package/lib/commonjs/utils/copyToComputer.js.map +1 -0
  77. package/lib/commonjs/utils/createChannelFeature.js +48 -0
  78. package/lib/commonjs/utils/createChannelFeature.js.map +1 -0
  79. package/lib/commonjs/utils/createEventChannel.js +21 -0
  80. package/lib/commonjs/utils/createEventChannel.js.map +1 -0
  81. package/lib/commonjs/utils/createObservableStore.js +38 -0
  82. package/lib/commonjs/utils/createObservableStore.js.map +1 -0
  83. package/lib/commonjs/utils/layout.js +8 -0
  84. package/lib/commonjs/utils/layout.js.map +1 -0
  85. package/lib/commonjs/utils/safeStringify.js +27 -0
  86. package/lib/commonjs/utils/safeStringify.js.map +1 -0
  87. package/lib/commonjs/utils/urlRewriterRegistry.js +14 -0
  88. package/lib/commonjs/utils/urlRewriterRegistry.js.map +1 -0
  89. package/lib/module/components/ClipboardTab.js +86 -0
  90. package/lib/module/components/ClipboardTab.js.map +1 -0
  91. package/lib/module/components/ConsoleLogTab.js +157 -0
  92. package/lib/module/components/ConsoleLogTab.js.map +1 -0
  93. package/lib/module/components/DebugPanel.js +225 -0
  94. package/lib/module/components/DebugPanel.js.map +1 -0
  95. package/lib/module/components/DebugView.js +61 -0
  96. package/lib/module/components/DebugView.js.map +1 -0
  97. package/lib/module/components/EnvironmentTab.js +282 -0
  98. package/lib/module/components/EnvironmentTab.js.map +1 -0
  99. package/lib/module/components/FeatureTabBar.js +177 -0
  100. package/lib/module/components/FeatureTabBar.js.map +1 -0
  101. package/lib/module/components/FloatIcon.js +182 -0
  102. package/lib/module/components/FloatIcon.js.map +1 -0
  103. package/lib/module/components/FloatPanelView.js +209 -0
  104. package/lib/module/components/FloatPanelView.js.map +1 -0
  105. package/lib/module/components/NavigationLogTab.js +126 -0
  106. package/lib/module/components/NavigationLogTab.js.map +1 -0
  107. package/lib/module/components/NetworkLogTab.js +399 -0
  108. package/lib/module/components/NetworkLogTab.js.map +1 -0
  109. package/lib/module/components/ThirdPartyLibsTab.js +91 -0
  110. package/lib/module/components/ThirdPartyLibsTab.js.map +1 -0
  111. package/lib/module/components/TrackLogTab.js +225 -0
  112. package/lib/module/components/TrackLogTab.js.map +1 -0
  113. package/lib/module/components/ZustandLogTab.js +306 -0
  114. package/lib/module/components/ZustandLogTab.js.map +1 -0
  115. package/lib/module/components/shared/CollapsibleSection.js +78 -0
  116. package/lib/module/components/shared/CollapsibleSection.js.map +1 -0
  117. package/lib/module/components/shared/CopyButton.js +58 -0
  118. package/lib/module/components/shared/CopyButton.js.map +1 -0
  119. package/lib/module/components/shared/JsonView.js +152 -0
  120. package/lib/module/components/shared/JsonView.js.map +1 -0
  121. package/lib/module/components/shared/LogListScreen.js +169 -0
  122. package/lib/module/components/shared/LogListScreen.js.map +1 -0
  123. package/lib/module/core/DebugToolkit.js +118 -0
  124. package/lib/module/core/DebugToolkit.js.map +1 -0
  125. package/lib/module/core/DebugToolkitProvider.js +60 -0
  126. package/lib/module/core/DebugToolkitProvider.js.map +1 -0
  127. package/lib/module/features/ClipboardFeature.js +16 -0
  128. package/lib/module/features/ClipboardFeature.js.map +1 -0
  129. package/lib/module/features/ConsoleLogFeature.js +109 -0
  130. package/lib/module/features/ConsoleLogFeature.js.map +1 -0
  131. package/lib/module/features/EnvironmentFeature.js +156 -0
  132. package/lib/module/features/EnvironmentFeature.js.map +1 -0
  133. package/lib/module/features/NavigationLogFeature.js +32 -0
  134. package/lib/module/features/NavigationLogFeature.js.map +1 -0
  135. package/lib/module/features/NetworkFeature.js +101 -0
  136. package/lib/module/features/NetworkFeature.js.map +1 -0
  137. package/lib/module/features/ThirdPartyLibsFeature.js +46 -0
  138. package/lib/module/features/ThirdPartyLibsFeature.js.map +1 -0
  139. package/lib/module/features/TrackFeature.js +27 -0
  140. package/lib/module/features/TrackFeature.js.map +1 -0
  141. package/lib/module/features/ZustandLogFeature.js +53 -0
  142. package/lib/module/features/ZustandLogFeature.js.map +1 -0
  143. package/lib/module/hooks/useNavigationLogger.js +74 -0
  144. package/lib/module/hooks/useNavigationLogger.js.map +1 -0
  145. package/lib/module/hooks/useSlideDetailAnimation.js +50 -0
  146. package/lib/module/hooks/useSlideDetailAnimation.js.map +1 -0
  147. package/lib/module/index.js +28 -0
  148. package/lib/module/index.js.map +1 -0
  149. package/lib/module/initialize.js +80 -0
  150. package/lib/module/initialize.js.map +1 -0
  151. package/lib/module/interceptors/networkInterceptor.js +460 -0
  152. package/lib/module/interceptors/networkInterceptor.js.map +1 -0
  153. package/lib/module/native/NativeDebugLibs.js +54 -0
  154. package/lib/module/native/NativeDebugLibs.js.map +1 -0
  155. package/lib/module/package.json +1 -0
  156. package/lib/module/types/index.js +4 -0
  157. package/lib/module/types/index.js.map +1 -0
  158. package/lib/module/utils/colors.js +43 -0
  159. package/lib/module/utils/colors.js.map +1 -0
  160. package/lib/module/utils/copyToComputer.js +91 -0
  161. package/lib/module/utils/copyToComputer.js.map +1 -0
  162. package/lib/module/utils/createChannelFeature.js +44 -0
  163. package/lib/module/utils/createChannelFeature.js.map +1 -0
  164. package/lib/module/utils/createEventChannel.js +17 -0
  165. package/lib/module/utils/createEventChannel.js.map +1 -0
  166. package/lib/module/utils/createObservableStore.js +34 -0
  167. package/lib/module/utils/createObservableStore.js.map +1 -0
  168. package/lib/module/utils/layout.js +4 -0
  169. package/lib/module/utils/layout.js.map +1 -0
  170. package/lib/module/utils/safeStringify.js +23 -0
  171. package/lib/module/utils/safeStringify.js.map +1 -0
  172. package/lib/module/utils/urlRewriterRegistry.js +10 -0
  173. package/lib/module/utils/urlRewriterRegistry.js.map +1 -0
  174. package/lib/typescript/src/components/ClipboardTab.d.ts +4 -0
  175. package/lib/typescript/src/components/ClipboardTab.d.ts.map +1 -0
  176. package/lib/typescript/src/components/ConsoleLogTab.d.ts +4 -0
  177. package/lib/typescript/src/components/ConsoleLogTab.d.ts.map +1 -0
  178. package/lib/typescript/src/components/DebugPanel.d.ts +9 -0
  179. package/lib/typescript/src/components/DebugPanel.d.ts.map +1 -0
  180. package/lib/typescript/src/components/DebugView.d.ts +19 -0
  181. package/lib/typescript/src/components/DebugView.d.ts.map +1 -0
  182. package/lib/typescript/src/components/EnvironmentTab.d.ts +4 -0
  183. package/lib/typescript/src/components/EnvironmentTab.d.ts.map +1 -0
  184. package/lib/typescript/src/components/FeatureTabBar.d.ts +13 -0
  185. package/lib/typescript/src/components/FeatureTabBar.d.ts.map +1 -0
  186. package/lib/typescript/src/components/FloatIcon.d.ts +12 -0
  187. package/lib/typescript/src/components/FloatIcon.d.ts.map +1 -0
  188. package/lib/typescript/src/components/FloatPanelView.d.ts +9 -0
  189. package/lib/typescript/src/components/FloatPanelView.d.ts.map +1 -0
  190. package/lib/typescript/src/components/NavigationLogTab.d.ts +4 -0
  191. package/lib/typescript/src/components/NavigationLogTab.d.ts.map +1 -0
  192. package/lib/typescript/src/components/NetworkLogTab.d.ts +4 -0
  193. package/lib/typescript/src/components/NetworkLogTab.d.ts.map +1 -0
  194. package/lib/typescript/src/components/ThirdPartyLibsTab.d.ts +4 -0
  195. package/lib/typescript/src/components/ThirdPartyLibsTab.d.ts.map +1 -0
  196. package/lib/typescript/src/components/TrackLogTab.d.ts +4 -0
  197. package/lib/typescript/src/components/TrackLogTab.d.ts.map +1 -0
  198. package/lib/typescript/src/components/ZustandLogTab.d.ts +4 -0
  199. package/lib/typescript/src/components/ZustandLogTab.d.ts.map +1 -0
  200. package/lib/typescript/src/components/shared/CollapsibleSection.d.ts +9 -0
  201. package/lib/typescript/src/components/shared/CollapsibleSection.d.ts.map +1 -0
  202. package/lib/typescript/src/components/shared/CopyButton.d.ts +12 -0
  203. package/lib/typescript/src/components/shared/CopyButton.d.ts.map +1 -0
  204. package/lib/typescript/src/components/shared/JsonView.d.ts +6 -0
  205. package/lib/typescript/src/components/shared/JsonView.d.ts.map +1 -0
  206. package/lib/typescript/src/components/shared/LogListScreen.d.ts +21 -0
  207. package/lib/typescript/src/components/shared/LogListScreen.d.ts.map +1 -0
  208. package/lib/typescript/src/core/DebugToolkit.d.ts +20 -0
  209. package/lib/typescript/src/core/DebugToolkit.d.ts.map +1 -0
  210. package/lib/typescript/src/core/DebugToolkitProvider.d.ts +15 -0
  211. package/lib/typescript/src/core/DebugToolkitProvider.d.ts.map +1 -0
  212. package/lib/typescript/src/features/ClipboardFeature.d.ts +7 -0
  213. package/lib/typescript/src/features/ClipboardFeature.d.ts.map +1 -0
  214. package/lib/typescript/src/features/ConsoleLogFeature.d.ts +9 -0
  215. package/lib/typescript/src/features/ConsoleLogFeature.d.ts.map +1 -0
  216. package/lib/typescript/src/features/EnvironmentFeature.d.ts +8 -0
  217. package/lib/typescript/src/features/EnvironmentFeature.d.ts.map +1 -0
  218. package/lib/typescript/src/features/NavigationLogFeature.d.ts +10 -0
  219. package/lib/typescript/src/features/NavigationLogFeature.d.ts.map +1 -0
  220. package/lib/typescript/src/features/NetworkFeature.d.ts +15 -0
  221. package/lib/typescript/src/features/NetworkFeature.d.ts.map +1 -0
  222. package/lib/typescript/src/features/ThirdPartyLibsFeature.d.ts +3 -0
  223. package/lib/typescript/src/features/ThirdPartyLibsFeature.d.ts.map +1 -0
  224. package/lib/typescript/src/features/TrackFeature.d.ts +14 -0
  225. package/lib/typescript/src/features/TrackFeature.d.ts.map +1 -0
  226. package/lib/typescript/src/features/ZustandLogFeature.d.ts +31 -0
  227. package/lib/typescript/src/features/ZustandLogFeature.d.ts.map +1 -0
  228. package/lib/typescript/src/hooks/useNavigationLogger.d.ts +13 -0
  229. package/lib/typescript/src/hooks/useNavigationLogger.d.ts.map +1 -0
  230. package/lib/typescript/src/hooks/useSlideDetailAnimation.d.ts +11 -0
  231. package/lib/typescript/src/hooks/useSlideDetailAnimation.d.ts.map +1 -0
  232. package/lib/typescript/src/index.d.ts +26 -0
  233. package/lib/typescript/src/index.d.ts.map +1 -0
  234. package/lib/typescript/src/initialize.d.ts +32 -0
  235. package/lib/typescript/src/initialize.d.ts.map +1 -0
  236. package/lib/typescript/src/interceptors/networkInterceptor.d.ts +18 -0
  237. package/lib/typescript/src/interceptors/networkInterceptor.d.ts.map +1 -0
  238. package/lib/typescript/src/native/NativeDebugLibs.d.ts +11 -0
  239. package/lib/typescript/src/native/NativeDebugLibs.d.ts.map +1 -0
  240. package/lib/typescript/src/types/index.d.ts +109 -0
  241. package/lib/typescript/src/types/index.d.ts.map +1 -0
  242. package/lib/typescript/src/utils/colors.d.ts +21 -0
  243. package/lib/typescript/src/utils/colors.d.ts.map +1 -0
  244. package/lib/typescript/src/utils/copyToComputer.d.ts +30 -0
  245. package/lib/typescript/src/utils/copyToComputer.d.ts.map +1 -0
  246. package/lib/typescript/src/utils/createChannelFeature.d.ts +18 -0
  247. package/lib/typescript/src/utils/createChannelFeature.d.ts.map +1 -0
  248. package/lib/typescript/src/utils/createEventChannel.d.ts +7 -0
  249. package/lib/typescript/src/utils/createEventChannel.d.ts.map +1 -0
  250. package/lib/typescript/src/utils/createObservableStore.d.ts +9 -0
  251. package/lib/typescript/src/utils/createObservableStore.d.ts.map +1 -0
  252. package/lib/typescript/src/utils/layout.d.ts +2 -0
  253. package/lib/typescript/src/utils/layout.d.ts.map +1 -0
  254. package/lib/typescript/src/utils/safeStringify.d.ts +6 -0
  255. package/lib/typescript/src/utils/safeStringify.d.ts.map +1 -0
  256. package/lib/typescript/src/utils/urlRewriterRegistry.d.ts +7 -0
  257. package/lib/typescript/src/utils/urlRewriterRegistry.d.ts.map +1 -0
  258. package/package.json +67 -24
  259. package/src/components/ClipboardTab.tsx +81 -0
  260. package/src/components/ConsoleLogTab.tsx +95 -0
  261. package/src/components/DebugPanel.tsx +215 -0
  262. package/src/components/DebugView.tsx +80 -0
  263. package/src/components/EnvironmentTab.tsx +276 -0
  264. package/src/components/FeatureTabBar.tsx +204 -0
  265. package/src/components/FloatIcon.tsx +171 -0
  266. package/src/components/FloatPanelView.tsx +202 -0
  267. package/src/components/NavigationLogTab.tsx +66 -0
  268. package/src/components/NetworkLogTab.tsx +270 -0
  269. package/src/components/ThirdPartyLibsTab.tsx +63 -0
  270. package/src/components/TrackLogTab.tsx +110 -0
  271. package/src/components/ZustandLogTab.tsx +203 -0
  272. package/src/components/shared/CollapsibleSection.tsx +78 -0
  273. package/src/components/shared/CopyButton.tsx +68 -0
  274. package/src/components/shared/JsonView.tsx +125 -0
  275. package/src/components/shared/LogListScreen.tsx +164 -0
  276. package/src/core/DebugToolkit.tsx +150 -0
  277. package/src/core/DebugToolkitProvider.tsx +83 -0
  278. package/src/features/ClipboardFeature.ts +15 -0
  279. package/src/features/ConsoleLogFeature.ts +116 -0
  280. package/src/features/EnvironmentFeature.ts +186 -0
  281. package/src/features/NavigationLogFeature.ts +44 -0
  282. package/src/features/NetworkFeature.ts +126 -0
  283. package/src/features/ThirdPartyLibsFeature.ts +42 -0
  284. package/src/features/TrackFeature.ts +34 -0
  285. package/src/features/ZustandLogFeature.ts +101 -0
  286. package/src/hooks/useNavigationLogger.ts +102 -0
  287. package/src/hooks/useSlideDetailAnimation.ts +45 -0
  288. package/src/index.ts +48 -0
  289. package/src/initialize.ts +122 -0
  290. package/src/interceptors/networkInterceptor.ts +646 -0
  291. package/src/native/NativeDebugLibs.ts +74 -0
  292. package/src/types/index.ts +127 -0
  293. package/src/utils/colors.ts +38 -0
  294. package/src/utils/copyToComputer.ts +104 -0
  295. package/src/utils/createChannelFeature.ts +55 -0
  296. package/src/utils/createEventChannel.ts +22 -0
  297. package/src/utils/createObservableStore.ts +42 -0
  298. package/src/utils/layout.ts +1 -0
  299. package/src/utils/safeStringify.ts +25 -0
  300. package/src/utils/urlRewriterRegistry.ts +10 -0
  301. package/.cursor/rules/react-native.mdc +0 -41
  302. package/index.js +0 -41
  303. package/ios/BuildTypeModule.h +0 -9
  304. package/ios/BuildTypeModule.m +0 -42
  305. package/ios/RNDebugLibs.h +0 -10
  306. package/ios/RNDebugLibs.m +0 -79
  307. package/lib/DebugToolKit.js +0 -126
  308. package/lib/EnvironmentManager.ts +0 -80
  309. package/lib/NativeDebugLibs.js +0 -67
  310. package/lib/features/ConsoleLogFeature.js +0 -70
  311. package/lib/features/NavigationLogFeature.js +0 -45
  312. package/lib/features/NetworkFeature.js +0 -389
  313. package/lib/features/PerformanceFeature.js +0 -390
  314. package/lib/features/ThirdPartyLibsFeature.js +0 -63
  315. package/lib/features/TrackFeature.js +0 -94
  316. package/lib/features/ZustandLogFeature.js +0 -44
  317. package/lib/hooks/useNavigationLogger.js +0 -92
  318. package/lib/index.js +0 -114
  319. package/lib/navigation/NavigationLogger.js +0 -1
  320. package/lib/types/TrackTypes.ts +0 -92
  321. package/lib/utils/DebugConst.js +0 -67
  322. package/lib/utils/StorageUtils.js +0 -80
  323. package/lib/views/ConsoleLogDetails.js +0 -314
  324. package/lib/views/FloatPanelView.js +0 -697
  325. package/lib/views/HttpLogDetails.js +0 -648
  326. package/lib/views/NavigationLogDetails.js +0 -302
  327. package/lib/views/RestartModal.js +0 -75
  328. package/lib/views/SubViewConsoleLogs.js +0 -209
  329. package/lib/views/SubViewEnvironment.js +0 -73
  330. package/lib/views/SubViewHTTPLogs.js +0 -235
  331. package/lib/views/SubViewNavigationLogs.js +0 -199
  332. package/lib/views/SubViewPerformance.js +0 -515
  333. package/lib/views/SubViewThirdPartyLibs.js +0 -239
  334. package/lib/views/SubViewTrackLogs.js +0 -318
  335. package/lib/views/SubViewZustandLogs.js +0 -279
  336. package/lib/views/TabView.js +0 -66
  337. package/lib/views/TrackLogDetails.js +0 -481
  338. package/lib/views/ZustandLogDetails.js +0 -355
  339. package/react-native-debug-toolkit.podspec +0 -25
  340. package/react-native.config.js +0 -18
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ import React, { useCallback, useState } from 'react';
4
+ import { TouchableOpacity, Text, StyleSheet } from 'react-native';
5
+ import { Colors } from '../../utils/colors';
6
+ import { copyToComputer } from '../../utils/copyToComputer';
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ export const CopyButton = ({
9
+ text,
10
+ label,
11
+ compact
12
+ }) => {
13
+ const [feedback, setFeedback] = useState(null);
14
+ const handleCopy = useCallback(() => {
15
+ try {
16
+ const result = copyToComputer(text, {
17
+ label
18
+ });
19
+ setFeedback(result.method === 'clipboard' ? 'copied' : 'logged');
20
+ } catch {
21
+ setFeedback('logged');
22
+ }
23
+ setTimeout(() => setFeedback(null), 2000);
24
+ }, [text, label]);
25
+ if (!text) return null;
26
+ const feedbackLabel = feedback === 'copied' ? 'Copied' : feedback === 'logged' ? 'Logged' : null;
27
+ return /*#__PURE__*/_jsx(TouchableOpacity, {
28
+ style: [s.copyBtn, compact && s.copyBtnCompact],
29
+ onPress: handleCopy,
30
+ activeOpacity: 0.7,
31
+ children: /*#__PURE__*/_jsx(Text, {
32
+ style: [s.copyBtnText, compact && s.copyBtnTextCompact],
33
+ children: feedbackLabel ?? 'Copy'
34
+ })
35
+ });
36
+ };
37
+ const s = StyleSheet.create({
38
+ copyBtn: {
39
+ backgroundColor: Colors.background,
40
+ paddingHorizontal: 12,
41
+ paddingVertical: 5,
42
+ borderRadius: 8,
43
+ alignSelf: 'flex-end'
44
+ },
45
+ copyBtnCompact: {
46
+ paddingHorizontal: 8,
47
+ paddingVertical: 3
48
+ },
49
+ copyBtnText: {
50
+ fontSize: 12,
51
+ color: Colors.textSecondary,
52
+ fontWeight: '500'
53
+ },
54
+ copyBtnTextCompact: {
55
+ fontSize: 11
56
+ }
57
+ });
58
+ //# sourceMappingURL=CopyButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useCallback","useState","TouchableOpacity","Text","StyleSheet","Colors","copyToComputer","jsx","_jsx","CopyButton","text","label","compact","feedback","setFeedback","handleCopy","result","method","setTimeout","feedbackLabel","style","s","copyBtn","copyBtnCompact","onPress","activeOpacity","children","copyBtnText","copyBtnTextCompact","create","backgroundColor","background","paddingHorizontal","paddingVertical","borderRadius","alignSelf","fontSize","color","textSecondary","fontWeight"],"sourceRoot":"../../../../src","sources":["components/shared/CopyButton.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,QAAQ,QAAQ,OAAO;AACpD,SAASC,gBAAgB,EAAEC,IAAI,EAAEC,UAAU,QAAQ,cAAc;AACjE,SAASC,MAAM,QAAQ,oBAAoB;AAC3C,SAASC,cAAc,QAAQ,4BAA4B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAW5D,OAAO,MAAMC,UAAqC,GAAGA,CAAC;EAAEC,IAAI;EAAEC,KAAK;EAAEC;AAAQ,CAAC,KAAK;EACjF,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAGb,QAAQ,CAA6B,IAAI,CAAC;EAE1E,MAAMc,UAAU,GAAGf,WAAW,CAAC,MAAM;IACnC,IAAI;MACF,MAAMgB,MAAM,GAAGV,cAAc,CAACI,IAAI,EAAE;QAAEC;MAAM,CAAC,CAAC;MAC9CG,WAAW,CAACE,MAAM,CAACC,MAAM,KAAK,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAClE,CAAC,CAAC,MAAM;MACNH,WAAW,CAAC,QAAQ,CAAC;IACvB;IACAI,UAAU,CAAC,MAAMJ,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;EAC3C,CAAC,EAAE,CAACJ,IAAI,EAAEC,KAAK,CAAC,CAAC;EAEjB,IAAI,CAACD,IAAI,EAAE,OAAO,IAAI;EAEtB,MAAMS,aAAa,GACjBN,QAAQ,KAAK,QAAQ,GAAG,QAAQ,GAChCA,QAAQ,KAAK,QAAQ,GAAG,QAAQ,GAChC,IAAI;EAEN,oBACEL,IAAA,CAACN,gBAAgB;IACfkB,KAAK,EAAE,CAACC,CAAC,CAACC,OAAO,EAAEV,OAAO,IAAIS,CAAC,CAACE,cAAc,CAAE;IAChDC,OAAO,EAAET,UAAW;IACpBU,aAAa,EAAE,GAAI;IAAAC,QAAA,eAEnBlB,IAAA,CAACL,IAAI;MAACiB,KAAK,EAAE,CAACC,CAAC,CAACM,WAAW,EAAEf,OAAO,IAAIS,CAAC,CAACO,kBAAkB,CAAE;MAAAF,QAAA,EAC3DP,aAAa,IAAI;IAAM,CACpB;EAAC,CACS,CAAC;AAEvB,CAAC;AAED,MAAME,CAAC,GAAGjB,UAAU,CAACyB,MAAM,CAAC;EAC1BP,OAAO,EAAE;IACPQ,eAAe,EAAEzB,MAAM,CAAC0B,UAAU;IAClCC,iBAAiB,EAAE,EAAE;IACrBC,eAAe,EAAE,CAAC;IAClBC,YAAY,EAAE,CAAC;IACfC,SAAS,EAAE;EACb,CAAC;EACDZ,cAAc,EAAE;IACdS,iBAAiB,EAAE,CAAC;IACpBC,eAAe,EAAE;EACnB,CAAC;EACDN,WAAW,EAAE;IACXS,QAAQ,EAAE,EAAE;IACZC,KAAK,EAAEhC,MAAM,CAACiC,aAAa;IAC3BC,UAAU,EAAE;EACd,CAAC;EACDX,kBAAkB,EAAE;IAClBQ,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { View, Text, ScrollView, StyleSheet } from 'react-native';
5
+ import { safeStringify } from '../../utils/safeStringify';
6
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
+ const MAX_DEPTH = 3;
8
+ const MAX_CHILDREN = 50;
9
+ export const JsonView = /*#__PURE__*/React.memo(({
10
+ data,
11
+ maxHeight
12
+ }) => {
13
+ return /*#__PURE__*/_jsx(ScrollView, {
14
+ style: [s.scroll, maxHeight != null && {
15
+ maxHeight
16
+ }],
17
+ nestedScrollEnabled: true,
18
+ bounces: false,
19
+ showsVerticalScrollIndicator: true,
20
+ children: /*#__PURE__*/_jsx(View, {
21
+ style: s.block,
22
+ children: /*#__PURE__*/_jsx(Node, {
23
+ value: data,
24
+ depth: 0,
25
+ isLast: true
26
+ })
27
+ })
28
+ });
29
+ });
30
+ const Node = ({
31
+ value,
32
+ depth,
33
+ isLast
34
+ }) => {
35
+ const comma = isLast ? '' : ',';
36
+ if (value === null) return /*#__PURE__*/_jsx(C, {
37
+ color: "#F38BA8",
38
+ children: `null${comma}`
39
+ });
40
+ if (value === undefined) return /*#__PURE__*/_jsx(C, {
41
+ color: "#F38BA8",
42
+ children: `undefined${comma}`
43
+ });
44
+ if (typeof value === 'boolean') return /*#__PURE__*/_jsx(C, {
45
+ color: "#89B4FA",
46
+ children: `${String(value)}${comma}`
47
+ });
48
+ if (typeof value === 'number') return /*#__PURE__*/_jsx(C, {
49
+ color: "#CBA6F7",
50
+ children: `${value}${comma}`
51
+ });
52
+ if (typeof value === 'string') {
53
+ const display = value.length > 500 ? value.slice(0, 500) + '...' : value;
54
+ return /*#__PURE__*/_jsx(C, {
55
+ color: "#A6E3A1",
56
+ selectable: true,
57
+ children: `"${display}"${comma}`
58
+ });
59
+ }
60
+ if (depth >= MAX_DEPTH) {
61
+ const collapsed = truncate(safeStringify(value), 200);
62
+ return /*#__PURE__*/_jsx(C, {
63
+ color: "#6C7086",
64
+ children: `${collapsed}${comma}`
65
+ });
66
+ }
67
+ const entries = Object.entries(value);
68
+ const isArray = Array.isArray(value);
69
+ const open = isArray ? '[' : '{';
70
+ const close = isArray ? ']' : '}';
71
+ if (entries.length === 0) return /*#__PURE__*/_jsx(C, {
72
+ color: "#6C7086",
73
+ children: `${open}${close}${comma}`
74
+ });
75
+ const limited = entries.slice(0, MAX_CHILDREN);
76
+ return /*#__PURE__*/_jsxs(View, {
77
+ style: depth > 0 ? s.indent : undefined,
78
+ children: [/*#__PURE__*/_jsx(C, {
79
+ color: "#6C7086",
80
+ children: open
81
+ }), limited.map(([key, val], i) => /*#__PURE__*/_jsxs(View, {
82
+ style: s.line,
83
+ children: [/*#__PURE__*/_jsxs(Text, {
84
+ style: s.row,
85
+ children: [!isArray && /*#__PURE__*/_jsxs(Text, {
86
+ style: s.key,
87
+ children: ["\"", key, "\""]
88
+ }), !isArray && /*#__PURE__*/_jsx(Text, {
89
+ style: s.colon,
90
+ children: ': '
91
+ })]
92
+ }), /*#__PURE__*/_jsx(Node, {
93
+ value: val,
94
+ depth: depth + 1,
95
+ isLast: i === limited.length - 1
96
+ })]
97
+ }, key)), entries.length > MAX_CHILDREN && /*#__PURE__*/_jsx(C, {
98
+ color: "#6C7086",
99
+ children: ` ... ${entries.length - MAX_CHILDREN} more`
100
+ }), /*#__PURE__*/_jsx(C, {
101
+ color: "#6C7086",
102
+ children: `${close}${comma}`
103
+ })]
104
+ });
105
+ };
106
+ const C = ({
107
+ color,
108
+ children,
109
+ selectable
110
+ }) => /*#__PURE__*/_jsx(Text, {
111
+ style: [s.node, {
112
+ color
113
+ }],
114
+ selectable: selectable,
115
+ children: children
116
+ });
117
+ function truncate(str, len) {
118
+ return str.length > len ? str.slice(0, len) + '...' : str;
119
+ }
120
+ const s = StyleSheet.create({
121
+ scroll: {
122
+ backgroundColor: '#1E1E2E',
123
+ borderRadius: 12,
124
+ padding: 12
125
+ },
126
+ block: {},
127
+ node: {
128
+ fontFamily: 'Courier',
129
+ fontSize: 12,
130
+ lineHeight: 18,
131
+ color: '#CDD6F4'
132
+ },
133
+ indent: {
134
+ paddingLeft: 16
135
+ },
136
+ line: {
137
+ flexDirection: 'row',
138
+ flexWrap: 'wrap'
139
+ },
140
+ row: {},
141
+ key: {
142
+ fontFamily: 'Courier',
143
+ fontSize: 12,
144
+ color: '#89DCEB'
145
+ },
146
+ colon: {
147
+ fontFamily: 'Courier',
148
+ fontSize: 12,
149
+ color: '#CDD6F4'
150
+ }
151
+ });
152
+ //# sourceMappingURL=JsonView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","Text","ScrollView","StyleSheet","safeStringify","jsx","_jsx","jsxs","_jsxs","MAX_DEPTH","MAX_CHILDREN","JsonView","memo","data","maxHeight","style","s","scroll","nestedScrollEnabled","bounces","showsVerticalScrollIndicator","children","block","Node","value","depth","isLast","comma","C","color","undefined","String","display","length","slice","selectable","collapsed","truncate","entries","Object","isArray","Array","open","close","limited","indent","map","key","val","i","line","row","colon","node","str","len","create","backgroundColor","borderRadius","padding","fontFamily","fontSize","lineHeight","paddingLeft","flexDirection","flexWrap"],"sourceRoot":"../../../../src","sources":["components/shared/JsonView.tsx"],"mappings":"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","ignoreList":[]}
@@ -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":[]}
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+
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
+ },
23
+ get features() {
24
+ return [..._features];
25
+ },
26
+ get enabled() {
27
+ return _enabled;
28
+ },
29
+ get panelVisible() {
30
+ return _panelVisible;
31
+ },
32
+ setEnabled(enabled) {
33
+ if (_enabled === enabled) return;
34
+ _enabled = enabled;
35
+ if (!enabled) {
36
+ _panelVisible = false;
37
+ _features.forEach(cleanupFeature);
38
+ _features = [];
39
+ }
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
+ },
56
+ addFeature(feature) {
57
+ if (!_enabled || !feature || typeof feature.name !== 'string') {
58
+ return;
59
+ }
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;
65
+ }
66
+ cleanupFeature(existing);
67
+ setupFeature(feature);
68
+ _features = [..._features.slice(0, existingIndex), feature, ..._features.slice(existingIndex + 1)];
69
+ notify();
70
+ return;
71
+ }
72
+ setupFeature(feature);
73
+ _features = [..._features, feature];
74
+ notify();
75
+ },
76
+ removeFeature(name) {
77
+ if (!_enabled) {
78
+ return;
79
+ }
80
+ const feature = _features.find(f => f.name === name);
81
+ if (!feature) {
82
+ return;
83
+ }
84
+ cleanupFeature(feature);
85
+ _features = _features.filter(f => f.name !== name);
86
+ if (_features.length === 0) {
87
+ _panelVisible = false;
88
+ }
89
+ notify();
90
+ },
91
+ reset() {
92
+ _panelVisible = false;
93
+ _features.forEach(cleanupFeature);
94
+ _features = [];
95
+ notify();
96
+ },
97
+ hasFeatures() {
98
+ return _features.length > 0;
99
+ },
100
+ showPanel() {
101
+ if (!_enabled) return;
102
+ _panelVisible = true;
103
+ notify();
104
+ },
105
+ hidePanel() {
106
+ _panelVisible = false;
107
+ notify();
108
+ },
109
+ clearAll() {
110
+ _features.forEach(f => f.clear?.());
111
+ notify();
112
+ },
113
+ destroy() {
114
+ this.reset();
115
+ listeners.clear();
116
+ }
117
+ };
118
+ //# sourceMappingURL=DebugToolkit.js.map
@@ -0,0 +1 @@
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":[]}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ import React, { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';
4
+ import { DebugToolkit } from './DebugToolkit';
5
+ import { FloatPanelView } from '../components/FloatPanelView';
6
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
+ const ToolkitContext = /*#__PURE__*/createContext(null);
8
+ export function DebugToolkitProvider({
9
+ children
10
+ }) {
11
+ const [state, setState] = useState(() => ({
12
+ panelVisible: DebugToolkit.panelVisible,
13
+ features: DebugToolkit.features
14
+ }));
15
+ useEffect(() => {
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(() => {
23
+ setState({
24
+ panelVisible: DebugToolkit.panelVisible,
25
+ features: DebugToolkit.features
26
+ });
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();
38
+ }, []);
39
+ const contextValue = useMemo(() => ({
40
+ features: state.features,
41
+ showPanel,
42
+ hidePanel,
43
+ clearAll
44
+ }), [state.features, showPanel, hidePanel, clearAll]);
45
+ return /*#__PURE__*/_jsxs(ToolkitContext.Provider, {
46
+ value: contextValue,
47
+ children: [children, state.panelVisible && /*#__PURE__*/_jsx(FloatPanelView, {
48
+ features: state.features,
49
+ onClearAll: () => DebugToolkit.clearAll()
50
+ })]
51
+ });
52
+ }
53
+ export function useDebugToolkit() {
54
+ const context = useContext(ToolkitContext);
55
+ if (!context) {
56
+ throw new Error('useDebugToolkit must be used within a <DebugToolkitProvider>. ' + 'Wrap your app with <DebugToolkitProvider>.');
57
+ }
58
+ return context;
59
+ }
60
+ //# sourceMappingURL=DebugToolkitProvider.js.map
@@ -0,0 +1 @@
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":[]}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
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
+ */
8
+ export const createClipboardFeature = () => ({
9
+ name: 'clipboard',
10
+ label: 'Clipboard',
11
+ renderContent: ClipboardTab,
12
+ setup() {},
13
+ getData: () => [],
14
+ cleanup() {}
15
+ });
16
+ //# sourceMappingURL=ClipboardFeature.js.map
@@ -0,0 +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;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":[]}