@flanksource/clicky-ui 0.3.38 → 0.3.40
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/README.md +40 -4
- package/dist/ai.d.ts +1 -1
- package/dist/chat.d.ts +1 -1
- package/dist/clicky.d.ts +1 -1
- package/dist/comments/CommentAuthor.d.ts +2 -2
- package/dist/comments/CommentCard.d.ts +1 -1
- package/dist/comments/CommentCardParts.d.ts +1 -1
- package/dist/comments/CommentComposer.d.ts +1 -1
- package/dist/comments/CommentFilterBar.d.ts +1 -1
- package/dist/comments/CommentProgress.d.ts +1 -1
- package/dist/comments/CommentProvider.d.ts +2 -2
- package/dist/comments/CommentSidePanel.d.ts +1 -1
- package/dist/comments/CommentThread.d.ts +1 -1
- package/dist/comments/CommentThreadList.d.ts +1 -1
- package/dist/comments/GroupedComments.d.ts +1 -1
- package/dist/comments/MentionTextarea.d.ts +1 -1
- package/dist/comments/comment-context.d.ts +1 -1
- package/dist/comments/comment-fixtures.d.ts +1 -1
- package/dist/comments/comment-types.d.ts +1 -1
- package/dist/comments/comment-utils.d.ts +2 -2
- package/dist/comments.d.ts +16 -16
- package/dist/components/AccordionList.d.ts +1 -1
- package/dist/components/Combobox.d.ts +2 -2
- package/dist/components/ComboboxControl.d.ts +2 -2
- package/dist/components/ComboboxMenu.d.ts +2 -2
- package/dist/components/ComboboxTags.d.ts +1 -1
- package/dist/components/ConnectionLoggingPolicy.d.ts +1 -1
- package/dist/components/CountryPicker.d.ts +1 -1
- package/dist/components/EndpointSelector.d.ts +1 -1
- package/dist/components/EndpointSelector.model.d.ts +4 -4
- package/dist/components/FilterBar.d.ts +8 -8
- package/dist/components/FormLookupProvider.d.ts +1 -1
- package/dist/components/FormatOptionsDropdown.d.ts +2 -2
- package/dist/components/IconButton.d.ts +1 -1
- package/dist/components/ItemActions.d.ts +1 -1
- package/dist/components/JSONPathField.d.ts +4 -4
- package/dist/components/JsonSchemaForm.d.ts +1 -1
- package/dist/components/ListMenu.d.ts +2 -2
- package/dist/components/MdxEditorCallout.d.ts +1 -1
- package/dist/components/MdxEditorField.d.ts +2 -2
- package/dist/components/MdxEditorToolbar.d.ts +1 -1
- package/dist/components/MultiSelect.d.ts +1 -1
- package/dist/components/OnePasswordSelector.d.ts +1 -1
- package/dist/components/ScheduleEditor.d.ts +1 -1
- package/dist/components/SearchInput.d.ts +1 -1
- package/dist/components/SecretFormField.d.ts +2 -2
- package/dist/components/SecretKeySelector.d.ts +1 -1
- package/dist/components/SecretKeySelector.model.d.ts +1 -1
- package/dist/components/SegmentedControl.d.ts +1 -1
- package/dist/components/SplitButton.d.ts +3 -3
- package/dist/components/TreePickerField.d.ts +2 -2
- package/dist/components/TriStateToggle.d.ts +1 -1
- package/dist/components/WorkloadPicker.d.ts +2 -2
- package/dist/components/button.d.ts +1 -1
- package/dist/components/combobox-types.d.ts +2 -2
- package/dist/components/endpoint-port.d.ts +1 -1
- package/dist/components/filter-bar-field-utils.d.ts +3 -3
- package/dist/components/filter-bar-multi.d.ts +4 -4
- package/dist/components/filter-bar-utils.d.ts +1 -1
- package/dist/components/form-lookup-context.d.ts +1 -1
- package/dist/components/format-options.d.ts +1 -1
- package/dist/components/icon-menu-picker.d.ts +1 -1
- package/dist/components/jotai-bindings-core.d.ts +2 -2
- package/dist/components/jotai-bindings.d.ts +1 -1
- package/dist/components/json-schema-form-accordion-array.d.ts +1 -1
- package/dist/components/json-schema-form-array.d.ts +1 -1
- package/dist/components/json-schema-form-cards-array.d.ts +1 -1
- package/dist/components/json-schema-form-collection-layouts.fixtures.d.ts +1 -1
- package/dist/components/json-schema-form-discriminator.d.ts +1 -1
- package/dist/components/json-schema-form-error-display.d.ts +1 -1
- package/dist/components/json-schema-form-errors.d.ts +2 -2
- package/dist/components/json-schema-form-extensions.d.ts +1 -1
- package/dist/components/json-schema-form-fields.d.ts +2 -2
- package/dist/components/json-schema-form-filter.d.ts +1 -1
- package/dist/components/json-schema-form-grid.d.ts +2 -2
- package/dist/components/json-schema-form-item-row.d.ts +1 -1
- package/dist/components/json-schema-form-item-summary.d.ts +1 -1
- package/dist/components/json-schema-form-layout.d.ts +3 -3
- package/dist/components/json-schema-form-list-array.d.ts +1 -1
- package/dist/components/json-schema-form-lookup-tree.d.ts +2 -2
- package/dist/components/json-schema-form-object.d.ts +1 -1
- package/dist/components/json-schema-form-preferences.d.ts +1 -1
- package/dist/components/json-schema-form-properties-errors.fixtures.d.ts +2 -2
- package/dist/components/json-schema-form-properties-size.d.ts +1 -1
- package/dist/components/json-schema-form-properties.d.ts +2 -2
- package/dist/components/json-schema-form-properties.fixtures.d.ts +1 -1
- package/dist/components/json-schema-form-property-collection.d.ts +1 -1
- package/dist/components/json-schema-form-property-preview.d.ts +1 -1
- package/dist/components/json-schema-form-property-selection.d.ts +1 -1
- package/dist/components/json-schema-form-refs.d.ts +1 -1
- package/dist/components/json-schema-form-render.d.ts +1 -1
- package/dist/components/json-schema-form-resolve.d.ts +1 -1
- package/dist/components/json-schema-form-runtime-types.d.ts +4 -4
- package/dist/components/json-schema-form-size.d.ts +1 -1
- package/dist/components/json-schema-form-table-array.d.ts +1 -1
- package/dist/components/json-schema-form-tags-combobox.d.ts +2 -2
- package/dist/components/json-schema-form-template-menu.d.ts +1 -1
- package/dist/components/json-schema-form-template.d.ts +3 -3
- package/dist/components/json-schema-form-types.d.ts +5 -5
- package/dist/components/json-schema-form-utils.d.ts +2 -2
- package/dist/components/mdx-editor-callout-model.d.ts +1 -1
- package/dist/components/mdx-editor-callout.d.ts +1 -1
- package/dist/components/mdx-editor-field-plugins.d.ts +1 -1
- package/dist/components/mdx-editor-jsx-attributes.d.ts +1 -1
- package/dist/components/mdx-editor-options.d.ts +1 -1
- package/dist/components/secret-form-extension.d.ts +4 -4
- package/dist/components/unit-form-extension.d.ts +1 -1
- package/dist/components/useComboboxLayout.d.ts +1 -1
- package/dist/components/workload-picker-utils.d.ts +1 -1
- package/dist/components.d.ts +102 -102
- package/dist/data/Avatar.d.ts +1 -1
- package/dist/data/AvatarBadge.d.ts +3 -3
- package/dist/data/Badge.d.ts +2 -2
- package/dist/data/Callout.d.ts +1 -1
- package/dist/data/Clicky.d.ts +10 -10
- package/dist/data/Clicky.fixtures.d.ts +1 -1
- package/dist/data/DataTable.d.ts +11 -11
- package/dist/data/DataTableMenuSections.d.ts +3 -3
- package/dist/data/DataTablePreferencesSheet.d.ts +3 -3
- package/dist/data/FilterPill.d.ts +1 -1
- package/dist/data/FixtureEditor/FenceForm.d.ts +2 -2
- package/dist/data/FixtureEditor/FixtureEditor.d.ts +1 -1
- package/dist/data/FixtureEditor/FixtureFenceCodeBlockEditor.d.ts +2 -2
- package/dist/data/FixtureEditor/FixtureFrontmatterDialog.d.ts +1 -1
- package/dist/data/FixtureEditor/fixture-blocks.d.ts +2 -2
- package/dist/data/FixtureEditor/fixture-code-block-model.d.ts +1 -1
- package/dist/data/FixtureEditor/fixture-frontmatter.d.ts +1 -1
- package/dist/data/FixtureEditor/index.d.ts +4 -4
- package/dist/data/FixtureEditor/types.d.ts +3 -3
- package/dist/data/Gauge.d.ts +1 -1
- package/dist/data/GaugeHoverCard.d.ts +1 -1
- package/dist/data/GraphDiagram.d.ts +1 -1
- package/dist/data/HighlightedTokens.d.ts +1 -1
- package/dist/data/Icon.d.ts +1 -1
- package/dist/data/LogDetails.d.ts +3 -3
- package/dist/data/LogsTable.d.ts +3 -3
- package/dist/data/MarkdownEditor.d.ts +2 -2
- package/dist/data/MarkdownEditor.model.d.ts +1 -1
- package/dist/data/ObjectGraph.d.ts +2 -2
- package/dist/data/ProgressBars.d.ts +1 -1
- package/dist/data/PromptBanner.d.ts +1 -1
- package/dist/data/PromptBanner.model.d.ts +1 -1
- package/dist/data/PromptDialog.d.ts +1 -1
- package/dist/data/Properties.d.ts +1 -1
- package/dist/data/RadialGauge.d.ts +1 -1
- package/dist/data/SchemaViewer.d.ts +2 -2
- package/dist/data/SelectionActionBar.d.ts +1 -1
- package/dist/data/ServerTimingBadge.d.ts +2 -2
- package/dist/data/SortableHeader.d.ts +1 -1
- package/dist/data/StatStrip.d.ts +2 -2
- package/dist/data/TabButton.d.ts +1 -1
- package/dist/data/TaskExecDetails.d.ts +1 -1
- package/dist/data/TaskHeaderExtras.d.ts +1 -1
- package/dist/data/TaskManager.d.ts +2 -2
- package/dist/data/TaskProcessDetails.d.ts +1 -1
- package/dist/data/TaskProcessMetadata.d.ts +1 -1
- package/dist/data/TaskProgress.d.ts +3 -3
- package/dist/data/TaskResourceReadings.d.ts +1 -1
- package/dist/data/TaskStreamTabs.d.ts +1 -1
- package/dist/data/Timeline.d.ts +2 -2
- package/dist/data/TimeseriesCoreBars.cjs +10 -36
- package/dist/data/TimeseriesCoreBars.cjs.map +1 -1
- package/dist/data/TimeseriesCoreBars.d.ts +5 -5
- package/dist/data/TimeseriesCoreBars.d.ts.map +1 -1
- package/dist/data/TimeseriesCoreBars.js +8 -34
- package/dist/data/TimeseriesCoreBars.js.map +1 -1
- package/dist/data/TimeseriesGauge.cjs +12 -36
- package/dist/data/TimeseriesGauge.cjs.map +1 -1
- package/dist/data/TimeseriesGauge.d.ts +15 -5
- package/dist/data/TimeseriesGauge.d.ts.map +1 -1
- package/dist/data/TimeseriesGauge.js +10 -34
- package/dist/data/TimeseriesGauge.js.map +1 -1
- package/dist/data/TimeseriesPanel.axes.d.ts +1 -1
- package/dist/data/TimeseriesPanel.cjs +82 -39
- package/dist/data/TimeseriesPanel.cjs.map +1 -1
- package/dist/data/TimeseriesPanel.d.ts +3 -3
- package/dist/data/TimeseriesPanel.d.ts.map +1 -1
- package/dist/data/TimeseriesPanel.js +82 -39
- package/dist/data/TimeseriesPanel.js.map +1 -1
- package/dist/data/TimeseriesPanel.model.cjs +1 -0
- package/dist/data/TimeseriesPanel.model.cjs.map +1 -1
- package/dist/data/TimeseriesPanel.model.d.ts +39 -3
- package/dist/data/TimeseriesPanel.model.d.ts.map +1 -1
- package/dist/data/TimeseriesPanel.model.js +1 -0
- package/dist/data/TimeseriesPanel.model.js.map +1 -1
- package/dist/data/Tree.d.ts +1 -1
- package/dist/data/TreeGroupHeader.d.ts +1 -1
- package/dist/data/Version.d.ts +1 -1
- package/dist/data/WorkloadCard.cjs +65 -31
- package/dist/data/WorkloadCard.cjs.map +1 -1
- package/dist/data/WorkloadCard.d.ts +17 -7
- package/dist/data/WorkloadCard.d.ts.map +1 -1
- package/dist/data/WorkloadCard.js +67 -33
- package/dist/data/WorkloadCard.js.map +1 -1
- package/dist/data/WorkloadCard.model.cjs +16 -10
- package/dist/data/WorkloadCard.model.cjs.map +1 -1
- package/dist/data/WorkloadCard.model.d.ts +33 -5
- package/dist/data/WorkloadCard.model.d.ts.map +1 -1
- package/dist/data/WorkloadCard.model.js +17 -11
- package/dist/data/WorkloadCard.model.js.map +1 -1
- package/dist/data/ai/AdvancedChatConfig.d.ts +2 -2
- package/dist/data/ai/ChatButton.d.ts +1 -1
- package/dist/data/ai/ChatFab.d.ts +1 -1
- package/dist/data/ai/ChatWindow.catalogs.d.ts +2 -2
- package/dist/data/ai/ChatWindow.d.ts +2 -2
- package/dist/data/ai/ChatWindow.models.d.ts +1 -1
- package/dist/data/ai/ChatWindow.preferences.d.ts +2 -2
- package/dist/data/ai/ChatWindow.runtime.d.ts +2 -2
- package/dist/data/ai/ChatWindow.test-utils.d.ts +2 -2
- package/dist/data/ai/ChatWindow.thread-status.d.ts +1 -1
- package/dist/data/ai/ChatWindow.thread.d.ts +1 -1
- package/dist/data/ai/ChatWindow.tool-catalog.d.ts +1 -1
- package/dist/data/ai/ChatWindow.types.d.ts +6 -6
- package/dist/data/ai/ChatWindowRequestBody.d.ts +3 -3
- package/dist/data/ai/ContextBadges.d.ts +1 -1
- package/dist/data/ai/PolicyTree.d.ts +1 -1
- package/dist/data/ai/PromptCatalog/PromptCatalogTable.d.ts +1 -1
- package/dist/data/ai/PromptCatalog/PromptLayerStrip.d.ts +1 -1
- package/dist/data/ai/PromptCatalog/PromptPage.d.ts +4 -4
- package/dist/data/ai/PromptCatalog/PromptPageEditor.d.ts +4 -4
- package/dist/data/ai/PromptCatalog/PromptPageHeader.d.ts +1 -1
- package/dist/data/ai/PromptCatalog/PromptPagePreview.d.ts +1 -1
- package/dist/data/ai/PromptCatalog/PromptPageSaveBar.d.ts +1 -1
- package/dist/data/ai/PromptCatalog/PromptSourceBadge.d.ts +1 -1
- package/dist/data/ai/PromptCatalog/index.d.ts +8 -8
- package/dist/data/ai/PromptCatalog/prompt-catalog-model.d.ts +1 -1
- package/dist/data/ai/PromptCatalog/prompt-page-model.d.ts +4 -4
- package/dist/data/ai/PromptCatalog/types.d.ts +1 -1
- package/dist/data/ai/PromptPicker/PromptPicker.d.ts +4 -4
- package/dist/data/ai/PromptPicker/PromptSourceRepair.d.ts +1 -1
- package/dist/data/ai/PromptPicker/index.d.ts +4 -4
- package/dist/data/ai/PromptPicker/prompt-runtime.d.ts +2 -2
- package/dist/data/ai/PromptPicker/types.d.ts +1 -1
- package/dist/data/ai/PromptRunEditor/PromptBlocks.d.ts +4 -4
- package/dist/data/ai/PromptRunEditor/RecentRuntimes.d.ts +3 -3
- package/dist/data/ai/PromptRunEditor/RuntimeRows.d.ts +5 -5
- package/dist/data/ai/PromptRunEditor/VariablesField.d.ts +1 -1
- package/dist/data/ai/PromptRunEditor/index.d.ts +11 -11
- package/dist/data/ai/PromptRunEditor/model.d.ts +1 -1
- package/dist/data/ai/PromptRunEditor/runtimeActions.d.ts +4 -4
- package/dist/data/ai/PromptRunEditor/yaml.d.ts +1 -1
- package/dist/data/ai/RuntimeModePicker.d.ts +3 -3
- package/dist/data/ai/SandboxConnectionsSection.d.ts +1 -1
- package/dist/data/ai/SandboxCreateWizard.d.ts +2 -2
- package/dist/data/ai/SandboxCreateWizard.model.d.ts +1 -1
- package/dist/data/ai/SessionChatComposer.d.ts +1 -1
- package/dist/data/ai/SessionInspector.approvals-model.d.ts +1 -1
- package/dist/data/ai/SessionInspector.approvals.d.ts +3 -3
- package/dist/data/ai/SessionInspector.collection-types.d.ts +2 -2
- package/dist/data/ai/SessionInspector.collection.d.ts +3 -3
- package/dist/data/ai/SessionInspector.compact.d.ts +2 -2
- package/dist/data/ai/SessionInspector.d.ts +6 -6
- package/dist/data/ai/SessionInspector.files.d.ts +1 -1
- package/dist/data/ai/SessionInspector.hierarchy-state.d.ts +2 -2
- package/dist/data/ai/SessionInspector.hierarchy.d.ts +2 -2
- package/dist/data/ai/SessionInspector.model.d.ts +1 -1
- package/dist/data/ai/SessionInspector.panel-values.d.ts +1 -1
- package/dist/data/ai/SessionInspector.panels.d.ts +4 -4
- package/dist/data/ai/SessionInspector.plan.d.ts +1 -1
- package/dist/data/ai/SessionInspector.summary.d.ts +1 -1
- package/dist/data/ai/SessionInspector.tabs.d.ts +2 -2
- package/dist/data/ai/SessionInspector.tabs.model.d.ts +2 -2
- package/dist/data/ai/SessionInspector.transcript.d.ts +2 -2
- package/dist/data/ai/SessionInspector.turns.d.ts +1 -1
- package/dist/data/ai/SessionViewer.d.ts +5 -5
- package/dist/data/ai/SessionViewer.fixtures.d.ts +2 -2
- package/dist/data/ai/SessionViewer.grouping.d.ts +1 -1
- package/dist/data/ai/SessionViewer.header.d.ts +2 -2
- package/dist/data/ai/SessionViewer.model.d.ts +2 -2
- package/dist/data/ai/SessionViewer.row-metadata.d.ts +1 -1
- package/dist/data/ai/SessionViewer.rows.d.ts +3 -3
- package/dist/data/ai/SessionViewer.tool-details.d.ts +1 -1
- package/dist/data/ai/SessionViewer.tool-row.d.ts +2 -2
- package/dist/data/ai/SessionViewerMenu.d.ts +2 -2
- package/dist/data/ai/SpecRuntimeEditor/CLIArgsSection.d.ts +2 -2
- package/dist/data/ai/SpecRuntimeEditor/CommitSection.d.ts +1 -1
- package/dist/data/ai/SpecRuntimeEditor/EnvironmentSection.d.ts +2 -2
- package/dist/data/ai/SpecRuntimeEditor/ModelContextAdvanced.d.ts +3 -3
- package/dist/data/ai/SpecRuntimeEditor/ModelSection.d.ts +5 -5
- package/dist/data/ai/SpecRuntimeEditor/PermissionModeField.d.ts +2 -2
- package/dist/data/ai/SpecRuntimeEditor/PermissionPolicyList.d.ts +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.d.ts +4 -4
- package/dist/data/ai/SpecRuntimeEditor/PromptSection.d.ts +2 -2
- package/dist/data/ai/SpecRuntimeEditor/SandboxSection.d.ts +4 -4
- package/dist/data/ai/SpecRuntimeEditor/SectionCard.d.ts +1 -1
- package/dist/data/ai/SpecRuntimeEditor/SectionTabs.d.ts +1 -1
- package/dist/data/ai/SpecRuntimeEditor/VerifySection.d.ts +5 -5
- package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.d.ts +3 -3
- package/dist/data/ai/SpecRuntimeEditor/env-model.d.ts +2 -2
- package/dist/data/ai/SpecRuntimeEditor/fields.d.ts +2 -2
- package/dist/data/ai/SpecRuntimeEditor/index.d.ts +11 -11
- package/dist/data/ai/SpecRuntimeEditor/permission-mode-visuals.d.ts +3 -3
- package/dist/data/ai/SpecRuntimeEditor/permissions-model.d.ts +3 -3
- package/dist/data/ai/SpecRuntimeEditor/summaries.d.ts +3 -3
- package/dist/data/ai/SpecRuntimeEditor/types.d.ts +4 -4
- package/dist/data/ai/SpecRuntimeEditor/update.d.ts +1 -1
- package/dist/data/ai/SpecRuntimeEditor.model.d.ts +5 -5
- package/dist/data/ai/ToolPreferences.d.ts +4 -4
- package/dist/data/ai/ToolPreferences.model.d.ts +2 -2
- package/dist/data/ai/ToolPreferencesList.d.ts +3 -3
- package/dist/data/ai/ToolSchemaBrowser.d.ts +2 -2
- package/dist/data/ai/ToolSchemaBrowser.detail.d.ts +2 -2
- package/dist/data/ai/ToolSchemaBrowser.model.d.ts +2 -2
- package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.d.ts +2 -2
- package/dist/data/ai/ToolSchemaBrowser.sidebar.d.ts +4 -4
- package/dist/data/ai/agent-action-icons.d.ts +5 -5
- package/dist/data/ai/chat-window-context.d.ts +3 -3
- package/dist/data/ai/context.d.ts +1 -1
- package/dist/data/ai/examples/sessions/claude-complete.d.ts +1 -1
- package/dist/data/ai/examples/sessions/claude.d.ts +1 -1
- package/dist/data/ai/examples/sessions/codex-complete.d.ts +1 -1
- package/dist/data/ai/examples/sessions/codex.d.ts +1 -1
- package/dist/data/ai/examples/sessions/index.d.ts +5 -5
- package/dist/data/ai/index.d.ts +53 -53
- package/dist/data/ai/runtime-profile.d.ts +4 -4
- package/dist/data/ai/runtime-profiles/OrderedPresetSelect.d.ts +1 -1
- package/dist/data/ai/runtime-profiles/PermissionStrategiesEditor.d.ts +2 -2
- package/dist/data/ai/runtime-profiles/PermissionStrategyConditionRow.d.ts +3 -3
- package/dist/data/ai/runtime-profiles/PresetSpecEditor.d.ts +3 -3
- package/dist/data/ai/runtime-profiles/PresetWorkspace.d.ts +5 -5
- package/dist/data/ai/runtime-profiles/ProfilePresetChips.d.ts +1 -1
- package/dist/data/ai/runtime-profiles/ProfileSpecEditor.d.ts +4 -4
- package/dist/data/ai/runtime-profiles/ProfileWorkspace.d.ts +5 -5
- package/dist/data/ai/runtime-profiles/ResolutionInspector.d.ts +2 -2
- package/dist/data/ai/runtime-profiles/ResolutionTrace.d.ts +1 -1
- package/dist/data/ai/runtime-profiles/RuntimeLibraryList.d.ts +1 -1
- package/dist/data/ai/runtime-profiles/RuntimePersistenceBar.d.ts +1 -1
- package/dist/data/ai/runtime-profiles/RuntimeProfilePicker.d.ts +2 -2
- package/dist/data/ai/runtime-profiles/RuntimeProfilePicker.model.d.ts +3 -3
- package/dist/data/ai/runtime-profiles/RuntimeProfilesWorkspace.d.ts +4 -4
- package/dist/data/ai/runtime-profiles/index.d.ts +19 -19
- package/dist/data/ai/runtime-profiles/types.d.ts +3 -3
- package/dist/data/ai/runtime-profiles/use-permission-catalog.d.ts +3 -3
- package/dist/data/ai/runtime-profiles/use-resolution.d.ts +2 -2
- package/dist/data/ai/runtime-profiles/use-runtime-families.d.ts +1 -1
- package/dist/data/ai/runtime-profiles/use-runtime-profile-picker.d.ts +3 -3
- package/dist/data/ai/sandbox-kind-meta.d.ts +1 -1
- package/dist/data/ai/session-categories.d.ts +2 -2
- package/dist/data/ai/session-cost.d.ts +2 -2
- package/dist/data/ai/session-tones.d.ts +1 -1
- package/dist/data/ai/tool-name.d.ts +1 -1
- package/dist/data/cache-browser/CacheBrowser.d.ts +2 -2
- package/dist/data/cache-browser/CacheDetailPanel.d.ts +3 -3
- package/dist/data/cache-browser/CacheStatsOverview.d.ts +2 -2
- package/dist/data/cache-browser/CacheTree.d.ts +3 -3
- package/dist/data/cache-browser/CacheValue.d.ts +1 -1
- package/dist/data/cache-browser/adapter.d.ts +2 -2
- package/dist/data/cache-browser/api.d.ts +1 -1
- package/dist/data/cache-browser/cache-browser.fixtures.d.ts +2 -2
- package/dist/data/cache-browser/index.d.ts +8 -8
- package/dist/data/cells/EntityCell.d.ts +2 -2
- package/dist/data/cells/StatusDot.d.ts +1 -1
- package/dist/data/cells/TagList.d.ts +1 -1
- package/dist/data/cells/Timestamp.d.ts +1 -1
- package/dist/data/cells/status-mapping.d.ts +1 -1
- package/dist/data/cells/tag-utils.d.ts +1 -1
- package/dist/data/cells/timestamp-format.d.ts +1 -1
- package/dist/data/chat/Attachment.d.ts +2 -2
- package/dist/data/chat/Chat.d.ts +5 -5
- package/dist/data/chat/Chat.fixtures.d.ts +1 -1
- package/dist/data/chat/Chat.runtime.d.ts +2 -2
- package/dist/data/chat/ChatRuntimeToolbar.d.ts +2 -2
- package/dist/data/chat/ContextMeter.bar.d.ts +1 -1
- package/dist/data/chat/ContextMeter.d.ts +1 -1
- package/dist/data/chat/Conversation.d.ts +2 -2
- package/dist/data/chat/Message.d.ts +1 -1
- package/dist/data/chat/ModelSelector.d.ts +3 -3
- package/dist/data/chat/PromptInput.d.ts +2 -2
- package/dist/data/chat/Suggestion.d.ts +1 -1
- package/dist/data/chat/ToolCall.d.ts +2 -2
- package/dist/data/chat/approval.d.ts +1 -1
- package/dist/data/chat/attachment-upload.d.ts +1 -1
- package/dist/data/chat/clickyOperationsToTools.d.ts +2 -2
- package/dist/data/chat/effort-icons.d.ts +1 -1
- package/dist/data/chat/index.d.ts +20 -20
- package/dist/data/chat/models.d.ts +1 -1
- package/dist/data/chat/provider-icons.d.ts +1 -1
- package/dist/data/chat/tool-policy.d.ts +1 -1
- package/dist/data/chat/tool-render/ToolParams.d.ts +2 -2
- package/dist/data/chat/tool-render/ToolValue.d.ts +1 -1
- package/dist/data/chat/tool-render/adapter.d.ts +1 -1
- package/dist/data/chat/tool-render/context.d.ts +1 -1
- package/dist/data/chat/tool-render/defaults.d.ts +1 -1
- package/dist/data/chat/tool-render/index.d.ts +12 -12
- package/dist/data/chat/tool-render/known-tool-views.d.ts +1 -1
- package/dist/data/chat/tool-render/known-tools.d.ts +1 -1
- package/dist/data/chat/tool-render/registry.d.ts +1 -1
- package/dist/data/chat/tool-render/schema.d.ts +2 -2
- package/dist/data/chat/tool-render/shape.d.ts +2 -2
- package/dist/data/chat/tool-render/summary.d.ts +1 -1
- package/dist/data/chat/types.d.ts +1 -1
- package/dist/data/chat/usage-snapshot.d.ts +2 -2
- package/dist/data/clicky-export/ClickyExportDialog.d.ts +1 -1
- package/dist/data/clicky-export/index.d.ts +2 -2
- package/dist/data/clicky-export/useClickyExport.d.ts +2 -2
- package/dist/data/clicky-parse.d.ts +1 -1
- package/dist/data/code-block-actions.d.ts +1 -1
- package/dist/data/data-table-filter-values.d.ts +1 -1
- package/dist/data/data-table-server-filters.d.ts +4 -4
- package/dist/data/data-table-utils.d.ts +1 -1
- package/dist/data/diagnostics/DiagnosticsDetailPanel.d.ts +3 -3
- package/dist/data/diagnostics/DiagnosticsTree.d.ts +1 -1
- package/dist/data/diagnostics/ErrorDetails.d.ts +1 -1
- package/dist/data/diagnostics/FrameSourceWindow.d.ts +1 -1
- package/dist/data/diagnostics/GoroutineCard.d.ts +1 -1
- package/dist/data/diagnostics/JvmStackTrace.d.ts +3 -3
- package/dist/data/diagnostics/RenderedStackTrace.d.ts +3 -3
- package/dist/data/diagnostics/StackFrameRow.d.ts +1 -1
- package/dist/data/diagnostics/ThreadCard.d.ts +3 -3
- package/dist/data/diagnostics/fixtures.d.ts +1 -1
- package/dist/data/diagnostics/stacktrace-parse.d.ts +1 -1
- package/dist/data/diagnostics/stacktrace.d.ts +1 -1
- package/dist/data/diagnostics/utils.d.ts +3 -3
- package/dist/data/examples/markdown-preview-mock.d.ts +1 -1
- package/dist/data/gauge-stats.d.ts +1 -1
- package/dist/data/git/index.d.ts +2 -2
- package/dist/data/har/HarPanel.d.ts +1 -1
- package/dist/data/har/fixtures.d.ts +1 -1
- package/dist/data/properties-context.d.ts +1 -1
- package/dist/data/query-browser/QueryBrowser.d.ts +1 -1
- package/dist/data/query-browser/QueryBrowser.editor.d.ts +1 -1
- package/dist/data/query-browser/QueryBrowser.types.d.ts +6 -6
- package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.d.ts +1 -1
- package/dist/data/query-browser/QueryBrowserResults.d.ts +3 -3
- package/dist/data/query-browser/index.d.ts +3 -3
- package/dist/data/runtime/ProviderStatusPanel.d.ts +2 -2
- package/dist/data/runtime/RuntimeBar.d.ts +3 -3
- package/dist/data/runtime/RuntimeBar.model.d.ts +3 -3
- package/dist/data/runtime/RuntimeBarActions.d.ts +2 -2
- package/dist/data/runtime/RuntimeBarCombo.d.ts +3 -3
- package/dist/data/runtime/RuntimeBarSegment.d.ts +1 -1
- package/dist/data/runtime/RuntimeBarSegments.d.ts +3 -3
- package/dist/data/runtime/availability.d.ts +1 -1
- package/dist/data/runtime/model-capabilities.d.ts +1 -1
- package/dist/data/runtime/provider-status.d.ts +2 -2
- package/dist/data/runtime/runtime-field-support.d.ts +4 -4
- package/dist/data/runtime/runtime-mode.d.ts +6 -6
- package/dist/data/schema-viewer-model.d.ts +1 -1
- package/dist/data/selectionActionSplit.d.ts +1 -1
- package/dist/data/status-breakdown-utils.d.ts +1 -1
- package/dist/data/task-copy.d.ts +1 -1
- package/dist/data/task-exec-details.d.ts +1 -1
- package/dist/data/task-process-details.d.ts +2 -2
- package/dist/data/task-resource-summary.d.ts +1 -1
- package/dist/data/task-status.d.ts +3 -3
- package/dist/data/task-streams.d.ts +1 -1
- package/dist/data/task-work-progress.d.ts +1 -1
- package/dist/data/test-runner/TestFailureDetail.d.ts +1 -1
- package/dist/data/test-runner/TestFilterBar.d.ts +2 -2
- package/dist/data/test-runner/TestRunSummary.d.ts +1 -1
- package/dist/data/test-runner/TestRunner.d.ts +3 -3
- package/dist/data/test-runner/TestRunner.fixtures.d.ts +2 -2
- package/dist/data/test-runner/TestTreeNode.d.ts +1 -1
- package/dist/data/test-runner/adapter.d.ts +2 -2
- package/dist/data/test-runner/context.d.ts +3 -3
- package/dist/data/test-runner/frameworkIcon.d.ts +1 -1
- package/dist/data/test-runner/index.d.ts +14 -14
- package/dist/data/test-runner/routePath.d.ts +1 -1
- package/dist/data/test-runner/status.d.ts +4 -4
- package/dist/data/timeseries-query.cjs +51 -0
- package/dist/data/timeseries-query.cjs.map +1 -0
- package/dist/data/timeseries-query.d.ts +31 -0
- package/dist/data/timeseries-query.d.ts.map +1 -0
- package/dist/data/timeseries-query.js +51 -0
- package/dist/data/timeseries-query.js.map +1 -0
- package/dist/data/use-infinite-rows.d.ts +1 -1
- package/dist/data/useDebugAction.d.ts +1 -1
- package/dist/data/verification/VerificationResults.d.ts +2 -2
- package/dist/data/verification/adapterViews.d.ts +1 -1
- package/dist/data/verification/adapters.d.ts +1 -1
- package/dist/data/verification/index.d.ts +4 -4
- package/dist/data/verification/verifyReportTests.d.ts +2 -2
- package/dist/data/version-info.cjs +3 -3
- package/dist/data/version-info.js +3 -3
- package/dist/data.cjs +1 -0
- package/dist/data.cjs.map +1 -1
- package/dist/data.d.ts +119 -119
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +3 -2
- package/dist/devtools/DebugConsole.d.ts +3 -3
- package/dist/devtools/DebugConsoleButton.d.ts +1 -1
- package/dist/devtools/DebugConsoleDock.d.ts +2 -2
- package/dist/devtools/ExecutionDetail.d.ts +2 -2
- package/dist/devtools/debugClient.d.ts +1 -1
- package/dist/devtools/debugStore.d.ts +1 -1
- package/dist/devtools/dockState.d.ts +1 -1
- package/dist/devtools/tabs/ConsoleTab.d.ts +1 -1
- package/dist/devtools/tabs/InspectionCaches.d.ts +2 -2
- package/dist/devtools/tabs/InspectionTab.d.ts +2 -2
- package/dist/devtools/tabs/NetworkTab.d.ts +2 -2
- package/dist/devtools/tabs/QueriesTab.d.ts +2 -2
- package/dist/devtools/types.d.ts +2 -2
- package/dist/devtools/useDebugStream.d.ts +2 -2
- package/dist/devtools.d.ts +28 -28
- package/dist/expressions/lang/attributes.d.ts +1 -1
- package/dist/expressions/lang/completion.d.ts +1 -1
- package/dist/expressions/lang/generated/index.d.ts +1 -1
- package/dist/expressions/lang/hover.d.ts +1 -1
- package/dist/expressions/lang/index.d.ts +13 -13
- package/dist/expressions/lang/merge.d.ts +1 -1
- package/dist/expressions/lang/prefix.d.ts +1 -1
- package/dist/expressions/lang/spec.d.ts +2 -2
- package/dist/expressions/lang/theme.d.ts +1 -1
- package/dist/expressions/playground/ExpressionPlayground.d.ts +3 -3
- package/dist/expressions/playground/RunControls.d.ts +1 -1
- package/dist/expressions/playground/api.d.ts +2 -2
- package/dist/expressions/playground/languages.d.ts +2 -2
- package/dist/expressions/playground/panels/ExpectationStrip.d.ts +1 -1
- package/dist/expressions/playground/panels/ResultPanel.d.ts +1 -1
- package/dist/expressions/playground/panels/ResultView.d.ts +3 -3
- package/dist/expressions/playground/panels/SamplesPanel.d.ts +2 -2
- package/dist/expressions/playground/panels/SpecPanel.d.ts +1 -1
- package/dist/expressions/playground/panels/graphNodes.d.ts +2 -2
- package/dist/expressions/playground/sampleOutcome.d.ts +1 -1
- package/dist/expressions/playground/useEvaluator.d.ts +1 -1
- package/dist/expressions/playground/useSampleRuns.d.ts +3 -3
- package/dist/expressions/playground.d.ts +14 -14
- package/dist/expressions.d.ts +1 -1
- package/dist/hooks/density-provider.d.ts +1 -1
- package/dist/hooks/theme-provider.d.ts +1 -1
- package/dist/hooks/use-log-tail.d.ts +2 -2
- package/dist/hooks/use-prompts.d.ts +1 -1
- package/dist/hooks/use-task-run.d.ts +2 -2
- package/dist/hooks.d.ts +13 -13
- package/dist/icons/changeIconAliases.d.ts +1 -1
- package/dist/icons/components/UiAccessProtected.d.ts +1 -1
- package/dist/icons/components/UiAccessPublic.d.ts +1 -1
- package/dist/icons/components/UiActivity.d.ts +1 -1
- package/dist/icons/components/UiAdd.d.ts +1 -1
- package/dist/icons/components/UiAddChangeset.d.ts +1 -1
- package/dist/icons/components/UiAggregate.d.ts +1 -1
- package/dist/icons/components/UiAlias.d.ts +1 -1
- package/dist/icons/components/UiAnnotation.d.ts +1 -1
- package/dist/icons/components/UiAopAroundAdvice.d.ts +1 -1
- package/dist/icons/components/UiAopBeforeAdvice.d.ts +1 -1
- package/dist/icons/components/UiAopPointcut.d.ts +1 -1
- package/dist/icons/components/UiArchive.d.ts +1 -1
- package/dist/icons/components/UiArray.d.ts +1 -1
- package/dist/icons/components/UiArrowDown.d.ts +1 -1
- package/dist/icons/components/UiArrowDownRight.d.ts +1 -1
- package/dist/icons/components/UiArrowFatUp.d.ts +1 -1
- package/dist/icons/components/UiArrowLeft.d.ts +1 -1
- package/dist/icons/components/UiArrowRight.d.ts +1 -1
- package/dist/icons/components/UiArrowUp.d.ts +1 -1
- package/dist/icons/components/UiArrowUpRight.d.ts +1 -1
- package/dist/icons/components/UiArrowsCounterClockwise.d.ts +1 -1
- package/dist/icons/components/UiArtifact.d.ts +1 -1
- package/dist/icons/components/UiAsterisk.d.ts +1 -1
- package/dist/icons/components/UiAsyncFn.d.ts +1 -1
- package/dist/icons/components/UiAt.d.ts +1 -1
- package/dist/icons/components/UiAtom.d.ts +1 -1
- package/dist/icons/components/UiAttachDebugger.d.ts +1 -1
- package/dist/icons/components/UiAttachToProcess.d.ts +1 -1
- package/dist/icons/components/UiAuditLog.d.ts +1 -1
- package/dist/icons/components/UiBank.d.ts +1 -1
- package/dist/icons/components/UiBatteryChargingVertical.d.ts +1 -1
- package/dist/icons/components/UiBatteryVerticalEmpty.d.ts +1 -1
- package/dist/icons/components/UiBatteryVerticalFull.d.ts +1 -1
- package/dist/icons/components/UiBatteryVerticalHigh.d.ts +1 -1
- package/dist/icons/components/UiBatteryVerticalLow.d.ts +1 -1
- package/dist/icons/components/UiBatteryVerticalMedium.d.ts +1 -1
- package/dist/icons/components/UiBeaker.d.ts +1 -1
- package/dist/icons/components/UiBell.d.ts +1 -1
- package/dist/icons/components/UiBellSlash.d.ts +1 -1
- package/dist/icons/components/UiBinary.d.ts +1 -1
- package/dist/icons/components/UiBlueKey.d.ts +1 -1
- package/dist/icons/components/UiBoolean.d.ts +1 -1
- package/dist/icons/components/UiBox.d.ts +1 -1
- package/dist/icons/components/UiBoxes.d.ts +1 -1
- package/dist/icons/components/UiBraces.d.ts +1 -1
- package/dist/icons/components/UiBrain.d.ts +1 -1
- package/dist/icons/components/UiBreakpoint.d.ts +1 -1
- package/dist/icons/components/UiBreakpoint1.d.ts +1 -1
- package/dist/icons/components/UiBreakpoint2.d.ts +1 -1
- package/dist/icons/components/UiBreakpoint3.d.ts +1 -1
- package/dist/icons/components/UiBreakpoint4.d.ts +1 -1
- package/dist/icons/components/UiBreakpointDisabled.d.ts +1 -1
- package/dist/icons/components/UiBreakpointField.d.ts +1 -1
- package/dist/icons/components/UiBreakpointMethod.d.ts +1 -1
- package/dist/icons/components/UiBroadcast.d.ts +1 -1
- package/dist/icons/components/UiBug.d.ts +1 -1
- package/dist/icons/components/UiCache.d.ts +1 -1
- package/dist/icons/components/UiCalculator.d.ts +1 -1
- package/dist/icons/components/UiCalendar.d.ts +1 -1
- package/dist/icons/components/UiCalendarBlank.d.ts +1 -1
- package/dist/icons/components/UiCalendarCheck.d.ts +1 -1
- package/dist/icons/components/UiCamera.d.ts +1 -1
- package/dist/icons/components/UiCancel.d.ts +1 -1
- package/dist/icons/components/UiChartBar.d.ts +1 -1
- package/dist/icons/components/UiChartLineUp.d.ts +1 -1
- package/dist/icons/components/UiChartOfAccounts.d.ts +1 -1
- package/dist/icons/components/UiChartPie.d.ts +1 -1
- package/dist/icons/components/UiChatDots.d.ts +1 -1
- package/dist/icons/components/UiCheck.d.ts +1 -1
- package/dist/icons/components/UiCheckConstraint.d.ts +1 -1
- package/dist/icons/components/UiChevronDown.d.ts +1 -1
- package/dist/icons/components/UiChevronRight.d.ts +1 -1
- package/dist/icons/components/UiChevronUp.d.ts +1 -1
- package/dist/icons/components/UiChevronsDown.d.ts +1 -1
- package/dist/icons/components/UiChevronsUp.d.ts +1 -1
- package/dist/icons/components/UiChip.d.ts +1 -1
- package/dist/icons/components/UiCircleFilled.d.ts +1 -1
- package/dist/icons/components/UiCircleOutline.d.ts +1 -1
- package/dist/icons/components/UiCircleX.d.ts +1 -1
- package/dist/icons/components/UiClass.d.ts +1 -1
- package/dist/icons/components/UiClass1.d.ts +1 -1
- package/dist/icons/components/UiClass2.d.ts +1 -1
- package/dist/icons/components/UiClass3.d.ts +1 -1
- package/dist/icons/components/UiClass4.d.ts +1 -1
- package/dist/icons/components/UiClass5.d.ts +1 -1
- package/dist/icons/components/UiClass6.d.ts +1 -1
- package/dist/icons/components/UiClass7.d.ts +1 -1
- package/dist/icons/components/UiClearCash.d.ts +1 -1
- package/dist/icons/components/UiClipboardText.d.ts +1 -1
- package/dist/icons/components/UiClock.d.ts +1 -1
- package/dist/icons/components/UiClockCountdown.d.ts +1 -1
- package/dist/icons/components/UiClose.d.ts +1 -1
- package/dist/icons/components/UiCloud.d.ts +1 -1
- package/dist/icons/components/UiCloudDownload.d.ts +1 -1
- package/dist/icons/components/UiCloudUpload.d.ts +1 -1
- package/dist/icons/components/UiCode2.d.ts +1 -1
- package/dist/icons/components/UiCog.d.ts +1 -1
- package/dist/icons/components/UiCoins.d.ts +1 -1
- package/dist/icons/components/UiCollapseAll.d.ts +1 -1
- package/dist/icons/components/UiCollection.d.ts +1 -1
- package/dist/icons/components/UiCollectionType.d.ts +1 -1
- package/dist/icons/components/UiColumn.d.ts +1 -1
- package/dist/icons/components/UiColumn1.d.ts +1 -1
- package/dist/icons/components/UiColumn2.d.ts +1 -1
- package/dist/icons/components/UiColumn3.d.ts +1 -1
- package/dist/icons/components/UiColumn4.d.ts +1 -1
- package/dist/icons/components/UiColumn5.d.ts +1 -1
- package/dist/icons/components/UiColumns.d.ts +1 -1
- package/dist/icons/components/UiCommand.d.ts +1 -1
- package/dist/icons/components/UiComment.d.ts +1 -1
- package/dist/icons/components/UiCompass.d.ts +1 -1
- package/dist/icons/components/UiConfig.d.ts +1 -1
- package/dist/icons/components/UiConfigMap.d.ts +1 -1
- package/dist/icons/components/UiConnector.d.ts +1 -1
- package/dist/icons/components/UiConstant.d.ts +1 -1
- package/dist/icons/components/UiConstant1.d.ts +1 -1
- package/dist/icons/components/UiConstructor.d.ts +1 -1
- package/dist/icons/components/UiConverter.d.ts +1 -1
- package/dist/icons/components/UiConverter1.d.ts +1 -1
- package/dist/icons/components/UiCopy.d.ts +1 -1
- package/dist/icons/components/UiCreateConstraint.d.ts +1 -1
- package/dist/icons/components/UiCurrencyDollar.d.ts +1 -1
- package/dist/icons/components/UiCursorClick.d.ts +1 -1
- package/dist/icons/components/UiCursorText.d.ts +1 -1
- package/dist/icons/components/UiCustomResource.d.ts +1 -1
- package/dist/icons/components/UiDataSchema.d.ts +1 -1
- package/dist/icons/components/UiDataShare.d.ts +1 -1
- package/dist/icons/components/UiDatabase.d.ts +1 -1
- package/dist/icons/components/UiDatabaseEventStream.d.ts +1 -1
- package/dist/icons/components/UiDatabaseLink.d.ts +1 -1
- package/dist/icons/components/UiDatabaseZap.d.ts +1 -1
- package/dist/icons/components/UiDebug.d.ts +1 -1
- package/dist/icons/components/UiDebugContinue.d.ts +1 -1
- package/dist/icons/components/UiDebugDisabled.d.ts +1 -1
- package/dist/icons/components/UiDebugSelection.d.ts +1 -1
- package/dist/icons/components/UiDebugSmall.d.ts +1 -1
- package/dist/icons/components/UiDebugStepInto.d.ts +1 -1
- package/dist/icons/components/UiDebugStepOut.d.ts +1 -1
- package/dist/icons/components/UiDebugStepOver.d.ts +1 -1
- package/dist/icons/components/UiDebugStop.d.ts +1 -1
- package/dist/icons/components/UiDecorator.d.ts +1 -1
- package/dist/icons/components/UiDeploy.d.ts +1 -1
- package/dist/icons/components/UiDesktop.d.ts +1 -1
- package/dist/icons/components/UiDetach.d.ts +1 -1
- package/dist/icons/components/UiDiagramDiff.d.ts +1 -1
- package/dist/icons/components/UiDiff.d.ts +1 -1
- package/dist/icons/components/UiDotsVertical.d.ts +1 -1
- package/dist/icons/components/UiDownload.d.ts +1 -1
- package/dist/icons/components/UiDumpThreads.d.ts +1 -1
- package/dist/icons/components/UiEdit.d.ts +1 -1
- package/dist/icons/components/UiEditMode.d.ts +1 -1
- package/dist/icons/components/UiEllipsis.d.ts +1 -1
- package/dist/icons/components/UiEllipsisBold.d.ts +1 -1
- package/dist/icons/components/UiEndpoint.d.ts +1 -1
- package/dist/icons/components/UiEnum.d.ts +1 -1
- package/dist/icons/components/UiEnumMember.d.ts +1 -1
- package/dist/icons/components/UiEnvelope.d.ts +1 -1
- package/dist/icons/components/UiError.d.ts +1 -1
- package/dist/icons/components/UiEvaluateExpression.d.ts +1 -1
- package/dist/icons/components/UiEvent.d.ts +1 -1
- package/dist/icons/components/UiException.d.ts +1 -1
- package/dist/icons/components/UiExceptionAnalyzerImportant.d.ts +1 -1
- package/dist/icons/components/UiExcludedGenerated.d.ts +1 -1
- package/dist/icons/components/UiExpandAll.d.ts +1 -1
- package/dist/icons/components/UiExport.d.ts +1 -1
- package/dist/icons/components/UiExtension.d.ts +1 -1
- package/dist/icons/components/UiExternalLink.d.ts +1 -1
- package/dist/icons/components/UiEye.d.ts +1 -1
- package/dist/icons/components/UiEyeClosed.d.ts +1 -1
- package/dist/icons/components/UiFactory.d.ts +1 -1
- package/dist/icons/components/UiFailedInProgress.d.ts +1 -1
- package/dist/icons/components/UiFastForwardCircle.d.ts +1 -1
- package/dist/icons/components/UiField.d.ts +1 -1
- package/dist/icons/components/UiField1.d.ts +1 -1
- package/dist/icons/components/UiField2.d.ts +1 -1
- package/dist/icons/components/UiField3.d.ts +1 -1
- package/dist/icons/components/UiField4.d.ts +1 -1
- package/dist/icons/components/UiField5.d.ts +1 -1
- package/dist/icons/components/UiField6.d.ts +1 -1
- package/dist/icons/components/UiFieldProtected.d.ts +1 -1
- package/dist/icons/components/UiFieldReadAccess.d.ts +1 -1
- package/dist/icons/components/UiFieldType.d.ts +1 -1
- package/dist/icons/components/UiFieldWriteAccess.d.ts +1 -1
- package/dist/icons/components/UiFile.d.ts +1 -1
- package/dist/icons/components/UiFileCode.d.ts +1 -1
- package/dist/icons/components/UiFileCog.d.ts +1 -1
- package/dist/icons/components/UiFileFormat.d.ts +1 -1
- package/dist/icons/components/UiFileJson.d.ts +1 -1
- package/dist/icons/components/UiFilePlus.d.ts +1 -1
- package/dist/icons/components/UiFileSearch.d.ts +1 -1
- package/dist/icons/components/UiFileSpreadsheet.d.ts +1 -1
- package/dist/icons/components/UiFileText.d.ts +1 -1
- package/dist/icons/components/UiFileType.d.ts +1 -1
- package/dist/icons/components/UiFilter.d.ts +1 -1
- package/dist/icons/components/UiFingerprint.d.ts +1 -1
- package/dist/icons/components/UiFolder.d.ts +1 -1
- package/dist/icons/components/UiFolderGit.d.ts +1 -1
- package/dist/icons/components/UiFolderGit2.d.ts +1 -1
- package/dist/icons/components/UiForeignServer.d.ts +1 -1
- package/dist/icons/components/UiForm.d.ts +1 -1
- package/dist/icons/components/UiFreemarker.d.ts +1 -1
- package/dist/icons/components/UiFullscreen.d.ts +1 -1
- package/dist/icons/components/UiFunction.d.ts +1 -1
- package/dist/icons/components/UiFunction1.d.ts +1 -1
- package/dist/icons/components/UiFunction2.d.ts +1 -1
- package/dist/icons/components/UiFunction3.d.ts +1 -1
- package/dist/icons/components/UiFunction4.d.ts +1 -1
- package/dist/icons/components/UiFunctionSquare.d.ts +1 -1
- package/dist/icons/components/UiFunnelData.d.ts +1 -1
- package/dist/icons/components/UiGavel.d.ts +1 -1
- package/dist/icons/components/UiGearSix.d.ts +1 -1
- package/dist/icons/components/UiGitBranch.d.ts +1 -1
- package/dist/icons/components/UiGitCommit.d.ts +1 -1
- package/dist/icons/components/UiGitGraph.d.ts +1 -1
- package/dist/icons/components/UiGitMerge.d.ts +1 -1
- package/dist/icons/components/UiGitPr.d.ts +1 -1
- package/dist/icons/components/UiGlobe.d.ts +1 -1
- package/dist/icons/components/UiGraph.d.ts +1 -1
- package/dist/icons/components/UiGreyKey.d.ts +1 -1
- package/dist/icons/components/UiGrid.d.ts +1 -1
- package/dist/icons/components/UiGroupByModuleGroup.d.ts +1 -1
- package/dist/icons/components/UiGroupByPackage.d.ts +1 -1
- package/dist/icons/components/UiGroupByTestProduction.d.ts +1 -1
- package/dist/icons/components/UiHandCoins.d.ts +1 -1
- package/dist/icons/components/UiHandPalm.d.ts +1 -1
- package/dist/icons/components/UiHardDrive.d.ts +1 -1
- package/dist/icons/components/UiHibernate.d.ts +1 -1
- package/dist/icons/components/UiHibernateEvent.d.ts +1 -1
- package/dist/icons/components/UiHistory.d.ts +1 -1
- package/dist/icons/components/UiHome.d.ts +1 -1
- package/dist/icons/components/UiHourglass.d.ts +1 -1
- package/dist/icons/components/UiHubot.d.ts +1 -1
- package/dist/icons/components/UiId.d.ts +1 -1
- package/dist/icons/components/UiIdentificationCard.d.ts +1 -1
- package/dist/icons/components/UiImage.d.ts +1 -1
- package/dist/icons/components/UiImport.d.ts +1 -1
- package/dist/icons/components/UiInbox.d.ts +1 -1
- package/dist/icons/components/UiIndex.d.ts +1 -1
- package/dist/icons/components/UiIndex1.d.ts +1 -1
- package/dist/icons/components/UiIndex2.d.ts +1 -1
- package/dist/icons/components/UiIndex3.d.ts +1 -1
- package/dist/icons/components/UiIndex4.d.ts +1 -1
- package/dist/icons/components/UiIndex5.d.ts +1 -1
- package/dist/icons/components/UiIndex6.d.ts +1 -1
- package/dist/icons/components/UiInfo.d.ts +1 -1
- package/dist/icons/components/UiInsightAvailability.d.ts +1 -1
- package/dist/icons/components/UiInsightCompliance.d.ts +1 -1
- package/dist/icons/components/UiInsightCost.d.ts +1 -1
- package/dist/icons/components/UiInsightIntegration.d.ts +1 -1
- package/dist/icons/components/UiInsightPerformance.d.ts +1 -1
- package/dist/icons/components/UiInsightRecommendation.d.ts +1 -1
- package/dist/icons/components/UiInsightReliability.d.ts +1 -1
- package/dist/icons/components/UiInsightSecurity.d.ts +1 -1
- package/dist/icons/components/UiInsightTechnicalDebt.d.ts +1 -1
- package/dist/icons/components/UiInspectionsGrammar.d.ts +1 -1
- package/dist/icons/components/UiInterface.d.ts +1 -1
- package/dist/icons/components/UiInvoice.d.ts +1 -1
- package/dist/icons/components/UiJpaAttribute.d.ts +1 -1
- package/dist/icons/components/UiJpaId.d.ts +1 -1
- package/dist/icons/components/UiJpaRelationship.d.ts +1 -1
- package/dist/icons/components/UiJson.d.ts +1 -1
- package/dist/icons/components/UiKanban.d.ts +1 -1
- package/dist/icons/components/UiKey.d.ts +1 -1
- package/dist/icons/components/UiKeyboard.d.ts +1 -1
- package/dist/icons/components/UiKeyword.d.ts +1 -1
- package/dist/icons/components/UiKillDataSourceProcess.d.ts +1 -1
- package/dist/icons/components/UiKubeConfigMap.d.ts +1 -1
- package/dist/icons/components/UiKubeDeployment.d.ts +1 -1
- package/dist/icons/components/UiKubeJob.d.ts +1 -1
- package/dist/icons/components/UiKubeNamespace.d.ts +1 -1
- package/dist/icons/components/UiKubePod.d.ts +1 -1
- package/dist/icons/components/UiLambda.d.ts +1 -1
- package/dist/icons/components/UiLangJava.d.ts +1 -1
- package/dist/icons/components/UiLangJavascript.d.ts +1 -1
- package/dist/icons/components/UiLangPython.d.ts +1 -1
- package/dist/icons/components/UiLayers.d.ts +1 -1
- package/dist/icons/components/UiLayoutDashboard.d.ts +1 -1
- package/dist/icons/components/UiLedger.d.ts +1 -1
- package/dist/icons/components/UiLightbulb.d.ts +1 -1
- package/dist/icons/components/UiLink.d.ts +1 -1
- package/dist/icons/components/UiLinkExternal.d.ts +1 -1
- package/dist/icons/components/UiListChecks.d.ts +1 -1
- package/dist/icons/components/UiListDashes.d.ts +1 -1
- package/dist/icons/components/UiListFlat.d.ts +1 -1
- package/dist/icons/components/UiListOrdered.d.ts +1 -1
- package/dist/icons/components/UiListTree.d.ts +1 -1
- package/dist/icons/components/UiLoader.d.ts +1 -1
- package/dist/icons/components/UiLocation.d.ts +1 -1
- package/dist/icons/components/UiLock.d.ts +1 -1
- package/dist/icons/components/UiLockKey.d.ts +1 -1
- package/dist/icons/components/UiLockOpen.d.ts +1 -1
- package/dist/icons/components/UiLogoAnthropic.d.ts +1 -1
- package/dist/icons/components/UiLogoClaude.d.ts +1 -1
- package/dist/icons/components/UiLogoDeepseek.d.ts +1 -1
- package/dist/icons/components/UiLogoGemini.d.ts +1 -1
- package/dist/icons/components/UiLogoGoogle.d.ts +1 -1
- package/dist/icons/components/UiLogoHuggingface.d.ts +1 -1
- package/dist/icons/components/UiLogoMeta.d.ts +1 -1
- package/dist/icons/components/UiLogoMistral.d.ts +1 -1
- package/dist/icons/components/UiLogoOllama.d.ts +1 -1
- package/dist/icons/components/UiLogoOpenai.d.ts +1 -1
- package/dist/icons/components/UiLogoPerplexity.d.ts +1 -1
- package/dist/icons/components/UiMagicWand.d.ts +1 -1
- package/dist/icons/components/UiMarkdown.d.ts +1 -1
- package/dist/icons/components/UiMaterializedLog.d.ts +1 -1
- package/dist/icons/components/UiMemoryProfile.d.ts +1 -1
- package/dist/icons/components/UiMemoryStick.d.ts +1 -1
- package/dist/icons/components/UiMenu.d.ts +1 -1
- package/dist/icons/components/UiMessageQueue.d.ts +1 -1
- package/dist/icons/components/UiMessageQueue1.d.ts +1 -1
- package/dist/icons/components/UiMethod.d.ts +1 -1
- package/dist/icons/components/UiMethod1.d.ts +1 -1
- package/dist/icons/components/UiMethod10.d.ts +1 -1
- package/dist/icons/components/UiMethod11.d.ts +1 -1
- package/dist/icons/components/UiMethod2.d.ts +1 -1
- package/dist/icons/components/UiMethod3.d.ts +1 -1
- package/dist/icons/components/UiMethod4.d.ts +1 -1
- package/dist/icons/components/UiMethod5.d.ts +1 -1
- package/dist/icons/components/UiMethod6.d.ts +1 -1
- package/dist/icons/components/UiMethod7.d.ts +1 -1
- package/dist/icons/components/UiMethod8.d.ts +1 -1
- package/dist/icons/components/UiMethod9.d.ts +1 -1
- package/dist/icons/components/UiModels.d.ts +1 -1
- package/dist/icons/components/UiModule.d.ts +1 -1
- package/dist/icons/components/UiModule1.d.ts +1 -1
- package/dist/icons/components/UiMoon.d.ts +1 -1
- package/dist/icons/components/UiName.d.ts +1 -1
- package/dist/icons/components/UiNamespace.d.ts +1 -1
- package/dist/icons/components/UiNetwork.d.ts +1 -1
- package/dist/icons/components/UiNull.d.ts +1 -1
- package/dist/icons/components/UiNumeric.d.ts +1 -1
- package/dist/icons/components/UiObject.d.ts +1 -1
- package/dist/icons/components/UiOpenBlock.d.ts +1 -1
- package/dist/icons/components/UiOpenScad.d.ts +1 -1
- package/dist/icons/components/UiOperator.d.ts +1 -1
- package/dist/icons/components/UiOperator1.d.ts +1 -1
- package/dist/icons/components/UiOrganization.d.ts +1 -1
- package/dist/icons/components/UiPackage.d.ts +1 -1
- package/dist/icons/components/UiPalette.d.ts +1 -1
- package/dist/icons/components/UiParameter.d.ts +1 -1
- package/dist/icons/components/UiPartition.d.ts +1 -1
- package/dist/icons/components/UiPass.d.ts +1 -1
- package/dist/icons/components/UiPause.d.ts +1 -1
- package/dist/icons/components/UiPauseCircle.d.ts +1 -1
- package/dist/icons/components/UiPencilSimpleLine.d.ts +1 -1
- package/dist/icons/components/UiPending.d.ts +1 -1
- package/dist/icons/components/UiPercent.d.ts +1 -1
- package/dist/icons/components/UiPhone.d.ts +1 -1
- package/dist/icons/components/UiPlay.d.ts +1 -1
- package/dist/icons/components/UiPlayCircle.d.ts +1 -1
- package/dist/icons/components/UiPlaybook.d.ts +1 -1
- package/dist/icons/components/UiPlug.d.ts +1 -1
- package/dist/icons/components/UiPluginModule.d.ts +1 -1
- package/dist/icons/components/UiPluginV2.d.ts +1 -1
- package/dist/icons/components/UiPlugsConnected.d.ts +1 -1
- package/dist/icons/components/UiPointcut.d.ts +1 -1
- package/dist/icons/components/UiProcedure.d.ts +1 -1
- package/dist/icons/components/UiProfile.d.ts +1 -1
- package/dist/icons/components/UiProfile1.d.ts +1 -1
- package/dist/icons/components/UiProfile2.d.ts +1 -1
- package/dist/icons/components/UiProfile3.d.ts +1 -1
- package/dist/icons/components/UiProfile4.d.ts +1 -1
- package/dist/icons/components/UiProfiler.d.ts +1 -1
- package/dist/icons/components/UiProfilerBackTrace.d.ts +1 -1
- package/dist/icons/components/UiProfilerMergeCallees.d.ts +1 -1
- package/dist/icons/components/UiProhibit.d.ts +1 -1
- package/dist/icons/components/UiProjectStructure.d.ts +1 -1
- package/dist/icons/components/UiProjection.d.ts +1 -1
- package/dist/icons/components/UiProperty.d.ts +1 -1
- package/dist/icons/components/UiPulse.d.ts +1 -1
- package/dist/icons/components/UiPuzzle.d.ts +1 -1
- package/dist/icons/components/UiQuestion.d.ts +1 -1
- package/dist/icons/components/UiQueue.d.ts +1 -1
- package/dist/icons/components/UiReadAccess.d.ts +1 -1
- package/dist/icons/components/UiReceipt.d.ts +1 -1
- package/dist/icons/components/UiRecord.d.ts +1 -1
- package/dist/icons/components/UiRecord1.d.ts +1 -1
- package/dist/icons/components/UiRefresh.d.ts +1 -1
- package/dist/icons/components/UiRegex.d.ts +1 -1
- package/dist/icons/components/UiRelationship.d.ts +1 -1
- package/dist/icons/components/UiRelay.d.ts +1 -1
- package/dist/icons/components/UiRemove.d.ts +1 -1
- package/dist/icons/components/UiRepeat.d.ts +1 -1
- package/dist/icons/components/UiResizeVertical.d.ts +1 -1
- package/dist/icons/components/UiRestart.d.ts +1 -1
- package/dist/icons/components/UiRobotAi.d.ts +1 -1
- package/dist/icons/components/UiRocket.d.ts +1 -1
- package/dist/icons/components/UiRole.d.ts +1 -1
- package/dist/icons/components/UiRollback.d.ts +1 -1
- package/dist/icons/components/UiRoute.d.ts +1 -1
- package/dist/icons/components/UiRoutine.d.ts +1 -1
- package/dist/icons/components/UiRows.d.ts +1 -1
- package/dist/icons/components/UiRun.d.ts +1 -1
- package/dist/icons/components/UiRun1.d.ts +1 -1
- package/dist/icons/components/UiRun10.d.ts +1 -1
- package/dist/icons/components/UiRun11.d.ts +1 -1
- package/dist/icons/components/UiRun12.d.ts +1 -1
- package/dist/icons/components/UiRun13.d.ts +1 -1
- package/dist/icons/components/UiRun14.d.ts +1 -1
- package/dist/icons/components/UiRun2.d.ts +1 -1
- package/dist/icons/components/UiRun3.d.ts +1 -1
- package/dist/icons/components/UiRun4.d.ts +1 -1
- package/dist/icons/components/UiRun5.d.ts +1 -1
- package/dist/icons/components/UiRun6.d.ts +1 -1
- package/dist/icons/components/UiRun7.d.ts +1 -1
- package/dist/icons/components/UiRun8.d.ts +1 -1
- package/dist/icons/components/UiRun9.d.ts +1 -1
- package/dist/icons/components/UiSave.d.ts +1 -1
- package/dist/icons/components/UiScale.d.ts +1 -1
- package/dist/icons/components/UiScan.d.ts +1 -1
- package/dist/icons/components/UiScroll.d.ts +1 -1
- package/dist/icons/components/UiSealCheck.d.ts +1 -1
- package/dist/icons/components/UiSearch.d.ts +1 -1
- package/dist/icons/components/UiSecurityRole.d.ts +1 -1
- package/dist/icons/components/UiSelect.d.ts +1 -1
- package/dist/icons/components/UiSequence.d.ts +1 -1
- package/dist/icons/components/UiSequence1.d.ts +1 -1
- package/dist/icons/components/UiSequence2.d.ts +1 -1
- package/dist/icons/components/UiSequence3.d.ts +1 -1
- package/dist/icons/components/UiSequence4.d.ts +1 -1
- package/dist/icons/components/UiServer.d.ts +1 -1
- package/dist/icons/components/UiServerProcess.d.ts +1 -1
- package/dist/icons/components/UiSetKey.d.ts +1 -1
- package/dist/icons/components/UiSeverityBlocker.d.ts +1 -1
- package/dist/icons/components/UiSeverityCritical.d.ts +1 -1
- package/dist/icons/components/UiSeverityHigh.d.ts +1 -1
- package/dist/icons/components/UiSeverityInfo.d.ts +1 -1
- package/dist/icons/components/UiSeverityLow.d.ts +1 -1
- package/dist/icons/components/UiSeverityMedium.d.ts +1 -1
- package/dist/icons/components/UiSeverityWarning.d.ts +1 -1
- package/dist/icons/components/UiShare.d.ts +1 -1
- package/dist/icons/components/UiShield.d.ts +1 -1
- package/dist/icons/components/UiShieldSlash.d.ts +1 -1
- package/dist/icons/components/UiShipWheel.d.ts +1 -1
- package/dist/icons/components/UiShortcutFilter.d.ts +1 -1
- package/dist/icons/components/UiShowCurrentFrame.d.ts +1 -1
- package/dist/icons/components/UiShowMembers.d.ts +1 -1
- package/dist/icons/components/UiShowToImplement.d.ts +1 -1
- package/dist/icons/components/UiSidebar.d.ts +1 -1
- package/dist/icons/components/UiSigma.d.ts +1 -1
- package/dist/icons/components/UiSignIn.d.ts +1 -1
- package/dist/icons/components/UiSignOut.d.ts +1 -1
- package/dist/icons/components/UiSiren.d.ts +1 -1
- package/dist/icons/components/UiSkipForward.d.ts +1 -1
- package/dist/icons/components/UiSkull.d.ts +1 -1
- package/dist/icons/components/UiSliders.d.ts +1 -1
- package/dist/icons/components/UiSortAlphabetically.d.ts +1 -1
- package/dist/icons/components/UiSortByType.d.ts +1 -1
- package/dist/icons/components/UiSortByUsage.d.ts +1 -1
- package/dist/icons/components/UiSortByVisibility.d.ts +1 -1
- package/dist/icons/components/UiSparkles.d.ts +1 -1
- package/dist/icons/components/UiSpeaker.d.ts +1 -1
- package/dist/icons/components/UiSpringBoot.d.ts +1 -1
- package/dist/icons/components/UiSqlArray.d.ts +1 -1
- package/dist/icons/components/UiSqlColumn.d.ts +1 -1
- package/dist/icons/components/UiSqlConstraint.d.ts +1 -1
- package/dist/icons/components/UiSqlDatabase.d.ts +1 -1
- package/dist/icons/components/UiSqlForeignKey.d.ts +1 -1
- package/dist/icons/components/UiSqlFunction.d.ts +1 -1
- package/dist/icons/components/UiSqlIndex.d.ts +1 -1
- package/dist/icons/components/UiSqlPrimaryKey.d.ts +1 -1
- package/dist/icons/components/UiSqlQuery.d.ts +1 -1
- package/dist/icons/components/UiSqlSchema.d.ts +1 -1
- package/dist/icons/components/UiSqlSequence.d.ts +1 -1
- package/dist/icons/components/UiSqlStoredProc.d.ts +1 -1
- package/dist/icons/components/UiSqlTable.d.ts +1 -1
- package/dist/icons/components/UiSqlTrigger.d.ts +1 -1
- package/dist/icons/components/UiSqlView.d.ts +1 -1
- package/dist/icons/components/UiSquare.d.ts +1 -1
- package/dist/icons/components/UiStack.d.ts +1 -1
- package/dist/icons/components/UiStackFrameDot.d.ts +1 -1
- package/dist/icons/components/UiStackTrace.d.ts +1 -1
- package/dist/icons/components/UiStar.d.ts +1 -1
- package/dist/icons/components/UiStartTimer.d.ts +1 -1
- package/dist/icons/components/UiStatic.d.ts +1 -1
- package/dist/icons/components/UiStep.d.ts +1 -1
- package/dist/icons/components/UiStep1.d.ts +1 -1
- package/dist/icons/components/UiStep2.d.ts +1 -1
- package/dist/icons/components/UiStep3.d.ts +1 -1
- package/dist/icons/components/UiStep4.d.ts +1 -1
- package/dist/icons/components/UiStep5.d.ts +1 -1
- package/dist/icons/components/UiStep6.d.ts +1 -1
- package/dist/icons/components/UiStep7.d.ts +1 -1
- package/dist/icons/components/UiStep8.d.ts +1 -1
- package/dist/icons/components/UiStep9.d.ts +1 -1
- package/dist/icons/components/UiSteps.d.ts +1 -1
- package/dist/icons/components/UiStop.d.ts +1 -1
- package/dist/icons/components/UiStrategy.d.ts +1 -1
- package/dist/icons/components/UiStream.d.ts +1 -1
- package/dist/icons/components/UiStreamKey.d.ts +1 -1
- package/dist/icons/components/UiString.d.ts +1 -1
- package/dist/icons/components/UiStruct.d.ts +1 -1
- package/dist/icons/components/UiSubmitDB.d.ts +1 -1
- package/dist/icons/components/UiSubscription.d.ts +1 -1
- package/dist/icons/components/UiSun.d.ts +1 -1
- package/dist/icons/components/UiSwap.d.ts +1 -1
- package/dist/icons/components/UiSymbol.d.ts +1 -1
- package/dist/icons/components/UiSync.d.ts +1 -1
- package/dist/icons/components/UiTable.d.ts +1 -1
- package/dist/icons/components/UiTable1.d.ts +1 -1
- package/dist/icons/components/UiTable10.d.ts +1 -1
- package/dist/icons/components/UiTable11.d.ts +1 -1
- package/dist/icons/components/UiTable12.d.ts +1 -1
- package/dist/icons/components/UiTable2.d.ts +1 -1
- package/dist/icons/components/UiTable3.d.ts +1 -1
- package/dist/icons/components/UiTable4.d.ts +1 -1
- package/dist/icons/components/UiTable5.d.ts +1 -1
- package/dist/icons/components/UiTable6.d.ts +1 -1
- package/dist/icons/components/UiTable7.d.ts +1 -1
- package/dist/icons/components/UiTable8.d.ts +1 -1
- package/dist/icons/components/UiTable9.d.ts +1 -1
- package/dist/icons/components/UiTableProperties.d.ts +1 -1
- package/dist/icons/components/UiTag.d.ts +1 -1
- package/dist/icons/components/UiTax.d.ts +1 -1
- package/dist/icons/components/UiTemplate.d.ts +1 -1
- package/dist/icons/components/UiTerminal.d.ts +1 -1
- package/dist/icons/components/UiTest.d.ts +1 -1
- package/dist/icons/components/UiTest1.d.ts +1 -1
- package/dist/icons/components/UiTest2.d.ts +1 -1
- package/dist/icons/components/UiTest3.d.ts +1 -1
- package/dist/icons/components/UiTest4.d.ts +1 -1
- package/dist/icons/components/UiTest5.d.ts +1 -1
- package/dist/icons/components/UiTest6.d.ts +1 -1
- package/dist/icons/components/UiTest7.d.ts +1 -1
- package/dist/icons/components/UiText.d.ts +1 -1
- package/dist/icons/components/UiThermometer.d.ts +1 -1
- package/dist/icons/components/UiThumbsDown.d.ts +1 -1
- package/dist/icons/components/UiThumbsUp.d.ts +1 -1
- package/dist/icons/components/UiTimer.d.ts +1 -1
- package/dist/icons/components/UiToggleOff.d.ts +1 -1
- package/dist/icons/components/UiToggleOn.d.ts +1 -1
- package/dist/icons/components/UiTrait.d.ts +1 -1
- package/dist/icons/components/UiTransactionStart.d.ts +1 -1
- package/dist/icons/components/UiTrash.d.ts +1 -1
- package/dist/icons/components/UiTrendDown.d.ts +1 -1
- package/dist/icons/components/UiTrendUp.d.ts +1 -1
- package/dist/icons/components/UiTypeAlias.d.ts +1 -1
- package/dist/icons/components/UiTypeParameter.d.ts +1 -1
- package/dist/icons/components/UiTypeScriptIndexSignature.d.ts +1 -1
- package/dist/icons/components/UiUndeploy.d.ts +1 -1
- package/dist/icons/components/UiUnknown.d.ts +1 -1
- package/dist/icons/components/UiUpload.d.ts +1 -1
- package/dist/icons/components/UiUser.d.ts +1 -1
- package/dist/icons/components/UiUserCircle.d.ts +1 -1
- package/dist/icons/components/UiUserCog.d.ts +1 -1
- package/dist/icons/components/UiUserGear.d.ts +1 -1
- package/dist/icons/components/UiUsersFour.d.ts +1 -1
- package/dist/icons/components/UiUsersThree.d.ts +1 -1
- package/dist/icons/components/UiVariable.d.ts +1 -1
- package/dist/icons/components/UiVariable1.d.ts +1 -1
- package/dist/icons/components/UiVariable2.d.ts +1 -1
- package/dist/icons/components/UiVariable3.d.ts +1 -1
- package/dist/icons/components/UiVariable4.d.ts +1 -1
- package/dist/icons/components/UiVariable5.d.ts +1 -1
- package/dist/icons/components/UiVariable6.d.ts +1 -1
- package/dist/icons/components/UiVideo.d.ts +1 -1
- package/dist/icons/components/UiVirtualForeignKey.d.ts +1 -1
- package/dist/icons/components/UiWarningCircle.d.ts +1 -1
- package/dist/icons/components/UiWarningTriangle.d.ts +1 -1
- package/dist/icons/components/UiWatch.d.ts +1 -1
- package/dist/icons/components/UiWebArtifact.d.ts +1 -1
- package/dist/icons/components/UiWebServiceClient.d.ts +1 -1
- package/dist/icons/components/UiWorkflow.d.ts +1 -1
- package/dist/icons/components/UiWrench.d.ts +1 -1
- package/dist/icons/components/UiWriteAccess.d.ts +1 -1
- package/dist/icons/components/UiXpath.d.ts +1 -1
- package/dist/icons/components/UiXpath1.d.ts +1 -1
- package/dist/icons/components/UiZap.d.ts +1 -1
- package/dist/icons/components/UiZoomIn.d.ts +1 -1
- package/dist/icons/components/UiZoomOut.d.ts +1 -1
- package/dist/icons/index.d.ts +1067 -1067
- package/dist/icons/programmingCatalog.d.ts +1 -1
- package/dist/icons/registry.d.ts +1 -1
- package/dist/icons.d.ts +1 -1
- package/dist/index.cjs +1 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +7 -7
- package/dist/index.js +2 -1
- package/dist/jotai.d.ts +3 -3
- package/dist/layout/AppShell.d.ts +4 -4
- package/dist/layout/AppShell.nav.d.ts +1 -1
- package/dist/layout/AppSidebar.d.ts +2 -2
- package/dist/layout/Panel.d.ts +3 -3
- package/dist/layout/Section.d.ts +2 -2
- package/dist/layout/Tabs.d.ts +2 -2
- package/dist/layout/Workspace.d.ts +2 -2
- package/dist/layout/Workspace.regions.d.ts +1 -1
- package/dist/lib/combobox-values.d.ts +1 -1
- package/dist/lib/comment-stage.d.ts +1 -1
- package/dist/lib/permission-strategies.d.ts +2 -2
- package/dist/lib/runtime-profile-model.d.ts +4 -4
- package/dist/lib/size.d.ts +1 -1
- package/dist/mdx-editor.d.ts +4 -4
- package/dist/monaco/MonacoEditor.d.ts +1 -1
- package/dist/monaco/MonacoProvider.d.ts +1 -1
- package/dist/monaco/MonacoSchemaEditor.d.ts +1 -1
- package/dist/monaco/schema-normalizer.d.ts +1 -1
- package/dist/monaco/types.d.ts +1 -1
- package/dist/monaco/use-monaco-worker.d.ts +1 -1
- package/dist/monaco-schema.d.ts +2 -2
- package/dist/monaco.d.ts +5 -5
- package/dist/overlay/CellActions.d.ts +2 -2
- package/dist/overlay/CommandPalette.d.ts +2 -2
- package/dist/overlay/CommandPalette.model.d.ts +1 -1
- package/dist/overlay/CommandPaletteList.d.ts +1 -1
- package/dist/overlay/ContextMenu.d.ts +1 -1
- package/dist/overlay/DropdownMenu.d.ts +2 -2
- package/dist/overlay/DropdownMenuSubmenu.d.ts +1 -1
- package/dist/overlay/Tour.d.ts +2 -2
- package/dist/overlay/TourCard.d.ts +1 -1
- package/dist/overlay/TourProvider.d.ts +3 -3
- package/dist/overlay/TourSpotlight.d.ts +2 -2
- package/dist/overlay/toast-context.d.ts +1 -1
- package/dist/overlay/tour-anchor.d.ts +1 -1
- package/dist/overlay/tour-context.d.ts +2 -2
- package/dist/overlay/tour-model.d.ts +1 -1
- package/dist/overlay/tour-progress.d.ts +1 -1
- package/dist/overlay/use-tour-anchor.d.ts +1 -1
- package/dist/overlay/use-tour-rect.d.ts +1 -1
- package/dist/overlay/use-tour-step.d.ts +1 -1
- package/dist/overlay/useConfirm.d.ts +1 -1
- package/dist/profiles/cel/celEditor.d.ts +2 -2
- package/dist/profiles/cel/celEditorExtension.d.ts +1 -1
- package/dist/profiles/cel/celEditorResults.d.ts +1 -1
- package/dist/profiles/cel/celPath.d.ts +1 -1
- package/dist/profiles/cel/index.d.ts +5 -5
- package/dist/profiles/connections/catalogTree.d.ts +1 -1
- package/dist/profiles/connections/connectionBrowserModel.d.ts +4 -4
- package/dist/profiles/connections/connectionQueryWorkspace.d.ts +7 -7
- package/dist/profiles/connections/connectionQueryWorkspaceModel.d.ts +2 -2
- package/dist/profiles/connections/index.d.ts +5 -5
- package/dist/profiles/connections/inspectionStatus.d.ts +1 -1
- package/dist/profiles/connections/useInspection.d.ts +2 -2
- package/dist/profiles/editor/index.d.ts +11 -11
- package/dist/profiles/editor/profileBuilder.d.ts +1 -1
- package/dist/profiles/editor/profileBuilderExtension.d.ts +1 -1
- package/dist/profiles/editor/profileBuilderModel.d.ts +2 -2
- package/dist/profiles/editor/profileBuilderWorkspace.d.ts +3 -3
- package/dist/profiles/editor/profileEditor.d.ts +2 -2
- package/dist/profiles/editor/profileEditorModel.d.ts +2 -2
- package/dist/profiles/editor/profileEditorPreview.d.ts +1 -1
- package/dist/profiles/editor/profileEditorRail.d.ts +1 -1
- package/dist/profiles/editor/profileEditorRaw.d.ts +1 -1
- package/dist/profiles/editor/profileEditorSections.d.ts +3 -3
- package/dist/profiles/editor/profileParameterEditor.d.ts +1 -1
- package/dist/profiles/editor/profileYaml.d.ts +1 -1
- package/dist/profiles/editor/testSchema.d.ts +1 -1
- package/dist/profiles/elasticsearch/esFieldValues.d.ts +2 -2
- package/dist/profiles/elasticsearch/esParamMappingModel.d.ts +2 -2
- package/dist/profiles/elasticsearch/esParamOperandExtension.d.ts +2 -2
- package/dist/profiles/elasticsearch/esQueryBuilder.d.ts +8 -8
- package/dist/profiles/elasticsearch/esQueryBuilderExtension.d.ts +1 -1
- package/dist/profiles/elasticsearch/esQueryBuilderForm.d.ts +3 -3
- package/dist/profiles/elasticsearch/esQueryClauseGroup.d.ts +2 -2
- package/dist/profiles/elasticsearch/esQueryCompile.d.ts +1 -1
- package/dist/profiles/elasticsearch/esQueryConditionRow.d.ts +5 -5
- package/dist/profiles/elasticsearch/esQueryGroupModel.d.ts +1 -1
- package/dist/profiles/elasticsearch/esQueryOperandEditors.d.ts +5 -5
- package/dist/profiles/elasticsearch/esQueryOperandModel.d.ts +2 -2
- package/dist/profiles/elasticsearch/esQueryOperators.d.ts +1 -1
- package/dist/profiles/elasticsearch/esQueryOutputEditor.d.ts +2 -2
- package/dist/profiles/elasticsearch/esQueryPreview.d.ts +1 -1
- package/dist/profiles/elasticsearch/esQuerySortEditor.d.ts +2 -2
- package/dist/profiles/elasticsearch/esQuerySortModel.d.ts +1 -1
- package/dist/profiles/elasticsearch/esValueCombobox.d.ts +1 -1
- package/dist/profiles/elasticsearch/index.d.ts +22 -22
- package/dist/profiles/fields/index.d.ts +8 -8
- package/dist/profiles/fields/profileColumnModel.d.ts +1 -1
- package/dist/profiles/fields/profileColumnPicker.d.ts +1 -1
- package/dist/profiles/fields/profileFieldControls.d.ts +2 -2
- package/dist/profiles/fields/profileFieldEditor.d.ts +1 -1
- package/dist/profiles/fields/profileFieldFilterEditor.d.ts +1 -1
- package/dist/profiles/fields/profileFieldIcons.d.ts +1 -1
- package/dist/profiles/fields/profileFieldList.d.ts +1 -1
- package/dist/profiles/fields/profileFieldManager.d.ts +1 -1
- package/dist/profiles/fields/profileFieldState.d.ts +1 -1
- package/dist/profiles/fields/profileParamModel.d.ts +1 -1
- package/dist/profiles/processor/index.d.ts +5 -5
- package/dist/profiles/processor/processorPipeline.d.ts +2 -2
- package/dist/profiles/processor/processorPipelineEditor.d.ts +2 -2
- package/dist/profiles/processor/processorPipelineExtension.d.ts +1 -1
- package/dist/profiles/processor/processorPreviewTable.d.ts +1 -1
- package/dist/profiles/processor/processorSampleParams.d.ts +1 -1
- package/dist/profiles/profileApi.d.ts +2 -2
- package/dist/profiles/query/index.d.ts +8 -8
- package/dist/profiles/query/jsonPathSample.d.ts +1 -1
- package/dist/profiles/query/kubernetesWorkloadTargetPicker.d.ts +1 -1
- package/dist/profiles/query/profileSampleFilterLookup.d.ts +3 -3
- package/dist/profiles/query/profileSamplePayload.d.ts +3 -3
- package/dist/profiles/query/profileSampleResult.d.ts +3 -3
- package/dist/profiles/query/prometheusResults.d.ts +1 -1
- package/dist/profiles/query/queryRowLimits.d.ts +1 -1
- package/dist/profiles/query/queryRowLimitsModel.d.ts +1 -1
- package/dist/profiles/query/queryTargetPicker.d.ts +1 -1
- package/dist/profiles/wizard/index.d.ts +5 -5
- package/dist/profiles/wizard/profileWizard.d.ts +2 -2
- package/dist/profiles/wizard/profileWizardModel.d.ts +1 -1
- package/dist/profiles/wizard/profileWizardQueryStep.d.ts +1 -1
- package/dist/profiles/wizard/profileWizardSteps.d.ts +1 -1
- package/dist/profiles.d.ts +9 -9
- package/dist/rpc/ChatLayer.d.ts +3 -3
- package/dist/rpc/CommandForm.d.ts +2 -2
- package/dist/rpc/CommandOutput.d.ts +7 -7
- package/dist/rpc/EndpointList.d.ts +1 -1
- package/dist/rpc/EntityExplorerApp.d.ts +5 -5
- package/dist/rpc/ExecutionResult.d.ts +1 -1
- package/dist/rpc/FilterForm.d.ts +3 -3
- package/dist/rpc/FilterFormFields.d.ts +1 -1
- package/dist/rpc/OperationActionBar.d.ts +6 -6
- package/dist/rpc/OperationActionDialog.d.ts +2 -2
- package/dist/rpc/OperationCatalog.d.ts +10 -10
- package/dist/rpc/OperationCatalogActions.d.ts +3 -3
- package/dist/rpc/OperationCatalogFollowStatus.d.ts +1 -1
- package/dist/rpc/OperationCommandPage.d.ts +5 -5
- package/dist/rpc/OperationEntityContextPicker.d.ts +4 -4
- package/dist/rpc/OperationEntityContextPicker.model.d.ts +3 -3
- package/dist/rpc/OperationEntityPage.d.ts +6 -6
- package/dist/rpc/OperationPicker.d.ts +1 -1
- package/dist/rpc/OperationResultView.d.ts +7 -7
- package/dist/rpc/OperationScheduleDialog.d.ts +2 -2
- package/dist/rpc/OperationSchedules.d.ts +1 -1
- package/dist/rpc/RouterProvider.d.ts +1 -1
- package/dist/rpc/SchemaActionForm.d.ts +3 -3
- package/dist/rpc/SessionHeader.d.ts +5 -5
- package/dist/rpc/SessionHeaderControls.d.ts +2 -2
- package/dist/rpc/SessionsCatalog.d.ts +3 -3
- package/dist/rpc/actionIconMap.d.ts +1 -1
- package/dist/rpc/apiClient.d.ts +3 -3
- package/dist/rpc/classify.d.ts +1 -1
- package/dist/rpc/clickyMetadata.d.ts +1 -1
- package/dist/rpc/command-form-utils.d.ts +1 -1
- package/dist/rpc/commandHref.d.ts +1 -1
- package/dist/rpc/cursorStale.d.ts +2 -2
- package/dist/rpc/executionPages.d.ts +2 -2
- package/dist/rpc/filterShapes.d.ts +1 -1
- package/dist/rpc/formMetadata.d.ts +4 -4
- package/dist/rpc/operation-cli-command.d.ts +2 -2
- package/dist/rpc/operation-schedule-model.d.ts +3 -3
- package/dist/rpc/operation-schedule-types.d.ts +1 -1
- package/dist/rpc/operationCatalogFilterState.d.ts +2 -2
- package/dist/rpc/operationCatalogFollow.d.ts +2 -2
- package/dist/rpc/operationErrorDiagnostics.d.ts +1 -1
- package/dist/rpc/operationFilterSearch.d.ts +3 -3
- package/dist/rpc/operationLookupFetcher.d.ts +2 -2
- package/dist/rpc/router.d.ts +1 -1
- package/dist/rpc/rowNavigation.d.ts +2 -2
- package/dist/rpc/rpc-story-fixtures/orders.fixture.d.ts +1 -1
- package/dist/rpc/rpc-story-fixtures/services.fixture.d.ts +1 -1
- package/dist/rpc/rpc-story-fixtures/surface-fixture.d.ts +2 -2
- package/dist/rpc/rpc-story-fixtures/widgets.fixture.d.ts +1 -1
- package/dist/rpc/rpc-story.fixtures.d.ts +3 -3
- package/dist/rpc/session-story.fixtures.d.ts +1 -1
- package/dist/rpc/sessionHeaderModel.d.ts +1 -1
- package/dist/rpc/surfaceIconMap.d.ts +1 -1
- package/dist/rpc/surfaceNav.d.ts +2 -2
- package/dist/rpc/types.d.ts +3 -3
- package/dist/rpc/useOperationCatalogFollow.d.ts +2 -2
- package/dist/rpc/useOperationPages.d.ts +4 -4
- package/dist/rpc/useOperations.d.ts +2 -2
- package/dist/rpc/useSession.d.ts +2 -2
- package/dist/rpc.d.ts +37 -37
- package/dist/runtime-profile.d.ts +1 -1
- package/dist/utils.d.ts +13 -13
- package/package.json +4 -3
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { jsxs, jsx, Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { useQueries } from "@tanstack/react-query";
|
|
3
2
|
import { useState, useMemo } from "react";
|
|
4
3
|
import { CartesianGrid, XAxis, YAxis, Tooltip, ReferenceLine, ResponsiveContainer, LineChart, Line, AreaChart, Area } from "recharts";
|
|
5
4
|
import { cn } from "../lib/utils.js";
|
|
@@ -10,12 +9,8 @@ import { ProgressBar } from "./ProgressBar.js";
|
|
|
10
9
|
import { Icon } from "./Icon.js";
|
|
11
10
|
import { latestOf, assignAxes } from "./TimeseriesPanel.axes.js";
|
|
12
11
|
import { resolveSeries, mergeSeries, resolveBreakdown } from "./TimeseriesPanel.model.js";
|
|
12
|
+
import { defaultTimeseriesFetcher, useTimeseriesQueries } from "./timeseries-query.js";
|
|
13
13
|
import { UiFullscreen } from "../icons/components/UiFullscreen.js";
|
|
14
|
-
const defaultFetcher = async (url) => {
|
|
15
|
-
const res = await fetch(url);
|
|
16
|
-
if (!res.ok) throw new Error(`metrics request failed: ${res.status}`);
|
|
17
|
-
return res.json();
|
|
18
|
-
};
|
|
19
14
|
function formatClock(at) {
|
|
20
15
|
const date = new Date(at);
|
|
21
16
|
if (Number.isNaN(date.getTime())) return "";
|
|
@@ -33,7 +28,8 @@ function TimeseriesPanel(props) {
|
|
|
33
28
|
variant = "area",
|
|
34
29
|
expandable = true,
|
|
35
30
|
total,
|
|
36
|
-
|
|
31
|
+
referenceLines,
|
|
32
|
+
fetcher = defaultTimeseriesFetcher,
|
|
37
33
|
className
|
|
38
34
|
} = props;
|
|
39
35
|
const isBreakdown = variant === "breakdown";
|
|
@@ -41,23 +37,11 @@ function TimeseriesPanel(props) {
|
|
|
41
37
|
const expandVariant = props.expandVariant ?? chartVariant;
|
|
42
38
|
const [expanded, setExpanded] = useState(false);
|
|
43
39
|
const series = useMemo(() => resolveSeries(props), [props]);
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
if (range) u.searchParams.set("since", range);
|
|
48
|
-
return u.pathname + u.search;
|
|
49
|
-
}),
|
|
50
|
-
[series, range]
|
|
40
|
+
const results = useTimeseriesQueries(
|
|
41
|
+
series.map((s) => ({ id: s.key, load: s.load })),
|
|
42
|
+
{ baseUrl: props.baseUrl ?? "", range, refreshMs, fetcher }
|
|
51
43
|
);
|
|
52
|
-
const
|
|
53
|
-
queries: requestUrls.map((requestUrl) => ({
|
|
54
|
-
queryKey: ["timeseries", requestUrl],
|
|
55
|
-
queryFn: () => fetcher(requestUrl),
|
|
56
|
-
refetchInterval: refreshMs > 0 ? refreshMs : false,
|
|
57
|
-
staleTime: 0,
|
|
58
|
-
retry: 0
|
|
59
|
-
}))
|
|
60
|
-
});
|
|
44
|
+
const refs = referenceLines ?? [];
|
|
61
45
|
const isError = results.some((r) => r.isError);
|
|
62
46
|
const error = (_a = results.find((r) => r.isError)) == null ? void 0 : _a.error;
|
|
63
47
|
const isLoading = results.some((r) => r.isLoading) && results.every((r) => !r.data);
|
|
@@ -92,11 +76,31 @@ function TimeseriesPanel(props) {
|
|
|
92
76
|
) : null
|
|
93
77
|
] })
|
|
94
78
|
] }),
|
|
95
|
-
/* @__PURE__ */ jsx("div", { className: "mt-2", style: breakdown ? void 0 : { height }, children: breakdown ? /* @__PURE__ */ jsx(BreakdownView, { total: breakdown.total, unit, items: breakdown.items }) : isError ? /* @__PURE__ */ jsx(PanelMessage, { children: (error == null ? void 0 : error.message) ?? "Failed to load metric" }) : isLoading ? /* @__PURE__ */ jsx(PanelMessage, { children: "Loading…" }) : rows.length < 2 ? /* @__PURE__ */ jsx(PanelMessage, { children: "Collecting data…" }) : /* @__PURE__ */ jsx(
|
|
96
|
-
|
|
79
|
+
/* @__PURE__ */ jsx("div", { className: "mt-2", style: breakdown ? void 0 : { height }, children: breakdown ? /* @__PURE__ */ jsx(BreakdownView, { total: breakdown.total, unit, items: breakdown.items }) : isError ? /* @__PURE__ */ jsx(PanelMessage, { children: (error == null ? void 0 : error.message) ?? "Failed to load metric" }) : isLoading ? /* @__PURE__ */ jsx(PanelMessage, { children: "Loading…" }) : rows.length < 2 ? /* @__PURE__ */ jsx(PanelMessage, { children: "Collecting data…" }) : /* @__PURE__ */ jsx(
|
|
80
|
+
Chart,
|
|
81
|
+
{
|
|
82
|
+
rows,
|
|
83
|
+
series,
|
|
84
|
+
variant: chartVariant,
|
|
85
|
+
unit,
|
|
86
|
+
showZeroLine: hasMirrored,
|
|
87
|
+
referenceLines: refs
|
|
88
|
+
}
|
|
89
|
+
) }),
|
|
90
|
+
!breakdown && !isError && !isLoading && rows.length >= 2 && series.length + refs.length > 1 ? /* @__PURE__ */ jsx(ChartLegend, { series, rows, referenceLines: refs, unit }) : null,
|
|
97
91
|
canExpand ? /* @__PURE__ */ jsxs(Modal, { open: expanded, onClose: () => setExpanded(false), title, size: "xl", children: [
|
|
98
|
-
/* @__PURE__ */ jsx("div", { style: { height: 360 }, children: /* @__PURE__ */ jsx(
|
|
99
|
-
|
|
92
|
+
/* @__PURE__ */ jsx("div", { style: { height: 360 }, children: /* @__PURE__ */ jsx(
|
|
93
|
+
Chart,
|
|
94
|
+
{
|
|
95
|
+
rows,
|
|
96
|
+
series,
|
|
97
|
+
variant: expandVariant,
|
|
98
|
+
unit,
|
|
99
|
+
showZeroLine: hasMirrored,
|
|
100
|
+
referenceLines: refs
|
|
101
|
+
}
|
|
102
|
+
) }),
|
|
103
|
+
series.length + refs.length > 1 ? /* @__PURE__ */ jsx(ChartLegend, { series, rows, referenceLines: refs, unit }) : null
|
|
100
104
|
] }) : null
|
|
101
105
|
] });
|
|
102
106
|
}
|
|
@@ -107,22 +111,45 @@ function LatestReadout({ series, rows }) {
|
|
|
107
111
|
if (v === void 0) return null;
|
|
108
112
|
return /* @__PURE__ */ jsx("span", { className: "tabular-nums", children: formatUnit(Math.abs(v), only.unit) });
|
|
109
113
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
+
const REFERENCE_LINE_COLOR = "var(--muted-foreground, #64748b)";
|
|
115
|
+
function referenceColor(ref) {
|
|
116
|
+
return resolveCssColor(ref.color ?? REFERENCE_LINE_COLOR);
|
|
117
|
+
}
|
|
118
|
+
function ChartLegend({
|
|
119
|
+
series,
|
|
120
|
+
rows,
|
|
121
|
+
referenceLines,
|
|
122
|
+
unit
|
|
123
|
+
}) {
|
|
124
|
+
return /* @__PURE__ */ jsxs("ul", { className: "mt-1.5 flex flex-wrap gap-x-3 gap-y-1 text-xs text-muted-foreground", children: [
|
|
125
|
+
series.map((s) => {
|
|
126
|
+
const v = latestOf(rows, s.key);
|
|
127
|
+
return /* @__PURE__ */ jsxs("li", { className: "inline-flex min-w-0 items-center gap-1.5", children: [
|
|
128
|
+
/* @__PURE__ */ jsx(
|
|
129
|
+
"span",
|
|
130
|
+
{
|
|
131
|
+
className: "h-2 w-2 shrink-0 rounded-full",
|
|
132
|
+
style: { backgroundColor: resolveCssColor(s.color) },
|
|
133
|
+
"aria-hidden": true
|
|
134
|
+
}
|
|
135
|
+
),
|
|
136
|
+
/* @__PURE__ */ jsx("span", { className: "truncate text-foreground", children: s.label }),
|
|
137
|
+
v !== void 0 ? /* @__PURE__ */ jsx("span", { className: "tabular-nums", children: formatUnit(Math.abs(v), s.unit) }) : null
|
|
138
|
+
] }, s.key);
|
|
139
|
+
}),
|
|
140
|
+
referenceLines.map((ref, i) => /* @__PURE__ */ jsxs("li", { className: "inline-flex min-w-0 items-center gap-1.5", children: [
|
|
114
141
|
/* @__PURE__ */ jsx(
|
|
115
142
|
"span",
|
|
116
143
|
{
|
|
117
|
-
className: "h-
|
|
118
|
-
style: { backgroundColor:
|
|
144
|
+
className: "h-0.5 w-2.5 shrink-0",
|
|
145
|
+
style: { backgroundColor: referenceColor(ref) },
|
|
119
146
|
"aria-hidden": true
|
|
120
147
|
}
|
|
121
148
|
),
|
|
122
|
-
/* @__PURE__ */ jsx("span", { className: "truncate text-foreground", children:
|
|
123
|
-
|
|
124
|
-
] },
|
|
125
|
-
|
|
149
|
+
/* @__PURE__ */ jsx("span", { className: "truncate text-foreground", children: ref.label }),
|
|
150
|
+
/* @__PURE__ */ jsx("span", { className: "tabular-nums", children: formatUnit(ref.value, ref.unit ?? unit) })
|
|
151
|
+
] }, `ref-${i}`))
|
|
152
|
+
] });
|
|
126
153
|
}
|
|
127
154
|
function BreakdownReadout({
|
|
128
155
|
total,
|
|
@@ -175,13 +202,18 @@ function Chart({
|
|
|
175
202
|
series,
|
|
176
203
|
variant,
|
|
177
204
|
unit,
|
|
178
|
-
showZeroLine
|
|
205
|
+
showZeroLine,
|
|
206
|
+
referenceLines
|
|
179
207
|
}) {
|
|
180
208
|
const stacked = variant === "stacked";
|
|
181
209
|
const seriesByKey = new Map(series.map((s) => [s.key, s]));
|
|
182
210
|
const strokeOf = (s) => resolveCssColor(s.color);
|
|
183
211
|
const { axes: yAxes, axisOfKey } = useMemo(() => assignAxes(series), [series]);
|
|
184
212
|
const axisOf = (key) => axisOfKey.get(key) ?? "left";
|
|
213
|
+
const axisOfUnit = (u) => {
|
|
214
|
+
var _a;
|
|
215
|
+
return ((_a = yAxes.find((ax) => ax.unit === u)) == null ? void 0 : _a.id) ?? "left";
|
|
216
|
+
};
|
|
185
217
|
const axes = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
186
218
|
/* @__PURE__ */ jsx(CartesianGrid, { strokeOpacity: 0.12, vertical: false }),
|
|
187
219
|
/* @__PURE__ */ jsx(
|
|
@@ -219,7 +251,18 @@ function Chart({
|
|
|
219
251
|
contentStyle: { fontSize: 12 }
|
|
220
252
|
}
|
|
221
253
|
),
|
|
222
|
-
showZeroLine ? /* @__PURE__ */ jsx(ReferenceLine, { yAxisId: "left", y: 0, stroke: "currentColor", strokeOpacity: 0.35 }) : null
|
|
254
|
+
showZeroLine ? /* @__PURE__ */ jsx(ReferenceLine, { yAxisId: "left", y: 0, stroke: "currentColor", strokeOpacity: 0.35 }) : null,
|
|
255
|
+
referenceLines.map((ref, i) => /* @__PURE__ */ jsx(
|
|
256
|
+
ReferenceLine,
|
|
257
|
+
{
|
|
258
|
+
yAxisId: axisOfUnit(ref.unit ?? unit),
|
|
259
|
+
y: ref.value,
|
|
260
|
+
stroke: referenceColor(ref),
|
|
261
|
+
strokeDasharray: "4 4",
|
|
262
|
+
ifOverflow: "extendDomain"
|
|
263
|
+
},
|
|
264
|
+
`ref-${i}`
|
|
265
|
+
))
|
|
223
266
|
] });
|
|
224
267
|
return /* @__PURE__ */ jsx(ResponsiveContainer, { width: "100%", height: "100%", children: variant === "line" ? /* @__PURE__ */ jsxs(LineChart, { data: rows, margin: { top: 4, right: 8, bottom: 0, left: 0 }, children: [
|
|
225
268
|
axes,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimeseriesPanel.js","sources":["../../src/data/TimeseriesPanel.tsx"],"sourcesContent":["import { useQueries } from \"@tanstack/react-query\";\nimport { useMemo, useState } from \"react\";\nimport {\n Area,\n AreaChart,\n CartesianGrid,\n Line,\n LineChart,\n ReferenceLine,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from \"recharts\";\nimport { cn } from \"../lib/utils\";\nimport { resolveCssColor } from \"../lib/color\";\nimport { formatUnit } from \"../lib/format\";\nimport { Modal } from \"../overlay/Modal\";\nimport { ProgressBar, type ProgressSegment } from \"./ProgressBar\";\nimport { UiFullscreen } from \"../icons\";\nimport { Icon, type StaticIconComponent } from \"./Icon\";\nimport { assignAxes, latestOf } from \"./TimeseriesPanel.axes\";\nimport {\n mergeSeries,\n resolveBreakdown,\n resolveSeries,\n type BreakdownItem,\n type MergedRow,\n type ResolvedSeries,\n type TimeseriesPanelProps,\n type TimeseriesResponse,\n} from \"./TimeseriesPanel.model\";\n\nexport type { AxisAssignment, AxisOrientation, AxisSpec } from \"./TimeseriesPanel.axes\";\nexport type {\n BreakdownItem,\n MergedRow,\n ResolvedSeries,\n TimeseriesPanelProps,\n TimeseriesPoint,\n TimeseriesResponse,\n TimeseriesSeries,\n} from \"./TimeseriesPanel.model\";\n\nconst defaultFetcher = async (url: string): Promise<TimeseriesResponse> => {\n const res = await fetch(url);\n if (!res.ok) throw new Error(`metrics request failed: ${res.status}`);\n return res.json();\n};\n\nfunction formatClock(at: string): string {\n const date = new Date(at);\n if (Number.isNaN(date.getTime())) return \"\";\n return date.toLocaleTimeString([], { hour: \"2-digit\", minute: \"2-digit\" });\n}\n\nexport function TimeseriesPanel(props: TimeseriesPanelProps) {\n const {\n title,\n icon,\n unit,\n range = \"1h\",\n refreshMs = 5000,\n height = 160,\n variant = \"area\",\n expandable = true,\n total,\n fetcher = defaultFetcher,\n className,\n } = props;\n const isBreakdown = variant === \"breakdown\";\n // The inline chart (non-breakdown only) and the expand modal both need a\n // time-series variant; breakdown has no inline chart and expands to \"area\".\n const chartVariant: ChartVariant = isBreakdown ? \"area\" : variant;\n const expandVariant = props.expandVariant ?? chartVariant;\n\n const [expanded, setExpanded] = useState(false);\n\n const series = useMemo(() => resolveSeries(props), [props]);\n const requestUrls = useMemo(\n () =>\n series.map((s) => {\n const u = new URL(s.url, window.location.origin);\n if (range) u.searchParams.set(\"since\", range);\n return u.pathname + u.search;\n }),\n [series, range],\n );\n\n const results = useQueries({\n queries: requestUrls.map((requestUrl) => ({\n queryKey: [\"timeseries\", requestUrl],\n queryFn: () => fetcher(requestUrl),\n refetchInterval: refreshMs > 0 ? refreshMs : false,\n staleTime: 0,\n retry: 0,\n })),\n });\n\n const isError = results.some((r) => r.isError);\n const error = results.find((r) => r.isError)?.error;\n const isLoading = results.some((r) => r.isLoading) && results.every((r) => !r.data);\n const pointsBySeries = results.map((r) => r.data?.points);\n const rows = useMemo(() => mergeSeries(series, pointsBySeries), [series, pointsBySeries]);\n const hasMirrored = series.some((s) => s.transform);\n const breakdown = useMemo(\n () => (isBreakdown ? resolveBreakdown(series, rows, total) : null),\n [isBreakdown, series, rows, total],\n );\n\n // Breakdown renders instantly from `current`; the modal still needs polled\n // history. Other variants gate on having ≥2 points to draw a line.\n const canExpand = expandable && rows.length >= 2;\n\n return (\n <div className={cn(\"flex flex-col rounded-lg border border-border bg-card p-3\", className)}>\n <div className=\"flex items-center justify-between gap-2 text-xs text-muted-foreground\">\n <span className=\"inline-flex min-w-0 items-center gap-1.5\">\n {icon ? <PanelIcon icon={icon} /> : null}\n <span className=\"truncate font-medium text-foreground\">{title}</span>\n </span>\n <span className=\"inline-flex shrink-0 items-center gap-1.5\">\n {breakdown ? (\n <BreakdownReadout total={breakdown.total} unit={unit} items={breakdown.items} />\n ) : (\n <LatestReadout series={series} rows={rows} />\n )}\n {canExpand ? (\n <button\n type=\"button\"\n aria-label=\"Expand chart\"\n onClick={() => setExpanded(true)}\n className=\"text-muted-foreground transition-colors hover:text-foreground\"\n >\n <Icon icon={UiFullscreen} width={14} height={14} />\n </button>\n ) : null}\n </span>\n </div>\n <div className=\"mt-2\" style={breakdown ? undefined : { height }}>\n {breakdown ? (\n <BreakdownView total={breakdown.total} unit={unit} items={breakdown.items} />\n ) : isError ? (\n <PanelMessage>{(error as Error)?.message ?? \"Failed to load metric\"}</PanelMessage>\n ) : isLoading ? (\n <PanelMessage>Loading…</PanelMessage>\n ) : rows.length < 2 ? (\n <PanelMessage>Collecting data…</PanelMessage>\n ) : (\n <Chart rows={rows} series={series} variant={chartVariant} unit={unit} showZeroLine={hasMirrored} />\n )}\n </div>\n {!breakdown && !isError && !isLoading && rows.length >= 2 && series.length > 1 ? (\n <ChartLegend series={series} rows={rows} />\n ) : null}\n {canExpand ? (\n <Modal open={expanded} onClose={() => setExpanded(false)} title={title} size=\"xl\">\n <div style={{ height: 360 }}>\n <Chart rows={rows} series={series} variant={expandVariant} unit={unit} showZeroLine={hasMirrored} />\n </div>\n {series.length > 1 ? <ChartLegend series={series} rows={rows} /> : null}\n </Modal>\n ) : null}\n </div>\n );\n}\n\n/**\n * Header readout for a single-series panel: the latest value, formatted with the\n * series' unit. Multi-series panels render the per-series values in {@link ChartLegend}\n * below the chart instead, so this returns null for them to avoid overlapping the title.\n */\nfunction LatestReadout({ series, rows }: { series: ResolvedSeries[]; rows: MergedRow[] }) {\n const only = series.length === 1 ? series[0] : undefined;\n if (!only) return null;\n const v = latestOf(rows, only.key);\n if (v === undefined) return null;\n return <span className=\"tabular-nums\">{formatUnit(Math.abs(v), only.unit)}</span>;\n}\n\n/** Wrapping color-keyed legend for the time-series variants: dot + label + latest value. */\nfunction ChartLegend({ series, rows }: { series: ResolvedSeries[]; rows: MergedRow[] }) {\n return (\n <ul className=\"mt-1.5 flex flex-wrap gap-x-3 gap-y-1 text-xs text-muted-foreground\">\n {series.map((s) => {\n const v = latestOf(rows, s.key);\n return (\n <li key={s.key} className=\"inline-flex min-w-0 items-center gap-1.5\">\n <span\n className=\"h-2 w-2 shrink-0 rounded-full\"\n style={{ backgroundColor: resolveCssColor(s.color) }}\n aria-hidden\n />\n <span className=\"truncate text-foreground\">{s.label}</span>\n {v !== undefined ? (\n <span className=\"tabular-nums\">{formatUnit(Math.abs(v), s.unit)}</span>\n ) : null}\n </li>\n );\n })}\n </ul>\n );\n}\n\n/** Breakdown header readout: `used / total · pct%`, where used is the sum of segments. */\nfunction BreakdownReadout({\n total,\n unit,\n items,\n}: {\n total: number;\n unit: string | undefined;\n items: BreakdownItem[];\n}) {\n const used = items.reduce((acc, it) => acc + it.value, 0);\n const pct = total > 0 ? Math.min(100, (used / total) * 100) : 0;\n return (\n <span className=\"font-mono tabular-nums\">\n {formatUnit(used, unit)} / {formatUnit(total, unit)} · {pct.toFixed(0)}%\n </span>\n );\n}\n\n/** Instantaneous stacked bar + legend list. The expand button (in the panel header) opens the graph. */\nfunction BreakdownView({\n total,\n unit,\n items,\n}: {\n total: number;\n unit: string | undefined;\n items: BreakdownItem[];\n}) {\n const segments: ProgressSegment[] = items.map((it) => ({\n count: it.value,\n color: it.color,\n label: it.label,\n }));\n return (\n <div className=\"flex flex-col gap-2\">\n <ProgressBar segments={segments} total={total > 0 ? total : 1} height=\"h-3\" />\n {items.length > 0 ? (\n <ul className=\"grid grid-cols-1 gap-y-1 text-xs\">\n {items.map((it) => (\n <li key={it.key} className=\"flex items-center gap-2\">\n <span\n className=\"h-2 w-2 shrink-0 rounded-full\"\n style={{ backgroundColor: resolveCssColor(it.color) }}\n aria-hidden\n />\n <span className=\"min-w-0 flex-1 truncate font-mono text-muted-foreground\">\n {it.label}\n </span>\n <span className=\"font-mono tabular-nums text-foreground\">\n {formatUnit(it.value, it.unit ?? unit)}\n </span>\n <span className=\"w-10 text-right font-mono tabular-nums text-muted-foreground\">\n {it.percent.toFixed(0)}%\n </span>\n </li>\n ))}\n </ul>\n ) : null}\n </div>\n );\n}\n\ntype ChartVariant = \"area\" | \"line\" | \"stacked\";\n\nfunction Chart({\n rows,\n series,\n variant,\n unit,\n showZeroLine,\n}: {\n rows: MergedRow[];\n series: ResolvedSeries[];\n variant: ChartVariant;\n unit: string | undefined;\n showZeroLine: boolean;\n}) {\n const stacked = variant === \"stacked\";\n // Mirrored series carry negative values; show magnitudes on axis and tooltip.\n const seriesByKey = new Map(series.map((s) => [s.key, s]));\n // recharts needs a CSS color value; a series may carry a Tailwind class.\n const strokeOf = (s: ResolvedSeries) => resolveCssColor(s.color);\n // Distinct units map to a left and (when present) right axis; each series draws\n // against the axis for its unit so mixed-unit panels keep independent scales.\n const { axes: yAxes, axisOfKey } = useMemo(() => assignAxes(series), [series]);\n const axisOf = (key: string): \"left\" | \"right\" => axisOfKey.get(key) ?? \"left\";\n const axes = (\n <>\n <CartesianGrid strokeOpacity={0.12} vertical={false} />\n <XAxis\n dataKey=\"at\"\n tickFormatter={formatClock}\n tick={{ fontSize: 10 }}\n stroke=\"currentColor\"\n strokeOpacity={0.35}\n minTickGap={32}\n />\n {yAxes.map((ax) => (\n <YAxis\n key={ax.id}\n yAxisId={ax.id}\n orientation={ax.orientation}\n tick={{ fontSize: 10 }}\n stroke=\"currentColor\"\n strokeOpacity={0.35}\n width={40}\n tickFormatter={(v: number) => formatUnit(Math.abs(v), ax.unit)}\n />\n ))}\n <Tooltip\n labelFormatter={(label) => formatClock(String(label))}\n formatter={(value, name) => {\n const s = seriesByKey.get(String(name));\n return [formatUnit(Math.abs(Number(value) || 0), s?.unit ?? unit), s?.label ?? String(name)];\n }}\n contentStyle={{ fontSize: 12 }}\n />\n {showZeroLine ? (\n <ReferenceLine yAxisId=\"left\" y={0} stroke=\"currentColor\" strokeOpacity={0.35} />\n ) : null}\n </>\n );\n\n return (\n <ResponsiveContainer width=\"100%\" height=\"100%\">\n {variant === \"line\" ? (\n <LineChart data={rows} margin={{ top: 4, right: 8, bottom: 0, left: 0 }}>\n {axes}\n {series.map((s) => (\n <Line\n key={s.key}\n yAxisId={axisOf(s.key)}\n type=\"monotone\"\n dataKey={s.key}\n name={s.key}\n stroke={strokeOf(s)}\n strokeWidth={2}\n dot={false}\n connectNulls\n isAnimationActive={false}\n />\n ))}\n </LineChart>\n ) : (\n <AreaChart data={rows} margin={{ top: 4, right: 8, bottom: 0, left: 0 }}>\n {axes}\n {series.map((s) => (\n <Area\n key={s.key}\n yAxisId={axisOf(s.key)}\n type=\"monotone\"\n dataKey={s.key}\n name={s.key}\n stroke={strokeOf(s)}\n fill={strokeOf(s)}\n {...(stacked ? { stackId: `stack-${axisOf(s.key)}` } : {})}\n fillOpacity={stacked ? 0.7 : 0.12}\n strokeWidth={stacked ? 0 : 2}\n connectNulls\n isAnimationActive={false}\n />\n ))}\n </AreaChart>\n )}\n </ResponsiveContainer>\n );\n}\n\nfunction PanelMessage({ children }: { children: React.ReactNode }) {\n return (\n <div className=\"flex h-full items-center justify-center text-xs text-muted-foreground\">\n {children}\n </div>\n );\n}\n\nfunction PanelIcon({ icon }: { icon: string | StaticIconComponent }) {\n if (typeof icon === \"string\") {\n return <Icon name={icon} width={16} height={16} className=\"text-muted-foreground\" />;\n }\n return <Icon icon={icon} width={16} height={16} className=\"text-muted-foreground\" />;\n}\n"],"names":["_a"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TimeseriesPanel.js","sources":["../../src/data/TimeseriesPanel.tsx"],"sourcesContent":["import { useMemo, useState } from \"react\";\nimport {\n Area,\n AreaChart,\n CartesianGrid,\n Line,\n LineChart,\n ReferenceLine,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from \"recharts\";\nimport { cn } from \"../lib/utils\";\nimport { resolveCssColor } from \"../lib/color\";\nimport { formatUnit } from \"../lib/format\";\nimport { Modal } from \"../overlay/Modal\";\nimport { ProgressBar, type ProgressSegment } from \"./ProgressBar\";\nimport { UiFullscreen } from \"../icons\";\nimport { Icon, type StaticIconComponent } from \"./Icon\";\nimport { assignAxes, latestOf } from \"./TimeseriesPanel.axes\";\nimport {\n mergeSeries,\n resolveBreakdown,\n resolveSeries,\n type BreakdownItem,\n type MergedRow,\n type ResolvedSeries,\n type TimeseriesPanelProps,\n type TimeseriesReferenceLine,\n} from \"./TimeseriesPanel.model\";\nimport { defaultTimeseriesFetcher, useTimeseriesQueries } from \"./timeseries-query\";\n\nexport type { AxisAssignment, AxisOrientation, AxisSpec } from \"./TimeseriesPanel.axes\";\nexport type {\n BreakdownItem,\n MergedRow,\n ResolvedSeries,\n SeriesLoadContext,\n SeriesLoader,\n TimeseriesPanelProps,\n TimeseriesPoint,\n TimeseriesReferenceLine,\n TimeseriesResponse,\n TimeseriesSeries,\n} from \"./TimeseriesPanel.model\";\n\nfunction formatClock(at: string): string {\n const date = new Date(at);\n if (Number.isNaN(date.getTime())) return \"\";\n return date.toLocaleTimeString([], { hour: \"2-digit\", minute: \"2-digit\" });\n}\n\nexport function TimeseriesPanel(props: TimeseriesPanelProps) {\n const {\n title,\n icon,\n unit,\n range = \"1h\",\n refreshMs = 5000,\n height = 160,\n variant = \"area\",\n expandable = true,\n total,\n referenceLines,\n fetcher = defaultTimeseriesFetcher,\n className,\n } = props;\n const isBreakdown = variant === \"breakdown\";\n // The inline chart (non-breakdown only) and the expand modal both need a\n // time-series variant; breakdown has no inline chart and expands to \"area\".\n const chartVariant: ChartVariant = isBreakdown ? \"area\" : variant;\n const expandVariant = props.expandVariant ?? chartVariant;\n\n const [expanded, setExpanded] = useState(false);\n\n const series = useMemo(() => resolveSeries(props), [props]);\n const results = useTimeseriesQueries(\n series.map((s) => ({ id: s.key, load: s.load })),\n { baseUrl: props.baseUrl ?? \"\", range, refreshMs, fetcher },\n );\n const refs = referenceLines ?? [];\n\n const isError = results.some((r) => r.isError);\n const error = results.find((r) => r.isError)?.error;\n const isLoading = results.some((r) => r.isLoading) && results.every((r) => !r.data);\n const pointsBySeries = results.map((r) => r.data?.points);\n const rows = useMemo(() => mergeSeries(series, pointsBySeries), [series, pointsBySeries]);\n const hasMirrored = series.some((s) => s.transform);\n const breakdown = useMemo(\n () => (isBreakdown ? resolveBreakdown(series, rows, total) : null),\n [isBreakdown, series, rows, total],\n );\n\n // Breakdown renders instantly from `current`; the modal still needs polled\n // history. Other variants gate on having ≥2 points to draw a line.\n const canExpand = expandable && rows.length >= 2;\n\n return (\n <div className={cn(\"flex flex-col rounded-lg border border-border bg-card p-3\", className)}>\n <div className=\"flex items-center justify-between gap-2 text-xs text-muted-foreground\">\n <span className=\"inline-flex min-w-0 items-center gap-1.5\">\n {icon ? <PanelIcon icon={icon} /> : null}\n <span className=\"truncate font-medium text-foreground\">{title}</span>\n </span>\n <span className=\"inline-flex shrink-0 items-center gap-1.5\">\n {breakdown ? (\n <BreakdownReadout total={breakdown.total} unit={unit} items={breakdown.items} />\n ) : (\n <LatestReadout series={series} rows={rows} />\n )}\n {canExpand ? (\n <button\n type=\"button\"\n aria-label=\"Expand chart\"\n onClick={() => setExpanded(true)}\n className=\"text-muted-foreground transition-colors hover:text-foreground\"\n >\n <Icon icon={UiFullscreen} width={14} height={14} />\n </button>\n ) : null}\n </span>\n </div>\n <div className=\"mt-2\" style={breakdown ? undefined : { height }}>\n {breakdown ? (\n <BreakdownView total={breakdown.total} unit={unit} items={breakdown.items} />\n ) : isError ? (\n <PanelMessage>{(error as Error)?.message ?? \"Failed to load metric\"}</PanelMessage>\n ) : isLoading ? (\n <PanelMessage>Loading…</PanelMessage>\n ) : rows.length < 2 ? (\n <PanelMessage>Collecting data…</PanelMessage>\n ) : (\n <Chart\n rows={rows}\n series={series}\n variant={chartVariant}\n unit={unit}\n showZeroLine={hasMirrored}\n referenceLines={refs}\n />\n )}\n </div>\n {!breakdown && !isError && !isLoading && rows.length >= 2 && series.length + refs.length > 1 ? (\n <ChartLegend series={series} rows={rows} referenceLines={refs} unit={unit} />\n ) : null}\n {canExpand ? (\n <Modal open={expanded} onClose={() => setExpanded(false)} title={title} size=\"xl\">\n <div style={{ height: 360 }}>\n <Chart\n rows={rows}\n series={series}\n variant={expandVariant}\n unit={unit}\n showZeroLine={hasMirrored}\n referenceLines={refs}\n />\n </div>\n {series.length + refs.length > 1 ? (\n <ChartLegend series={series} rows={rows} referenceLines={refs} unit={unit} />\n ) : null}\n </Modal>\n ) : null}\n </div>\n );\n}\n\n/**\n * Header readout for a single-series panel: the latest value, formatted with the\n * series' unit. Multi-series panels render the per-series values in {@link ChartLegend}\n * below the chart instead, so this returns null for them to avoid overlapping the title.\n */\nfunction LatestReadout({ series, rows }: { series: ResolvedSeries[]; rows: MergedRow[] }) {\n const only = series.length === 1 ? series[0] : undefined;\n if (!only) return null;\n const v = latestOf(rows, only.key);\n if (v === undefined) return null;\n return <span className=\"tabular-nums\">{formatUnit(Math.abs(v), only.unit)}</span>;\n}\n\nconst REFERENCE_LINE_COLOR = \"var(--muted-foreground, #64748b)\";\n\nfunction referenceColor(ref: TimeseriesReferenceLine): string {\n return resolveCssColor(ref.color ?? REFERENCE_LINE_COLOR);\n}\n\n/**\n * Wrapping color-keyed legend for the time-series variants: dot + label + latest\n * value, then each reference line with its fixed value.\n */\nfunction ChartLegend({\n series,\n rows,\n referenceLines,\n unit,\n}: {\n series: ResolvedSeries[];\n rows: MergedRow[];\n referenceLines: TimeseriesReferenceLine[];\n unit: string | undefined;\n}) {\n return (\n <ul className=\"mt-1.5 flex flex-wrap gap-x-3 gap-y-1 text-xs text-muted-foreground\">\n {series.map((s) => {\n const v = latestOf(rows, s.key);\n return (\n <li key={s.key} className=\"inline-flex min-w-0 items-center gap-1.5\">\n <span\n className=\"h-2 w-2 shrink-0 rounded-full\"\n style={{ backgroundColor: resolveCssColor(s.color) }}\n aria-hidden\n />\n <span className=\"truncate text-foreground\">{s.label}</span>\n {v !== undefined ? (\n <span className=\"tabular-nums\">{formatUnit(Math.abs(v), s.unit)}</span>\n ) : null}\n </li>\n );\n })}\n {referenceLines.map((ref, i) => (\n <li key={`ref-${i}`} className=\"inline-flex min-w-0 items-center gap-1.5\">\n <span\n className=\"h-0.5 w-2.5 shrink-0\"\n style={{ backgroundColor: referenceColor(ref) }}\n aria-hidden\n />\n <span className=\"truncate text-foreground\">{ref.label}</span>\n <span className=\"tabular-nums\">{formatUnit(ref.value, ref.unit ?? unit)}</span>\n </li>\n ))}\n </ul>\n );\n}\n\n/** Breakdown header readout: `used / total · pct%`, where used is the sum of segments. */\nfunction BreakdownReadout({\n total,\n unit,\n items,\n}: {\n total: number;\n unit: string | undefined;\n items: BreakdownItem[];\n}) {\n const used = items.reduce((acc, it) => acc + it.value, 0);\n const pct = total > 0 ? Math.min(100, (used / total) * 100) : 0;\n return (\n <span className=\"font-mono tabular-nums\">\n {formatUnit(used, unit)} / {formatUnit(total, unit)} · {pct.toFixed(0)}%\n </span>\n );\n}\n\n/** Instantaneous stacked bar + legend list. The expand button (in the panel header) opens the graph. */\nfunction BreakdownView({\n total,\n unit,\n items,\n}: {\n total: number;\n unit: string | undefined;\n items: BreakdownItem[];\n}) {\n const segments: ProgressSegment[] = items.map((it) => ({\n count: it.value,\n color: it.color,\n label: it.label,\n }));\n return (\n <div className=\"flex flex-col gap-2\">\n <ProgressBar segments={segments} total={total > 0 ? total : 1} height=\"h-3\" />\n {items.length > 0 ? (\n <ul className=\"grid grid-cols-1 gap-y-1 text-xs\">\n {items.map((it) => (\n <li key={it.key} className=\"flex items-center gap-2\">\n <span\n className=\"h-2 w-2 shrink-0 rounded-full\"\n style={{ backgroundColor: resolveCssColor(it.color) }}\n aria-hidden\n />\n <span className=\"min-w-0 flex-1 truncate font-mono text-muted-foreground\">\n {it.label}\n </span>\n <span className=\"font-mono tabular-nums text-foreground\">\n {formatUnit(it.value, it.unit ?? unit)}\n </span>\n <span className=\"w-10 text-right font-mono tabular-nums text-muted-foreground\">\n {it.percent.toFixed(0)}%\n </span>\n </li>\n ))}\n </ul>\n ) : null}\n </div>\n );\n}\n\ntype ChartVariant = \"area\" | \"line\" | \"stacked\";\n\nfunction Chart({\n rows,\n series,\n variant,\n unit,\n showZeroLine,\n referenceLines,\n}: {\n rows: MergedRow[];\n series: ResolvedSeries[];\n variant: ChartVariant;\n unit: string | undefined;\n showZeroLine: boolean;\n referenceLines: TimeseriesReferenceLine[];\n}) {\n const stacked = variant === \"stacked\";\n // Mirrored series carry negative values; show magnitudes on axis and tooltip.\n const seriesByKey = new Map(series.map((s) => [s.key, s]));\n // recharts needs a CSS color value; a series may carry a Tailwind class.\n const strokeOf = (s: ResolvedSeries) => resolveCssColor(s.color);\n // Distinct units map to a left and (when present) right axis; each series draws\n // against the axis for its unit so mixed-unit panels keep independent scales.\n const { axes: yAxes, axisOfKey } = useMemo(() => assignAxes(series), [series]);\n const axisOf = (key: string): \"left\" | \"right\" => axisOfKey.get(key) ?? \"left\";\n // A reference line draws against the axis formatting its unit, else the left.\n const axisOfUnit = (u: string | undefined): \"left\" | \"right\" =>\n yAxes.find((ax) => ax.unit === u)?.id ?? \"left\";\n const axes = (\n <>\n <CartesianGrid strokeOpacity={0.12} vertical={false} />\n <XAxis\n dataKey=\"at\"\n tickFormatter={formatClock}\n tick={{ fontSize: 10 }}\n stroke=\"currentColor\"\n strokeOpacity={0.35}\n minTickGap={32}\n />\n {yAxes.map((ax) => (\n <YAxis\n key={ax.id}\n yAxisId={ax.id}\n orientation={ax.orientation}\n tick={{ fontSize: 10 }}\n stroke=\"currentColor\"\n strokeOpacity={0.35}\n width={40}\n tickFormatter={(v: number) => formatUnit(Math.abs(v), ax.unit)}\n />\n ))}\n <Tooltip\n labelFormatter={(label) => formatClock(String(label))}\n formatter={(value, name) => {\n const s = seriesByKey.get(String(name));\n return [formatUnit(Math.abs(Number(value) || 0), s?.unit ?? unit), s?.label ?? String(name)];\n }}\n contentStyle={{ fontSize: 12 }}\n />\n {showZeroLine ? (\n <ReferenceLine yAxisId=\"left\" y={0} stroke=\"currentColor\" strokeOpacity={0.35} />\n ) : null}\n {referenceLines.map((ref, i) => (\n <ReferenceLine\n key={`ref-${i}`}\n yAxisId={axisOfUnit(ref.unit ?? unit)}\n y={ref.value}\n stroke={referenceColor(ref)}\n strokeDasharray=\"4 4\"\n ifOverflow=\"extendDomain\"\n />\n ))}\n </>\n );\n\n return (\n <ResponsiveContainer width=\"100%\" height=\"100%\">\n {variant === \"line\" ? (\n <LineChart data={rows} margin={{ top: 4, right: 8, bottom: 0, left: 0 }}>\n {axes}\n {series.map((s) => (\n <Line\n key={s.key}\n yAxisId={axisOf(s.key)}\n type=\"monotone\"\n dataKey={s.key}\n name={s.key}\n stroke={strokeOf(s)}\n strokeWidth={2}\n dot={false}\n connectNulls\n isAnimationActive={false}\n />\n ))}\n </LineChart>\n ) : (\n <AreaChart data={rows} margin={{ top: 4, right: 8, bottom: 0, left: 0 }}>\n {axes}\n {series.map((s) => (\n <Area\n key={s.key}\n yAxisId={axisOf(s.key)}\n type=\"monotone\"\n dataKey={s.key}\n name={s.key}\n stroke={strokeOf(s)}\n fill={strokeOf(s)}\n {...(stacked ? { stackId: `stack-${axisOf(s.key)}` } : {})}\n fillOpacity={stacked ? 0.7 : 0.12}\n strokeWidth={stacked ? 0 : 2}\n connectNulls\n isAnimationActive={false}\n />\n ))}\n </AreaChart>\n )}\n </ResponsiveContainer>\n );\n}\n\nfunction PanelMessage({ children }: { children: React.ReactNode }) {\n return (\n <div className=\"flex h-full items-center justify-center text-xs text-muted-foreground\">\n {children}\n </div>\n );\n}\n\nfunction PanelIcon({ icon }: { icon: string | StaticIconComponent }) {\n if (typeof icon === \"string\") {\n return <Icon name={icon} width={16} height={16} className=\"text-muted-foreground\" />;\n }\n return <Icon icon={icon} width={16} height={16} className=\"text-muted-foreground\" />;\n}\n"],"names":["_a"],"mappings":"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"}
|
|
@@ -20,6 +20,7 @@ function resolveSeries(props) {
|
|
|
20
20
|
color: s.color ?? paletteColor(i),
|
|
21
21
|
...s.unit ?? props.unit ? { unit: s.unit ?? props.unit } : {},
|
|
22
22
|
...s.transform ? { transform: s.transform } : {},
|
|
23
|
+
...s.load ? { load: s.load } : {},
|
|
23
24
|
...s.current !== void 0 ? { current: s.current } : {}
|
|
24
25
|
}));
|
|
25
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimeseriesPanel.model.cjs","sources":["../../src/data/TimeseriesPanel.model.ts"],"sourcesContent":["import type { StaticIconComponent } from \"./Icon\";\nimport { latestOf } from \"./TimeseriesPanel.axes\";\n\nexport interface TimeseriesPoint {\n at: string;\n value: number;\n}\n\nexport interface TimeseriesResponse {\n id: string;\n points: TimeseriesPoint[];\n}\n\n/** One metric plotted on a panel. Its request URL is `baseUrl + id
|
|
1
|
+
{"version":3,"file":"TimeseriesPanel.model.cjs","sources":["../../src/data/TimeseriesPanel.model.ts"],"sourcesContent":["import type { StaticIconComponent } from \"./Icon\";\nimport { latestOf } from \"./TimeseriesPanel.axes\";\n\nexport interface TimeseriesPoint {\n at: string;\n value: number;\n}\n\nexport interface TimeseriesResponse {\n id: string;\n points: TimeseriesPoint[];\n}\n\n/** What a {@link SeriesLoader} receives from the widget polling it. */\nexport interface SeriesLoadContext {\n /** The widget's look-back window, e.g. \"1h\". */\n range: string;\n /** Aborted when the query is cancelled, e.g. the widget unmounts mid-request. */\n signal: AbortSignal;\n}\n\n/**\n * Loads a series directly, instead of the widget requesting `baseUrl + id`\n * through its `fetcher`. Called again whenever the range changes and on every\n * poll.\n */\nexport type SeriesLoader = (ctx: SeriesLoadContext) => Promise<TimeseriesResponse>;\n\n/**\n * One metric plotted on a panel. Its request URL is `baseUrl + id`, unless a\n * `load` function supplies the data.\n */\nexport interface TimeseriesSeries {\n /**\n * Metric id appended to the panel's baseUrl, e.g. \"sqlserver.iops.read\".\n * With `load`, the id is the series' cache identity instead: loaded series\n * are cached under `[\"timeseries\", \"load\", id, range]`, so it must be unique\n * per data source (two series sharing an id share one cached response).\n */\n id: string;\n /** Loads the series' points; when set, `baseUrl` and `fetcher` are not used. */\n load?: SeriesLoader;\n /** Tooltip/legend label; defaults to the id. */\n label?: string;\n /**\n * Maps each point's value before plotting, e.g. writes pass `(v) => -v` to\n * render below the zero axis. Identity when omitted.\n */\n transform?: (value: number) => number;\n /**\n * Stroke/fill override as a CSS color value or a Tailwind color class.\n * Defaults cycle a small palette by index.\n */\n color?: string;\n /**\n * Grafana-style unit key for this series' readout/tooltip. Falls back to the\n * panel-level `unit`.\n */\n unit?: string;\n /**\n * Instantaneous value for the `breakdown` variant. When omitted, the\n * breakdown falls back to the latest polled point.\n */\n current?: number;\n}\n\n/** A horizontal marker line at a fixed value, e.g. a static capacity. */\nexport interface TimeseriesReferenceLine {\n value: number;\n /** Legend label, e.g. \"capacity\". */\n label: string;\n /** CSS color value or Tailwind color class; defaults to the muted foreground. */\n color?: string;\n /** Grafana-style unit key for the legend value; falls back to the panel `unit`. */\n unit?: string;\n}\n\nexport interface TimeseriesPanelProps {\n url?: string;\n baseUrl?: string;\n series?: TimeseriesSeries[];\n title: string;\n icon?: string | StaticIconComponent;\n unit?: string;\n range?: string;\n refreshMs?: number;\n height?: number;\n variant?: \"area\" | \"line\" | \"stacked\" | \"breakdown\";\n expandVariant?: \"area\" | \"line\" | \"stacked\";\n total?: number;\n /** Flat lines drawn across the time-series chart, e.g. a fixed capacity. */\n referenceLines?: TimeseriesReferenceLine[];\n expandable?: boolean;\n fetcher?: (url: string) => Promise<TimeseriesResponse>;\n className?: string;\n}\n\nconst SERIES_PALETTE = [\n \"var(--chart-1, #3b82f6)\",\n \"var(--chart-2, #ef4444)\",\n \"var(--chart-3, #10b981)\",\n \"var(--chart-4, #f59e0b)\",\n] as const;\n\nfunction paletteColor(index: number): string {\n return SERIES_PALETTE[index % SERIES_PALETTE.length] ?? SERIES_PALETTE[0];\n}\n\n/** A series with its full request URL, resolved label, color, and unit. */\nexport interface ResolvedSeries {\n key: string;\n url: string;\n label: string;\n color: string;\n unit?: string;\n transform?: (value: number) => number;\n load?: SeriesLoader;\n current?: number;\n}\n\n/** Normalises the single-url and baseUrl+series forms to one list. */\nexport function resolveSeries(props: TimeseriesPanelProps): ResolvedSeries[] {\n const base = props.baseUrl ?? \"\";\n const list = props.series ?? (props.url ? [{ id: props.url }] : []);\n return list.map((s, i) => ({\n key: s.id,\n url: base + s.id,\n label: s.label ?? s.id,\n color: s.color ?? paletteColor(i),\n ...(s.unit ?? props.unit ? { unit: s.unit ?? props.unit } : {}),\n ...(s.transform ? { transform: s.transform } : {}),\n ...(s.load ? { load: s.load } : {}),\n ...(s.current !== undefined ? { current: s.current } : {}),\n }));\n}\n\n/** One legend/bar row of the breakdown variant. */\nexport interface BreakdownItem {\n key: string;\n label: string;\n color: string;\n unit?: string;\n value: number;\n percent: number;\n}\n\n/**\n * One row of the merged chart data: the timestamp in `at` plus each series'\n * value under its key.\n */\nexport interface MergedRow {\n at: string;\n [seriesKey: string]: string | number | undefined;\n}\n\nexport function resolveBreakdown(\n series: ResolvedSeries[],\n rows: MergedRow[],\n total?: number,\n): { items: BreakdownItem[]; total: number } {\n const withValue = series.map((s) => ({ s, value: s.current ?? latestOf(rows, s.key) ?? 0 }));\n const denom = total ?? withValue.reduce((acc, w) => acc + w.value, 0);\n const items = withValue.map(({ s, value }) => ({\n key: s.key,\n label: s.label,\n color: s.color,\n ...(s.unit ? { unit: s.unit } : {}),\n value,\n percent: denom > 0 ? Math.min(100, Math.max(0, (value / denom) * 100)) : 0,\n }));\n return { items, total: denom };\n}\n\nexport function mergeSeries(\n series: ResolvedSeries[],\n pointsBySeries: (TimeseriesPoint[] | undefined)[],\n): MergedRow[] {\n const rows = new Map<string, MergedRow>();\n series.forEach((s, i) => {\n for (const p of pointsBySeries[i] ?? []) {\n const row = rows.get(p.at) ?? { at: p.at };\n row[s.key] = s.transform ? s.transform(p.value) : p.value;\n rows.set(p.at, row);\n }\n });\n return [...rows.values()].sort((a, b) => a.at.localeCompare(b.at));\n}\n"],"names":["latestOf"],"mappings":";;;AAiGA,MAAM,iBAAiB;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,SAAS,aAAa,OAAuB;AAC3C,SAAO,eAAe,QAAQ,eAAe,MAAM,KAAK,eAAe,CAAC;AAC1E;AAeO,SAAS,cAAc,OAA+C;AAC3E,QAAM,OAAO,MAAM,WAAW;AAC9B,QAAM,OAAO,MAAM,WAAW,MAAM,MAAM,CAAC,EAAE,IAAI,MAAM,IAAA,CAAK,IAAI,CAAA;AAChE,SAAO,KAAK,IAAI,CAAC,GAAG,OAAO;AAAA,IACzB,KAAK,EAAE;AAAA,IACP,KAAK,OAAO,EAAE;AAAA,IACd,OAAO,EAAE,SAAS,EAAE;AAAA,IACpB,OAAO,EAAE,SAAS,aAAa,CAAC;AAAA,IAChC,GAAI,EAAE,QAAQ,MAAM,OAAO,EAAE,MAAM,EAAE,QAAQ,MAAM,KAAA,IAAS,CAAA;AAAA,IAC5D,GAAI,EAAE,YAAY,EAAE,WAAW,EAAE,UAAA,IAAc,CAAA;AAAA,IAC/C,GAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAA,IAAS,CAAA;AAAA,IAChC,GAAI,EAAE,YAAY,SAAY,EAAE,SAAS,EAAE,YAAY,CAAA;AAAA,EAAC,EACxD;AACJ;AAqBO,SAAS,iBACd,QACA,MACA,OAC2C;AAC3C,QAAM,YAAY,OAAO,IAAI,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,WAAWA,qBAAAA,SAAS,MAAM,EAAE,GAAG,KAAK,IAAI;AAC3F,QAAM,QAAQ,SAAS,UAAU,OAAO,CAAC,KAAK,MAAM,MAAM,EAAE,OAAO,CAAC;AACpE,QAAM,QAAQ,UAAU,IAAI,CAAC,EAAE,GAAG,aAAa;AAAA,IAC7C,KAAK,EAAE;AAAA,IACP,OAAO,EAAE;AAAA,IACT,OAAO,EAAE;AAAA,IACT,GAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAA,IAAS,CAAA;AAAA,IAChC;AAAA,IACA,SAAS,QAAQ,IAAI,KAAK,IAAI,KAAK,KAAK,IAAI,GAAI,QAAQ,QAAS,GAAG,CAAC,IAAI;AAAA,EAAA,EACzE;AACF,SAAO,EAAE,OAAO,OAAO,MAAA;AACzB;AAEO,SAAS,YACd,QACA,gBACa;AACb,QAAM,2BAAW,IAAA;AACjB,SAAO,QAAQ,CAAC,GAAG,MAAM;AACvB,eAAW,KAAK,eAAe,CAAC,KAAK,CAAA,GAAI;AACvC,YAAM,MAAM,KAAK,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAA;AACtC,UAAI,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,IAAI,EAAE;AACpD,WAAK,IAAI,EAAE,IAAI,GAAG;AAAA,IACpB;AAAA,EACF,CAAC;AACD,SAAO,CAAC,GAAG,KAAK,OAAA,CAAQ,EAAE,KAAK,CAAC,GAAG,MAAM,EAAE,GAAG,cAAc,EAAE,EAAE,CAAC;AACnE;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { StaticIconComponent } from './Icon';
|
|
1
|
+
import { StaticIconComponent } from './Icon.js';
|
|
2
2
|
export interface TimeseriesPoint {
|
|
3
3
|
at: string;
|
|
4
4
|
value: number;
|
|
@@ -7,10 +7,33 @@ export interface TimeseriesResponse {
|
|
|
7
7
|
id: string;
|
|
8
8
|
points: TimeseriesPoint[];
|
|
9
9
|
}
|
|
10
|
-
/**
|
|
10
|
+
/** What a {@link SeriesLoader} receives from the widget polling it. */
|
|
11
|
+
export interface SeriesLoadContext {
|
|
12
|
+
/** The widget's look-back window, e.g. "1h". */
|
|
13
|
+
range: string;
|
|
14
|
+
/** Aborted when the query is cancelled, e.g. the widget unmounts mid-request. */
|
|
15
|
+
signal: AbortSignal;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Loads a series directly, instead of the widget requesting `baseUrl + id`
|
|
19
|
+
* through its `fetcher`. Called again whenever the range changes and on every
|
|
20
|
+
* poll.
|
|
21
|
+
*/
|
|
22
|
+
export type SeriesLoader = (ctx: SeriesLoadContext) => Promise<TimeseriesResponse>;
|
|
23
|
+
/**
|
|
24
|
+
* One metric plotted on a panel. Its request URL is `baseUrl + id`, unless a
|
|
25
|
+
* `load` function supplies the data.
|
|
26
|
+
*/
|
|
11
27
|
export interface TimeseriesSeries {
|
|
12
|
-
/**
|
|
28
|
+
/**
|
|
29
|
+
* Metric id appended to the panel's baseUrl, e.g. "sqlserver.iops.read".
|
|
30
|
+
* With `load`, the id is the series' cache identity instead: loaded series
|
|
31
|
+
* are cached under `["timeseries", "load", id, range]`, so it must be unique
|
|
32
|
+
* per data source (two series sharing an id share one cached response).
|
|
33
|
+
*/
|
|
13
34
|
id: string;
|
|
35
|
+
/** Loads the series' points; when set, `baseUrl` and `fetcher` are not used. */
|
|
36
|
+
load?: SeriesLoader;
|
|
14
37
|
/** Tooltip/legend label; defaults to the id. */
|
|
15
38
|
label?: string;
|
|
16
39
|
/**
|
|
@@ -34,6 +57,16 @@ export interface TimeseriesSeries {
|
|
|
34
57
|
*/
|
|
35
58
|
current?: number;
|
|
36
59
|
}
|
|
60
|
+
/** A horizontal marker line at a fixed value, e.g. a static capacity. */
|
|
61
|
+
export interface TimeseriesReferenceLine {
|
|
62
|
+
value: number;
|
|
63
|
+
/** Legend label, e.g. "capacity". */
|
|
64
|
+
label: string;
|
|
65
|
+
/** CSS color value or Tailwind color class; defaults to the muted foreground. */
|
|
66
|
+
color?: string;
|
|
67
|
+
/** Grafana-style unit key for the legend value; falls back to the panel `unit`. */
|
|
68
|
+
unit?: string;
|
|
69
|
+
}
|
|
37
70
|
export interface TimeseriesPanelProps {
|
|
38
71
|
url?: string;
|
|
39
72
|
baseUrl?: string;
|
|
@@ -47,6 +80,8 @@ export interface TimeseriesPanelProps {
|
|
|
47
80
|
variant?: "area" | "line" | "stacked" | "breakdown";
|
|
48
81
|
expandVariant?: "area" | "line" | "stacked";
|
|
49
82
|
total?: number;
|
|
83
|
+
/** Flat lines drawn across the time-series chart, e.g. a fixed capacity. */
|
|
84
|
+
referenceLines?: TimeseriesReferenceLine[];
|
|
50
85
|
expandable?: boolean;
|
|
51
86
|
fetcher?: (url: string) => Promise<TimeseriesResponse>;
|
|
52
87
|
className?: string;
|
|
@@ -59,6 +94,7 @@ export interface ResolvedSeries {
|
|
|
59
94
|
color: string;
|
|
60
95
|
unit?: string;
|
|
61
96
|
transform?: (value: number) => number;
|
|
97
|
+
load?: SeriesLoader;
|
|
62
98
|
current?: number;
|
|
63
99
|
}
|
|
64
100
|
/** Normalises the single-url and baseUrl+series forms to one list. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimeseriesPanel.model.d.ts","sourceRoot":"","sources":["../../src/data/TimeseriesPanel.model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAGlD,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B;AAED,
|
|
1
|
+
{"version":3,"file":"TimeseriesPanel.model.d.ts","sourceRoot":"","sources":["../../src/data/TimeseriesPanel.model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAGlD,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B;AAED,uEAAuE;AACvE,MAAM,WAAW,iBAAiB;IAChC,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,iFAAiF;IACjF,MAAM,EAAE,WAAW,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,iBAAiB,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAEnF;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,gFAAgF;IAChF,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACtC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,yEAAyE;AACzE,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,CAAC;IACpD,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,cAAc,CAAC,EAAE,uBAAuB,EAAE,CAAC;IAC3C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAaD,2EAA2E;AAC3E,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACtC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,sEAAsE;AACtE,wBAAgB,aAAa,CAAC,KAAK,EAAE,oBAAoB,GAAG,cAAc,EAAE,CAa3E;AAED,mDAAmD;AACnD,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CAClD;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,cAAc,EAAE,EACxB,IAAI,EAAE,SAAS,EAAE,EACjB,KAAK,CAAC,EAAE,MAAM,GACb;IAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAY3C;AAED,wBAAgB,WAAW,CACzB,MAAM,EAAE,cAAc,EAAE,EACxB,cAAc,EAAE,CAAC,eAAe,EAAE,GAAG,SAAS,CAAC,EAAE,GAChD,SAAS,EAAE,CAUb"}
|
|
@@ -18,6 +18,7 @@ function resolveSeries(props) {
|
|
|
18
18
|
color: s.color ?? paletteColor(i),
|
|
19
19
|
...s.unit ?? props.unit ? { unit: s.unit ?? props.unit } : {},
|
|
20
20
|
...s.transform ? { transform: s.transform } : {},
|
|
21
|
+
...s.load ? { load: s.load } : {},
|
|
21
22
|
...s.current !== void 0 ? { current: s.current } : {}
|
|
22
23
|
}));
|
|
23
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimeseriesPanel.model.js","sources":["../../src/data/TimeseriesPanel.model.ts"],"sourcesContent":["import type { StaticIconComponent } from \"./Icon\";\nimport { latestOf } from \"./TimeseriesPanel.axes\";\n\nexport interface TimeseriesPoint {\n at: string;\n value: number;\n}\n\nexport interface TimeseriesResponse {\n id: string;\n points: TimeseriesPoint[];\n}\n\n/** One metric plotted on a panel. Its request URL is `baseUrl + id
|
|
1
|
+
{"version":3,"file":"TimeseriesPanel.model.js","sources":["../../src/data/TimeseriesPanel.model.ts"],"sourcesContent":["import type { StaticIconComponent } from \"./Icon\";\nimport { latestOf } from \"./TimeseriesPanel.axes\";\n\nexport interface TimeseriesPoint {\n at: string;\n value: number;\n}\n\nexport interface TimeseriesResponse {\n id: string;\n points: TimeseriesPoint[];\n}\n\n/** What a {@link SeriesLoader} receives from the widget polling it. */\nexport interface SeriesLoadContext {\n /** The widget's look-back window, e.g. \"1h\". */\n range: string;\n /** Aborted when the query is cancelled, e.g. the widget unmounts mid-request. */\n signal: AbortSignal;\n}\n\n/**\n * Loads a series directly, instead of the widget requesting `baseUrl + id`\n * through its `fetcher`. Called again whenever the range changes and on every\n * poll.\n */\nexport type SeriesLoader = (ctx: SeriesLoadContext) => Promise<TimeseriesResponse>;\n\n/**\n * One metric plotted on a panel. Its request URL is `baseUrl + id`, unless a\n * `load` function supplies the data.\n */\nexport interface TimeseriesSeries {\n /**\n * Metric id appended to the panel's baseUrl, e.g. \"sqlserver.iops.read\".\n * With `load`, the id is the series' cache identity instead: loaded series\n * are cached under `[\"timeseries\", \"load\", id, range]`, so it must be unique\n * per data source (two series sharing an id share one cached response).\n */\n id: string;\n /** Loads the series' points; when set, `baseUrl` and `fetcher` are not used. */\n load?: SeriesLoader;\n /** Tooltip/legend label; defaults to the id. */\n label?: string;\n /**\n * Maps each point's value before plotting, e.g. writes pass `(v) => -v` to\n * render below the zero axis. Identity when omitted.\n */\n transform?: (value: number) => number;\n /**\n * Stroke/fill override as a CSS color value or a Tailwind color class.\n * Defaults cycle a small palette by index.\n */\n color?: string;\n /**\n * Grafana-style unit key for this series' readout/tooltip. Falls back to the\n * panel-level `unit`.\n */\n unit?: string;\n /**\n * Instantaneous value for the `breakdown` variant. When omitted, the\n * breakdown falls back to the latest polled point.\n */\n current?: number;\n}\n\n/** A horizontal marker line at a fixed value, e.g. a static capacity. */\nexport interface TimeseriesReferenceLine {\n value: number;\n /** Legend label, e.g. \"capacity\". */\n label: string;\n /** CSS color value or Tailwind color class; defaults to the muted foreground. */\n color?: string;\n /** Grafana-style unit key for the legend value; falls back to the panel `unit`. */\n unit?: string;\n}\n\nexport interface TimeseriesPanelProps {\n url?: string;\n baseUrl?: string;\n series?: TimeseriesSeries[];\n title: string;\n icon?: string | StaticIconComponent;\n unit?: string;\n range?: string;\n refreshMs?: number;\n height?: number;\n variant?: \"area\" | \"line\" | \"stacked\" | \"breakdown\";\n expandVariant?: \"area\" | \"line\" | \"stacked\";\n total?: number;\n /** Flat lines drawn across the time-series chart, e.g. a fixed capacity. */\n referenceLines?: TimeseriesReferenceLine[];\n expandable?: boolean;\n fetcher?: (url: string) => Promise<TimeseriesResponse>;\n className?: string;\n}\n\nconst SERIES_PALETTE = [\n \"var(--chart-1, #3b82f6)\",\n \"var(--chart-2, #ef4444)\",\n \"var(--chart-3, #10b981)\",\n \"var(--chart-4, #f59e0b)\",\n] as const;\n\nfunction paletteColor(index: number): string {\n return SERIES_PALETTE[index % SERIES_PALETTE.length] ?? SERIES_PALETTE[0];\n}\n\n/** A series with its full request URL, resolved label, color, and unit. */\nexport interface ResolvedSeries {\n key: string;\n url: string;\n label: string;\n color: string;\n unit?: string;\n transform?: (value: number) => number;\n load?: SeriesLoader;\n current?: number;\n}\n\n/** Normalises the single-url and baseUrl+series forms to one list. */\nexport function resolveSeries(props: TimeseriesPanelProps): ResolvedSeries[] {\n const base = props.baseUrl ?? \"\";\n const list = props.series ?? (props.url ? [{ id: props.url }] : []);\n return list.map((s, i) => ({\n key: s.id,\n url: base + s.id,\n label: s.label ?? s.id,\n color: s.color ?? paletteColor(i),\n ...(s.unit ?? props.unit ? { unit: s.unit ?? props.unit } : {}),\n ...(s.transform ? { transform: s.transform } : {}),\n ...(s.load ? { load: s.load } : {}),\n ...(s.current !== undefined ? { current: s.current } : {}),\n }));\n}\n\n/** One legend/bar row of the breakdown variant. */\nexport interface BreakdownItem {\n key: string;\n label: string;\n color: string;\n unit?: string;\n value: number;\n percent: number;\n}\n\n/**\n * One row of the merged chart data: the timestamp in `at` plus each series'\n * value under its key.\n */\nexport interface MergedRow {\n at: string;\n [seriesKey: string]: string | number | undefined;\n}\n\nexport function resolveBreakdown(\n series: ResolvedSeries[],\n rows: MergedRow[],\n total?: number,\n): { items: BreakdownItem[]; total: number } {\n const withValue = series.map((s) => ({ s, value: s.current ?? latestOf(rows, s.key) ?? 0 }));\n const denom = total ?? withValue.reduce((acc, w) => acc + w.value, 0);\n const items = withValue.map(({ s, value }) => ({\n key: s.key,\n label: s.label,\n color: s.color,\n ...(s.unit ? { unit: s.unit } : {}),\n value,\n percent: denom > 0 ? Math.min(100, Math.max(0, (value / denom) * 100)) : 0,\n }));\n return { items, total: denom };\n}\n\nexport function mergeSeries(\n series: ResolvedSeries[],\n pointsBySeries: (TimeseriesPoint[] | undefined)[],\n): MergedRow[] {\n const rows = new Map<string, MergedRow>();\n series.forEach((s, i) => {\n for (const p of pointsBySeries[i] ?? []) {\n const row = rows.get(p.at) ?? { at: p.at };\n row[s.key] = s.transform ? s.transform(p.value) : p.value;\n rows.set(p.at, row);\n }\n });\n return [...rows.values()].sort((a, b) => a.at.localeCompare(b.at));\n}\n"],"names":[],"mappings":";AAiGA,MAAM,iBAAiB;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,SAAS,aAAa,OAAuB;AAC3C,SAAO,eAAe,QAAQ,eAAe,MAAM,KAAK,eAAe,CAAC;AAC1E;AAeO,SAAS,cAAc,OAA+C;AAC3E,QAAM,OAAO,MAAM,WAAW;AAC9B,QAAM,OAAO,MAAM,WAAW,MAAM,MAAM,CAAC,EAAE,IAAI,MAAM,IAAA,CAAK,IAAI,CAAA;AAChE,SAAO,KAAK,IAAI,CAAC,GAAG,OAAO;AAAA,IACzB,KAAK,EAAE;AAAA,IACP,KAAK,OAAO,EAAE;AAAA,IACd,OAAO,EAAE,SAAS,EAAE;AAAA,IACpB,OAAO,EAAE,SAAS,aAAa,CAAC;AAAA,IAChC,GAAI,EAAE,QAAQ,MAAM,OAAO,EAAE,MAAM,EAAE,QAAQ,MAAM,KAAA,IAAS,CAAA;AAAA,IAC5D,GAAI,EAAE,YAAY,EAAE,WAAW,EAAE,UAAA,IAAc,CAAA;AAAA,IAC/C,GAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAA,IAAS,CAAA;AAAA,IAChC,GAAI,EAAE,YAAY,SAAY,EAAE,SAAS,EAAE,YAAY,CAAA;AAAA,EAAC,EACxD;AACJ;AAqBO,SAAS,iBACd,QACA,MACA,OAC2C;AAC3C,QAAM,YAAY,OAAO,IAAI,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,WAAW,SAAS,MAAM,EAAE,GAAG,KAAK,IAAI;AAC3F,QAAM,QAAQ,SAAS,UAAU,OAAO,CAAC,KAAK,MAAM,MAAM,EAAE,OAAO,CAAC;AACpE,QAAM,QAAQ,UAAU,IAAI,CAAC,EAAE,GAAG,aAAa;AAAA,IAC7C,KAAK,EAAE;AAAA,IACP,OAAO,EAAE;AAAA,IACT,OAAO,EAAE;AAAA,IACT,GAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAA,IAAS,CAAA;AAAA,IAChC;AAAA,IACA,SAAS,QAAQ,IAAI,KAAK,IAAI,KAAK,KAAK,IAAI,GAAI,QAAQ,QAAS,GAAG,CAAC,IAAI;AAAA,EAAA,EACzE;AACF,SAAO,EAAE,OAAO,OAAO,MAAA;AACzB;AAEO,SAAS,YACd,QACA,gBACa;AACb,QAAM,2BAAW,IAAA;AACjB,SAAO,QAAQ,CAAC,GAAG,MAAM;AACvB,eAAW,KAAK,eAAe,CAAC,KAAK,CAAA,GAAI;AACvC,YAAM,MAAM,KAAK,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAA;AACtC,UAAI,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,IAAI,EAAE;AACpD,WAAK,IAAI,EAAE,IAAI,GAAG;AAAA,IACpB;AAAA,EACF,CAAC;AACD,SAAO,CAAC,GAAG,KAAK,OAAA,CAAQ,EAAE,KAAK,CAAC,GAAG,MAAM,EAAE,GAAG,cAAc,EAAE,EAAE,CAAC;AACnE;"}
|
package/dist/data/Tree.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
import { TreeNodeProps } from './TreeNode';
|
|
2
|
+
import { TreeNodeProps } from './TreeNode.js';
|
|
3
3
|
export type TreeProps<T> = Omit<TreeNodeProps<T>, "node" | "depth" | "expandAll" | "forcedOpenKeys"> & {
|
|
4
4
|
/** Root nodes to render. */
|
|
5
5
|
roots: T[];
|
package/dist/data/Version.d.ts
CHANGED