@flanksource/clicky-ui 0.3.54 → 0.3.56
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/NOTICE.md +6 -0
- package/dist/ai.cjs +6 -0
- package/dist/ai.js +3 -1
- package/dist/chat.cjs +2 -0
- package/dist/chat.d.ts +1 -0
- package/dist/chat.d.ts.map +1 -1
- package/dist/chat.js +2 -1
- package/dist/comments/CommentCard.cjs +37 -7
- package/dist/comments/CommentCard.cjs.map +1 -1
- package/dist/comments/CommentCard.d.ts +11 -1
- package/dist/comments/CommentCard.d.ts.map +1 -1
- package/dist/comments/CommentCard.js +37 -7
- package/dist/comments/CommentCard.js.map +1 -1
- package/dist/comments/CommentCardParts.cjs +9 -4
- package/dist/comments/CommentCardParts.cjs.map +1 -1
- package/dist/comments/CommentCardParts.d.ts.map +1 -1
- package/dist/comments/CommentCardParts.js +9 -4
- package/dist/comments/CommentCardParts.js.map +1 -1
- package/dist/comments/CommentComposer.cjs +8 -8
- package/dist/comments/CommentComposer.cjs.map +1 -1
- package/dist/comments/CommentComposer.d.ts.map +1 -1
- package/dist/comments/CommentComposer.js +8 -8
- package/dist/comments/CommentComposer.js.map +1 -1
- package/dist/comments/CommentProvider.cjs +5 -1
- package/dist/comments/CommentProvider.cjs.map +1 -1
- package/dist/comments/CommentProvider.d.ts +1 -1
- package/dist/comments/CommentProvider.d.ts.map +1 -1
- package/dist/comments/CommentProvider.js +5 -1
- package/dist/comments/CommentProvider.js.map +1 -1
- package/dist/comments/CommentSidePanel.cjs +17 -11
- package/dist/comments/CommentSidePanel.cjs.map +1 -1
- package/dist/comments/CommentSidePanel.d.ts +6 -0
- package/dist/comments/CommentSidePanel.d.ts.map +1 -1
- package/dist/comments/CommentSidePanel.js +17 -11
- package/dist/comments/CommentSidePanel.js.map +1 -1
- package/dist/comments/CommentThread.cjs +4 -1
- package/dist/comments/CommentThread.cjs.map +1 -1
- package/dist/comments/CommentThread.d.ts +4 -1
- package/dist/comments/CommentThread.d.ts.map +1 -1
- package/dist/comments/CommentThread.js +4 -1
- package/dist/comments/CommentThread.js.map +1 -1
- package/dist/comments/CommentThreadList.cjs +6 -3
- package/dist/comments/CommentThreadList.cjs.map +1 -1
- package/dist/comments/CommentThreadList.d.ts +7 -2
- package/dist/comments/CommentThreadList.d.ts.map +1 -1
- package/dist/comments/CommentThreadList.js +6 -3
- package/dist/comments/CommentThreadList.js.map +1 -1
- package/dist/comments/MentionTextarea.cjs +1 -1
- package/dist/comments/MentionTextarea.cjs.map +1 -1
- package/dist/comments/MentionTextarea.d.ts.map +1 -1
- package/dist/comments/MentionTextarea.js +1 -1
- package/dist/comments/MentionTextarea.js.map +1 -1
- package/dist/comments/comment-assign.cjs +68 -0
- package/dist/comments/comment-assign.cjs.map +1 -0
- package/dist/comments/comment-assign.d.ts +31 -0
- package/dist/comments/comment-assign.d.ts.map +1 -0
- package/dist/comments/comment-assign.js +67 -0
- package/dist/comments/comment-assign.js.map +1 -0
- package/dist/comments/comment-types.cjs.map +1 -1
- package/dist/comments/comment-types.d.ts +39 -0
- package/dist/comments/comment-types.d.ts.map +1 -1
- package/dist/comments/comment-types.js.map +1 -1
- package/dist/comments/comment-utils.cjs +2 -0
- package/dist/comments/comment-utils.cjs.map +1 -1
- package/dist/comments/comment-utils.d.ts +2 -0
- package/dist/comments/comment-utils.d.ts.map +1 -1
- package/dist/comments/comment-utils.js +2 -0
- package/dist/comments/comment-utils.js.map +1 -1
- package/dist/comments.cjs +3 -0
- package/dist/comments.d.ts +1 -0
- package/dist/comments.d.ts.map +1 -1
- package/dist/comments.js +2 -1
- package/dist/components/ComboboxMenu.cjs +23 -13
- package/dist/components/ComboboxMenu.cjs.map +1 -1
- package/dist/components/ComboboxMenu.d.ts.map +1 -1
- package/dist/components/ComboboxMenu.js +23 -13
- package/dist/components/ComboboxMenu.js.map +1 -1
- package/dist/components/FilterBar.cjs +29 -6
- package/dist/components/FilterBar.cjs.map +1 -1
- package/dist/components/FilterBar.d.ts +3 -1
- package/dist/components/FilterBar.d.ts.map +1 -1
- package/dist/components/FilterBar.js +29 -6
- package/dist/components/FilterBar.js.map +1 -1
- package/dist/components/ItemActions.cjs +1 -1
- package/dist/components/ItemActions.cjs.map +1 -1
- package/dist/components/ItemActions.js +1 -1
- package/dist/components/ItemActions.js.map +1 -1
- package/dist/components/ListMenu.cjs +33 -3
- package/dist/components/ListMenu.cjs.map +1 -1
- package/dist/components/ListMenu.d.ts +4 -1
- package/dist/components/ListMenu.d.ts.map +1 -1
- package/dist/components/ListMenu.js +33 -3
- package/dist/components/ListMenu.js.map +1 -1
- package/dist/components/ListMenuItems.cjs +80 -0
- package/dist/components/ListMenuItems.cjs.map +1 -0
- package/dist/components/ListMenuItems.d.ts +8 -0
- package/dist/components/ListMenuItems.d.ts.map +1 -0
- package/dist/components/ListMenuItems.js +80 -0
- package/dist/components/ListMenuItems.js.map +1 -0
- package/dist/components/LocalPathPicker.cjs +182 -0
- package/dist/components/LocalPathPicker.cjs.map +1 -0
- package/dist/components/LocalPathPicker.d.ts +11 -0
- package/dist/components/LocalPathPicker.d.ts.map +1 -0
- package/dist/components/LocalPathPicker.js +182 -0
- package/dist/components/LocalPathPicker.js.map +1 -0
- package/dist/components/LocalPathTree.cjs +89 -0
- package/dist/components/LocalPathTree.cjs.map +1 -0
- package/dist/components/LocalPathTree.d.ts +9 -0
- package/dist/components/LocalPathTree.d.ts.map +1 -0
- package/dist/components/LocalPathTree.js +89 -0
- package/dist/components/LocalPathTree.js.map +1 -0
- package/dist/components/RangeSlider.cjs +10 -30
- package/dist/components/RangeSlider.cjs.map +1 -1
- package/dist/components/RangeSlider.d.ts.map +1 -1
- package/dist/components/RangeSlider.js +4 -24
- package/dist/components/RangeSlider.js.map +1 -1
- package/dist/components/Slider.cjs +79 -0
- package/dist/components/Slider.cjs.map +1 -0
- package/dist/components/Slider.d.ts +23 -0
- package/dist/components/Slider.d.ts.map +1 -0
- package/dist/components/Slider.js +79 -0
- package/dist/components/Slider.js.map +1 -0
- package/dist/components/combobox-types.d.ts +4 -1
- package/dist/components/combobox-types.d.ts.map +1 -1
- package/dist/components/filter-bar-field-utils.cjs +3 -5
- package/dist/components/filter-bar-field-utils.cjs.map +1 -1
- package/dist/components/filter-bar-field-utils.d.ts.map +1 -1
- package/dist/components/filter-bar-field-utils.js +3 -5
- package/dist/components/filter-bar-field-utils.js.map +1 -1
- package/dist/components/filter-bar-tree-model.cjs +22 -0
- package/dist/components/filter-bar-tree-model.cjs.map +1 -0
- package/dist/components/filter-bar-tree-model.d.ts +33 -0
- package/dist/components/filter-bar-tree-model.d.ts.map +1 -0
- package/dist/components/filter-bar-tree-model.js +21 -0
- package/dist/components/filter-bar-tree-model.js.map +1 -0
- package/dist/components/filter-bar-tree.cjs +84 -0
- package/dist/components/filter-bar-tree.cjs.map +1 -0
- package/dist/components/filter-bar-tree.d.ts +7 -0
- package/dist/components/filter-bar-tree.d.ts.map +1 -0
- package/dist/components/filter-bar-tree.js +84 -0
- package/dist/components/filter-bar-tree.js.map +1 -0
- package/dist/components/json-schema-form-debug-glyph-map.cjs +2 -0
- package/dist/components/json-schema-form-debug-glyph-map.cjs.map +1 -1
- package/dist/components/json-schema-form-debug-glyph-map.d.ts.map +1 -1
- package/dist/components/json-schema-form-debug-glyph-map.js +2 -0
- package/dist/components/json-schema-form-debug-glyph-map.js.map +1 -1
- package/dist/components/json-schema-form-help-links.cjs +18 -0
- package/dist/components/json-schema-form-help-links.cjs.map +1 -0
- package/dist/components/json-schema-form-help-links.d.ts +5 -0
- package/dist/components/json-schema-form-help-links.d.ts.map +1 -0
- package/dist/components/json-schema-form-help-links.js +18 -0
- package/dist/components/json-schema-form-help-links.js.map +1 -0
- package/dist/components/json-schema-form-help-model.cjs +7 -0
- package/dist/components/json-schema-form-help-model.cjs.map +1 -0
- package/dist/components/json-schema-form-help-model.d.ts +3 -0
- package/dist/components/json-schema-form-help-model.d.ts.map +1 -0
- package/dist/components/json-schema-form-help-model.js +7 -0
- package/dist/components/json-schema-form-help-model.js.map +1 -0
- package/dist/components/json-schema-form-json.cjs +48 -0
- package/dist/components/json-schema-form-json.cjs.map +1 -0
- package/dist/components/json-schema-form-json.d.ts +7 -0
- package/dist/components/json-schema-form-json.d.ts.map +1 -0
- package/dist/components/json-schema-form-json.js +48 -0
- package/dist/components/json-schema-form-json.js.map +1 -0
- package/dist/components/json-schema-form-layout.cjs +7 -5
- package/dist/components/json-schema-form-layout.cjs.map +1 -1
- package/dist/components/json-schema-form-layout.d.ts +2 -2
- package/dist/components/json-schema-form-layout.d.ts.map +1 -1
- package/dist/components/json-schema-form-layout.js +7 -5
- package/dist/components/json-schema-form-layout.js.map +1 -1
- package/dist/components/json-schema-form-object.cjs +2 -13
- package/dist/components/json-schema-form-object.cjs.map +1 -1
- package/dist/components/json-schema-form-object.d.ts.map +1 -1
- package/dist/components/json-schema-form-object.js +2 -13
- package/dist/components/json-schema-form-object.js.map +1 -1
- package/dist/components/json-schema-form-refs.cjs +1 -1
- package/dist/components/json-schema-form-refs.cjs.map +1 -1
- package/dist/components/json-schema-form-refs.d.ts.map +1 -1
- package/dist/components/json-schema-form-refs.js +1 -1
- package/dist/components/json-schema-form-refs.js.map +1 -1
- package/dist/components/json-schema-form-render.cjs +20 -6
- package/dist/components/json-schema-form-render.cjs.map +1 -1
- package/dist/components/json-schema-form-render.d.ts.map +1 -1
- package/dist/components/json-schema-form-render.js +20 -6
- package/dist/components/json-schema-form-render.js.map +1 -1
- package/dist/components/json-schema-form-resolve.cjs +22 -2
- package/dist/components/json-schema-form-resolve.cjs.map +1 -1
- package/dist/components/json-schema-form-resolve.d.ts.map +1 -1
- package/dist/components/json-schema-form-resolve.js +22 -2
- package/dist/components/json-schema-form-resolve.js.map +1 -1
- package/dist/components/json-schema-form-types.d.ts +5 -1
- package/dist/components/json-schema-form-types.d.ts.map +1 -1
- package/dist/components/json-schema-form-union-model.cjs +46 -0
- package/dist/components/json-schema-form-union-model.cjs.map +1 -0
- package/dist/components/json-schema-form-union-model.d.ts +6 -0
- package/dist/components/json-schema-form-union-model.d.ts.map +1 -0
- package/dist/components/json-schema-form-union-model.js +43 -0
- package/dist/components/json-schema-form-union-model.js.map +1 -0
- package/dist/components/json-schema-form-union.cjs +52 -0
- package/dist/components/json-schema-form-union.cjs.map +1 -0
- package/dist/components/json-schema-form-union.d.ts +7 -0
- package/dist/components/json-schema-form-union.d.ts.map +1 -0
- package/dist/components/json-schema-form-union.js +52 -0
- package/dist/components/json-schema-form-union.js.map +1 -0
- package/dist/components/list-menu-virtual.cjs +5 -0
- package/dist/components/list-menu-virtual.cjs.map +1 -0
- package/dist/components/list-menu-virtual.d.ts +12 -0
- package/dist/components/list-menu-virtual.d.ts.map +1 -0
- package/dist/components/list-menu-virtual.js +6 -0
- package/dist/components/list-menu-virtual.js.map +1 -0
- package/dist/components/local-path.cjs +12 -0
- package/dist/components/local-path.cjs.map +1 -0
- package/dist/components/local-path.d.ts +14 -0
- package/dist/components/local-path.d.ts.map +1 -0
- package/dist/components/local-path.js +12 -0
- package/dist/components/local-path.js.map +1 -0
- package/dist/components/slider-shared.cjs +32 -0
- package/dist/components/slider-shared.cjs.map +1 -0
- package/dist/components/slider-shared.d.ts +18 -0
- package/dist/components/slider-shared.d.ts.map +1 -0
- package/dist/components/slider-shared.js +27 -0
- package/dist/components/slider-shared.js.map +1 -0
- package/dist/components.cjs +8 -0
- package/dist/components.d.ts +6 -1
- package/dist/components.d.ts.map +1 -1
- package/dist/components.js +5 -1
- package/dist/connections/ConnectionsPage.cjs +51 -19
- package/dist/connections/ConnectionsPage.cjs.map +1 -1
- package/dist/connections/ConnectionsPage.d.ts +9 -1
- package/dist/connections/ConnectionsPage.d.ts.map +1 -1
- package/dist/connections/ConnectionsPage.js +52 -20
- package/dist/connections/ConnectionsPage.js.map +1 -1
- package/dist/connections/connectionDashboard.cjs +13 -8
- package/dist/connections/connectionDashboard.cjs.map +1 -1
- package/dist/connections/connectionDashboard.d.ts +8 -3
- package/dist/connections/connectionDashboard.d.ts.map +1 -1
- package/dist/connections/connectionDashboard.js +14 -9
- package/dist/connections/connectionDashboard.js.map +1 -1
- package/dist/connections/connectionDashboardModel.cjs.map +1 -1
- package/dist/connections/connectionDashboardModel.d.ts +4 -0
- package/dist/connections/connectionDashboardModel.d.ts.map +1 -1
- package/dist/connections/connectionDashboardModel.js.map +1 -1
- package/dist/connections/connectionDashboardRow.cjs +75 -55
- package/dist/connections/connectionDashboardRow.cjs.map +1 -1
- package/dist/connections/connectionDashboardRow.d.ts +3 -2
- package/dist/connections/connectionDashboardRow.d.ts.map +1 -1
- package/dist/connections/connectionDashboardRow.js +75 -55
- package/dist/connections/connectionDashboardRow.js.map +1 -1
- package/dist/connections/connectionNamespaceField.cjs +17 -0
- package/dist/connections/connectionNamespaceField.cjs.map +1 -0
- package/dist/connections/connectionNamespaceField.d.ts +10 -0
- package/dist/connections/connectionNamespaceField.d.ts.map +1 -0
- package/dist/connections/connectionNamespaceField.js +17 -0
- package/dist/connections/connectionNamespaceField.js.map +1 -0
- package/dist/connections/connectionSchemaFormExtensions.cjs +98 -0
- package/dist/connections/connectionSchemaFormExtensions.cjs.map +1 -0
- package/dist/connections/connectionSchemaFormExtensions.d.ts +41 -0
- package/dist/connections/connectionSchemaFormExtensions.d.ts.map +1 -0
- package/dist/connections/connectionSchemaFormExtensions.js +96 -0
- package/dist/connections/connectionSchemaFormExtensions.js.map +1 -0
- package/dist/connections/connectionsPageModel.cjs +11 -0
- package/dist/connections/connectionsPageModel.cjs.map +1 -1
- package/dist/connections/connectionsPageModel.d.ts +5 -0
- package/dist/connections/connectionsPageModel.d.ts.map +1 -1
- package/dist/connections/connectionsPageModel.js +11 -1
- package/dist/connections/connectionsPageModel.js.map +1 -1
- package/dist/connections.cjs +5 -0
- package/dist/connections.d.ts +2 -1
- package/dist/connections.d.ts.map +1 -1
- package/dist/connections.js +3 -2
- package/dist/data/AvatarBadge.cjs +3 -3
- package/dist/data/AvatarBadge.cjs.map +1 -1
- package/dist/data/AvatarBadge.js +3 -3
- package/dist/data/AvatarBadge.js.map +1 -1
- package/dist/data/CodeDiff.cjs +2 -0
- package/dist/data/CodeDiff.cjs.map +1 -1
- package/dist/data/CodeDiff.js +2 -0
- package/dist/data/CodeDiff.js.map +1 -1
- package/dist/data/DataTable.cjs +3 -2
- package/dist/data/DataTable.cjs.map +1 -1
- package/dist/data/DataTable.d.ts.map +1 -1
- package/dist/data/DataTable.js +3 -2
- package/dist/data/DataTable.js.map +1 -1
- package/dist/data/Gauge.cjs +1 -1
- package/dist/data/Gauge.cjs.map +1 -1
- package/dist/data/Gauge.js +1 -1
- package/dist/data/Gauge.js.map +1 -1
- package/dist/data/HighlightedTokens.cjs +2 -10
- package/dist/data/HighlightedTokens.cjs.map +1 -1
- package/dist/data/HighlightedTokens.d.ts.map +1 -1
- package/dist/data/HighlightedTokens.js +1 -9
- package/dist/data/HighlightedTokens.js.map +1 -1
- package/dist/data/Markdown.cjs +38 -11
- package/dist/data/Markdown.cjs.map +1 -1
- package/dist/data/Markdown.d.ts +9 -1
- package/dist/data/Markdown.d.ts.map +1 -1
- package/dist/data/Markdown.js +39 -12
- package/dist/data/Markdown.js.map +1 -1
- package/dist/data/MultiGaugeBar.cjs +157 -0
- package/dist/data/MultiGaugeBar.cjs.map +1 -0
- package/dist/data/MultiGaugeBar.d.ts +29 -0
- package/dist/data/MultiGaugeBar.d.ts.map +1 -0
- package/dist/data/MultiGaugeBar.js +157 -0
- package/dist/data/MultiGaugeBar.js.map +1 -0
- package/dist/data/OpenInFilesLink.cjs +27 -0
- package/dist/data/OpenInFilesLink.cjs.map +1 -0
- package/dist/data/OpenInFilesLink.d.ts +15 -0
- package/dist/data/OpenInFilesLink.d.ts.map +1 -0
- package/dist/data/OpenInFilesLink.js +27 -0
- package/dist/data/OpenInFilesLink.js.map +1 -0
- package/dist/data/ProgressBar.cjs +5 -3
- package/dist/data/ProgressBar.cjs.map +1 -1
- package/dist/data/ProgressBar.d.ts +5 -1
- package/dist/data/ProgressBar.d.ts.map +1 -1
- package/dist/data/ProgressBar.js +5 -3
- package/dist/data/ProgressBar.js.map +1 -1
- package/dist/data/ProgressBars.cjs +13 -5
- package/dist/data/ProgressBars.cjs.map +1 -1
- package/dist/data/ProgressBars.d.ts +6 -1
- package/dist/data/ProgressBars.d.ts.map +1 -1
- package/dist/data/ProgressBars.js +13 -5
- package/dist/data/ProgressBars.js.map +1 -1
- package/dist/data/Properties.cjs +3 -3
- package/dist/data/Properties.cjs.map +1 -1
- package/dist/data/Properties.js +3 -3
- package/dist/data/Properties.js.map +1 -1
- package/dist/data/TaskProgress.cjs +14 -6
- 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 +14 -6
- package/dist/data/TaskProgress.js.map +1 -1
- package/dist/data/TaskPrompts.cjs +96 -0
- package/dist/data/TaskPrompts.cjs.map +1 -0
- package/dist/data/TaskPrompts.d.ts +6 -0
- package/dist/data/TaskPrompts.d.ts.map +1 -0
- package/dist/data/TaskPrompts.js +96 -0
- package/dist/data/TaskPrompts.js.map +1 -0
- package/dist/data/TaskSnapshot.cjs.map +1 -1
- package/dist/data/TaskSnapshot.d.ts +3 -0
- package/dist/data/TaskSnapshot.d.ts.map +1 -1
- package/dist/data/TaskSnapshot.js.map +1 -1
- package/dist/data/TimeseriesCoreBars.cjs +7 -3
- package/dist/data/TimeseriesCoreBars.cjs.map +1 -1
- package/dist/data/TimeseriesCoreBars.d.ts.map +1 -1
- package/dist/data/TimeseriesCoreBars.js +8 -4
- package/dist/data/TimeseriesCoreBars.js.map +1 -1
- package/dist/data/TimeseriesGauge.cjs +12 -5
- package/dist/data/TimeseriesGauge.cjs.map +1 -1
- package/dist/data/TimeseriesGauge.d.ts.map +1 -1
- package/dist/data/TimeseriesGauge.js +13 -6
- package/dist/data/TimeseriesGauge.js.map +1 -1
- package/dist/data/TimeseriesPanel.cjs +10 -9
- package/dist/data/TimeseriesPanel.cjs.map +1 -1
- package/dist/data/TimeseriesPanel.d.ts +1 -1
- package/dist/data/TimeseriesPanel.d.ts.map +1 -1
- package/dist/data/TimeseriesPanel.js +11 -10
- package/dist/data/TimeseriesPanel.js.map +1 -1
- package/dist/data/TimeseriesPanel.model.cjs +62 -10
- package/dist/data/TimeseriesPanel.model.cjs.map +1 -1
- package/dist/data/TimeseriesPanel.model.d.ts +40 -1
- package/dist/data/TimeseriesPanel.model.d.ts.map +1 -1
- package/dist/data/TimeseriesPanel.model.js +62 -11
- package/dist/data/TimeseriesPanel.model.js.map +1 -1
- package/dist/data/WorkloadCard.cjs +7 -3
- package/dist/data/WorkloadCard.cjs.map +1 -1
- package/dist/data/WorkloadCard.d.ts +3 -1
- package/dist/data/WorkloadCard.d.ts.map +1 -1
- package/dist/data/WorkloadCard.js +7 -3
- package/dist/data/WorkloadCard.js.map +1 -1
- package/dist/data/WorkloadCard.model.cjs.map +1 -1
- package/dist/data/WorkloadCard.model.d.ts +2 -0
- package/dist/data/WorkloadCard.model.d.ts.map +1 -1
- package/dist/data/WorkloadCard.model.js.map +1 -1
- package/dist/data/ai/ChatWindow.placement.cjs +2 -1
- package/dist/data/ai/ChatWindow.placement.cjs.map +1 -1
- package/dist/data/ai/ChatWindow.placement.d.ts +1 -1
- package/dist/data/ai/ChatWindow.placement.d.ts.map +1 -1
- package/dist/data/ai/ChatWindow.placement.js +2 -1
- package/dist/data/ai/ChatWindow.placement.js.map +1 -1
- package/dist/data/ai/SpecRuntimeBar.cjs +2 -2
- package/dist/data/ai/SpecRuntimeBar.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeBar.d.ts +4 -1
- package/dist/data/ai/SpecRuntimeBar.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeBar.js +2 -2
- package/dist/data/ai/SpecRuntimeBar.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PromptSection.cjs +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PromptSection.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PromptSection.js +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PromptSection.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor.model.cjs +2 -2
- package/dist/data/ai/SpecRuntimeEditor.model.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor.model.d.ts +2 -2
- package/dist/data/ai/SpecRuntimeEditor.model.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor.model.js +2 -2
- package/dist/data/ai/SpecRuntimeEditor.model.js.map +1 -1
- package/dist/data/ai/ThreadPicker.cjs +2 -2
- package/dist/data/ai/ThreadPicker.cjs.map +1 -1
- package/dist/data/ai/ThreadPicker.js +2 -2
- package/dist/data/ai/ThreadPicker.js.map +1 -1
- package/dist/data/ai/index.d.ts +2 -0
- package/dist/data/ai/index.d.ts.map +1 -1
- package/dist/data/ai/use-prompt-run-stream.cjs +126 -0
- package/dist/data/ai/use-prompt-run-stream.cjs.map +1 -0
- package/dist/data/ai/use-prompt-run-stream.d.ts +52 -0
- package/dist/data/ai/use-prompt-run-stream.d.ts.map +1 -0
- package/dist/data/ai/use-prompt-run-stream.js +126 -0
- package/dist/data/ai/use-prompt-run-stream.js.map +1 -0
- package/dist/data/cache-browser/CacheBrowser.cjs +1 -0
- package/dist/data/cache-browser/CacheBrowser.cjs.map +1 -1
- package/dist/data/cache-browser/CacheBrowser.d.ts.map +1 -1
- package/dist/data/cache-browser/CacheBrowser.js +1 -0
- package/dist/data/cache-browser/CacheBrowser.js.map +1 -1
- package/dist/data/charts/BarChart.cjs +194 -0
- package/dist/data/charts/BarChart.cjs.map +1 -0
- package/dist/data/charts/BarChart.d.ts +19 -0
- package/dist/data/charts/BarChart.d.ts.map +1 -0
- package/dist/data/charts/BarChart.js +194 -0
- package/dist/data/charts/BarChart.js.map +1 -0
- package/dist/data/charts/ChartLegend.cjs +54 -0
- package/dist/data/charts/ChartLegend.cjs.map +1 -0
- package/dist/data/charts/ChartLegend.d.ts +17 -0
- package/dist/data/charts/ChartLegend.d.ts.map +1 -0
- package/dist/data/charts/ChartLegend.js +54 -0
- package/dist/data/charts/ChartLegend.js.map +1 -0
- package/dist/data/charts/Sparkline.cjs +56 -0
- package/dist/data/charts/Sparkline.cjs.map +1 -0
- package/dist/data/charts/Sparkline.d.ts +15 -0
- package/dist/data/charts/Sparkline.d.ts.map +1 -0
- package/dist/data/charts/Sparkline.js +56 -0
- package/dist/data/charts/Sparkline.js.map +1 -0
- package/dist/data/charts/StackedBarChart.cjs +241 -0
- package/dist/data/charts/StackedBarChart.cjs.map +1 -0
- package/dist/data/charts/StackedBarChart.d.ts +20 -0
- package/dist/data/charts/StackedBarChart.d.ts.map +1 -0
- package/dist/data/charts/StackedBarChart.js +241 -0
- package/dist/data/charts/StackedBarChart.js.map +1 -0
- package/dist/data/charts/TrendChart.cjs +157 -0
- package/dist/data/charts/TrendChart.cjs.map +1 -0
- package/dist/data/charts/TrendChart.d.ts +20 -0
- package/dist/data/charts/TrendChart.d.ts.map +1 -0
- package/dist/data/charts/TrendChart.js +157 -0
- package/dist/data/charts/TrendChart.js.map +1 -0
- package/dist/data/charts/chart-marks.cjs +115 -0
- package/dist/data/charts/chart-marks.cjs.map +1 -0
- package/dist/data/charts/chart-marks.d.ts +39 -0
- package/dist/data/charts/chart-marks.d.ts.map +1 -0
- package/dist/data/charts/chart-marks.js +112 -0
- package/dist/data/charts/chart-marks.js.map +1 -0
- package/dist/data/charts/chart-palette.cjs +74 -0
- package/dist/data/charts/chart-palette.cjs.map +1 -0
- package/dist/data/charts/chart-palette.d.ts +58 -0
- package/dist/data/charts/chart-palette.d.ts.map +1 -0
- package/dist/data/charts/chart-palette.js +72 -0
- package/dist/data/charts/chart-palette.js.map +1 -0
- package/dist/data/charts/chart-scale.cjs +115 -0
- package/dist/data/charts/chart-scale.cjs.map +1 -0
- package/dist/data/charts/chart-scale.d.ts +41 -0
- package/dist/data/charts/chart-scale.d.ts.map +1 -0
- package/dist/data/charts/chart-scale.js +104 -0
- package/dist/data/charts/chart-scale.js.map +1 -0
- package/dist/data/charts/chart.test-utils.d.ts +7 -0
- package/dist/data/charts/chart.test-utils.d.ts.map +1 -0
- package/dist/data/charts/index.d.ts +7 -0
- package/dist/data/charts/index.d.ts.map +1 -0
- package/dist/data/chat/MessageActions.cjs +1 -1
- package/dist/data/chat/MessageActions.cjs.map +1 -1
- package/dist/data/chat/MessageActions.js +1 -1
- package/dist/data/chat/MessageActions.js.map +1 -1
- package/dist/data/diagnostics/DiagnosticsDetailPanel.cjs +1 -1
- package/dist/data/diagnostics/DiagnosticsDetailPanel.js +1 -1
- package/dist/data/diagnostics/DiagnosticsTree.cjs +1 -1
- package/dist/data/diagnostics/DiagnosticsTree.cjs.map +1 -1
- package/dist/data/diagnostics/DiagnosticsTree.js +1 -1
- package/dist/data/diagnostics/DiagnosticsTree.js.map +1 -1
- package/dist/data/diagnostics/FrameSourceWindow.cjs +9 -2
- package/dist/data/diagnostics/FrameSourceWindow.cjs.map +1 -1
- package/dist/data/diagnostics/FrameSourceWindow.d.ts +1 -1
- package/dist/data/diagnostics/FrameSourceWindow.d.ts.map +1 -1
- package/dist/data/diagnostics/FrameSourceWindow.js +9 -2
- package/dist/data/diagnostics/FrameSourceWindow.js.map +1 -1
- package/dist/data/diagnostics/ProblemActions.cjs +37 -0
- package/dist/data/diagnostics/ProblemActions.cjs.map +1 -0
- package/dist/data/diagnostics/ProblemActions.d.ts +6 -0
- package/dist/data/diagnostics/ProblemActions.d.ts.map +1 -0
- package/dist/data/diagnostics/ProblemActions.js +37 -0
- package/dist/data/diagnostics/ProblemActions.js.map +1 -0
- package/dist/data/diagnostics/ProblemFacet.cjs +33 -0
- package/dist/data/diagnostics/ProblemFacet.cjs.map +1 -0
- package/dist/data/diagnostics/ProblemFacet.d.ts +9 -0
- package/dist/data/diagnostics/ProblemFacet.d.ts.map +1 -0
- package/dist/data/diagnostics/ProblemFacet.js +33 -0
- package/dist/data/diagnostics/ProblemFacet.js.map +1 -0
- package/dist/data/diagnostics/ProblemRow.cjs +62 -0
- package/dist/data/diagnostics/ProblemRow.cjs.map +1 -0
- package/dist/data/diagnostics/ProblemRow.d.ts +14 -0
- package/dist/data/diagnostics/ProblemRow.d.ts.map +1 -0
- package/dist/data/diagnostics/ProblemRow.js +62 -0
- package/dist/data/diagnostics/ProblemRow.js.map +1 -0
- package/dist/data/diagnostics/ProblemViewOptions.cjs +18 -0
- package/dist/data/diagnostics/ProblemViewOptions.cjs.map +1 -0
- package/dist/data/diagnostics/ProblemViewOptions.d.ts +6 -0
- package/dist/data/diagnostics/ProblemViewOptions.d.ts.map +1 -0
- package/dist/data/diagnostics/ProblemViewOptions.js +18 -0
- package/dist/data/diagnostics/ProblemViewOptions.js.map +1 -0
- package/dist/data/diagnostics/StackFrameRow.cjs +1 -1
- package/dist/data/diagnostics/StackFrameRow.cjs.map +1 -1
- package/dist/data/diagnostics/StackFrameRow.js +1 -1
- package/dist/data/diagnostics/StackFrameRow.js.map +1 -1
- package/dist/data/diagnostics/diagnostic-identity.cjs +14 -0
- package/dist/data/diagnostics/diagnostic-identity.cjs.map +1 -0
- package/dist/data/diagnostics/diagnostic-identity.d.ts +3 -0
- package/dist/data/diagnostics/diagnostic-identity.d.ts.map +1 -0
- package/dist/data/diagnostics/diagnostic-identity.js +14 -0
- package/dist/data/diagnostics/diagnostic-identity.js.map +1 -0
- package/dist/data/diagnostics/use-problem-expansion.cjs +16 -0
- package/dist/data/diagnostics/use-problem-expansion.cjs.map +1 -0
- package/dist/data/diagnostics/use-problem-expansion.d.ts +3 -0
- package/dist/data/diagnostics/use-problem-expansion.d.ts.map +1 -0
- package/dist/data/diagnostics/use-problem-expansion.js +16 -0
- package/dist/data/diagnostics/use-problem-expansion.js.map +1 -0
- package/dist/data/git/GitChangeList.cjs +9 -6
- package/dist/data/git/GitChangeList.cjs.map +1 -1
- package/dist/data/git/GitChangeList.d.ts +6 -0
- package/dist/data/git/GitChangeList.d.ts.map +1 -1
- package/dist/data/git/GitChangeList.js +9 -6
- package/dist/data/git/GitChangeList.js.map +1 -1
- package/dist/data/git/pickers/GitPickersDemo.d.ts.map +1 -1
- package/dist/data/git/pickers/ReferencePicker.cjs +1 -0
- package/dist/data/git/pickers/ReferencePicker.cjs.map +1 -1
- package/dist/data/git/pickers/ReferencePicker.js +1 -0
- package/dist/data/git/pickers/ReferencePicker.js.map +1 -1
- package/dist/data/lint/LintDetail.cjs +230 -189
- package/dist/data/lint/LintDetail.cjs.map +1 -1
- package/dist/data/lint/LintDetail.d.ts +25 -3
- package/dist/data/lint/LintDetail.d.ts.map +1 -1
- package/dist/data/lint/LintDetail.js +231 -192
- package/dist/data/lint/LintDetail.js.map +1 -1
- package/dist/data/lint/LintFilterBar.cjs +78 -83
- package/dist/data/lint/LintFilterBar.cjs.map +1 -1
- package/dist/data/lint/LintFilterBar.d.ts +23 -6
- package/dist/data/lint/LintFilterBar.d.ts.map +1 -1
- package/dist/data/lint/LintFilterBar.js +78 -85
- package/dist/data/lint/LintFilterBar.js.map +1 -1
- package/dist/data/lint/LintIgnoreMenu.cjs +59 -0
- package/dist/data/lint/LintIgnoreMenu.cjs.map +1 -0
- package/dist/data/lint/LintIgnoreMenu.d.ts +20 -0
- package/dist/data/lint/LintIgnoreMenu.d.ts.map +1 -0
- package/dist/data/lint/LintIgnoreMenu.js +58 -0
- package/dist/data/lint/LintIgnoreMenu.js.map +1 -0
- package/dist/data/lint/LintResults.cjs +59 -14
- package/dist/data/lint/LintResults.cjs.map +1 -1
- package/dist/data/lint/LintResults.d.ts +25 -1
- package/dist/data/lint/LintResults.d.ts.map +1 -1
- package/dist/data/lint/LintResults.fixtures.d.ts +19 -0
- package/dist/data/lint/LintResults.fixtures.d.ts.map +1 -1
- package/dist/data/lint/LintResults.js +60 -15
- package/dist/data/lint/LintResults.js.map +1 -1
- package/dist/data/lint/LintTable.cjs +156 -0
- package/dist/data/lint/LintTable.cjs.map +1 -0
- package/dist/data/lint/LintTable.d.ts +13 -0
- package/dist/data/lint/LintTable.d.ts.map +1 -0
- package/dist/data/lint/LintTable.js +156 -0
- package/dist/data/lint/LintTable.js.map +1 -0
- package/dist/data/lint/LintTreeNode.cjs +42 -19
- package/dist/data/lint/LintTreeNode.cjs.map +1 -1
- package/dist/data/lint/LintTreeNode.d.ts +7 -2
- package/dist/data/lint/LintTreeNode.d.ts.map +1 -1
- package/dist/data/lint/LintTreeNode.js +44 -21
- package/dist/data/lint/LintTreeNode.js.map +1 -1
- package/dist/data/lint/ViolationSnippet.cjs +113 -0
- package/dist/data/lint/ViolationSnippet.cjs.map +1 -0
- package/dist/data/lint/ViolationSnippet.d.ts +20 -0
- package/dist/data/lint/ViolationSnippet.d.ts.map +1 -0
- package/dist/data/lint/ViolationSnippet.js +112 -0
- package/dist/data/lint/ViolationSnippet.js.map +1 -0
- package/dist/data/lint/actions.cjs +44 -16
- package/dist/data/lint/actions.cjs.map +1 -1
- package/dist/data/lint/actions.d.ts +7 -3
- package/dist/data/lint/actions.d.ts.map +1 -1
- package/dist/data/lint/actions.js +44 -16
- package/dist/data/lint/actions.js.map +1 -1
- package/dist/data/lint/grouping.cjs +105 -8
- package/dist/data/lint/grouping.cjs.map +1 -1
- package/dist/data/lint/grouping.d.ts +21 -1
- package/dist/data/lint/grouping.d.ts.map +1 -1
- package/dist/data/lint/grouping.js +105 -10
- package/dist/data/lint/grouping.js.map +1 -1
- package/dist/data/lint/ignore-menu-items.cjs +18 -0
- package/dist/data/lint/ignore-menu-items.cjs.map +1 -0
- package/dist/data/lint/ignore-menu-items.d.ts +6 -0
- package/dist/data/lint/ignore-menu-items.d.ts.map +1 -0
- package/dist/data/lint/ignore-menu-items.js +17 -0
- package/dist/data/lint/ignore-menu-items.js.map +1 -0
- package/dist/data/lint/index.d.ts +7 -5
- package/dist/data/lint/index.d.ts.map +1 -1
- package/dist/data/lint/stats.cjs +19 -4
- package/dist/data/lint/stats.cjs.map +1 -1
- package/dist/data/lint/stats.d.ts +13 -3
- package/dist/data/lint/stats.d.ts.map +1 -1
- package/dist/data/lint/stats.js +17 -5
- package/dist/data/lint/stats.js.map +1 -1
- package/dist/data/lint/types.cjs +8 -0
- package/dist/data/lint/types.cjs.map +1 -1
- package/dist/data/lint/types.d.ts +47 -0
- package/dist/data/lint/types.d.ts.map +1 -1
- package/dist/data/lint/types.js +8 -1
- package/dist/data/lint/types.js.map +1 -1
- package/dist/data/lint/violation-menu-items.cjs +31 -0
- package/dist/data/lint/violation-menu-items.cjs.map +1 -0
- package/dist/data/lint/violation-menu-items.d.ts +12 -0
- package/dist/data/lint/violation-menu-items.d.ts.map +1 -0
- package/dist/data/lint/violation-menu-items.js +31 -0
- package/dist/data/lint/violation-menu-items.js.map +1 -0
- package/dist/data/markdown-source-blocks.cjs +38 -0
- package/dist/data/markdown-source-blocks.cjs.map +1 -0
- package/dist/data/markdown-source-blocks.d.ts +32 -0
- package/dist/data/markdown-source-blocks.d.ts.map +1 -0
- package/dist/data/markdown-source-blocks.js +35 -0
- package/dist/data/markdown-source-blocks.js.map +1 -0
- package/dist/data/test-runner/FilterFacet.cjs +52 -0
- package/dist/data/test-runner/FilterFacet.cjs.map +1 -0
- package/dist/data/test-runner/FilterFacet.d.ts +13 -0
- package/dist/data/test-runner/FilterFacet.d.ts.map +1 -0
- package/dist/data/test-runner/FilterFacet.js +52 -0
- package/dist/data/test-runner/FilterFacet.js.map +1 -0
- package/dist/data/test-runner/MatrixMarks.cjs +42 -40
- package/dist/data/test-runner/MatrixMarks.cjs.map +1 -1
- package/dist/data/test-runner/MatrixMarks.d.ts +20 -4
- package/dist/data/test-runner/MatrixMarks.d.ts.map +1 -1
- package/dist/data/test-runner/MatrixMarks.js +43 -42
- package/dist/data/test-runner/MatrixMarks.js.map +1 -1
- package/dist/data/test-runner/TestAttemptDetail.cjs +1 -1
- package/dist/data/test-runner/TestAttemptDetail.js +1 -1
- package/dist/data/test-runner/TestDetailPanel.cjs +11 -0
- 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 +11 -0
- package/dist/data/test-runner/TestDetailPanel.js.map +1 -1
- package/dist/data/test-runner/TestFilterBar.cjs +3 -44
- package/dist/data/test-runner/TestFilterBar.cjs.map +1 -1
- package/dist/data/test-runner/TestFilterBar.d.ts.map +1 -1
- package/dist/data/test-runner/TestFilterBar.js +3 -44
- package/dist/data/test-runner/TestFilterBar.js.map +1 -1
- package/dist/data/test-runner/TestRunner.cjs +3 -1
- package/dist/data/test-runner/TestRunner.cjs.map +1 -1
- package/dist/data/test-runner/TestRunner.d.ts +7 -1
- package/dist/data/test-runner/TestRunner.d.ts.map +1 -1
- package/dist/data/test-runner/TestRunner.js +3 -1
- package/dist/data/test-runner/TestRunner.js.map +1 -1
- package/dist/data/test-runner/context.cjs.map +1 -1
- package/dist/data/test-runner/context.d.ts +3 -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 +2 -2
- package/dist/data/test-runner/index.d.ts.map +1 -1
- package/dist/data/test-runner/matrix-marks.cjs +2 -11
- package/dist/data/test-runner/matrix-marks.cjs.map +1 -1
- package/dist/data/test-runner/matrix-marks.d.ts +2 -4
- package/dist/data/test-runner/matrix-marks.d.ts.map +1 -1
- package/dist/data/test-runner/matrix-marks.js +3 -11
- package/dist/data/test-runner/matrix-marks.js.map +1 -1
- package/dist/data/test-runner/types.d.ts +2 -0
- package/dist/data/test-runner/types.d.ts.map +1 -1
- package/dist/data/timeseries-query.cjs +98 -2
- package/dist/data/timeseries-query.cjs.map +1 -1
- package/dist/data/timeseries-query.d.ts +31 -5
- package/dist/data/timeseries-query.d.ts.map +1 -1
- package/dist/data/timeseries-query.js +98 -3
- package/dist/data/timeseries-query.js.map +1 -1
- package/dist/data/timeseries-stream-provider.cjs +38 -0
- package/dist/data/timeseries-stream-provider.cjs.map +1 -0
- package/dist/data/timeseries-stream-provider.d.ts +26 -0
- package/dist/data/timeseries-stream-provider.d.ts.map +1 -0
- package/dist/data/timeseries-stream-provider.js +38 -0
- package/dist/data/timeseries-stream-provider.js.map +1 -0
- package/dist/data/timeseries-stream.cjs +304 -0
- package/dist/data/timeseries-stream.cjs.map +1 -0
- package/dist/data/timeseries-stream.d.ts +81 -0
- package/dist/data/timeseries-stream.d.ts.map +1 -0
- package/dist/data/timeseries-stream.fixtures.d.ts +36 -0
- package/dist/data/timeseries-stream.fixtures.d.ts.map +1 -0
- package/dist/data/timeseries-stream.js +296 -0
- package/dist/data/timeseries-stream.js.map +1 -0
- package/dist/data/token-style.cjs +13 -0
- package/dist/data/token-style.cjs.map +1 -0
- package/dist/data/token-style.d.ts +4 -0
- package/dist/data/token-style.d.ts.map +1 -0
- package/dist/data/token-style.js +13 -0
- package/dist/data/token-style.js.map +1 -0
- package/dist/data/traces/ProcessTraceDetail.cjs +1 -1
- package/dist/data/traces/ProcessTraceDetail.js +1 -1
- package/dist/data/traces/index.d.ts +1 -1
- package/dist/data/traces/index.d.ts.map +1 -1
- package/dist/data/use-data-table-virtual.d.ts +1 -1
- package/dist/data/version-info.cjs +3 -3
- package/dist/data/version-info.js +3 -3
- package/dist/data/workload-panel/MemoryStack.cjs +49 -0
- package/dist/data/workload-panel/MemoryStack.cjs.map +1 -0
- package/dist/data/workload-panel/MemoryStack.d.ts +11 -0
- package/dist/data/workload-panel/MemoryStack.d.ts.map +1 -0
- package/dist/data/workload-panel/MemoryStack.js +48 -0
- package/dist/data/workload-panel/MemoryStack.js.map +1 -0
- package/dist/data/workload-panel/Metrics.cjs +197 -0
- package/dist/data/workload-panel/Metrics.cjs.map +1 -0
- package/dist/data/workload-panel/Metrics.d.ts +11 -0
- package/dist/data/workload-panel/Metrics.d.ts.map +1 -0
- package/dist/data/workload-panel/Metrics.js +196 -0
- package/dist/data/workload-panel/Metrics.js.map +1 -0
- package/dist/data/workload-panel/WorkloadPanel.cjs +66 -0
- package/dist/data/workload-panel/WorkloadPanel.cjs.map +1 -0
- package/dist/data/workload-panel/WorkloadPanel.d.ts +3 -0
- package/dist/data/workload-panel/WorkloadPanel.d.ts.map +1 -0
- package/dist/data/workload-panel/WorkloadPanel.js +66 -0
- package/dist/data/workload-panel/WorkloadPanel.js.map +1 -0
- package/dist/data/workload-panel/fixtures.d.ts +60 -0
- package/dist/data/workload-panel/fixtures.d.ts.map +1 -0
- package/dist/data/workload-panel/model.cjs +137 -0
- package/dist/data/workload-panel/model.cjs.map +1 -0
- package/dist/data/workload-panel/model.d.ts +53 -0
- package/dist/data/workload-panel/model.d.ts.map +1 -0
- package/dist/data/workload-panel/model.js +133 -0
- package/dist/data/workload-panel/model.js.map +1 -0
- package/dist/data/workload-panel/types.d.ts +56 -0
- package/dist/data/workload-panel/types.d.ts.map +1 -0
- package/dist/data.cjs +58 -7
- package/dist/data.d.ts +9 -1
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +29 -12
- package/dist/file-findings/AnnotatedCode.cjs +243 -0
- package/dist/file-findings/AnnotatedCode.cjs.map +1 -0
- package/dist/file-findings/AnnotatedCode.d.ts +30 -0
- package/dist/file-findings/AnnotatedCode.d.ts.map +1 -0
- package/dist/file-findings/AnnotatedCode.js +243 -0
- package/dist/file-findings/AnnotatedCode.js.map +1 -0
- package/dist/file-findings/FileFindingsView.cjs +213 -0
- package/dist/file-findings/FileFindingsView.cjs.map +1 -0
- package/dist/file-findings/FileFindingsView.d.ts +35 -0
- package/dist/file-findings/FileFindingsView.d.ts.map +1 -0
- package/dist/file-findings/FileFindingsView.js +213 -0
- package/dist/file-findings/FileFindingsView.js.map +1 -0
- package/dist/file-findings/LazyAnnotatedCode.cjs +22 -0
- package/dist/file-findings/LazyAnnotatedCode.cjs.map +1 -0
- package/dist/file-findings/LazyAnnotatedCode.d.ts +5 -0
- package/dist/file-findings/LazyAnnotatedCode.d.ts.map +1 -0
- package/dist/file-findings/LazyAnnotatedCode.js +22 -0
- package/dist/file-findings/LazyAnnotatedCode.js.map +1 -0
- package/dist/file-findings/adapters.cjs +155 -0
- package/dist/file-findings/adapters.cjs.map +1 -0
- package/dist/file-findings/adapters.d.ts +24 -0
- package/dist/file-findings/adapters.d.ts.map +1 -0
- package/dist/file-findings/adapters.js +153 -0
- package/dist/file-findings/adapters.js.map +1 -0
- package/dist/file-findings/file-review/CommentDraft.cjs +97 -0
- package/dist/file-findings/file-review/CommentDraft.cjs.map +1 -0
- package/dist/file-findings/file-review/CommentDraft.d.ts +25 -0
- package/dist/file-findings/file-review/CommentDraft.d.ts.map +1 -0
- package/dist/file-findings/file-review/CommentDraft.js +97 -0
- package/dist/file-findings/file-review/CommentDraft.js.map +1 -0
- package/dist/file-findings/file-review/FileReview.cjs +863 -0
- package/dist/file-findings/file-review/FileReview.cjs.map +1 -0
- package/dist/file-findings/file-review/FileReview.d.ts +79 -0
- package/dist/file-findings/file-review/FileReview.d.ts.map +1 -0
- package/dist/file-findings/file-review/FileReview.fixtures.d.ts +25 -0
- package/dist/file-findings/file-review/FileReview.fixtures.d.ts.map +1 -0
- package/dist/file-findings/file-review/FileReview.js +863 -0
- package/dist/file-findings/file-review/FileReview.js.map +1 -0
- package/dist/file-findings/file-review/InlineAuthors.cjs +77 -0
- package/dist/file-findings/file-review/InlineAuthors.cjs.map +1 -0
- package/dist/file-findings/file-review/InlineAuthors.d.ts +9 -0
- package/dist/file-findings/file-review/InlineAuthors.d.ts.map +1 -0
- package/dist/file-findings/file-review/InlineAuthors.js +77 -0
- package/dist/file-findings/file-review/InlineAuthors.js.map +1 -0
- package/dist/file-findings/file-review/InlineThread.cjs +77 -0
- package/dist/file-findings/file-review/InlineThread.cjs.map +1 -0
- package/dist/file-findings/file-review/InlineThread.d.ts +27 -0
- package/dist/file-findings/file-review/InlineThread.d.ts.map +1 -0
- package/dist/file-findings/file-review/InlineThread.js +77 -0
- package/dist/file-findings/file-review/InlineThread.js.map +1 -0
- package/dist/file-findings/file-review/ProblemsList.cjs +164 -0
- package/dist/file-findings/file-review/ProblemsList.cjs.map +1 -0
- package/dist/file-findings/file-review/ProblemsList.d.ts +15 -0
- package/dist/file-findings/file-review/ProblemsList.d.ts.map +1 -0
- package/dist/file-findings/file-review/ProblemsList.js +164 -0
- package/dist/file-findings/file-review/ProblemsList.js.map +1 -0
- package/dist/file-findings/file-review/SourceView.cjs +179 -0
- package/dist/file-findings/file-review/SourceView.cjs.map +1 -0
- package/dist/file-findings/file-review/SourceView.d.ts +29 -0
- package/dist/file-findings/file-review/SourceView.d.ts.map +1 -0
- package/dist/file-findings/file-review/SourceView.js +179 -0
- package/dist/file-findings/file-review/SourceView.js.map +1 -0
- package/dist/file-findings/file-review/blame.cjs +35 -0
- package/dist/file-findings/file-review/blame.cjs.map +1 -0
- package/dist/file-findings/file-review/blame.d.ts +28 -0
- package/dist/file-findings/file-review/blame.d.ts.map +1 -0
- package/dist/file-findings/file-review/blame.js +33 -0
- package/dist/file-findings/file-review/blame.js.map +1 -0
- package/dist/file-findings/file-review/geometry.cjs +101 -0
- package/dist/file-findings/file-review/geometry.cjs.map +1 -0
- package/dist/file-findings/file-review/geometry.d.ts +45 -0
- package/dist/file-findings/file-review/geometry.d.ts.map +1 -0
- package/dist/file-findings/file-review/geometry.js +98 -0
- package/dist/file-findings/file-review/geometry.js.map +1 -0
- package/dist/file-findings/file-review/hooks.cjs +101 -0
- package/dist/file-findings/file-review/hooks.cjs.map +1 -0
- package/dist/file-findings/file-review/hooks.d.ts +22 -0
- package/dist/file-findings/file-review/hooks.d.ts.map +1 -0
- package/dist/file-findings/file-review/hooks.js +99 -0
- package/dist/file-findings/file-review/hooks.js.map +1 -0
- package/dist/file-findings/file-review/marks.cjs +52 -0
- package/dist/file-findings/file-review/marks.cjs.map +1 -0
- package/dist/file-findings/file-review/marks.d.ts +23 -0
- package/dist/file-findings/file-review/marks.d.ts.map +1 -0
- package/dist/file-findings/file-review/marks.js +47 -0
- package/dist/file-findings/file-review/marks.js.map +1 -0
- package/dist/file-findings/file-review/problem-filters.cjs +14 -0
- package/dist/file-findings/file-review/problem-filters.cjs.map +1 -0
- package/dist/file-findings/file-review/problem-filters.d.ts +10 -0
- package/dist/file-findings/file-review/problem-filters.d.ts.map +1 -0
- package/dist/file-findings/file-review/problem-filters.js +13 -0
- package/dist/file-findings/file-review/problem-filters.js.map +1 -0
- package/dist/file-findings/file-review/quote-anchor.cjs +234 -0
- package/dist/file-findings/file-review/quote-anchor.cjs.map +1 -0
- package/dist/file-findings/file-review/quote-anchor.d.ts +54 -0
- package/dist/file-findings/file-review/quote-anchor.d.ts.map +1 -0
- package/dist/file-findings/file-review/quote-anchor.js +226 -0
- package/dist/file-findings/file-review/quote-anchor.js.map +1 -0
- package/dist/file-findings/file-review/source-anchor.cjs +104 -0
- package/dist/file-findings/file-review/source-anchor.cjs.map +1 -0
- package/dist/file-findings/file-review/source-anchor.d.ts +27 -0
- package/dist/file-findings/file-review/source-anchor.d.ts.map +1 -0
- package/dist/file-findings/file-review/source-anchor.js +99 -0
- package/dist/file-findings/file-review/source-anchor.js.map +1 -0
- package/dist/file-findings/file-review/source-marks.cjs +71 -0
- package/dist/file-findings/file-review/source-marks.cjs.map +1 -0
- package/dist/file-findings/file-review/source-marks.d.ts +27 -0
- package/dist/file-findings/file-review/source-marks.d.ts.map +1 -0
- package/dist/file-findings/file-review/source-marks.js +68 -0
- package/dist/file-findings/file-review/source-marks.js.map +1 -0
- package/dist/file-findings/findings-comments.cjs +136 -0
- package/dist/file-findings/findings-comments.cjs.map +1 -0
- package/dist/file-findings/findings-comments.d.ts +28 -0
- package/dist/file-findings/findings-comments.d.ts.map +1 -0
- package/dist/file-findings/findings-comments.js +131 -0
- package/dist/file-findings/findings-comments.js.map +1 -0
- package/dist/file-findings/findings-languages.cjs +53 -0
- package/dist/file-findings/findings-languages.cjs.map +1 -0
- package/dist/file-findings/findings-languages.d.ts +11 -0
- package/dist/file-findings/findings-languages.d.ts.map +1 -0
- package/dist/file-findings/findings-languages.js +53 -0
- package/dist/file-findings/findings-languages.js.map +1 -0
- package/dist/file-findings/mdx-source.cjs +48 -0
- package/dist/file-findings/mdx-source.cjs.map +1 -0
- package/dist/file-findings/mdx-source.d.ts +7 -0
- package/dist/file-findings/mdx-source.d.ts.map +1 -0
- package/dist/file-findings/mdx-source.js +48 -0
- package/dist/file-findings/mdx-source.js.map +1 -0
- package/dist/file-findings/monaco-language.cjs +73 -0
- package/dist/file-findings/monaco-language.cjs.map +1 -0
- package/dist/file-findings/monaco-language.d.ts +11 -0
- package/dist/file-findings/monaco-language.d.ts.map +1 -0
- package/dist/file-findings/monaco-language.js +72 -0
- package/dist/file-findings/monaco-language.js.map +1 -0
- package/dist/file-findings/severity-counts.cjs +20 -0
- package/dist/file-findings/severity-counts.cjs.map +1 -0
- package/dist/file-findings/severity-counts.d.ts +5 -0
- package/dist/file-findings/severity-counts.d.ts.map +1 -0
- package/dist/file-findings/severity-counts.js +19 -0
- package/dist/file-findings/severity-counts.js.map +1 -0
- package/dist/file-findings/types.cjs +12 -0
- package/dist/file-findings/types.cjs.map +1 -0
- package/dist/file-findings/types.d.ts +43 -0
- package/dist/file-findings/types.d.ts.map +1 -0
- package/dist/file-findings/types.js +11 -0
- package/dist/file-findings/types.js.map +1 -0
- package/dist/file-findings.cjs +47 -0
- package/dist/file-findings.d.ts +15 -0
- package/dist/file-findings.d.ts.map +1 -0
- package/dist/file-findings.js +15 -0
- package/dist/hooks/event-hub.cjs +22 -8
- package/dist/hooks/event-hub.cjs.map +1 -1
- package/dist/hooks/event-hub.d.ts.map +1 -1
- package/dist/hooks/event-hub.js +22 -8
- package/dist/hooks/event-hub.js.map +1 -1
- package/dist/icons/components/UiBrowser.cjs +51 -0
- package/dist/icons/components/UiBrowser.cjs.map +1 -0
- package/dist/icons/components/UiBrowser.d.ts +15 -0
- package/dist/icons/components/UiBrowser.d.ts.map +1 -0
- package/dist/icons/components/UiBrowser.js +48 -0
- package/dist/icons/components/UiBrowser.js.map +1 -0
- package/dist/icons/components/UiCreditCard.cjs +51 -0
- package/dist/icons/components/UiCreditCard.cjs.map +1 -0
- package/dist/icons/components/UiCreditCard.d.ts +15 -0
- package/dist/icons/components/UiCreditCard.d.ts.map +1 -0
- package/dist/icons/components/UiCreditCard.js +48 -0
- package/dist/icons/components/UiCreditCard.js.map +1 -0
- package/dist/icons/components/UiShoppingCart.cjs +51 -0
- package/dist/icons/components/UiShoppingCart.cjs.map +1 -0
- package/dist/icons/components/UiShoppingCart.d.ts +15 -0
- package/dist/icons/components/UiShoppingCart.d.ts.map +1 -0
- package/dist/icons/components/UiShoppingCart.js +48 -0
- package/dist/icons/components/UiShoppingCart.js.map +1 -0
- package/dist/icons/index.d.ts +6 -0
- package/dist/icons/index.d.ts.map +1 -1
- package/dist/icons/registry.cjs +6 -0
- package/dist/icons/registry.cjs.map +1 -1
- package/dist/icons/registry.d.ts.map +1 -1
- package/dist/icons/registry.js +6 -0
- package/dist/icons/registry.js.map +1 -1
- package/dist/icons.cjs +9 -0
- package/dist/icons.js +4 -1
- package/dist/index.cjs +76 -8
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +37 -14
- package/dist/layout/AppShell.cjs +37 -21
- package/dist/layout/AppShell.cjs.map +1 -1
- package/dist/layout/AppShell.d.ts +13 -2
- package/dist/layout/AppShell.d.ts.map +1 -1
- package/dist/layout/AppShell.js +37 -21
- package/dist/layout/AppShell.js.map +1 -1
- package/dist/layout/AppShell.nav.cjs +7 -6
- package/dist/layout/AppShell.nav.cjs.map +1 -1
- package/dist/layout/AppShell.nav.d.ts.map +1 -1
- package/dist/layout/AppShell.nav.js +7 -6
- package/dist/layout/AppShell.nav.js.map +1 -1
- package/dist/layout/SplitPane.cjs +16 -6
- package/dist/layout/SplitPane.cjs.map +1 -1
- package/dist/layout/SplitPane.d.ts +12 -2
- package/dist/layout/SplitPane.d.ts.map +1 -1
- package/dist/layout/SplitPane.js +16 -6
- package/dist/layout/SplitPane.js.map +1 -1
- package/dist/layout/Workspace.cjs +37 -33
- package/dist/layout/Workspace.cjs.map +1 -1
- package/dist/layout/Workspace.d.ts.map +1 -1
- package/dist/layout/Workspace.js +37 -33
- package/dist/layout/Workspace.js.map +1 -1
- package/dist/layout/Workspace.regions.cjs +3 -3
- package/dist/layout/Workspace.regions.cjs.map +1 -1
- package/dist/layout/Workspace.regions.js +3 -3
- package/dist/layout/Workspace.regions.js.map +1 -1
- package/dist/lib/breakpoints.cjs +102 -0
- package/dist/lib/breakpoints.cjs.map +1 -0
- package/dist/lib/breakpoints.d.ts +36 -0
- package/dist/lib/breakpoints.d.ts.map +1 -0
- package/dist/lib/breakpoints.js +99 -0
- package/dist/lib/breakpoints.js.map +1 -0
- package/dist/lib/combobox.cjs +2 -1
- package/dist/lib/combobox.cjs.map +1 -1
- package/dist/lib/combobox.d.ts +1 -1
- package/dist/lib/combobox.d.ts.map +1 -1
- package/dist/lib/combobox.js +2 -1
- package/dist/lib/combobox.js.map +1 -1
- package/dist/lib/path-tree.cjs +21 -0
- package/dist/lib/path-tree.cjs.map +1 -1
- package/dist/lib/path-tree.d.ts +15 -0
- package/dist/lib/path-tree.d.ts.map +1 -1
- package/dist/lib/path-tree.js +21 -1
- package/dist/lib/path-tree.js.map +1 -1
- package/dist/overlay/Modal.cjs +2 -1
- package/dist/overlay/Modal.cjs.map +1 -1
- package/dist/overlay/Modal.d.ts.map +1 -1
- package/dist/overlay/Modal.js +2 -1
- package/dist/overlay/Modal.js.map +1 -1
- package/dist/overlay/dropdownMenuContext.d.ts +1 -1
- package/dist/profiles/editor/profileEditor.cjs +1 -1
- package/dist/profiles/editor/profileEditor.cjs.map +1 -1
- package/dist/profiles/editor/profileEditor.js +1 -1
- package/dist/profiles/editor/profileEditor.js.map +1 -1
- package/dist/profiles/editor/profileEditorSections.cjs +2 -2
- package/dist/profiles/editor/profileEditorSections.cjs.map +1 -1
- package/dist/profiles/editor/profileEditorSections.js +2 -2
- package/dist/profiles/editor/profileEditorSections.js.map +1 -1
- package/dist/profiles/query/prometheusResults.cjs +24 -36
- package/dist/profiles/query/prometheusResults.cjs.map +1 -1
- package/dist/profiles/query/prometheusResults.d.ts.map +1 -1
- package/dist/profiles/query/prometheusResults.js +24 -36
- package/dist/profiles/query/prometheusResults.js.map +1 -1
- package/dist/rpc/CommandForm.cjs +1 -1
- package/dist/rpc/CommandForm.cjs.map +1 -1
- package/dist/rpc/CommandForm.js +1 -1
- package/dist/rpc/CommandForm.js.map +1 -1
- package/dist/rpc/classify.cjs +1 -1
- package/dist/rpc/classify.cjs.map +1 -1
- package/dist/rpc/classify.d.ts.map +1 -1
- package/dist/rpc/classify.js +1 -1
- package/dist/rpc/classify.js.map +1 -1
- package/dist/rpc/useOperations.d.ts +24 -24
- package/dist/rpc.cjs +0 -2
- package/dist/rpc.d.ts +0 -1
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +1 -2
- package/dist/styles.css +1 -1
- package/dist/utils.cjs +6 -0
- package/dist/utils.d.ts +2 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +3 -2
- package/package.json +9 -3
- package/schemas/json-schema-form.schema.json +9 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LintTable.js","names":[],"sources":["../../../src/data/lint/LintTable.tsx"],"sourcesContent":["import { useContainerWiderThan } from \"../../hooks/use-container-width\";\nimport { useProblemExpansion } from \"../diagnostics/use-problem-expansion\";\nimport { violationMenuItems } from \"./violation-menu-items\";\nimport { ProblemActions } from \"../diagnostics/ProblemActions\";\nimport { useMemo } from \"react\";\nimport { DataTable, type DataTableColumnInput } from \"../DataTable\";\nimport { toolMark } from \"../test-runner/marks\";\nimport { LintSeverityIcon, ToolIcon } from \"../test-runner/MarkIcons\";\nimport { ViolationCard, ViolationDetail, type HostActionProps } from \"./LintDetail\";\nimport { flattenLint, type FlatViolation } from \"./grouping\";\nimport { severityOf } from \"./stats\";\nimport { diagnosticKeys } from \"../diagnostics/diagnostic-identity\";\nimport { matchesFilterState } from \"../test-runner/filterState\";\nimport type { LintFilters, LintSeverity, LinterResult } from \"./types\";\n\ntype LintTableRow = {\n id: string;\n severity: LintSeverity;\n linter: string;\n rule: string;\n location: string;\n message: string;\n flat: FlatViolation;\n};\n\nconst SEVERITY_RANK: Record<LintSeverity, number> = { error: 0, warning: 1, info: 2 };\n\nfunction tableRows(results: readonly LinterResult[], filters: LintFilters): LintTableRow[] {\n const all = flattenLint(results, { severity: new Map(), linter: new Map() });\n const keys = diagnosticKeys(all.map((f) => [f.workDir, f.rawFile, f.linter, f.v.rule?.method, f.v.line, f.v.column, f.v.end_line, f.v.end_column, f.v.message, f.v.severity]));\n return all.map((flat, i) => ({\n id: keys[i]!,\n severity: severityOf(flat.v),\n linter: flat.linter,\n rule: flat.v.rule?.method ?? \"\",\n location: flat.file ? `${flat.file}${flat.v.line ? `:${flat.v.line}` : \"\"}` : \"\",\n message: flat.v.message ?? \"\",\n flat,\n })).filter(({ flat }) => matchesFilterState(flat.linter, filters.linter) && matchesFilterState(severityOf(flat.v), filters.severity));\n}\n\nconst COLUMNS: Array<DataTableColumnInput<LintTableRow>> = [\n {\n key: \"severity\",\n label: \"Severity\",\n sortable: true,\n sortValue: (value) => SEVERITY_RANK[value as LintSeverity],\n shrink: true,\n render: (value) => (\n <span className=\"inline-flex items-center gap-1\">\n <LintSeverityIcon severity={value as LintSeverity} />\n \n </span>\n ),\n },\n {\n key: \"linter\",\n label: \"Linter\",\n sortable: true,\n shrink: true,\n render: (value) => (\n <span className=\"inline-flex items-center gap-1\">\n <ToolIcon tool={value as string} />\n {toolMark(value as string)?.label ?? (value as string)}\n </span>\n ),\n },\n { key: \"rule\", label: \"Rule\", sortable: true, render: (value) => <span className=\"font-mono text-xs\">{value as string}</span> },\n { key: \"location\", label: \"Location\", sortable: true, render: (value) => <span title={value as string} className=\"block max-w-40 truncate font-mono text-xs\">{value as string}</span> },\n { key: \"message\", label: \"Message\", grow: true },\n];\n\nexport type LintTableProps = HostActionProps & {\n results: readonly LinterResult[];\n filters: LintFilters;\n className?: string;\n};\n\n/**\n * Every violation the filters keep as one sortable table row; clicking a row\n * opens the same violation card the tree's detail pane shows beneath it.\n */\nexport function LintTable({ results, filters, className, ...host }: LintTableProps) {\n const { ref, wider: roomy } = useContainerWiderThan(640);\n const columns = useMemo<Array<DataTableColumnInput<LintTableRow>>>(() => [...COLUMNS, {\n key: \"actions\", label: \"\", shrink: true,\n render: (_value, row) => <ProblemActions items={violationMenuItems({ violation: row.flat.v, linter: row.flat.linter, file: row.flat.rawFile ?? \"\", workDir: row.flat.workDir ?? \"\", ...host })} />,\n }], [host]);\n const allKeys = useMemo(() => tableRows(results, { severity: new Map(), linter: new Map() }).map((row) => row.id), [results]);\n const [expanded, setExpanded] = useProblemExpansion(allKeys);\n const rows = useMemo(() => tableRows(results, filters), [results, filters]);\n return (\n <div ref={ref} className=\"min-w-0\">\n {!roomy ? <div>{rows.slice().sort((a, b) => SEVERITY_RANK[a.severity] - SEVERITY_RANK[b.severity]).map(({ id, flat }) => <ViolationCard key={id} expanded={expanded.includes(id)} onExpandedChange={(open) => setExpanded((current) => open ? [...current, id] : current.filter((key) => key !== id))} violation={flat.v} linter={flat.linter} file={flat.rawFile ?? \"\"} workDir={flat.workDir ?? \"\"} showFile {...host} />)}</div> : <DataTable<LintTableRow>\n data={rows}\n columns={columns}\n getRowId={(row) => row.id}\n defaultSort={{ key: \"severity\", dir: \"asc\" }}\n emptyMessage=\"No violations match the current filters\"\n detailStyle=\"row\"\n expandedRowIds={expanded}\n onExpandedRowIdsChange={setExpanded}\n renderExpandedRow={({ flat }) => (\n <ViolationDetail\n violation={flat.v}\n linter={flat.linter}\n file={flat.rawFile ?? \"\"}\n workDir={flat.workDir ?? \"\"}\n {...host}\n />\n )}\n {...(className ? { className } : {})}\n />}\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -3,24 +3,35 @@ const require_UiTag = require("../../icons/components/UiTag.cjs");
|
|
|
3
3
|
const require_UiFileCode = require("../../icons/components/UiFileCode.cjs");
|
|
4
4
|
const require_UiFolder = require("../../icons/components/UiFolder.cjs");
|
|
5
5
|
const require_UiWrench = require("../../icons/components/UiWrench.cjs");
|
|
6
|
+
const require_UiClock = require("../../icons/components/UiClock.cjs");
|
|
6
7
|
const require_Icon = require("../Icon.cjs");
|
|
7
|
-
const
|
|
8
|
+
const require_status = require("../test-runner/status.cjs");
|
|
8
9
|
const require_marks = require("../test-runner/marks.cjs");
|
|
9
10
|
const require_MarkIcons = require("../test-runner/MarkIcons.cjs");
|
|
10
11
|
const require_stats = require("./stats.cjs");
|
|
12
|
+
const require_LintIgnoreMenu = require("./LintIgnoreMenu.cjs");
|
|
13
|
+
const require_types = require("./types.cjs");
|
|
11
14
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
12
15
|
// src/data/lint/LintTreeNode.tsx
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
16
|
+
/** The error of a linter that failed to run: its error leaf's text. */
|
|
17
|
+
function failedToRunMessage(node) {
|
|
18
|
+
if (node.kind !== "linter") return void 0;
|
|
19
|
+
return node.children?.find((c) => c.kind === "linter-error")?.message;
|
|
20
|
+
}
|
|
18
21
|
function NodeIcon({ node }) {
|
|
19
22
|
switch (node.kind) {
|
|
20
|
-
case "linter":
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
23
|
+
case "linter":
|
|
24
|
+
if (node.linter?.status === "running") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_MarkIcons.OutcomeIcon, { outcome: "running" });
|
|
25
|
+
if (node.linter?.status === "pending") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Icon.Icon, {
|
|
26
|
+
icon: require_UiClock.UiClock,
|
|
27
|
+
title: "Pending",
|
|
28
|
+
className: "shrink-0 text-muted-foreground"
|
|
29
|
+
});
|
|
30
|
+
if (failedToRunMessage(node) !== void 0) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_MarkIcons.LintSeverityIcon, { severity: "error" });
|
|
31
|
+
return require_marks.toolMark(require_stats.linterToolName(node)) ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_MarkIcons.ToolIcon, { tool: require_stats.linterToolName(node) }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Icon.Icon, {
|
|
32
|
+
icon: require_UiWrench.UiWrench,
|
|
33
|
+
className: "shrink-0 text-muted-foreground"
|
|
34
|
+
});
|
|
24
35
|
case "lint-folder": return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Icon.Icon, {
|
|
25
36
|
icon: require_UiFolder.UiFolder,
|
|
26
37
|
className: "shrink-0 text-muted-foreground"
|
|
@@ -38,32 +49,44 @@ function NodeIcon({ node }) {
|
|
|
38
49
|
}
|
|
39
50
|
}
|
|
40
51
|
/** One lint tree row: kind glyph, name, trailing note, and a violation count coloured by worst severity. */
|
|
41
|
-
function LintTreeNode({ node, selected }) {
|
|
52
|
+
function LintTreeNode({ node, selected, actions = [], onIgnore, ignoreBusy = false }) {
|
|
42
53
|
const count = node.kind === "linter-error" ? 0 : require_stats.lintNodeCount(node);
|
|
43
|
-
const
|
|
54
|
+
const failedMessage = failedToRunMessage(node);
|
|
55
|
+
const failedToRun = failedMessage !== void 0;
|
|
44
56
|
const note = node.skipped ? node.message : failedToRun ? "failed to run" : void 0;
|
|
57
|
+
const noteTitle = failedToRun ? failedMessage : note;
|
|
58
|
+
const cached = node.kind === "linter" ? require_types.cachedAge(node.linter) : void 0;
|
|
59
|
+
const duration = cached ? `cached · ${cached.replace(/ ago$/, "")}` : node.kind === "linter" && !node.linter?.status && node.linter?.duration ? require_status.formatTestDuration(node.linter.duration) : "";
|
|
45
60
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
|
|
46
61
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(NodeIcon, { node }),
|
|
47
62
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
48
|
-
className: require_utils.cn("min-w-0 truncate", selected ? "font-semibold" : "font-medium", node.kind === "linter-error" ? "text-red-600 dark:text-red-400" : "text-foreground", node.skipped && "text-muted-foreground"),
|
|
63
|
+
className: require_utils.cn("min-w-0 truncate", selected ? "font-semibold" : "font-medium", node.kind === "linter-error" || failedToRun ? "text-red-600 dark:text-red-400" : "text-foreground", (node.skipped || node.kind === "linter" && node.linter?.status === "pending") && "text-muted-foreground"),
|
|
49
64
|
title: node.name,
|
|
50
65
|
children: node.name
|
|
51
66
|
}),
|
|
52
67
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { className: "flex-1" }),
|
|
53
68
|
note && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
54
69
|
className: require_utils.cn("min-w-0 shrink-[100] truncate text-xs", failedToRun ? "text-red-600 dark:text-red-400" : "text-muted-foreground"),
|
|
55
|
-
title:
|
|
70
|
+
title: noteTitle,
|
|
56
71
|
children: note
|
|
57
72
|
}),
|
|
73
|
+
duration && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
74
|
+
className: "shrink-0 text-xs tabular-nums text-muted-foreground",
|
|
75
|
+
children: duration
|
|
76
|
+
}),
|
|
58
77
|
count > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
59
78
|
className: "flex shrink-0",
|
|
60
79
|
title: `${count} violation${count === 1 ? "" : "s"}`,
|
|
61
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
size: "xxs",
|
|
65
|
-
count
|
|
80
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
81
|
+
className: "text-xs tabular-nums text-muted-foreground",
|
|
82
|
+
children: count
|
|
66
83
|
})
|
|
84
|
+
}),
|
|
85
|
+
onIgnore && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_LintIgnoreMenu.LintRowIgnoreMenu, {
|
|
86
|
+
actions,
|
|
87
|
+
onIgnore,
|
|
88
|
+
busy: ignoreBusy,
|
|
89
|
+
label: node.name
|
|
67
90
|
})
|
|
68
91
|
] });
|
|
69
92
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LintTreeNode.cjs","names":["toolMark","
|
|
1
|
+
{"version":3,"file":"LintTreeNode.cjs","names":["OutcomeIcon","Icon","UiClock","LintSeverityIcon","toolMark","linterToolName","ToolIcon","UiWrench","UiFolder","UiFileCode","UiTag","lintNodeCount","cachedAge","formatTestDuration","_Fragment","cn","LintRowIgnoreMenu"],"sources":["../../../src/data/lint/LintTreeNode.tsx"],"sourcesContent":["import { Icon } from \"../Icon\";\nimport { cn } from \"../../lib/utils\";\nimport { UiClock, UiFileCode, UiFolder, UiTag, UiWrench } from \"../../icons\";\nimport { LintSeverityIcon, OutcomeIcon, ToolIcon } from \"../test-runner/MarkIcons\";\nimport { toolMark } from \"../test-runner/marks\";\nimport { formatTestDuration } from \"../test-runner/status\";\nimport { linterToolName, lintNodeCount } from \"./stats\";\nimport { cachedAge, type LintAction, type LintNode } from \"./types\";\nimport { LintRowIgnoreMenu } from \"./LintIgnoreMenu\";\nimport type { IgnoreHandler } from \"./ignore-menu-items\";\n\n/** The error of a linter that failed to run: its error leaf's text. */\nfunction failedToRunMessage(node: LintNode): string | undefined {\n if (node.kind !== \"linter\") return undefined;\n return node.children?.find((c) => c.kind === \"linter-error\")?.message;\n}\n\nfunction NodeIcon({ node }: { node: LintNode }) {\n switch (node.kind) {\n case \"linter\":\n if (node.linter?.status === \"running\") return <OutcomeIcon outcome=\"running\" />;\n if (node.linter?.status === \"pending\") {\n return <Icon icon={UiClock} title=\"Pending\" className=\"shrink-0 text-muted-foreground\" />;\n }\n if (failedToRunMessage(node) !== undefined) return <LintSeverityIcon severity=\"error\" />;\n return toolMark(linterToolName(node)) ? (\n <ToolIcon tool={linterToolName(node)} />\n ) : (\n <Icon icon={UiWrench} className=\"shrink-0 text-muted-foreground\" />\n );\n case \"lint-folder\":\n return <Icon icon={UiFolder} className=\"shrink-0 text-muted-foreground\" />;\n case \"lint-file\":\n return <Icon icon={UiFileCode} className=\"shrink-0 text-muted-foreground\" />;\n case \"lint-rule\":\n case \"lint-rule-group\":\n return <Icon icon={UiTag} className=\"shrink-0 text-muted-foreground\" />;\n case \"linter-error\":\n return <LintSeverityIcon severity=\"error\" />;\n }\n}\n\n/** One lint tree row: kind glyph, name, trailing note, and a violation count coloured by worst severity. */\nexport function LintTreeNode({\n node,\n selected,\n actions = [],\n onIgnore,\n ignoreBusy = false,\n}: {\n node: LintNode;\n selected: boolean;\n /** Ignore actions offered from the row's \"⋯\" and right-click menus; needs `onIgnore`. */\n actions?: readonly LintAction[];\n onIgnore?: IgnoreHandler | undefined;\n ignoreBusy?: boolean | undefined;\n}) {\n const count = node.kind === \"linter-error\" ? 0 : lintNodeCount(node);\n const failedMessage = failedToRunMessage(node);\n const failedToRun = failedMessage !== undefined;\n const note = node.skipped ? node.message : failedToRun ? \"failed to run\" : undefined;\n const noteTitle = failedToRun ? failedMessage : note;\n const cached = node.kind === \"linter\" ? cachedAge(node.linter) : undefined;\n const duration = cached\n ? `cached · ${cached.replace(/ ago$/, \"\")}`\n : node.kind === \"linter\" && !node.linter?.status && node.linter?.duration\n ? formatTestDuration(node.linter.duration)\n : \"\";\n return (\n <>\n <NodeIcon node={node} />\n <span\n className={cn(\n \"min-w-0 truncate\",\n selected ? \"font-semibold\" : \"font-medium\",\n node.kind === \"linter-error\" || failedToRun ? \"text-red-600 dark:text-red-400\" : \"text-foreground\",\n (node.skipped || (node.kind === \"linter\" && node.linter?.status === \"pending\")) && \"text-muted-foreground\",\n )}\n title={node.name}\n >\n {node.name}\n </span>\n <span className=\"flex-1\" />\n {note && (\n <span\n className={cn(\n \"min-w-0 shrink-[100] truncate text-xs\",\n failedToRun ? \"text-red-600 dark:text-red-400\" : \"text-muted-foreground\",\n )}\n title={noteTitle}\n >\n {note}\n </span>\n )}\n {duration && <span className=\"shrink-0 text-xs tabular-nums text-muted-foreground\">{duration}</span>}\n {count > 0 && (\n <span className=\"flex shrink-0\" title={`${count} violation${count === 1 ? \"\" : \"s\"}`}>\n <span className=\"text-xs tabular-nums text-muted-foreground\">{count}</span>\n </span>\n )}\n {onIgnore && <LintRowIgnoreMenu actions={actions} onIgnore={onIgnore} busy={ignoreBusy} label={node.name} />}\n </>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
import { LintNode } from './types.js';
|
|
1
|
+
import { LintAction, LintNode } from './types.js';
|
|
2
|
+
import { IgnoreHandler } from './ignore-menu-items.js';
|
|
2
3
|
/** One lint tree row: kind glyph, name, trailing note, and a violation count coloured by worst severity. */
|
|
3
|
-
export declare function LintTreeNode({ node, selected }: {
|
|
4
|
+
export declare function LintTreeNode({ node, selected, actions, onIgnore, ignoreBusy, }: {
|
|
4
5
|
node: LintNode;
|
|
5
6
|
selected: boolean;
|
|
7
|
+
/** Ignore actions offered from the row's "⋯" and right-click menus; needs `onIgnore`. */
|
|
8
|
+
actions?: readonly LintAction[];
|
|
9
|
+
onIgnore?: IgnoreHandler | undefined;
|
|
10
|
+
ignoreBusy?: boolean | undefined;
|
|
6
11
|
}): import("react").JSX.Element;
|
|
7
12
|
//# sourceMappingURL=LintTreeNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LintTreeNode.d.ts","sourceRoot":"","sources":["../../../src/data/lint/LintTreeNode.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"LintTreeNode.d.ts","sourceRoot":"","sources":["../../../src/data/lint/LintTreeNode.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAa,KAAK,UAAU,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAiCzD,4GAA4G;AAC5G,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,QAAQ,EACR,OAAY,EACZ,QAAQ,EACR,UAAkB,GACnB,EAAE;IACD,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,yFAAyF;IACzF,OAAO,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IAChC,QAAQ,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACrC,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAClC,+BA+CA"}
|
|
@@ -3,24 +3,35 @@ import { UiTag } from "../../icons/components/UiTag.js";
|
|
|
3
3
|
import { UiFileCode } from "../../icons/components/UiFileCode.js";
|
|
4
4
|
import { UiFolder } from "../../icons/components/UiFolder.js";
|
|
5
5
|
import { UiWrench } from "../../icons/components/UiWrench.js";
|
|
6
|
+
import { UiClock } from "../../icons/components/UiClock.js";
|
|
6
7
|
import { Icon } from "../Icon.js";
|
|
7
|
-
import {
|
|
8
|
+
import { formatTestDuration } from "../test-runner/status.js";
|
|
8
9
|
import { toolMark } from "../test-runner/marks.js";
|
|
9
|
-
import { LintSeverityIcon, ToolIcon } from "../test-runner/MarkIcons.js";
|
|
10
|
-
import { lintNodeCount,
|
|
10
|
+
import { LintSeverityIcon, OutcomeIcon, ToolIcon } from "../test-runner/MarkIcons.js";
|
|
11
|
+
import { lintNodeCount, linterToolName } from "./stats.js";
|
|
12
|
+
import { LintRowIgnoreMenu } from "./LintIgnoreMenu.js";
|
|
13
|
+
import { cachedAge } from "./types.js";
|
|
11
14
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
12
15
|
// src/data/lint/LintTreeNode.tsx
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
16
|
+
/** The error of a linter that failed to run: its error leaf's text. */
|
|
17
|
+
function failedToRunMessage(node) {
|
|
18
|
+
if (node.kind !== "linter") return void 0;
|
|
19
|
+
return node.children?.find((c) => c.kind === "linter-error")?.message;
|
|
20
|
+
}
|
|
18
21
|
function NodeIcon({ node }) {
|
|
19
22
|
switch (node.kind) {
|
|
20
|
-
case "linter":
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
23
|
+
case "linter":
|
|
24
|
+
if (node.linter?.status === "running") return /* @__PURE__ */ jsx(OutcomeIcon, { outcome: "running" });
|
|
25
|
+
if (node.linter?.status === "pending") return /* @__PURE__ */ jsx(Icon, {
|
|
26
|
+
icon: UiClock,
|
|
27
|
+
title: "Pending",
|
|
28
|
+
className: "shrink-0 text-muted-foreground"
|
|
29
|
+
});
|
|
30
|
+
if (failedToRunMessage(node) !== void 0) return /* @__PURE__ */ jsx(LintSeverityIcon, { severity: "error" });
|
|
31
|
+
return toolMark(linterToolName(node)) ? /* @__PURE__ */ jsx(ToolIcon, { tool: linterToolName(node) }) : /* @__PURE__ */ jsx(Icon, {
|
|
32
|
+
icon: UiWrench,
|
|
33
|
+
className: "shrink-0 text-muted-foreground"
|
|
34
|
+
});
|
|
24
35
|
case "lint-folder": return /* @__PURE__ */ jsx(Icon, {
|
|
25
36
|
icon: UiFolder,
|
|
26
37
|
className: "shrink-0 text-muted-foreground"
|
|
@@ -38,32 +49,44 @@ function NodeIcon({ node }) {
|
|
|
38
49
|
}
|
|
39
50
|
}
|
|
40
51
|
/** One lint tree row: kind glyph, name, trailing note, and a violation count coloured by worst severity. */
|
|
41
|
-
function LintTreeNode({ node, selected }) {
|
|
52
|
+
function LintTreeNode({ node, selected, actions = [], onIgnore, ignoreBusy = false }) {
|
|
42
53
|
const count = node.kind === "linter-error" ? 0 : lintNodeCount(node);
|
|
43
|
-
const
|
|
54
|
+
const failedMessage = failedToRunMessage(node);
|
|
55
|
+
const failedToRun = failedMessage !== void 0;
|
|
44
56
|
const note = node.skipped ? node.message : failedToRun ? "failed to run" : void 0;
|
|
57
|
+
const noteTitle = failedToRun ? failedMessage : note;
|
|
58
|
+
const cached = node.kind === "linter" ? cachedAge(node.linter) : void 0;
|
|
59
|
+
const duration = cached ? `cached · ${cached.replace(/ ago$/, "")}` : node.kind === "linter" && !node.linter?.status && node.linter?.duration ? formatTestDuration(node.linter.duration) : "";
|
|
45
60
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
46
61
|
/* @__PURE__ */ jsx(NodeIcon, { node }),
|
|
47
62
|
/* @__PURE__ */ jsx("span", {
|
|
48
|
-
className: cn("min-w-0 truncate", selected ? "font-semibold" : "font-medium", node.kind === "linter-error" ? "text-red-600 dark:text-red-400" : "text-foreground", node.skipped && "text-muted-foreground"),
|
|
63
|
+
className: cn("min-w-0 truncate", selected ? "font-semibold" : "font-medium", node.kind === "linter-error" || failedToRun ? "text-red-600 dark:text-red-400" : "text-foreground", (node.skipped || node.kind === "linter" && node.linter?.status === "pending") && "text-muted-foreground"),
|
|
49
64
|
title: node.name,
|
|
50
65
|
children: node.name
|
|
51
66
|
}),
|
|
52
67
|
/* @__PURE__ */ jsx("span", { className: "flex-1" }),
|
|
53
68
|
note && /* @__PURE__ */ jsx("span", {
|
|
54
69
|
className: cn("min-w-0 shrink-[100] truncate text-xs", failedToRun ? "text-red-600 dark:text-red-400" : "text-muted-foreground"),
|
|
55
|
-
title:
|
|
70
|
+
title: noteTitle,
|
|
56
71
|
children: note
|
|
57
72
|
}),
|
|
73
|
+
duration && /* @__PURE__ */ jsx("span", {
|
|
74
|
+
className: "shrink-0 text-xs tabular-nums text-muted-foreground",
|
|
75
|
+
children: duration
|
|
76
|
+
}),
|
|
58
77
|
count > 0 && /* @__PURE__ */ jsx("span", {
|
|
59
78
|
className: "flex shrink-0",
|
|
60
79
|
title: `${count} violation${count === 1 ? "" : "s"}`,
|
|
61
|
-
children: /* @__PURE__ */ jsx(
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
size: "xxs",
|
|
65
|
-
count
|
|
80
|
+
children: /* @__PURE__ */ jsx("span", {
|
|
81
|
+
className: "text-xs tabular-nums text-muted-foreground",
|
|
82
|
+
children: count
|
|
66
83
|
})
|
|
84
|
+
}),
|
|
85
|
+
onIgnore && /* @__PURE__ */ jsx(LintRowIgnoreMenu, {
|
|
86
|
+
actions,
|
|
87
|
+
onIgnore,
|
|
88
|
+
busy: ignoreBusy,
|
|
89
|
+
label: node.name
|
|
67
90
|
})
|
|
68
91
|
] });
|
|
69
92
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LintTreeNode.js","names":["_Fragment"],"sources":["../../../src/data/lint/LintTreeNode.tsx"],"sourcesContent":["import { Icon } from \"../Icon\";\nimport {
|
|
1
|
+
{"version":3,"file":"LintTreeNode.js","names":["_Fragment"],"sources":["../../../src/data/lint/LintTreeNode.tsx"],"sourcesContent":["import { Icon } from \"../Icon\";\nimport { cn } from \"../../lib/utils\";\nimport { UiClock, UiFileCode, UiFolder, UiTag, UiWrench } from \"../../icons\";\nimport { LintSeverityIcon, OutcomeIcon, ToolIcon } from \"../test-runner/MarkIcons\";\nimport { toolMark } from \"../test-runner/marks\";\nimport { formatTestDuration } from \"../test-runner/status\";\nimport { linterToolName, lintNodeCount } from \"./stats\";\nimport { cachedAge, type LintAction, type LintNode } from \"./types\";\nimport { LintRowIgnoreMenu } from \"./LintIgnoreMenu\";\nimport type { IgnoreHandler } from \"./ignore-menu-items\";\n\n/** The error of a linter that failed to run: its error leaf's text. */\nfunction failedToRunMessage(node: LintNode): string | undefined {\n if (node.kind !== \"linter\") return undefined;\n return node.children?.find((c) => c.kind === \"linter-error\")?.message;\n}\n\nfunction NodeIcon({ node }: { node: LintNode }) {\n switch (node.kind) {\n case \"linter\":\n if (node.linter?.status === \"running\") return <OutcomeIcon outcome=\"running\" />;\n if (node.linter?.status === \"pending\") {\n return <Icon icon={UiClock} title=\"Pending\" className=\"shrink-0 text-muted-foreground\" />;\n }\n if (failedToRunMessage(node) !== undefined) return <LintSeverityIcon severity=\"error\" />;\n return toolMark(linterToolName(node)) ? (\n <ToolIcon tool={linterToolName(node)} />\n ) : (\n <Icon icon={UiWrench} className=\"shrink-0 text-muted-foreground\" />\n );\n case \"lint-folder\":\n return <Icon icon={UiFolder} className=\"shrink-0 text-muted-foreground\" />;\n case \"lint-file\":\n return <Icon icon={UiFileCode} className=\"shrink-0 text-muted-foreground\" />;\n case \"lint-rule\":\n case \"lint-rule-group\":\n return <Icon icon={UiTag} className=\"shrink-0 text-muted-foreground\" />;\n case \"linter-error\":\n return <LintSeverityIcon severity=\"error\" />;\n }\n}\n\n/** One lint tree row: kind glyph, name, trailing note, and a violation count coloured by worst severity. */\nexport function LintTreeNode({\n node,\n selected,\n actions = [],\n onIgnore,\n ignoreBusy = false,\n}: {\n node: LintNode;\n selected: boolean;\n /** Ignore actions offered from the row's \"⋯\" and right-click menus; needs `onIgnore`. */\n actions?: readonly LintAction[];\n onIgnore?: IgnoreHandler | undefined;\n ignoreBusy?: boolean | undefined;\n}) {\n const count = node.kind === \"linter-error\" ? 0 : lintNodeCount(node);\n const failedMessage = failedToRunMessage(node);\n const failedToRun = failedMessage !== undefined;\n const note = node.skipped ? node.message : failedToRun ? \"failed to run\" : undefined;\n const noteTitle = failedToRun ? failedMessage : note;\n const cached = node.kind === \"linter\" ? cachedAge(node.linter) : undefined;\n const duration = cached\n ? `cached · ${cached.replace(/ ago$/, \"\")}`\n : node.kind === \"linter\" && !node.linter?.status && node.linter?.duration\n ? formatTestDuration(node.linter.duration)\n : \"\";\n return (\n <>\n <NodeIcon node={node} />\n <span\n className={cn(\n \"min-w-0 truncate\",\n selected ? \"font-semibold\" : \"font-medium\",\n node.kind === \"linter-error\" || failedToRun ? \"text-red-600 dark:text-red-400\" : \"text-foreground\",\n (node.skipped || (node.kind === \"linter\" && node.linter?.status === \"pending\")) && \"text-muted-foreground\",\n )}\n title={node.name}\n >\n {node.name}\n </span>\n <span className=\"flex-1\" />\n {note && (\n <span\n className={cn(\n \"min-w-0 shrink-[100] truncate text-xs\",\n failedToRun ? \"text-red-600 dark:text-red-400\" : \"text-muted-foreground\",\n )}\n title={noteTitle}\n >\n {note}\n </span>\n )}\n {duration && <span className=\"shrink-0 text-xs tabular-nums text-muted-foreground\">{duration}</span>}\n {count > 0 && (\n <span className=\"flex shrink-0\" title={`${count} violation${count === 1 ? \"\" : \"s\"}`}>\n <span className=\"text-xs tabular-nums text-muted-foreground\">{count}</span>\n </span>\n )}\n {onIgnore && <LintRowIgnoreMenu actions={actions} onIgnore={onIgnore} busy={ignoreBusy} label={node.name} />}\n </>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAYA,SAAS,mBAAmB,MAAoC;CAC9D,IAAI,KAAK,SAAS,UAAU,OAAO,KAAA;CACnC,OAAO,KAAK,UAAU,MAAM,MAAM,EAAE,SAAS,cAAc,CAAC,EAAE;AAChE;AAEA,SAAS,SAAS,EAAE,QAA4B;CAC9C,QAAQ,KAAK,MAAb;EACE,KAAK;GACH,IAAI,KAAK,QAAQ,WAAW,WAAW,OAAO,oBAAC,aAAD,EAAa,SAAQ,UAAW,CAAA;GAC9E,IAAI,KAAK,QAAQ,WAAW,WAC1B,OAAO,oBAAC,MAAD;IAAM,MAAM;IAAS,OAAM;IAAU,WAAU;GAAkC,CAAA;GAE1F,IAAI,mBAAmB,IAAI,MAAM,KAAA,GAAW,OAAO,oBAAC,kBAAD,EAAkB,UAAS,QAAS,CAAA;GACvF,OAAO,SAAS,eAAe,IAAI,CAAC,IAClC,oBAAC,UAAD,EAAU,MAAM,eAAe,IAAI,EAAI,CAAA,IAEvC,oBAAC,MAAD;IAAM,MAAM;IAAU,WAAU;GAAkC,CAAA;EAEtE,KAAK,eACH,OAAO,oBAAC,MAAD;GAAM,MAAM;GAAU,WAAU;EAAkC,CAAA;EAC3E,KAAK,aACH,OAAO,oBAAC,MAAD;GAAM,MAAM;GAAY,WAAU;EAAkC,CAAA;EAC7E,KAAK;EACL,KAAK,mBACH,OAAO,oBAAC,MAAD;GAAM,MAAM;GAAO,WAAU;EAAkC,CAAA;EACxE,KAAK,gBACH,OAAO,oBAAC,kBAAD,EAAkB,UAAS,QAAS,CAAA;CAC/C;AACF;;AAGA,SAAgB,aAAa,EAC3B,MACA,UACA,UAAU,CAAC,GACX,UACA,aAAa,SAQZ;CACD,MAAM,QAAQ,KAAK,SAAS,iBAAiB,IAAI,cAAc,IAAI;CACnE,MAAM,gBAAgB,mBAAmB,IAAI;CAC7C,MAAM,cAAc,kBAAkB,KAAA;CACtC,MAAM,OAAO,KAAK,UAAU,KAAK,UAAU,cAAc,kBAAkB,KAAA;CAC3E,MAAM,YAAY,cAAc,gBAAgB;CAChD,MAAM,SAAS,KAAK,SAAS,WAAW,UAAU,KAAK,MAAM,IAAI,KAAA;CACjE,MAAM,WAAW,SACb,YAAY,OAAO,QAAQ,SAAS,EAAE,MACtC,KAAK,SAAS,YAAY,CAAC,KAAK,QAAQ,UAAU,KAAK,QAAQ,WAC7D,mBAAmB,KAAK,OAAO,QAAQ,IACvC;CACN,OACE,qBAAAA,UAAA,EAAA,UAAA;EACE,oBAAC,UAAD,EAAgB,KAAO,CAAA;EACvB,oBAAC,QAAD;GACE,WAAW,GACT,oBACA,WAAW,kBAAkB,eAC7B,KAAK,SAAS,kBAAkB,cAAc,mCAAmC,oBAChF,KAAK,WAAY,KAAK,SAAS,YAAY,KAAK,QAAQ,WAAW,cAAe,uBACrF;GACA,OAAO,KAAK;GAEX,UAAA,KAAK;EACF,CAAA;EACN,oBAAC,QAAD,EAAM,WAAU,SAAU,CAAA;EACzB,QACC,oBAAC,QAAD;GACE,WAAW,GACT,yCACA,cAAc,mCAAmC,uBACnD;GACA,OAAO;GAEN,UAAA;EACG,CAAA;EAEP,YAAY,oBAAC,QAAD;GAAM,WAAU;GAAuD,UAAA;EAAe,CAAA;EAClG,QAAQ,KACP,oBAAC,QAAD;GAAM,WAAU;GAAgB,OAAO,GAAG,MAAM,YAAY,UAAU,IAAI,KAAK;GAC7E,UAAA,oBAAC,QAAD;IAAM,WAAU;IAA8C,UAAA;GAAY,CAAA;EACtE,CAAA;EAEP,YAAY,oBAAC,mBAAD;GAA4B;GAAmB;GAAU,MAAM;GAAY,OAAO,KAAK;EAAO,CAAA;CAC3G,EAAA,CAAA;AAEN"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
const require_code_highlight = require("../code-highlight.cjs");
|
|
2
|
+
const require_FrameSourceWindow = require("../diagnostics/FrameSourceWindow.cjs");
|
|
3
|
+
const require_stats = require("./stats.cjs");
|
|
4
|
+
let react = require("react");
|
|
5
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
6
|
+
// src/data/lint/ViolationSnippet.tsx
|
|
7
|
+
/** Lines shown above and below the flagged range. */
|
|
8
|
+
var VIOLATION_CONTEXT_LINES = 3;
|
|
9
|
+
var loads = /* @__PURE__ */ new WeakMap();
|
|
10
|
+
function loadOnce(loader, file, workDir) {
|
|
11
|
+
const byFile = loads.get(loader) ?? /* @__PURE__ */ new Map();
|
|
12
|
+
loads.set(loader, byFile);
|
|
13
|
+
const key = `${workDir}\u0000${file}`;
|
|
14
|
+
let load = byFile.get(key);
|
|
15
|
+
if (!load) {
|
|
16
|
+
load = loader({
|
|
17
|
+
file,
|
|
18
|
+
...workDir ? { workDir } : {}
|
|
19
|
+
});
|
|
20
|
+
byFile.set(key, load);
|
|
21
|
+
load.catch(() => byFile.delete(key));
|
|
22
|
+
}
|
|
23
|
+
return load;
|
|
24
|
+
}
|
|
25
|
+
function useSource(loader, file, workDir) {
|
|
26
|
+
const [snippet, setSnippet] = (0, react.useState)(null);
|
|
27
|
+
(0, react.useEffect)(() => {
|
|
28
|
+
if (!loader || !file) {
|
|
29
|
+
setSnippet(null);
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
let cancelled = false;
|
|
33
|
+
setSnippet({ status: "loading" });
|
|
34
|
+
loadOnce(loader, file, workDir).then((text) => !cancelled && setSnippet({
|
|
35
|
+
status: "ready",
|
|
36
|
+
text
|
|
37
|
+
}), (error) => !cancelled && setSnippet({
|
|
38
|
+
status: "error",
|
|
39
|
+
message: error instanceof Error ? error.message : String(error)
|
|
40
|
+
}));
|
|
41
|
+
return () => {
|
|
42
|
+
cancelled = true;
|
|
43
|
+
};
|
|
44
|
+
}, [
|
|
45
|
+
loader,
|
|
46
|
+
file,
|
|
47
|
+
workDir
|
|
48
|
+
]);
|
|
49
|
+
return snippet;
|
|
50
|
+
}
|
|
51
|
+
function Message({ text }) {
|
|
52
|
+
return text ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
53
|
+
className: "mt-0.5 whitespace-pre-wrap text-sm",
|
|
54
|
+
children: text
|
|
55
|
+
}) : null;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* The flagged lines of a violation with a few lines of context either side,
|
|
59
|
+
* numbered and syntax-highlighted, with the full message above the scrolling
|
|
60
|
+
* source. Without a loader (or a line) it shows the message and the
|
|
61
|
+
* snippet the linter reported in `code`, if any.
|
|
62
|
+
*/
|
|
63
|
+
function ViolationSnippet({ violation, file, workDir, loadSource, showMessage = true }) {
|
|
64
|
+
const line = violation.line ?? 0;
|
|
65
|
+
const snippet = useSource(line > 0 ? loadSource : void 0, file, workDir);
|
|
66
|
+
if (!snippet || snippet.status !== "ready") return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
|
|
67
|
+
showMessage && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Message, { text: violation.message }),
|
|
68
|
+
snippet?.status === "loading" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
69
|
+
className: "mt-1 text-xs text-muted-foreground",
|
|
70
|
+
children: "Loading source…"
|
|
71
|
+
}),
|
|
72
|
+
snippet?.status === "error" && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
73
|
+
className: "mt-1 text-xs text-red-700 dark:text-red-300",
|
|
74
|
+
role: "alert",
|
|
75
|
+
children: [
|
|
76
|
+
"Could not load ",
|
|
77
|
+
file,
|
|
78
|
+
": ",
|
|
79
|
+
snippet.message
|
|
80
|
+
]
|
|
81
|
+
}),
|
|
82
|
+
!snippet && violation.code && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("pre", {
|
|
83
|
+
className: "mt-1 overflow-x-auto rounded bg-muted p-2 font-mono text-xs",
|
|
84
|
+
children: violation.code
|
|
85
|
+
})
|
|
86
|
+
] });
|
|
87
|
+
const lines = snippet.text.split("\n");
|
|
88
|
+
const first = Math.max(1, line - 3);
|
|
89
|
+
const last = Math.min(lines.length, Math.max(line, violation.end_line ?? line) + 3);
|
|
90
|
+
const language = require_code_highlight.languageFromPath(file);
|
|
91
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
|
|
92
|
+
showMessage && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Message, { text: violation.message }),
|
|
93
|
+
line > lines.length && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
94
|
+
role: "alert",
|
|
95
|
+
className: "text-xs text-destructive",
|
|
96
|
+
children: "Source location is outside this file."
|
|
97
|
+
}),
|
|
98
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_FrameSourceWindow.FrameSourceWindow, {
|
|
99
|
+
focalTone: require_stats.severityOf(violation),
|
|
100
|
+
className: "m-0 mt-1.5 max-sm:ml-0",
|
|
101
|
+
frame: {
|
|
102
|
+
sourceLines: lines.slice(first - 1, last),
|
|
103
|
+
sourceStartLine: first,
|
|
104
|
+
line,
|
|
105
|
+
...language ? { sourceLanguage: language } : {}
|
|
106
|
+
}
|
|
107
|
+
})
|
|
108
|
+
] });
|
|
109
|
+
}
|
|
110
|
+
exports.VIOLATION_CONTEXT_LINES = VIOLATION_CONTEXT_LINES;
|
|
111
|
+
exports.ViolationSnippet = ViolationSnippet;
|
|
112
|
+
|
|
113
|
+
//# sourceMappingURL=ViolationSnippet.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ViolationSnippet.cjs","names":["useState","_Fragment","languageFromPath","FrameSourceWindow","severityOf"],"sources":["../../../src/data/lint/ViolationSnippet.tsx"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { languageFromPath } from \"../code-highlight\";\nimport { FrameSourceWindow } from \"../diagnostics/FrameSourceWindow\";\nimport type { OpenFileTarget } from \"../OpenInFilesLink\";\nimport type { Violation } from \"./types\";\nimport { severityOf } from \"./stats\";\n\n/** Loads a file's text, given the same work-dir-relative target \"Open in Files\" receives. */\nexport type LintSourceLoader = (target: Pick<OpenFileTarget, \"file\" | \"workDir\">) => Promise<string>;\n\n/** Lines shown above and below the flagged range. */\nexport const VIOLATION_CONTEXT_LINES = 3;\n\n// One load per file per loader: a file with many violations renders many cards.\nconst loads = new WeakMap<LintSourceLoader, Map<string, Promise<string>>>();\n\nfunction loadOnce(loader: LintSourceLoader, file: string, workDir: string): Promise<string> {\n const byFile = loads.get(loader) ?? new Map<string, Promise<string>>();\n loads.set(loader, byFile);\n const key = `${workDir}\\u0000${file}`;\n let load = byFile.get(key);\n if (!load) {\n load = loader({ file, ...(workDir ? { workDir } : {}) });\n byFile.set(key, load);\n load.catch(() => byFile.delete(key));\n }\n return load;\n}\n\ntype Snippet = { status: \"loading\" } | { status: \"ready\"; text: string } | { status: \"error\"; message: string };\n\nfunction useSource(loader: LintSourceLoader | undefined, file: string, workDir: string): Snippet | null {\n const [snippet, setSnippet] = useState<Snippet | null>(null);\n useEffect(() => {\n if (!loader || !file) {\n setSnippet(null);\n return;\n }\n let cancelled = false;\n setSnippet({ status: \"loading\" });\n loadOnce(loader, file, workDir).then(\n (text) => !cancelled && setSnippet({ status: \"ready\", text }),\n (error: unknown) =>\n !cancelled && setSnippet({ status: \"error\", message: error instanceof Error ? error.message : String(error) }),\n );\n return () => {\n cancelled = true;\n };\n }, [loader, file, workDir]);\n return snippet;\n}\n\nfunction Message({ text }: { text: string | undefined }) {\n return text ? <div className=\"mt-0.5 whitespace-pre-wrap text-sm\">{text}</div> : null;\n}\n\n/**\n * The flagged lines of a violation with a few lines of context either side,\n * numbered and syntax-highlighted, with the full message above the scrolling\n * source. Without a loader (or a line) it shows the message and the\n * snippet the linter reported in `code`, if any.\n */\nexport function ViolationSnippet({\n violation,\n file,\n workDir,\n loadSource,\n showMessage = true,\n}: {\n violation: Violation;\n showMessage?: boolean;\n file: string;\n workDir: string;\n loadSource?: LintSourceLoader | undefined;\n}) {\n const line = violation.line ?? 0;\n const snippet = useSource(line > 0 ? loadSource : undefined, file, workDir);\n\n if (!snippet || snippet.status !== \"ready\") {\n return (\n <>\n {showMessage && <Message text={violation.message} />}\n {snippet?.status === \"loading\" && <div className=\"mt-1 text-xs text-muted-foreground\">Loading source…</div>}\n {snippet?.status === \"error\" && (\n <div className=\"mt-1 text-xs text-red-700 dark:text-red-300\" role=\"alert\">\n Could not load {file}: {snippet.message}\n </div>\n )}\n {!snippet && violation.code && (\n <pre className=\"mt-1 overflow-x-auto rounded bg-muted p-2 font-mono text-xs\">{violation.code}</pre>\n )}\n </>\n );\n }\n\n const lines = snippet.text.split(\"\\n\");\n const first = Math.max(1, line - VIOLATION_CONTEXT_LINES);\n const last = Math.min(lines.length, Math.max(line, violation.end_line ?? line) + VIOLATION_CONTEXT_LINES);\n const language = languageFromPath(file);\n return (\n <>\n {showMessage && <Message text={violation.message} />}\n {line > lines.length && <p role=\"alert\" className=\"text-xs text-destructive\">Source location is outside this file.</p>}\n <FrameSourceWindow\n focalTone={severityOf(violation)}\n className=\"m-0 mt-1.5 max-sm:ml-0\"\n frame={{\n sourceLines: lines.slice(first - 1, last),\n sourceStartLine: first,\n line,\n ...(language ? { sourceLanguage: language } : {}),\n }}\n />\n </>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { OpenFileTarget } from '../OpenInFilesLink.js';
|
|
2
|
+
import { Violation } from './types.js';
|
|
3
|
+
/** Loads a file's text, given the same work-dir-relative target "Open in Files" receives. */
|
|
4
|
+
export type LintSourceLoader = (target: Pick<OpenFileTarget, "file" | "workDir">) => Promise<string>;
|
|
5
|
+
/** Lines shown above and below the flagged range. */
|
|
6
|
+
export declare const VIOLATION_CONTEXT_LINES = 3;
|
|
7
|
+
/**
|
|
8
|
+
* The flagged lines of a violation with a few lines of context either side,
|
|
9
|
+
* numbered and syntax-highlighted, with the full message above the scrolling
|
|
10
|
+
* source. Without a loader (or a line) it shows the message and the
|
|
11
|
+
* snippet the linter reported in `code`, if any.
|
|
12
|
+
*/
|
|
13
|
+
export declare function ViolationSnippet({ violation, file, workDir, loadSource, showMessage, }: {
|
|
14
|
+
violation: Violation;
|
|
15
|
+
showMessage?: boolean;
|
|
16
|
+
file: string;
|
|
17
|
+
workDir: string;
|
|
18
|
+
loadSource?: LintSourceLoader | undefined;
|
|
19
|
+
}): import("react").JSX.Element;
|
|
20
|
+
//# sourceMappingURL=ViolationSnippet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ViolationSnippet.d.ts","sourceRoot":"","sources":["../../../src/data/lint/ViolationSnippet.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGzC,6FAA6F;AAC7F,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAErG,qDAAqD;AACrD,eAAO,MAAM,uBAAuB,IAAI,CAAC;AA6CzC;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,SAAS,EACT,IAAI,EACJ,OAAO,EACP,UAAU,EACV,WAAkB,GACnB,EAAE;IACD,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;CAC3C,+BAyCA"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { languageFromPath } from "../code-highlight.js";
|
|
2
|
+
import { FrameSourceWindow } from "../diagnostics/FrameSourceWindow.js";
|
|
3
|
+
import { severityOf } from "./stats.js";
|
|
4
|
+
import { useEffect, useState } from "react";
|
|
5
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
// src/data/lint/ViolationSnippet.tsx
|
|
7
|
+
/** Lines shown above and below the flagged range. */
|
|
8
|
+
var VIOLATION_CONTEXT_LINES = 3;
|
|
9
|
+
var loads = /* @__PURE__ */ new WeakMap();
|
|
10
|
+
function loadOnce(loader, file, workDir) {
|
|
11
|
+
const byFile = loads.get(loader) ?? /* @__PURE__ */ new Map();
|
|
12
|
+
loads.set(loader, byFile);
|
|
13
|
+
const key = `${workDir}\u0000${file}`;
|
|
14
|
+
let load = byFile.get(key);
|
|
15
|
+
if (!load) {
|
|
16
|
+
load = loader({
|
|
17
|
+
file,
|
|
18
|
+
...workDir ? { workDir } : {}
|
|
19
|
+
});
|
|
20
|
+
byFile.set(key, load);
|
|
21
|
+
load.catch(() => byFile.delete(key));
|
|
22
|
+
}
|
|
23
|
+
return load;
|
|
24
|
+
}
|
|
25
|
+
function useSource(loader, file, workDir) {
|
|
26
|
+
const [snippet, setSnippet] = useState(null);
|
|
27
|
+
useEffect(() => {
|
|
28
|
+
if (!loader || !file) {
|
|
29
|
+
setSnippet(null);
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
let cancelled = false;
|
|
33
|
+
setSnippet({ status: "loading" });
|
|
34
|
+
loadOnce(loader, file, workDir).then((text) => !cancelled && setSnippet({
|
|
35
|
+
status: "ready",
|
|
36
|
+
text
|
|
37
|
+
}), (error) => !cancelled && setSnippet({
|
|
38
|
+
status: "error",
|
|
39
|
+
message: error instanceof Error ? error.message : String(error)
|
|
40
|
+
}));
|
|
41
|
+
return () => {
|
|
42
|
+
cancelled = true;
|
|
43
|
+
};
|
|
44
|
+
}, [
|
|
45
|
+
loader,
|
|
46
|
+
file,
|
|
47
|
+
workDir
|
|
48
|
+
]);
|
|
49
|
+
return snippet;
|
|
50
|
+
}
|
|
51
|
+
function Message({ text }) {
|
|
52
|
+
return text ? /* @__PURE__ */ jsx("div", {
|
|
53
|
+
className: "mt-0.5 whitespace-pre-wrap text-sm",
|
|
54
|
+
children: text
|
|
55
|
+
}) : null;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* The flagged lines of a violation with a few lines of context either side,
|
|
59
|
+
* numbered and syntax-highlighted, with the full message above the scrolling
|
|
60
|
+
* source. Without a loader (or a line) it shows the message and the
|
|
61
|
+
* snippet the linter reported in `code`, if any.
|
|
62
|
+
*/
|
|
63
|
+
function ViolationSnippet({ violation, file, workDir, loadSource, showMessage = true }) {
|
|
64
|
+
const line = violation.line ?? 0;
|
|
65
|
+
const snippet = useSource(line > 0 ? loadSource : void 0, file, workDir);
|
|
66
|
+
if (!snippet || snippet.status !== "ready") return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
67
|
+
showMessage && /* @__PURE__ */ jsx(Message, { text: violation.message }),
|
|
68
|
+
snippet?.status === "loading" && /* @__PURE__ */ jsx("div", {
|
|
69
|
+
className: "mt-1 text-xs text-muted-foreground",
|
|
70
|
+
children: "Loading source…"
|
|
71
|
+
}),
|
|
72
|
+
snippet?.status === "error" && /* @__PURE__ */ jsxs("div", {
|
|
73
|
+
className: "mt-1 text-xs text-red-700 dark:text-red-300",
|
|
74
|
+
role: "alert",
|
|
75
|
+
children: [
|
|
76
|
+
"Could not load ",
|
|
77
|
+
file,
|
|
78
|
+
": ",
|
|
79
|
+
snippet.message
|
|
80
|
+
]
|
|
81
|
+
}),
|
|
82
|
+
!snippet && violation.code && /* @__PURE__ */ jsx("pre", {
|
|
83
|
+
className: "mt-1 overflow-x-auto rounded bg-muted p-2 font-mono text-xs",
|
|
84
|
+
children: violation.code
|
|
85
|
+
})
|
|
86
|
+
] });
|
|
87
|
+
const lines = snippet.text.split("\n");
|
|
88
|
+
const first = Math.max(1, line - 3);
|
|
89
|
+
const last = Math.min(lines.length, Math.max(line, violation.end_line ?? line) + 3);
|
|
90
|
+
const language = languageFromPath(file);
|
|
91
|
+
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
92
|
+
showMessage && /* @__PURE__ */ jsx(Message, { text: violation.message }),
|
|
93
|
+
line > lines.length && /* @__PURE__ */ jsx("p", {
|
|
94
|
+
role: "alert",
|
|
95
|
+
className: "text-xs text-destructive",
|
|
96
|
+
children: "Source location is outside this file."
|
|
97
|
+
}),
|
|
98
|
+
/* @__PURE__ */ jsx(FrameSourceWindow, {
|
|
99
|
+
focalTone: severityOf(violation),
|
|
100
|
+
className: "m-0 mt-1.5 max-sm:ml-0",
|
|
101
|
+
frame: {
|
|
102
|
+
sourceLines: lines.slice(first - 1, last),
|
|
103
|
+
sourceStartLine: first,
|
|
104
|
+
line,
|
|
105
|
+
...language ? { sourceLanguage: language } : {}
|
|
106
|
+
}
|
|
107
|
+
})
|
|
108
|
+
] });
|
|
109
|
+
}
|
|
110
|
+
export { VIOLATION_CONTEXT_LINES, ViolationSnippet };
|
|
111
|
+
|
|
112
|
+
//# sourceMappingURL=ViolationSnippet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ViolationSnippet.js","names":["_Fragment"],"sources":["../../../src/data/lint/ViolationSnippet.tsx"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { languageFromPath } from \"../code-highlight\";\nimport { FrameSourceWindow } from \"../diagnostics/FrameSourceWindow\";\nimport type { OpenFileTarget } from \"../OpenInFilesLink\";\nimport type { Violation } from \"./types\";\nimport { severityOf } from \"./stats\";\n\n/** Loads a file's text, given the same work-dir-relative target \"Open in Files\" receives. */\nexport type LintSourceLoader = (target: Pick<OpenFileTarget, \"file\" | \"workDir\">) => Promise<string>;\n\n/** Lines shown above and below the flagged range. */\nexport const VIOLATION_CONTEXT_LINES = 3;\n\n// One load per file per loader: a file with many violations renders many cards.\nconst loads = new WeakMap<LintSourceLoader, Map<string, Promise<string>>>();\n\nfunction loadOnce(loader: LintSourceLoader, file: string, workDir: string): Promise<string> {\n const byFile = loads.get(loader) ?? new Map<string, Promise<string>>();\n loads.set(loader, byFile);\n const key = `${workDir}\\u0000${file}`;\n let load = byFile.get(key);\n if (!load) {\n load = loader({ file, ...(workDir ? { workDir } : {}) });\n byFile.set(key, load);\n load.catch(() => byFile.delete(key));\n }\n return load;\n}\n\ntype Snippet = { status: \"loading\" } | { status: \"ready\"; text: string } | { status: \"error\"; message: string };\n\nfunction useSource(loader: LintSourceLoader | undefined, file: string, workDir: string): Snippet | null {\n const [snippet, setSnippet] = useState<Snippet | null>(null);\n useEffect(() => {\n if (!loader || !file) {\n setSnippet(null);\n return;\n }\n let cancelled = false;\n setSnippet({ status: \"loading\" });\n loadOnce(loader, file, workDir).then(\n (text) => !cancelled && setSnippet({ status: \"ready\", text }),\n (error: unknown) =>\n !cancelled && setSnippet({ status: \"error\", message: error instanceof Error ? error.message : String(error) }),\n );\n return () => {\n cancelled = true;\n };\n }, [loader, file, workDir]);\n return snippet;\n}\n\nfunction Message({ text }: { text: string | undefined }) {\n return text ? <div className=\"mt-0.5 whitespace-pre-wrap text-sm\">{text}</div> : null;\n}\n\n/**\n * The flagged lines of a violation with a few lines of context either side,\n * numbered and syntax-highlighted, with the full message above the scrolling\n * source. Without a loader (or a line) it shows the message and the\n * snippet the linter reported in `code`, if any.\n */\nexport function ViolationSnippet({\n violation,\n file,\n workDir,\n loadSource,\n showMessage = true,\n}: {\n violation: Violation;\n showMessage?: boolean;\n file: string;\n workDir: string;\n loadSource?: LintSourceLoader | undefined;\n}) {\n const line = violation.line ?? 0;\n const snippet = useSource(line > 0 ? loadSource : undefined, file, workDir);\n\n if (!snippet || snippet.status !== \"ready\") {\n return (\n <>\n {showMessage && <Message text={violation.message} />}\n {snippet?.status === \"loading\" && <div className=\"mt-1 text-xs text-muted-foreground\">Loading source…</div>}\n {snippet?.status === \"error\" && (\n <div className=\"mt-1 text-xs text-red-700 dark:text-red-300\" role=\"alert\">\n Could not load {file}: {snippet.message}\n </div>\n )}\n {!snippet && violation.code && (\n <pre className=\"mt-1 overflow-x-auto rounded bg-muted p-2 font-mono text-xs\">{violation.code}</pre>\n )}\n </>\n );\n }\n\n const lines = snippet.text.split(\"\\n\");\n const first = Math.max(1, line - VIOLATION_CONTEXT_LINES);\n const last = Math.min(lines.length, Math.max(line, violation.end_line ?? line) + VIOLATION_CONTEXT_LINES);\n const language = languageFromPath(file);\n return (\n <>\n {showMessage && <Message text={violation.message} />}\n {line > lines.length && <p role=\"alert\" className=\"text-xs text-destructive\">Source location is outside this file.</p>}\n <FrameSourceWindow\n focalTone={severityOf(violation)}\n className=\"m-0 mt-1.5 max-sm:ml-0\"\n frame={{\n sourceLines: lines.slice(first - 1, last),\n sourceStartLine: first,\n line,\n ...(language ? { sourceLanguage: language } : {}),\n }}\n />\n </>\n );\n}\n"],"mappings":";;;;;;;AAWA,IAAa,0BAA0B;AAGvC,IAAM,wBAAQ,IAAI,QAAwD;AAE1E,SAAS,SAAS,QAA0B,MAAc,SAAkC;CAC1F,MAAM,SAAS,MAAM,IAAI,MAAM,qBAAK,IAAI,IAA6B;CACrE,MAAM,IAAI,QAAQ,MAAM;CACxB,MAAM,MAAM,GAAG,QAAQ,QAAQ;CAC/B,IAAI,OAAO,OAAO,IAAI,GAAG;CACzB,IAAI,CAAC,MAAM;EACT,OAAO,OAAO;GAAE;GAAM,GAAI,UAAU,EAAE,QAAQ,IAAI,CAAC;EAAG,CAAC;EACvD,OAAO,IAAI,KAAK,IAAI;EACpB,KAAK,YAAY,OAAO,OAAO,GAAG,CAAC;CACrC;CACA,OAAO;AACT;AAIA,SAAS,UAAU,QAAsC,MAAc,SAAiC;CACtG,MAAM,CAAC,SAAS,cAAc,SAAyB,IAAI;CAC3D,gBAAgB;EACd,IAAI,CAAC,UAAU,CAAC,MAAM;GACpB,WAAW,IAAI;GACf;EACF;EACA,IAAI,YAAY;EAChB,WAAW,EAAE,QAAQ,UAAU,CAAC;EAChC,SAAS,QAAQ,MAAM,OAAO,CAAC,CAAC,MAC7B,SAAS,CAAC,aAAa,WAAW;GAAE,QAAQ;GAAS;EAAK,CAAC,IAC3D,UACC,CAAC,aAAa,WAAW;GAAE,QAAQ;GAAS,SAAS,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;EAAE,CAAC,CACjH;EACA,aAAa;GACX,YAAY;EACd;CACF,GAAG;EAAC;EAAQ;EAAM;CAAO,CAAC;CAC1B,OAAO;AACT;AAEA,SAAS,QAAQ,EAAE,QAAsC;CACvD,OAAO,OAAO,oBAAC,OAAD;EAAK,WAAU;EAAsC,UAAA;CAAU,CAAA,IAAI;AACnF;;;;;;;AAQA,SAAgB,iBAAiB,EAC/B,WACA,MACA,SACA,YACA,cAAc,QAOb;CACD,MAAM,OAAO,UAAU,QAAQ;CAC/B,MAAM,UAAU,UAAU,OAAO,IAAI,aAAa,KAAA,GAAW,MAAM,OAAO;CAE1E,IAAI,CAAC,WAAW,QAAQ,WAAW,SACjC,OACE,qBAAAA,YAAA,EAAA,UAAA;EACG,eAAe,oBAAC,SAAD,EAAS,MAAM,UAAU,QAAU,CAAA;EAClD,SAAS,WAAW,aAAa,oBAAC,OAAD;GAAK,WAAU;GAAqC,UAAA;EAAoB,CAAA;EACzG,SAAS,WAAW,WACnB,qBAAC,OAAD;GAAK,WAAU;GAA8C,MAAK;GAAlE,UAAA;IAA0E;IACxD;IAAK;IAAG,QAAQ;GAC7B;;EAEN,CAAC,WAAW,UAAU,QACrB,oBAAC,OAAD;GAAK,WAAU;GAA+D,UAAA,UAAU;EAAU,CAAA;CAEpG,EAAA,CAAA;CAIN,MAAM,QAAQ,QAAQ,KAAK,MAAM,IAAI;CACrC,MAAM,QAAQ,KAAK,IAAI,GAAG,OAAA,CAA8B;CACxD,MAAM,OAAO,KAAK,IAAI,MAAM,QAAQ,KAAK,IAAI,MAAM,UAAU,YAAY,IAAI,IAAA,CAA2B;CACxG,MAAM,WAAW,iBAAiB,IAAI;CACtC,OACE,qBAAAA,YAAA,EAAA,UAAA;EACG,eAAe,oBAAC,SAAD,EAAS,MAAM,UAAU,QAAU,CAAA;EAClD,OAAO,MAAM,UAAU,oBAAC,KAAD;GAAG,MAAK;GAAQ,WAAU;GAA2B,UAAA;EAAwC,CAAA;EACrH,oBAAC,mBAAD;GACE,WAAW,WAAW,SAAS;GAC/B,WAAU;GACV,OAAO;IACL,aAAa,MAAM,MAAM,QAAQ,GAAG,IAAI;IACxC,iBAAiB;IACjB;IACA,GAAI,WAAW,EAAE,gBAAgB,SAAS,IAAI,CAAC;GACjD;EACD,CAAA;CACD,EAAA,CAAA;AAEN"}
|