@flanksource/clicky-ui 0.3.48 → 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.
- package/dist/connections/ConnectionsPage.cjs +219 -0
- package/dist/connections/ConnectionsPage.cjs.map +1 -0
- package/dist/connections/ConnectionsPage.d.ts +23 -0
- package/dist/connections/ConnectionsPage.d.ts.map +1 -0
- package/dist/connections/ConnectionsPage.js +219 -0
- package/dist/connections/ConnectionsPage.js.map +1 -0
- package/dist/connections/connectionActionStatus.cjs +43 -0
- package/dist/connections/connectionActionStatus.cjs.map +1 -0
- package/dist/connections/connectionActionStatus.d.ts +5 -0
- package/dist/connections/connectionActionStatus.d.ts.map +1 -0
- package/dist/connections/connectionActionStatus.js +43 -0
- package/dist/connections/connectionActionStatus.js.map +1 -0
- package/dist/connections/connectionActionTypes.cjs +24 -0
- package/dist/connections/connectionActionTypes.cjs.map +1 -0
- package/dist/connections/connectionActionTypes.d.ts +36 -0
- package/dist/connections/connectionActionTypes.d.ts.map +1 -0
- package/dist/connections/connectionActionTypes.js +24 -0
- package/dist/connections/connectionActionTypes.js.map +1 -0
- package/dist/connections/connectionActions.cjs +11 -0
- package/dist/connections/connectionActions.cjs.map +1 -0
- package/dist/connections/connectionActions.d.ts +15 -0
- package/dist/connections/connectionActions.d.ts.map +1 -0
- package/dist/connections/connectionActions.js +11 -0
- package/dist/connections/connectionActions.js.map +1 -0
- package/dist/connections/connectionDashboard.cjs +185 -0
- package/dist/connections/connectionDashboard.cjs.map +1 -0
- package/dist/connections/connectionDashboard.d.ts +25 -0
- package/dist/connections/connectionDashboard.d.ts.map +1 -0
- package/dist/connections/connectionDashboard.js +185 -0
- package/dist/connections/connectionDashboard.js.map +1 -0
- package/dist/connections/connectionDashboardModel.cjs +43 -0
- package/dist/connections/connectionDashboardModel.cjs.map +1 -0
- package/dist/connections/connectionDashboardModel.d.ts +75 -0
- package/dist/connections/connectionDashboardModel.d.ts.map +1 -0
- package/dist/connections/connectionDashboardModel.js +43 -0
- package/dist/connections/connectionDashboardModel.js.map +1 -0
- package/dist/connections/connectionDashboardRenderer.cjs +21 -0
- package/dist/connections/connectionDashboardRenderer.cjs.map +1 -0
- package/dist/connections/connectionDashboardRenderer.d.ts +15 -0
- package/dist/connections/connectionDashboardRenderer.d.ts.map +1 -0
- package/dist/connections/connectionDashboardRenderer.js +21 -0
- package/dist/connections/connectionDashboardRenderer.js.map +1 -0
- package/dist/connections/connectionDashboardRow.cjs +169 -0
- package/dist/connections/connectionDashboardRow.cjs.map +1 -0
- package/dist/connections/connectionDashboardRow.d.ts +12 -0
- package/dist/connections/connectionDashboardRow.d.ts.map +1 -0
- package/dist/connections/connectionDashboardRow.js +169 -0
- package/dist/connections/connectionDashboardRow.js.map +1 -0
- package/dist/connections/connectionErrorView.cjs +8 -0
- package/dist/connections/connectionErrorView.cjs.map +1 -0
- package/dist/connections/connectionErrorView.d.ts +4 -0
- package/dist/connections/connectionErrorView.d.ts.map +1 -0
- package/dist/connections/connectionErrorView.js +8 -0
- package/dist/connections/connectionErrorView.js.map +1 -0
- package/dist/connections/connectionHealth.cjs +82 -0
- package/dist/connections/connectionHealth.cjs.map +1 -0
- package/dist/connections/connectionHealth.d.ts +33 -0
- package/dist/connections/connectionHealth.d.ts.map +1 -0
- package/dist/connections/connectionHealth.js +82 -0
- package/dist/connections/connectionHealth.js.map +1 -0
- package/dist/connections/connectionLogging.cjs +29 -0
- package/dist/connections/connectionLogging.cjs.map +1 -0
- package/dist/connections/connectionLogging.d.ts +11 -0
- package/dist/connections/connectionLogging.d.ts.map +1 -0
- package/dist/connections/connectionLogging.js +29 -0
- package/dist/connections/connectionLogging.js.map +1 -0
- package/dist/connections/connectionLoggingField.cjs +37 -0
- package/dist/connections/connectionLoggingField.cjs.map +1 -0
- package/dist/connections/connectionLoggingField.d.ts +12 -0
- package/dist/connections/connectionLoggingField.d.ts.map +1 -0
- package/dist/connections/connectionLoggingField.js +37 -0
- package/dist/connections/connectionLoggingField.js.map +1 -0
- package/dist/connections/connectionLoggingModel.cjs +16 -0
- package/dist/connections/connectionLoggingModel.cjs.map +1 -0
- package/dist/connections/connectionLoggingModel.d.ts +6 -0
- package/dist/connections/connectionLoggingModel.d.ts.map +1 -0
- package/dist/connections/connectionLoggingModel.js +16 -0
- package/dist/connections/connectionLoggingModel.js.map +1 -0
- package/dist/connections/connectionResolveView.cjs +24 -0
- package/dist/connections/connectionResolveView.cjs.map +1 -0
- package/dist/connections/connectionResolveView.d.ts +5 -0
- package/dist/connections/connectionResolveView.d.ts.map +1 -0
- package/dist/connections/connectionResolveView.js +24 -0
- package/dist/connections/connectionResolveView.js.map +1 -0
- package/dist/connections/connectionTestButton.cjs +58 -0
- package/dist/connections/connectionTestButton.cjs.map +1 -0
- package/dist/connections/connectionTestButton.d.ts +6 -0
- package/dist/connections/connectionTestButton.d.ts.map +1 -0
- package/dist/connections/connectionTestButton.js +58 -0
- package/dist/connections/connectionTestButton.js.map +1 -0
- package/dist/connections/connectionTestView.cjs +12 -0
- package/dist/connections/connectionTestView.cjs.map +1 -0
- package/dist/connections/connectionTestView.d.ts +5 -0
- package/dist/connections/connectionTestView.d.ts.map +1 -0
- package/dist/connections/connectionTestView.js +12 -0
- package/dist/connections/connectionTestView.js.map +1 -0
- package/dist/connections/connectionsPageModel.cjs +33 -0
- package/dist/connections/connectionsPageModel.cjs.map +1 -0
- package/dist/connections/connectionsPageModel.d.ts +24 -0
- package/dist/connections/connectionsPageModel.d.ts.map +1 -0
- package/dist/connections/connectionsPageModel.js +33 -0
- package/dist/connections/connectionsPageModel.js.map +1 -0
- package/dist/connections/iconProvider.cjs +20 -0
- package/dist/connections/iconProvider.cjs.map +1 -0
- package/dist/connections/iconProvider.d.ts +7 -0
- package/dist/connections/iconProvider.d.ts.map +1 -0
- package/dist/connections/iconProvider.js +20 -0
- package/dist/connections/iconProvider.js.map +1 -0
- package/dist/connections.cjs +45 -0
- package/dist/connections.cjs.map +1 -0
- package/dist/connections.d.ts +34 -0
- package/dist/connections.d.ts.map +1 -0
- package/dist/connections.js +45 -0
- package/dist/connections.js.map +1 -0
- package/dist/data/DataTable.cjs +18 -8
- package/dist/data/DataTable.cjs.map +1 -1
- package/dist/data/DataTable.d.ts +4 -0
- package/dist/data/DataTable.d.ts.map +1 -1
- package/dist/data/DataTable.js +18 -8
- package/dist/data/DataTable.js.map +1 -1
- package/dist/data/TaskManager.cjs +183 -159
- package/dist/data/TaskManager.cjs.map +1 -1
- package/dist/data/TaskManager.d.ts +3 -1
- package/dist/data/TaskManager.d.ts.map +1 -1
- package/dist/data/TaskManager.js +185 -161
- package/dist/data/TaskManager.js.map +1 -1
- package/dist/data/TaskManagerButton.cjs +1 -0
- package/dist/data/TaskManagerButton.cjs.map +1 -1
- package/dist/data/TaskManagerButton.js +1 -0
- package/dist/data/TaskManagerButton.js.map +1 -1
- package/dist/data/TaskProgress.cjs +13 -7
- package/dist/data/TaskProgress.cjs.map +1 -1
- package/dist/data/TaskProgress.d.ts +3 -1
- package/dist/data/TaskProgress.d.ts.map +1 -1
- package/dist/data/TaskProgress.js +13 -7
- package/dist/data/TaskProgress.js.map +1 -1
- package/dist/data/diagnostics/DiagnosticsDetailPanel.cjs +52 -295
- package/dist/data/diagnostics/DiagnosticsDetailPanel.cjs.map +1 -1
- package/dist/data/diagnostics/DiagnosticsDetailPanel.d.ts.map +1 -1
- package/dist/data/diagnostics/DiagnosticsDetailPanel.js +47 -290
- package/dist/data/diagnostics/DiagnosticsDetailPanel.js.map +1 -1
- package/dist/data/diagnostics/MetricTile.cjs +44 -0
- package/dist/data/diagnostics/MetricTile.cjs.map +1 -0
- package/dist/data/diagnostics/MetricTile.d.ts +13 -0
- package/dist/data/diagnostics/MetricTile.d.ts.map +1 -0
- package/dist/data/diagnostics/MetricTile.js +44 -0
- package/dist/data/diagnostics/MetricTile.js.map +1 -0
- package/dist/data/diagnostics/StackDumpView.cjs +227 -0
- package/dist/data/diagnostics/StackDumpView.cjs.map +1 -0
- package/dist/data/diagnostics/StackDumpView.d.ts +53 -0
- package/dist/data/diagnostics/StackDumpView.d.ts.map +1 -0
- package/dist/data/diagnostics/StackDumpView.js +227 -0
- package/dist/data/diagnostics/StackDumpView.js.map +1 -0
- package/dist/data/diagnostics/fixtures.d.ts +1 -0
- package/dist/data/diagnostics/fixtures.d.ts.map +1 -1
- package/dist/data/diagnostics/metric-tone.cjs +18 -0
- package/dist/data/diagnostics/metric-tone.cjs.map +1 -0
- package/dist/data/diagnostics/metric-tone.d.ts +6 -0
- package/dist/data/diagnostics/metric-tone.d.ts.map +1 -0
- package/dist/data/diagnostics/metric-tone.js +18 -0
- package/dist/data/diagnostics/metric-tone.js.map +1 -0
- package/dist/data/diagnostics/stacktrace.cjs +44 -0
- package/dist/data/diagnostics/stacktrace.cjs.map +1 -1
- package/dist/data/diagnostics/stacktrace.d.ts +7 -0
- package/dist/data/diagnostics/stacktrace.d.ts.map +1 -1
- package/dist/data/diagnostics/stacktrace.js +44 -0
- package/dist/data/diagnostics/stacktrace.js.map +1 -1
- package/dist/data/diagnostics/types.d.ts +2 -8
- package/dist/data/diagnostics/types.d.ts.map +1 -1
- package/dist/data/lint/LintDetail.cjs +339 -0
- package/dist/data/lint/LintDetail.cjs.map +1 -0
- package/dist/data/lint/LintDetail.d.ts +17 -0
- package/dist/data/lint/LintDetail.d.ts.map +1 -0
- package/dist/data/lint/LintDetail.js +339 -0
- package/dist/data/lint/LintDetail.js.map +1 -0
- package/dist/data/lint/LintFilterBar.cjs +103 -0
- package/dist/data/lint/LintFilterBar.cjs.map +1 -0
- package/dist/data/lint/LintFilterBar.d.ts +16 -0
- package/dist/data/lint/LintFilterBar.d.ts.map +1 -0
- package/dist/data/lint/LintFilterBar.js +103 -0
- package/dist/data/lint/LintFilterBar.js.map +1 -0
- package/dist/data/lint/LintResults.cjs +144 -0
- package/dist/data/lint/LintResults.cjs.map +1 -0
- package/dist/data/lint/LintResults.d.ts +39 -0
- package/dist/data/lint/LintResults.d.ts.map +1 -0
- package/dist/data/lint/LintResults.fixtures.d.ts +10 -0
- package/dist/data/lint/LintResults.fixtures.d.ts.map +1 -0
- package/dist/data/lint/LintResults.js +144 -0
- package/dist/data/lint/LintResults.js.map +1 -0
- package/dist/data/lint/LintTreeNode.cjs +66 -0
- package/dist/data/lint/LintTreeNode.cjs.map +1 -0
- package/dist/data/lint/LintTreeNode.d.ts +7 -0
- package/dist/data/lint/LintTreeNode.d.ts.map +1 -0
- package/dist/data/lint/LintTreeNode.js +66 -0
- package/dist/data/lint/LintTreeNode.js.map +1 -0
- package/dist/data/lint/actions.cjs +195 -0
- package/dist/data/lint/actions.cjs.map +1 -0
- package/dist/data/lint/actions.d.ts +29 -0
- package/dist/data/lint/actions.d.ts.map +1 -0
- package/dist/data/lint/actions.js +195 -0
- package/dist/data/lint/actions.js.map +1 -0
- package/dist/data/lint/grouping-options.cjs +14 -0
- package/dist/data/lint/grouping-options.cjs.map +1 -0
- package/dist/data/lint/grouping-options.d.ts +9 -0
- package/dist/data/lint/grouping-options.d.ts.map +1 -0
- package/dist/data/lint/grouping-options.js +14 -0
- package/dist/data/lint/grouping-options.js.map +1 -0
- package/dist/data/lint/grouping.cjs +450 -0
- package/dist/data/lint/grouping.cjs.map +1 -0
- package/dist/data/lint/grouping.d.ts +10 -0
- package/dist/data/lint/grouping.d.ts.map +1 -0
- package/dist/data/lint/grouping.js +450 -0
- package/dist/data/lint/grouping.js.map +1 -0
- package/dist/data/lint/index.d.ts +10 -0
- package/dist/data/lint/index.d.ts.map +1 -0
- package/dist/data/lint/paths.cjs +35 -0
- package/dist/data/lint/paths.cjs.map +1 -0
- package/dist/data/lint/paths.d.ts +13 -0
- package/dist/data/lint/paths.d.ts.map +1 -0
- package/dist/data/lint/paths.js +35 -0
- package/dist/data/lint/paths.js.map +1 -0
- package/dist/data/lint/stats.cjs +76 -0
- package/dist/data/lint/stats.cjs.map +1 -0
- package/dist/data/lint/stats.d.ts +19 -0
- package/dist/data/lint/stats.d.ts.map +1 -0
- package/dist/data/lint/stats.js +76 -0
- package/dist/data/lint/stats.js.map +1 -0
- package/dist/data/lint/types.cjs +16 -0
- package/dist/data/lint/types.cjs.map +1 -0
- package/dist/data/lint/types.d.ts +93 -0
- package/dist/data/lint/types.d.ts.map +1 -0
- package/dist/data/lint/types.js +16 -0
- package/dist/data/lint/types.js.map +1 -0
- package/dist/data/test-runner/TestAttemptDetail.cjs +113 -0
- package/dist/data/test-runner/TestAttemptDetail.cjs.map +1 -0
- package/dist/data/test-runner/TestAttemptDetail.d.ts +19 -0
- package/dist/data/test-runner/TestAttemptDetail.d.ts.map +1 -0
- package/dist/data/test-runner/TestAttemptDetail.js +113 -0
- package/dist/data/test-runner/TestAttemptDetail.js.map +1 -0
- package/dist/data/test-runner/TestAttempts.cjs +36 -0
- package/dist/data/test-runner/TestAttempts.cjs.map +1 -0
- package/dist/data/test-runner/TestAttempts.d.ts +5 -0
- package/dist/data/test-runner/TestAttempts.d.ts.map +1 -0
- package/dist/data/test-runner/TestAttempts.js +36 -0
- package/dist/data/test-runner/TestAttempts.js.map +1 -0
- package/dist/data/test-runner/TestDetailPanel.cjs +13 -3
- package/dist/data/test-runner/TestDetailPanel.cjs.map +1 -1
- package/dist/data/test-runner/TestDetailPanel.d.ts.map +1 -1
- package/dist/data/test-runner/TestDetailPanel.js +14 -4
- package/dist/data/test-runner/TestDetailPanel.js.map +1 -1
- package/dist/data/test-runner/TestFailureDetail.cjs +9 -29
- package/dist/data/test-runner/TestFailureDetail.cjs.map +1 -1
- package/dist/data/test-runner/TestFailureDetail.d.ts +6 -6
- package/dist/data/test-runner/TestFailureDetail.d.ts.map +1 -1
- package/dist/data/test-runner/TestFailureDetail.js +9 -29
- package/dist/data/test-runner/TestFailureDetail.js.map +1 -1
- package/dist/data/test-runner/TestRunSummary.cjs +33 -0
- package/dist/data/test-runner/TestRunSummary.cjs.map +1 -1
- package/dist/data/test-runner/TestRunSummary.d.ts.map +1 -1
- package/dist/data/test-runner/TestRunSummary.js +34 -1
- package/dist/data/test-runner/TestRunSummary.js.map +1 -1
- package/dist/data/test-runner/TestRunner.cjs +3 -0
- package/dist/data/test-runner/TestRunner.cjs.map +1 -1
- package/dist/data/test-runner/TestRunner.d.ts +8 -1
- package/dist/data/test-runner/TestRunner.d.ts.map +1 -1
- package/dist/data/test-runner/TestRunner.js +3 -0
- package/dist/data/test-runner/TestRunner.js.map +1 -1
- package/dist/data/test-runner/TestTreeNode.cjs +3 -1
- package/dist/data/test-runner/TestTreeNode.cjs.map +1 -1
- package/dist/data/test-runner/TestTreeNode.d.ts.map +1 -1
- package/dist/data/test-runner/TestTreeNode.js +3 -1
- package/dist/data/test-runner/TestTreeNode.js.map +1 -1
- package/dist/data/test-runner/adapter.cjs +9 -1
- package/dist/data/test-runner/adapter.cjs.map +1 -1
- package/dist/data/test-runner/adapter.d.ts +5 -0
- package/dist/data/test-runner/adapter.d.ts.map +1 -1
- package/dist/data/test-runner/adapter.js +9 -1
- package/dist/data/test-runner/adapter.js.map +1 -1
- package/dist/data/test-runner/attempts.cjs +62 -0
- package/dist/data/test-runner/attempts.cjs.map +1 -0
- package/dist/data/test-runner/attempts.d.ts +13 -0
- package/dist/data/test-runner/attempts.d.ts.map +1 -0
- package/dist/data/test-runner/attempts.js +62 -0
- package/dist/data/test-runner/attempts.js.map +1 -0
- package/dist/data/test-runner/context.cjs.map +1 -1
- package/dist/data/test-runner/context.d.ts +6 -0
- package/dist/data/test-runner/context.d.ts.map +1 -1
- package/dist/data/test-runner/context.js.map +1 -1
- package/dist/data/test-runner/index.d.ts +5 -1
- package/dist/data/test-runner/index.d.ts.map +1 -1
- package/dist/data/test-runner/marks.cjs +2 -0
- package/dist/data/test-runner/marks.cjs.map +1 -1
- package/dist/data/test-runner/marks.d.ts.map +1 -1
- package/dist/data/test-runner/marks.js +2 -0
- package/dist/data/test-runner/marks.js.map +1 -1
- package/dist/data/test-runner/process-metrics.cjs +15 -0
- package/dist/data/test-runner/process-metrics.cjs.map +1 -0
- package/dist/data/test-runner/process-metrics.d.ts +22 -0
- package/dist/data/test-runner/process-metrics.d.ts.map +1 -0
- package/dist/data/test-runner/process-metrics.js +15 -0
- package/dist/data/test-runner/process-metrics.js.map +1 -0
- package/dist/data/test-runner/status.cjs +11 -3
- package/dist/data/test-runner/status.cjs.map +1 -1
- package/dist/data/test-runner/status.d.ts +3 -1
- package/dist/data/test-runner/status.d.ts.map +1 -1
- package/dist/data/test-runner/status.js +11 -3
- package/dist/data/test-runner/status.js.map +1 -1
- package/dist/data/test-runner/types.d.ts +14 -0
- package/dist/data/test-runner/types.d.ts.map +1 -1
- package/dist/data/traces/GoProfileView.cjs +176 -0
- package/dist/data/traces/GoProfileView.cjs.map +1 -0
- package/dist/data/traces/GoProfileView.d.ts +30 -0
- package/dist/data/traces/GoProfileView.d.ts.map +1 -0
- package/dist/data/traces/GoProfileView.js +176 -0
- package/dist/data/traces/GoProfileView.js.map +1 -0
- package/dist/data/traces/ProcessFacetTable.cjs +79 -0
- package/dist/data/traces/ProcessFacetTable.cjs.map +1 -0
- package/dist/data/traces/ProcessFacetTable.d.ts +21 -0
- package/dist/data/traces/ProcessFacetTable.d.ts.map +1 -0
- package/dist/data/traces/ProcessFacetTable.js +79 -0
- package/dist/data/traces/ProcessFacetTable.js.map +1 -0
- package/dist/data/traces/ProcessRecordViews.cjs +41 -0
- package/dist/data/traces/ProcessRecordViews.cjs.map +1 -0
- package/dist/data/traces/ProcessRecordViews.d.ts +16 -0
- package/dist/data/traces/ProcessRecordViews.d.ts.map +1 -0
- package/dist/data/traces/ProcessRecordViews.js +41 -0
- package/dist/data/traces/ProcessRecordViews.js.map +1 -0
- package/dist/data/traces/ProcessTraceDetail.cjs +316 -0
- package/dist/data/traces/ProcessTraceDetail.cjs.map +1 -0
- package/dist/data/traces/ProcessTraceDetail.d.ts +39 -0
- package/dist/data/traces/ProcessTraceDetail.d.ts.map +1 -0
- package/dist/data/traces/ProcessTraceDetail.js +316 -0
- package/dist/data/traces/ProcessTraceDetail.js.map +1 -0
- package/dist/data/traces/ProcessTraceTree.cjs +135 -0
- package/dist/data/traces/ProcessTraceTree.cjs.map +1 -0
- package/dist/data/traces/ProcessTraceTree.d.ts +41 -0
- package/dist/data/traces/ProcessTraceTree.d.ts.map +1 -0
- package/dist/data/traces/ProcessTraceTree.js +135 -0
- package/dist/data/traces/ProcessTraceTree.js.map +1 -0
- package/dist/data/traces/Sparkline.cjs +45 -0
- package/dist/data/traces/Sparkline.cjs.map +1 -0
- package/dist/data/traces/Sparkline.d.ts +29 -0
- package/dist/data/traces/Sparkline.d.ts.map +1 -0
- package/dist/data/traces/Sparkline.js +45 -0
- package/dist/data/traces/Sparkline.js.map +1 -0
- package/dist/data/traces/SqlTraceTable.cjs +104 -0
- package/dist/data/traces/SqlTraceTable.cjs.map +1 -0
- package/dist/data/traces/SqlTraceTable.d.ts +19 -0
- package/dist/data/traces/SqlTraceTable.d.ts.map +1 -0
- package/dist/data/traces/SqlTraceTable.js +104 -0
- package/dist/data/traces/SqlTraceTable.js.map +1 -0
- package/dist/data/traces/TerminalCastPlayer.cjs +162 -0
- package/dist/data/traces/TerminalCastPlayer.cjs.map +1 -0
- package/dist/data/traces/TerminalCastPlayer.js +162 -0
- package/dist/data/traces/TerminalCastPlayer.js.map +1 -0
- package/dist/data/traces/TraceHarView.cjs +15 -0
- package/dist/data/traces/TraceHarView.cjs.map +1 -0
- package/dist/data/traces/TraceHarView.js +15 -0
- package/dist/data/traces/TraceHarView.js.map +1 -0
- package/dist/data/traces/TraceView.cjs +63 -0
- package/dist/data/traces/TraceView.cjs.map +1 -0
- package/dist/data/traces/TraceView.d.ts +20 -0
- package/dist/data/traces/TraceView.d.ts.map +1 -0
- package/dist/data/traces/TraceView.js +63 -0
- package/dist/data/traces/TraceView.js.map +1 -0
- package/dist/data/traces/TraceWindowList.cjs +117 -0
- package/dist/data/traces/TraceWindowList.cjs.map +1 -0
- package/dist/data/traces/TraceWindowList.d.ts +48 -0
- package/dist/data/traces/TraceWindowList.d.ts.map +1 -0
- package/dist/data/traces/TraceWindowList.js +117 -0
- package/dist/data/traces/TraceWindowList.js.map +1 -0
- package/dist/data/traces/cast.cjs +81 -0
- package/dist/data/traces/cast.cjs.map +1 -0
- package/dist/data/traces/cast.js +81 -0
- package/dist/data/traces/cast.js.map +1 -0
- package/dist/data/traces/fixtures.d.ts +25 -1
- package/dist/data/traces/fixtures.d.ts.map +1 -1
- package/dist/data/traces/har-adapter.cjs +83 -0
- package/dist/data/traces/har-adapter.cjs.map +1 -0
- package/dist/data/traces/har-adapter.js +83 -0
- package/dist/data/traces/har-adapter.js.map +1 -0
- package/dist/data/traces/index.d.ts +19 -0
- package/dist/data/traces/index.d.ts.map +1 -0
- package/dist/data/traces/process-facets.cjs +48 -0
- package/dist/data/traces/process-facets.cjs.map +1 -0
- package/dist/data/traces/process-facets.d.ts +38 -0
- package/dist/data/traces/process-facets.d.ts.map +1 -0
- package/dist/data/traces/process-facets.js +48 -0
- package/dist/data/traces/process-facets.js.map +1 -0
- package/dist/data/traces/process-tree.cjs +85 -0
- package/dist/data/traces/process-tree.cjs.map +1 -0
- package/dist/data/traces/process-tree.d.ts +40 -0
- package/dist/data/traces/process-tree.d.ts.map +1 -0
- package/dist/data/traces/process-tree.js +85 -0
- package/dist/data/traces/process-tree.js.map +1 -0
- package/dist/data/traces/profile-aggregate.cjs +78 -0
- package/dist/data/traces/profile-aggregate.cjs.map +1 -0
- package/dist/data/traces/profile-aggregate.d.ts +41 -0
- package/dist/data/traces/profile-aggregate.d.ts.map +1 -0
- package/dist/data/traces/profile-aggregate.js +78 -0
- package/dist/data/traces/profile-aggregate.js.map +1 -0
- package/dist/data/traces/sql-trace.cjs +39 -0
- package/dist/data/traces/sql-trace.cjs.map +1 -0
- package/dist/data/traces/sql-trace.d.ts +31 -0
- package/dist/data/traces/sql-trace.d.ts.map +1 -0
- package/dist/data/traces/sql-trace.js +39 -0
- package/dist/data/traces/sql-trace.js.map +1 -0
- package/dist/data/traces/stack-checkpoints.cjs +22 -0
- package/dist/data/traces/stack-checkpoints.cjs.map +1 -0
- package/dist/data/traces/stack-checkpoints.d.ts +18 -0
- package/dist/data/traces/stack-checkpoints.d.ts.map +1 -0
- package/dist/data/traces/stack-checkpoints.js +22 -0
- package/dist/data/traces/stack-checkpoints.js.map +1 -0
- package/dist/data/traces/terminal-screen.cjs +270 -0
- package/dist/data/traces/terminal-screen.cjs.map +1 -0
- package/dist/data/traces/terminal-screen.js +270 -0
- package/dist/data/traces/terminal-screen.js.map +1 -0
- package/dist/data/traces/terminal-timeline.cjs +48 -0
- package/dist/data/traces/terminal-timeline.cjs.map +1 -0
- package/dist/data/traces/terminal-timeline.js +48 -0
- package/dist/data/traces/terminal-timeline.js.map +1 -0
- package/dist/data/traces/types.d.ts +121 -8
- package/dist/data/traces/types.d.ts.map +1 -1
- package/dist/data/verification/adapters.cjs +1 -0
- package/dist/data/verification/adapters.cjs.map +1 -1
- package/dist/data/verification/adapters.d.ts.map +1 -1
- package/dist/data/verification/adapters.js +1 -0
- package/dist/data/verification/adapters.js.map +1 -1
- package/dist/data/version-info.cjs +3 -3
- package/dist/data/version-info.cjs.map +1 -1
- package/dist/data/version-info.js +3 -3
- package/dist/data/version-info.js.map +1 -1
- package/dist/data.cjs +105 -5
- package/dist/data.cjs.map +1 -1
- package/dist/data.d.ts +5 -0
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +101 -1
- package/dist/data.js.map +1 -1
- package/dist/index.cjs +107 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +101 -1
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- 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"}
|