@ledgerhq/device-management-kit-devtools-ui 1.1.1

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 (373) hide show
  1. package/LICENSE.MD +202 -0
  2. package/lib/build/index.d.ts +2 -0
  3. package/lib/build/index.d.ts.map +1 -0
  4. package/lib/build/index.js +2 -0
  5. package/lib/build/index.js.map +1 -0
  6. package/lib/build/src/Dashboard.d.ts +5 -0
  7. package/lib/build/src/Dashboard.d.ts.map +1 -0
  8. package/lib/build/src/Dashboard.js +50 -0
  9. package/lib/build/src/Dashboard.js.map +1 -0
  10. package/lib/build/src/ErrorBoundary.d.ts +15 -0
  11. package/lib/build/src/ErrorBoundary.d.ts.map +1 -0
  12. package/lib/build/src/ErrorBoundary.js +23 -0
  13. package/lib/build/src/ErrorBoundary.js.map +1 -0
  14. package/lib/build/src/PluginEvents.d.ts +9 -0
  15. package/lib/build/src/PluginEvents.d.ts.map +1 -0
  16. package/lib/build/src/PluginEvents.js +2 -0
  17. package/lib/build/src/PluginEvents.js.map +1 -0
  18. package/lib/build/src/components/DashboardFooter.d.ts +8 -0
  19. package/lib/build/src/components/DashboardFooter.d.ts.map +1 -0
  20. package/lib/build/src/components/DashboardFooter.js +31 -0
  21. package/lib/build/src/components/DashboardFooter.js.map +1 -0
  22. package/lib/build/src/components/DashboardNavigationBar.d.ts +16 -0
  23. package/lib/build/src/components/DashboardNavigationBar.d.ts.map +1 -0
  24. package/lib/build/src/components/DashboardNavigationBar.js +85 -0
  25. package/lib/build/src/components/DashboardNavigationBar.js.map +1 -0
  26. package/lib/build/src/components/DebugDrawer.d.ts +18 -0
  27. package/lib/build/src/components/DebugDrawer.d.ts.map +1 -0
  28. package/lib/build/src/components/DebugDrawer.js +69 -0
  29. package/lib/build/src/components/DebugDrawer.js.map +1 -0
  30. package/lib/build/src/components/SplitView.d.ts +12 -0
  31. package/lib/build/src/components/SplitView.d.ts.map +1 -0
  32. package/lib/build/src/components/SplitView.js +50 -0
  33. package/lib/build/src/components/SplitView.js.map +1 -0
  34. package/lib/build/src/hooks/commandDispatcher.d.ts +28 -0
  35. package/lib/build/src/hooks/commandDispatcher.d.ts.map +1 -0
  36. package/lib/build/src/hooks/commandDispatcher.js +38 -0
  37. package/lib/build/src/hooks/commandDispatcher.js.map +1 -0
  38. package/lib/build/src/hooks/connectorMessageHandlers.d.ts +34 -0
  39. package/lib/build/src/hooks/connectorMessageHandlers.d.ts.map +1 -0
  40. package/lib/build/src/hooks/connectorMessageHandlers.js +85 -0
  41. package/lib/build/src/hooks/connectorMessageHandlers.js.map +1 -0
  42. package/lib/build/src/hooks/useConnectorMessages.d.ts +60 -0
  43. package/lib/build/src/hooks/useConnectorMessages.d.ts.map +1 -0
  44. package/lib/build/src/hooks/useConnectorMessages.js +138 -0
  45. package/lib/build/src/hooks/useConnectorMessages.js.map +1 -0
  46. package/lib/build/src/screens/debugDevTools/index.d.ts +17 -0
  47. package/lib/build/src/screens/debugDevTools/index.d.ts.map +1 -0
  48. package/lib/build/src/screens/debugDevTools/index.js +48 -0
  49. package/lib/build/src/screens/debugDevTools/index.js.map +1 -0
  50. package/lib/build/src/screens/inspector/ApduSender.d.ts +10 -0
  51. package/lib/build/src/screens/inspector/ApduSender.d.ts.map +1 -0
  52. package/lib/build/src/screens/inspector/ApduSender.js +118 -0
  53. package/lib/build/src/screens/inspector/ApduSender.js.map +1 -0
  54. package/lib/build/src/screens/inspector/DeviceCard.d.ts +13 -0
  55. package/lib/build/src/screens/inspector/DeviceCard.d.ts.map +1 -0
  56. package/lib/build/src/screens/inspector/DeviceCard.js +52 -0
  57. package/lib/build/src/screens/inspector/DeviceCard.js.map +1 -0
  58. package/lib/build/src/screens/inspector/DeviceDiscoverySection.d.ts +25 -0
  59. package/lib/build/src/screens/inspector/DeviceDiscoverySection.d.ts.map +1 -0
  60. package/lib/build/src/screens/inspector/DeviceDiscoverySection.js +8 -0
  61. package/lib/build/src/screens/inspector/DeviceDiscoverySection.js.map +1 -0
  62. package/lib/build/src/screens/inspector/DiscoveredDeviceCard.d.ts +12 -0
  63. package/lib/build/src/screens/inspector/DiscoveredDeviceCard.d.ts.map +1 -0
  64. package/lib/build/src/screens/inspector/DiscoveredDeviceCard.js +89 -0
  65. package/lib/build/src/screens/inspector/DiscoveredDeviceCard.js.map +1 -0
  66. package/lib/build/src/screens/inspector/MyLedgerProviderControl.d.ts +9 -0
  67. package/lib/build/src/screens/inspector/MyLedgerProviderControl.d.ts.map +1 -0
  68. package/lib/build/src/screens/inspector/MyLedgerProviderControl.js +78 -0
  69. package/lib/build/src/screens/inspector/MyLedgerProviderControl.js.map +1 -0
  70. package/lib/build/src/screens/inspector/SessionsSection.d.ts +20 -0
  71. package/lib/build/src/screens/inspector/SessionsSection.d.ts.map +1 -0
  72. package/lib/build/src/screens/inspector/SessionsSection.js +37 -0
  73. package/lib/build/src/screens/inspector/SessionsSection.js.map +1 -0
  74. package/lib/build/src/screens/inspector/index.d.ts +34 -0
  75. package/lib/build/src/screens/inspector/index.d.ts.map +1 -0
  76. package/lib/build/src/screens/inspector/index.js +26 -0
  77. package/lib/build/src/screens/inspector/index.js.map +1 -0
  78. package/lib/build/src/screens/inspector/styles.d.ts +41 -0
  79. package/lib/build/src/screens/inspector/styles.d.ts.map +1 -0
  80. package/lib/build/src/screens/inspector/styles.js +266 -0
  81. package/lib/build/src/screens/inspector/styles.js.map +1 -0
  82. package/lib/build/src/screens/logger/FilterInput.d.ts +8 -0
  83. package/lib/build/src/screens/logger/FilterInput.d.ts.map +1 -0
  84. package/lib/build/src/screens/logger/FilterInput.js +179 -0
  85. package/lib/build/src/screens/logger/FilterInput.js.map +1 -0
  86. package/lib/build/src/screens/logger/LoggerOptions.d.ts +18 -0
  87. package/lib/build/src/screens/logger/LoggerOptions.d.ts.map +1 -0
  88. package/lib/build/src/screens/logger/LoggerOptions.js +75 -0
  89. package/lib/build/src/screens/logger/LoggerOptions.js.map +1 -0
  90. package/lib/build/src/screens/logger/LoggerToolbar.d.ts +19 -0
  91. package/lib/build/src/screens/logger/LoggerToolbar.d.ts.map +1 -0
  92. package/lib/build/src/screens/logger/LoggerToolbar.js +16 -0
  93. package/lib/build/src/screens/logger/LoggerToolbar.js.map +1 -0
  94. package/lib/build/src/screens/logger/SearchInput.d.ts +15 -0
  95. package/lib/build/src/screens/logger/SearchInput.d.ts.map +1 -0
  96. package/lib/build/src/screens/logger/SearchInput.js +93 -0
  97. package/lib/build/src/screens/logger/SearchInput.js.map +1 -0
  98. package/lib/build/src/screens/logger/filterUtils.d.ts +43 -0
  99. package/lib/build/src/screens/logger/filterUtils.d.ts.map +1 -0
  100. package/lib/build/src/screens/logger/filterUtils.js +125 -0
  101. package/lib/build/src/screens/logger/filterUtils.js.map +1 -0
  102. package/lib/build/src/screens/logger/filterUtils.test.d.ts +2 -0
  103. package/lib/build/src/screens/logger/filterUtils.test.d.ts.map +1 -0
  104. package/lib/build/src/screens/logger/filterUtils.test.js +300 -0
  105. package/lib/build/src/screens/logger/filterUtils.test.js.map +1 -0
  106. package/lib/build/src/screens/logger/index.d.ts +10 -0
  107. package/lib/build/src/screens/logger/index.d.ts.map +1 -0
  108. package/lib/build/src/screens/logger/index.js +86 -0
  109. package/lib/build/src/screens/logger/index.js.map +1 -0
  110. package/lib/build/src/screens/logger/inputStyles.d.ts +18 -0
  111. package/lib/build/src/screens/logger/inputStyles.d.ts.map +1 -0
  112. package/lib/build/src/screens/logger/inputStyles.js +46 -0
  113. package/lib/build/src/screens/logger/inputStyles.js.map +1 -0
  114. package/lib/build/src/screens/logger/logsTable/LogTableCells.d.ts +13 -0
  115. package/lib/build/src/screens/logger/logsTable/LogTableCells.d.ts.map +1 -0
  116. package/lib/build/src/screens/logger/logsTable/LogTableCells.js +61 -0
  117. package/lib/build/src/screens/logger/logsTable/LogTableCells.js.map +1 -0
  118. package/lib/build/src/screens/logger/logsTable/ScrollDownButton.d.ts +8 -0
  119. package/lib/build/src/screens/logger/logsTable/ScrollDownButton.d.ts.map +1 -0
  120. package/lib/build/src/screens/logger/logsTable/ScrollDownButton.js +20 -0
  121. package/lib/build/src/screens/logger/logsTable/ScrollDownButton.js.map +1 -0
  122. package/lib/build/src/screens/logger/logsTable/TableBody.d.ts +13 -0
  123. package/lib/build/src/screens/logger/logsTable/TableBody.d.ts.map +1 -0
  124. package/lib/build/src/screens/logger/logsTable/TableBody.js +58 -0
  125. package/lib/build/src/screens/logger/logsTable/TableBody.js.map +1 -0
  126. package/lib/build/src/screens/logger/logsTable/TableColumns.d.ts +3 -0
  127. package/lib/build/src/screens/logger/logsTable/TableColumns.d.ts.map +1 -0
  128. package/lib/build/src/screens/logger/logsTable/TableColumns.js +44 -0
  129. package/lib/build/src/screens/logger/logsTable/TableColumns.js.map +1 -0
  130. package/lib/build/src/screens/logger/logsTable/TableHeader.d.ts +9 -0
  131. package/lib/build/src/screens/logger/logsTable/TableHeader.d.ts.map +1 -0
  132. package/lib/build/src/screens/logger/logsTable/TableHeader.js +53 -0
  133. package/lib/build/src/screens/logger/logsTable/TableHeader.js.map +1 -0
  134. package/lib/build/src/screens/logger/logsTable/constants.d.ts +21 -0
  135. package/lib/build/src/screens/logger/logsTable/constants.d.ts.map +1 -0
  136. package/lib/build/src/screens/logger/logsTable/constants.js +21 -0
  137. package/lib/build/src/screens/logger/logsTable/constants.js.map +1 -0
  138. package/lib/build/src/screens/logger/logsTable/index.d.ts +11 -0
  139. package/lib/build/src/screens/logger/logsTable/index.d.ts.map +1 -0
  140. package/lib/build/src/screens/logger/logsTable/index.js +116 -0
  141. package/lib/build/src/screens/logger/logsTable/index.js.map +1 -0
  142. package/lib/build/src/screens/logger/logsTable/useColumnSizeVars.d.ts +4 -0
  143. package/lib/build/src/screens/logger/logsTable/useColumnSizeVars.d.ts.map +1 -0
  144. package/lib/build/src/screens/logger/logsTable/useColumnSizeVars.js +17 -0
  145. package/lib/build/src/screens/logger/logsTable/useColumnSizeVars.js.map +1 -0
  146. package/lib/build/src/screens/logger/logsTable/useResizeObserver.d.ts +2 -0
  147. package/lib/build/src/screens/logger/logsTable/useResizeObserver.d.ts.map +1 -0
  148. package/lib/build/src/screens/logger/logsTable/useResizeObserver.js +28 -0
  149. package/lib/build/src/screens/logger/logsTable/useResizeObserver.js.map +1 -0
  150. package/lib/build/src/screens/logger/logsTable/useScrollLogic.d.ts +12 -0
  151. package/lib/build/src/screens/logger/logsTable/useScrollLogic.d.ts.map +1 -0
  152. package/lib/build/src/screens/logger/logsTable/useScrollLogic.js +86 -0
  153. package/lib/build/src/screens/logger/logsTable/useScrollLogic.js.map +1 -0
  154. package/lib/build/src/screens/logger/mapConnectorMessageToLogData.d.ts +6 -0
  155. package/lib/build/src/screens/logger/mapConnectorMessageToLogData.d.ts.map +1 -0
  156. package/lib/build/src/screens/logger/mapConnectorMessageToLogData.js +17 -0
  157. package/lib/build/src/screens/logger/mapConnectorMessageToLogData.js.map +1 -0
  158. package/lib/build/src/screens/logger/types.d.ts +6 -0
  159. package/lib/build/src/screens/logger/types.d.ts.map +1 -0
  160. package/lib/build/src/screens/logger/types.js +2 -0
  161. package/lib/build/src/screens/logger/types.js.map +1 -0
  162. package/lib/build/src/screens/logger/useColumnSizeVars.d.ts +4 -0
  163. package/lib/build/src/screens/logger/useColumnSizeVars.d.ts.map +1 -0
  164. package/lib/build/src/screens/logger/useColumnSizeVars.js +17 -0
  165. package/lib/build/src/screens/logger/useColumnSizeVars.js.map +1 -0
  166. package/lib/build/src/screens/logger/useLogsDataAndOptions.d.ts +12 -0
  167. package/lib/build/src/screens/logger/useLogsDataAndOptions.d.ts.map +1 -0
  168. package/lib/build/src/screens/logger/useLogsDataAndOptions.js +36 -0
  169. package/lib/build/src/screens/logger/useLogsDataAndOptions.js.map +1 -0
  170. package/lib/build/src/screens/logger/useRecentFilters.d.ts +18 -0
  171. package/lib/build/src/screens/logger/useRecentFilters.d.ts.map +1 -0
  172. package/lib/build/src/screens/logger/useRecentFilters.js +96 -0
  173. package/lib/build/src/screens/logger/useRecentFilters.js.map +1 -0
  174. package/lib/build/src/screens/logger/useSearchState.d.ts +24 -0
  175. package/lib/build/src/screens/logger/useSearchState.d.ts.map +1 -0
  176. package/lib/build/src/screens/logger/useSearchState.js +74 -0
  177. package/lib/build/src/screens/logger/useSearchState.js.map +1 -0
  178. package/lib/build/src/shared/NotConnectedMessage.d.ts +9 -0
  179. package/lib/build/src/shared/NotConnectedMessage.d.ts.map +1 -0
  180. package/lib/build/src/shared/NotConnectedMessage.js +30 -0
  181. package/lib/build/src/shared/NotConnectedMessage.js.map +1 -0
  182. package/lib/build/src/shared/PluginEvents.d.ts +9 -0
  183. package/lib/build/src/shared/PluginEvents.d.ts.map +1 -0
  184. package/lib/build/src/shared/PluginEvents.js +2 -0
  185. package/lib/build/src/shared/PluginEvents.js.map +1 -0
  186. package/lib/build/tsconfig.build.tsbuildinfo +1 -0
  187. package/lib/cjs/index.js +2 -0
  188. package/lib/cjs/index.js.map +7 -0
  189. package/lib/cjs/package.json +73 -0
  190. package/lib/cjs/src/Dashboard.js +12 -0
  191. package/lib/cjs/src/Dashboard.js.map +7 -0
  192. package/lib/cjs/src/ErrorBoundary.js +2 -0
  193. package/lib/cjs/src/ErrorBoundary.js.map +7 -0
  194. package/lib/cjs/src/PluginEvents.js +2 -0
  195. package/lib/cjs/src/PluginEvents.js.map +7 -0
  196. package/lib/cjs/src/components/DashboardFooter.js +25 -0
  197. package/lib/cjs/src/components/DashboardFooter.js.map +7 -0
  198. package/lib/cjs/src/components/DashboardNavigationBar.js +64 -0
  199. package/lib/cjs/src/components/DashboardNavigationBar.js.map +7 -0
  200. package/lib/cjs/src/components/DebugDrawer.js +58 -0
  201. package/lib/cjs/src/components/DebugDrawer.js.map +7 -0
  202. package/lib/cjs/src/components/SplitView.js +37 -0
  203. package/lib/cjs/src/components/SplitView.js.map +7 -0
  204. package/lib/cjs/src/hooks/commandDispatcher.js +2 -0
  205. package/lib/cjs/src/hooks/commandDispatcher.js.map +7 -0
  206. package/lib/cjs/src/hooks/connectorMessageHandlers.js +2 -0
  207. package/lib/cjs/src/hooks/connectorMessageHandlers.js.map +7 -0
  208. package/lib/cjs/src/hooks/useConnectorMessages.js +2 -0
  209. package/lib/cjs/src/hooks/useConnectorMessages.js.map +7 -0
  210. package/lib/cjs/src/screens/debugDevTools/index.js +2 -0
  211. package/lib/cjs/src/screens/debugDevTools/index.js.map +7 -0
  212. package/lib/cjs/src/screens/inspector/ApduSender.js +79 -0
  213. package/lib/cjs/src/screens/inspector/ApduSender.js.map +7 -0
  214. package/lib/cjs/src/screens/inspector/DeviceCard.js +2 -0
  215. package/lib/cjs/src/screens/inspector/DeviceCard.js.map +7 -0
  216. package/lib/cjs/src/screens/inspector/DeviceDiscoverySection.js +2 -0
  217. package/lib/cjs/src/screens/inspector/DeviceDiscoverySection.js.map +7 -0
  218. package/lib/cjs/src/screens/inspector/DiscoveredDeviceCard.js +57 -0
  219. package/lib/cjs/src/screens/inspector/DiscoveredDeviceCard.js.map +7 -0
  220. package/lib/cjs/src/screens/inspector/MyLedgerProviderControl.js +40 -0
  221. package/lib/cjs/src/screens/inspector/MyLedgerProviderControl.js.map +7 -0
  222. package/lib/cjs/src/screens/inspector/SessionsSection.js +2 -0
  223. package/lib/cjs/src/screens/inspector/SessionsSection.js.map +7 -0
  224. package/lib/cjs/src/screens/inspector/index.js +9 -0
  225. package/lib/cjs/src/screens/inspector/index.js.map +7 -0
  226. package/lib/cjs/src/screens/inspector/styles.js +179 -0
  227. package/lib/cjs/src/screens/inspector/styles.js.map +7 -0
  228. package/lib/cjs/src/screens/logger/FilterInput.js +85 -0
  229. package/lib/cjs/src/screens/logger/FilterInput.js.map +7 -0
  230. package/lib/cjs/src/screens/logger/LoggerOptions.js +6 -0
  231. package/lib/cjs/src/screens/logger/LoggerOptions.js.map +7 -0
  232. package/lib/cjs/src/screens/logger/LoggerToolbar.js +9 -0
  233. package/lib/cjs/src/screens/logger/LoggerToolbar.js.map +7 -0
  234. package/lib/cjs/src/screens/logger/SearchInput.js +59 -0
  235. package/lib/cjs/src/screens/logger/SearchInput.js.map +7 -0
  236. package/lib/cjs/src/screens/logger/filterUtils.js +2 -0
  237. package/lib/cjs/src/screens/logger/filterUtils.js.map +7 -0
  238. package/lib/cjs/src/screens/logger/filterUtils.test.js +2 -0
  239. package/lib/cjs/src/screens/logger/filterUtils.test.js.map +7 -0
  240. package/lib/cjs/src/screens/logger/index.js +6 -0
  241. package/lib/cjs/src/screens/logger/index.js.map +7 -0
  242. package/lib/cjs/src/screens/logger/inputStyles.js +31 -0
  243. package/lib/cjs/src/screens/logger/inputStyles.js.map +7 -0
  244. package/lib/cjs/src/screens/logger/logsTable/LogTableCells.js +8 -0
  245. package/lib/cjs/src/screens/logger/logsTable/LogTableCells.js.map +7 -0
  246. package/lib/cjs/src/screens/logger/logsTable/ScrollDownButton.js +15 -0
  247. package/lib/cjs/src/screens/logger/logsTable/ScrollDownButton.js.map +7 -0
  248. package/lib/cjs/src/screens/logger/logsTable/TableBody.js +24 -0
  249. package/lib/cjs/src/screens/logger/logsTable/TableBody.js.map +7 -0
  250. package/lib/cjs/src/screens/logger/logsTable/TableColumns.js +2 -0
  251. package/lib/cjs/src/screens/logger/logsTable/TableColumns.js.map +7 -0
  252. package/lib/cjs/src/screens/logger/logsTable/TableHeader.js +33 -0
  253. package/lib/cjs/src/screens/logger/logsTable/TableHeader.js.map +7 -0
  254. package/lib/cjs/src/screens/logger/logsTable/constants.js +2 -0
  255. package/lib/cjs/src/screens/logger/logsTable/constants.js.map +7 -0
  256. package/lib/cjs/src/screens/logger/logsTable/index.js +26 -0
  257. package/lib/cjs/src/screens/logger/logsTable/index.js.map +7 -0
  258. package/lib/cjs/src/screens/logger/logsTable/useColumnSizeVars.js +2 -0
  259. package/lib/cjs/src/screens/logger/logsTable/useColumnSizeVars.js.map +7 -0
  260. package/lib/cjs/src/screens/logger/logsTable/useResizeObserver.js +2 -0
  261. package/lib/cjs/src/screens/logger/logsTable/useResizeObserver.js.map +7 -0
  262. package/lib/cjs/src/screens/logger/logsTable/useScrollLogic.js +2 -0
  263. package/lib/cjs/src/screens/logger/logsTable/useScrollLogic.js.map +7 -0
  264. package/lib/cjs/src/screens/logger/mapConnectorMessageToLogData.js +2 -0
  265. package/lib/cjs/src/screens/logger/mapConnectorMessageToLogData.js.map +7 -0
  266. package/lib/cjs/src/screens/logger/types.js +2 -0
  267. package/lib/cjs/src/screens/logger/types.js.map +7 -0
  268. package/lib/cjs/src/screens/logger/useColumnSizeVars.js +2 -0
  269. package/lib/cjs/src/screens/logger/useColumnSizeVars.js.map +7 -0
  270. package/lib/cjs/src/screens/logger/useLogsDataAndOptions.js +2 -0
  271. package/lib/cjs/src/screens/logger/useLogsDataAndOptions.js.map +7 -0
  272. package/lib/cjs/src/screens/logger/useRecentFilters.js +2 -0
  273. package/lib/cjs/src/screens/logger/useRecentFilters.js.map +7 -0
  274. package/lib/cjs/src/screens/logger/useSearchState.js +2 -0
  275. package/lib/cjs/src/screens/logger/useSearchState.js.map +7 -0
  276. package/lib/cjs/src/shared/NotConnectedMessage.js +24 -0
  277. package/lib/cjs/src/shared/NotConnectedMessage.js.map +7 -0
  278. package/lib/cjs/src/shared/PluginEvents.js +2 -0
  279. package/lib/cjs/src/shared/PluginEvents.js.map +7 -0
  280. package/lib/esm/index.js +2 -0
  281. package/lib/esm/index.js.map +7 -0
  282. package/lib/esm/package.json +73 -0
  283. package/lib/esm/src/Dashboard.js +12 -0
  284. package/lib/esm/src/Dashboard.js.map +7 -0
  285. package/lib/esm/src/ErrorBoundary.js +2 -0
  286. package/lib/esm/src/ErrorBoundary.js.map +7 -0
  287. package/lib/esm/src/PluginEvents.js +1 -0
  288. package/lib/esm/src/PluginEvents.js.map +7 -0
  289. package/lib/esm/src/components/DashboardFooter.js +25 -0
  290. package/lib/esm/src/components/DashboardFooter.js.map +7 -0
  291. package/lib/esm/src/components/DashboardNavigationBar.js +64 -0
  292. package/lib/esm/src/components/DashboardNavigationBar.js.map +7 -0
  293. package/lib/esm/src/components/DebugDrawer.js +58 -0
  294. package/lib/esm/src/components/DebugDrawer.js.map +7 -0
  295. package/lib/esm/src/components/SplitView.js +37 -0
  296. package/lib/esm/src/components/SplitView.js.map +7 -0
  297. package/lib/esm/src/hooks/commandDispatcher.js +2 -0
  298. package/lib/esm/src/hooks/commandDispatcher.js.map +7 -0
  299. package/lib/esm/src/hooks/connectorMessageHandlers.js +2 -0
  300. package/lib/esm/src/hooks/connectorMessageHandlers.js.map +7 -0
  301. package/lib/esm/src/hooks/useConnectorMessages.js +2 -0
  302. package/lib/esm/src/hooks/useConnectorMessages.js.map +7 -0
  303. package/lib/esm/src/screens/debugDevTools/index.js +2 -0
  304. package/lib/esm/src/screens/debugDevTools/index.js.map +7 -0
  305. package/lib/esm/src/screens/inspector/ApduSender.js +79 -0
  306. package/lib/esm/src/screens/inspector/ApduSender.js.map +7 -0
  307. package/lib/esm/src/screens/inspector/DeviceCard.js +2 -0
  308. package/lib/esm/src/screens/inspector/DeviceCard.js.map +7 -0
  309. package/lib/esm/src/screens/inspector/DeviceDiscoverySection.js +2 -0
  310. package/lib/esm/src/screens/inspector/DeviceDiscoverySection.js.map +7 -0
  311. package/lib/esm/src/screens/inspector/DiscoveredDeviceCard.js +57 -0
  312. package/lib/esm/src/screens/inspector/DiscoveredDeviceCard.js.map +7 -0
  313. package/lib/esm/src/screens/inspector/MyLedgerProviderControl.js +40 -0
  314. package/lib/esm/src/screens/inspector/MyLedgerProviderControl.js.map +7 -0
  315. package/lib/esm/src/screens/inspector/SessionsSection.js +2 -0
  316. package/lib/esm/src/screens/inspector/SessionsSection.js.map +7 -0
  317. package/lib/esm/src/screens/inspector/index.js +9 -0
  318. package/lib/esm/src/screens/inspector/index.js.map +7 -0
  319. package/lib/esm/src/screens/inspector/styles.js +179 -0
  320. package/lib/esm/src/screens/inspector/styles.js.map +7 -0
  321. package/lib/esm/src/screens/logger/FilterInput.js +85 -0
  322. package/lib/esm/src/screens/logger/FilterInput.js.map +7 -0
  323. package/lib/esm/src/screens/logger/LoggerOptions.js +6 -0
  324. package/lib/esm/src/screens/logger/LoggerOptions.js.map +7 -0
  325. package/lib/esm/src/screens/logger/LoggerToolbar.js +9 -0
  326. package/lib/esm/src/screens/logger/LoggerToolbar.js.map +7 -0
  327. package/lib/esm/src/screens/logger/SearchInput.js +59 -0
  328. package/lib/esm/src/screens/logger/SearchInput.js.map +7 -0
  329. package/lib/esm/src/screens/logger/filterUtils.js +2 -0
  330. package/lib/esm/src/screens/logger/filterUtils.js.map +7 -0
  331. package/lib/esm/src/screens/logger/filterUtils.test.js +2 -0
  332. package/lib/esm/src/screens/logger/filterUtils.test.js.map +7 -0
  333. package/lib/esm/src/screens/logger/index.js +6 -0
  334. package/lib/esm/src/screens/logger/index.js.map +7 -0
  335. package/lib/esm/src/screens/logger/inputStyles.js +31 -0
  336. package/lib/esm/src/screens/logger/inputStyles.js.map +7 -0
  337. package/lib/esm/src/screens/logger/logsTable/LogTableCells.js +8 -0
  338. package/lib/esm/src/screens/logger/logsTable/LogTableCells.js.map +7 -0
  339. package/lib/esm/src/screens/logger/logsTable/ScrollDownButton.js +15 -0
  340. package/lib/esm/src/screens/logger/logsTable/ScrollDownButton.js.map +7 -0
  341. package/lib/esm/src/screens/logger/logsTable/TableBody.js +24 -0
  342. package/lib/esm/src/screens/logger/logsTable/TableBody.js.map +7 -0
  343. package/lib/esm/src/screens/logger/logsTable/TableColumns.js +2 -0
  344. package/lib/esm/src/screens/logger/logsTable/TableColumns.js.map +7 -0
  345. package/lib/esm/src/screens/logger/logsTable/TableHeader.js +33 -0
  346. package/lib/esm/src/screens/logger/logsTable/TableHeader.js.map +7 -0
  347. package/lib/esm/src/screens/logger/logsTable/constants.js +2 -0
  348. package/lib/esm/src/screens/logger/logsTable/constants.js.map +7 -0
  349. package/lib/esm/src/screens/logger/logsTable/index.js +26 -0
  350. package/lib/esm/src/screens/logger/logsTable/index.js.map +7 -0
  351. package/lib/esm/src/screens/logger/logsTable/useColumnSizeVars.js +2 -0
  352. package/lib/esm/src/screens/logger/logsTable/useColumnSizeVars.js.map +7 -0
  353. package/lib/esm/src/screens/logger/logsTable/useResizeObserver.js +2 -0
  354. package/lib/esm/src/screens/logger/logsTable/useResizeObserver.js.map +7 -0
  355. package/lib/esm/src/screens/logger/logsTable/useScrollLogic.js +2 -0
  356. package/lib/esm/src/screens/logger/logsTable/useScrollLogic.js.map +7 -0
  357. package/lib/esm/src/screens/logger/mapConnectorMessageToLogData.js +2 -0
  358. package/lib/esm/src/screens/logger/mapConnectorMessageToLogData.js.map +7 -0
  359. package/lib/esm/src/screens/logger/types.js +1 -0
  360. package/lib/esm/src/screens/logger/types.js.map +7 -0
  361. package/lib/esm/src/screens/logger/useColumnSizeVars.js +2 -0
  362. package/lib/esm/src/screens/logger/useColumnSizeVars.js.map +7 -0
  363. package/lib/esm/src/screens/logger/useLogsDataAndOptions.js +2 -0
  364. package/lib/esm/src/screens/logger/useLogsDataAndOptions.js.map +7 -0
  365. package/lib/esm/src/screens/logger/useRecentFilters.js +2 -0
  366. package/lib/esm/src/screens/logger/useRecentFilters.js.map +7 -0
  367. package/lib/esm/src/screens/logger/useSearchState.js +2 -0
  368. package/lib/esm/src/screens/logger/useSearchState.js.map +7 -0
  369. package/lib/esm/src/shared/NotConnectedMessage.js +24 -0
  370. package/lib/esm/src/shared/NotConnectedMessage.js.map +7 -0
  371. package/lib/esm/src/shared/PluginEvents.js +1 -0
  372. package/lib/esm/src/shared/PluginEvents.js.map +7 -0
  373. package/package.json +73 -0
@@ -0,0 +1,116 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useLayoutEffect, useMemo } from "react";
3
+ import { getCoreRowModel, getSortedRowModel, useReactTable, } from "@tanstack/react-table";
4
+ import { useVirtualizer } from "@tanstack/react-virtual";
5
+ import styled from "styled-components";
6
+ import { TABLE_CONFIG } from "./constants";
7
+ import { ScrollDownButton } from "./ScrollDownButton";
8
+ import { TableBody } from "./TableBody";
9
+ import { createColumns } from "./TableColumns";
10
+ import { TableHeader } from "./TableHeader";
11
+ import { useScrollLogic } from "./useScrollLogic";
12
+ const ScrollContainer = styled.div `
13
+ height: ${({ height }) => height}px;
14
+ overflow: ${({ disableScroll }) => (disableScroll ? "hidden" : "auto")};
15
+ overflow-anchor: auto;
16
+ position: relative;
17
+ width: 100%;
18
+ `;
19
+ const TableWrapper = styled.div `
20
+ width: 100%;
21
+ min-width: fit-content;
22
+ `;
23
+ const StyledTable = styled.table `
24
+ display: grid;
25
+ `;
26
+ const TableContainer = styled.div `
27
+ flex: 1;
28
+ position: relative;
29
+ display: flex;
30
+ flex-direction: column;
31
+ min-height: 0;
32
+ `;
33
+ const EmptyState = styled.div `
34
+ display: flex;
35
+ align-items: center;
36
+ justify-content: center;
37
+ flex: 1;
38
+ color: #999;
39
+ font-size: 14px;
40
+ `;
41
+ export const LogsTable = ({ data, highlightedIndices, currentHighlightIndex, scrollToIndex, }) => {
42
+ const { autoScrollEnabled, onScroll, scrollContainerRef, scrollZoneHeight, scrollToBottom, scrollZoneRef, } = useScrollLogic({ data });
43
+ const columns = useMemo(() => createColumns(), []);
44
+ const table = useReactTable({
45
+ data,
46
+ columns,
47
+ defaultColumn: {
48
+ minSize: TABLE_CONFIG.MIN_COLUMN_SIZE,
49
+ maxSize: TABLE_CONFIG.MAX_COLUMN_SIZE,
50
+ },
51
+ columnResizeMode: "onChange",
52
+ getCoreRowModel: getCoreRowModel(),
53
+ getSortedRowModel: getSortedRowModel(),
54
+ debugTable: true,
55
+ getRowId: (originalRow) => `${originalRow.timestamp}-${originalRow.message}`,
56
+ });
57
+ const { rows } = table.getRowModel();
58
+ const rowVirtualizer = useVirtualizer({
59
+ count: rows.length,
60
+ estimateSize: () => TABLE_CONFIG.ROW_HEIGHT_ESTIMATE,
61
+ getScrollElement: () => scrollContainerRef.current,
62
+ getItemKey: (index) => rows[index]?.id ?? String(index),
63
+ measureElement: typeof window !== "undefined" &&
64
+ navigator.userAgent.indexOf("Firefox") === -1
65
+ ? (element) => element?.getBoundingClientRect().height
66
+ : undefined,
67
+ overscan: TABLE_CONFIG.OVERSCAN,
68
+ });
69
+ // Skip during column resize to avoid scroll position jumping
70
+ const isResizingColumn = table.getState().columnSizingInfo.isResizingColumn;
71
+ // Notify virtualizer when container height changes
72
+ useEffect(() => {
73
+ if (isResizingColumn)
74
+ return;
75
+ rowVirtualizer.measure();
76
+ }, [scrollZoneHeight, rowVirtualizer, isResizingColumn]);
77
+ // Observe the scroll container for size changes
78
+ useEffect(() => {
79
+ const container = scrollContainerRef.current;
80
+ if (!container)
81
+ return;
82
+ const observer = new ResizeObserver(() => {
83
+ // Skip measure during column resize
84
+ if (table.getState().columnSizingInfo.isResizingColumn)
85
+ return;
86
+ requestAnimationFrame(() => {
87
+ rowVirtualizer.measure();
88
+ });
89
+ });
90
+ observer.observe(container);
91
+ return () => {
92
+ observer.disconnect();
93
+ };
94
+ }, [rowVirtualizer, scrollContainerRef, table]);
95
+ // Scroll to current search match
96
+ useEffect(() => {
97
+ if (scrollToIndex !== undefined && scrollToIndex >= 0) {
98
+ rowVirtualizer.scrollToIndex(scrollToIndex, { align: "center" });
99
+ }
100
+ }, [scrollToIndex, rowVirtualizer]);
101
+ // Reset virtualizer when data changes and is small (helps with filter transitions)
102
+ // Scroll to top first to avoid invalid scroll position, then recalculate
103
+ // Use useLayoutEffect to run synchronously before browser paints
104
+ useLayoutEffect(() => {
105
+ if (rows.length < 100 && rows.length > 0) {
106
+ rowVirtualizer.scrollToOffset(0);
107
+ rowVirtualizer.measure();
108
+ }
109
+ }, [rows.length, rowVirtualizer]);
110
+ // Show empty state when there are no logs to display
111
+ if (data.length === 0) {
112
+ return (_jsx(TableContainer, { ref: scrollZoneRef, children: _jsx(EmptyState, { children: "No logs to display" }) }));
113
+ }
114
+ return (_jsxs(TableContainer, { ref: scrollZoneRef, children: [_jsx(ScrollContainer, { className: "container", ref: scrollContainerRef, onScroll: onScroll, height: scrollZoneHeight, disableScroll: !!isResizingColumn, children: _jsx(TableWrapper, { children: _jsxs(StyledTable, { children: [_jsx(TableHeader, { headerGroups: table.getHeaderGroups() }), _jsx(TableBody, { virtualizer: rowVirtualizer, rows: rows, highlightedIndices: highlightedIndices, currentHighlightIndex: currentHighlightIndex })] }) }) }), _jsx(ScrollDownButton, { enabled: autoScrollEnabled, onClick: scrollToBottom })] }));
115
+ };
116
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/screens/logger/logsTable/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { type Table } from "@tanstack/react-table";
2
+ import { type LogData } from "../types";
3
+ export declare const useColumnSizeVars: (table: Table<LogData>) => Record<string, number>;
4
+ //# sourceMappingURL=useColumnSizeVars.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useColumnSizeVars.d.ts","sourceRoot":"","sources":["../../../../../../src/screens/logger/logsTable/useColumnSizeVars.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,UAAU,CAAC;AAExC,eAAO,MAAM,iBAAiB,GAAI,OAAO,KAAK,CAAC,OAAO,CAAC,2BAgBtD,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { useMemo } from "react";
2
+ export const useColumnSizeVars = (table) => {
3
+ return useMemo(() => {
4
+ const headers = table.getFlatHeaders();
5
+ const colSizes = {};
6
+ for (const header of headers) {
7
+ colSizes[`--header-${header.id}-size`] = header.getSize();
8
+ colSizes[`--col-${header.column.id}-size`] = header.column.getSize();
9
+ }
10
+ return colSizes;
11
+ }, [
12
+ table.getState().columnSizingInfo,
13
+ table.getFlatHeaders(),
14
+ table.getState().columnSizing,
15
+ ]);
16
+ };
17
+ //# sourceMappingURL=useColumnSizeVars.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useColumnSizeVars.js","sourceRoot":"","sources":["../../../../../../src/screens/logger/logsTable/useColumnSizeVars.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAKhC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAqB,EAAE,EAAE;IACzD,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;QACvC,MAAM,QAAQ,GAA2B,EAAE,CAAC;QAE5C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,QAAQ,CAAC,YAAY,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;YAC1D,QAAQ,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACvE,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC,EAAE;QACD,KAAK,CAAC,QAAQ,EAAE,CAAC,gBAAgB;QACjC,KAAK,CAAC,cAAc,EAAE;QACtB,KAAK,CAAC,QAAQ,EAAE,CAAC,YAAY;KAC9B,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function useResizeObserver<T extends HTMLElement>(callback: (target: T, entry: ResizeObserverEntry) => void): import("react").RefObject<T>;
2
+ //# sourceMappingURL=useResizeObserver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useResizeObserver.d.ts","sourceRoot":"","sources":["../../../../../../src/screens/logger/logsTable/useResizeObserver.tsx"],"names":[],"mappings":"AAEA,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,WAAW,EACrD,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,mBAAmB,KAAK,IAAI,gCAiC1D"}
@@ -0,0 +1,28 @@
1
+ import { useLayoutEffect, useRef } from "react";
2
+ export function useResizeObserver(callback) {
3
+ const ref = useRef(null);
4
+ const callbackRef = useRef(callback);
5
+ // Keep callback ref up to date
6
+ useLayoutEffect(() => {
7
+ callbackRef.current = callback;
8
+ }, [callback]);
9
+ useLayoutEffect(() => {
10
+ const element = ref?.current;
11
+ if (!element) {
12
+ return;
13
+ }
14
+ const observer = new ResizeObserver((entries) => {
15
+ const entry = entries[0];
16
+ if (entry) {
17
+ callbackRef.current(element, entry);
18
+ }
19
+ });
20
+ // Observe border box to catch all size changes including padding/borders
21
+ observer.observe(element, { box: "border-box" });
22
+ return () => {
23
+ observer.disconnect();
24
+ };
25
+ }, []); // Empty dependency array - observer is created once
26
+ return ref;
27
+ }
28
+ //# sourceMappingURL=useResizeObserver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useResizeObserver.js","sourceRoot":"","sources":["../../../../../../src/screens/logger/logsTable/useResizeObserver.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAEhD,MAAM,UAAU,iBAAiB,CAC/B,QAAyD;IAEzD,MAAM,GAAG,GAAG,MAAM,CAAI,IAAI,CAAC,CAAC;IAC5B,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAErC,+BAA+B;IAC/B,eAAe,CAAC,GAAG,EAAE;QACnB,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IACjC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,eAAe,CAAC,GAAG,EAAE;QACnB,MAAM,OAAO,GAAG,GAAG,EAAE,OAAO,CAAC;QAE7B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,KAAK,EAAE,CAAC;gBACV,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACtC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,yEAAyE;QACzE,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC;QAEjD,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,UAAU,EAAE,CAAC;QACxB,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,oDAAoD;IAE5D,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,12 @@
1
+ import React from "react";
2
+ export declare const useScrollLogic: ({ data }: {
3
+ data: unknown[];
4
+ }) => {
5
+ autoScrollEnabled: boolean;
6
+ onScroll: () => void;
7
+ scrollContainerRef: React.RefObject<HTMLDivElement>;
8
+ scrollZoneHeight: number;
9
+ scrollToBottom: () => void;
10
+ scrollZoneRef: React.RefObject<HTMLDivElement>;
11
+ };
12
+ //# sourceMappingURL=useScrollLogic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useScrollLogic.d.ts","sourceRoot":"","sources":["../../../../../../src/screens/logger/logsTable/useScrollLogic.ts"],"names":[],"mappings":"AAAA,OAAO,KAKN,MAAM,OAAO,CAAC;AAKf,eAAO,MAAM,cAAc,GAAI,UAAU;IAAE,IAAI,EAAE,OAAO,EAAE,CAAA;CAAE;;;;;;;CAiG3D,CAAC"}
@@ -0,0 +1,86 @@
1
+ import React, { useCallback, useEffect, useLayoutEffect, useState, } from "react";
2
+ import { SCROLL_THRESHOLD } from "./constants";
3
+ import { useResizeObserver } from "./useResizeObserver";
4
+ export const useScrollLogic = ({ data }) => {
5
+ const scrollContainerRef = React.useRef(null);
6
+ const [autoScrollEnabled, setAutoScrollEnabled] = useState(true);
7
+ const isScrollingProgrammaticallyRef = React.useRef(false);
8
+ const prevDataLengthRef = React.useRef(data.length);
9
+ const scrollToBottom = useCallback(() => {
10
+ if (scrollContainerRef.current) {
11
+ isScrollingProgrammaticallyRef.current = true;
12
+ setAutoScrollEnabled(true);
13
+ scrollContainerRef.current.scrollTo({
14
+ top: scrollContainerRef.current.scrollHeight,
15
+ behavior: "instant",
16
+ });
17
+ // Reset the flag after a brief delay to allow scroll to complete
18
+ requestAnimationFrame(() => {
19
+ requestAnimationFrame(() => {
20
+ isScrollingProgrammaticallyRef.current = false;
21
+ });
22
+ });
23
+ }
24
+ }, []);
25
+ // Auto-scroll when new data arrives (not on container resize)
26
+ useEffect(() => {
27
+ if (autoScrollEnabled && scrollContainerRef.current) {
28
+ // Use double requestAnimationFrame to ensure DOM has updated and virtualizer has recalculated
29
+ // This is necessary when content starts overflowing as the virtualizer needs time to measure
30
+ requestAnimationFrame(() => {
31
+ requestAnimationFrame(() => {
32
+ if (scrollContainerRef.current && autoScrollEnabled) {
33
+ scrollToBottom();
34
+ }
35
+ });
36
+ });
37
+ }
38
+ }, [data.length, autoScrollEnabled, scrollToBottom]);
39
+ // Reset scroll position when data shrinks significantly (e.g., filter applied)
40
+ // This prevents the virtualizer from being in an invalid scroll state
41
+ useEffect(() => {
42
+ const prevLength = prevDataLengthRef.current;
43
+ const currentLength = data.length;
44
+ prevDataLengthRef.current = currentLength;
45
+ // If data shrunk significantly (more than 50% reduction or to near-empty)
46
+ if (currentLength < prevLength * 0.5 || currentLength <= 3) {
47
+ scrollContainerRef.current?.scrollTo({ top: 0, behavior: "instant" });
48
+ setAutoScrollEnabled(true);
49
+ }
50
+ }, [data.length]);
51
+ const [scrollZoneHeight, setScrollZoneHeight] = useState(0);
52
+ const updateScrollZoneHeight = useCallback((_, entry) => {
53
+ setScrollZoneHeight(entry.contentRect.height);
54
+ }, []);
55
+ const scrollZoneRef = useResizeObserver(updateScrollZoneHeight);
56
+ // Calculate initial height on mount
57
+ useLayoutEffect(() => {
58
+ if (scrollZoneRef.current) {
59
+ const height = scrollZoneRef.current.getBoundingClientRect().height;
60
+ if (height > 0) {
61
+ setScrollZoneHeight(height);
62
+ }
63
+ }
64
+ }, [scrollZoneRef]);
65
+ const onScroll = useCallback(() => {
66
+ const container = scrollContainerRef.current;
67
+ if (!container)
68
+ return;
69
+ // Only update autoScrollEnabled for manual user scrolls
70
+ if (isScrollingProgrammaticallyRef.current) {
71
+ return;
72
+ }
73
+ const isNearBottom = container.scrollTop + container.clientHeight >=
74
+ container.scrollHeight - SCROLL_THRESHOLD;
75
+ setAutoScrollEnabled(isNearBottom);
76
+ }, []);
77
+ return {
78
+ autoScrollEnabled,
79
+ onScroll,
80
+ scrollContainerRef,
81
+ scrollZoneHeight,
82
+ scrollToBottom,
83
+ scrollZoneRef,
84
+ };
85
+ };
86
+ //# sourceMappingURL=useScrollLogic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useScrollLogic.js","sourceRoot":"","sources":["../../../../../../src/screens/logger/logsTable/useScrollLogic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { LogData } from "./types";
2
+ export declare function mapConnectorMessageToLogData(connectorMessage: {
3
+ type: string;
4
+ payload: string;
5
+ }): LogData | null;
6
+ //# sourceMappingURL=mapConnectorMessageToLogData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapConnectorMessageToLogData.d.ts","sourceRoot":"","sources":["../../../../../src/screens/logger/mapConnectorMessageToLogData.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAe,OAAO,EAAE,MAAM,SAAS,CAAC;AAEpD,wBAAgB,4BAA4B,CAAC,gBAAgB,EAAE;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,GAAG,IAAI,CAgBjB"}
@@ -0,0 +1,17 @@
1
+ import { LOGGER_MESSAGE_TYPES } from "@ledgerhq/device-management-kit-devtools-core";
2
+ export function mapConnectorMessageToLogData(connectorMessage) {
3
+ if (connectorMessage.type !== LOGGER_MESSAGE_TYPES.ADD_LOG) {
4
+ return null;
5
+ }
6
+ const { timestamp, tag, verbosity, message, payloadJSON } = JSON.parse(connectorMessage.payload);
7
+ return {
8
+ timestamp,
9
+ tag,
10
+ verbosity,
11
+ message,
12
+ payloadJSON,
13
+ // TODO: fix this type
14
+ payload: JSON.parse(payloadJSON),
15
+ };
16
+ }
17
+ //# sourceMappingURL=mapConnectorMessageToLogData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapConnectorMessageToLogData.js","sourceRoot":"","sources":["../../../../../src/screens/logger/mapConnectorMessageToLogData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AAIrF,MAAM,UAAU,4BAA4B,CAAC,gBAG5C;IACC,IAAI,gBAAgB,CAAC,IAAI,KAAK,oBAAoB,CAAC,OAAO,EAAE,CAAC;QAC3D,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CACpE,gBAAgB,CAAC,OAAO,CACV,CAAC;IACjB,OAAO;QACL,SAAS;QACT,GAAG;QACH,SAAS;QACT,OAAO;QACP,WAAW;QACX,sBAAsB;QACtB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAqC;KACrE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { type DevToolsLog } from "@ledgerhq/device-management-kit-devtools-core";
2
+ export type { DevToolsLog };
3
+ export type LogData = DevToolsLog & {
4
+ payload: string | Record<string, unknown>;
5
+ };
6
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/screens/logger/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEjF,YAAY,EAAE,WAAW,EAAE,CAAC;AAE5B,MAAM,MAAM,OAAO,GAAG,WAAW,GAAG;IAClC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/screens/logger/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { type Table } from "@tanstack/react-table";
2
+ import { type LogData } from "./types";
3
+ export declare const useColumnSizeVars: (table: Table<LogData>) => Record<string, number>;
4
+ //# sourceMappingURL=useColumnSizeVars.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useColumnSizeVars.d.ts","sourceRoot":"","sources":["../../../../../src/screens/logger/useColumnSizeVars.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,eAAO,MAAM,iBAAiB,GAAI,OAAO,KAAK,CAAC,OAAO,CAAC,2BAgBtD,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { useMemo } from "react";
2
+ export const useColumnSizeVars = (table) => {
3
+ return useMemo(() => {
4
+ const headers = table.getFlatHeaders();
5
+ const colSizes = {};
6
+ for (const header of headers) {
7
+ colSizes[`--header-${header.id}-size`] = header.getSize();
8
+ colSizes[`--col-${header.column.id}-size`] = header.column.getSize();
9
+ }
10
+ return colSizes;
11
+ }, [
12
+ table.getState().columnSizingInfo,
13
+ table.getFlatHeaders(),
14
+ table.getState().columnSizing,
15
+ ]);
16
+ };
17
+ //# sourceMappingURL=useColumnSizeVars.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useColumnSizeVars.js","sourceRoot":"","sources":["../../../../../src/screens/logger/useColumnSizeVars.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAKhC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAqB,EAAE,EAAE;IACzD,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;QACvC,MAAM,QAAQ,GAA2B,EAAE,CAAC;QAE5C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,QAAQ,CAAC,YAAY,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;YAC1D,QAAQ,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACvE,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC,EAAE;QACD,KAAK,CAAC,QAAQ,EAAE,CAAC,gBAAgB;QACjC,KAAK,CAAC,cAAc,EAAE;QACtB,KAAK,CAAC,QAAQ,EAAE,CAAC,YAAY;KAC9B,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import React from "react";
2
+ import { type LoggerOptions } from "./LoggerOptions";
3
+ import { type LogData } from "./types";
4
+ export declare const useLogsDataAndOptions: ({ logs }: {
5
+ logs: LogData[];
6
+ }) => {
7
+ displayedLogs: LogData[];
8
+ options: LoggerOptions;
9
+ setOptions: React.Dispatch<React.SetStateAction<LoggerOptions>>;
10
+ uniqueTags: Set<string>;
11
+ };
12
+ //# sourceMappingURL=useLogsDataAndOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLogsDataAndOptions.d.ts","sourceRoot":"","sources":["../../../../../src/screens/logger/useLogsDataAndOptions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAGvC,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,SAAS,CAAC;AAIvC,eAAO,MAAM,qBAAqB,GAAI,UAAU;IAAE,IAAI,EAAE,OAAO,EAAE,CAAA;CAAE;;;;;CAmClE,CAAC"}
@@ -0,0 +1,36 @@
1
+ import React, { useMemo } from "react";
2
+ import { matchesFilter, parseFilterQuery } from "./filterUtils";
3
+ import { defaultLoggerOptions } from "./LoggerOptions";
4
+ const maxDisplayedLogs = Number.POSITIVE_INFINITY;
5
+ export const useLogsDataAndOptions = ({ logs }) => {
6
+ const [options, setOptions] = React.useState(defaultLoggerOptions);
7
+ const displayedLogs = useMemo(() => {
8
+ const filterTokens = parseFilterQuery(options.filterText);
9
+ const filteredLogs = logs.filter((log) => {
10
+ if (!options.activeLevels[log.verbosity]) {
11
+ return false;
12
+ }
13
+ if (options.includeTags.size > 0) {
14
+ if (!options.includeTags.has(log.tag)) {
15
+ return false;
16
+ }
17
+ }
18
+ if (filterTokens.length > 0 && !matchesFilter(log, filterTokens)) {
19
+ return false;
20
+ }
21
+ return true;
22
+ });
23
+ return filteredLogs.length > maxDisplayedLogs
24
+ ? filteredLogs.slice(-maxDisplayedLogs)
25
+ : filteredLogs;
26
+ }, [logs, options]);
27
+ const uniqueTagsRef = React.useRef(new Set());
28
+ const uniqueTags = useMemo(() => {
29
+ logs.forEach((log) => {
30
+ uniqueTagsRef.current.add(log.tag);
31
+ });
32
+ return uniqueTagsRef.current;
33
+ }, [logs]);
34
+ return { displayedLogs, options, setOptions, uniqueTags };
35
+ };
36
+ //# sourceMappingURL=useLogsDataAndOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLogsDataAndOptions.js","sourceRoot":"","sources":["../../../../../src/screens/logger/useLogsDataAndOptions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAsB,MAAM,iBAAiB,CAAC;AAG3E,MAAM,gBAAgB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAElD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EAAE,IAAI,EAAuB,EAAE,EAAE;IACrE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GACzB,KAAK,CAAC,QAAQ,CAAgB,oBAAoB,CAAC,CAAC;IAEtD,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE;QACjC,MAAM,YAAY,GAAG,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAE1D,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;YACvC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzC,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACjC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACtC,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;YACD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,CAAC;gBACjE,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QACH,OAAO,YAAY,CAAC,MAAM,GAAG,gBAAgB;YAC3C,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC;YACvC,CAAC,CAAC,YAAY,CAAC;IACnB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAEpB,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAc,IAAI,GAAG,EAAE,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE;QAC9B,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACnB,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QACH,OAAO,aAAa,CAAC,OAAO,CAAC;IAC/B,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AAC5D,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Hook to manage recent filters with localStorage persistence.
3
+ *
4
+ * Features:
5
+ * - Loads recent filters from localStorage on mount
6
+ * - Auto-saves current filter after 15 seconds of no changes (debounced)
7
+ * - Provides manual add/remove functions
8
+ * - Caps at MAX_RECENT_FILTERS items
9
+ *
10
+ * @param currentFilter - The current filter value (used for debounced auto-save)
11
+ * @returns Object with recentFilters array and add/remove functions
12
+ */
13
+ export declare const useRecentFilters: (currentFilter: string) => {
14
+ recentFilters: string[];
15
+ addFilter: (filter: string) => void;
16
+ removeFilter: (filter: string) => void;
17
+ };
18
+ //# sourceMappingURL=useRecentFilters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRecentFilters.d.ts","sourceRoot":"","sources":["../../../../../src/screens/logger/useRecentFilters.ts"],"names":[],"mappings":"AAqCA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,GAAI,eAAe,MAAM;;wBAab,MAAM;2BAiBH,MAAM;CA6BjD,CAAC"}
@@ -0,0 +1,96 @@
1
+ import { useCallback, useEffect, useRef, useState } from "react";
2
+ const STORAGE_KEY = "devtools-logger-recent-filters";
3
+ const MAX_RECENT_FILTERS = 10;
4
+ const DEBOUNCE_MS = 15000; // 15 seconds
5
+ /**
6
+ * Loads recent filters from localStorage.
7
+ */
8
+ function loadRecentFilters() {
9
+ try {
10
+ const stored = localStorage.getItem(STORAGE_KEY);
11
+ if (stored) {
12
+ const parsed = JSON.parse(stored);
13
+ if (Array.isArray(parsed)) {
14
+ return parsed.filter((item) => typeof item === "string");
15
+ }
16
+ }
17
+ }
18
+ catch {
19
+ // Ignore errors, return empty array
20
+ }
21
+ return [];
22
+ }
23
+ /**
24
+ * Saves recent filters to localStorage.
25
+ */
26
+ function saveRecentFilters(filters) {
27
+ try {
28
+ localStorage.setItem(STORAGE_KEY, JSON.stringify(filters));
29
+ }
30
+ catch {
31
+ // Ignore errors (e.g., storage full, private mode)
32
+ }
33
+ }
34
+ /**
35
+ * Hook to manage recent filters with localStorage persistence.
36
+ *
37
+ * Features:
38
+ * - Loads recent filters from localStorage on mount
39
+ * - Auto-saves current filter after 15 seconds of no changes (debounced)
40
+ * - Provides manual add/remove functions
41
+ * - Caps at MAX_RECENT_FILTERS items
42
+ *
43
+ * @param currentFilter - The current filter value (used for debounced auto-save)
44
+ * @returns Object with recentFilters array and add/remove functions
45
+ */
46
+ export const useRecentFilters = (currentFilter) => {
47
+ const [recentFilters, setRecentFilters] = useState(() => loadRecentFilters());
48
+ // Track the last saved filter to avoid duplicate saves
49
+ const lastSavedFilterRef = useRef("");
50
+ /**
51
+ * Adds a filter to the recent list.
52
+ * - Moves to top if already exists
53
+ * - Caps at MAX_RECENT_FILTERS
54
+ */
55
+ const addFilter = useCallback((filter) => {
56
+ if (!filter.trim())
57
+ return;
58
+ setRecentFilters((prev) => {
59
+ // Remove if already exists
60
+ const filtered = prev.filter((f) => f !== filter);
61
+ // Add to beginning
62
+ const updated = [filter, ...filtered].slice(0, MAX_RECENT_FILTERS);
63
+ // Persist
64
+ saveRecentFilters(updated);
65
+ return updated;
66
+ });
67
+ }, []);
68
+ /**
69
+ * Removes a filter from the recent list.
70
+ */
71
+ const removeFilter = useCallback((filter) => {
72
+ setRecentFilters((prev) => {
73
+ const updated = prev.filter((f) => f !== filter);
74
+ // Persist
75
+ saveRecentFilters(updated);
76
+ return updated;
77
+ });
78
+ }, []);
79
+ // Auto-save with debounce
80
+ useEffect(() => {
81
+ const trimmedFilter = currentFilter.trim();
82
+ // Don't save empty filters or if already saved
83
+ if (!trimmedFilter || trimmedFilter === lastSavedFilterRef.current) {
84
+ return;
85
+ }
86
+ const timeoutId = setTimeout(() => {
87
+ addFilter(trimmedFilter);
88
+ lastSavedFilterRef.current = trimmedFilter;
89
+ }, DEBOUNCE_MS);
90
+ return () => {
91
+ clearTimeout(timeoutId);
92
+ };
93
+ }, [currentFilter, addFilter]);
94
+ return { recentFilters, addFilter, removeFilter };
95
+ };
96
+ //# sourceMappingURL=useRecentFilters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRecentFilters.js","sourceRoot":"","sources":["../../../../../src/screens/logger/useRecentFilters.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { type LogData } from "./types";
2
+ /**
3
+ * Hook to manage search state and compute matches.
4
+ *
5
+ * Features:
6
+ * - Computes matching row indices using filterUtils
7
+ * - Tracks current match index for navigation
8
+ * - Provides navigation functions (next/previous) with wraparound
9
+ *
10
+ * @param logs - The logs to search through (typically displayedLogs after filtering)
11
+ * @returns Search state and navigation functions
12
+ */
13
+ export declare const useSearchState: (logs: LogData[]) => {
14
+ searchQuery: string;
15
+ setSearchQuery: import("react").Dispatch<import("react").SetStateAction<string>>;
16
+ matchIndices: number[];
17
+ currentMatchIndex: number;
18
+ currentMatchRowIndex: number | undefined;
19
+ goToNext: () => void;
20
+ goToPrevious: () => void;
21
+ goToFirst: () => void;
22
+ goToLast: () => void;
23
+ };
24
+ //# sourceMappingURL=useSearchState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSearchState.d.ts","sourceRoot":"","sources":["../../../../../src/screens/logger/useSearchState.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,OAAO,EAAE;;;;;;;;;;CAiE7C,CAAC"}