@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,10 @@
1
+ import React from "react";
2
+ import { type LogData } from "./types";
3
+ type Props = {
4
+ logs: Array<LogData>;
5
+ clearLogs: () => void;
6
+ isConnected?: boolean;
7
+ };
8
+ export declare const Logger: React.FC<Props>;
9
+ export {};
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/screens/logger/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAMvE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,SAAS,CAAC;AAIvC,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACrB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAQF,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA+IlC,CAAC"}
@@ -0,0 +1,86 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React, { useCallback, useEffect, useMemo, useRef } from "react";
3
+ import { Divider, Flex } from "@ledgerhq/react-ui";
4
+ import { NotConnectedMessage } from "../../shared/NotConnectedMessage";
5
+ import { LoggerToolbar } from "./LoggerToolbar";
6
+ import { LogsTable } from "./logsTable";
7
+ import { useLogsDataAndOptions } from "./useLogsDataAndOptions";
8
+ import { useSearchState } from "./useSearchState";
9
+ const LOGGER_CODE_EXAMPLE = `import { DevToolsLogger } from "@ledgerhq/device-management-kit-devtools-core";
10
+
11
+ const dmk = new DeviceManagementKitBuilder()
12
+ .addLogger(new DevToolsLogger(connector))
13
+ .build();`;
14
+ export const Logger = ({ logs, clearLogs, isConnected = true, }) => {
15
+ const [nonce, setNonce] = React.useState(0);
16
+ const { options, setOptions, displayedLogs, uniqueTags } = useLogsDataAndOptions({
17
+ logs,
18
+ });
19
+ const data = displayedLogs;
20
+ // Track previous displayedLogs length to detect significant shrinking (e.g., from filtering)
21
+ const prevDisplayedLogsLengthRef = useRef(displayedLogs.length);
22
+ useEffect(() => {
23
+ const prevLength = prevDisplayedLogsLengthRef.current;
24
+ const currentLength = displayedLogs.length;
25
+ prevDisplayedLogsLengthRef.current = currentLength;
26
+ // If data shrunk significantly, increment nonce to force LogsTable remount
27
+ // This resets the virtualizer state which can get corrupted when filtering
28
+ if (currentLength < prevLength * 0.5 ||
29
+ (currentLength < 100 && currentLength < prevLength)) {
30
+ setNonce((prev) => prev + 1);
31
+ }
32
+ }, [displayedLogs.length]);
33
+ // Search state
34
+ const { searchQuery, setSearchQuery, matchIndices, currentMatchIndex, currentMatchRowIndex, goToNext, goToPrevious, goToFirst, goToLast, } = useSearchState(displayedLogs);
35
+ const searchInputRef = useRef(null);
36
+ // Keyboard shortcuts (Ctrl/Cmd+F, Ctrl/Cmd+G / Ctrl/Cmd+Shift+G)
37
+ useEffect(() => {
38
+ const handleKeyDown = (e) => {
39
+ // Ctrl/Cmd+F to focus search
40
+ if ((e.metaKey || e.ctrlKey) && e.key.toLowerCase() === "f") {
41
+ e.preventDefault();
42
+ searchInputRef.current?.focus();
43
+ searchInputRef.current?.select();
44
+ }
45
+ // Ctrl/Cmd+G / Ctrl/Cmd+Shift+G for navigation
46
+ if ((e.metaKey || e.ctrlKey) && e.key.toLowerCase() === "g") {
47
+ e.preventDefault();
48
+ if (e.shiftKey) {
49
+ goToPrevious();
50
+ }
51
+ else {
52
+ goToNext();
53
+ }
54
+ }
55
+ };
56
+ window.addEventListener("keydown", handleKeyDown);
57
+ return () => window.removeEventListener("keydown", handleKeyDown);
58
+ }, [goToNext, goToPrevious]);
59
+ const tableKey = nonce;
60
+ // Memoize highlightedIndices to avoid new Set on every render
61
+ const highlightedIndices = useMemo(() => new Set(matchIndices), [matchIndices]);
62
+ const onClickClearLogs = useCallback(() => {
63
+ clearLogs();
64
+ setNonce((prevNonce) => prevNonce + 1);
65
+ }, [clearLogs]);
66
+ const downloadLogs = useCallback(() => {
67
+ const logsToExport = logs.map((log) => {
68
+ const { payload, ...rest } = log;
69
+ return rest;
70
+ });
71
+ const blob = new Blob([JSON.stringify(logsToExport, null, 2)], {
72
+ type: "application/json",
73
+ });
74
+ const url = URL.createObjectURL(blob);
75
+ const a = document.createElement("a");
76
+ a.href = url;
77
+ a.download = `logs-sdk-${new Date().toISOString()}.json`;
78
+ a.click();
79
+ URL.revokeObjectURL(url);
80
+ }, [logs]);
81
+ if (!isConnected) {
82
+ return (_jsx(NotConnectedMessage, { title: "Logger not connected", description: _jsxs(_Fragment, { children: ["To enable logging, add ", _jsx("code", { children: "DevToolsLogger" }), " to your DMK builder:"] }), codeExample: LOGGER_CODE_EXAMPLE }));
83
+ }
84
+ return (_jsxs(Flex, { flex: 1, flexDirection: "column", minHeight: 0, overflow: "hidden", children: [_jsx(Flex, { flexDirection: "column", px: 6, py: 2, flexShrink: 0, children: _jsx(LoggerToolbar, { clearLogs: onClickClearLogs, downloadLogs: downloadLogs, options: options, setOptions: setOptions, uniqueTags: uniqueTags, searchQuery: searchQuery, onSearchChange: setSearchQuery, matchCount: matchIndices.length, currentMatchIndex: currentMatchIndex, onSearchNext: goToNext, onSearchPrevious: goToPrevious, onSearchFirst: goToFirst, onSearchLast: goToLast, searchInputRef: searchInputRef }) }), _jsx(Divider, { mb: 3, flexShrink: 0 }), _jsx(LogsTable, { data: data, highlightedIndices: highlightedIndices, currentHighlightIndex: currentMatchRowIndex, scrollToIndex: currentMatchRowIndex }, tableKey)] }));
85
+ };
86
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/screens/logger/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Shared container for filter and search inputs.
3
+ * Uses flex: 1 to share available width.
4
+ */
5
+ export declare const InputContainer: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
6
+ /**
7
+ * Shared wrapper that provides the bordered box appearance.
8
+ * Can contain the input and additional controls (like search nav buttons).
9
+ */
10
+ export declare const InputWrapper: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {
11
+ $focused?: boolean;
12
+ }, never>;
13
+ /**
14
+ * Shared styled input used in both FilterInput and SearchInput.
15
+ * Border and background are handled by InputWrapper.
16
+ */
17
+ export declare const StyledInput: import("styled-components").StyledComponent<"input", import("styled-components").DefaultTheme, {}, never>;
18
+ //# sourceMappingURL=inputStyles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inputStyles.d.ts","sourceRoot":"","sources":["../../../../../src/screens/logger/inputStyles.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,cAAc,yGAI1B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY;eAA2B,OAAO;SAQ1D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,2GAiBvB,CAAC"}
@@ -0,0 +1,46 @@
1
+ import styled from "styled-components";
2
+ /**
3
+ * Shared container for filter and search inputs.
4
+ * Uses flex: 1 to share available width.
5
+ */
6
+ export const InputContainer = styled.div `
7
+ position: relative;
8
+ flex: 1;
9
+ min-width: 150px;
10
+ `;
11
+ /**
12
+ * Shared wrapper that provides the bordered box appearance.
13
+ * Can contain the input and additional controls (like search nav buttons).
14
+ */
15
+ export const InputWrapper = styled.div `
16
+ display: flex;
17
+ align-items: center;
18
+ height: 28px;
19
+ border: 1px solid ${({ $focused }) => ($focused ? "#999" : "#ccc")};
20
+ border-radius: 4px;
21
+ background-color: #fff;
22
+ overflow: hidden;
23
+ `;
24
+ /**
25
+ * Shared styled input used in both FilterInput and SearchInput.
26
+ * Border and background are handled by InputWrapper.
27
+ */
28
+ export const StyledInput = styled.input `
29
+ flex: 1;
30
+ padding: 6px 10px;
31
+ border: none;
32
+ font-size: 12px;
33
+ font-family: monospace;
34
+ background-color: transparent;
35
+ color: #333;
36
+ min-width: 0;
37
+
38
+ &:focus {
39
+ outline: none;
40
+ }
41
+
42
+ &::placeholder {
43
+ color: #999;
44
+ }
45
+ `;
46
+ //# sourceMappingURL=inputStyles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inputStyles.js","sourceRoot":"","sources":["../../../../../src/screens/logger/inputStyles.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAA;;;;CAIvC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAwB;;;;sBAIxC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;;;;CAInE,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAA;;;;;;;;;;;;;;;;;CAiBtC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import React from "react";
2
+ import { type LogData } from "../types";
3
+ type Verbosity = LogData["verbosity"];
4
+ export declare const LogText: import("styled-components").StyledComponent<"p", import("styled-components").DefaultTheme, {
5
+ verbosity: Verbosity;
6
+ }, never>;
7
+ export declare const TimestampCell: React.FC<LogData>;
8
+ export declare const TagCell: React.FC<LogData>;
9
+ export declare const VerbosityCell: React.FC<LogData>;
10
+ export declare const MessageCell: React.FC<LogData>;
11
+ export declare const PayloadCell: React.FC<LogData>;
12
+ export {};
13
+ //# sourceMappingURL=LogTableCells.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogTableCells.d.ts","sourceRoot":"","sources":["../../../../../../src/screens/logger/logsTable/LogTableCells.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,UAAU,CAAC;AAExC,KAAK,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AA6BtC,eAAO,MAAM,OAAO;eAAyB,SAAS;SAIrD,CAAC;AAYF,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,CAc3C,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,CAMrC,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,CAM3C,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,CAMzC,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,CASzC,CAAC"}
@@ -0,0 +1,61 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Inspector } from "react-inspector";
3
+ import styled from "styled-components";
4
+ const mapVerbosityToTextProps = (verbosity) => {
5
+ const baseStyle = {
6
+ whiteSpace: "nowrap",
7
+ flexShrink: 0,
8
+ alignSelf: "center",
9
+ fontSize: 12,
10
+ };
11
+ switch (verbosity) {
12
+ case "debug":
13
+ return { ...baseStyle, color: "grey" };
14
+ case "info":
15
+ return { ...baseStyle, color: "black" };
16
+ case "warning":
17
+ return { ...baseStyle, color: "darkorange" };
18
+ case "error":
19
+ return { ...baseStyle, color: "red" };
20
+ case "fatal":
21
+ return { ...baseStyle, color: "red" };
22
+ default:
23
+ return { ...baseStyle, color: "grey" };
24
+ }
25
+ };
26
+ export const LogText = styled.p(({ verbosity }) => {
27
+ return mapVerbosityToTextProps(verbosity);
28
+ });
29
+ const TimestampText = styled(LogText) `
30
+ font-size: 10px;
31
+ padding-bottom: 2px;
32
+ `;
33
+ const TagText = styled(LogText) `
34
+ font-weight: bold;
35
+ width: 190px;
36
+ `;
37
+ export const TimestampCell = ({ timestamp, verbosity }) => {
38
+ return (_jsx("div", { children: _jsx(TimestampText, { verbosity: verbosity, children: new Date(timestamp).toLocaleTimeString([], {
39
+ hour: "2-digit",
40
+ minute: "2-digit",
41
+ second: "2-digit",
42
+ fractionalSecondDigits: 2,
43
+ hour12: false,
44
+ }) }) }));
45
+ };
46
+ export const TagCell = ({ tag, verbosity }) => {
47
+ return (_jsx("div", { children: _jsx(TagText, { verbosity: verbosity, children: tag }) }));
48
+ };
49
+ export const VerbosityCell = ({ verbosity }) => {
50
+ return (_jsx("div", { children: _jsx(LogText, { verbosity: verbosity, children: verbosity }) }));
51
+ };
52
+ export const MessageCell = ({ message, verbosity }) => {
53
+ return (_jsx("div", { children: _jsx(LogText, { verbosity: verbosity, children: message }) }));
54
+ };
55
+ export const PayloadCell = ({ payload }) => {
56
+ if (typeof payload !== "string" && Object.entries(payload).length === 0) {
57
+ return null;
58
+ }
59
+ return (_jsx("div", { children: _jsx(Inspector, { data: payload, expandLevel: 0, table: false }) }));
60
+ };
61
+ //# sourceMappingURL=LogTableCells.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogTableCells.js","sourceRoot":"","sources":["../../../../../../src/screens/logger/logsTable/LogTableCells.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ type ScrollDownButtonProps = {
3
+ onClick: () => void;
4
+ enabled: boolean;
5
+ };
6
+ export declare const ScrollDownButton: React.FC<ScrollDownButtonProps>;
7
+ export {};
8
+ //# sourceMappingURL=ScrollDownButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScrollDownButton.d.ts","sourceRoot":"","sources":["../../../../../../src/screens/logger/logsTable/ScrollDownButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAsB1B,KAAK,qBAAqB,GAAG;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAa5D,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Flex, Icons } from "@ledgerhq/react-ui";
3
+ import styled from "styled-components";
4
+ import { SCROLL_BUTTON_CONFIG } from "./constants";
5
+ const StyledButton = styled(Flex) `
6
+ position: absolute;
7
+ bottom: ${SCROLL_BUTTON_CONFIG.BOTTOM_OFFSET}px;
8
+ right: ${SCROLL_BUTTON_CONFIG.RIGHT_OFFSET}px;
9
+ height: ${SCROLL_BUTTON_CONFIG.SIZE}px;
10
+ width: ${SCROLL_BUTTON_CONFIG.SIZE}px;
11
+ padding-top: ${SCROLL_BUTTON_CONFIG.PADDING_TOP}px;
12
+ border-radius: ${SCROLL_BUTTON_CONFIG.BORDER_RADIUS}px;
13
+ cursor: pointer;
14
+ box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
15
+ transition: opacity 0.3s;
16
+ opacity: ${({ enabled }) => (enabled ? 0 : 1)};
17
+ pointer-events: ${({ enabled }) => enabled ? "none" : "auto"};
18
+ `;
19
+ export const ScrollDownButton = ({ onClick, enabled, }) => (_jsx(StyledButton, { enabled: enabled, onClick: onClick, alignItems: "center", justifyContent: "center", bg: "neutral.c100", children: _jsx(Icons.ChevronDown, { size: "XL", color: "neutral.c00" }) }));
20
+ //# sourceMappingURL=ScrollDownButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScrollDownButton.js","sourceRoot":"","sources":["../../../../../../src/screens/logger/logsTable/ScrollDownButton.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;;YAErB,oBAAoB,CAAC,aAAa;WACnC,oBAAoB,CAAC,YAAY;YAChC,oBAAoB,CAAC,IAAI;WAC1B,oBAAoB,CAAC,IAAI;iBACnB,oBAAoB,CAAC,WAAW;mBAC9B,oBAAoB,CAAC,aAAa;;;;aAIxC,CAAC,EAAE,OAAO,EAAwB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACjD,CAAC,EAAE,OAAO,EAAwB,EAAE,EAAE,CACtD,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;CAC5B,CAAC;AAOF,MAAM,CAAC,MAAM,gBAAgB,GAAoC,CAAC,EAChE,OAAO,EACP,OAAO,GACR,EAAE,EAAE,CAAC,CACJ,KAAC,YAAY,IACX,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAC,QAAQ,EACnB,cAAc,EAAC,QAAQ,EACvB,EAAE,EAAC,cAAc,YAEjB,KAAC,KAAK,CAAC,WAAW,IAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,aAAa,GAAG,GACtC,CAChB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import React from "react";
2
+ import { type Row } from "@tanstack/react-table";
3
+ import { type Virtualizer } from "@tanstack/react-virtual";
4
+ import { type LogData } from "../types";
5
+ type TableBodyProps = {
6
+ virtualizer: Virtualizer<HTMLDivElement, Element>;
7
+ rows: Row<LogData>[];
8
+ highlightedIndices?: Set<number>;
9
+ currentHighlightIndex?: number;
10
+ };
11
+ export declare const TableBody: React.FC<TableBodyProps>;
12
+ export {};
13
+ //# sourceMappingURL=TableBody.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableBody.d.ts","sourceRoot":"","sources":["../../../../../../src/screens/logger/logsTable/TableBody.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAc,KAAK,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAG3D,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,UAAU,CAAC;AAkDxC,KAAK,cAAc,GAAG;IACpB,WAAW,EAAE,WAAW,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAClD,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;IACrB,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACjC,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAoD9C,CAAC"}
@@ -0,0 +1,58 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { flexRender } from "@tanstack/react-table";
3
+ import styled from "styled-components";
4
+ import { TABLE_STYLES } from "./constants";
5
+ const StyledTbody = styled.tbody `
6
+ display: grid;
7
+ height: ${({ totalSize }) => totalSize}px;
8
+ position: relative;
9
+ `;
10
+ const StyledTr = styled.tr `
11
+ display: flex;
12
+ position: absolute;
13
+ transform: translateY(${({ start }) => start}px);
14
+ width: 100%;
15
+ overflow-anchor: none;
16
+ `;
17
+ // Anchor element at the bottom - browser will anchor to this when scrolled to bottom
18
+ // Using tr/td for valid HTML inside tbody
19
+ const ScrollAnchor = styled.tr `
20
+ position: absolute;
21
+ top: ${({ totalSize }) => totalSize}px;
22
+ height: 1px;
23
+ overflow-anchor: auto;
24
+ `;
25
+ const StyledTd = styled.td `
26
+ display: flex;
27
+ flex: ${({ flexible, size, minSize }) => flexible ? `${size} 1 ${minSize}px` : `0 0 ${size}px`};
28
+ min-width: ${({ flexible, size, minSize }) => (flexible ? minSize : size)}px;
29
+ overflow: hidden;
30
+ background-color: ${({ isEven, isHighlighted, isCurrentMatch }) => isCurrentMatch
31
+ ? "#ffd700"
32
+ : isHighlighted
33
+ ? "#fff3cd"
34
+ : isEven
35
+ ? "white"
36
+ : "ghostwhite"};
37
+ padding: ${TABLE_STYLES.CELL_PADDING};
38
+ `;
39
+ export const TableBody = ({ virtualizer, rows, highlightedIndices, currentHighlightIndex, }) => {
40
+ const totalSize = virtualizer.getTotalSize();
41
+ return (_jsxs(StyledTbody, { totalSize: totalSize, children: [virtualizer.getVirtualItems().map((virtualRow) => {
42
+ const rowIndex = virtualRow.index;
43
+ const row = rows[virtualRow.index];
44
+ // Skip rendering if row doesn't exist (can happen during filter transitions)
45
+ if (!row)
46
+ return null;
47
+ const isHighlighted = highlightedIndices?.has(rowIndex) ?? false;
48
+ const isCurrentMatch = currentHighlightIndex === rowIndex;
49
+ return (_jsx(StyledTr, { "data-index": virtualRow.index, ref: (node) => virtualizer.measureElement(node), start: virtualRow.start, children: row.getVisibleCells().map((cell) => {
50
+ const flexible = cell.column.columnDef.meta
51
+ ?.flexible ?? false;
52
+ const size = cell.column.getSize();
53
+ const minSize = cell.column.columnDef.minSize ?? 50;
54
+ return (_jsx(StyledTd, { size: size, minSize: minSize, flexible: flexible, isEven: rowIndex % 2 === 0, isHighlighted: isHighlighted, isCurrentMatch: isCurrentMatch, children: flexRender(cell.column.columnDef.cell, cell.getContext()) }, cell.id));
55
+ }) }, row.id));
56
+ }), _jsx(ScrollAnchor, { totalSize: totalSize, children: _jsx("td", {}) })] }));
57
+ };
58
+ //# sourceMappingURL=TableBody.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableBody.js","sourceRoot":"","sources":["../../../../../../src/screens/logger/logsTable/TableBody.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type LogData } from "../types";
2
+ export declare const createColumns: () => (import("@tanstack/react-table").AccessorKeyColumnDefBase<LogData, "debug" | "info" | "warning" | "error" | "fatal"> & Partial<import("@tanstack/react-table").IdIdentifier<LogData, "debug" | "info" | "warning" | "error" | "fatal">>)[];
3
+ //# sourceMappingURL=TableColumns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableColumns.d.ts","sourceRoot":"","sources":["../../../../../../src/screens/logger/logsTable/TableColumns.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,UAAU,CAAC;AAWxC,eAAO,MAAM,aAAa,kPAsCzB,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { createColumnHelper } from "@tanstack/react-table";
3
+ import { MessageCell, PayloadCell, TagCell, TimestampCell, VerbosityCell, } from "./LogTableCells";
4
+ const columnHelper = createColumnHelper();
5
+ export const createColumns = () => [
6
+ columnHelper.accessor("timestamp", {
7
+ header: "Timestamp",
8
+ cell: (info) => _jsx(TimestampCell, { ...info.row.original }),
9
+ enableSorting: true,
10
+ size: 85,
11
+ meta: { flexible: false },
12
+ }),
13
+ columnHelper.accessor("tag", {
14
+ header: "Tag",
15
+ cell: (info) => _jsx(TagCell, { ...info.row.original }),
16
+ enableSorting: false,
17
+ size: 210,
18
+ meta: { flexible: false },
19
+ }),
20
+ columnHelper.accessor("verbosity", {
21
+ header: "Verbosity",
22
+ cell: (info) => _jsx(VerbosityCell, { ...info.row.original }),
23
+ enableSorting: false,
24
+ size: 65,
25
+ meta: { flexible: false },
26
+ }),
27
+ columnHelper.accessor("message", {
28
+ header: "Message",
29
+ cell: (info) => _jsx(MessageCell, { ...info.row.original }),
30
+ enableSorting: false,
31
+ size: 300, // flex-grow weight (proportional)
32
+ minSize: 100,
33
+ meta: { flexible: true },
34
+ }),
35
+ columnHelper.accessor("payload", {
36
+ header: "Payload",
37
+ cell: (info) => _jsx(PayloadCell, { ...info.row.original }, info.cell.id),
38
+ enableSorting: false,
39
+ size: 200, // flex-grow weight (proportional)
40
+ minSize: 100,
41
+ meta: { flexible: true },
42
+ }),
43
+ ];
44
+ //# sourceMappingURL=TableColumns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableColumns.js","sourceRoot":"","sources":["../../../../../../src/screens/logger/logsTable/TableColumns.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAG3D,OAAO,EACL,WAAW,EACX,WAAW,EACX,OAAO,EACP,aAAa,EACb,aAAa,GACd,MAAM,iBAAiB,CAAC;AAEzB,MAAM,YAAY,GAAG,kBAAkB,EAAW,CAAC;AAEnD,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC;IACjC,YAAY,CAAC,QAAQ,CAAC,WAAW,EAAE;QACjC,MAAM,EAAE,WAAW;QACnB,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAC,aAAa,OAAK,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAI;QACxD,aAAa,EAAE,IAAI;QACnB,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;KAC1B,CAAC;IACF,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE;QAC3B,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAC,OAAO,OAAK,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAI;QAClD,aAAa,EAAE,KAAK;QACpB,IAAI,EAAE,GAAG;QACT,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;KAC1B,CAAC;IACF,YAAY,CAAC,QAAQ,CAAC,WAAW,EAAE;QACjC,MAAM,EAAE,WAAW;QACnB,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAC,aAAa,OAAK,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAI;QACxD,aAAa,EAAE,KAAK;QACpB,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;KAC1B,CAAC;IACF,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE;QAC/B,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAC,WAAW,OAAK,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAI;QACtD,aAAa,EAAE,KAAK;QACpB,IAAI,EAAE,GAAG,EAAE,kCAAkC;QAC7C,OAAO,EAAE,GAAG;QACZ,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KACzB,CAAC;IACF,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE;QAC/B,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAC,WAAW,OAAwB,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAnC,IAAI,CAAC,IAAI,CAAC,EAAE,CAA2B;QACzE,aAAa,EAAE,KAAK;QACpB,IAAI,EAAE,GAAG,EAAE,kCAAkC;QAC7C,OAAO,EAAE,GAAG;QACZ,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KACzB,CAAC;CACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import { type HeaderGroup } from "@tanstack/react-table";
3
+ import { type LogData } from "../types";
4
+ type TableHeaderProps = {
5
+ headerGroups: HeaderGroup<LogData>[];
6
+ };
7
+ export declare const TableHeader: React.FC<TableHeaderProps>;
8
+ export {};
9
+ //# sourceMappingURL=TableHeader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableHeader.d.ts","sourceRoot":"","sources":["../../../../../../src/screens/logger/logsTable/TableHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGrE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,UAAU,CAAC;AAiDxC,KAAK,gBAAgB,GAAG;IACtB,YAAY,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;CACtC,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA2ClD,CAAC"}
@@ -0,0 +1,53 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { flexRender } from "@tanstack/react-table";
3
+ import styled from "styled-components";
4
+ import { TABLE_STYLES } from "./constants";
5
+ const StyledThead = styled.thead `
6
+ display: grid;
7
+ position: sticky;
8
+ top: 0;
9
+ z-index: 1;
10
+ background-color: white;
11
+ `;
12
+ const StyledTr = styled.tr `
13
+ display: flex;
14
+ width: 100%;
15
+ background-color: ghostwhite;
16
+ `;
17
+ const StyledTh = styled.th `
18
+ display: flex;
19
+ flex: ${({ flexible, size, minSize }) => flexible ? `${size} 1 ${minSize}px` : `0 0 ${size}px`};
20
+ min-width: ${({ flexible, size, minSize }) => (flexible ? minSize : size)}px;
21
+ position: relative;
22
+ overflow: hidden;
23
+ `;
24
+ const HeaderContent = styled.div `
25
+ font-size: ${TABLE_STYLES.HEADER_FONT_SIZE}px;
26
+ cursor: ${({ canSort }) => (canSort ? "pointer" : "default")};
27
+ user-select: ${({ canSort }) => (canSort ? "none" : "auto")};
28
+ `;
29
+ const Resizer = styled.div `
30
+ position: absolute;
31
+ right: 0;
32
+ top: 0;
33
+ width: ${TABLE_STYLES.RESIZER_WIDTH};
34
+ margin-right: ${TABLE_STYLES.RESIZER_MARGIN};
35
+ height: 100%;
36
+ cursor: col-resize;
37
+ background-color: lightgrey;
38
+ touch-action: none;
39
+ user-select: none;
40
+ `;
41
+ export const TableHeader = ({ headerGroups }) => {
42
+ return (_jsx(StyledThead, { children: headerGroups.map((headerGroup) => (_jsx(StyledTr, { children: headerGroup.headers.map((header) => {
43
+ const flexible = header.column.columnDef.meta
44
+ ?.flexible ?? false;
45
+ const size = header.getSize();
46
+ const minSize = header.column.columnDef.minSize ?? 50;
47
+ return (_jsxs(StyledTh, { size: size, minSize: minSize, flexible: flexible, children: [_jsxs(HeaderContent, { canSort: header.column.getCanSort(), onClick: header.column.getToggleSortingHandler(), children: [flexRender(header.column.columnDef.header, header.getContext()), {
48
+ asc: " 🔼",
49
+ desc: " 🔽",
50
+ }[header.column.getIsSorted()] ?? null] }), _jsx(Resizer, { onDoubleClick: () => header.column.resetSize(), onMouseDown: header.getResizeHandler(), onTouchStart: header.getResizeHandler() })] }, header.id));
51
+ }) }, headerGroup.id))) }));
52
+ };
53
+ //# sourceMappingURL=TableHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableHeader.js","sourceRoot":"","sources":["../../../../../../src/screens/logger/logsTable/TableHeader.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAoB,MAAM,uBAAuB,CAAC;AACrE,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAGvC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAA;;;;;;CAM/B,CAAC;AAEF,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAA;;;;CAIzB,CAAC;AAEF,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAIxB;;UAEQ,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CACtC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI;eAC1C,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;;;CAG1E,CAAC;AAEF,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAsB;eACvC,YAAY,CAAC,gBAAgB;YAChC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;iBAC7C,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;CAC5D,CAAC;AAEF,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAA;;;;WAIf,YAAY,CAAC,aAAa;kBACnB,YAAY,CAAC,cAAc;;;;;;CAM5C,CAAC;AAMF,MAAM,CAAC,MAAM,WAAW,GAA+B,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE;IAC1E,OAAO,CACL,KAAC,WAAW,cACT,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CACjC,KAAC,QAAQ,cACN,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;gBAClC,MAAM,QAAQ,GACX,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAA+B;oBACtD,EAAE,QAAQ,IAAI,KAAK,CAAC;gBACxB,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC;gBACtD,OAAO,CACL,MAAC,QAAQ,IAEP,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,aAElB,MAAC,aAAa,IACZ,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EACnC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,uBAAuB,EAAE,aAE/C,UAAU,CACT,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAC9B,MAAM,CAAC,UAAU,EAAE,CACpB,EACA;oCACC,GAAG,EAAE,KAAK;oCACV,IAAI,EAAE,KAAK;iCACZ,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAY,CAAC,IAAI,IAAI,IAClC,EAChB,KAAC,OAAO,IACN,aAAa,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,EAC9C,WAAW,EAAE,MAAM,CAAC,gBAAgB,EAAE,EACtC,YAAY,EAAE,MAAM,CAAC,gBAAgB,EAAE,GACvC,KAtBG,MAAM,CAAC,EAAE,CAuBL,CACZ,CAAC;YACJ,CAAC,CAAC,IAlCW,WAAW,CAAC,EAAE,CAmClB,CACZ,CAAC,GACU,CACf,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,21 @@
1
+ export declare const TABLE_CONFIG: {
2
+ readonly ROW_HEIGHT_ESTIMATE: 42;
3
+ readonly OVERSCAN: 5;
4
+ readonly MIN_COLUMN_SIZE: 50;
5
+ readonly MAX_COLUMN_SIZE: 500;
6
+ };
7
+ export declare const SCROLL_BUTTON_CONFIG: {
8
+ readonly SIZE: 50;
9
+ readonly BOTTOM_OFFSET: 25;
10
+ readonly RIGHT_OFFSET: 25;
11
+ readonly BORDER_RADIUS: 25;
12
+ readonly PADDING_TOP: 4;
13
+ };
14
+ export declare const SCROLL_THRESHOLD = 1;
15
+ export declare const TABLE_STYLES: {
16
+ readonly HEADER_FONT_SIZE: 12;
17
+ readonly CELL_PADDING: "3px 0px";
18
+ readonly RESIZER_WIDTH: "3px";
19
+ readonly RESIZER_MARGIN: "2px";
20
+ };
21
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../../src/screens/logger/logsTable/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY;;;;;CAKf,CAAC;AAEX,eAAO,MAAM,oBAAoB;;;;;;CAMvB,CAAC;AAEX,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC,eAAO,MAAM,YAAY;;;;;CAKf,CAAC"}
@@ -0,0 +1,21 @@
1
+ export const TABLE_CONFIG = {
2
+ ROW_HEIGHT_ESTIMATE: 42,
3
+ OVERSCAN: 5,
4
+ MIN_COLUMN_SIZE: 50,
5
+ MAX_COLUMN_SIZE: 500,
6
+ };
7
+ export const SCROLL_BUTTON_CONFIG = {
8
+ SIZE: 50,
9
+ BOTTOM_OFFSET: 25,
10
+ RIGHT_OFFSET: 25,
11
+ BORDER_RADIUS: 25,
12
+ PADDING_TOP: 4,
13
+ };
14
+ export const SCROLL_THRESHOLD = 1;
15
+ export const TABLE_STYLES = {
16
+ HEADER_FONT_SIZE: 12,
17
+ CELL_PADDING: "3px 0px",
18
+ RESIZER_WIDTH: "3px",
19
+ RESIZER_MARGIN: "2px",
20
+ };
21
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../src/screens/logger/logsTable/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,mBAAmB,EAAE,EAAE;IACvB,QAAQ,EAAE,CAAC;IACX,eAAe,EAAE,EAAE;IACnB,eAAe,EAAE,GAAG;CACZ,CAAC;AAEX,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,IAAI,EAAE,EAAE;IACR,aAAa,EAAE,EAAE;IACjB,YAAY,EAAE,EAAE;IAChB,aAAa,EAAE,EAAE;IACjB,WAAW,EAAE,CAAC;CACN,CAAC;AAEX,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAElC,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,gBAAgB,EAAE,EAAE;IACpB,YAAY,EAAE,SAAS;IACvB,aAAa,EAAE,KAAK;IACpB,cAAc,EAAE,KAAK;CACb,CAAC"}
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ import { type LogData } from "../types";
3
+ type ScrollableLogTableProps = {
4
+ data: Array<LogData>;
5
+ highlightedIndices?: Set<number>;
6
+ currentHighlightIndex?: number;
7
+ scrollToIndex?: number;
8
+ };
9
+ export declare const LogsTable: React.FC<ScrollableLogTableProps>;
10
+ export {};
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/screens/logger/logsTable/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8C,MAAM,OAAO,CAAC;AASnE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,UAAU,CAAC;AA0CxC,KAAK,uBAAuB,GAAG;IAC7B,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACrB,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACjC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CA8HvD,CAAC"}