@flanksource/clicky-ui 0.3.49 → 0.3.50

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 (384) hide show
  1. package/dist/connections/ConnectionsPage.cjs +219 -0
  2. package/dist/connections/ConnectionsPage.cjs.map +1 -0
  3. package/dist/connections/ConnectionsPage.d.ts +23 -0
  4. package/dist/connections/ConnectionsPage.d.ts.map +1 -0
  5. package/dist/connections/ConnectionsPage.js +219 -0
  6. package/dist/connections/ConnectionsPage.js.map +1 -0
  7. package/dist/connections/connectionActionStatus.cjs +43 -0
  8. package/dist/connections/connectionActionStatus.cjs.map +1 -0
  9. package/dist/connections/connectionActionStatus.d.ts +5 -0
  10. package/dist/connections/connectionActionStatus.d.ts.map +1 -0
  11. package/dist/connections/connectionActionStatus.js +43 -0
  12. package/dist/connections/connectionActionStatus.js.map +1 -0
  13. package/dist/connections/connectionActionTypes.cjs +24 -0
  14. package/dist/connections/connectionActionTypes.cjs.map +1 -0
  15. package/dist/connections/connectionActionTypes.d.ts +36 -0
  16. package/dist/connections/connectionActionTypes.d.ts.map +1 -0
  17. package/dist/connections/connectionActionTypes.js +24 -0
  18. package/dist/connections/connectionActionTypes.js.map +1 -0
  19. package/dist/connections/connectionActions.cjs +11 -0
  20. package/dist/connections/connectionActions.cjs.map +1 -0
  21. package/dist/connections/connectionActions.d.ts +15 -0
  22. package/dist/connections/connectionActions.d.ts.map +1 -0
  23. package/dist/connections/connectionActions.js +11 -0
  24. package/dist/connections/connectionActions.js.map +1 -0
  25. package/dist/connections/connectionDashboard.cjs +185 -0
  26. package/dist/connections/connectionDashboard.cjs.map +1 -0
  27. package/dist/connections/connectionDashboard.d.ts +25 -0
  28. package/dist/connections/connectionDashboard.d.ts.map +1 -0
  29. package/dist/connections/connectionDashboard.js +185 -0
  30. package/dist/connections/connectionDashboard.js.map +1 -0
  31. package/dist/connections/connectionDashboardModel.cjs +43 -0
  32. package/dist/connections/connectionDashboardModel.cjs.map +1 -0
  33. package/dist/connections/connectionDashboardModel.d.ts +75 -0
  34. package/dist/connections/connectionDashboardModel.d.ts.map +1 -0
  35. package/dist/connections/connectionDashboardModel.js +43 -0
  36. package/dist/connections/connectionDashboardModel.js.map +1 -0
  37. package/dist/connections/connectionDashboardRenderer.cjs +21 -0
  38. package/dist/connections/connectionDashboardRenderer.cjs.map +1 -0
  39. package/dist/connections/connectionDashboardRenderer.d.ts +15 -0
  40. package/dist/connections/connectionDashboardRenderer.d.ts.map +1 -0
  41. package/dist/connections/connectionDashboardRenderer.js +21 -0
  42. package/dist/connections/connectionDashboardRenderer.js.map +1 -0
  43. package/dist/connections/connectionDashboardRow.cjs +169 -0
  44. package/dist/connections/connectionDashboardRow.cjs.map +1 -0
  45. package/dist/connections/connectionDashboardRow.d.ts +12 -0
  46. package/dist/connections/connectionDashboardRow.d.ts.map +1 -0
  47. package/dist/connections/connectionDashboardRow.js +169 -0
  48. package/dist/connections/connectionDashboardRow.js.map +1 -0
  49. package/dist/connections/connectionErrorView.cjs +8 -0
  50. package/dist/connections/connectionErrorView.cjs.map +1 -0
  51. package/dist/connections/connectionErrorView.d.ts +4 -0
  52. package/dist/connections/connectionErrorView.d.ts.map +1 -0
  53. package/dist/connections/connectionErrorView.js +8 -0
  54. package/dist/connections/connectionErrorView.js.map +1 -0
  55. package/dist/connections/connectionHealth.cjs +82 -0
  56. package/dist/connections/connectionHealth.cjs.map +1 -0
  57. package/dist/connections/connectionHealth.d.ts +33 -0
  58. package/dist/connections/connectionHealth.d.ts.map +1 -0
  59. package/dist/connections/connectionHealth.js +82 -0
  60. package/dist/connections/connectionHealth.js.map +1 -0
  61. package/dist/connections/connectionLogging.cjs +29 -0
  62. package/dist/connections/connectionLogging.cjs.map +1 -0
  63. package/dist/connections/connectionLogging.d.ts +11 -0
  64. package/dist/connections/connectionLogging.d.ts.map +1 -0
  65. package/dist/connections/connectionLogging.js +29 -0
  66. package/dist/connections/connectionLogging.js.map +1 -0
  67. package/dist/connections/connectionLoggingField.cjs +37 -0
  68. package/dist/connections/connectionLoggingField.cjs.map +1 -0
  69. package/dist/connections/connectionLoggingField.d.ts +12 -0
  70. package/dist/connections/connectionLoggingField.d.ts.map +1 -0
  71. package/dist/connections/connectionLoggingField.js +37 -0
  72. package/dist/connections/connectionLoggingField.js.map +1 -0
  73. package/dist/connections/connectionLoggingModel.cjs +16 -0
  74. package/dist/connections/connectionLoggingModel.cjs.map +1 -0
  75. package/dist/connections/connectionLoggingModel.d.ts +6 -0
  76. package/dist/connections/connectionLoggingModel.d.ts.map +1 -0
  77. package/dist/connections/connectionLoggingModel.js +16 -0
  78. package/dist/connections/connectionLoggingModel.js.map +1 -0
  79. package/dist/connections/connectionResolveView.cjs +24 -0
  80. package/dist/connections/connectionResolveView.cjs.map +1 -0
  81. package/dist/connections/connectionResolveView.d.ts +5 -0
  82. package/dist/connections/connectionResolveView.d.ts.map +1 -0
  83. package/dist/connections/connectionResolveView.js +24 -0
  84. package/dist/connections/connectionResolveView.js.map +1 -0
  85. package/dist/connections/connectionTestButton.cjs +58 -0
  86. package/dist/connections/connectionTestButton.cjs.map +1 -0
  87. package/dist/connections/connectionTestButton.d.ts +6 -0
  88. package/dist/connections/connectionTestButton.d.ts.map +1 -0
  89. package/dist/connections/connectionTestButton.js +58 -0
  90. package/dist/connections/connectionTestButton.js.map +1 -0
  91. package/dist/connections/connectionTestView.cjs +12 -0
  92. package/dist/connections/connectionTestView.cjs.map +1 -0
  93. package/dist/connections/connectionTestView.d.ts +5 -0
  94. package/dist/connections/connectionTestView.d.ts.map +1 -0
  95. package/dist/connections/connectionTestView.js +12 -0
  96. package/dist/connections/connectionTestView.js.map +1 -0
  97. package/dist/connections/connectionsPageModel.cjs +33 -0
  98. package/dist/connections/connectionsPageModel.cjs.map +1 -0
  99. package/dist/connections/connectionsPageModel.d.ts +24 -0
  100. package/dist/connections/connectionsPageModel.d.ts.map +1 -0
  101. package/dist/connections/connectionsPageModel.js +33 -0
  102. package/dist/connections/connectionsPageModel.js.map +1 -0
  103. package/dist/connections/iconProvider.cjs +20 -0
  104. package/dist/connections/iconProvider.cjs.map +1 -0
  105. package/dist/connections/iconProvider.d.ts +7 -0
  106. package/dist/connections/iconProvider.d.ts.map +1 -0
  107. package/dist/connections/iconProvider.js +20 -0
  108. package/dist/connections/iconProvider.js.map +1 -0
  109. package/dist/connections.cjs +45 -0
  110. package/dist/connections.cjs.map +1 -0
  111. package/dist/connections.d.ts +34 -0
  112. package/dist/connections.d.ts.map +1 -0
  113. package/dist/connections.js +45 -0
  114. package/dist/connections.js.map +1 -0
  115. package/dist/data/diagnostics/DiagnosticsDetailPanel.cjs +52 -295
  116. package/dist/data/diagnostics/DiagnosticsDetailPanel.cjs.map +1 -1
  117. package/dist/data/diagnostics/DiagnosticsDetailPanel.d.ts.map +1 -1
  118. package/dist/data/diagnostics/DiagnosticsDetailPanel.js +47 -290
  119. package/dist/data/diagnostics/DiagnosticsDetailPanel.js.map +1 -1
  120. package/dist/data/diagnostics/MetricTile.cjs +44 -0
  121. package/dist/data/diagnostics/MetricTile.cjs.map +1 -0
  122. package/dist/data/diagnostics/MetricTile.d.ts +13 -0
  123. package/dist/data/diagnostics/MetricTile.d.ts.map +1 -0
  124. package/dist/data/diagnostics/MetricTile.js +44 -0
  125. package/dist/data/diagnostics/MetricTile.js.map +1 -0
  126. package/dist/data/diagnostics/StackDumpView.cjs +227 -0
  127. package/dist/data/diagnostics/StackDumpView.cjs.map +1 -0
  128. package/dist/data/diagnostics/StackDumpView.d.ts +53 -0
  129. package/dist/data/diagnostics/StackDumpView.d.ts.map +1 -0
  130. package/dist/data/diagnostics/StackDumpView.js +227 -0
  131. package/dist/data/diagnostics/StackDumpView.js.map +1 -0
  132. package/dist/data/diagnostics/fixtures.d.ts +1 -0
  133. package/dist/data/diagnostics/fixtures.d.ts.map +1 -1
  134. package/dist/data/diagnostics/metric-tone.cjs +18 -0
  135. package/dist/data/diagnostics/metric-tone.cjs.map +1 -0
  136. package/dist/data/diagnostics/metric-tone.d.ts +6 -0
  137. package/dist/data/diagnostics/metric-tone.d.ts.map +1 -0
  138. package/dist/data/diagnostics/metric-tone.js +18 -0
  139. package/dist/data/diagnostics/metric-tone.js.map +1 -0
  140. package/dist/data/diagnostics/stacktrace.cjs +44 -0
  141. package/dist/data/diagnostics/stacktrace.cjs.map +1 -1
  142. package/dist/data/diagnostics/stacktrace.d.ts +7 -0
  143. package/dist/data/diagnostics/stacktrace.d.ts.map +1 -1
  144. package/dist/data/diagnostics/stacktrace.js +44 -0
  145. package/dist/data/diagnostics/stacktrace.js.map +1 -1
  146. package/dist/data/diagnostics/types.d.ts +2 -8
  147. package/dist/data/diagnostics/types.d.ts.map +1 -1
  148. package/dist/data/lint/LintDetail.cjs +339 -0
  149. package/dist/data/lint/LintDetail.cjs.map +1 -0
  150. package/dist/data/lint/LintDetail.d.ts +17 -0
  151. package/dist/data/lint/LintDetail.d.ts.map +1 -0
  152. package/dist/data/lint/LintDetail.js +339 -0
  153. package/dist/data/lint/LintDetail.js.map +1 -0
  154. package/dist/data/lint/LintFilterBar.cjs +103 -0
  155. package/dist/data/lint/LintFilterBar.cjs.map +1 -0
  156. package/dist/data/lint/LintFilterBar.d.ts +16 -0
  157. package/dist/data/lint/LintFilterBar.d.ts.map +1 -0
  158. package/dist/data/lint/LintFilterBar.js +103 -0
  159. package/dist/data/lint/LintFilterBar.js.map +1 -0
  160. package/dist/data/lint/LintResults.cjs +144 -0
  161. package/dist/data/lint/LintResults.cjs.map +1 -0
  162. package/dist/data/lint/LintResults.d.ts +39 -0
  163. package/dist/data/lint/LintResults.d.ts.map +1 -0
  164. package/dist/data/lint/LintResults.fixtures.d.ts +10 -0
  165. package/dist/data/lint/LintResults.fixtures.d.ts.map +1 -0
  166. package/dist/data/lint/LintResults.js +144 -0
  167. package/dist/data/lint/LintResults.js.map +1 -0
  168. package/dist/data/lint/LintTreeNode.cjs +66 -0
  169. package/dist/data/lint/LintTreeNode.cjs.map +1 -0
  170. package/dist/data/lint/LintTreeNode.d.ts +7 -0
  171. package/dist/data/lint/LintTreeNode.d.ts.map +1 -0
  172. package/dist/data/lint/LintTreeNode.js +66 -0
  173. package/dist/data/lint/LintTreeNode.js.map +1 -0
  174. package/dist/data/lint/actions.cjs +195 -0
  175. package/dist/data/lint/actions.cjs.map +1 -0
  176. package/dist/data/lint/actions.d.ts +29 -0
  177. package/dist/data/lint/actions.d.ts.map +1 -0
  178. package/dist/data/lint/actions.js +195 -0
  179. package/dist/data/lint/actions.js.map +1 -0
  180. package/dist/data/lint/grouping-options.cjs +14 -0
  181. package/dist/data/lint/grouping-options.cjs.map +1 -0
  182. package/dist/data/lint/grouping-options.d.ts +9 -0
  183. package/dist/data/lint/grouping-options.d.ts.map +1 -0
  184. package/dist/data/lint/grouping-options.js +14 -0
  185. package/dist/data/lint/grouping-options.js.map +1 -0
  186. package/dist/data/lint/grouping.cjs +450 -0
  187. package/dist/data/lint/grouping.cjs.map +1 -0
  188. package/dist/data/lint/grouping.d.ts +10 -0
  189. package/dist/data/lint/grouping.d.ts.map +1 -0
  190. package/dist/data/lint/grouping.js +450 -0
  191. package/dist/data/lint/grouping.js.map +1 -0
  192. package/dist/data/lint/index.d.ts +10 -0
  193. package/dist/data/lint/index.d.ts.map +1 -0
  194. package/dist/data/lint/paths.cjs +35 -0
  195. package/dist/data/lint/paths.cjs.map +1 -0
  196. package/dist/data/lint/paths.d.ts +13 -0
  197. package/dist/data/lint/paths.d.ts.map +1 -0
  198. package/dist/data/lint/paths.js +35 -0
  199. package/dist/data/lint/paths.js.map +1 -0
  200. package/dist/data/lint/stats.cjs +76 -0
  201. package/dist/data/lint/stats.cjs.map +1 -0
  202. package/dist/data/lint/stats.d.ts +19 -0
  203. package/dist/data/lint/stats.d.ts.map +1 -0
  204. package/dist/data/lint/stats.js +76 -0
  205. package/dist/data/lint/stats.js.map +1 -0
  206. package/dist/data/lint/types.cjs +16 -0
  207. package/dist/data/lint/types.cjs.map +1 -0
  208. package/dist/data/lint/types.d.ts +93 -0
  209. package/dist/data/lint/types.d.ts.map +1 -0
  210. package/dist/data/lint/types.js +16 -0
  211. package/dist/data/lint/types.js.map +1 -0
  212. package/dist/data/test-runner/TestAttemptDetail.cjs +113 -0
  213. package/dist/data/test-runner/TestAttemptDetail.cjs.map +1 -0
  214. package/dist/data/test-runner/TestAttemptDetail.d.ts +19 -0
  215. package/dist/data/test-runner/TestAttemptDetail.d.ts.map +1 -0
  216. package/dist/data/test-runner/TestAttemptDetail.js +113 -0
  217. package/dist/data/test-runner/TestAttemptDetail.js.map +1 -0
  218. package/dist/data/test-runner/TestAttempts.cjs +36 -0
  219. package/dist/data/test-runner/TestAttempts.cjs.map +1 -0
  220. package/dist/data/test-runner/TestAttempts.d.ts +5 -0
  221. package/dist/data/test-runner/TestAttempts.d.ts.map +1 -0
  222. package/dist/data/test-runner/TestAttempts.js +36 -0
  223. package/dist/data/test-runner/TestAttempts.js.map +1 -0
  224. package/dist/data/test-runner/TestDetailPanel.cjs +13 -3
  225. package/dist/data/test-runner/TestDetailPanel.cjs.map +1 -1
  226. package/dist/data/test-runner/TestDetailPanel.d.ts.map +1 -1
  227. package/dist/data/test-runner/TestDetailPanel.js +14 -4
  228. package/dist/data/test-runner/TestDetailPanel.js.map +1 -1
  229. package/dist/data/test-runner/TestFailureDetail.cjs +9 -29
  230. package/dist/data/test-runner/TestFailureDetail.cjs.map +1 -1
  231. package/dist/data/test-runner/TestFailureDetail.d.ts +6 -6
  232. package/dist/data/test-runner/TestFailureDetail.d.ts.map +1 -1
  233. package/dist/data/test-runner/TestFailureDetail.js +9 -29
  234. package/dist/data/test-runner/TestFailureDetail.js.map +1 -1
  235. package/dist/data/test-runner/TestRunSummary.cjs +33 -0
  236. package/dist/data/test-runner/TestRunSummary.cjs.map +1 -1
  237. package/dist/data/test-runner/TestRunSummary.d.ts.map +1 -1
  238. package/dist/data/test-runner/TestRunSummary.js +34 -1
  239. package/dist/data/test-runner/TestRunSummary.js.map +1 -1
  240. package/dist/data/test-runner/TestRunner.cjs +3 -0
  241. package/dist/data/test-runner/TestRunner.cjs.map +1 -1
  242. package/dist/data/test-runner/TestRunner.d.ts +8 -1
  243. package/dist/data/test-runner/TestRunner.d.ts.map +1 -1
  244. package/dist/data/test-runner/TestRunner.js +3 -0
  245. package/dist/data/test-runner/TestRunner.js.map +1 -1
  246. package/dist/data/test-runner/TestTreeNode.cjs +3 -1
  247. package/dist/data/test-runner/TestTreeNode.cjs.map +1 -1
  248. package/dist/data/test-runner/TestTreeNode.d.ts.map +1 -1
  249. package/dist/data/test-runner/TestTreeNode.js +3 -1
  250. package/dist/data/test-runner/TestTreeNode.js.map +1 -1
  251. package/dist/data/test-runner/adapter.cjs +9 -1
  252. package/dist/data/test-runner/adapter.cjs.map +1 -1
  253. package/dist/data/test-runner/adapter.d.ts +5 -0
  254. package/dist/data/test-runner/adapter.d.ts.map +1 -1
  255. package/dist/data/test-runner/adapter.js +9 -1
  256. package/dist/data/test-runner/adapter.js.map +1 -1
  257. package/dist/data/test-runner/attempts.cjs +62 -0
  258. package/dist/data/test-runner/attempts.cjs.map +1 -0
  259. package/dist/data/test-runner/attempts.d.ts +13 -0
  260. package/dist/data/test-runner/attempts.d.ts.map +1 -0
  261. package/dist/data/test-runner/attempts.js +62 -0
  262. package/dist/data/test-runner/attempts.js.map +1 -0
  263. package/dist/data/test-runner/context.cjs.map +1 -1
  264. package/dist/data/test-runner/context.d.ts +6 -0
  265. package/dist/data/test-runner/context.d.ts.map +1 -1
  266. package/dist/data/test-runner/context.js.map +1 -1
  267. package/dist/data/test-runner/index.d.ts +5 -1
  268. package/dist/data/test-runner/index.d.ts.map +1 -1
  269. package/dist/data/test-runner/marks.cjs +2 -0
  270. package/dist/data/test-runner/marks.cjs.map +1 -1
  271. package/dist/data/test-runner/marks.d.ts.map +1 -1
  272. package/dist/data/test-runner/marks.js +2 -0
  273. package/dist/data/test-runner/marks.js.map +1 -1
  274. package/dist/data/test-runner/process-metrics.cjs +15 -0
  275. package/dist/data/test-runner/process-metrics.cjs.map +1 -0
  276. package/dist/data/test-runner/process-metrics.d.ts +22 -0
  277. package/dist/data/test-runner/process-metrics.d.ts.map +1 -0
  278. package/dist/data/test-runner/process-metrics.js +15 -0
  279. package/dist/data/test-runner/process-metrics.js.map +1 -0
  280. package/dist/data/test-runner/status.cjs +11 -3
  281. package/dist/data/test-runner/status.cjs.map +1 -1
  282. package/dist/data/test-runner/status.d.ts +3 -1
  283. package/dist/data/test-runner/status.d.ts.map +1 -1
  284. package/dist/data/test-runner/status.js +11 -3
  285. package/dist/data/test-runner/status.js.map +1 -1
  286. package/dist/data/test-runner/types.d.ts +14 -0
  287. package/dist/data/test-runner/types.d.ts.map +1 -1
  288. package/dist/data/traces/GoProfileView.cjs +176 -0
  289. package/dist/data/traces/GoProfileView.cjs.map +1 -0
  290. package/dist/data/traces/GoProfileView.d.ts +30 -0
  291. package/dist/data/traces/GoProfileView.d.ts.map +1 -0
  292. package/dist/data/traces/GoProfileView.js +176 -0
  293. package/dist/data/traces/GoProfileView.js.map +1 -0
  294. package/dist/data/traces/ProcessFacetTable.cjs +79 -0
  295. package/dist/data/traces/ProcessFacetTable.cjs.map +1 -0
  296. package/dist/data/traces/ProcessFacetTable.d.ts +21 -0
  297. package/dist/data/traces/ProcessFacetTable.d.ts.map +1 -0
  298. package/dist/data/traces/ProcessFacetTable.js +79 -0
  299. package/dist/data/traces/ProcessFacetTable.js.map +1 -0
  300. package/dist/data/traces/ProcessRecordViews.cjs +41 -0
  301. package/dist/data/traces/ProcessRecordViews.cjs.map +1 -0
  302. package/dist/data/traces/ProcessRecordViews.d.ts +16 -0
  303. package/dist/data/traces/ProcessRecordViews.d.ts.map +1 -0
  304. package/dist/data/traces/ProcessRecordViews.js +41 -0
  305. package/dist/data/traces/ProcessRecordViews.js.map +1 -0
  306. package/dist/data/traces/ProcessTraceDetail.cjs +316 -0
  307. package/dist/data/traces/ProcessTraceDetail.cjs.map +1 -0
  308. package/dist/data/traces/ProcessTraceDetail.d.ts +39 -0
  309. package/dist/data/traces/ProcessTraceDetail.d.ts.map +1 -0
  310. package/dist/data/traces/ProcessTraceDetail.js +316 -0
  311. package/dist/data/traces/ProcessTraceDetail.js.map +1 -0
  312. package/dist/data/traces/ProcessTraceTree.cjs +76 -34
  313. package/dist/data/traces/ProcessTraceTree.cjs.map +1 -1
  314. package/dist/data/traces/ProcessTraceTree.d.ts +21 -4
  315. package/dist/data/traces/ProcessTraceTree.d.ts.map +1 -1
  316. package/dist/data/traces/ProcessTraceTree.js +72 -30
  317. package/dist/data/traces/ProcessTraceTree.js.map +1 -1
  318. package/dist/data/traces/Sparkline.cjs +27 -5
  319. package/dist/data/traces/Sparkline.cjs.map +1 -1
  320. package/dist/data/traces/Sparkline.d.ts +17 -1
  321. package/dist/data/traces/Sparkline.d.ts.map +1 -1
  322. package/dist/data/traces/Sparkline.js +28 -6
  323. package/dist/data/traces/Sparkline.js.map +1 -1
  324. package/dist/data/traces/TraceView.cjs +9 -0
  325. package/dist/data/traces/TraceView.cjs.map +1 -1
  326. package/dist/data/traces/TraceView.d.ts +4 -2
  327. package/dist/data/traces/TraceView.d.ts.map +1 -1
  328. package/dist/data/traces/TraceView.js +9 -0
  329. package/dist/data/traces/TraceView.js.map +1 -1
  330. package/dist/data/traces/TraceWindowList.cjs +117 -0
  331. package/dist/data/traces/TraceWindowList.cjs.map +1 -0
  332. package/dist/data/traces/TraceWindowList.d.ts +48 -0
  333. package/dist/data/traces/TraceWindowList.d.ts.map +1 -0
  334. package/dist/data/traces/TraceWindowList.js +117 -0
  335. package/dist/data/traces/TraceWindowList.js.map +1 -0
  336. package/dist/data/traces/fixtures.d.ts +25 -1
  337. package/dist/data/traces/fixtures.d.ts.map +1 -1
  338. package/dist/data/traces/index.d.ts +10 -3
  339. package/dist/data/traces/index.d.ts.map +1 -1
  340. package/dist/data/traces/process-facets.cjs +48 -0
  341. package/dist/data/traces/process-facets.cjs.map +1 -0
  342. package/dist/data/traces/process-facets.d.ts +38 -0
  343. package/dist/data/traces/process-facets.d.ts.map +1 -0
  344. package/dist/data/traces/process-facets.js +48 -0
  345. package/dist/data/traces/process-facets.js.map +1 -0
  346. package/dist/data/traces/process-tree.cjs +36 -4
  347. package/dist/data/traces/process-tree.cjs.map +1 -1
  348. package/dist/data/traces/process-tree.d.ts +20 -1
  349. package/dist/data/traces/process-tree.d.ts.map +1 -1
  350. package/dist/data/traces/process-tree.js +36 -4
  351. package/dist/data/traces/process-tree.js.map +1 -1
  352. package/dist/data/traces/profile-aggregate.cjs +78 -0
  353. package/dist/data/traces/profile-aggregate.cjs.map +1 -0
  354. package/dist/data/traces/profile-aggregate.d.ts +41 -0
  355. package/dist/data/traces/profile-aggregate.d.ts.map +1 -0
  356. package/dist/data/traces/profile-aggregate.js +78 -0
  357. package/dist/data/traces/profile-aggregate.js.map +1 -0
  358. package/dist/data/traces/stack-checkpoints.cjs +22 -0
  359. package/dist/data/traces/stack-checkpoints.cjs.map +1 -0
  360. package/dist/data/traces/stack-checkpoints.d.ts +18 -0
  361. package/dist/data/traces/stack-checkpoints.d.ts.map +1 -0
  362. package/dist/data/traces/stack-checkpoints.js +22 -0
  363. package/dist/data/traces/stack-checkpoints.js.map +1 -0
  364. package/dist/data/traces/types.d.ts +120 -5
  365. package/dist/data/traces/types.d.ts.map +1 -1
  366. package/dist/data/verification/adapters.cjs +1 -0
  367. package/dist/data/verification/adapters.cjs.map +1 -1
  368. package/dist/data/verification/adapters.d.ts.map +1 -1
  369. package/dist/data/verification/adapters.js +1 -0
  370. package/dist/data/verification/adapters.js.map +1 -1
  371. package/dist/data/version-info.cjs +3 -3
  372. package/dist/data/version-info.js +3 -3
  373. package/dist/data.cjs +85 -7
  374. package/dist/data.cjs.map +1 -1
  375. package/dist/data.d.ts +4 -0
  376. package/dist/data.d.ts.map +1 -1
  377. package/dist/data.js +81 -3
  378. package/dist/data.js.map +1 -1
  379. package/dist/index.cjs +87 -9
  380. package/dist/index.cjs.map +1 -1
  381. package/dist/index.js +81 -3
  382. package/dist/index.js.map +1 -1
  383. package/dist/styles.css +1 -1
  384. package/package.json +6 -1
@@ -0,0 +1,339 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const button = require("../../components/button.cjs");
5
+ const Icon = require("../Icon.cjs");
6
+ const utils = require("../../lib/utils.cjs");
7
+ const MarkIcons = require("../test-runner/MarkIcons.cjs");
8
+ const status = require("../test-runner/status.cjs");
9
+ const actions = require("./actions.cjs");
10
+ const stats = require("./stats.cjs");
11
+ const UiListChecks = require("../../icons/components/UiListChecks.cjs");
12
+ const UiEyeClosed = require("../../icons/components/UiEyeClosed.cjs");
13
+ function Section({ title, children }) {
14
+ return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "space-y-1.5", children: [
15
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-[10px] uppercase tracking-wide text-muted-foreground", children: title }),
16
+ children
17
+ ] });
18
+ }
19
+ function Mono({ children, className }) {
20
+ return /* @__PURE__ */ jsxRuntime.jsx("span", { className: utils.cn("break-all font-mono text-sm", className), children });
21
+ }
22
+ function Pre({ children, tone }) {
23
+ return /* @__PURE__ */ jsxRuntime.jsx(
24
+ "pre",
25
+ {
26
+ className: utils.cn(
27
+ "max-h-80 overflow-auto whitespace-pre-wrap break-words rounded bg-muted p-3 font-mono text-xs",
28
+ tone === "error" && "bg-red-500/10 text-red-700 dark:text-red-300"
29
+ ),
30
+ children
31
+ }
32
+ );
33
+ }
34
+ function IgnoreButton({
35
+ action,
36
+ onIgnore,
37
+ disabled
38
+ }) {
39
+ const subtle = action.variant === "subtle";
40
+ return /* @__PURE__ */ jsxRuntime.jsxs(
41
+ button.Button,
42
+ {
43
+ type: "button",
44
+ size: "sm",
45
+ variant: "outline",
46
+ className: utils.cn(
47
+ "h-6 gap-1 px-2 text-xs",
48
+ subtle ? "text-muted-foreground" : "border-amber-500/50 bg-amber-500/10 text-amber-800 hover:bg-amber-500/20 dark:text-amber-300"
49
+ ),
50
+ title: action.title,
51
+ disabled,
52
+ onClick: (event) => {
53
+ event.stopPropagation();
54
+ void onIgnore(action);
55
+ },
56
+ children: [
57
+ /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon: UiEyeClosed.UiEyeClosed, className: "text-xs" }),
58
+ action.label
59
+ ]
60
+ }
61
+ );
62
+ }
63
+ function ActionList({ actions: actions2, onIgnore, ignoreBusy }) {
64
+ if (!onIgnore || actions2.length === 0) return null;
65
+ return /* @__PURE__ */ jsxRuntime.jsx(Section, { title: "Actions", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1.5", children: actions2.map((action) => /* @__PURE__ */ jsxRuntime.jsx(
66
+ IgnoreButton,
67
+ {
68
+ action,
69
+ onIgnore,
70
+ disabled: Boolean(ignoreBusy) || Boolean(action.disabledWithoutWorkDir) && !action.req.work_dir
71
+ },
72
+ action.key
73
+ )) }) });
74
+ }
75
+ function violationLocation(v, withFile) {
76
+ const position = `:${v.line ?? 0}${v.column ? `:${v.column}` : ""}`;
77
+ return withFile && v.file ? `${v.file}${position}` : position;
78
+ }
79
+ function ViolationCard({
80
+ violation,
81
+ linter,
82
+ file,
83
+ workDir,
84
+ showFile,
85
+ onIgnore,
86
+ ignoreBusy
87
+ }) {
88
+ var _a;
89
+ const rule = ((_a = violation.rule) == null ? void 0 : _a.method) ?? "";
90
+ const ignore = onIgnore ? actions.violationIgnoreAction({ violation, linter, file, workDir }) : null;
91
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded border border-border bg-card p-2", "data-lint-violation": "", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-2", children: [
92
+ /* @__PURE__ */ jsxRuntime.jsx(MarkIcons.LintSeverityIcon, { severity: stats.severityOf(violation), className: "mt-0.5 text-base" }),
93
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
94
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-2 font-mono text-xs text-muted-foreground", children: [
95
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: violationLocation(violation, Boolean(showFile)) }),
96
+ rule && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-foreground", children: [
97
+ "[",
98
+ rule,
99
+ "]"
100
+ ] })
101
+ ] }),
102
+ violation.message && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-0.5 whitespace-pre-wrap text-sm", children: violation.message }),
103
+ violation.code && /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "mt-1 overflow-x-auto rounded bg-muted p-2 font-mono text-xs", children: violation.code }),
104
+ ignore && onIgnore && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-1.5", children: /* @__PURE__ */ jsxRuntime.jsx(IgnoreButton, { action: ignore, onIgnore, disabled: Boolean(ignoreBusy) }) })
105
+ ] })
106
+ ] }) });
107
+ }
108
+ function groupViolationsByRule(violations) {
109
+ var _a;
110
+ const grouped = /* @__PURE__ */ new Map();
111
+ for (const v of violations) {
112
+ const key = ((_a = v.rule) == null ? void 0 : _a.method) || "(no rule)";
113
+ grouped.set(key, [...grouped.get(key) ?? [], v]);
114
+ }
115
+ return Array.from(grouped.keys()).sort().map((rule) => ({
116
+ rule,
117
+ violations: grouped.get(rule).slice().sort((a, b) => (a.line ?? 0) - (b.line ?? 0))
118
+ }));
119
+ }
120
+ function shellQuote(s) {
121
+ if (s === "") return "''";
122
+ return /^[A-Za-z0-9_./:=@%+,-]+$/.test(s) ? s : `'${s.replace(/'/g, `'\\''`)}'`;
123
+ }
124
+ function formatLinterCommand(result) {
125
+ return result.command ? [result.command, ...result.args ?? []].map(shellQuote).join(" ") : "";
126
+ }
127
+ function ResultStatus({ result }) {
128
+ const [label, tone] = result.skipped ? ["skipped", "text-muted-foreground"] : result.timed_out ? ["timed out", "text-amber-600 dark:text-amber-400"] : stats.isLinterErrored(result) ? ["failed", "text-red-600 dark:text-red-400"] : ["ran", "text-emerald-600 dark:text-emerald-400"];
129
+ const count = (result.violations ?? []).length;
130
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap gap-3 text-sm", children: [
131
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: tone, children: label }),
132
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-muted-foreground", children: [
133
+ count,
134
+ " violation",
135
+ count === 1 ? "" : "s"
136
+ ] }),
137
+ result.file_count !== void 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-muted-foreground", children: [
138
+ result.file_count,
139
+ " files"
140
+ ] }),
141
+ result.rule_count !== void 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-muted-foreground", children: [
142
+ result.rule_count,
143
+ " rules"
144
+ ] }),
145
+ result.duration ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: status.formatTestDuration(result.duration) }) : null
146
+ ] });
147
+ }
148
+ function ResultDetails({ result, workDir }) {
149
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
150
+ /* @__PURE__ */ jsxRuntime.jsx(Section, { title: "Status", children: /* @__PURE__ */ jsxRuntime.jsx(ResultStatus, { result }) }),
151
+ result.command && /* @__PURE__ */ jsxRuntime.jsxs(Section, { title: "Command", children: [
152
+ /* @__PURE__ */ jsxRuntime.jsx(Pre, { children: formatLinterCommand(result) }),
153
+ workDir && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "font-mono text-xs text-muted-foreground", children: [
154
+ "cwd: ",
155
+ workDir
156
+ ] })
157
+ ] })
158
+ ] });
159
+ }
160
+ function NoFileViolations({
161
+ violations,
162
+ linter,
163
+ workDir
164
+ }) {
165
+ if (violations.length === 0) return null;
166
+ return /* @__PURE__ */ jsxRuntime.jsx(Section, { title: "Violations Without File", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-3", children: groupViolationsByRule(violations).map(({ rule, violations: group }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2 rounded border border-border bg-muted/40 p-3", children: [
167
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "font-mono text-sm", children: [
168
+ rule,
169
+ " ",
170
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-xs text-muted-foreground", children: [
171
+ "(",
172
+ group.length,
173
+ ")"
174
+ ] })
175
+ ] }),
176
+ group.map((v, i) => /* @__PURE__ */ jsxRuntime.jsx(ViolationCard, { violation: v, linter, file: "", workDir }, i))
177
+ ] }, rule)) }) });
178
+ }
179
+ function LinterDetail({ node, actions: actions2, ...ignore }) {
180
+ const result = node.linter;
181
+ const linter = node.linterName ?? (result == null ? void 0 : result.linter) ?? "";
182
+ const workDir = node.work_dir ?? (result == null ? void 0 : result.work_dir) ?? "";
183
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
184
+ result && /* @__PURE__ */ jsxRuntime.jsx(ResultDetails, { result, workDir }),
185
+ /* @__PURE__ */ jsxRuntime.jsx(ActionList, { actions: actions2, ...ignore }),
186
+ (result == null ? void 0 : result.error) && /* @__PURE__ */ jsxRuntime.jsx(Section, { title: "Error", children: /* @__PURE__ */ jsxRuntime.jsx(Pre, { tone: "error", children: result.error }) }),
187
+ (result == null ? void 0 : result.raw_output) && /* @__PURE__ */ jsxRuntime.jsx(Section, { title: "Raw output", children: /* @__PURE__ */ jsxRuntime.jsx(Pre, { children: result.raw_output }) }),
188
+ /* @__PURE__ */ jsxRuntime.jsx(NoFileViolations, { violations: node.noFileViolations ?? [], linter, workDir })
189
+ ] });
190
+ }
191
+ function LinterErrorDetail({ node }) {
192
+ const result = node.linter;
193
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
194
+ /* @__PURE__ */ jsxRuntime.jsx(Section, { title: "Error", children: /* @__PURE__ */ jsxRuntime.jsx(Pre, { tone: "error", children: node.message }) }),
195
+ result && /* @__PURE__ */ jsxRuntime.jsx(ResultDetails, { result, workDir: result.work_dir ?? "" }),
196
+ (result == null ? void 0 : result.raw_output) && /* @__PURE__ */ jsxRuntime.jsx(Section, { title: "Raw output", children: /* @__PURE__ */ jsxRuntime.jsx(Pre, { children: result.raw_output }) })
197
+ ] });
198
+ }
199
+ function FolderDetail({
200
+ node,
201
+ results,
202
+ actions: actions$1,
203
+ ...ignore
204
+ }) {
205
+ const stats2 = node.ruleName ? [] : actions.collectFolderLintStats(node, results).filter((s) => !node.linterName || s.linter === node.linterName);
206
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
207
+ /* @__PURE__ */ jsxRuntime.jsx(Section, { title: "Folder", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
208
+ /* @__PURE__ */ jsxRuntime.jsx(Mono, { children: node.file || node.name }),
209
+ node.target_path !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-muted-foreground", children: actions.folderPattern(node.target_path) })
210
+ ] }) }),
211
+ /* @__PURE__ */ jsxRuntime.jsx(ActionList, { actions: actions$1, ...ignore }),
212
+ node.ruleName ? /* @__PURE__ */ jsxRuntime.jsx(Section, { title: "Scope", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1 text-sm", children: [
213
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
214
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: "Linter:" }),
215
+ " ",
216
+ /* @__PURE__ */ jsxRuntime.jsx(Mono, { children: node.linterName })
217
+ ] }),
218
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
219
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: "Rule:" }),
220
+ " ",
221
+ /* @__PURE__ */ jsxRuntime.jsx(Mono, { children: node.ruleName })
222
+ ] })
223
+ ] }) }) : /* @__PURE__ */ jsxRuntime.jsx(Section, { title: "Linters", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1", children: [
224
+ stats2.map(({ linter, count }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between text-sm", children: [
225
+ /* @__PURE__ */ jsxRuntime.jsx(Mono, { children: linter }),
226
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-xs text-muted-foreground", children: [
227
+ count,
228
+ " violations"
229
+ ] })
230
+ ] }, linter)),
231
+ stats2.length === 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm text-muted-foreground", children: "No violations found under this folder." })
232
+ ] }) })
233
+ ] });
234
+ }
235
+ function FileDetail({ node, actions: actions2, ...ignore }) {
236
+ const violations = node.violations ?? [];
237
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
238
+ /* @__PURE__ */ jsxRuntime.jsx(Section, { title: "File", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
239
+ /* @__PURE__ */ jsxRuntime.jsx(Mono, { children: node.file }),
240
+ violations.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-xs text-muted-foreground", children: [
241
+ "(",
242
+ violations.length,
243
+ " violations)"
244
+ ] })
245
+ ] }) }),
246
+ /* @__PURE__ */ jsxRuntime.jsx(ActionList, { actions: actions2, ...ignore }),
247
+ violations.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(Section, { title: "Violations", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-2", children: violations.map((v, i) => /* @__PURE__ */ jsxRuntime.jsx(
248
+ ViolationCard,
249
+ {
250
+ violation: v,
251
+ linter: node.linterName ?? "",
252
+ file: node.target_path || node.file || "",
253
+ workDir: node.work_dir ?? "",
254
+ ...ignore
255
+ },
256
+ i
257
+ )) }) })
258
+ ] });
259
+ }
260
+ function RuleDetail({ node, actions: actions2, ...ignore }) {
261
+ const violations = node.violations ?? [];
262
+ const linter = node.linterName ?? "";
263
+ const workDir = node.work_dir ?? "";
264
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
265
+ /* @__PURE__ */ jsxRuntime.jsxs(Section, { title: "Rule", children: [
266
+ /* @__PURE__ */ jsxRuntime.jsx(Mono, { children: node.ruleName }),
267
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ml-2 text-xs text-muted-foreground", children: [
268
+ "(",
269
+ stats.lintNodeCount(node),
270
+ " violations)"
271
+ ] })
272
+ ] }),
273
+ node.file && /* @__PURE__ */ jsxRuntime.jsx(Section, { title: "File", children: /* @__PURE__ */ jsxRuntime.jsx(Mono, { children: node.file }) }),
274
+ /* @__PURE__ */ jsxRuntime.jsx(ActionList, { actions: actions2, ...ignore }),
275
+ violations.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(Section, { title: "Violations", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-2", children: violations.map((v, i) => /* @__PURE__ */ jsxRuntime.jsx(
276
+ ViolationCard,
277
+ {
278
+ violation: v,
279
+ linter,
280
+ file: v.raw_file || node.target_path || node.file || "",
281
+ workDir,
282
+ showFile: !node.file,
283
+ ...ignore
284
+ },
285
+ i
286
+ )) }) }),
287
+ /* @__PURE__ */ jsxRuntime.jsx(NoFileViolations, { violations: node.noFileViolations ?? [], linter, workDir })
288
+ ] });
289
+ }
290
+ const KIND_LABEL = {
291
+ linter: "Linter",
292
+ "lint-folder": "Folder",
293
+ "lint-file": "File",
294
+ "lint-rule": "Rule",
295
+ "lint-rule-group": "Rule",
296
+ "linter-error": "Linter error"
297
+ };
298
+ function DetailHeader({ node }) {
299
+ const count = node.kind === "linter-error" ? 0 : stats.lintNodeCount(node);
300
+ return /* @__PURE__ */ jsxRuntime.jsxs(
301
+ "div",
302
+ {
303
+ className: "flex min-w-0 items-center gap-2 border-b border-border px-density-4 py-density-2",
304
+ "data-detail-header": "",
305
+ children: [
306
+ node.kind === "linter" ? /* @__PURE__ */ jsxRuntime.jsx(MarkIcons.ToolIcon, { tool: node.linterName, className: "text-lg" }) : node.kind === "linter-error" ? /* @__PURE__ */ jsxRuntime.jsx(MarkIcons.LintSeverityIcon, { severity: "error", className: "text-lg" }) : null,
307
+ /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "min-w-0 shrink truncate text-base font-semibold", title: node.name, children: node.name }),
308
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-flex shrink-0 items-center rounded bg-muted px-1.5 py-0.5 text-xs text-muted-foreground", children: KIND_LABEL[node.kind] }),
309
+ count > 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "shrink-0 text-xs text-muted-foreground", children: [
310
+ count,
311
+ " violation",
312
+ count === 1 ? "" : "s"
313
+ ] })
314
+ ]
315
+ }
316
+ );
317
+ }
318
+ function LintDetailPanel({ node, results, onIgnore, ignoreBusy }) {
319
+ if (!node) {
320
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-full items-center justify-center text-sm text-muted-foreground", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center", children: [
321
+ /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon: UiListChecks.UiListChecks, className: "mb-2 block text-4xl" }),
322
+ "Select a linter, rule or file to view its findings."
323
+ ] }) });
324
+ }
325
+ const ignore = { onIgnore, ignoreBusy };
326
+ const actions$1 = actions.lintNodeActions(node, results);
327
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full min-h-0 flex-col", children: [
328
+ /* @__PURE__ */ jsxRuntime.jsx(DetailHeader, { node }),
329
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-h-0 flex-1 space-y-4 overflow-y-auto p-density-4", children: [
330
+ node.kind === "linter" && /* @__PURE__ */ jsxRuntime.jsx(LinterDetail, { node, actions: actions$1, ...ignore }),
331
+ node.kind === "linter-error" && /* @__PURE__ */ jsxRuntime.jsx(LinterErrorDetail, { node }),
332
+ node.kind === "lint-folder" && /* @__PURE__ */ jsxRuntime.jsx(FolderDetail, { node, results, actions: actions$1, ...ignore }),
333
+ node.kind === "lint-file" && /* @__PURE__ */ jsxRuntime.jsx(FileDetail, { node, actions: actions$1, ...ignore }),
334
+ (node.kind === "lint-rule" || node.kind === "lint-rule-group") && /* @__PURE__ */ jsxRuntime.jsx(RuleDetail, { node, actions: actions$1, ...ignore })
335
+ ] })
336
+ ] });
337
+ }
338
+ exports.LintDetailPanel = LintDetailPanel;
339
+ //# sourceMappingURL=LintDetail.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LintDetail.cjs","sources":["../../../src/data/lint/LintDetail.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { Button } from \"../../components/button\";\nimport { Icon } from \"../Icon\";\nimport { cn } from \"../../lib/utils\";\nimport { UiEyeClosed, UiListChecks } from \"../../icons\";\nimport { LintSeverityIcon, ToolIcon } from \"../test-runner/MarkIcons\";\nimport { formatTestDuration } from \"../test-runner/status\";\nimport {\n collectFolderLintStats,\n folderPattern,\n lintNodeActions,\n violationIgnoreAction,\n} from \"./actions\";\nimport { isLinterErrored, lintNodeCount, severityOf } from \"./stats\";\nimport type { LintAction, LintNode, LinterResult, Violation } from \"./types\";\n\ntype IgnoreProps = {\n onIgnore?: ((action: LintAction) => void | Promise<void>) | undefined;\n ignoreBusy?: boolean | undefined;\n};\n\nfunction Section({ title, children }: { title: string; children: ReactNode }) {\n return (\n <section className=\"space-y-1.5\">\n <h3 className=\"text-[10px] uppercase tracking-wide text-muted-foreground\">{title}</h3>\n {children}\n </section>\n );\n}\n\nfunction Mono({ children, className }: { children: ReactNode; className?: string }) {\n return <span className={cn(\"break-all font-mono text-sm\", className)}>{children}</span>;\n}\n\nfunction Pre({ children, tone }: { children: ReactNode; tone?: \"error\" }) {\n return (\n <pre\n className={cn(\n \"max-h-80 overflow-auto whitespace-pre-wrap break-words rounded bg-muted p-3 font-mono text-xs\",\n tone === \"error\" && \"bg-red-500/10 text-red-700 dark:text-red-300\",\n )}\n >\n {children}\n </pre>\n );\n}\n\nfunction IgnoreButton({\n action,\n onIgnore,\n disabled,\n}: {\n action: LintAction;\n onIgnore: (action: LintAction) => void | Promise<void>;\n disabled: boolean;\n}) {\n const subtle = action.variant === \"subtle\";\n return (\n <Button\n type=\"button\"\n size=\"sm\"\n variant=\"outline\"\n className={cn(\n \"h-6 gap-1 px-2 text-xs\",\n subtle\n ? \"text-muted-foreground\"\n : \"border-amber-500/50 bg-amber-500/10 text-amber-800 hover:bg-amber-500/20 dark:text-amber-300\",\n )}\n title={action.title}\n disabled={disabled}\n onClick={(event) => {\n event.stopPropagation();\n void onIgnore(action);\n }}\n >\n <Icon icon={UiEyeClosed} className=\"text-xs\" />\n {action.label}\n </Button>\n );\n}\n\nfunction ActionList({ actions, onIgnore, ignoreBusy }: IgnoreProps & { actions: LintAction[] }) {\n if (!onIgnore || actions.length === 0) return null;\n return (\n <Section title=\"Actions\">\n <div className=\"flex flex-wrap gap-1.5\">\n {actions.map((action) => (\n <IgnoreButton\n key={action.key}\n action={action}\n onIgnore={onIgnore}\n disabled={Boolean(ignoreBusy) || (Boolean(action.disabledWithoutWorkDir) && !action.req.work_dir)}\n />\n ))}\n </div>\n </Section>\n );\n}\n\nfunction violationLocation(v: Violation, withFile: boolean): string {\n const position = `:${v.line ?? 0}${v.column ? `:${v.column}` : \"\"}`;\n return withFile && v.file ? `${v.file}${position}` : position;\n}\n\nfunction ViolationCard({\n violation,\n linter,\n file,\n workDir,\n showFile,\n onIgnore,\n ignoreBusy,\n}: IgnoreProps & {\n violation: Violation;\n linter: string;\n /** The file an ignore rule targets; empty when the violation has none. */\n file: string;\n workDir: string;\n showFile?: boolean;\n}) {\n const rule = violation.rule?.method ?? \"\";\n const ignore = onIgnore ? violationIgnoreAction({ violation, linter, file, workDir }) : null;\n return (\n <div className=\"rounded border border-border bg-card p-2\" data-lint-violation=\"\">\n <div className=\"flex items-start gap-2\">\n <LintSeverityIcon severity={severityOf(violation)} className=\"mt-0.5 text-base\" />\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex flex-wrap items-center gap-2 font-mono text-xs text-muted-foreground\">\n <span>{violationLocation(violation, Boolean(showFile))}</span>\n {rule && <span className=\"text-foreground\">[{rule}]</span>}\n </div>\n {violation.message && (\n <div className=\"mt-0.5 whitespace-pre-wrap text-sm\">{violation.message}</div>\n )}\n {violation.code && (\n <pre className=\"mt-1 overflow-x-auto rounded bg-muted p-2 font-mono text-xs\">{violation.code}</pre>\n )}\n {ignore && onIgnore && (\n <div className=\"mt-1.5\">\n <IgnoreButton action={ignore} onIgnore={onIgnore} disabled={Boolean(ignoreBusy)} />\n </div>\n )}\n </div>\n </div>\n </div>\n );\n}\n\nfunction groupViolationsByRule(violations: readonly Violation[]): Array<{ rule: string; violations: Violation[] }> {\n const grouped = new Map<string, Violation[]>();\n for (const v of violations) {\n const key = v.rule?.method || \"(no rule)\";\n grouped.set(key, [...(grouped.get(key) ?? []), v]);\n }\n return Array.from(grouped.keys())\n .sort()\n .map((rule) => ({\n rule,\n violations: grouped.get(rule)!.slice().sort((a, b) => (a.line ?? 0) - (b.line ?? 0)),\n }));\n}\n\nfunction shellQuote(s: string): string {\n if (s === \"\") return \"''\";\n return /^[A-Za-z0-9_./:=@%+,-]+$/.test(s) ? s : `'${s.replace(/'/g, `'\\\\''`)}'`;\n}\n\n/** The executed argv, quoted so the line can be pasted into a terminal. */\nfunction formatLinterCommand(result: LinterResult): string {\n return result.command ? [result.command, ...(result.args ?? [])].map(shellQuote).join(\" \") : \"\";\n}\n\nfunction ResultStatus({ result }: { result: LinterResult }) {\n const [label, tone] = result.skipped\n ? [\"skipped\", \"text-muted-foreground\"]\n : result.timed_out\n ? [\"timed out\", \"text-amber-600 dark:text-amber-400\"]\n : isLinterErrored(result)\n ? [\"failed\", \"text-red-600 dark:text-red-400\"]\n : [\"ran\", \"text-emerald-600 dark:text-emerald-400\"];\n const count = (result.violations ?? []).length;\n return (\n <div className=\"flex flex-wrap gap-3 text-sm\">\n <span className={tone}>{label}</span>\n <span className=\"text-muted-foreground\">\n {count} violation{count === 1 ? \"\" : \"s\"}\n </span>\n {result.file_count !== undefined && <span className=\"text-muted-foreground\">{result.file_count} files</span>}\n {result.rule_count !== undefined && <span className=\"text-muted-foreground\">{result.rule_count} rules</span>}\n {result.duration ? (\n <span className=\"text-muted-foreground\">{formatTestDuration(result.duration)}</span>\n ) : null}\n </div>\n );\n}\n\nfunction ResultDetails({ result, workDir }: { result: LinterResult; workDir: string }) {\n return (\n <>\n <Section title=\"Status\">\n <ResultStatus result={result} />\n </Section>\n {result.command && (\n <Section title=\"Command\">\n <Pre>{formatLinterCommand(result)}</Pre>\n {workDir && <div className=\"font-mono text-xs text-muted-foreground\">cwd: {workDir}</div>}\n </Section>\n )}\n </>\n );\n}\n\nfunction NoFileViolations({\n violations,\n linter,\n workDir,\n}: {\n violations: readonly Violation[];\n linter: string;\n workDir: string;\n}) {\n if (violations.length === 0) return null;\n return (\n <Section title=\"Violations Without File\">\n <div className=\"space-y-3\">\n {groupViolationsByRule(violations).map(({ rule, violations: group }) => (\n <div key={rule} className=\"space-y-2 rounded border border-border bg-muted/40 p-3\">\n <div className=\"font-mono text-sm\">\n {rule} <span className=\"text-xs text-muted-foreground\">({group.length})</span>\n </div>\n {group.map((v, i) => (\n <ViolationCard key={i} violation={v} linter={linter} file=\"\" workDir={workDir} />\n ))}\n </div>\n ))}\n </div>\n </Section>\n );\n}\n\nfunction LinterDetail({ node, actions, ...ignore }: IgnoreProps & { node: LintNode; actions: LintAction[] }) {\n const result = node.linter;\n const linter = node.linterName ?? result?.linter ?? \"\";\n const workDir = node.work_dir ?? result?.work_dir ?? \"\";\n return (\n <>\n {result && <ResultDetails result={result} workDir={workDir} />}\n <ActionList actions={actions} {...ignore} />\n {result?.error && (\n <Section title=\"Error\">\n <Pre tone=\"error\">{result.error}</Pre>\n </Section>\n )}\n {result?.raw_output && (\n <Section title=\"Raw output\">\n <Pre>{result.raw_output}</Pre>\n </Section>\n )}\n <NoFileViolations violations={node.noFileViolations ?? []} linter={linter} workDir={workDir} />\n </>\n );\n}\n\nfunction LinterErrorDetail({ node }: { node: LintNode }) {\n const result = node.linter;\n return (\n <>\n <Section title=\"Error\">\n <Pre tone=\"error\">{node.message}</Pre>\n </Section>\n {result && <ResultDetails result={result} workDir={result.work_dir ?? \"\"} />}\n {result?.raw_output && (\n <Section title=\"Raw output\">\n <Pre>{result.raw_output}</Pre>\n </Section>\n )}\n </>\n );\n}\n\nfunction FolderDetail({\n node,\n results,\n actions,\n ...ignore\n}: IgnoreProps & { node: LintNode; results: readonly LinterResult[]; actions: LintAction[] }) {\n const stats = node.ruleName\n ? []\n : collectFolderLintStats(node, results).filter((s) => !node.linterName || s.linter === node.linterName);\n return (\n <>\n <Section title=\"Folder\">\n <div className=\"flex items-center gap-2\">\n <Mono>{node.file || node.name}</Mono>\n {node.target_path !== undefined && (\n <span className=\"text-xs text-muted-foreground\">{folderPattern(node.target_path)}</span>\n )}\n </div>\n </Section>\n <ActionList actions={actions} {...ignore} />\n {node.ruleName ? (\n <Section title=\"Scope\">\n <div className=\"space-y-1 text-sm\">\n <div>\n <span className=\"text-muted-foreground\">Linter:</span> <Mono>{node.linterName}</Mono>\n </div>\n <div>\n <span className=\"text-muted-foreground\">Rule:</span> <Mono>{node.ruleName}</Mono>\n </div>\n </div>\n </Section>\n ) : (\n <Section title=\"Linters\">\n <div className=\"space-y-1\">\n {stats.map(({ linter, count }) => (\n <div key={linter} className=\"flex items-center justify-between text-sm\">\n <Mono>{linter}</Mono>\n <span className=\"text-xs text-muted-foreground\">{count} violations</span>\n </div>\n ))}\n {stats.length === 0 && (\n <div className=\"text-sm text-muted-foreground\">No violations found under this folder.</div>\n )}\n </div>\n </Section>\n )}\n </>\n );\n}\n\nfunction FileDetail({ node, actions, ...ignore }: IgnoreProps & { node: LintNode; actions: LintAction[] }) {\n const violations = node.violations ?? [];\n return (\n <>\n <Section title=\"File\">\n <div className=\"flex items-center gap-2\">\n <Mono>{node.file}</Mono>\n {violations.length > 0 && (\n <span className=\"text-xs text-muted-foreground\">({violations.length} violations)</span>\n )}\n </div>\n </Section>\n <ActionList actions={actions} {...ignore} />\n {violations.length > 0 && (\n <Section title=\"Violations\">\n <div className=\"space-y-2\">\n {violations.map((v, i) => (\n <ViolationCard\n key={i}\n violation={v}\n linter={node.linterName ?? \"\"}\n file={node.target_path || node.file || \"\"}\n workDir={node.work_dir ?? \"\"}\n {...ignore}\n />\n ))}\n </div>\n </Section>\n )}\n </>\n );\n}\n\nfunction RuleDetail({ node, actions, ...ignore }: IgnoreProps & { node: LintNode; actions: LintAction[] }) {\n const violations = node.violations ?? [];\n const linter = node.linterName ?? \"\";\n const workDir = node.work_dir ?? \"\";\n return (\n <>\n <Section title=\"Rule\">\n <Mono>{node.ruleName}</Mono>\n <span className=\"ml-2 text-xs text-muted-foreground\">({lintNodeCount(node)} violations)</span>\n </Section>\n {node.file && (\n <Section title=\"File\">\n <Mono>{node.file}</Mono>\n </Section>\n )}\n <ActionList actions={actions} {...ignore} />\n {violations.length > 0 && (\n <Section title=\"Violations\">\n <div className=\"space-y-2\">\n {violations.map((v, i) => (\n <ViolationCard\n key={i}\n violation={v}\n linter={linter}\n file={v.raw_file || node.target_path || node.file || \"\"}\n workDir={workDir}\n showFile={!node.file}\n {...ignore}\n />\n ))}\n </div>\n </Section>\n )}\n <NoFileViolations violations={node.noFileViolations ?? []} linter={linter} workDir={workDir} />\n </>\n );\n}\n\nconst KIND_LABEL: Record<LintNode[\"kind\"], string> = {\n linter: \"Linter\",\n \"lint-folder\": \"Folder\",\n \"lint-file\": \"File\",\n \"lint-rule\": \"Rule\",\n \"lint-rule-group\": \"Rule\",\n \"linter-error\": \"Linter error\",\n};\n\nfunction DetailHeader({ node }: { node: LintNode }) {\n const count = node.kind === \"linter-error\" ? 0 : lintNodeCount(node);\n return (\n <div\n className=\"flex min-w-0 items-center gap-2 border-b border-border px-density-4 py-density-2\"\n data-detail-header=\"\"\n >\n {node.kind === \"linter\" ? (\n <ToolIcon tool={node.linterName} className=\"text-lg\" />\n ) : node.kind === \"linter-error\" ? (\n <LintSeverityIcon severity=\"error\" className=\"text-lg\" />\n ) : null}\n <h2 className=\"min-w-0 shrink truncate text-base font-semibold\" title={node.name}>\n {node.name}\n </h2>\n <span className=\"inline-flex shrink-0 items-center rounded bg-muted px-1.5 py-0.5 text-xs text-muted-foreground\">\n {KIND_LABEL[node.kind]}\n </span>\n {count > 0 && (\n <span className=\"shrink-0 text-xs text-muted-foreground\">\n {count} violation{count === 1 ? \"\" : \"s\"}\n </span>\n )}\n </div>\n );\n}\n\nexport type LintDetailPanelProps = IgnoreProps & {\n node: LintNode | null;\n /** All results, for the folder summary and for folder-scoped ignore actions. */\n results: readonly LinterResult[];\n};\n\n/**\n * The right pane for a lint node: what it covers, the findings beneath it and,\n * when the host provides `onIgnore`, the ignore actions that fit its scope.\n */\nexport function LintDetailPanel({ node, results, onIgnore, ignoreBusy }: LintDetailPanelProps) {\n if (!node) {\n return (\n <div className=\"flex h-full items-center justify-center text-sm text-muted-foreground\">\n <div className=\"text-center\">\n <Icon icon={UiListChecks} className=\"mb-2 block text-4xl\" />\n Select a linter, rule or file to view its findings.\n </div>\n </div>\n );\n }\n const ignore = { onIgnore, ignoreBusy };\n const actions = lintNodeActions(node, results);\n return (\n <div className=\"flex h-full min-h-0 flex-col\">\n <DetailHeader node={node} />\n <div className=\"min-h-0 flex-1 space-y-4 overflow-y-auto p-density-4\">\n {node.kind === \"linter\" && <LinterDetail node={node} actions={actions} {...ignore} />}\n {node.kind === \"linter-error\" && <LinterErrorDetail node={node} />}\n {node.kind === \"lint-folder\" && <FolderDetail node={node} results={results} actions={actions} {...ignore} />}\n {node.kind === \"lint-file\" && <FileDetail node={node} actions={actions} {...ignore} />}\n {(node.kind === \"lint-rule\" || node.kind === \"lint-rule-group\") && (\n <RuleDetail node={node} actions={actions} {...ignore} />\n )}\n </div>\n </div>\n );\n}\n"],"names":["jsxs","jsx","cn","Button","Icon","UiEyeClosed","actions","violationIgnoreAction","LintSeverityIcon","severityOf","isLinterErrored","formatTestDuration","Fragment","stats","collectFolderLintStats","folderPattern","lintNodeCount","ToolIcon","UiListChecks","lintNodeActions"],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { LintAction, LintNode, LinterResult } from './types.js';
2
+ type IgnoreProps = {
3
+ onIgnore?: ((action: LintAction) => void | Promise<void>) | undefined;
4
+ ignoreBusy?: boolean | undefined;
5
+ };
6
+ export type LintDetailPanelProps = IgnoreProps & {
7
+ node: LintNode | null;
8
+ /** All results, for the folder summary and for folder-scoped ignore actions. */
9
+ results: readonly LinterResult[];
10
+ };
11
+ /**
12
+ * The right pane for a lint node: what it covers, the findings beneath it and,
13
+ * when the host provides `onIgnore`, the ignore actions that fit its scope.
14
+ */
15
+ export declare function LintDetailPanel({ node, results, onIgnore, ignoreBusy }: LintDetailPanelProps): import("react").JSX.Element;
16
+ export {};
17
+ //# sourceMappingURL=LintDetail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LintDetail.d.ts","sourceRoot":"","sources":["../../../src/data/lint/LintDetail.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAa,MAAM,SAAS,CAAC;AAE7E,KAAK,WAAW,GAAG;IACjB,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;IACtE,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAClC,CAAC;AAkaF,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG;IAC/C,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB,gFAAgF;IAChF,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;CAClC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,oBAAoB,+BA2B5F"}