@flanksource/clicky-ui 0.3.55 → 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 +19 -29
- package/dist/data/test-runner/MatrixMarks.cjs.map +1 -1
- package/dist/data/test-runner/MatrixMarks.d.ts +4 -4
- package/dist/data/test-runner/MatrixMarks.d.ts.map +1 -1
- package/dist/data/test-runner/MatrixMarks.js +19 -29
- 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/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 +57 -6
- package/dist/data.d.ts +9 -1
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +27 -10
- 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 +75 -7
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +35 -12
- 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,96 @@
|
|
|
1
|
+
const require_UiQuestion = require("../icons/components/UiQuestion.cjs");
|
|
2
|
+
const require_use_prompts = require("../hooks/use-prompts.cjs");
|
|
3
|
+
const require_Icon = require("./Icon.cjs");
|
|
4
|
+
const require_button = require("../components/button.cjs");
|
|
5
|
+
const require_PromptDialog = require("./PromptDialog.cjs");
|
|
6
|
+
let react = require("react");
|
|
7
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
8
|
+
// src/data/TaskPrompts.tsx
|
|
9
|
+
var MAX_INLINE_OPTIONS = 4;
|
|
10
|
+
function inlineOptions(prompt) {
|
|
11
|
+
const entries = Object.entries(prompt.schema.properties ?? {});
|
|
12
|
+
if (entries.length !== 1) return null;
|
|
13
|
+
const [field, property] = entries[0];
|
|
14
|
+
const values = property.enum;
|
|
15
|
+
if (property.type !== "string" || !values || values.length === 0 || values.length > MAX_INLINE_OPTIONS) return null;
|
|
16
|
+
const labels = property["x-enum-labels"] ?? {};
|
|
17
|
+
return {
|
|
18
|
+
field,
|
|
19
|
+
options: values.map((value) => ({
|
|
20
|
+
key: String(value),
|
|
21
|
+
label: labels[String(value)] ?? String(value)
|
|
22
|
+
}))
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
function TaskPrompts({ prompts, basePath }) {
|
|
26
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
27
|
+
className: "mt-1 space-y-1",
|
|
28
|
+
onClick: (event) => event.stopPropagation(),
|
|
29
|
+
children: prompts.map((prompt) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TaskPrompt, {
|
|
30
|
+
prompt,
|
|
31
|
+
basePath
|
|
32
|
+
}, prompt.id))
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
function TaskPrompt({ prompt, basePath }) {
|
|
36
|
+
const [busy, setBusy] = (0, react.useState)(null);
|
|
37
|
+
const [error, setError] = (0, react.useState)("");
|
|
38
|
+
const [formOpen, setFormOpen] = (0, react.useState)(false);
|
|
39
|
+
const inline = inlineOptions(prompt);
|
|
40
|
+
const choose = async (field, option) => {
|
|
41
|
+
setBusy(option.key);
|
|
42
|
+
setError("");
|
|
43
|
+
try {
|
|
44
|
+
await require_use_prompts.answerPrompt(basePath, prompt.id, { values: { [field]: option.key } });
|
|
45
|
+
} catch (cause) {
|
|
46
|
+
setError(cause instanceof Error ? cause.message : String(cause));
|
|
47
|
+
} finally {
|
|
48
|
+
setBusy(null);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
52
|
+
className: "flex flex-wrap items-center gap-2 rounded-md border border-amber-500/40 bg-amber-500/10 px-2 py-1.5",
|
|
53
|
+
children: [
|
|
54
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Icon.Icon, {
|
|
55
|
+
icon: require_UiQuestion.UiQuestion,
|
|
56
|
+
className: "shrink-0 text-amber-600 dark:text-amber-400"
|
|
57
|
+
}),
|
|
58
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
59
|
+
className: "min-w-0 flex-1 text-xs font-medium",
|
|
60
|
+
children: prompt.title
|
|
61
|
+
}),
|
|
62
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
63
|
+
className: "flex shrink-0 flex-wrap items-center gap-1",
|
|
64
|
+
children: inline ? inline.options.map((option, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_button.Button, {
|
|
65
|
+
type: "button",
|
|
66
|
+
size: "sm",
|
|
67
|
+
variant: index === 0 ? "default" : "outline",
|
|
68
|
+
loading: busy === option.key,
|
|
69
|
+
disabled: busy !== null,
|
|
70
|
+
onClick: () => void choose(inline.field, option),
|
|
71
|
+
children: option.label
|
|
72
|
+
}, option.key)) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_button.Button, {
|
|
73
|
+
type: "button",
|
|
74
|
+
size: "sm",
|
|
75
|
+
"aria-label": `Answer ${prompt.title}`,
|
|
76
|
+
onClick: () => setFormOpen(true),
|
|
77
|
+
children: "Answer"
|
|
78
|
+
})
|
|
79
|
+
}),
|
|
80
|
+
error && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
81
|
+
role: "alert",
|
|
82
|
+
className: "w-full text-xs text-red-600",
|
|
83
|
+
children: error
|
|
84
|
+
}),
|
|
85
|
+
formOpen && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_PromptDialog.PromptDialog, {
|
|
86
|
+
prompt,
|
|
87
|
+
basePath,
|
|
88
|
+
open: true,
|
|
89
|
+
onClose: () => setFormOpen(false)
|
|
90
|
+
})
|
|
91
|
+
]
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
exports.TaskPrompts = TaskPrompts;
|
|
95
|
+
|
|
96
|
+
//# sourceMappingURL=TaskPrompts.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskPrompts.cjs","names":["useState","answerPrompt","Icon","UiQuestion","Button","PromptDialog"],"sources":["../../src/data/TaskPrompts.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport { Button } from \"../components/button\";\nimport { answerPrompt, type PromptSnapshot } from \"../hooks/use-prompts\";\nimport { UiQuestion } from \"../icons\";\nimport { Icon } from \"./Icon\";\nimport { PromptDialog } from \"./PromptDialog\";\n\n// TaskPrompts renders the questions a running task is blocked on (the Go side\n// lists them on TaskSnapshot.prompts). A single-choice prompt with a few options\n// is answered inline with one button per option; anything else opens the\n// prompt's JSON Schema form in a PromptDialog.\n\nconst MAX_INLINE_OPTIONS = 4;\n\ninterface PromptOption {\n key: string;\n label: string;\n}\n\n// inlineOptions returns the options of a prompt whose schema is a single\n// required enum field (clicky's SelectSchema), or null when it needs the form.\nfunction inlineOptions(prompt: PromptSnapshot): { field: string; options: PromptOption[] } | null {\n const entries = Object.entries(prompt.schema.properties ?? {});\n if (entries.length !== 1) return null;\n const [field, property] = entries[0]!;\n const values = property.enum;\n if (property.type !== \"string\" || !values || values.length === 0 || values.length > MAX_INLINE_OPTIONS) return null;\n const labels = property[\"x-enum-labels\"] ?? {};\n return {\n field,\n options: values.map((value) => ({ key: String(value), label: labels[String(value)] ?? String(value) })),\n };\n}\n\nexport function TaskPrompts({ prompts, basePath }: { prompts: PromptSnapshot[]; basePath: string }) {\n return (\n <div className=\"mt-1 space-y-1\" onClick={(event) => event.stopPropagation()}>\n {prompts.map((prompt) => (\n <TaskPrompt key={prompt.id} prompt={prompt} basePath={basePath} />\n ))}\n </div>\n );\n}\n\nfunction TaskPrompt({ prompt, basePath }: { prompt: PromptSnapshot; basePath: string }) {\n const [busy, setBusy] = useState<string | null>(null);\n const [error, setError] = useState(\"\");\n const [formOpen, setFormOpen] = useState(false);\n const inline = inlineOptions(prompt);\n\n const choose = async (field: string, option: PromptOption) => {\n setBusy(option.key);\n setError(\"\");\n try {\n await answerPrompt(basePath, prompt.id, { values: { [field]: option.key } });\n } catch (cause) {\n setError(cause instanceof Error ? cause.message : String(cause));\n } finally {\n setBusy(null);\n }\n };\n\n return (\n <div className=\"flex flex-wrap items-center gap-2 rounded-md border border-amber-500/40 bg-amber-500/10 px-2 py-1.5\">\n <Icon icon={UiQuestion} className=\"shrink-0 text-amber-600 dark:text-amber-400\" />\n <span className=\"min-w-0 flex-1 text-xs font-medium\">{prompt.title}</span>\n <div className=\"flex shrink-0 flex-wrap items-center gap-1\">\n {inline ? (\n inline.options.map((option, index) => (\n <Button\n key={option.key}\n type=\"button\"\n size=\"sm\"\n variant={index === 0 ? \"default\" : \"outline\"}\n loading={busy === option.key}\n disabled={busy !== null}\n onClick={() => void choose(inline.field, option)}\n >\n {option.label}\n </Button>\n ))\n ) : (\n <Button type=\"button\" size=\"sm\" aria-label={`Answer ${prompt.title}`} onClick={() => setFormOpen(true)}>\n Answer\n </Button>\n )}\n </div>\n {error && (\n <span role=\"alert\" className=\"w-full text-xs text-red-600\">\n {error}\n </span>\n )}\n {formOpen && (\n <PromptDialog prompt={prompt} basePath={basePath} open={true} onClose={() => setFormOpen(false)} />\n )}\n </div>\n );\n}\n"],"mappings":";;;;;;;;AAYA,IAAM,qBAAqB;AAS3B,SAAS,cAAc,QAA2E;CAChG,MAAM,UAAU,OAAO,QAAQ,OAAO,OAAO,cAAc,CAAC,CAAC;CAC7D,IAAI,QAAQ,WAAW,GAAG,OAAO;CACjC,MAAM,CAAC,OAAO,YAAY,QAAQ;CAClC,MAAM,SAAS,SAAS;CACxB,IAAI,SAAS,SAAS,YAAY,CAAC,UAAU,OAAO,WAAW,KAAK,OAAO,SAAS,oBAAoB,OAAO;CAC/G,MAAM,SAAS,SAAS,oBAAoB,CAAC;CAC7C,OAAO;EACL;EACA,SAAS,OAAO,KAAK,WAAW;GAAE,KAAK,OAAO,KAAK;GAAG,OAAO,OAAO,OAAO,KAAK,MAAM,OAAO,KAAK;EAAE,EAAE;CACxG;AACF;AAEA,SAAgB,YAAY,EAAE,SAAS,YAA6D;CAClG,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EAAK,WAAU;EAAiB,UAAU,UAAU,MAAM,gBAAgB;EACvE,UAAA,QAAQ,KAAK,WACZ,iBAAA,GAAA,kBAAA,IAAA,CAAC,YAAD;GAAoC;GAAkB;EAAW,GAAhD,OAAO,EAAyC,CAClE;CACE,CAAA;AAET;AAEA,SAAS,WAAW,EAAE,QAAQ,YAA0D;CACtF,MAAM,CAAC,MAAM,YAAA,GAAWA,MAAAA,SAAAA,CAAwB,IAAI;CACpD,MAAM,CAAC,OAAO,aAAA,GAAYA,MAAAA,SAAAA,CAAS,EAAE;CACrC,MAAM,CAAC,UAAU,gBAAA,GAAeA,MAAAA,SAAAA,CAAS,KAAK;CAC9C,MAAM,SAAS,cAAc,MAAM;CAEnC,MAAM,SAAS,OAAO,OAAe,WAAyB;EAC5D,QAAQ,OAAO,GAAG;EAClB,SAAS,EAAE;EACX,IAAI;GACF,MAAMC,oBAAAA,aAAa,UAAU,OAAO,IAAI,EAAE,QAAQ,GAAG,QAAQ,OAAO,IAAI,EAAE,CAAC;EAC7E,SAAS,OAAO;GACd,SAAS,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,CAAC;EACjE,UAAU;GACR,QAAQ,IAAI;EACd;CACF;CAEA,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;EAAK,WAAU;EAAf,UAAA;GACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,aAAAA,MAAD;IAAM,MAAMC,mBAAAA;IAAY,WAAU;GAA+C,CAAA;GACjF,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;IAAM,WAAU;IAAsC,UAAA,OAAO;GAAY,CAAA;GACzE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;IAAK,WAAU;IACZ,UAAA,SACC,OAAO,QAAQ,KAAK,QAAQ,UAC1B,iBAAA,GAAA,kBAAA,IAAA,CAACC,eAAAA,QAAD;KAEE,MAAK;KACL,MAAK;KACL,SAAS,UAAU,IAAI,YAAY;KACnC,SAAS,SAAS,OAAO;KACzB,UAAU,SAAS;KACnB,eAAe,KAAK,OAAO,OAAO,OAAO,MAAM;KAE9C,UAAA,OAAO;IACF,GATD,OAAO,GASN,CACT,IAED,iBAAA,GAAA,kBAAA,IAAA,CAACA,eAAAA,QAAD;KAAQ,MAAK;KAAS,MAAK;KAAK,cAAY,UAAU,OAAO;KAAS,eAAe,YAAY,IAAI;KAAG,UAAA;IAEhG,CAAA;GAEP,CAAA;GACJ,SACC,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;IAAM,MAAK;IAAQ,WAAU;IAC1B,UAAA;GACG,CAAA;GAEP,YACC,iBAAA,GAAA,kBAAA,IAAA,CAACC,qBAAAA,cAAD;IAAsB;IAAkB;IAAU,MAAM;IAAM,eAAe,YAAY,KAAK;GAAI,CAAA;EAEjG;;AAET"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskPrompts.d.ts","sourceRoot":"","sources":["../../src/data/TaskPrompts.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAgCzE,wBAAgB,WAAW,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;IAAE,OAAO,EAAE,cAAc,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,+BAQjG"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { UiQuestion } from "../icons/components/UiQuestion.js";
|
|
2
|
+
import { answerPrompt } from "../hooks/use-prompts.js";
|
|
3
|
+
import { Icon } from "./Icon.js";
|
|
4
|
+
import { Button } from "../components/button.js";
|
|
5
|
+
import { PromptDialog } from "./PromptDialog.js";
|
|
6
|
+
import { useState } from "react";
|
|
7
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
// src/data/TaskPrompts.tsx
|
|
9
|
+
var MAX_INLINE_OPTIONS = 4;
|
|
10
|
+
function inlineOptions(prompt) {
|
|
11
|
+
const entries = Object.entries(prompt.schema.properties ?? {});
|
|
12
|
+
if (entries.length !== 1) return null;
|
|
13
|
+
const [field, property] = entries[0];
|
|
14
|
+
const values = property.enum;
|
|
15
|
+
if (property.type !== "string" || !values || values.length === 0 || values.length > MAX_INLINE_OPTIONS) return null;
|
|
16
|
+
const labels = property["x-enum-labels"] ?? {};
|
|
17
|
+
return {
|
|
18
|
+
field,
|
|
19
|
+
options: values.map((value) => ({
|
|
20
|
+
key: String(value),
|
|
21
|
+
label: labels[String(value)] ?? String(value)
|
|
22
|
+
}))
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
function TaskPrompts({ prompts, basePath }) {
|
|
26
|
+
return /* @__PURE__ */ jsx("div", {
|
|
27
|
+
className: "mt-1 space-y-1",
|
|
28
|
+
onClick: (event) => event.stopPropagation(),
|
|
29
|
+
children: prompts.map((prompt) => /* @__PURE__ */ jsx(TaskPrompt, {
|
|
30
|
+
prompt,
|
|
31
|
+
basePath
|
|
32
|
+
}, prompt.id))
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
function TaskPrompt({ prompt, basePath }) {
|
|
36
|
+
const [busy, setBusy] = useState(null);
|
|
37
|
+
const [error, setError] = useState("");
|
|
38
|
+
const [formOpen, setFormOpen] = useState(false);
|
|
39
|
+
const inline = inlineOptions(prompt);
|
|
40
|
+
const choose = async (field, option) => {
|
|
41
|
+
setBusy(option.key);
|
|
42
|
+
setError("");
|
|
43
|
+
try {
|
|
44
|
+
await answerPrompt(basePath, prompt.id, { values: { [field]: option.key } });
|
|
45
|
+
} catch (cause) {
|
|
46
|
+
setError(cause instanceof Error ? cause.message : String(cause));
|
|
47
|
+
} finally {
|
|
48
|
+
setBusy(null);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
52
|
+
className: "flex flex-wrap items-center gap-2 rounded-md border border-amber-500/40 bg-amber-500/10 px-2 py-1.5",
|
|
53
|
+
children: [
|
|
54
|
+
/* @__PURE__ */ jsx(Icon, {
|
|
55
|
+
icon: UiQuestion,
|
|
56
|
+
className: "shrink-0 text-amber-600 dark:text-amber-400"
|
|
57
|
+
}),
|
|
58
|
+
/* @__PURE__ */ jsx("span", {
|
|
59
|
+
className: "min-w-0 flex-1 text-xs font-medium",
|
|
60
|
+
children: prompt.title
|
|
61
|
+
}),
|
|
62
|
+
/* @__PURE__ */ jsx("div", {
|
|
63
|
+
className: "flex shrink-0 flex-wrap items-center gap-1",
|
|
64
|
+
children: inline ? inline.options.map((option, index) => /* @__PURE__ */ jsx(Button, {
|
|
65
|
+
type: "button",
|
|
66
|
+
size: "sm",
|
|
67
|
+
variant: index === 0 ? "default" : "outline",
|
|
68
|
+
loading: busy === option.key,
|
|
69
|
+
disabled: busy !== null,
|
|
70
|
+
onClick: () => void choose(inline.field, option),
|
|
71
|
+
children: option.label
|
|
72
|
+
}, option.key)) : /* @__PURE__ */ jsx(Button, {
|
|
73
|
+
type: "button",
|
|
74
|
+
size: "sm",
|
|
75
|
+
"aria-label": `Answer ${prompt.title}`,
|
|
76
|
+
onClick: () => setFormOpen(true),
|
|
77
|
+
children: "Answer"
|
|
78
|
+
})
|
|
79
|
+
}),
|
|
80
|
+
error && /* @__PURE__ */ jsx("span", {
|
|
81
|
+
role: "alert",
|
|
82
|
+
className: "w-full text-xs text-red-600",
|
|
83
|
+
children: error
|
|
84
|
+
}),
|
|
85
|
+
formOpen && /* @__PURE__ */ jsx(PromptDialog, {
|
|
86
|
+
prompt,
|
|
87
|
+
basePath,
|
|
88
|
+
open: true,
|
|
89
|
+
onClose: () => setFormOpen(false)
|
|
90
|
+
})
|
|
91
|
+
]
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
export { TaskPrompts };
|
|
95
|
+
|
|
96
|
+
//# sourceMappingURL=TaskPrompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskPrompts.js","names":[],"sources":["../../src/data/TaskPrompts.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport { Button } from \"../components/button\";\nimport { answerPrompt, type PromptSnapshot } from \"../hooks/use-prompts\";\nimport { UiQuestion } from \"../icons\";\nimport { Icon } from \"./Icon\";\nimport { PromptDialog } from \"./PromptDialog\";\n\n// TaskPrompts renders the questions a running task is blocked on (the Go side\n// lists them on TaskSnapshot.prompts). A single-choice prompt with a few options\n// is answered inline with one button per option; anything else opens the\n// prompt's JSON Schema form in a PromptDialog.\n\nconst MAX_INLINE_OPTIONS = 4;\n\ninterface PromptOption {\n key: string;\n label: string;\n}\n\n// inlineOptions returns the options of a prompt whose schema is a single\n// required enum field (clicky's SelectSchema), or null when it needs the form.\nfunction inlineOptions(prompt: PromptSnapshot): { field: string; options: PromptOption[] } | null {\n const entries = Object.entries(prompt.schema.properties ?? {});\n if (entries.length !== 1) return null;\n const [field, property] = entries[0]!;\n const values = property.enum;\n if (property.type !== \"string\" || !values || values.length === 0 || values.length > MAX_INLINE_OPTIONS) return null;\n const labels = property[\"x-enum-labels\"] ?? {};\n return {\n field,\n options: values.map((value) => ({ key: String(value), label: labels[String(value)] ?? String(value) })),\n };\n}\n\nexport function TaskPrompts({ prompts, basePath }: { prompts: PromptSnapshot[]; basePath: string }) {\n return (\n <div className=\"mt-1 space-y-1\" onClick={(event) => event.stopPropagation()}>\n {prompts.map((prompt) => (\n <TaskPrompt key={prompt.id} prompt={prompt} basePath={basePath} />\n ))}\n </div>\n );\n}\n\nfunction TaskPrompt({ prompt, basePath }: { prompt: PromptSnapshot; basePath: string }) {\n const [busy, setBusy] = useState<string | null>(null);\n const [error, setError] = useState(\"\");\n const [formOpen, setFormOpen] = useState(false);\n const inline = inlineOptions(prompt);\n\n const choose = async (field: string, option: PromptOption) => {\n setBusy(option.key);\n setError(\"\");\n try {\n await answerPrompt(basePath, prompt.id, { values: { [field]: option.key } });\n } catch (cause) {\n setError(cause instanceof Error ? cause.message : String(cause));\n } finally {\n setBusy(null);\n }\n };\n\n return (\n <div className=\"flex flex-wrap items-center gap-2 rounded-md border border-amber-500/40 bg-amber-500/10 px-2 py-1.5\">\n <Icon icon={UiQuestion} className=\"shrink-0 text-amber-600 dark:text-amber-400\" />\n <span className=\"min-w-0 flex-1 text-xs font-medium\">{prompt.title}</span>\n <div className=\"flex shrink-0 flex-wrap items-center gap-1\">\n {inline ? (\n inline.options.map((option, index) => (\n <Button\n key={option.key}\n type=\"button\"\n size=\"sm\"\n variant={index === 0 ? \"default\" : \"outline\"}\n loading={busy === option.key}\n disabled={busy !== null}\n onClick={() => void choose(inline.field, option)}\n >\n {option.label}\n </Button>\n ))\n ) : (\n <Button type=\"button\" size=\"sm\" aria-label={`Answer ${prompt.title}`} onClick={() => setFormOpen(true)}>\n Answer\n </Button>\n )}\n </div>\n {error && (\n <span role=\"alert\" className=\"w-full text-xs text-red-600\">\n {error}\n </span>\n )}\n {formOpen && (\n <PromptDialog prompt={prompt} basePath={basePath} open={true} onClose={() => setFormOpen(false)} />\n )}\n </div>\n );\n}\n"],"mappings":";;;;;;;;AAYA,IAAM,qBAAqB;AAS3B,SAAS,cAAc,QAA2E;CAChG,MAAM,UAAU,OAAO,QAAQ,OAAO,OAAO,cAAc,CAAC,CAAC;CAC7D,IAAI,QAAQ,WAAW,GAAG,OAAO;CACjC,MAAM,CAAC,OAAO,YAAY,QAAQ;CAClC,MAAM,SAAS,SAAS;CACxB,IAAI,SAAS,SAAS,YAAY,CAAC,UAAU,OAAO,WAAW,KAAK,OAAO,SAAS,oBAAoB,OAAO;CAC/G,MAAM,SAAS,SAAS,oBAAoB,CAAC;CAC7C,OAAO;EACL;EACA,SAAS,OAAO,KAAK,WAAW;GAAE,KAAK,OAAO,KAAK;GAAG,OAAO,OAAO,OAAO,KAAK,MAAM,OAAO,KAAK;EAAE,EAAE;CACxG;AACF;AAEA,SAAgB,YAAY,EAAE,SAAS,YAA6D;CAClG,OACE,oBAAC,OAAD;EAAK,WAAU;EAAiB,UAAU,UAAU,MAAM,gBAAgB;EACvE,UAAA,QAAQ,KAAK,WACZ,oBAAC,YAAD;GAAoC;GAAkB;EAAW,GAAhD,OAAO,EAAyC,CAClE;CACE,CAAA;AAET;AAEA,SAAS,WAAW,EAAE,QAAQ,YAA0D;CACtF,MAAM,CAAC,MAAM,WAAW,SAAwB,IAAI;CACpD,MAAM,CAAC,OAAO,YAAY,SAAS,EAAE;CACrC,MAAM,CAAC,UAAU,eAAe,SAAS,KAAK;CAC9C,MAAM,SAAS,cAAc,MAAM;CAEnC,MAAM,SAAS,OAAO,OAAe,WAAyB;EAC5D,QAAQ,OAAO,GAAG;EAClB,SAAS,EAAE;EACX,IAAI;GACF,MAAM,aAAa,UAAU,OAAO,IAAI,EAAE,QAAQ,GAAG,QAAQ,OAAO,IAAI,EAAE,CAAC;EAC7E,SAAS,OAAO;GACd,SAAS,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,CAAC;EACjE,UAAU;GACR,QAAQ,IAAI;EACd;CACF;CAEA,OACE,qBAAC,OAAD;EAAK,WAAU;EAAf,UAAA;GACE,oBAAC,MAAD;IAAM,MAAM;IAAY,WAAU;GAA+C,CAAA;GACjF,oBAAC,QAAD;IAAM,WAAU;IAAsC,UAAA,OAAO;GAAY,CAAA;GACzE,oBAAC,OAAD;IAAK,WAAU;IACZ,UAAA,SACC,OAAO,QAAQ,KAAK,QAAQ,UAC1B,oBAAC,QAAD;KAEE,MAAK;KACL,MAAK;KACL,SAAS,UAAU,IAAI,YAAY;KACnC,SAAS,SAAS,OAAO;KACzB,UAAU,SAAS;KACnB,eAAe,KAAK,OAAO,OAAO,OAAO,MAAM;KAE9C,UAAA,OAAO;IACF,GATD,OAAO,GASN,CACT,IAED,oBAAC,QAAD;KAAQ,MAAK;KAAS,MAAK;KAAK,cAAY,UAAU,OAAO;KAAS,eAAe,YAAY,IAAI;KAAG,UAAA;IAEhG,CAAA;GAEP,CAAA;GACJ,SACC,oBAAC,QAAD;IAAM,MAAK;IAAQ,WAAU;IAC1B,UAAA;GACG,CAAA;GAEP,YACC,oBAAC,cAAD;IAAsB;IAAkB;IAAU,MAAM;IAAM,eAAe,YAAY,KAAK;GAAI,CAAA;EAEjG;;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskSnapshot.cjs","names":[],"sources":["../../src/data/TaskSnapshot.ts"],"sourcesContent":["// TaskSnapshot mirrors the Go `task.TaskSnapshot` wire format emitted by clicky's\n// JSONHandler / SSEHandler (github.com/flanksource/clicky/task/snapshot.go). Field\n// names match the JSON tags exactly. This module is generic — it carries no\n// application-specific concepts.\n\nexport interface LogEntry {\n level: string;\n message: string;\n}\n\nexport type TaskControlAction = \"start\" | \"stop\" | \"restart\" | \"drain\" | \"retry\";\n\nexport interface TaskWorkProgress {\n total: number;\n completed: number;\n cached: number;\n failed: number;\n running: number;\n canceled: number;\n unstarted: number;\n}\n\nexport interface TaskResourceSnapshot {\n cpuPercent: number;\n rssBytes: number;\n vmsBytes: number;\n openFiles: number;\n sampledAt: string;\n}\n\nexport interface TaskProcessSample {\n pid: number;\n ppid: number;\n command: string;\n status?: string;\n isRoot?: boolean;\n cpuPercent: number;\n rssBytes: number;\n vmsBytes: number;\n openFiles: number;\n}\n\n/** Runaway bounds a supervised process is killed for exceeding. */\nexport interface TaskResourceLimits {\n maxRssBytes?: number;\n maxCpuPercent?: number;\n cpuSampleCount?: number;\n /** Sampling cadence as a Go duration string, e.g. \"2s\". */\n interval?: string;\n}\n\nexport interface TaskProcessDetails {\n pid?: number;\n command: string;\n args?: string[];\n status: string;\n started?: string;\n exitCode?: number;\n ports?: number[];\n restarts: number;\n restartPolicy: string;\n maxRestarts?: number;\n limits?: TaskResourceLimits;\n latest: TaskResourceSnapshot;\n peak: TaskResourceSnapshot;\n metrics: Record<string, string>;\n tree?: TaskProcessSample[];\n /**\n * Caller-supplied context, re-read on every snapshot. Any JSON the producer\n * chooses to send — flat values render inline, anything structured renders as\n * JSON. This module gives the shape no meaning beyond \"show it\".\n */\n metadata?: unknown;\n}\n\nexport interface TaskExecDetails {\n command: string;\n args?: string[];\n cwd?: string;\n pid?: number;\n status: string;\n exitCode: number;\n started?: string;\n /** Go time.Duration encoded as nanoseconds. */\n duration?: number;\n [key: string]: unknown;\n}\n\nexport interface TaskSnapshot {\n /** Stable identities of tasks that must finish before this task starts. */\n dependencyIds?: string[];\n id: string;\n name: string;\n /** \"task\" or \"group\". */\n type: \"task\" | \"group\";\n /** Parent group NAME (groups: empty). */\n group?: string;\n status: string;\n duration?: string;\n error?: string;\n /** Latest log line. */\n message?: string;\n logs?: LogEntry[];\n /** Group aggregates. */\n total?: number;\n completed?: number;\n failed?: number;\n running?: number;\n canceled?: number;\n work?: TaskWorkProgress;\n /** Per-task (type === \"task\") live stage label and bounded progress. */\n description?: string;\n progress?: number;\n /** Progress denominator; 0/undefined means the task has no bounded progress. */\n maxValue?: number;\n /** Stable parent-run id (tasks) or the run's own id (groups). */\n groupId?: string;\n kind?: string;\n labels?: Record<string, string>;\n owner?: string;\n /** RFC3339. */\n startedAt?: string;\n /** RFC3339. */\n finishedAt?: string;\n href?: string;\n controls?: TaskControlAction[];\n stdout?: string;\n stderr?: string;\n /**\n * Absolute stream offset of the first retained byte — how much the server's\n * bounded buffer has already discarded ahead of `stdout`/`stderr`. Non-zero\n * exactly when the matching `*Truncated` flag is set.\n */\n stdoutOffset?: number;\n stderrOffset?: number;\n stdoutTruncated?: boolean;\n stderrTruncated?: boolean;\n details?: TaskProcessDetails | TaskExecDetails | Record<string, unknown>;\n}\n\n// TaskRunMeta mirrors the Go `task.RunMeta` listing summary returned by\n// GET {prefix}/tasks. Named TaskRunMeta to avoid colliding with the unrelated\n// diagnostics `RunMeta` already exported by this package.\nexport interface TaskRunMeta {\n id: string;\n name: string;\n kind?: string;\n labels?: Record<string, string>;\n owner?: string;\n status: string;\n startedAt?: string;\n finishedAt?: string;\n total: number;\n completed: number;\n failed: number;\n running: number;\n canceled?: number;\n work?: TaskWorkProgress;\n href?: string;\n controls?: TaskControlAction[];\n}\n\n// Terminal run/group statuses (not running/pending). Used to decide when an SSE\n// stream is done or when polling should stop.\nconst TERMINAL_STATUSES = new Set([\n \"success\",\n \"failed\",\n \"warning\",\n \"canceled\",\n \"PASS\",\n \"FAIL\",\n \"ERR\",\n \"SKIP\",\n]);\n\nexport function isTerminalStatus(status: string | undefined): boolean {\n return !!status && TERMINAL_STATUSES.has(status);\n}\n\n// allGroupsTerminal reports whether every group snapshot has reached a terminal\n// status — i.e. the run(s) are complete and an SSE stream / poll can stop.\nexport function allGroupsTerminal(snapshots: TaskSnapshot[]): boolean {\n const groups = snapshots.filter((s) => s.type === \"group\");\n if (groups.length === 0) return false;\n return groups.every((g) => isTerminalStatus(g.status));\n}\n"],"mappings":";
|
|
1
|
+
{"version":3,"file":"TaskSnapshot.cjs","names":[],"sources":["../../src/data/TaskSnapshot.ts"],"sourcesContent":["// TaskSnapshot mirrors the Go `task.TaskSnapshot` wire format emitted by clicky's\n// JSONHandler / SSEHandler (github.com/flanksource/clicky/task/snapshot.go). Field\n// names match the JSON tags exactly. This module is generic — it carries no\n// application-specific concepts.\n\nimport type { PromptSnapshot } from \"../hooks/use-prompts\";\n\nexport interface LogEntry {\n level: string;\n message: string;\n}\n\nexport type TaskControlAction = \"start\" | \"stop\" | \"restart\" | \"drain\" | \"retry\";\n\nexport interface TaskWorkProgress {\n total: number;\n completed: number;\n cached: number;\n failed: number;\n running: number;\n canceled: number;\n unstarted: number;\n}\n\nexport interface TaskResourceSnapshot {\n cpuPercent: number;\n rssBytes: number;\n vmsBytes: number;\n openFiles: number;\n sampledAt: string;\n}\n\nexport interface TaskProcessSample {\n pid: number;\n ppid: number;\n command: string;\n status?: string;\n isRoot?: boolean;\n cpuPercent: number;\n rssBytes: number;\n vmsBytes: number;\n openFiles: number;\n}\n\n/** Runaway bounds a supervised process is killed for exceeding. */\nexport interface TaskResourceLimits {\n maxRssBytes?: number;\n maxCpuPercent?: number;\n cpuSampleCount?: number;\n /** Sampling cadence as a Go duration string, e.g. \"2s\". */\n interval?: string;\n}\n\nexport interface TaskProcessDetails {\n pid?: number;\n command: string;\n args?: string[];\n status: string;\n started?: string;\n exitCode?: number;\n ports?: number[];\n restarts: number;\n restartPolicy: string;\n maxRestarts?: number;\n limits?: TaskResourceLimits;\n latest: TaskResourceSnapshot;\n peak: TaskResourceSnapshot;\n metrics: Record<string, string>;\n tree?: TaskProcessSample[];\n /**\n * Caller-supplied context, re-read on every snapshot. Any JSON the producer\n * chooses to send — flat values render inline, anything structured renders as\n * JSON. This module gives the shape no meaning beyond \"show it\".\n */\n metadata?: unknown;\n}\n\nexport interface TaskExecDetails {\n command: string;\n args?: string[];\n cwd?: string;\n pid?: number;\n status: string;\n exitCode: number;\n started?: string;\n /** Go time.Duration encoded as nanoseconds. */\n duration?: number;\n [key: string]: unknown;\n}\n\nexport interface TaskSnapshot {\n /** Stable identities of tasks that must finish before this task starts. */\n dependencyIds?: string[];\n id: string;\n name: string;\n /** \"task\" or \"group\". */\n type: \"task\" | \"group\";\n /** Parent group NAME (groups: empty). */\n group?: string;\n status: string;\n duration?: string;\n error?: string;\n /** Latest log line. */\n message?: string;\n logs?: LogEntry[];\n /** Group aggregates. */\n total?: number;\n completed?: number;\n failed?: number;\n running?: number;\n canceled?: number;\n work?: TaskWorkProgress;\n /** Per-task (type === \"task\") live stage label and bounded progress. */\n description?: string;\n progress?: number;\n /** Progress denominator; 0/undefined means the task has no bounded progress. */\n maxValue?: number;\n /** Stable parent-run id (tasks) or the run's own id (groups). */\n groupId?: string;\n kind?: string;\n labels?: Record<string, string>;\n owner?: string;\n /** RFC3339. */\n startedAt?: string;\n /** RFC3339. */\n finishedAt?: string;\n href?: string;\n controls?: TaskControlAction[];\n stdout?: string;\n stderr?: string;\n /**\n * Absolute stream offset of the first retained byte — how much the server's\n * bounded buffer has already discarded ahead of `stdout`/`stderr`. Non-zero\n * exactly when the matching `*Truncated` flag is set.\n */\n stdoutOffset?: number;\n stderrOffset?: number;\n stdoutTruncated?: boolean;\n stderrTruncated?: boolean;\n details?: TaskProcessDetails | TaskExecDetails | Record<string, unknown>;\n /** Pending prompts a running task is blocked on (Go `prompt.TaskLabel`). */\n prompts?: PromptSnapshot[];\n}\n\n// TaskRunMeta mirrors the Go `task.RunMeta` listing summary returned by\n// GET {prefix}/tasks. Named TaskRunMeta to avoid colliding with the unrelated\n// diagnostics `RunMeta` already exported by this package.\nexport interface TaskRunMeta {\n id: string;\n name: string;\n kind?: string;\n labels?: Record<string, string>;\n owner?: string;\n status: string;\n startedAt?: string;\n finishedAt?: string;\n total: number;\n completed: number;\n failed: number;\n running: number;\n canceled?: number;\n work?: TaskWorkProgress;\n href?: string;\n controls?: TaskControlAction[];\n}\n\n// Terminal run/group statuses (not running/pending). Used to decide when an SSE\n// stream is done or when polling should stop.\nconst TERMINAL_STATUSES = new Set([\n \"success\",\n \"failed\",\n \"warning\",\n \"canceled\",\n \"PASS\",\n \"FAIL\",\n \"ERR\",\n \"SKIP\",\n]);\n\nexport function isTerminalStatus(status: string | undefined): boolean {\n return !!status && TERMINAL_STATUSES.has(status);\n}\n\n// allGroupsTerminal reports whether every group snapshot has reached a terminal\n// status — i.e. the run(s) are complete and an SSE stream / poll can stop.\nexport function allGroupsTerminal(snapshots: TaskSnapshot[]): boolean {\n const groups = snapshots.filter((s) => s.type === \"group\");\n if (groups.length === 0) return false;\n return groups.every((g) => isTerminalStatus(g.status));\n}\n"],"mappings":";AAwKA,IAAM,oCAAoB,IAAI,IAAI;CAChC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AAED,SAAgB,iBAAiB,QAAqC;CACpE,OAAO,CAAC,CAAC,UAAU,kBAAkB,IAAI,MAAM;AACjD;AAIA,SAAgB,kBAAkB,WAAoC;CACpE,MAAM,SAAS,UAAU,QAAQ,MAAM,EAAE,SAAS,OAAO;CACzD,IAAI,OAAO,WAAW,GAAG,OAAO;CAChC,OAAO,OAAO,OAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC;AACvD"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { PromptSnapshot } from '../hooks/use-prompts.js';
|
|
1
2
|
export interface LogEntry {
|
|
2
3
|
level: string;
|
|
3
4
|
message: string;
|
|
@@ -123,6 +124,8 @@ export interface TaskSnapshot {
|
|
|
123
124
|
stdoutTruncated?: boolean;
|
|
124
125
|
stderrTruncated?: boolean;
|
|
125
126
|
details?: TaskProcessDetails | TaskExecDetails | Record<string, unknown>;
|
|
127
|
+
/** Pending prompts a running task is blocked on (Go `prompt.TaskLabel`). */
|
|
128
|
+
prompts?: PromptSnapshot[];
|
|
126
129
|
}
|
|
127
130
|
export interface TaskRunMeta {
|
|
128
131
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskSnapshot.d.ts","sourceRoot":"","sources":["../../src/data/TaskSnapshot.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"TaskSnapshot.d.ts","sourceRoot":"","sources":["../../src/data/TaskSnapshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskSnapshot.js","names":[],"sources":["../../src/data/TaskSnapshot.ts"],"sourcesContent":["// TaskSnapshot mirrors the Go `task.TaskSnapshot` wire format emitted by clicky's\n// JSONHandler / SSEHandler (github.com/flanksource/clicky/task/snapshot.go). Field\n// names match the JSON tags exactly. This module is generic — it carries no\n// application-specific concepts.\n\nexport interface LogEntry {\n level: string;\n message: string;\n}\n\nexport type TaskControlAction = \"start\" | \"stop\" | \"restart\" | \"drain\" | \"retry\";\n\nexport interface TaskWorkProgress {\n total: number;\n completed: number;\n cached: number;\n failed: number;\n running: number;\n canceled: number;\n unstarted: number;\n}\n\nexport interface TaskResourceSnapshot {\n cpuPercent: number;\n rssBytes: number;\n vmsBytes: number;\n openFiles: number;\n sampledAt: string;\n}\n\nexport interface TaskProcessSample {\n pid: number;\n ppid: number;\n command: string;\n status?: string;\n isRoot?: boolean;\n cpuPercent: number;\n rssBytes: number;\n vmsBytes: number;\n openFiles: number;\n}\n\n/** Runaway bounds a supervised process is killed for exceeding. */\nexport interface TaskResourceLimits {\n maxRssBytes?: number;\n maxCpuPercent?: number;\n cpuSampleCount?: number;\n /** Sampling cadence as a Go duration string, e.g. \"2s\". */\n interval?: string;\n}\n\nexport interface TaskProcessDetails {\n pid?: number;\n command: string;\n args?: string[];\n status: string;\n started?: string;\n exitCode?: number;\n ports?: number[];\n restarts: number;\n restartPolicy: string;\n maxRestarts?: number;\n limits?: TaskResourceLimits;\n latest: TaskResourceSnapshot;\n peak: TaskResourceSnapshot;\n metrics: Record<string, string>;\n tree?: TaskProcessSample[];\n /**\n * Caller-supplied context, re-read on every snapshot. Any JSON the producer\n * chooses to send — flat values render inline, anything structured renders as\n * JSON. This module gives the shape no meaning beyond \"show it\".\n */\n metadata?: unknown;\n}\n\nexport interface TaskExecDetails {\n command: string;\n args?: string[];\n cwd?: string;\n pid?: number;\n status: string;\n exitCode: number;\n started?: string;\n /** Go time.Duration encoded as nanoseconds. */\n duration?: number;\n [key: string]: unknown;\n}\n\nexport interface TaskSnapshot {\n /** Stable identities of tasks that must finish before this task starts. */\n dependencyIds?: string[];\n id: string;\n name: string;\n /** \"task\" or \"group\". */\n type: \"task\" | \"group\";\n /** Parent group NAME (groups: empty). */\n group?: string;\n status: string;\n duration?: string;\n error?: string;\n /** Latest log line. */\n message?: string;\n logs?: LogEntry[];\n /** Group aggregates. */\n total?: number;\n completed?: number;\n failed?: number;\n running?: number;\n canceled?: number;\n work?: TaskWorkProgress;\n /** Per-task (type === \"task\") live stage label and bounded progress. */\n description?: string;\n progress?: number;\n /** Progress denominator; 0/undefined means the task has no bounded progress. */\n maxValue?: number;\n /** Stable parent-run id (tasks) or the run's own id (groups). */\n groupId?: string;\n kind?: string;\n labels?: Record<string, string>;\n owner?: string;\n /** RFC3339. */\n startedAt?: string;\n /** RFC3339. */\n finishedAt?: string;\n href?: string;\n controls?: TaskControlAction[];\n stdout?: string;\n stderr?: string;\n /**\n * Absolute stream offset of the first retained byte — how much the server's\n * bounded buffer has already discarded ahead of `stdout`/`stderr`. Non-zero\n * exactly when the matching `*Truncated` flag is set.\n */\n stdoutOffset?: number;\n stderrOffset?: number;\n stdoutTruncated?: boolean;\n stderrTruncated?: boolean;\n details?: TaskProcessDetails | TaskExecDetails | Record<string, unknown>;\n}\n\n// TaskRunMeta mirrors the Go `task.RunMeta` listing summary returned by\n// GET {prefix}/tasks. Named TaskRunMeta to avoid colliding with the unrelated\n// diagnostics `RunMeta` already exported by this package.\nexport interface TaskRunMeta {\n id: string;\n name: string;\n kind?: string;\n labels?: Record<string, string>;\n owner?: string;\n status: string;\n startedAt?: string;\n finishedAt?: string;\n total: number;\n completed: number;\n failed: number;\n running: number;\n canceled?: number;\n work?: TaskWorkProgress;\n href?: string;\n controls?: TaskControlAction[];\n}\n\n// Terminal run/group statuses (not running/pending). Used to decide when an SSE\n// stream is done or when polling should stop.\nconst TERMINAL_STATUSES = new Set([\n \"success\",\n \"failed\",\n \"warning\",\n \"canceled\",\n \"PASS\",\n \"FAIL\",\n \"ERR\",\n \"SKIP\",\n]);\n\nexport function isTerminalStatus(status: string | undefined): boolean {\n return !!status && TERMINAL_STATUSES.has(status);\n}\n\n// allGroupsTerminal reports whether every group snapshot has reached a terminal\n// status — i.e. the run(s) are complete and an SSE stream / poll can stop.\nexport function allGroupsTerminal(snapshots: TaskSnapshot[]): boolean {\n const groups = snapshots.filter((s) => s.type === \"group\");\n if (groups.length === 0) return false;\n return groups.every((g) => isTerminalStatus(g.status));\n}\n"],"mappings":";
|
|
1
|
+
{"version":3,"file":"TaskSnapshot.js","names":[],"sources":["../../src/data/TaskSnapshot.ts"],"sourcesContent":["// TaskSnapshot mirrors the Go `task.TaskSnapshot` wire format emitted by clicky's\n// JSONHandler / SSEHandler (github.com/flanksource/clicky/task/snapshot.go). Field\n// names match the JSON tags exactly. This module is generic — it carries no\n// application-specific concepts.\n\nimport type { PromptSnapshot } from \"../hooks/use-prompts\";\n\nexport interface LogEntry {\n level: string;\n message: string;\n}\n\nexport type TaskControlAction = \"start\" | \"stop\" | \"restart\" | \"drain\" | \"retry\";\n\nexport interface TaskWorkProgress {\n total: number;\n completed: number;\n cached: number;\n failed: number;\n running: number;\n canceled: number;\n unstarted: number;\n}\n\nexport interface TaskResourceSnapshot {\n cpuPercent: number;\n rssBytes: number;\n vmsBytes: number;\n openFiles: number;\n sampledAt: string;\n}\n\nexport interface TaskProcessSample {\n pid: number;\n ppid: number;\n command: string;\n status?: string;\n isRoot?: boolean;\n cpuPercent: number;\n rssBytes: number;\n vmsBytes: number;\n openFiles: number;\n}\n\n/** Runaway bounds a supervised process is killed for exceeding. */\nexport interface TaskResourceLimits {\n maxRssBytes?: number;\n maxCpuPercent?: number;\n cpuSampleCount?: number;\n /** Sampling cadence as a Go duration string, e.g. \"2s\". */\n interval?: string;\n}\n\nexport interface TaskProcessDetails {\n pid?: number;\n command: string;\n args?: string[];\n status: string;\n started?: string;\n exitCode?: number;\n ports?: number[];\n restarts: number;\n restartPolicy: string;\n maxRestarts?: number;\n limits?: TaskResourceLimits;\n latest: TaskResourceSnapshot;\n peak: TaskResourceSnapshot;\n metrics: Record<string, string>;\n tree?: TaskProcessSample[];\n /**\n * Caller-supplied context, re-read on every snapshot. Any JSON the producer\n * chooses to send — flat values render inline, anything structured renders as\n * JSON. This module gives the shape no meaning beyond \"show it\".\n */\n metadata?: unknown;\n}\n\nexport interface TaskExecDetails {\n command: string;\n args?: string[];\n cwd?: string;\n pid?: number;\n status: string;\n exitCode: number;\n started?: string;\n /** Go time.Duration encoded as nanoseconds. */\n duration?: number;\n [key: string]: unknown;\n}\n\nexport interface TaskSnapshot {\n /** Stable identities of tasks that must finish before this task starts. */\n dependencyIds?: string[];\n id: string;\n name: string;\n /** \"task\" or \"group\". */\n type: \"task\" | \"group\";\n /** Parent group NAME (groups: empty). */\n group?: string;\n status: string;\n duration?: string;\n error?: string;\n /** Latest log line. */\n message?: string;\n logs?: LogEntry[];\n /** Group aggregates. */\n total?: number;\n completed?: number;\n failed?: number;\n running?: number;\n canceled?: number;\n work?: TaskWorkProgress;\n /** Per-task (type === \"task\") live stage label and bounded progress. */\n description?: string;\n progress?: number;\n /** Progress denominator; 0/undefined means the task has no bounded progress. */\n maxValue?: number;\n /** Stable parent-run id (tasks) or the run's own id (groups). */\n groupId?: string;\n kind?: string;\n labels?: Record<string, string>;\n owner?: string;\n /** RFC3339. */\n startedAt?: string;\n /** RFC3339. */\n finishedAt?: string;\n href?: string;\n controls?: TaskControlAction[];\n stdout?: string;\n stderr?: string;\n /**\n * Absolute stream offset of the first retained byte — how much the server's\n * bounded buffer has already discarded ahead of `stdout`/`stderr`. Non-zero\n * exactly when the matching `*Truncated` flag is set.\n */\n stdoutOffset?: number;\n stderrOffset?: number;\n stdoutTruncated?: boolean;\n stderrTruncated?: boolean;\n details?: TaskProcessDetails | TaskExecDetails | Record<string, unknown>;\n /** Pending prompts a running task is blocked on (Go `prompt.TaskLabel`). */\n prompts?: PromptSnapshot[];\n}\n\n// TaskRunMeta mirrors the Go `task.RunMeta` listing summary returned by\n// GET {prefix}/tasks. Named TaskRunMeta to avoid colliding with the unrelated\n// diagnostics `RunMeta` already exported by this package.\nexport interface TaskRunMeta {\n id: string;\n name: string;\n kind?: string;\n labels?: Record<string, string>;\n owner?: string;\n status: string;\n startedAt?: string;\n finishedAt?: string;\n total: number;\n completed: number;\n failed: number;\n running: number;\n canceled?: number;\n work?: TaskWorkProgress;\n href?: string;\n controls?: TaskControlAction[];\n}\n\n// Terminal run/group statuses (not running/pending). Used to decide when an SSE\n// stream is done or when polling should stop.\nconst TERMINAL_STATUSES = new Set([\n \"success\",\n \"failed\",\n \"warning\",\n \"canceled\",\n \"PASS\",\n \"FAIL\",\n \"ERR\",\n \"SKIP\",\n]);\n\nexport function isTerminalStatus(status: string | undefined): boolean {\n return !!status && TERMINAL_STATUSES.has(status);\n}\n\n// allGroupsTerminal reports whether every group snapshot has reached a terminal\n// status — i.e. the run(s) are complete and an SSE stream / poll can stop.\nexport function allGroupsTerminal(snapshots: TaskSnapshot[]): boolean {\n const groups = snapshots.filter((s) => s.type === \"group\");\n if (groups.length === 0) return false;\n return groups.every((g) => isTerminalStatus(g.status));\n}\n"],"mappings":";AAwKA,IAAM,oCAAoB,IAAI,IAAI;CAChC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AAED,SAAgB,iBAAiB,QAAqC;CACpE,OAAO,CAAC,CAAC,UAAU,kBAAkB,IAAI,MAAM;AACjD;AAIA,SAAgB,kBAAkB,WAAoC;CACpE,MAAM,SAAS,UAAU,QAAQ,MAAM,EAAE,SAAS,OAAO;CACzD,IAAI,OAAO,WAAW,GAAG,OAAO;CAChC,OAAO,OAAO,OAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC;AACvD"}
|
|
@@ -18,18 +18,22 @@ function TimeseriesCoreBars({ baseUrl = "", value, max, unit, title, icon, range
|
|
|
18
18
|
refreshMs,
|
|
19
19
|
fetcher
|
|
20
20
|
});
|
|
21
|
-
const
|
|
21
|
+
const valueRead = require_timeseries_query.soleSeries(value.id, results[0]);
|
|
22
|
+
const maxRead = maxSeries ? require_timeseries_query.soleSeries(maxSeries.id, results[1]) : void 0;
|
|
23
|
+
const error = valueRead.error ?? maxRead?.error ?? null;
|
|
24
|
+
const rawValue = require_timeseries_query.latestValue(valueRead.data);
|
|
22
25
|
const usage = rawValue === void 0 ? void 0 : value.transform ? value.transform(rawValue) : rawValue;
|
|
23
26
|
let limit;
|
|
24
27
|
if (typeof max === "number") limit = max;
|
|
25
28
|
else if (maxSeries) {
|
|
26
|
-
const rawMax = require_timeseries_query.latestValue(
|
|
29
|
+
const rawMax = require_timeseries_query.latestValue(maxRead?.data);
|
|
27
30
|
limit = rawMax === void 0 ? void 0 : maxSeries.transform ? maxSeries.transform(rawMax) : rawMax;
|
|
28
31
|
}
|
|
29
|
-
const stats = require_gauge_stats.seriesStats(
|
|
32
|
+
const stats = require_gauge_stats.seriesStats(valueRead.data?.points, value.transform);
|
|
30
33
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ProgressBars.ProgressBars, {
|
|
31
34
|
usage,
|
|
32
35
|
stats,
|
|
36
|
+
error,
|
|
33
37
|
title,
|
|
34
38
|
thresholds,
|
|
35
39
|
variant,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimeseriesCoreBars.cjs","names":["defaultTimeseriesFetcher","useTimeseriesQueries","latestValue","seriesStats","ProgressBars"],"sources":["../../src/data/TimeseriesCoreBars.tsx"],"sourcesContent":["import { type StaticIconComponent } from \"./Icon\";\nimport type { GaugeSeries } from \"./TimeseriesGauge\";\nimport type { TimeseriesResponse } from \"./TimeseriesPanel\";\nimport {\n ProgressBars,\n type ProgressBarsOrientation,\n type ProgressBarsUnit,\n type ProgressBarsVariant,\n} from \"./ProgressBars\";\nimport { seriesStats } from \"./gauge-stats\";\nimport {
|
|
1
|
+
{"version":3,"file":"TimeseriesCoreBars.cjs","names":["defaultTimeseriesFetcher","useTimeseriesQueries","soleSeries","latestValue","seriesStats","ProgressBars"],"sources":["../../src/data/TimeseriesCoreBars.tsx"],"sourcesContent":["import { type StaticIconComponent } from \"./Icon\";\nimport type { GaugeSeries } from \"./TimeseriesGauge\";\nimport type { TimeseriesResponse } from \"./TimeseriesPanel\";\nimport {\n ProgressBars,\n type ProgressBarsOrientation,\n type ProgressBarsUnit,\n type ProgressBarsVariant,\n} from \"./ProgressBars\";\nimport { seriesStats } from \"./gauge-stats\";\nimport {\n defaultTimeseriesFetcher,\n latestValue,\n soleSeries,\n useTimeseriesQueries,\n} from \"./timeseries-query\";\n\nexport interface TimeseriesCoreBarsProps {\n /** Common prefix; the value/max requests are `baseUrl + id` (unless a series has `load`). */\n baseUrl?: string;\n /** The metric whose latest value (CPU millicores) fills the bars. */\n value: GaugeSeries;\n /**\n * The capacity. Either a `.limit`-style metric series (its latest value) or a\n * fixed number, in the same raw domain as `value`. Determines the number of\n * bars (one per `unit.perBar`). When omitted or 0, the bar count falls back to\n * the ceiling of the usage so an unbounded reading still renders.\n */\n max?: GaugeSeries | number;\n /** What one bar represents. Defaults to CPU cores (perBar 1000, label \"cores\"). */\n unit?: ProgressBarsUnit;\n title: string;\n /** Iconify name or static icon component shown beside the label. */\n icon?: string | StaticIconComponent;\n /** Look-back window passed as ?since=; defaults to \"1h\". */\n range?: string;\n /** Poll interval in ms; defaults to 5000. Pass 0 to disable polling. */\n refreshMs?: number;\n /**\n * Utilisation thresholds (percent of capacity) at which the fill turns amber\n * then red. Defaults to [75, 90].\n */\n thresholds?: [warning: number, danger: number];\n /** Visual density/layout. `cell` is a compact inline form for table/grid cells. */\n variant?: ProgressBarsVariant;\n /** Show the title text. Icons and values remain visible unless separately hidden. */\n showLabel?: boolean;\n /** Show the value/capacity caption. Icons and bars remain visible when false. */\n showValue?: boolean;\n /**\n * Include the capacity in the caption (\"2.3 / 4 cores\"). Defaults to false — the\n * caption shows only the current value (\"2.3 cores\") since the bars already\n * convey capacity. Set true to append the \"/ <capacity>\".\n */\n showCapacity?: boolean;\n /** Bar direction. Vertical bars fill bottom-up; horizontal bars fill left-to-right. */\n orientation?: ProgressBarsOrientation;\n /**\n * Wrap the bars in a hover card summarising the metric (label + current / min /\n * max / avg / capacity over the window). Defaults to true.\n */\n hoverCard?: boolean;\n /** Override the default fetch (e.g. to route through an app's API client). */\n fetcher?: (url: string) => Promise<TimeseriesResponse>;\n className?: string;\n}\n\n/**\n * TimeseriesCoreBars reads usage and limit live from the timeseries store\n * (mirroring TimeseriesGauge's data plumbing) and renders them as quantised\n * utilisation bars via {@link ProgressBars}. Usage and limit flow through each\n * series' optional `transform`; the hover card summarises current/min/max/avg/\n * capacity over the look-back window.\n */\nexport function TimeseriesCoreBars({\n baseUrl = \"\",\n value,\n max,\n unit,\n title,\n icon,\n range = \"1h\",\n refreshMs = 5000,\n thresholds = [75, 90],\n variant = \"default\",\n showLabel = true,\n showValue = true,\n showCapacity = false,\n orientation,\n hoverCard = true,\n fetcher = defaultTimeseriesFetcher,\n className,\n}: TimeseriesCoreBarsProps) {\n const maxSeries = typeof max === \"object\" ? max : undefined;\n const results = useTimeseriesQueries(maxSeries ? [value, maxSeries] : [value], {\n baseUrl,\n range,\n refreshMs,\n fetcher,\n });\n\n const valueRead = soleSeries(value.id, results[0]);\n const maxRead = maxSeries ? soleSeries(maxSeries.id, results[1]) : undefined;\n const error = valueRead.error ?? maxRead?.error ?? null;\n const rawValue = latestValue(valueRead.data);\n const usage =\n rawValue === undefined\n ? undefined\n : value.transform\n ? value.transform(rawValue)\n : rawValue;\n\n let limit: number | undefined;\n if (typeof max === \"number\") {\n limit = max;\n } else if (maxSeries) {\n const rawMax = latestValue(maxRead?.data);\n limit =\n rawMax === undefined\n ? undefined\n : maxSeries.transform\n ? maxSeries.transform(rawMax)\n : rawMax;\n }\n\n const stats = seriesStats(valueRead.data?.points, value.transform);\n\n return (\n <ProgressBars\n usage={usage}\n stats={stats}\n error={error}\n title={title}\n thresholds={thresholds}\n variant={variant}\n showLabel={showLabel}\n showValue={showValue}\n showCapacity={showCapacity}\n hoverCard={hoverCard}\n hoverFooter={`over last ${range}`}\n {...(limit !== undefined ? { max: limit } : {})}\n {...(unit !== undefined ? { unit } : {})}\n {...(icon !== undefined ? { icon } : {})}\n {...(orientation !== undefined ? { orientation } : {})}\n {...(className !== undefined ? { className } : {})}\n />\n );\n}\n"],"mappings":";;;;;;;;;;;;AA0EA,SAAgB,mBAAmB,EACjC,UAAU,IACV,OACA,KACA,MACA,OACA,MACA,QAAQ,MACR,YAAY,KACZ,aAAa,CAAC,IAAI,EAAE,GACpB,UAAU,WACV,YAAY,MACZ,YAAY,MACZ,eAAe,OACf,aACA,YAAY,MACZ,UAAUA,yBAAAA,0BACV,aAC0B;CAC1B,MAAM,YAAY,OAAO,QAAQ,WAAW,MAAM,KAAA;CAClD,MAAM,UAAUC,yBAAAA,qBAAqB,YAAY,CAAC,OAAO,SAAS,IAAI,CAAC,KAAK,GAAG;EAC7E;EACA;EACA;EACA;CACF,CAAC;CAED,MAAM,YAAYC,yBAAAA,WAAW,MAAM,IAAI,QAAQ,EAAE;CACjD,MAAM,UAAU,YAAYA,yBAAAA,WAAW,UAAU,IAAI,QAAQ,EAAE,IAAI,KAAA;CACnE,MAAM,QAAQ,UAAU,SAAS,SAAS,SAAS;CACnD,MAAM,WAAWC,yBAAAA,YAAY,UAAU,IAAI;CAC3C,MAAM,QACJ,aAAa,KAAA,IACT,KAAA,IACA,MAAM,YACJ,MAAM,UAAU,QAAQ,IACxB;CAER,IAAI;CACJ,IAAI,OAAO,QAAQ,UACjB,QAAQ;MACH,IAAI,WAAW;EACpB,MAAM,SAASA,yBAAAA,YAAY,SAAS,IAAI;EACxC,QACE,WAAW,KAAA,IACP,KAAA,IACA,UAAU,YACR,UAAU,UAAU,MAAM,IAC1B;CACV;CAEA,MAAM,QAAQC,oBAAAA,YAAY,UAAU,MAAM,QAAQ,MAAM,SAAS;CAEjE,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,qBAAAA,cAAD;EACS;EACA;EACA;EACA;EACK;EACH;EACE;EACA;EACG;EACH;EACX,aAAa,aAAa;EAC1B,GAAK,UAAU,KAAA,IAAY,EAAE,KAAK,MAAM,IAAI,CAAC;EAC7C,GAAK,SAAS,KAAA,IAAY,EAAE,KAAK,IAAI,CAAC;EACtC,GAAK,SAAS,KAAA,IAAY,EAAE,KAAK,IAAI,CAAC;EACtC,GAAK,gBAAgB,KAAA,IAAY,EAAE,YAAY,IAAI,CAAC;EACpD,GAAK,cAAc,KAAA,IAAY,EAAE,UAAU,IAAI,CAAC;CACjD,CAAA;AAEL"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimeseriesCoreBars.d.ts","sourceRoot":"","sources":["../../src/data/TimeseriesCoreBars.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACzB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"TimeseriesCoreBars.d.ts","sourceRoot":"","sources":["../../src/data/TimeseriesCoreBars.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACzB,MAAM,gBAAgB,CAAC;AASxB,MAAM,WAAW,uBAAuB;IACtC,6FAA6F;IAC7F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,KAAK,EAAE,WAAW,CAAC;IACnB;;;;;OAKG;IACH,GAAG,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAC3B,mFAAmF;IACnF,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAC;IACpC,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,mFAAmF;IACnF,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,qFAAqF;IACrF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iFAAiF;IACjF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,uFAAuF;IACvF,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACtC;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,8EAA8E;IAC9E,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,OAAY,EACZ,KAAK,EACL,GAAG,EACH,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,KAAY,EACZ,SAAgB,EAChB,UAAqB,EACrB,OAAmB,EACnB,SAAgB,EAChB,SAAgB,EAChB,YAAoB,EACpB,WAAW,EACX,SAAgB,EAChB,OAAkC,EAClC,SAAS,GACV,EAAE,uBAAuB,+BAuDzB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defaultTimeseriesFetcher, latestValue, useTimeseriesQueries } from "./timeseries-query.js";
|
|
1
|
+
import { defaultTimeseriesFetcher, latestValue, soleSeries, useTimeseriesQueries } from "./timeseries-query.js";
|
|
2
2
|
import { seriesStats } from "./gauge-stats.js";
|
|
3
3
|
import { ProgressBars } from "./ProgressBars.js";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -18,18 +18,22 @@ function TimeseriesCoreBars({ baseUrl = "", value, max, unit, title, icon, range
|
|
|
18
18
|
refreshMs,
|
|
19
19
|
fetcher
|
|
20
20
|
});
|
|
21
|
-
const
|
|
21
|
+
const valueRead = soleSeries(value.id, results[0]);
|
|
22
|
+
const maxRead = maxSeries ? soleSeries(maxSeries.id, results[1]) : void 0;
|
|
23
|
+
const error = valueRead.error ?? maxRead?.error ?? null;
|
|
24
|
+
const rawValue = latestValue(valueRead.data);
|
|
22
25
|
const usage = rawValue === void 0 ? void 0 : value.transform ? value.transform(rawValue) : rawValue;
|
|
23
26
|
let limit;
|
|
24
27
|
if (typeof max === "number") limit = max;
|
|
25
28
|
else if (maxSeries) {
|
|
26
|
-
const rawMax = latestValue(
|
|
29
|
+
const rawMax = latestValue(maxRead?.data);
|
|
27
30
|
limit = rawMax === void 0 ? void 0 : maxSeries.transform ? maxSeries.transform(rawMax) : rawMax;
|
|
28
31
|
}
|
|
29
|
-
const stats = seriesStats(
|
|
32
|
+
const stats = seriesStats(valueRead.data?.points, value.transform);
|
|
30
33
|
return /* @__PURE__ */ jsx(ProgressBars, {
|
|
31
34
|
usage,
|
|
32
35
|
stats,
|
|
36
|
+
error,
|
|
33
37
|
title,
|
|
34
38
|
thresholds,
|
|
35
39
|
variant,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimeseriesCoreBars.js","names":[],"sources":["../../src/data/TimeseriesCoreBars.tsx"],"sourcesContent":["import { type StaticIconComponent } from \"./Icon\";\nimport type { GaugeSeries } from \"./TimeseriesGauge\";\nimport type { TimeseriesResponse } from \"./TimeseriesPanel\";\nimport {\n ProgressBars,\n type ProgressBarsOrientation,\n type ProgressBarsUnit,\n type ProgressBarsVariant,\n} from \"./ProgressBars\";\nimport { seriesStats } from \"./gauge-stats\";\nimport {
|
|
1
|
+
{"version":3,"file":"TimeseriesCoreBars.js","names":[],"sources":["../../src/data/TimeseriesCoreBars.tsx"],"sourcesContent":["import { type StaticIconComponent } from \"./Icon\";\nimport type { GaugeSeries } from \"./TimeseriesGauge\";\nimport type { TimeseriesResponse } from \"./TimeseriesPanel\";\nimport {\n ProgressBars,\n type ProgressBarsOrientation,\n type ProgressBarsUnit,\n type ProgressBarsVariant,\n} from \"./ProgressBars\";\nimport { seriesStats } from \"./gauge-stats\";\nimport {\n defaultTimeseriesFetcher,\n latestValue,\n soleSeries,\n useTimeseriesQueries,\n} from \"./timeseries-query\";\n\nexport interface TimeseriesCoreBarsProps {\n /** Common prefix; the value/max requests are `baseUrl + id` (unless a series has `load`). */\n baseUrl?: string;\n /** The metric whose latest value (CPU millicores) fills the bars. */\n value: GaugeSeries;\n /**\n * The capacity. Either a `.limit`-style metric series (its latest value) or a\n * fixed number, in the same raw domain as `value`. Determines the number of\n * bars (one per `unit.perBar`). When omitted or 0, the bar count falls back to\n * the ceiling of the usage so an unbounded reading still renders.\n */\n max?: GaugeSeries | number;\n /** What one bar represents. Defaults to CPU cores (perBar 1000, label \"cores\"). */\n unit?: ProgressBarsUnit;\n title: string;\n /** Iconify name or static icon component shown beside the label. */\n icon?: string | StaticIconComponent;\n /** Look-back window passed as ?since=; defaults to \"1h\". */\n range?: string;\n /** Poll interval in ms; defaults to 5000. Pass 0 to disable polling. */\n refreshMs?: number;\n /**\n * Utilisation thresholds (percent of capacity) at which the fill turns amber\n * then red. Defaults to [75, 90].\n */\n thresholds?: [warning: number, danger: number];\n /** Visual density/layout. `cell` is a compact inline form for table/grid cells. */\n variant?: ProgressBarsVariant;\n /** Show the title text. Icons and values remain visible unless separately hidden. */\n showLabel?: boolean;\n /** Show the value/capacity caption. Icons and bars remain visible when false. */\n showValue?: boolean;\n /**\n * Include the capacity in the caption (\"2.3 / 4 cores\"). Defaults to false — the\n * caption shows only the current value (\"2.3 cores\") since the bars already\n * convey capacity. Set true to append the \"/ <capacity>\".\n */\n showCapacity?: boolean;\n /** Bar direction. Vertical bars fill bottom-up; horizontal bars fill left-to-right. */\n orientation?: ProgressBarsOrientation;\n /**\n * Wrap the bars in a hover card summarising the metric (label + current / min /\n * max / avg / capacity over the window). Defaults to true.\n */\n hoverCard?: boolean;\n /** Override the default fetch (e.g. to route through an app's API client). */\n fetcher?: (url: string) => Promise<TimeseriesResponse>;\n className?: string;\n}\n\n/**\n * TimeseriesCoreBars reads usage and limit live from the timeseries store\n * (mirroring TimeseriesGauge's data plumbing) and renders them as quantised\n * utilisation bars via {@link ProgressBars}. Usage and limit flow through each\n * series' optional `transform`; the hover card summarises current/min/max/avg/\n * capacity over the look-back window.\n */\nexport function TimeseriesCoreBars({\n baseUrl = \"\",\n value,\n max,\n unit,\n title,\n icon,\n range = \"1h\",\n refreshMs = 5000,\n thresholds = [75, 90],\n variant = \"default\",\n showLabel = true,\n showValue = true,\n showCapacity = false,\n orientation,\n hoverCard = true,\n fetcher = defaultTimeseriesFetcher,\n className,\n}: TimeseriesCoreBarsProps) {\n const maxSeries = typeof max === \"object\" ? max : undefined;\n const results = useTimeseriesQueries(maxSeries ? [value, maxSeries] : [value], {\n baseUrl,\n range,\n refreshMs,\n fetcher,\n });\n\n const valueRead = soleSeries(value.id, results[0]);\n const maxRead = maxSeries ? soleSeries(maxSeries.id, results[1]) : undefined;\n const error = valueRead.error ?? maxRead?.error ?? null;\n const rawValue = latestValue(valueRead.data);\n const usage =\n rawValue === undefined\n ? undefined\n : value.transform\n ? value.transform(rawValue)\n : rawValue;\n\n let limit: number | undefined;\n if (typeof max === \"number\") {\n limit = max;\n } else if (maxSeries) {\n const rawMax = latestValue(maxRead?.data);\n limit =\n rawMax === undefined\n ? undefined\n : maxSeries.transform\n ? maxSeries.transform(rawMax)\n : rawMax;\n }\n\n const stats = seriesStats(valueRead.data?.points, value.transform);\n\n return (\n <ProgressBars\n usage={usage}\n stats={stats}\n error={error}\n title={title}\n thresholds={thresholds}\n variant={variant}\n showLabel={showLabel}\n showValue={showValue}\n showCapacity={showCapacity}\n hoverCard={hoverCard}\n hoverFooter={`over last ${range}`}\n {...(limit !== undefined ? { max: limit } : {})}\n {...(unit !== undefined ? { unit } : {})}\n {...(icon !== undefined ? { icon } : {})}\n {...(orientation !== undefined ? { orientation } : {})}\n {...(className !== undefined ? { className } : {})}\n />\n );\n}\n"],"mappings":";;;;;;;;;;;;AA0EA,SAAgB,mBAAmB,EACjC,UAAU,IACV,OACA,KACA,MACA,OACA,MACA,QAAQ,MACR,YAAY,KACZ,aAAa,CAAC,IAAI,EAAE,GACpB,UAAU,WACV,YAAY,MACZ,YAAY,MACZ,eAAe,OACf,aACA,YAAY,MACZ,UAAU,0BACV,aAC0B;CAC1B,MAAM,YAAY,OAAO,QAAQ,WAAW,MAAM,KAAA;CAClD,MAAM,UAAU,qBAAqB,YAAY,CAAC,OAAO,SAAS,IAAI,CAAC,KAAK,GAAG;EAC7E;EACA;EACA;EACA;CACF,CAAC;CAED,MAAM,YAAY,WAAW,MAAM,IAAI,QAAQ,EAAE;CACjD,MAAM,UAAU,YAAY,WAAW,UAAU,IAAI,QAAQ,EAAE,IAAI,KAAA;CACnE,MAAM,QAAQ,UAAU,SAAS,SAAS,SAAS;CACnD,MAAM,WAAW,YAAY,UAAU,IAAI;CAC3C,MAAM,QACJ,aAAa,KAAA,IACT,KAAA,IACA,MAAM,YACJ,MAAM,UAAU,QAAQ,IACxB;CAER,IAAI;CACJ,IAAI,OAAO,QAAQ,UACjB,QAAQ;MACH,IAAI,WAAW;EACpB,MAAM,SAAS,YAAY,SAAS,IAAI;EACxC,QACE,WAAW,KAAA,IACP,KAAA,IACA,UAAU,YACR,UAAU,UAAU,MAAM,IAC1B;CACV;CAEA,MAAM,QAAQ,YAAY,UAAU,MAAM,QAAQ,MAAM,SAAS;CAEjE,OACE,oBAAC,cAAD;EACS;EACA;EACA;EACA;EACK;EACH;EACE;EACA;EACG;EACH;EACX,aAAa,aAAa;EAC1B,GAAK,UAAU,KAAA,IAAY,EAAE,KAAK,MAAM,IAAI,CAAC;EAC7C,GAAK,SAAS,KAAA,IAAY,EAAE,KAAK,IAAI,CAAC;EACtC,GAAK,SAAS,KAAA,IAAY,EAAE,KAAK,IAAI,CAAC;EACtC,GAAK,gBAAgB,KAAA,IAAY,EAAE,YAAY,IAAI,CAAC;EACpD,GAAK,cAAc,KAAA,IAAY,EAAE,UAAU,IAAI,CAAC;CACjD,CAAA;AAEL"}
|
|
@@ -88,13 +88,16 @@ function TimeseriesGauge({ baseUrl = "", value, max, title, icon, unit, range =
|
|
|
88
88
|
refreshMs,
|
|
89
89
|
fetcher
|
|
90
90
|
});
|
|
91
|
-
const
|
|
91
|
+
const valueRead = require_timeseries_query.soleSeries(value.id, results[0]);
|
|
92
|
+
const maxRead = maxSeries ? require_timeseries_query.soleSeries(maxSeries.id, results[1]) : void 0;
|
|
93
|
+
const error = valueRead.error ?? maxRead?.error ?? null;
|
|
94
|
+
const rawValue = require_timeseries_query.latestValue(valueRead.data);
|
|
92
95
|
const hasValue = rawValue !== void 0;
|
|
93
96
|
const usage = value.transform ? value.transform(rawValue ?? 0) : rawValue ?? 0;
|
|
94
97
|
let limit;
|
|
95
98
|
if (typeof max === "number") limit = max;
|
|
96
99
|
else if (maxSeries) {
|
|
97
|
-
const rawMax = require_timeseries_query.latestValue(
|
|
100
|
+
const rawMax = require_timeseries_query.latestValue(maxRead?.data);
|
|
98
101
|
limit = rawMax === void 0 ? void 0 : maxSeries.transform ? maxSeries.transform(rawMax) : rawMax;
|
|
99
102
|
}
|
|
100
103
|
const bounded = hasValue && limit !== void 0 && limit > 0;
|
|
@@ -102,7 +105,7 @@ function TimeseriesGauge({ baseUrl = "", value, max, title, icon, unit, range =
|
|
|
102
105
|
const tone = toneClass(pct, thresholds);
|
|
103
106
|
const toneBg = toneBgClass(pct, thresholds);
|
|
104
107
|
const readout = centerDisplay === "percent" ? bounded ? `${pct}%` : hasValue ? "n/a" : "—" : hasValue ? require_format.formatUnit(usage, unit) : "—";
|
|
105
|
-
const titleText = `${title}: ${readout}`;
|
|
108
|
+
const titleText = `${title}: ${error ? error.message : readout}`;
|
|
106
109
|
const canExpand = expandable && variant === "default";
|
|
107
110
|
const readoutTone = bounded ? tone : "text-foreground";
|
|
108
111
|
const chartSeries = (0, react.useMemo)(() => {
|
|
@@ -116,9 +119,13 @@ function TimeseriesGauge({ baseUrl = "", value, max, title, icon, unit, range =
|
|
|
116
119
|
});
|
|
117
120
|
return s;
|
|
118
121
|
}, [value, maxSeries]);
|
|
119
|
-
const stats = require_gauge_stats.seriesStats(
|
|
122
|
+
const stats = require_gauge_stats.seriesStats(valueRead.data?.points, value.transform);
|
|
120
123
|
const fmt = (n) => require_format.formatUnit(n, unit);
|
|
121
|
-
const hoverRows =
|
|
124
|
+
const hoverRows = error ? [{
|
|
125
|
+
label: "Error",
|
|
126
|
+
value: error.message,
|
|
127
|
+
tone: "text-red-500"
|
|
128
|
+
}] : hasValue ? [
|
|
122
129
|
{
|
|
123
130
|
label: "Current",
|
|
124
131
|
value: fmt(usage),
|