@flanksource/clicky-ui 0.3.55 → 0.3.57
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/ErrorWrapper.cjs +15 -4
- package/dist/components/ErrorWrapper.cjs.map +1 -1
- package/dist/components/ErrorWrapper.d.ts +7 -0
- package/dist/components/ErrorWrapper.d.ts.map +1 -1
- package/dist/components/ErrorWrapper.js +15 -4
- package/dist/components/ErrorWrapper.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/PromptCatalog/PromptLayerStrip.cjs +6 -3
- package/dist/data/ai/PromptCatalog/PromptLayerStrip.cjs.map +1 -1
- package/dist/data/ai/PromptCatalog/PromptLayerStrip.js +6 -3
- package/dist/data/ai/PromptCatalog/PromptLayerStrip.js.map +1 -1
- package/dist/data/ai/PromptCatalog/PromptPage.cjs +2 -1
- package/dist/data/ai/PromptCatalog/PromptPage.cjs.map +1 -1
- package/dist/data/ai/PromptCatalog/PromptPage.d.ts.map +1 -1
- package/dist/data/ai/PromptCatalog/PromptPage.js +2 -1
- package/dist/data/ai/PromptCatalog/PromptPage.js.map +1 -1
- package/dist/data/ai/PromptCatalog/PromptPageHeader.cjs +9 -6
- package/dist/data/ai/PromptCatalog/PromptPageHeader.cjs.map +1 -1
- package/dist/data/ai/PromptCatalog/PromptPageHeader.d.ts.map +1 -1
- package/dist/data/ai/PromptCatalog/PromptPageHeader.js +9 -6
- package/dist/data/ai/PromptCatalog/PromptPageHeader.js.map +1 -1
- package/dist/data/ai/PromptCatalog/PromptPageSaveBar.cjs +3 -3
- package/dist/data/ai/PromptCatalog/PromptPageSaveBar.cjs.map +1 -1
- package/dist/data/ai/PromptCatalog/PromptPageSaveBar.d.ts +2 -1
- package/dist/data/ai/PromptCatalog/PromptPageSaveBar.d.ts.map +1 -1
- package/dist/data/ai/PromptCatalog/PromptPageSaveBar.js +3 -3
- package/dist/data/ai/PromptCatalog/PromptPageSaveBar.js.map +1 -1
- package/dist/data/ai/PromptCatalog/prompt-page-model.cjs +4 -3
- package/dist/data/ai/PromptCatalog/prompt-page-model.cjs.map +1 -1
- package/dist/data/ai/PromptCatalog/prompt-page-model.d.ts +1 -1
- package/dist/data/ai/PromptCatalog/prompt-page-model.d.ts.map +1 -1
- package/dist/data/ai/PromptCatalog/prompt-page-model.js +4 -3
- package/dist/data/ai/PromptCatalog/prompt-page-model.js.map +1 -1
- package/dist/data/ai/PromptCatalog/types.d.ts +1 -0
- package/dist/data/ai/PromptCatalog/types.d.ts.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 +8 -1
- package/dist/data/traces/index.d.ts.map +1 -1
- package/dist/data/traces/otel/OperationList.cjs +64 -0
- package/dist/data/traces/otel/OperationList.cjs.map +1 -0
- package/dist/data/traces/otel/OperationList.d.ts +10 -0
- package/dist/data/traces/otel/OperationList.d.ts.map +1 -0
- package/dist/data/traces/otel/OperationList.js +64 -0
- package/dist/data/traces/otel/OperationList.js.map +1 -0
- package/dist/data/traces/otel/OtelTraceDetail.cjs +781 -0
- package/dist/data/traces/otel/OtelTraceDetail.cjs.map +1 -0
- package/dist/data/traces/otel/OtelTraceDetail.d.ts +7 -0
- package/dist/data/traces/otel/OtelTraceDetail.d.ts.map +1 -0
- package/dist/data/traces/otel/OtelTraceDetail.js +781 -0
- package/dist/data/traces/otel/OtelTraceDetail.js.map +1 -0
- package/dist/data/traces/otel/OtelTraceSearch.cjs +145 -0
- package/dist/data/traces/otel/OtelTraceSearch.cjs.map +1 -0
- package/dist/data/traces/otel/OtelTraceSearch.d.ts +16 -0
- package/dist/data/traces/otel/OtelTraceSearch.d.ts.map +1 -0
- package/dist/data/traces/otel/OtelTraceSearch.js +145 -0
- package/dist/data/traces/otel/OtelTraceSearch.js.map +1 -0
- package/dist/data/traces/otel/OtelTraceTable.cjs +47 -0
- package/dist/data/traces/otel/OtelTraceTable.cjs.map +1 -0
- package/dist/data/traces/otel/OtelTraceTable.d.ts +12 -0
- package/dist/data/traces/otel/OtelTraceTable.d.ts.map +1 -0
- package/dist/data/traces/otel/OtelTraceTable.js +47 -0
- package/dist/data/traces/otel/OtelTraceTable.js.map +1 -0
- package/dist/data/traces/otel/QueryBar.cjs +158 -0
- package/dist/data/traces/otel/QueryBar.cjs.map +1 -0
- package/dist/data/traces/otel/QueryBar.d.ts +12 -0
- package/dist/data/traces/otel/QueryBar.d.ts.map +1 -0
- package/dist/data/traces/otel/QueryBar.js +158 -0
- package/dist/data/traces/otel/QueryBar.js.map +1 -0
- package/dist/data/traces/otel/SpanCards.cjs +264 -0
- package/dist/data/traces/otel/SpanCards.cjs.map +1 -0
- package/dist/data/traces/otel/SpanCards.d.ts +17 -0
- package/dist/data/traces/otel/SpanCards.d.ts.map +1 -0
- package/dist/data/traces/otel/SpanCards.js +261 -0
- package/dist/data/traces/otel/SpanCards.js.map +1 -0
- package/dist/data/traces/otel/SpanCategory.cjs +18 -0
- package/dist/data/traces/otel/SpanCategory.cjs.map +1 -0
- package/dist/data/traces/otel/SpanCategory.d.ts +7 -0
- package/dist/data/traces/otel/SpanCategory.d.ts.map +1 -0
- package/dist/data/traces/otel/SpanCategory.js +18 -0
- package/dist/data/traces/otel/SpanCategory.js.map +1 -0
- package/dist/data/traces/otel/TraceResults.cjs +195 -0
- package/dist/data/traces/otel/TraceResults.cjs.map +1 -0
- package/dist/data/traces/otel/TraceResults.d.ts +19 -0
- package/dist/data/traces/otel/TraceResults.d.ts.map +1 -0
- package/dist/data/traces/otel/TraceResults.js +193 -0
- package/dist/data/traces/otel/TraceResults.js.map +1 -0
- package/dist/data/traces/otel/api.cjs +36 -0
- package/dist/data/traces/otel/api.cjs.map +1 -0
- package/dist/data/traces/otel/api.d.ts +87 -0
- package/dist/data/traces/otel/api.d.ts.map +1 -0
- package/dist/data/traces/otel/api.js +33 -0
- package/dist/data/traces/otel/api.js.map +1 -0
- package/dist/data/traces/otel/fixtures.d.ts +4 -0
- package/dist/data/traces/otel/fixtures.d.ts.map +1 -0
- package/dist/data/traces/otel/metrics.cjs +7 -0
- package/dist/data/traces/otel/metrics.cjs.map +1 -0
- package/dist/data/traces/otel/metrics.d.ts +2 -0
- package/dist/data/traces/otel/metrics.d.ts.map +1 -0
- package/dist/data/traces/otel/metrics.js +7 -0
- package/dist/data/traces/otel/metrics.js.map +1 -0
- package/dist/data/traces/otel/model.cjs +167 -0
- package/dist/data/traces/otel/model.cjs.map +1 -0
- package/dist/data/traces/otel/model.d.ts +81 -0
- package/dist/data/traces/otel/model.d.ts.map +1 -0
- package/dist/data/traces/otel/model.js +154 -0
- package/dist/data/traces/otel/model.js.map +1 -0
- package/dist/data/traces/otel/query.cjs +90 -0
- package/dist/data/traces/otel/query.cjs.map +1 -0
- package/dist/data/traces/otel/query.d.ts +20 -0
- package/dist/data/traces/otel/query.d.ts.map +1 -0
- package/dist/data/traces/otel/query.js +86 -0
- package/dist/data/traces/otel/query.js.map +1 -0
- package/dist/data/traces/otel/result-model.cjs +25 -0
- package/dist/data/traces/otel/result-model.cjs.map +1 -0
- package/dist/data/traces/otel/result-model.d.ts +5 -0
- package/dist/data/traces/otel/result-model.d.ts.map +1 -0
- package/dist/data/traces/otel/result-model.js +24 -0
- package/dist/data/traces/otel/result-model.js.map +1 -0
- package/dist/data/traces/otel/source.cjs +11 -0
- package/dist/data/traces/otel/source.cjs.map +1 -0
- package/dist/data/traces/otel/source.d.ts +5 -0
- package/dist/data/traces/otel/source.d.ts.map +1 -0
- package/dist/data/traces/otel/source.js +10 -0
- package/dist/data/traces/otel/source.js.map +1 -0
- package/dist/data/traces/otel/span-traces.cjs +39 -0
- package/dist/data/traces/otel/span-traces.cjs.map +1 -0
- package/dist/data/traces/otel/span-traces.d.ts +3 -0
- package/dist/data/traces/otel/span-traces.d.ts.map +1 -0
- package/dist/data/traces/otel/span-traces.js +39 -0
- package/dist/data/traces/otel/span-traces.js.map +1 -0
- 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 +68 -6
- package/dist/data.d.ts +9 -1
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +32 -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 +86 -7
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +40 -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 +6 -2
- package/dist/profiles/editor/profileEditorSections.cjs.map +1 -1
- package/dist/profiles/editor/profileEditorSections.d.ts.map +1 -1
- package/dist/profiles/editor/profileEditorSections.js +6 -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,115 @@
|
|
|
1
|
+
// src/data/charts/chart-scale.ts
|
|
2
|
+
/**
|
|
3
|
+
* Average glyph advance at the chart font size. There is no layout engine in a
|
|
4
|
+
* static render, so text is measured by estimate; 0.6em over-estimates typical
|
|
5
|
+
* sans-serif digits and letters, which errs toward thinning rather than overlap.
|
|
6
|
+
*/
|
|
7
|
+
var CHAR_WIDTH = 6.6;
|
|
8
|
+
var LABEL_GAP = 6;
|
|
9
|
+
function textWidth(text) {
|
|
10
|
+
return text.length * CHAR_WIDTH;
|
|
11
|
+
}
|
|
12
|
+
/** Rounds geometry to 2dp so the emitted markup is short and deterministic. */
|
|
13
|
+
function px(value) {
|
|
14
|
+
return Math.round(value * 100) / 100;
|
|
15
|
+
}
|
|
16
|
+
function niceNumber(value, round) {
|
|
17
|
+
const exponent = Math.floor(Math.log10(value));
|
|
18
|
+
const fraction = value / 10 ** exponent;
|
|
19
|
+
let nice;
|
|
20
|
+
if (round) nice = fraction < 1.5 ? 1 : fraction < 3 ? 2 : fraction < 7 ? 5 : 10;
|
|
21
|
+
else nice = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;
|
|
22
|
+
return nice * 10 ** exponent;
|
|
23
|
+
}
|
|
24
|
+
/** Heckbert's nice axis ticks covering [min, max], about five of them. */
|
|
25
|
+
function niceTicks(min, max) {
|
|
26
|
+
if (!Number.isFinite(min) || !Number.isFinite(max) || min > max) throw new Error(`niceTicks: invalid range ${min}..${max}`);
|
|
27
|
+
const top = max === min ? min + 1 : max;
|
|
28
|
+
const step = niceNumber(niceNumber(top - min, false) / 4, true);
|
|
29
|
+
const decimals = Math.max(0, -Math.floor(Math.log10(step)));
|
|
30
|
+
const first = Math.floor(min / step) * step;
|
|
31
|
+
const last = Math.ceil(top / step) * step;
|
|
32
|
+
const ticks = [];
|
|
33
|
+
for (let i = 0; first + i * step <= last + step / 2; i++) ticks.push(Number((first + i * step).toFixed(decimals)) + 0);
|
|
34
|
+
return ticks;
|
|
35
|
+
}
|
|
36
|
+
/** Keeps the first `maxBars - 1` rows and sums the tail into one "Other" row. */
|
|
37
|
+
function foldTail(rows, maxBars) {
|
|
38
|
+
if (maxBars === void 0) return [...rows];
|
|
39
|
+
if (!Number.isInteger(maxBars) || maxBars < 2) throw new Error(`maxBars must be an integer ≥ 2, got ${maxBars}`);
|
|
40
|
+
if (rows.length <= maxBars) return [...rows];
|
|
41
|
+
const tail = rows.slice(maxBars - 1);
|
|
42
|
+
return [...rows.slice(0, maxBars - 1), {
|
|
43
|
+
label: "Other",
|
|
44
|
+
value: tail.reduce((sum, row) => sum + row.value, 0),
|
|
45
|
+
folded: tail.length
|
|
46
|
+
}];
|
|
47
|
+
}
|
|
48
|
+
/** Every how many slots a label can be drawn without colliding with the next shown one. */
|
|
49
|
+
function labelStep(labels, slotWidth) {
|
|
50
|
+
const widest = Math.max(0, ...labels.map(textWidth)) + LABEL_GAP;
|
|
51
|
+
return Math.max(1, Math.ceil(widest / slotWidth));
|
|
52
|
+
}
|
|
53
|
+
/** The x for a middle-anchored label that keeps the whole label inside [0, width]. */
|
|
54
|
+
function clampLabelX(center, label, width) {
|
|
55
|
+
const half = textWidth(label) / 2;
|
|
56
|
+
return px(Math.min(Math.max(center, half), width - half));
|
|
57
|
+
}
|
|
58
|
+
function truncateLabel(label, maxWidth) {
|
|
59
|
+
if (textWidth(label) <= maxWidth) return label;
|
|
60
|
+
const keep = Math.max(1, Math.floor(maxWidth / CHAR_WIDTH) - 1);
|
|
61
|
+
return `${label.slice(0, keep)}…`;
|
|
62
|
+
}
|
|
63
|
+
var MONTHS = [
|
|
64
|
+
"Jan",
|
|
65
|
+
"Feb",
|
|
66
|
+
"Mar",
|
|
67
|
+
"Apr",
|
|
68
|
+
"May",
|
|
69
|
+
"Jun",
|
|
70
|
+
"Jul",
|
|
71
|
+
"Aug",
|
|
72
|
+
"Sep",
|
|
73
|
+
"Oct",
|
|
74
|
+
"Nov",
|
|
75
|
+
"Dec"
|
|
76
|
+
];
|
|
77
|
+
var ISO_DATE = /^(\d{4})-(\d{2})-(\d{2})(?:$|T)/;
|
|
78
|
+
/**
|
|
79
|
+
* Default x label: an ISO date becomes "Aug 16" (read from the string, not via
|
|
80
|
+
* Date, so the output does not depend on the render's timezone); anything else
|
|
81
|
+
* is shown as given.
|
|
82
|
+
*/
|
|
83
|
+
function formatChartX(x) {
|
|
84
|
+
const match = ISO_DATE.exec(x);
|
|
85
|
+
if (!match) return x;
|
|
86
|
+
const month = MONTHS[Number(match[2]) - 1];
|
|
87
|
+
if (!month) throw new Error(`formatChartX: invalid month in ${x}`);
|
|
88
|
+
return `${month} ${Number(match[3])}`;
|
|
89
|
+
}
|
|
90
|
+
var VALUE_FORMAT = new Intl.NumberFormat("en-US", { maximumFractionDigits: 2 });
|
|
91
|
+
/** Default value label: grouped, up to 2 decimals, locale-independent. */
|
|
92
|
+
function formatChartValue(value) {
|
|
93
|
+
return VALUE_FORMAT.format(value);
|
|
94
|
+
}
|
|
95
|
+
function assertChartSize(component, width, height) {
|
|
96
|
+
if (!Number.isFinite(width) || width <= 0) throw new Error(`${component}: width must be a positive number, got ${width}`);
|
|
97
|
+
if (height !== void 0 && (!Number.isFinite(height) || height <= 0)) throw new Error(`${component}: height must be a positive number, got ${height}`);
|
|
98
|
+
}
|
|
99
|
+
function assertFinite(component, label, value) {
|
|
100
|
+
if (!Number.isFinite(value)) throw new Error(`${component}: value for "${label}" must be finite, got ${value}`);
|
|
101
|
+
}
|
|
102
|
+
exports.CHAR_WIDTH = CHAR_WIDTH;
|
|
103
|
+
exports.assertChartSize = assertChartSize;
|
|
104
|
+
exports.assertFinite = assertFinite;
|
|
105
|
+
exports.clampLabelX = clampLabelX;
|
|
106
|
+
exports.foldTail = foldTail;
|
|
107
|
+
exports.formatChartValue = formatChartValue;
|
|
108
|
+
exports.formatChartX = formatChartX;
|
|
109
|
+
exports.labelStep = labelStep;
|
|
110
|
+
exports.niceTicks = niceTicks;
|
|
111
|
+
exports.px = px;
|
|
112
|
+
exports.textWidth = textWidth;
|
|
113
|
+
exports.truncateLabel = truncateLabel;
|
|
114
|
+
|
|
115
|
+
//# sourceMappingURL=chart-scale.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chart-scale.cjs","names":[],"sources":["../../../src/data/charts/chart-scale.ts"],"sourcesContent":["import { CHART_FONT_SIZE } from \"./chart-palette\";\n\n/**\n * Average glyph advance at the chart font size. There is no layout engine in a\n * static render, so text is measured by estimate; 0.6em over-estimates typical\n * sans-serif digits and letters, which errs toward thinning rather than overlap.\n */\nexport const CHAR_WIDTH = CHART_FONT_SIZE * 0.6;\nconst LABEL_GAP = 6;\n\nexport function textWidth(text: string): number {\n return text.length * CHAR_WIDTH;\n}\n\n/** Rounds geometry to 2dp so the emitted markup is short and deterministic. */\nexport function px(value: number): number {\n return Math.round(value * 100) / 100;\n}\n\nfunction niceNumber(value: number, round: boolean): number {\n const exponent = Math.floor(Math.log10(value));\n const fraction = value / 10 ** exponent;\n let nice: number;\n if (round) nice = fraction < 1.5 ? 1 : fraction < 3 ? 2 : fraction < 7 ? 5 : 10;\n else nice = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return nice * 10 ** exponent;\n}\n\n/** Heckbert's nice axis ticks covering [min, max], about five of them. */\nexport function niceTicks(min: number, max: number): number[] {\n if (!Number.isFinite(min) || !Number.isFinite(max) || min > max) {\n throw new Error(`niceTicks: invalid range ${min}..${max}`);\n }\n const top = max === min ? min + 1 : max;\n const step = niceNumber(niceNumber(top - min, false) / 4, true);\n const decimals = Math.max(0, -Math.floor(Math.log10(step)));\n const first = Math.floor(min / step) * step;\n const last = Math.ceil(top / step) * step;\n const ticks: number[] = [];\n for (let i = 0; first + i * step <= last + step / 2; i++) {\n ticks.push(Number((first + i * step).toFixed(decimals)) + 0);\n }\n return ticks;\n}\n\nexport type FoldedRow<T> = T | { label: string; value: number; folded: number };\n\n/** Keeps the first `maxBars - 1` rows and sums the tail into one \"Other\" row. */\nexport function foldTail<T extends { label: string; value: number }>(\n rows: readonly T[],\n maxBars: number | undefined,\n): FoldedRow<T>[] {\n if (maxBars === undefined) return [...rows];\n if (!Number.isInteger(maxBars) || maxBars < 2) {\n throw new Error(`maxBars must be an integer ≥ 2, got ${maxBars}`);\n }\n if (rows.length <= maxBars) return [...rows];\n const tail = rows.slice(maxBars - 1);\n return [\n ...rows.slice(0, maxBars - 1),\n { label: \"Other\", value: tail.reduce((sum, row) => sum + row.value, 0), folded: tail.length },\n ];\n}\n\n/** Every how many slots a label can be drawn without colliding with the next shown one. */\nexport function labelStep(labels: readonly string[], slotWidth: number): number {\n const widest = Math.max(0, ...labels.map(textWidth)) + LABEL_GAP;\n return Math.max(1, Math.ceil(widest / slotWidth));\n}\n\n/** Height below the plot reserved for x labels, so they clear the 0 tick label. */\nexport const X_AXIS_BAND = 22;\n/** Distance from the chart's bottom edge to the x label baseline. */\nexport const X_LABEL_INSET = 6;\n\n/** The x for a middle-anchored label that keeps the whole label inside [0, width]. */\nexport function clampLabelX(center: number, label: string, width: number): number {\n const half = textWidth(label) / 2;\n return px(Math.min(Math.max(center, half), width - half));\n}\n\nexport function truncateLabel(label: string, maxWidth: number): string {\n if (textWidth(label) <= maxWidth) return label;\n const keep = Math.max(1, Math.floor(maxWidth / CHAR_WIDTH) - 1);\n return `${label.slice(0, keep)}…`;\n}\n\nconst MONTHS = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\nconst ISO_DATE = /^(\\d{4})-(\\d{2})-(\\d{2})(?:$|T)/;\n\n/**\n * Default x label: an ISO date becomes \"Aug 16\" (read from the string, not via\n * Date, so the output does not depend on the render's timezone); anything else\n * is shown as given.\n */\nexport function formatChartX(x: string): string {\n const match = ISO_DATE.exec(x);\n if (!match) return x;\n const month = MONTHS[Number(match[2]) - 1];\n if (!month) throw new Error(`formatChartX: invalid month in ${x}`);\n return `${month} ${Number(match[3])}`;\n}\n\nconst VALUE_FORMAT = new Intl.NumberFormat(\"en-US\", { maximumFractionDigits: 2 });\n\n/** Default value label: grouped, up to 2 decimals, locale-independent. */\nexport function formatChartValue(value: number): string {\n return VALUE_FORMAT.format(value);\n}\n\nexport function assertChartSize(component: string, width: number, height?: number): void {\n if (!Number.isFinite(width) || width <= 0) throw new Error(`${component}: width must be a positive number, got ${width}`);\n if (height !== undefined && (!Number.isFinite(height) || height <= 0)) {\n throw new Error(`${component}: height must be a positive number, got ${height}`);\n }\n}\n\nexport function assertFinite(component: string, label: string, value: number): void {\n if (!Number.isFinite(value)) throw new Error(`${component}: value for \"${label}\" must be finite, got ${value}`);\n}\n"],"mappings":";;;;;;AAOA,IAAa,aAAA;AACb,IAAM,YAAY;AAElB,SAAgB,UAAU,MAAsB;CAC9C,OAAO,KAAK,SAAS;AACvB;;AAGA,SAAgB,GAAG,OAAuB;CACxC,OAAO,KAAK,MAAM,QAAQ,GAAG,IAAI;AACnC;AAEA,SAAS,WAAW,OAAe,OAAwB;CACzD,MAAM,WAAW,KAAK,MAAM,KAAK,MAAM,KAAK,CAAC;CAC7C,MAAM,WAAW,QAAQ,MAAM;CAC/B,IAAI;CACJ,IAAI,OAAO,OAAO,WAAW,MAAM,IAAI,WAAW,IAAI,IAAI,WAAW,IAAI,IAAI;MACxE,OAAO,YAAY,IAAI,IAAI,YAAY,IAAI,IAAI,YAAY,IAAI,IAAI;CACxE,OAAO,OAAO,MAAM;AACtB;;AAGA,SAAgB,UAAU,KAAa,KAAuB;CAC5D,IAAI,CAAC,OAAO,SAAS,GAAG,KAAK,CAAC,OAAO,SAAS,GAAG,KAAK,MAAM,KAC1D,MAAM,IAAI,MAAM,4BAA4B,IAAI,IAAI,KAAK;CAE3D,MAAM,MAAM,QAAQ,MAAM,MAAM,IAAI;CACpC,MAAM,OAAO,WAAW,WAAW,MAAM,KAAK,KAAK,IAAI,GAAG,IAAI;CAC9D,MAAM,WAAW,KAAK,IAAI,GAAG,CAAC,KAAK,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC;CAC1D,MAAM,QAAQ,KAAK,MAAM,MAAM,IAAI,IAAI;CACvC,MAAM,OAAO,KAAK,KAAK,MAAM,IAAI,IAAI;CACrC,MAAM,QAAkB,CAAC;CACzB,KAAK,IAAI,IAAI,GAAG,QAAQ,IAAI,QAAQ,OAAO,OAAO,GAAG,KACnD,MAAM,KAAK,QAAQ,QAAQ,IAAI,KAAA,CAAM,QAAQ,QAAQ,CAAC,IAAI,CAAC;CAE7D,OAAO;AACT;;AAKA,SAAgB,SACd,MACA,SACgB;CAChB,IAAI,YAAY,KAAA,GAAW,OAAO,CAAC,GAAG,IAAI;CAC1C,IAAI,CAAC,OAAO,UAAU,OAAO,KAAK,UAAU,GAC1C,MAAM,IAAI,MAAM,uCAAuC,SAAS;CAElE,IAAI,KAAK,UAAU,SAAS,OAAO,CAAC,GAAG,IAAI;CAC3C,MAAM,OAAO,KAAK,MAAM,UAAU,CAAC;CACnC,OAAO,CACL,GAAG,KAAK,MAAM,GAAG,UAAU,CAAC,GAC5B;EAAE,OAAO;EAAS,OAAO,KAAK,QAAQ,KAAK,QAAQ,MAAM,IAAI,OAAO,CAAC;EAAG,QAAQ,KAAK;CAAO,CAC9F;AACF;;AAGA,SAAgB,UAAU,QAA2B,WAA2B;CAC9E,MAAM,SAAS,KAAK,IAAI,GAAG,GAAG,OAAO,IAAI,SAAS,CAAC,IAAI;CACvD,OAAO,KAAK,IAAI,GAAG,KAAK,KAAK,SAAS,SAAS,CAAC;AAClD;;AAQA,SAAgB,YAAY,QAAgB,OAAe,OAAuB;CAChF,MAAM,OAAO,UAAU,KAAK,IAAI;CAChC,OAAO,GAAG,KAAK,IAAI,KAAK,IAAI,QAAQ,IAAI,GAAG,QAAQ,IAAI,CAAC;AAC1D;AAEA,SAAgB,cAAc,OAAe,UAA0B;CACrE,IAAI,UAAU,KAAK,KAAK,UAAU,OAAO;CACzC,MAAM,OAAO,KAAK,IAAI,GAAG,KAAK,MAAM,WAAW,UAAU,IAAI,CAAC;CAC9D,OAAO,GAAG,MAAM,MAAM,GAAG,IAAI,EAAE;AACjC;AAEA,IAAM,SAAS;CAAC;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;AAAK;AAClG,IAAM,WAAW;;;;;;AAOjB,SAAgB,aAAa,GAAmB;CAC9C,MAAM,QAAQ,SAAS,KAAK,CAAC;CAC7B,IAAI,CAAC,OAAO,OAAO;CACnB,MAAM,QAAQ,OAAO,OAAO,MAAM,EAAE,IAAI;CACxC,IAAI,CAAC,OAAO,MAAM,IAAI,MAAM,kCAAkC,GAAG;CACjE,OAAO,GAAG,MAAM,GAAG,OAAO,MAAM,EAAE;AACpC;AAEA,IAAM,eAAe,IAAI,KAAK,aAAa,SAAS,EAAE,uBAAuB,EAAE,CAAC;;AAGhF,SAAgB,iBAAiB,OAAuB;CACtD,OAAO,aAAa,OAAO,KAAK;AAClC;AAEA,SAAgB,gBAAgB,WAAmB,OAAe,QAAuB;CACvF,IAAI,CAAC,OAAO,SAAS,KAAK,KAAK,SAAS,GAAG,MAAM,IAAI,MAAM,GAAG,UAAU,yCAAyC,OAAO;CACxH,IAAI,WAAW,KAAA,MAAc,CAAC,OAAO,SAAS,MAAM,KAAK,UAAU,IACjE,MAAM,IAAI,MAAM,GAAG,UAAU,0CAA0C,QAAQ;AAEnF;AAEA,SAAgB,aAAa,WAAmB,OAAe,OAAqB;CAClF,IAAI,CAAC,OAAO,SAAS,KAAK,GAAG,MAAM,IAAI,MAAM,GAAG,UAAU,eAAe,MAAM,wBAAwB,OAAO;AAChH"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Average glyph advance at the chart font size. There is no layout engine in a
|
|
3
|
+
* static render, so text is measured by estimate; 0.6em over-estimates typical
|
|
4
|
+
* sans-serif digits and letters, which errs toward thinning rather than overlap.
|
|
5
|
+
*/
|
|
6
|
+
export declare const CHAR_WIDTH: number;
|
|
7
|
+
export declare function textWidth(text: string): number;
|
|
8
|
+
/** Rounds geometry to 2dp so the emitted markup is short and deterministic. */
|
|
9
|
+
export declare function px(value: number): number;
|
|
10
|
+
/** Heckbert's nice axis ticks covering [min, max], about five of them. */
|
|
11
|
+
export declare function niceTicks(min: number, max: number): number[];
|
|
12
|
+
export type FoldedRow<T> = T | {
|
|
13
|
+
label: string;
|
|
14
|
+
value: number;
|
|
15
|
+
folded: number;
|
|
16
|
+
};
|
|
17
|
+
/** Keeps the first `maxBars - 1` rows and sums the tail into one "Other" row. */
|
|
18
|
+
export declare function foldTail<T extends {
|
|
19
|
+
label: string;
|
|
20
|
+
value: number;
|
|
21
|
+
}>(rows: readonly T[], maxBars: number | undefined): FoldedRow<T>[];
|
|
22
|
+
/** Every how many slots a label can be drawn without colliding with the next shown one. */
|
|
23
|
+
export declare function labelStep(labels: readonly string[], slotWidth: number): number;
|
|
24
|
+
/** Height below the plot reserved for x labels, so they clear the 0 tick label. */
|
|
25
|
+
export declare const X_AXIS_BAND = 22;
|
|
26
|
+
/** Distance from the chart's bottom edge to the x label baseline. */
|
|
27
|
+
export declare const X_LABEL_INSET = 6;
|
|
28
|
+
/** The x for a middle-anchored label that keeps the whole label inside [0, width]. */
|
|
29
|
+
export declare function clampLabelX(center: number, label: string, width: number): number;
|
|
30
|
+
export declare function truncateLabel(label: string, maxWidth: number): string;
|
|
31
|
+
/**
|
|
32
|
+
* Default x label: an ISO date becomes "Aug 16" (read from the string, not via
|
|
33
|
+
* Date, so the output does not depend on the render's timezone); anything else
|
|
34
|
+
* is shown as given.
|
|
35
|
+
*/
|
|
36
|
+
export declare function formatChartX(x: string): string;
|
|
37
|
+
/** Default value label: grouped, up to 2 decimals, locale-independent. */
|
|
38
|
+
export declare function formatChartValue(value: number): string;
|
|
39
|
+
export declare function assertChartSize(component: string, width: number, height?: number): void;
|
|
40
|
+
export declare function assertFinite(component: string, label: string, value: number): void;
|
|
41
|
+
//# sourceMappingURL=chart-scale.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chart-scale.d.ts","sourceRoot":"","sources":["../../../src/data/charts/chart-scale.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,UAAU,QAAwB,CAAC;AAGhD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED,+EAA+E;AAC/E,wBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAExC;AAWD,0EAA0E;AAC1E,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAc5D;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhF,iFAAiF;AACjF,wBAAgB,QAAQ,CAAC,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EACjE,IAAI,EAAE,SAAS,CAAC,EAAE,EAClB,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,SAAS,CAAC,CAAC,CAAC,EAAE,CAWhB;AAED,2FAA2F;AAC3F,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAG9E;AAED,mFAAmF;AACnF,eAAO,MAAM,WAAW,KAAK,CAAC;AAC9B,qEAAqE;AACrE,eAAO,MAAM,aAAa,IAAI,CAAC;AAE/B,sFAAsF;AACtF,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAGhF;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAIrE;AAKD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAM9C;AAID,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAKvF;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAElF"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
// src/data/charts/chart-scale.ts
|
|
2
|
+
/**
|
|
3
|
+
* Average glyph advance at the chart font size. There is no layout engine in a
|
|
4
|
+
* static render, so text is measured by estimate; 0.6em over-estimates typical
|
|
5
|
+
* sans-serif digits and letters, which errs toward thinning rather than overlap.
|
|
6
|
+
*/
|
|
7
|
+
var CHAR_WIDTH = 6.6;
|
|
8
|
+
var LABEL_GAP = 6;
|
|
9
|
+
function textWidth(text) {
|
|
10
|
+
return text.length * CHAR_WIDTH;
|
|
11
|
+
}
|
|
12
|
+
/** Rounds geometry to 2dp so the emitted markup is short and deterministic. */
|
|
13
|
+
function px(value) {
|
|
14
|
+
return Math.round(value * 100) / 100;
|
|
15
|
+
}
|
|
16
|
+
function niceNumber(value, round) {
|
|
17
|
+
const exponent = Math.floor(Math.log10(value));
|
|
18
|
+
const fraction = value / 10 ** exponent;
|
|
19
|
+
let nice;
|
|
20
|
+
if (round) nice = fraction < 1.5 ? 1 : fraction < 3 ? 2 : fraction < 7 ? 5 : 10;
|
|
21
|
+
else nice = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;
|
|
22
|
+
return nice * 10 ** exponent;
|
|
23
|
+
}
|
|
24
|
+
/** Heckbert's nice axis ticks covering [min, max], about five of them. */
|
|
25
|
+
function niceTicks(min, max) {
|
|
26
|
+
if (!Number.isFinite(min) || !Number.isFinite(max) || min > max) throw new Error(`niceTicks: invalid range ${min}..${max}`);
|
|
27
|
+
const top = max === min ? min + 1 : max;
|
|
28
|
+
const step = niceNumber(niceNumber(top - min, false) / 4, true);
|
|
29
|
+
const decimals = Math.max(0, -Math.floor(Math.log10(step)));
|
|
30
|
+
const first = Math.floor(min / step) * step;
|
|
31
|
+
const last = Math.ceil(top / step) * step;
|
|
32
|
+
const ticks = [];
|
|
33
|
+
for (let i = 0; first + i * step <= last + step / 2; i++) ticks.push(Number((first + i * step).toFixed(decimals)) + 0);
|
|
34
|
+
return ticks;
|
|
35
|
+
}
|
|
36
|
+
/** Keeps the first `maxBars - 1` rows and sums the tail into one "Other" row. */
|
|
37
|
+
function foldTail(rows, maxBars) {
|
|
38
|
+
if (maxBars === void 0) return [...rows];
|
|
39
|
+
if (!Number.isInteger(maxBars) || maxBars < 2) throw new Error(`maxBars must be an integer ≥ 2, got ${maxBars}`);
|
|
40
|
+
if (rows.length <= maxBars) return [...rows];
|
|
41
|
+
const tail = rows.slice(maxBars - 1);
|
|
42
|
+
return [...rows.slice(0, maxBars - 1), {
|
|
43
|
+
label: "Other",
|
|
44
|
+
value: tail.reduce((sum, row) => sum + row.value, 0),
|
|
45
|
+
folded: tail.length
|
|
46
|
+
}];
|
|
47
|
+
}
|
|
48
|
+
/** Every how many slots a label can be drawn without colliding with the next shown one. */
|
|
49
|
+
function labelStep(labels, slotWidth) {
|
|
50
|
+
const widest = Math.max(0, ...labels.map(textWidth)) + LABEL_GAP;
|
|
51
|
+
return Math.max(1, Math.ceil(widest / slotWidth));
|
|
52
|
+
}
|
|
53
|
+
/** The x for a middle-anchored label that keeps the whole label inside [0, width]. */
|
|
54
|
+
function clampLabelX(center, label, width) {
|
|
55
|
+
const half = textWidth(label) / 2;
|
|
56
|
+
return px(Math.min(Math.max(center, half), width - half));
|
|
57
|
+
}
|
|
58
|
+
function truncateLabel(label, maxWidth) {
|
|
59
|
+
if (textWidth(label) <= maxWidth) return label;
|
|
60
|
+
const keep = Math.max(1, Math.floor(maxWidth / CHAR_WIDTH) - 1);
|
|
61
|
+
return `${label.slice(0, keep)}…`;
|
|
62
|
+
}
|
|
63
|
+
var MONTHS = [
|
|
64
|
+
"Jan",
|
|
65
|
+
"Feb",
|
|
66
|
+
"Mar",
|
|
67
|
+
"Apr",
|
|
68
|
+
"May",
|
|
69
|
+
"Jun",
|
|
70
|
+
"Jul",
|
|
71
|
+
"Aug",
|
|
72
|
+
"Sep",
|
|
73
|
+
"Oct",
|
|
74
|
+
"Nov",
|
|
75
|
+
"Dec"
|
|
76
|
+
];
|
|
77
|
+
var ISO_DATE = /^(\d{4})-(\d{2})-(\d{2})(?:$|T)/;
|
|
78
|
+
/**
|
|
79
|
+
* Default x label: an ISO date becomes "Aug 16" (read from the string, not via
|
|
80
|
+
* Date, so the output does not depend on the render's timezone); anything else
|
|
81
|
+
* is shown as given.
|
|
82
|
+
*/
|
|
83
|
+
function formatChartX(x) {
|
|
84
|
+
const match = ISO_DATE.exec(x);
|
|
85
|
+
if (!match) return x;
|
|
86
|
+
const month = MONTHS[Number(match[2]) - 1];
|
|
87
|
+
if (!month) throw new Error(`formatChartX: invalid month in ${x}`);
|
|
88
|
+
return `${month} ${Number(match[3])}`;
|
|
89
|
+
}
|
|
90
|
+
var VALUE_FORMAT = new Intl.NumberFormat("en-US", { maximumFractionDigits: 2 });
|
|
91
|
+
/** Default value label: grouped, up to 2 decimals, locale-independent. */
|
|
92
|
+
function formatChartValue(value) {
|
|
93
|
+
return VALUE_FORMAT.format(value);
|
|
94
|
+
}
|
|
95
|
+
function assertChartSize(component, width, height) {
|
|
96
|
+
if (!Number.isFinite(width) || width <= 0) throw new Error(`${component}: width must be a positive number, got ${width}`);
|
|
97
|
+
if (height !== void 0 && (!Number.isFinite(height) || height <= 0)) throw new Error(`${component}: height must be a positive number, got ${height}`);
|
|
98
|
+
}
|
|
99
|
+
function assertFinite(component, label, value) {
|
|
100
|
+
if (!Number.isFinite(value)) throw new Error(`${component}: value for "${label}" must be finite, got ${value}`);
|
|
101
|
+
}
|
|
102
|
+
export { CHAR_WIDTH, assertChartSize, assertFinite, clampLabelX, foldTail, formatChartValue, formatChartX, labelStep, niceTicks, px, textWidth, truncateLabel };
|
|
103
|
+
|
|
104
|
+
//# sourceMappingURL=chart-scale.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chart-scale.js","names":[],"sources":["../../../src/data/charts/chart-scale.ts"],"sourcesContent":["import { CHART_FONT_SIZE } from \"./chart-palette\";\n\n/**\n * Average glyph advance at the chart font size. There is no layout engine in a\n * static render, so text is measured by estimate; 0.6em over-estimates typical\n * sans-serif digits and letters, which errs toward thinning rather than overlap.\n */\nexport const CHAR_WIDTH = CHART_FONT_SIZE * 0.6;\nconst LABEL_GAP = 6;\n\nexport function textWidth(text: string): number {\n return text.length * CHAR_WIDTH;\n}\n\n/** Rounds geometry to 2dp so the emitted markup is short and deterministic. */\nexport function px(value: number): number {\n return Math.round(value * 100) / 100;\n}\n\nfunction niceNumber(value: number, round: boolean): number {\n const exponent = Math.floor(Math.log10(value));\n const fraction = value / 10 ** exponent;\n let nice: number;\n if (round) nice = fraction < 1.5 ? 1 : fraction < 3 ? 2 : fraction < 7 ? 5 : 10;\n else nice = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return nice * 10 ** exponent;\n}\n\n/** Heckbert's nice axis ticks covering [min, max], about five of them. */\nexport function niceTicks(min: number, max: number): number[] {\n if (!Number.isFinite(min) || !Number.isFinite(max) || min > max) {\n throw new Error(`niceTicks: invalid range ${min}..${max}`);\n }\n const top = max === min ? min + 1 : max;\n const step = niceNumber(niceNumber(top - min, false) / 4, true);\n const decimals = Math.max(0, -Math.floor(Math.log10(step)));\n const first = Math.floor(min / step) * step;\n const last = Math.ceil(top / step) * step;\n const ticks: number[] = [];\n for (let i = 0; first + i * step <= last + step / 2; i++) {\n ticks.push(Number((first + i * step).toFixed(decimals)) + 0);\n }\n return ticks;\n}\n\nexport type FoldedRow<T> = T | { label: string; value: number; folded: number };\n\n/** Keeps the first `maxBars - 1` rows and sums the tail into one \"Other\" row. */\nexport function foldTail<T extends { label: string; value: number }>(\n rows: readonly T[],\n maxBars: number | undefined,\n): FoldedRow<T>[] {\n if (maxBars === undefined) return [...rows];\n if (!Number.isInteger(maxBars) || maxBars < 2) {\n throw new Error(`maxBars must be an integer ≥ 2, got ${maxBars}`);\n }\n if (rows.length <= maxBars) return [...rows];\n const tail = rows.slice(maxBars - 1);\n return [\n ...rows.slice(0, maxBars - 1),\n { label: \"Other\", value: tail.reduce((sum, row) => sum + row.value, 0), folded: tail.length },\n ];\n}\n\n/** Every how many slots a label can be drawn without colliding with the next shown one. */\nexport function labelStep(labels: readonly string[], slotWidth: number): number {\n const widest = Math.max(0, ...labels.map(textWidth)) + LABEL_GAP;\n return Math.max(1, Math.ceil(widest / slotWidth));\n}\n\n/** Height below the plot reserved for x labels, so they clear the 0 tick label. */\nexport const X_AXIS_BAND = 22;\n/** Distance from the chart's bottom edge to the x label baseline. */\nexport const X_LABEL_INSET = 6;\n\n/** The x for a middle-anchored label that keeps the whole label inside [0, width]. */\nexport function clampLabelX(center: number, label: string, width: number): number {\n const half = textWidth(label) / 2;\n return px(Math.min(Math.max(center, half), width - half));\n}\n\nexport function truncateLabel(label: string, maxWidth: number): string {\n if (textWidth(label) <= maxWidth) return label;\n const keep = Math.max(1, Math.floor(maxWidth / CHAR_WIDTH) - 1);\n return `${label.slice(0, keep)}…`;\n}\n\nconst MONTHS = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\nconst ISO_DATE = /^(\\d{4})-(\\d{2})-(\\d{2})(?:$|T)/;\n\n/**\n * Default x label: an ISO date becomes \"Aug 16\" (read from the string, not via\n * Date, so the output does not depend on the render's timezone); anything else\n * is shown as given.\n */\nexport function formatChartX(x: string): string {\n const match = ISO_DATE.exec(x);\n if (!match) return x;\n const month = MONTHS[Number(match[2]) - 1];\n if (!month) throw new Error(`formatChartX: invalid month in ${x}`);\n return `${month} ${Number(match[3])}`;\n}\n\nconst VALUE_FORMAT = new Intl.NumberFormat(\"en-US\", { maximumFractionDigits: 2 });\n\n/** Default value label: grouped, up to 2 decimals, locale-independent. */\nexport function formatChartValue(value: number): string {\n return VALUE_FORMAT.format(value);\n}\n\nexport function assertChartSize(component: string, width: number, height?: number): void {\n if (!Number.isFinite(width) || width <= 0) throw new Error(`${component}: width must be a positive number, got ${width}`);\n if (height !== undefined && (!Number.isFinite(height) || height <= 0)) {\n throw new Error(`${component}: height must be a positive number, got ${height}`);\n }\n}\n\nexport function assertFinite(component: string, label: string, value: number): void {\n if (!Number.isFinite(value)) throw new Error(`${component}: value for \"${label}\" must be finite, got ${value}`);\n}\n"],"mappings":";;;;;;AAOA,IAAa,aAAA;AACb,IAAM,YAAY;AAElB,SAAgB,UAAU,MAAsB;CAC9C,OAAO,KAAK,SAAS;AACvB;;AAGA,SAAgB,GAAG,OAAuB;CACxC,OAAO,KAAK,MAAM,QAAQ,GAAG,IAAI;AACnC;AAEA,SAAS,WAAW,OAAe,OAAwB;CACzD,MAAM,WAAW,KAAK,MAAM,KAAK,MAAM,KAAK,CAAC;CAC7C,MAAM,WAAW,QAAQ,MAAM;CAC/B,IAAI;CACJ,IAAI,OAAO,OAAO,WAAW,MAAM,IAAI,WAAW,IAAI,IAAI,WAAW,IAAI,IAAI;MACxE,OAAO,YAAY,IAAI,IAAI,YAAY,IAAI,IAAI,YAAY,IAAI,IAAI;CACxE,OAAO,OAAO,MAAM;AACtB;;AAGA,SAAgB,UAAU,KAAa,KAAuB;CAC5D,IAAI,CAAC,OAAO,SAAS,GAAG,KAAK,CAAC,OAAO,SAAS,GAAG,KAAK,MAAM,KAC1D,MAAM,IAAI,MAAM,4BAA4B,IAAI,IAAI,KAAK;CAE3D,MAAM,MAAM,QAAQ,MAAM,MAAM,IAAI;CACpC,MAAM,OAAO,WAAW,WAAW,MAAM,KAAK,KAAK,IAAI,GAAG,IAAI;CAC9D,MAAM,WAAW,KAAK,IAAI,GAAG,CAAC,KAAK,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC;CAC1D,MAAM,QAAQ,KAAK,MAAM,MAAM,IAAI,IAAI;CACvC,MAAM,OAAO,KAAK,KAAK,MAAM,IAAI,IAAI;CACrC,MAAM,QAAkB,CAAC;CACzB,KAAK,IAAI,IAAI,GAAG,QAAQ,IAAI,QAAQ,OAAO,OAAO,GAAG,KACnD,MAAM,KAAK,QAAQ,QAAQ,IAAI,KAAA,CAAM,QAAQ,QAAQ,CAAC,IAAI,CAAC;CAE7D,OAAO;AACT;;AAKA,SAAgB,SACd,MACA,SACgB;CAChB,IAAI,YAAY,KAAA,GAAW,OAAO,CAAC,GAAG,IAAI;CAC1C,IAAI,CAAC,OAAO,UAAU,OAAO,KAAK,UAAU,GAC1C,MAAM,IAAI,MAAM,uCAAuC,SAAS;CAElE,IAAI,KAAK,UAAU,SAAS,OAAO,CAAC,GAAG,IAAI;CAC3C,MAAM,OAAO,KAAK,MAAM,UAAU,CAAC;CACnC,OAAO,CACL,GAAG,KAAK,MAAM,GAAG,UAAU,CAAC,GAC5B;EAAE,OAAO;EAAS,OAAO,KAAK,QAAQ,KAAK,QAAQ,MAAM,IAAI,OAAO,CAAC;EAAG,QAAQ,KAAK;CAAO,CAC9F;AACF;;AAGA,SAAgB,UAAU,QAA2B,WAA2B;CAC9E,MAAM,SAAS,KAAK,IAAI,GAAG,GAAG,OAAO,IAAI,SAAS,CAAC,IAAI;CACvD,OAAO,KAAK,IAAI,GAAG,KAAK,KAAK,SAAS,SAAS,CAAC;AAClD;;AAQA,SAAgB,YAAY,QAAgB,OAAe,OAAuB;CAChF,MAAM,OAAO,UAAU,KAAK,IAAI;CAChC,OAAO,GAAG,KAAK,IAAI,KAAK,IAAI,QAAQ,IAAI,GAAG,QAAQ,IAAI,CAAC;AAC1D;AAEA,SAAgB,cAAc,OAAe,UAA0B;CACrE,IAAI,UAAU,KAAK,KAAK,UAAU,OAAO;CACzC,MAAM,OAAO,KAAK,IAAI,GAAG,KAAK,MAAM,WAAW,UAAU,IAAI,CAAC;CAC9D,OAAO,GAAG,MAAM,MAAM,GAAG,IAAI,EAAE;AACjC;AAEA,IAAM,SAAS;CAAC;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;AAAK;AAClG,IAAM,WAAW;;;;;;AAOjB,SAAgB,aAAa,GAAmB;CAC9C,MAAM,QAAQ,SAAS,KAAK,CAAC;CAC7B,IAAI,CAAC,OAAO,OAAO;CACnB,MAAM,QAAQ,OAAO,OAAO,MAAM,EAAE,IAAI;CACxC,IAAI,CAAC,OAAO,MAAM,IAAI,MAAM,kCAAkC,GAAG;CACjE,OAAO,GAAG,MAAM,GAAG,OAAO,MAAM,EAAE;AACpC;AAEA,IAAM,eAAe,IAAI,KAAK,aAAa,SAAS,EAAE,uBAAuB,EAAE,CAAC;;AAGhF,SAAgB,iBAAiB,OAAuB;CACtD,OAAO,aAAa,OAAO,KAAK;AAClC;AAEA,SAAgB,gBAAgB,WAAmB,OAAe,QAAuB;CACvF,IAAI,CAAC,OAAO,SAAS,KAAK,KAAK,SAAS,GAAG,MAAM,IAAI,MAAM,GAAG,UAAU,yCAAyC,OAAO;CACxH,IAAI,WAAW,KAAA,MAAc,CAAC,OAAO,SAAS,MAAM,KAAK,UAAU,IACjE,MAAM,IAAI,MAAM,GAAG,UAAU,0CAA0C,QAAQ;AAEnF;AAEA,SAAgB,aAAa,WAAmB,OAAe,OAAqB;CAClF,IAAI,CAAC,OAAO,SAAS,KAAK,GAAG,MAAM,IAAI,MAAM,GAAG,UAAU,eAAe,MAAM,wBAAwB,OAAO;AAChH"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ReactElement } from 'react';
|
|
2
|
+
/** Renders the way a static report does (no DOM, no effects) and parses the markup back for assertions. */
|
|
3
|
+
export declare function renderStatic(element: ReactElement): HTMLElement;
|
|
4
|
+
export declare function rootSvg(host: HTMLElement): SVGSVGElement;
|
|
5
|
+
export declare function numAttr(element: Element, name: string): number;
|
|
6
|
+
export declare function texts(host: ParentNode, selector: string): string[];
|
|
7
|
+
//# sourceMappingURL=chart.test-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chart.test-utils.d.ts","sourceRoot":"","sources":["../../../src/data/charts/chart.test-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAG1C,2GAA2G;AAC3G,wBAAgB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,WAAW,CAI/D;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,aAAa,CAIxD;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAM9D;AAED,wBAAgB,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAElE"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { BarChart, type BarChartDatum, type BarChartProps } from './BarChart.js';
|
|
2
|
+
export { ChartLegend, type ChartLegendItem, type ChartLegendProps } from './ChartLegend.js';
|
|
3
|
+
export { CHART_PALETTE, chartColor } from './chart-palette.js';
|
|
4
|
+
export { Sparkline, type SparklineProps } from './Sparkline.js';
|
|
5
|
+
export { StackedBarChart, type ChartSeries, type StackedBarChartProps } from './StackedBarChart.js';
|
|
6
|
+
export { TrendChart, type TrendChartProps } from './TrendChart.js';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/data/charts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,KAAK,WAAW,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACjG,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -20,7 +20,7 @@ function MessageActions({ text, onRegenerate, className }) {
|
|
|
20
20
|
}
|
|
21
21
|
};
|
|
22
22
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
23
|
-
className: require_utils.cn("flex items-center gap-1 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100", className),
|
|
23
|
+
className: require_utils.cn("flex items-center gap-1 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100 [@media(hover:none)]:opacity-100", className),
|
|
24
24
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
25
25
|
type: "button",
|
|
26
26
|
"aria-label": copied ? "Copied" : "Copy message",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageActions.cjs","names":["useState","cn","Icon","UiCheck","UiCopy","UiRefresh"],"sources":["../../../src/data/chat/MessageActions.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport { cn } from \"../../lib/utils\";\nimport { Icon } from \"../Icon\";\nimport { UiCopy, UiCheck, UiRefresh } from \"../../icons\";\n\nexport type MessageActionsProps = {\n /** Plain-text content of the message, copied to the clipboard. */\n text: string;\n /** Called to re-generate this assistant message. Omit to hide the control. */\n onRegenerate?: (() => void) | undefined;\n className?: string;\n};\n\n/** Hover actions for an assistant message: copy its text and (optionally)\n * regenerate it. */\nexport function MessageActions({ text, onRegenerate, className }: MessageActionsProps) {\n const [copied, setCopied] = useState(false);\n\n const copy = async () => {\n try {\n await navigator.clipboard.writeText(text);\n setCopied(true);\n setTimeout(() => setCopied(false), 1500);\n } catch (err) {\n console.warn(\"clicky-ui: copy to clipboard failed\", err);\n }\n };\n\n return (\n <div\n className={cn(\n \"flex items-center gap-1 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100\",\n className,\n )}\n >\n <button\n type=\"button\"\n aria-label={copied ? \"Copied\" : \"Copy message\"}\n onClick={copy}\n className=\"rounded p-1 hover:bg-accent hover:text-accent-foreground\"\n >\n <Icon icon={copied ? UiCheck : UiCopy} className={cn(\"size-3.5\", copied && \"text-emerald-600\")} />\n </button>\n {onRegenerate && (\n <button\n type=\"button\"\n aria-label=\"Regenerate response\"\n onClick={onRegenerate}\n className=\"rounded p-1 hover:bg-accent hover:text-accent-foreground\"\n >\n <Icon icon={UiRefresh} className=\"size-3.5\" />\n </button>\n )}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;AAeA,SAAgB,eAAe,EAAE,MAAM,cAAc,aAAkC;CACrF,MAAM,CAAC,QAAQ,cAAA,GAAaA,MAAAA,SAAAA,CAAS,KAAK;CAE1C,MAAM,OAAO,YAAY;EACvB,IAAI;GACF,MAAM,UAAU,UAAU,UAAU,IAAI;GACxC,UAAU,IAAI;GACd,iBAAiB,UAAU,KAAK,GAAG,IAAI;EACzC,SAAS,KAAK;GACZ,QAAQ,KAAK,uCAAuC,GAAG;EACzD;CACF;CAEA,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;EACE,WAAWC,cAAAA,GACT,
|
|
1
|
+
{"version":3,"file":"MessageActions.cjs","names":["useState","cn","Icon","UiCheck","UiCopy","UiRefresh"],"sources":["../../../src/data/chat/MessageActions.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport { cn } from \"../../lib/utils\";\nimport { Icon } from \"../Icon\";\nimport { UiCopy, UiCheck, UiRefresh } from \"../../icons\";\n\nexport type MessageActionsProps = {\n /** Plain-text content of the message, copied to the clipboard. */\n text: string;\n /** Called to re-generate this assistant message. Omit to hide the control. */\n onRegenerate?: (() => void) | undefined;\n className?: string;\n};\n\n/** Hover actions for an assistant message: copy its text and (optionally)\n * regenerate it. */\nexport function MessageActions({ text, onRegenerate, className }: MessageActionsProps) {\n const [copied, setCopied] = useState(false);\n\n const copy = async () => {\n try {\n await navigator.clipboard.writeText(text);\n setCopied(true);\n setTimeout(() => setCopied(false), 1500);\n } catch (err) {\n console.warn(\"clicky-ui: copy to clipboard failed\", err);\n }\n };\n\n return (\n <div\n className={cn(\n \"flex items-center gap-1 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100 [@media(hover:none)]:opacity-100\",\n className,\n )}\n >\n <button\n type=\"button\"\n aria-label={copied ? \"Copied\" : \"Copy message\"}\n onClick={copy}\n className=\"rounded p-1 hover:bg-accent hover:text-accent-foreground\"\n >\n <Icon icon={copied ? UiCheck : UiCopy} className={cn(\"size-3.5\", copied && \"text-emerald-600\")} />\n </button>\n {onRegenerate && (\n <button\n type=\"button\"\n aria-label=\"Regenerate response\"\n onClick={onRegenerate}\n className=\"rounded p-1 hover:bg-accent hover:text-accent-foreground\"\n >\n <Icon icon={UiRefresh} className=\"size-3.5\" />\n </button>\n )}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;AAeA,SAAgB,eAAe,EAAE,MAAM,cAAc,aAAkC;CACrF,MAAM,CAAC,QAAQ,cAAA,GAAaA,MAAAA,SAAAA,CAAS,KAAK;CAE1C,MAAM,OAAO,YAAY;EACvB,IAAI;GACF,MAAM,UAAU,UAAU,UAAU,IAAI;GACxC,UAAU,IAAI;GACd,iBAAiB,UAAU,KAAK,GAAG,IAAI;EACzC,SAAS,KAAK;GACZ,QAAQ,KAAK,uCAAuC,GAAG;EACzD;CACF;CAEA,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;EACE,WAAWC,cAAAA,GACT,uIACA,SACF;EAJF,UAAA,CAME,iBAAA,GAAA,kBAAA,IAAA,CAAC,UAAD;GACE,MAAK;GACL,cAAY,SAAS,WAAW;GAChC,SAAS;GACT,WAAU;GAEV,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,aAAAA,MAAD;IAAM,MAAM,SAASC,gBAAAA,UAAUC,eAAAA;IAAQ,WAAWH,cAAAA,GAAG,YAAY,UAAU,kBAAkB;GAAI,CAAA;EAC3F,CAAA,GACP,gBACC,iBAAA,GAAA,kBAAA,IAAA,CAAC,UAAD;GACE,MAAK;GACL,cAAW;GACX,SAAS;GACT,WAAU;GAEV,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,aAAAA,MAAD;IAAM,MAAMG,kBAAAA;IAAW,WAAU;GAAY,CAAA;EACvC,CAAA,CAEP;;AAET"}
|
|
@@ -20,7 +20,7 @@ function MessageActions({ text, onRegenerate, className }) {
|
|
|
20
20
|
}
|
|
21
21
|
};
|
|
22
22
|
return /* @__PURE__ */ jsxs("div", {
|
|
23
|
-
className: cn("flex items-center gap-1 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100", className),
|
|
23
|
+
className: cn("flex items-center gap-1 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100 [@media(hover:none)]:opacity-100", className),
|
|
24
24
|
children: [/* @__PURE__ */ jsx("button", {
|
|
25
25
|
type: "button",
|
|
26
26
|
"aria-label": copied ? "Copied" : "Copy message",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageActions.js","names":[],"sources":["../../../src/data/chat/MessageActions.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport { cn } from \"../../lib/utils\";\nimport { Icon } from \"../Icon\";\nimport { UiCopy, UiCheck, UiRefresh } from \"../../icons\";\n\nexport type MessageActionsProps = {\n /** Plain-text content of the message, copied to the clipboard. */\n text: string;\n /** Called to re-generate this assistant message. Omit to hide the control. */\n onRegenerate?: (() => void) | undefined;\n className?: string;\n};\n\n/** Hover actions for an assistant message: copy its text and (optionally)\n * regenerate it. */\nexport function MessageActions({ text, onRegenerate, className }: MessageActionsProps) {\n const [copied, setCopied] = useState(false);\n\n const copy = async () => {\n try {\n await navigator.clipboard.writeText(text);\n setCopied(true);\n setTimeout(() => setCopied(false), 1500);\n } catch (err) {\n console.warn(\"clicky-ui: copy to clipboard failed\", err);\n }\n };\n\n return (\n <div\n className={cn(\n \"flex items-center gap-1 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100\",\n className,\n )}\n >\n <button\n type=\"button\"\n aria-label={copied ? \"Copied\" : \"Copy message\"}\n onClick={copy}\n className=\"rounded p-1 hover:bg-accent hover:text-accent-foreground\"\n >\n <Icon icon={copied ? UiCheck : UiCopy} className={cn(\"size-3.5\", copied && \"text-emerald-600\")} />\n </button>\n {onRegenerate && (\n <button\n type=\"button\"\n aria-label=\"Regenerate response\"\n onClick={onRegenerate}\n className=\"rounded p-1 hover:bg-accent hover:text-accent-foreground\"\n >\n <Icon icon={UiRefresh} className=\"size-3.5\" />\n </button>\n )}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;AAeA,SAAgB,eAAe,EAAE,MAAM,cAAc,aAAkC;CACrF,MAAM,CAAC,QAAQ,aAAa,SAAS,KAAK;CAE1C,MAAM,OAAO,YAAY;EACvB,IAAI;GACF,MAAM,UAAU,UAAU,UAAU,IAAI;GACxC,UAAU,IAAI;GACd,iBAAiB,UAAU,KAAK,GAAG,IAAI;EACzC,SAAS,KAAK;GACZ,QAAQ,KAAK,uCAAuC,GAAG;EACzD;CACF;CAEA,OACE,qBAAC,OAAD;EACE,WAAW,GACT,
|
|
1
|
+
{"version":3,"file":"MessageActions.js","names":[],"sources":["../../../src/data/chat/MessageActions.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport { cn } from \"../../lib/utils\";\nimport { Icon } from \"../Icon\";\nimport { UiCopy, UiCheck, UiRefresh } from \"../../icons\";\n\nexport type MessageActionsProps = {\n /** Plain-text content of the message, copied to the clipboard. */\n text: string;\n /** Called to re-generate this assistant message. Omit to hide the control. */\n onRegenerate?: (() => void) | undefined;\n className?: string;\n};\n\n/** Hover actions for an assistant message: copy its text and (optionally)\n * regenerate it. */\nexport function MessageActions({ text, onRegenerate, className }: MessageActionsProps) {\n const [copied, setCopied] = useState(false);\n\n const copy = async () => {\n try {\n await navigator.clipboard.writeText(text);\n setCopied(true);\n setTimeout(() => setCopied(false), 1500);\n } catch (err) {\n console.warn(\"clicky-ui: copy to clipboard failed\", err);\n }\n };\n\n return (\n <div\n className={cn(\n \"flex items-center gap-1 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100 [@media(hover:none)]:opacity-100\",\n className,\n )}\n >\n <button\n type=\"button\"\n aria-label={copied ? \"Copied\" : \"Copy message\"}\n onClick={copy}\n className=\"rounded p-1 hover:bg-accent hover:text-accent-foreground\"\n >\n <Icon icon={copied ? UiCheck : UiCopy} className={cn(\"size-3.5\", copied && \"text-emerald-600\")} />\n </button>\n {onRegenerate && (\n <button\n type=\"button\"\n aria-label=\"Regenerate response\"\n onClick={onRegenerate}\n className=\"rounded p-1 hover:bg-accent hover:text-accent-foreground\"\n >\n <Icon icon={UiRefresh} className=\"size-3.5\" />\n </button>\n )}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;AAeA,SAAgB,eAAe,EAAE,MAAM,cAAc,aAAkC;CACrF,MAAM,CAAC,QAAQ,aAAa,SAAS,KAAK;CAE1C,MAAM,OAAO,YAAY;EACvB,IAAI;GACF,MAAM,UAAU,UAAU,UAAU,IAAI;GACxC,UAAU,IAAI;GACd,iBAAiB,UAAU,KAAK,GAAG,IAAI;EACzC,SAAS,KAAK;GACZ,QAAQ,KAAK,uCAAuC,GAAG;EACzD;CACF;CAEA,OACE,qBAAC,OAAD;EACE,WAAW,GACT,uIACA,SACF;EAJF,UAAA,CAME,oBAAC,UAAD;GACE,MAAK;GACL,cAAY,SAAS,WAAW;GAChC,SAAS;GACT,WAAU;GAEV,UAAA,oBAAC,MAAD;IAAM,MAAM,SAAS,UAAU;IAAQ,WAAW,GAAG,YAAY,UAAU,kBAAkB;GAAI,CAAA;EAC3F,CAAA,GACP,gBACC,oBAAC,UAAD;GACE,MAAK;GACL,cAAW;GACX,SAAS;GACT,WAAU;GAEV,UAAA,oBAAC,MAAD;IAAM,MAAM;IAAW,WAAU;GAAY,CAAA;EACvC,CAAA,CAEP;;AAET"}
|
|
@@ -5,8 +5,8 @@ const require_UiServerProcess = require("../../icons/components/UiServerProcess.
|
|
|
5
5
|
const require_UiRefresh = require("../../icons/components/UiRefresh.cjs");
|
|
6
6
|
const require_format = require("../../lib/format.cjs");
|
|
7
7
|
const require_Icon = require("../Icon.cjs");
|
|
8
|
-
const require_StackDumpView = require("./StackDumpView.cjs");
|
|
9
8
|
const require_MetricTile = require("./MetricTile.cjs");
|
|
9
|
+
const require_StackDumpView = require("./StackDumpView.cjs");
|
|
10
10
|
const require_metric_tone = require("./metric-tone.cjs");
|
|
11
11
|
const require_utils = require("./utils.cjs");
|
|
12
12
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
@@ -5,8 +5,8 @@ import { UiServerProcess } from "../../icons/components/UiServerProcess.js";
|
|
|
5
5
|
import { UiRefresh } from "../../icons/components/UiRefresh.js";
|
|
6
6
|
import { formatBytes } from "../../lib/format.js";
|
|
7
7
|
import { Icon } from "../Icon.js";
|
|
8
|
-
import { StackDumpView } from "./StackDumpView.js";
|
|
9
8
|
import { MetricTile } from "./MetricTile.js";
|
|
9
|
+
import { StackDumpView } from "./StackDumpView.js";
|
|
10
10
|
import { cpuTone, memoryTone } from "./metric-tone.js";
|
|
11
11
|
import { processLabel, processStateColor, processStateIcon } from "./utils.js";
|
|
12
12
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -38,7 +38,7 @@ function DiagnosticsTree({ root, selectedPid, expandAll = null, onSelect }) {
|
|
|
38
38
|
className: node.is_root ? "text-base text-blue-600" : "text-base text-muted-foreground"
|
|
39
39
|
}),
|
|
40
40
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
41
|
-
className: `truncate ${selected ? "font-semibold text-primary" : "font-medium text-foreground"}`,
|
|
41
|
+
className: `min-w-0 truncate ${selected ? "font-semibold text-primary" : "font-medium text-foreground"}`,
|
|
42
42
|
children: require_utils.processLabel(node)
|
|
43
43
|
}),
|
|
44
44
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiagnosticsTree.cjs","names":["Icon","UiLoader","countProcesses","Tree","_Fragment","UiServerProcess","UiDebug","processLabel","processStateColor","processStateIcon","formatBytes"],"sources":["../../../src/data/diagnostics/DiagnosticsTree.tsx"],"sourcesContent":["import { Tree } from \"../Tree\";\nimport { Icon } from \"../Icon\";\nimport { UiDebug, UiServerProcess, UiLoader } from \"../../icons\";\nimport type { ProcessNode } from \"./types\";\nimport {\n countProcesses,\n formatBytes,\n processLabel,\n processStateColor,\n processStateIcon,\n} from \"./utils\";\n\nexport type DiagnosticsTreeProps = {\n /** Root process node. Missing root renders a waiting state. */\n root?: ProcessNode;\n /** Currently selected process id. */\n selectedPid?: number | null;\n /** Controlled expand-all state forwarded to Tree. */\n expandAll?: boolean | null;\n /** Called with the selected process id. */\n onSelect: (pid: number) => void;\n};\n\nexport function DiagnosticsTree({\n root,\n selectedPid,\n expandAll = null,\n onSelect,\n}: DiagnosticsTreeProps) {\n if (!root) {\n return (\n <div className=\"p-density-6 text-center text-muted-foreground\">\n <Icon icon={UiLoader} className=\"text-3xl text-blue-500\" />\n <p className=\"mt-density-2\">Waiting for process diagnostics...</p>\n </div>\n );\n }\n\n if (countProcesses(root) === 0) {\n return (\n <div className=\"p-density-6 text-center text-muted-foreground text-sm\">\n No processes available\n </div>\n );\n }\n\n return (\n <Tree<ProcessNode>\n roots={[root]}\n getChildren={(n) => n.children}\n getKey={(n) => n.pid}\n expandAll={expandAll}\n defaultOpen={(n, depth) => !!n.is_root || depth < 1}\n onSelect={(n) => onSelect(n.pid)}\n renderRow={({ node }) => {\n const selected = node.pid === selectedPid;\n const cpu = node.cpu_percent || 0;\n return (\n <>\n <Icon\n icon={node.is_root ? UiServerProcess : UiDebug}\n className={\n node.is_root ? \"text-base text-blue-600\" : \"text-base text-muted-foreground\"\n }\n />\n <span\n className={`truncate ${\n selected ? \"font-semibold text-primary\" : \"font-medium text-foreground\"\n }`}\n >\n {processLabel(node)}\n </span>\n <span className=\"text-xs text-muted-foreground shrink-0\">pid {node.pid}</span>\n <span className=\"flex-1\" />\n {node.status && (\n <span\n className={`inline-flex items-center gap-1 text-xs shrink-0 ${processStateColor(\n node.status,\n )}`}\n >\n <Icon icon={processStateIcon(node.status)} />\n {node.status}\n </span>\n )}\n <span className=\"text-xs text-muted-foreground shrink-0 tabular-nums\">\n {cpu.toFixed(1)}%\n </span>\n <span className=\"text-xs text-muted-foreground shrink-0 tabular-nums\">\n {formatBytes(node.rss)}\n </span>\n </>\n );\n }}\n rowClass={(node) =>\n node.pid === selectedPid ? \"bg-primary/10 border-l-2 border-primary\" : \"hover:bg-accent\"\n }\n />\n );\n}\n"],"mappings":";;;;;;;;;AAuBA,SAAgB,gBAAgB,EAC9B,MACA,aACA,YAAY,MACZ,YACuB;CACvB,IAAI,CAAC,MACH,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;EAAK,WAAU;EAAf,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAACA,aAAAA,MAAD;GAAM,MAAMC,iBAAAA;GAAU,WAAU;EAA0B,CAAA,GAC1D,iBAAA,GAAA,kBAAA,IAAA,CAAC,KAAD;GAAG,WAAU;GAAe,UAAA;EAAqC,CAAA,CAC9D;;CAIT,IAAIC,cAAAA,eAAe,IAAI,MAAM,GAC3B,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EAAK,WAAU;EAAwD,UAAA;CAElE,CAAA;CAIT,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,aAAAA,MAAD;EACE,OAAO,CAAC,IAAI;EACZ,cAAc,MAAM,EAAE;EACtB,SAAS,MAAM,EAAE;EACN;EACX,cAAc,GAAG,UAAU,CAAC,CAAC,EAAE,WAAW,QAAQ;EAClD,WAAW,MAAM,SAAS,EAAE,GAAG;EAC/B,YAAY,EAAE,WAAW;GACvB,MAAM,WAAW,KAAK,QAAQ;GAC9B,MAAM,MAAM,KAAK,eAAe;GAChC,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAAC,kBAAAA,UAAA,EAAA,UAAA;IACE,iBAAA,GAAA,kBAAA,IAAA,CAACJ,aAAAA,MAAD;KACE,MAAM,KAAK,UAAUK,wBAAAA,kBAAkBC,gBAAAA;KACvC,WACE,KAAK,UAAU,4BAA4B;IAE9C,CAAA;IACD,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;KACE,WAAW,
|
|
1
|
+
{"version":3,"file":"DiagnosticsTree.cjs","names":["Icon","UiLoader","countProcesses","Tree","_Fragment","UiServerProcess","UiDebug","processLabel","processStateColor","processStateIcon","formatBytes"],"sources":["../../../src/data/diagnostics/DiagnosticsTree.tsx"],"sourcesContent":["import { Tree } from \"../Tree\";\nimport { Icon } from \"../Icon\";\nimport { UiDebug, UiServerProcess, UiLoader } from \"../../icons\";\nimport type { ProcessNode } from \"./types\";\nimport {\n countProcesses,\n formatBytes,\n processLabel,\n processStateColor,\n processStateIcon,\n} from \"./utils\";\n\nexport type DiagnosticsTreeProps = {\n /** Root process node. Missing root renders a waiting state. */\n root?: ProcessNode;\n /** Currently selected process id. */\n selectedPid?: number | null;\n /** Controlled expand-all state forwarded to Tree. */\n expandAll?: boolean | null;\n /** Called with the selected process id. */\n onSelect: (pid: number) => void;\n};\n\nexport function DiagnosticsTree({\n root,\n selectedPid,\n expandAll = null,\n onSelect,\n}: DiagnosticsTreeProps) {\n if (!root) {\n return (\n <div className=\"p-density-6 text-center text-muted-foreground\">\n <Icon icon={UiLoader} className=\"text-3xl text-blue-500\" />\n <p className=\"mt-density-2\">Waiting for process diagnostics...</p>\n </div>\n );\n }\n\n if (countProcesses(root) === 0) {\n return (\n <div className=\"p-density-6 text-center text-muted-foreground text-sm\">\n No processes available\n </div>\n );\n }\n\n return (\n <Tree<ProcessNode>\n roots={[root]}\n getChildren={(n) => n.children}\n getKey={(n) => n.pid}\n expandAll={expandAll}\n defaultOpen={(n, depth) => !!n.is_root || depth < 1}\n onSelect={(n) => onSelect(n.pid)}\n renderRow={({ node }) => {\n const selected = node.pid === selectedPid;\n const cpu = node.cpu_percent || 0;\n return (\n <>\n <Icon\n icon={node.is_root ? UiServerProcess : UiDebug}\n className={\n node.is_root ? \"text-base text-blue-600\" : \"text-base text-muted-foreground\"\n }\n />\n <span\n className={`min-w-0 truncate ${\n selected ? \"font-semibold text-primary\" : \"font-medium text-foreground\"\n }`}\n >\n {processLabel(node)}\n </span>\n <span className=\"text-xs text-muted-foreground shrink-0\">pid {node.pid}</span>\n <span className=\"flex-1\" />\n {node.status && (\n <span\n className={`inline-flex items-center gap-1 text-xs shrink-0 ${processStateColor(\n node.status,\n )}`}\n >\n <Icon icon={processStateIcon(node.status)} />\n {node.status}\n </span>\n )}\n <span className=\"text-xs text-muted-foreground shrink-0 tabular-nums\">\n {cpu.toFixed(1)}%\n </span>\n <span className=\"text-xs text-muted-foreground shrink-0 tabular-nums\">\n {formatBytes(node.rss)}\n </span>\n </>\n );\n }}\n rowClass={(node) =>\n node.pid === selectedPid ? \"bg-primary/10 border-l-2 border-primary\" : \"hover:bg-accent\"\n }\n />\n );\n}\n"],"mappings":";;;;;;;;;AAuBA,SAAgB,gBAAgB,EAC9B,MACA,aACA,YAAY,MACZ,YACuB;CACvB,IAAI,CAAC,MACH,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;EAAK,WAAU;EAAf,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAACA,aAAAA,MAAD;GAAM,MAAMC,iBAAAA;GAAU,WAAU;EAA0B,CAAA,GAC1D,iBAAA,GAAA,kBAAA,IAAA,CAAC,KAAD;GAAG,WAAU;GAAe,UAAA;EAAqC,CAAA,CAC9D;;CAIT,IAAIC,cAAAA,eAAe,IAAI,MAAM,GAC3B,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EAAK,WAAU;EAAwD,UAAA;CAElE,CAAA;CAIT,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,aAAAA,MAAD;EACE,OAAO,CAAC,IAAI;EACZ,cAAc,MAAM,EAAE;EACtB,SAAS,MAAM,EAAE;EACN;EACX,cAAc,GAAG,UAAU,CAAC,CAAC,EAAE,WAAW,QAAQ;EAClD,WAAW,MAAM,SAAS,EAAE,GAAG;EAC/B,YAAY,EAAE,WAAW;GACvB,MAAM,WAAW,KAAK,QAAQ;GAC9B,MAAM,MAAM,KAAK,eAAe;GAChC,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAAC,kBAAAA,UAAA,EAAA,UAAA;IACE,iBAAA,GAAA,kBAAA,IAAA,CAACJ,aAAAA,MAAD;KACE,MAAM,KAAK,UAAUK,wBAAAA,kBAAkBC,gBAAAA;KACvC,WACE,KAAK,UAAU,4BAA4B;IAE9C,CAAA;IACD,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;KACE,WAAW,oBACT,WAAW,+BAA+B;KAG3C,UAAAC,cAAAA,aAAa,IAAI;IACd,CAAA;IACN,iBAAA,GAAA,kBAAA,KAAA,CAAC,QAAD;KAAM,WAAU;KAAhB,UAAA,CAAyD,QAAK,KAAK,GAAU;;IAC7E,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD,EAAM,WAAU,SAAU,CAAA;IACzB,KAAK,UACJ,iBAAA,GAAA,kBAAA,KAAA,CAAC,QAAD;KACE,WAAW,mDAAmDC,cAAAA,kBAC5D,KAAK,MACP;KAHF,UAAA,CAKE,iBAAA,GAAA,kBAAA,IAAA,CAACR,aAAAA,MAAD,EAAM,MAAMS,cAAAA,iBAAiB,KAAK,MAAM,EAAI,CAAA,GAC3C,KAAK,MACF;;IAER,iBAAA,GAAA,kBAAA,KAAA,CAAC,QAAD;KAAM,WAAU;KAAhB,UAAA,CACG,IAAI,QAAQ,CAAC,GAAE,GACZ;;IACN,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;KAAM,WAAU;KACb,UAAAC,eAAAA,YAAY,KAAK,GAAG;IACjB,CAAA;GACN,EAAA,CAAA;EAEN;EACA,WAAW,SACT,KAAK,QAAQ,cAAc,4CAA4C;CAE1E,CAAA;AAEL"}
|
|
@@ -38,7 +38,7 @@ function DiagnosticsTree({ root, selectedPid, expandAll = null, onSelect }) {
|
|
|
38
38
|
className: node.is_root ? "text-base text-blue-600" : "text-base text-muted-foreground"
|
|
39
39
|
}),
|
|
40
40
|
/* @__PURE__ */ jsx("span", {
|
|
41
|
-
className: `truncate ${selected ? "font-semibold text-primary" : "font-medium text-foreground"}`,
|
|
41
|
+
className: `min-w-0 truncate ${selected ? "font-semibold text-primary" : "font-medium text-foreground"}`,
|
|
42
42
|
children: processLabel(node)
|
|
43
43
|
}),
|
|
44
44
|
/* @__PURE__ */ jsxs("span", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiagnosticsTree.js","names":["_Fragment"],"sources":["../../../src/data/diagnostics/DiagnosticsTree.tsx"],"sourcesContent":["import { Tree } from \"../Tree\";\nimport { Icon } from \"../Icon\";\nimport { UiDebug, UiServerProcess, UiLoader } from \"../../icons\";\nimport type { ProcessNode } from \"./types\";\nimport {\n countProcesses,\n formatBytes,\n processLabel,\n processStateColor,\n processStateIcon,\n} from \"./utils\";\n\nexport type DiagnosticsTreeProps = {\n /** Root process node. Missing root renders a waiting state. */\n root?: ProcessNode;\n /** Currently selected process id. */\n selectedPid?: number | null;\n /** Controlled expand-all state forwarded to Tree. */\n expandAll?: boolean | null;\n /** Called with the selected process id. */\n onSelect: (pid: number) => void;\n};\n\nexport function DiagnosticsTree({\n root,\n selectedPid,\n expandAll = null,\n onSelect,\n}: DiagnosticsTreeProps) {\n if (!root) {\n return (\n <div className=\"p-density-6 text-center text-muted-foreground\">\n <Icon icon={UiLoader} className=\"text-3xl text-blue-500\" />\n <p className=\"mt-density-2\">Waiting for process diagnostics...</p>\n </div>\n );\n }\n\n if (countProcesses(root) === 0) {\n return (\n <div className=\"p-density-6 text-center text-muted-foreground text-sm\">\n No processes available\n </div>\n );\n }\n\n return (\n <Tree<ProcessNode>\n roots={[root]}\n getChildren={(n) => n.children}\n getKey={(n) => n.pid}\n expandAll={expandAll}\n defaultOpen={(n, depth) => !!n.is_root || depth < 1}\n onSelect={(n) => onSelect(n.pid)}\n renderRow={({ node }) => {\n const selected = node.pid === selectedPid;\n const cpu = node.cpu_percent || 0;\n return (\n <>\n <Icon\n icon={node.is_root ? UiServerProcess : UiDebug}\n className={\n node.is_root ? \"text-base text-blue-600\" : \"text-base text-muted-foreground\"\n }\n />\n <span\n className={`truncate ${\n selected ? \"font-semibold text-primary\" : \"font-medium text-foreground\"\n }`}\n >\n {processLabel(node)}\n </span>\n <span className=\"text-xs text-muted-foreground shrink-0\">pid {node.pid}</span>\n <span className=\"flex-1\" />\n {node.status && (\n <span\n className={`inline-flex items-center gap-1 text-xs shrink-0 ${processStateColor(\n node.status,\n )}`}\n >\n <Icon icon={processStateIcon(node.status)} />\n {node.status}\n </span>\n )}\n <span className=\"text-xs text-muted-foreground shrink-0 tabular-nums\">\n {cpu.toFixed(1)}%\n </span>\n <span className=\"text-xs text-muted-foreground shrink-0 tabular-nums\">\n {formatBytes(node.rss)}\n </span>\n </>\n );\n }}\n rowClass={(node) =>\n node.pid === selectedPid ? \"bg-primary/10 border-l-2 border-primary\" : \"hover:bg-accent\"\n }\n />\n );\n}\n"],"mappings":";;;;;;;;;AAuBA,SAAgB,gBAAgB,EAC9B,MACA,aACA,YAAY,MACZ,YACuB;CACvB,IAAI,CAAC,MACH,OACE,qBAAC,OAAD;EAAK,WAAU;EAAf,UAAA,CACE,oBAAC,MAAD;GAAM,MAAM;GAAU,WAAU;EAA0B,CAAA,GAC1D,oBAAC,KAAD;GAAG,WAAU;GAAe,UAAA;EAAqC,CAAA,CAC9D;;CAIT,IAAI,eAAe,IAAI,MAAM,GAC3B,OACE,oBAAC,OAAD;EAAK,WAAU;EAAwD,UAAA;CAElE,CAAA;CAIT,OACE,oBAAC,MAAD;EACE,OAAO,CAAC,IAAI;EACZ,cAAc,MAAM,EAAE;EACtB,SAAS,MAAM,EAAE;EACN;EACX,cAAc,GAAG,UAAU,CAAC,CAAC,EAAE,WAAW,QAAQ;EAClD,WAAW,MAAM,SAAS,EAAE,GAAG;EAC/B,YAAY,EAAE,WAAW;GACvB,MAAM,WAAW,KAAK,QAAQ;GAC9B,MAAM,MAAM,KAAK,eAAe;GAChC,OACE,qBAAAA,UAAA,EAAA,UAAA;IACE,oBAAC,MAAD;KACE,MAAM,KAAK,UAAU,kBAAkB;KACvC,WACE,KAAK,UAAU,4BAA4B;IAE9C,CAAA;IACD,oBAAC,QAAD;KACE,WAAW,
|
|
1
|
+
{"version":3,"file":"DiagnosticsTree.js","names":["_Fragment"],"sources":["../../../src/data/diagnostics/DiagnosticsTree.tsx"],"sourcesContent":["import { Tree } from \"../Tree\";\nimport { Icon } from \"../Icon\";\nimport { UiDebug, UiServerProcess, UiLoader } from \"../../icons\";\nimport type { ProcessNode } from \"./types\";\nimport {\n countProcesses,\n formatBytes,\n processLabel,\n processStateColor,\n processStateIcon,\n} from \"./utils\";\n\nexport type DiagnosticsTreeProps = {\n /** Root process node. Missing root renders a waiting state. */\n root?: ProcessNode;\n /** Currently selected process id. */\n selectedPid?: number | null;\n /** Controlled expand-all state forwarded to Tree. */\n expandAll?: boolean | null;\n /** Called with the selected process id. */\n onSelect: (pid: number) => void;\n};\n\nexport function DiagnosticsTree({\n root,\n selectedPid,\n expandAll = null,\n onSelect,\n}: DiagnosticsTreeProps) {\n if (!root) {\n return (\n <div className=\"p-density-6 text-center text-muted-foreground\">\n <Icon icon={UiLoader} className=\"text-3xl text-blue-500\" />\n <p className=\"mt-density-2\">Waiting for process diagnostics...</p>\n </div>\n );\n }\n\n if (countProcesses(root) === 0) {\n return (\n <div className=\"p-density-6 text-center text-muted-foreground text-sm\">\n No processes available\n </div>\n );\n }\n\n return (\n <Tree<ProcessNode>\n roots={[root]}\n getChildren={(n) => n.children}\n getKey={(n) => n.pid}\n expandAll={expandAll}\n defaultOpen={(n, depth) => !!n.is_root || depth < 1}\n onSelect={(n) => onSelect(n.pid)}\n renderRow={({ node }) => {\n const selected = node.pid === selectedPid;\n const cpu = node.cpu_percent || 0;\n return (\n <>\n <Icon\n icon={node.is_root ? UiServerProcess : UiDebug}\n className={\n node.is_root ? \"text-base text-blue-600\" : \"text-base text-muted-foreground\"\n }\n />\n <span\n className={`min-w-0 truncate ${\n selected ? \"font-semibold text-primary\" : \"font-medium text-foreground\"\n }`}\n >\n {processLabel(node)}\n </span>\n <span className=\"text-xs text-muted-foreground shrink-0\">pid {node.pid}</span>\n <span className=\"flex-1\" />\n {node.status && (\n <span\n className={`inline-flex items-center gap-1 text-xs shrink-0 ${processStateColor(\n node.status,\n )}`}\n >\n <Icon icon={processStateIcon(node.status)} />\n {node.status}\n </span>\n )}\n <span className=\"text-xs text-muted-foreground shrink-0 tabular-nums\">\n {cpu.toFixed(1)}%\n </span>\n <span className=\"text-xs text-muted-foreground shrink-0 tabular-nums\">\n {formatBytes(node.rss)}\n </span>\n </>\n );\n }}\n rowClass={(node) =>\n node.pid === selectedPid ? \"bg-primary/10 border-l-2 border-primary\" : \"hover:bg-accent\"\n }\n />\n );\n}\n"],"mappings":";;;;;;;;;AAuBA,SAAgB,gBAAgB,EAC9B,MACA,aACA,YAAY,MACZ,YACuB;CACvB,IAAI,CAAC,MACH,OACE,qBAAC,OAAD;EAAK,WAAU;EAAf,UAAA,CACE,oBAAC,MAAD;GAAM,MAAM;GAAU,WAAU;EAA0B,CAAA,GAC1D,oBAAC,KAAD;GAAG,WAAU;GAAe,UAAA;EAAqC,CAAA,CAC9D;;CAIT,IAAI,eAAe,IAAI,MAAM,GAC3B,OACE,oBAAC,OAAD;EAAK,WAAU;EAAwD,UAAA;CAElE,CAAA;CAIT,OACE,oBAAC,MAAD;EACE,OAAO,CAAC,IAAI;EACZ,cAAc,MAAM,EAAE;EACtB,SAAS,MAAM,EAAE;EACN;EACX,cAAc,GAAG,UAAU,CAAC,CAAC,EAAE,WAAW,QAAQ;EAClD,WAAW,MAAM,SAAS,EAAE,GAAG;EAC/B,YAAY,EAAE,WAAW;GACvB,MAAM,WAAW,KAAK,QAAQ;GAC9B,MAAM,MAAM,KAAK,eAAe;GAChC,OACE,qBAAAA,UAAA,EAAA,UAAA;IACE,oBAAC,MAAD;KACE,MAAM,KAAK,UAAU,kBAAkB;KACvC,WACE,KAAK,UAAU,4BAA4B;IAE9C,CAAA;IACD,oBAAC,QAAD;KACE,WAAW,oBACT,WAAW,+BAA+B;KAG3C,UAAA,aAAa,IAAI;IACd,CAAA;IACN,qBAAC,QAAD;KAAM,WAAU;KAAhB,UAAA,CAAyD,QAAK,KAAK,GAAU;;IAC7E,oBAAC,QAAD,EAAM,WAAU,SAAU,CAAA;IACzB,KAAK,UACJ,qBAAC,QAAD;KACE,WAAW,mDAAmD,kBAC5D,KAAK,MACP;KAHF,UAAA,CAKE,oBAAC,MAAD,EAAM,MAAM,iBAAiB,KAAK,MAAM,EAAI,CAAA,GAC3C,KAAK,MACF;;IAER,qBAAC,QAAD;KAAM,WAAU;KAAhB,UAAA,CACG,IAAI,QAAQ,CAAC,GAAE,GACZ;;IACN,oBAAC,QAAD;KAAM,WAAU;KACb,UAAA,YAAY,KAAK,GAAG;IACjB,CAAA;GACN,EAAA,CAAA;EAEN;EACA,WAAW,SACT,KAAK,QAAQ,cAAc,4CAA4C;CAE1E,CAAA;AAEL"}
|
|
@@ -26,10 +26,16 @@ function FrameSourceWindow({ frame, className, focalTone = "error", markers }) {
|
|
|
26
26
|
}, [lines, language]);
|
|
27
27
|
if (lines.length === 0) return null;
|
|
28
28
|
const neutralClassName = "bg-primary/10 font-semibold text-foreground";
|
|
29
|
-
const focalClassName =
|
|
29
|
+
const focalClassName = {
|
|
30
|
+
neutral: neutralClassName,
|
|
31
|
+
error: "bg-red-500/10 font-semibold text-red-800 dark:text-red-300",
|
|
32
|
+
warning: "bg-amber-500/10 font-semibold text-foreground",
|
|
33
|
+
info: "bg-sky-500/10 font-semibold text-foreground"
|
|
34
|
+
}[focalTone];
|
|
30
35
|
const markerAt = new Map(markers?.map((marker) => [marker.line, marker.content]));
|
|
31
36
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
32
|
-
|
|
37
|
+
"data-scroll-x": true,
|
|
38
|
+
className: require_utils.cn("mx-3 mb-2 ml-12 overflow-x-auto max-sm:ml-6 rounded border border-border/60 bg-muted/30 py-1 font-mono text-[11px] leading-relaxed", className),
|
|
33
39
|
children: lines.map((source, i) => {
|
|
34
40
|
const lineNumber = numbers?.[i] ?? start + i;
|
|
35
41
|
const known = numbers === void 0 || lineNumber > 0;
|
|
@@ -37,6 +43,7 @@ function FrameSourceWindow({ frame, className, focalTone = "error", markers }) {
|
|
|
37
43
|
const marker = known ? markerAt.get(lineNumber) : void 0;
|
|
38
44
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
39
45
|
"data-source-line": known ? lineNumber : void 0,
|
|
46
|
+
"data-source-tone": isFocal ? focalTone : void 0,
|
|
40
47
|
"data-marked": marker === void 0 ? void 0 : "true",
|
|
41
48
|
className: ["grid min-w-max grid-cols-[3.5rem_minmax(24rem,1fr)] gap-3 px-2", isFocal ? focalClassName : marker !== void 0 ? neutralClassName : "text-foreground"].join(" "),
|
|
42
49
|
children: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrameSourceWindow.cjs","names":["useMemo","useState","cn","HighlightedTokens"],"sources":["../../../src/data/diagnostics/FrameSourceWindow.tsx"],"sourcesContent":["import { useEffect, useMemo, useState, type ReactNode } from \"react\";\nimport { cn } from \"../../lib/utils\";\nimport { highlightToLines, type HighlightedLine } from \"../code-highlight\";\nimport { HighlightedTokens } from \"../HighlightedTokens\";\nimport type { FrameSource } from \"./FrameSourceWindow.utils\";\n\n// FrameSourceWindow renders a decompiled / resolved source window beneath a\n// stack frame: a gutter of absolute line numbers with the focal line (the one\n// the frame points at) highlighted. It is the single source-window renderer,\n// shared by the JVM thread-dump frames, the exception stack-trace frames, and\n// frameless callers that have source but no stack (a template error, a single\n// decompiled class).\n//\n// The gutter is painted explicitly rather than by embedding Shiki's own `<pre>`,\n// because `sourceLineNumbers` is frequently NOT a contiguous run: arthas `jad`\n// returns bytecode-keyed line numbers with gaps. A CSS-counter gutter would\n// silently renumber those. Tokenizing via `highlightToLines` keeps the\n// highlighting while letting us own the numbering — the same trade CodeDiff makes.\nexport function FrameSourceWindow({\n frame,\n className,\n focalTone = \"error\",\n markers,\n}: {\n frame: FrameSource;\n className?: string;\n /**\n * Lines to point at besides the focal one, each with an annotation painted\n * under its code — e.g. the calls a caller's source makes. A marked line\n * takes the neutral highlight.\n */\n markers?: { line: number; content: ReactNode }[];\n /**\n * Styling for the focal line. `\"error\"` (the default, so existing callers\n * render unchanged) is the red highlight meaning \"this line failed\".\n * `\"neutral\"` marks \"the line that made this call\" — a subtle theme-token\n * highlight with no red.\n */\n focalTone?: \"error\" | \"neutral\";\n}) {\n const lines = useMemo(() => frame.sourceLines ?? [], [frame.sourceLines]);\n const start = frame.sourceStartLine ?? 0;\n const numbers = frame.sourceLineNumbers;\n const focal = frame.line ?? -1;\n // No default language: this renderer is shared by JVM frames, exception frames\n // and frameless callers, so a Go dump or a template error must not be coloured\n // with Java grammar. `highlightToLines` returns null without a language and\n // `HighlightedTokens` then paints the plain source.\n const language = frame.sourceLanguage;\n\n const [tokens, setTokens] = useState<HighlightedLine[] | null>(null);\n\n useEffect(() => {\n if (lines.length === 0) {\n setTokens(null);\n return;\n }\n let cancelled = false;\n highlightToLines(lines.join(\"\\n\"), { lang: language }).then((out) => {\n if (!cancelled) setTokens(out);\n });\n return () => {\n cancelled = true;\n };\n }, [lines, language]);\n\n if (lines.length === 0) return null;\n\n const neutralClassName = \"bg-primary/10 font-semibold text-foreground\";\n const focalClassName
|
|
1
|
+
{"version":3,"file":"FrameSourceWindow.cjs","names":["useMemo","useState","cn","HighlightedTokens"],"sources":["../../../src/data/diagnostics/FrameSourceWindow.tsx"],"sourcesContent":["import { useEffect, useMemo, useState, type ReactNode } from \"react\";\nimport { cn } from \"../../lib/utils\";\nimport { highlightToLines, type HighlightedLine } from \"../code-highlight\";\nimport { HighlightedTokens } from \"../HighlightedTokens\";\nimport type { FrameSource } from \"./FrameSourceWindow.utils\";\n\n// FrameSourceWindow renders a decompiled / resolved source window beneath a\n// stack frame: a gutter of absolute line numbers with the focal line (the one\n// the frame points at) highlighted. It is the single source-window renderer,\n// shared by the JVM thread-dump frames, the exception stack-trace frames, and\n// frameless callers that have source but no stack (a template error, a single\n// decompiled class).\n//\n// The gutter is painted explicitly rather than by embedding Shiki's own `<pre>`,\n// because `sourceLineNumbers` is frequently NOT a contiguous run: arthas `jad`\n// returns bytecode-keyed line numbers with gaps. A CSS-counter gutter would\n// silently renumber those. Tokenizing via `highlightToLines` keeps the\n// highlighting while letting us own the numbering — the same trade CodeDiff makes.\nexport function FrameSourceWindow({\n frame,\n className,\n focalTone = \"error\",\n markers,\n}: {\n frame: FrameSource;\n className?: string;\n /**\n * Lines to point at besides the focal one, each with an annotation painted\n * under its code — e.g. the calls a caller's source makes. A marked line\n * takes the neutral highlight.\n */\n markers?: { line: number; content: ReactNode }[];\n /**\n * Styling for the focal line. `\"error\"` (the default, so existing callers\n * render unchanged) is the red highlight meaning \"this line failed\".\n * `\"neutral\"` marks \"the line that made this call\" — a subtle theme-token\n * highlight with no red.\n */\n focalTone?: \"error\" | \"warning\" | \"info\" | \"neutral\";\n}) {\n const lines = useMemo(() => frame.sourceLines ?? [], [frame.sourceLines]);\n const start = frame.sourceStartLine ?? 0;\n const numbers = frame.sourceLineNumbers;\n const focal = frame.line ?? -1;\n // No default language: this renderer is shared by JVM frames, exception frames\n // and frameless callers, so a Go dump or a template error must not be coloured\n // with Java grammar. `highlightToLines` returns null without a language and\n // `HighlightedTokens` then paints the plain source.\n const language = frame.sourceLanguage;\n\n const [tokens, setTokens] = useState<HighlightedLine[] | null>(null);\n\n useEffect(() => {\n if (lines.length === 0) {\n setTokens(null);\n return;\n }\n let cancelled = false;\n highlightToLines(lines.join(\"\\n\"), { lang: language }).then((out) => {\n if (!cancelled) setTokens(out);\n });\n return () => {\n cancelled = true;\n };\n }, [lines, language]);\n\n if (lines.length === 0) return null;\n\n const neutralClassName = \"bg-primary/10 font-semibold text-foreground\";\n const focalClassName = {\n neutral: neutralClassName,\n error: \"bg-red-500/10 font-semibold text-red-800 dark:text-red-300\",\n warning: \"bg-amber-500/10 font-semibold text-foreground\",\n info: \"bg-sky-500/10 font-semibold text-foreground\",\n }[focalTone];\n const markerAt = new Map(markers?.map((marker) => [marker.line, marker.content]));\n\n return (\n <div\n data-scroll-x\n className={cn(\n \"mx-3 mb-2 ml-12 overflow-x-auto max-sm:ml-6 rounded border border-border/60 bg-muted/30 py-1 font-mono text-[11px] leading-relaxed\",\n className,\n )}\n >\n {lines.map((source, i) => {\n const lineNumber = numbers?.[i] ?? start + i;\n const known = numbers === undefined || lineNumber > 0;\n const isFocal = known && lineNumber === focal;\n const marker = known ? markerAt.get(lineNumber) : undefined;\n return (\n <div\n key={`${lineNumber}-${i}`}\n data-source-line={known ? lineNumber : undefined}\n data-source-tone={isFocal ? focalTone : undefined}\n data-marked={marker === undefined ? undefined : \"true\"}\n className={[\n \"grid min-w-max grid-cols-[3.5rem_minmax(24rem,1fr)] gap-3 px-2\",\n isFocal ? focalClassName : marker !== undefined ? neutralClassName : \"text-foreground\",\n ].join(\" \")}\n >\n <span className=\"select-none text-right text-muted-foreground\">\n {isFocal || marker !== undefined ? \">\" : \"\"}\n {known ? lineNumber : \"\"}\n </span>\n <code className=\"whitespace-pre\">\n {source ? <HighlightedTokens tokens={tokens?.[i]} content={source} /> : \" \"}\n </code>\n {/* Under the line rather than after it: a long line would push it past the window's scroll edge. */}\n {marker !== undefined ? (\n <span data-source-marker className=\"col-start-2 -mt-0.5 mb-0.5 font-sans font-normal\">\n {marker}\n </span>\n ) : null}\n </div>\n );\n })}\n </div>\n );\n}\n"],"mappings":";;;;;;AAkBA,SAAgB,kBAAkB,EAChC,OACA,WACA,YAAY,SACZ,WAiBC;CACD,MAAM,SAAA,GAAQA,MAAAA,QAAAA,OAAc,MAAM,eAAe,CAAC,GAAG,CAAC,MAAM,WAAW,CAAC;CACxE,MAAM,QAAQ,MAAM,mBAAmB;CACvC,MAAM,UAAU,MAAM;CACtB,MAAM,QAAQ,MAAM,QAAQ;CAK5B,MAAM,WAAW,MAAM;CAEvB,MAAM,CAAC,QAAQ,cAAA,GAAaC,MAAAA,SAAAA,CAAmC,IAAI;CAEnE,CAAA,GAAA,MAAA,UAAA,OAAgB;EACd,IAAI,MAAM,WAAW,GAAG;GACtB,UAAU,IAAI;GACd;EACF;EACA,IAAI,YAAY;EAChB,uBAAA,iBAAiB,MAAM,KAAK,IAAI,GAAG,EAAE,MAAM,SAAS,CAAC,CAAC,CAAC,MAAM,QAAQ;GACnE,IAAI,CAAC,WAAW,UAAU,GAAG;EAC/B,CAAC;EACD,aAAa;GACX,YAAY;EACd;CACF,GAAG,CAAC,OAAO,QAAQ,CAAC;CAEpB,IAAI,MAAM,WAAW,GAAG,OAAO;CAE/B,MAAM,mBAAmB;CACzB,MAAM,iBAAiB;EACrB,SAAS;EACT,OAAO;EACP,SAAS;EACT,MAAM;CACR,EAAE;CACF,MAAM,WAAW,IAAI,IAAI,SAAS,KAAK,WAAW,CAAC,OAAO,MAAM,OAAO,OAAO,CAAC,CAAC;CAEhF,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EACE,iBAAA;EACA,WAAWC,cAAAA,GACT,sIACA,SACF;EAEC,UAAA,MAAM,KAAK,QAAQ,MAAM;GACxB,MAAM,aAAa,UAAU,MAAM,QAAQ;GAC3C,MAAM,QAAQ,YAAY,KAAA,KAAa,aAAa;GACpD,MAAM,UAAU,SAAS,eAAe;GACxC,MAAM,SAAS,QAAQ,SAAS,IAAI,UAAU,IAAI,KAAA;GAClD,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;IAEE,oBAAkB,QAAQ,aAAa,KAAA;IACvC,oBAAkB,UAAU,YAAY,KAAA;IACxC,eAAa,WAAW,KAAA,IAAY,KAAA,IAAY;IAChD,WAAW,CACT,kEACA,UAAU,iBAAiB,WAAW,KAAA,IAAY,mBAAmB,iBACvE,CAAC,CAAC,KAAK,GAAG;IARZ,UAAA;KAUE,iBAAA,GAAA,kBAAA,KAAA,CAAC,QAAD;MAAM,WAAU;MAAhB,UAAA,CACG,WAAW,WAAW,KAAA,IAAY,MAAM,IACxC,QAAQ,aAAa,EAClB;;KACN,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;MAAM,WAAU;MACb,UAAA,SAAS,iBAAA,GAAA,kBAAA,IAAA,CAACC,0BAAAA,mBAAD;OAAmB,QAAQ,SAAS;OAAI,SAAS;MAAS,CAAA,IAAI;KACpE,CAAA;KAEL,WAAW,KAAA,IACV,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;MAAM,sBAAA;MAAmB,WAAU;MAChC,UAAA;KACG,CAAA,IACJ;IACD;GAtBE,GAAA,GAAG,WAAW,GAAG,GAsBnB;EAET,CAAC;CACE,CAAA;AAET"}
|
|
@@ -18,6 +18,6 @@ export declare function FrameSourceWindow({ frame, className, focalTone, markers
|
|
|
18
18
|
* `"neutral"` marks "the line that made this call" — a subtle theme-token
|
|
19
19
|
* highlight with no red.
|
|
20
20
|
*/
|
|
21
|
-
focalTone?: "error" | "neutral";
|
|
21
|
+
focalTone?: "error" | "warning" | "info" | "neutral";
|
|
22
22
|
}): import("react").JSX.Element | null;
|
|
23
23
|
//# sourceMappingURL=FrameSourceWindow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrameSourceWindow.d.ts","sourceRoot":"","sources":["../../../src/data/diagnostics/FrameSourceWindow.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAIrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAc7D,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,SAAS,EACT,SAAmB,EACnB,OAAO,GACR,EAAE;IACD,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,SAAS,CAAA;KAAE,EAAE,CAAC;IACjD;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"FrameSourceWindow.d.ts","sourceRoot":"","sources":["../../../src/data/diagnostics/FrameSourceWindow.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAIrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAc7D,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,SAAS,EACT,SAAmB,EACnB,OAAO,GACR,EAAE;IACD,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,SAAS,CAAA;KAAE,EAAE,CAAC;IACjD;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;CACtD,sCAgFA"}
|
|
@@ -26,10 +26,16 @@ function FrameSourceWindow({ frame, className, focalTone = "error", markers }) {
|
|
|
26
26
|
}, [lines, language]);
|
|
27
27
|
if (lines.length === 0) return null;
|
|
28
28
|
const neutralClassName = "bg-primary/10 font-semibold text-foreground";
|
|
29
|
-
const focalClassName =
|
|
29
|
+
const focalClassName = {
|
|
30
|
+
neutral: neutralClassName,
|
|
31
|
+
error: "bg-red-500/10 font-semibold text-red-800 dark:text-red-300",
|
|
32
|
+
warning: "bg-amber-500/10 font-semibold text-foreground",
|
|
33
|
+
info: "bg-sky-500/10 font-semibold text-foreground"
|
|
34
|
+
}[focalTone];
|
|
30
35
|
const markerAt = new Map(markers?.map((marker) => [marker.line, marker.content]));
|
|
31
36
|
return /* @__PURE__ */ jsx("div", {
|
|
32
|
-
|
|
37
|
+
"data-scroll-x": true,
|
|
38
|
+
className: cn("mx-3 mb-2 ml-12 overflow-x-auto max-sm:ml-6 rounded border border-border/60 bg-muted/30 py-1 font-mono text-[11px] leading-relaxed", className),
|
|
33
39
|
children: lines.map((source, i) => {
|
|
34
40
|
const lineNumber = numbers?.[i] ?? start + i;
|
|
35
41
|
const known = numbers === void 0 || lineNumber > 0;
|
|
@@ -37,6 +43,7 @@ function FrameSourceWindow({ frame, className, focalTone = "error", markers }) {
|
|
|
37
43
|
const marker = known ? markerAt.get(lineNumber) : void 0;
|
|
38
44
|
return /* @__PURE__ */ jsxs("div", {
|
|
39
45
|
"data-source-line": known ? lineNumber : void 0,
|
|
46
|
+
"data-source-tone": isFocal ? focalTone : void 0,
|
|
40
47
|
"data-marked": marker === void 0 ? void 0 : "true",
|
|
41
48
|
className: ["grid min-w-max grid-cols-[3.5rem_minmax(24rem,1fr)] gap-3 px-2", isFocal ? focalClassName : marker !== void 0 ? neutralClassName : "text-foreground"].join(" "),
|
|
42
49
|
children: [
|