@flanksource/clicky-ui 0.3.39 → 0.3.41
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 +29 -5
- package/dist/ai.cjs +10 -0
- package/dist/ai.cjs.map +1 -1
- package/dist/ai.d.ts +1 -1
- package/dist/ai.js +10 -0
- package/dist/ai.js.map +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.cjs +5 -1
- package/dist/components/AccordionList.cjs.map +1 -1
- package/dist/components/AccordionList.d.ts +4 -2
- package/dist/components/AccordionList.d.ts.map +1 -1
- package/dist/components/AccordionList.js +5 -1
- package/dist/components/AccordionList.js.map +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.cjs +9 -4
- package/dist/components/JsonSchemaForm.cjs.map +1 -1
- package/dist/components/JsonSchemaForm.d.ts +2 -2
- package/dist/components/JsonSchemaForm.d.ts.map +1 -1
- package/dist/components/JsonSchemaForm.js +8 -3
- package/dist/components/JsonSchemaForm.js.map +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.cjs +3 -1
- package/dist/components/json-schema-form-accordion-array.cjs.map +1 -1
- package/dist/components/json-schema-form-accordion-array.d.ts +5 -2
- package/dist/components/json-schema-form-accordion-array.d.ts.map +1 -1
- package/dist/components/json-schema-form-accordion-array.js +3 -1
- package/dist/components/json-schema-form-accordion-array.js.map +1 -1
- package/dist/components/json-schema-form-array-view.cjs +63 -0
- package/dist/components/json-schema-form-array-view.cjs.map +1 -0
- package/dist/components/json-schema-form-array-view.d.ts +21 -0
- package/dist/components/json-schema-form-array-view.d.ts.map +1 -0
- package/dist/components/json-schema-form-array-view.js +63 -0
- package/dist/components/json-schema-form-array-view.js.map +1 -0
- package/dist/components/json-schema-form-array.cjs +3 -7
- package/dist/components/json-schema-form-array.cjs.map +1 -1
- package/dist/components/json-schema-form-array.d.ts +1 -1
- package/dist/components/json-schema-form-array.d.ts.map +1 -1
- package/dist/components/json-schema-form-array.js +3 -7
- package/dist/components/json-schema-form-array.js.map +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-conditionals.cjs +67 -0
- package/dist/components/json-schema-form-conditionals.cjs.map +1 -0
- package/dist/components/json-schema-form-conditionals.d.ts +9 -0
- package/dist/components/json-schema-form-conditionals.d.ts.map +1 -0
- package/dist/components/json-schema-form-conditionals.js +67 -0
- package/dist/components/json-schema-form-conditionals.js.map +1 -0
- package/dist/components/json-schema-form-defaults.cjs +68 -0
- package/dist/components/json-schema-form-defaults.cjs.map +1 -0
- package/dist/components/json-schema-form-defaults.d.ts +4 -0
- package/dist/components/json-schema-form-defaults.d.ts.map +1 -0
- package/dist/components/json-schema-form-defaults.js +68 -0
- package/dist/components/json-schema-form-defaults.js.map +1 -0
- 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.cjs +49 -31
- package/dist/components/json-schema-form-errors.cjs.map +1 -1
- package/dist/components/json-schema-form-errors.d.ts +5 -3
- package/dist/components/json-schema-form-errors.d.ts.map +1 -1
- package/dist/components/json-schema-form-errors.js +51 -33
- package/dist/components/json-schema-form-errors.js.map +1 -1
- 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.cjs +2 -1
- package/dist/components/json-schema-form-filter.cjs.map +1 -1
- package/dist/components/json-schema-form-filter.d.ts +1 -1
- package/dist/components/json-schema-form-filter.js +2 -1
- package/dist/components/json-schema-form-filter.js.map +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.cjs +6 -2
- package/dist/components/json-schema-form-item-summary.cjs.map +1 -1
- package/dist/components/json-schema-form-item-summary.d.ts +1 -1
- package/dist/components/json-schema-form-item-summary.d.ts.map +1 -1
- package/dist/components/json-schema-form-item-summary.js +6 -2
- package/dist/components/json-schema-form-item-summary.js.map +1 -1
- package/dist/components/json-schema-form-layout.cjs +28 -19
- package/dist/components/json-schema-form-layout.cjs.map +1 -1
- package/dist/components/json-schema-form-layout.d.ts +10 -8
- package/dist/components/json-schema-form-layout.d.ts.map +1 -1
- package/dist/components/json-schema-form-layout.js +29 -20
- package/dist/components/json-schema-form-layout.js.map +1 -1
- package/dist/components/json-schema-form-list-array.d.ts +1 -1
- package/dist/components/json-schema-form-listener-paths.cjs +52 -0
- package/dist/components/json-schema-form-listener-paths.cjs.map +1 -0
- package/dist/components/json-schema-form-listener-paths.d.ts +10 -0
- package/dist/components/json-schema-form-listener-paths.d.ts.map +1 -0
- package/dist/components/json-schema-form-listener-paths.js +52 -0
- package/dist/components/json-schema-form-listener-paths.js.map +1 -0
- package/dist/components/json-schema-form-listener-types.d.ts +22 -0
- package/dist/components/json-schema-form-listener-types.d.ts.map +1 -0
- package/dist/components/json-schema-form-listeners.cjs +250 -0
- package/dist/components/json-schema-form-listeners.cjs.map +1 -0
- package/dist/components/json-schema-form-listeners.d.ts +13 -0
- package/dist/components/json-schema-form-listeners.d.ts.map +1 -0
- package/dist/components/json-schema-form-listeners.js +250 -0
- package/dist/components/json-schema-form-listeners.js.map +1 -0
- package/dist/components/json-schema-form-lookup-tree.d.ts +2 -2
- package/dist/components/json-schema-form-object-array-view.cjs +62 -0
- package/dist/components/json-schema-form-object-array-view.cjs.map +1 -0
- package/dist/components/json-schema-form-object-array-view.d.ts +14 -0
- package/dist/components/json-schema-form-object-array-view.d.ts.map +1 -0
- package/dist/components/json-schema-form-object-array-view.js +62 -0
- package/dist/components/json-schema-form-object-array-view.js.map +1 -0
- package/dist/components/json-schema-form-object.cjs +3 -0
- package/dist/components/json-schema-form-object.cjs.map +1 -1
- package/dist/components/json-schema-form-object.d.ts +1 -1
- package/dist/components/json-schema-form-object.d.ts.map +1 -1
- package/dist/components/json-schema-form-object.js +3 -0
- package/dist/components/json-schema-form-object.js.map +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.cjs +17 -9
- package/dist/components/json-schema-form-render.cjs.map +1 -1
- package/dist/components/json-schema-form-render.d.ts +1 -1
- package/dist/components/json-schema-form-render.d.ts.map +1 -1
- package/dist/components/json-schema-form-render.js +19 -11
- package/dist/components/json-schema-form-render.js.map +1 -1
- package/dist/components/json-schema-form-resolve.cjs +6 -99
- package/dist/components/json-schema-form-resolve.cjs.map +1 -1
- package/dist/components/json-schema-form-resolve.d.ts +1 -8
- package/dist/components/json-schema-form-resolve.d.ts.map +1 -1
- package/dist/components/json-schema-form-resolve.js +5 -98
- package/dist/components/json-schema-form-resolve.js.map +1 -1
- package/dist/components/json-schema-form-runtime-types.d.ts +19 -4
- package/dist/components/json-schema-form-runtime-types.d.ts.map +1 -1
- package/dist/components/json-schema-form-size.d.ts +1 -1
- package/dist/components/json-schema-form-table-array.cjs +67 -16
- package/dist/components/json-schema-form-table-array.cjs.map +1 -1
- package/dist/components/json-schema-form-table-array.d.ts +5 -2
- package/dist/components/json-schema-form-table-array.d.ts.map +1 -1
- package/dist/components/json-schema-form-table-array.js +70 -19
- package/dist/components/json-schema-form-table-array.js.map +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 +21 -5
- package/dist/components/json-schema-form-types.d.ts.map +1 -1
- package/dist/components/json-schema-form-utils.cjs +7 -1
- package/dist/components/json-schema-form-utils.cjs.map +1 -1
- package/dist/components/json-schema-form-utils.d.ts +3 -2
- package/dist/components/json-schema-form-utils.d.ts.map +1 -1
- package/dist/components/json-schema-form-utils.js +7 -1
- package/dist/components/json-schema-form-utils.js.map +1 -1
- 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.cjs +3 -2
- package/dist/components.cjs.map +1 -1
- package/dist/components.d.ts +103 -102
- package/dist/components.d.ts.map +1 -1
- package/dist/components.js +2 -1
- package/dist/components.js.map +1 -1
- 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.cjs +9 -3
- package/dist/data/DataTable.cjs.map +1 -1
- package/dist/data/DataTable.d.ts +17 -11
- package/dist/data/DataTable.d.ts.map +1 -1
- package/dist/data/DataTable.js +9 -3
- package/dist/data/DataTable.js.map +1 -1
- 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.cjs +43 -24
- package/dist/data/FixtureEditor/FixtureEditor.cjs.map +1 -1
- package/dist/data/FixtureEditor/FixtureEditor.d.ts +1 -1
- package/dist/data/FixtureEditor/FixtureEditor.d.ts.map +1 -1
- package/dist/data/FixtureEditor/FixtureEditor.js +43 -24
- package/dist/data/FixtureEditor/FixtureEditor.js.map +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.d.ts +4 -4
- package/dist/data/TimeseriesGauge.d.ts +2 -2
- package/dist/data/TimeseriesPanel.axes.d.ts +1 -1
- package/dist/data/TimeseriesPanel.d.ts +3 -3
- package/dist/data/TimeseriesPanel.model.d.ts +1 -1
- package/dist/data/Tree.cjs +10 -2
- package/dist/data/Tree.cjs.map +1 -1
- package/dist/data/Tree.d.ts +7 -2
- package/dist/data/Tree.d.ts.map +1 -1
- package/dist/data/Tree.js +10 -2
- package/dist/data/Tree.js.map +1 -1
- package/dist/data/TreeGroupHeader.d.ts +1 -1
- package/dist/data/Version.d.ts +1 -1
- package/dist/data/WorkloadCard.d.ts +2 -2
- package/dist/data/WorkloadCard.model.d.ts +4 -4
- 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.cjs +143 -167
- package/dist/data/ai/SessionInspector.cjs.map +1 -1
- package/dist/data/ai/SessionInspector.collection-types.d.ts +7 -2
- package/dist/data/ai/SessionInspector.collection-types.d.ts.map +1 -1
- package/dist/data/ai/SessionInspector.collection.cjs +18 -5
- package/dist/data/ai/SessionInspector.collection.cjs.map +1 -1
- package/dist/data/ai/SessionInspector.collection.d.ts +5 -3
- package/dist/data/ai/SessionInspector.collection.d.ts.map +1 -1
- package/dist/data/ai/SessionInspector.collection.fixtures.d.ts +6 -0
- package/dist/data/ai/SessionInspector.collection.fixtures.d.ts.map +1 -0
- package/dist/data/ai/SessionInspector.collection.js +18 -5
- package/dist/data/ai/SessionInspector.collection.js.map +1 -1
- package/dist/data/ai/SessionInspector.compact.d.ts +2 -2
- package/dist/data/ai/SessionInspector.d.ts +30 -8
- package/dist/data/ai/SessionInspector.d.ts.map +1 -1
- package/dist/data/ai/SessionInspector.files.d.ts +1 -1
- package/dist/data/ai/SessionInspector.hierarchy-state.cjs +105 -7
- package/dist/data/ai/SessionInspector.hierarchy-state.cjs.map +1 -1
- package/dist/data/ai/SessionInspector.hierarchy-state.d.ts +14 -3
- package/dist/data/ai/SessionInspector.hierarchy-state.d.ts.map +1 -1
- package/dist/data/ai/SessionInspector.hierarchy-state.js +107 -9
- package/dist/data/ai/SessionInspector.hierarchy-state.js.map +1 -1
- package/dist/data/ai/SessionInspector.hierarchy.cjs +1 -1
- package/dist/data/ai/SessionInspector.hierarchy.cjs.map +1 -1
- package/dist/data/ai/SessionInspector.hierarchy.d.ts +2 -2
- package/dist/data/ai/SessionInspector.hierarchy.js +1 -1
- package/dist/data/ai/SessionInspector.hierarchy.js.map +1 -1
- package/dist/data/ai/SessionInspector.js +144 -168
- package/dist/data/ai/SessionInspector.js.map +1 -1
- package/dist/data/ai/SessionInspector.legacy.cjs +116 -0
- package/dist/data/ai/SessionInspector.legacy.cjs.map +1 -0
- package/dist/data/ai/SessionInspector.legacy.d.ts +19 -0
- package/dist/data/ai/SessionInspector.legacy.d.ts.map +1 -0
- package/dist/data/ai/SessionInspector.legacy.js +116 -0
- package/dist/data/ai/SessionInspector.legacy.js.map +1 -0
- 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.cjs +3 -0
- package/dist/data/ai/SessionInspector.panels.cjs.map +1 -1
- package/dist/data/ai/SessionInspector.panels.d.ts +4 -4
- package/dist/data/ai/SessionInspector.panels.d.ts.map +1 -1
- package/dist/data/ai/SessionInspector.panels.js +3 -0
- package/dist/data/ai/SessionInspector.panels.js.map +1 -1
- package/dist/data/ai/SessionInspector.plan.cjs +29 -12
- package/dist/data/ai/SessionInspector.plan.cjs.map +1 -1
- package/dist/data/ai/SessionInspector.plan.d.ts +1 -1
- package/dist/data/ai/SessionInspector.plan.d.ts.map +1 -1
- package/dist/data/ai/SessionInspector.plan.js +30 -13
- package/dist/data/ai/SessionInspector.plan.js.map +1 -1
- package/dist/data/ai/SessionInspector.remote-view.cjs +44 -0
- package/dist/data/ai/SessionInspector.remote-view.cjs.map +1 -0
- package/dist/data/ai/SessionInspector.remote-view.d.ts +11 -0
- package/dist/data/ai/SessionInspector.remote-view.d.ts.map +1 -0
- package/dist/data/ai/SessionInspector.remote-view.js +44 -0
- package/dist/data/ai/SessionInspector.remote-view.js.map +1 -0
- package/dist/data/ai/SessionInspector.remote.cjs +275 -0
- package/dist/data/ai/SessionInspector.remote.cjs.map +1 -0
- package/dist/data/ai/SessionInspector.remote.d.ts +57 -0
- package/dist/data/ai/SessionInspector.remote.d.ts.map +1 -0
- package/dist/data/ai/SessionInspector.remote.js +275 -0
- package/dist/data/ai/SessionInspector.remote.js.map +1 -0
- package/dist/data/ai/SessionInspector.summary.cjs +0 -156
- package/dist/data/ai/SessionInspector.summary.cjs.map +1 -1
- package/dist/data/ai/SessionInspector.summary.d.ts +1 -4
- package/dist/data/ai/SessionInspector.summary.d.ts.map +1 -1
- package/dist/data/ai/SessionInspector.summary.js +2 -158
- package/dist/data/ai/SessionInspector.summary.js.map +1 -1
- package/dist/data/ai/SessionInspector.tab-state.cjs +15 -0
- package/dist/data/ai/SessionInspector.tab-state.cjs.map +1 -0
- package/dist/data/ai/SessionInspector.tab-state.d.ts +3 -0
- package/dist/data/ai/SessionInspector.tab-state.d.ts.map +1 -0
- package/dist/data/ai/SessionInspector.tab-state.js +15 -0
- package/dist/data/ai/SessionInspector.tab-state.js.map +1 -0
- package/dist/data/ai/SessionInspector.tabs.d.ts +2 -2
- package/dist/data/ai/SessionInspector.tabs.model.cjs +31 -18
- package/dist/data/ai/SessionInspector.tabs.model.cjs.map +1 -1
- package/dist/data/ai/SessionInspector.tabs.model.d.ts +5 -3
- package/dist/data/ai/SessionInspector.tabs.model.d.ts.map +1 -1
- package/dist/data/ai/SessionInspector.tabs.model.js +32 -19
- package/dist/data/ai/SessionInspector.tabs.model.js.map +1 -1
- package/dist/data/ai/SessionInspector.transcript.d.ts +2 -2
- package/dist/data/ai/SessionInspector.turns.d.ts +1 -1
- package/dist/data/ai/SessionInspector.verification.cjs +53 -0
- package/dist/data/ai/SessionInspector.verification.cjs.map +1 -0
- package/dist/data/ai/SessionInspector.verification.d.ts +7 -0
- package/dist/data/ai/SessionInspector.verification.d.ts.map +1 -0
- package/dist/data/ai/SessionInspector.verification.js +53 -0
- package/dist/data/ai/SessionInspector.verification.js.map +1 -0
- 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.cjs +7 -1
- package/dist/data/ai/SessionViewer.model.cjs.map +1 -1
- package/dist/data/ai/SessionViewer.model.d.ts +23 -5
- package/dist/data/ai/SessionViewer.model.d.ts.map +1 -1
- package/dist/data/ai/SessionViewer.model.js +7 -1
- package/dist/data/ai/SessionViewer.model.js.map +1 -1
- 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/SessionViewer.unified.d.ts +13 -0
- package/dist/data/ai/SessionViewer.unified.d.ts.map +1 -1
- 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 +55 -53
- package/dist/data/ai/index.d.ts.map +1 -1
- 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.d.ts +1 -1
- 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.d.ts +119 -119
- 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.cjs +5 -1
- package/dist/devtools/useDebugStream.cjs.map +1 -1
- package/dist/devtools/useDebugStream.d.ts +2 -2
- package/dist/devtools/useDebugStream.d.ts.map +1 -1
- package/dist/devtools/useDebugStream.js +6 -2
- package/dist/devtools/useDebugStream.js.map +1 -1
- 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/event-source-provider.cjs +9 -0
- package/dist/hooks/event-source-provider.cjs.map +1 -0
- package/dist/hooks/event-source-provider.d.ts +15 -0
- package/dist/hooks/event-source-provider.d.ts.map +1 -0
- package/dist/hooks/event-source-provider.js +9 -0
- package/dist/hooks/event-source-provider.js.map +1 -0
- package/dist/hooks/event-source.cjs +11 -0
- package/dist/hooks/event-source.cjs.map +1 -0
- package/dist/hooks/event-source.d.ts +22 -0
- package/dist/hooks/event-source.d.ts.map +1 -0
- package/dist/hooks/event-source.js +11 -0
- package/dist/hooks/event-source.js.map +1 -0
- package/dist/hooks/theme-provider.d.ts +1 -1
- package/dist/hooks/use-log-tail.cjs +5 -1
- package/dist/hooks/use-log-tail.cjs.map +1 -1
- package/dist/hooks/use-log-tail.d.ts +2 -2
- package/dist/hooks/use-log-tail.d.ts.map +1 -1
- package/dist/hooks/use-log-tail.js +5 -1
- package/dist/hooks/use-log-tail.js.map +1 -1
- package/dist/hooks/use-prompts.cjs +5 -1
- package/dist/hooks/use-prompts.cjs.map +1 -1
- package/dist/hooks/use-prompts.d.ts +1 -1
- package/dist/hooks/use-prompts.d.ts.map +1 -1
- package/dist/hooks/use-prompts.js +6 -2
- package/dist/hooks/use-prompts.js.map +1 -1
- package/dist/hooks/use-task-run.cjs +9 -2
- package/dist/hooks/use-task-run.cjs.map +1 -1
- package/dist/hooks/use-task-run.d.ts +2 -2
- package/dist/hooks/use-task-run.d.ts.map +1 -1
- package/dist/hooks/use-task-run.js +10 -3
- package/dist/hooks/use-task-run.js.map +1 -1
- package/dist/hooks.cjs +4 -0
- package/dist/hooks.cjs.map +1 -1
- package/dist/hooks.d.ts +15 -13
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +4 -0
- package/dist/hooks.js.map +1 -1
- 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.cjs +34 -34
- package/dist/icons/programmingCatalog.cjs.map +1 -1
- package/dist/icons/programmingCatalog.d.ts +1 -1
- package/dist/icons/programmingCatalog.js +34 -34
- package/dist/icons/programmingCatalog.js.map +1 -1
- package/dist/icons/registry.d.ts +1 -1
- package/dist/icons.d.ts +1 -1
- package/dist/index.cjs +9 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +7 -7
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -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.cjs +4 -1
- package/dist/monaco/MonacoEditor.cjs.map +1 -1
- package/dist/monaco/MonacoEditor.d.ts +2 -2
- package/dist/monaco/MonacoEditor.d.ts.map +1 -1
- package/dist/monaco/MonacoEditor.js +4 -1
- package/dist/monaco/MonacoEditor.js.map +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 +3 -2
- package/dist/monaco/types.d.ts.map +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.cjs +14 -4
- package/dist/overlay/CommandPalette.cjs.map +1 -1
- package/dist/overlay/CommandPalette.d.ts +7 -3
- package/dist/overlay/CommandPalette.d.ts.map +1 -1
- package/dist/overlay/CommandPalette.js +14 -4
- package/dist/overlay/CommandPalette.js.map +1 -1
- package/dist/overlay/CommandPalette.model.d.ts +1 -1
- package/dist/overlay/CommandPaletteList.cjs +5 -0
- package/dist/overlay/CommandPaletteList.cjs.map +1 -1
- package/dist/overlay/CommandPaletteList.d.ts +5 -3
- package/dist/overlay/CommandPaletteList.d.ts.map +1 -1
- package/dist/overlay/CommandPaletteList.js +5 -0
- package/dist/overlay/CommandPaletteList.js.map +1 -1
- package/dist/overlay/ContextMenu.d.ts +1 -1
- package/dist/overlay/DropdownMenu.cjs +1 -0
- package/dist/overlay/DropdownMenu.cjs.map +1 -1
- package/dist/overlay/DropdownMenu.d.ts +2 -2
- package/dist/overlay/DropdownMenu.js +1 -0
- package/dist/overlay/DropdownMenu.js.map +1 -1
- 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.cjs +29 -26
- package/dist/rpc/OperationCatalog.cjs.map +1 -1
- package/dist/rpc/OperationCatalog.d.ts +19 -11
- package/dist/rpc/OperationCatalog.d.ts.map +1 -1
- package/dist/rpc/OperationCatalog.js +29 -26
- package/dist/rpc/OperationCatalog.js.map +1 -1
- 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.cjs +62 -256
- package/dist/rpc/OperationEntityContextPicker.cjs.map +1 -1
- package/dist/rpc/OperationEntityContextPicker.d.ts +4 -4
- package/dist/rpc/OperationEntityContextPicker.d.ts.map +1 -1
- package/dist/rpc/OperationEntityContextPicker.js +64 -258
- package/dist/rpc/OperationEntityContextPicker.js.map +1 -1
- package/dist/rpc/OperationEntityContextPicker.model.d.ts +3 -3
- package/dist/rpc/OperationEntityPage.d.ts +6 -6
- package/dist/rpc/OperationEntityPicker.cjs +185 -0
- package/dist/rpc/OperationEntityPicker.cjs.map +1 -0
- package/dist/rpc/OperationEntityPicker.d.ts +51 -0
- package/dist/rpc/OperationEntityPicker.d.ts.map +1 -0
- package/dist/rpc/OperationEntityPicker.js +185 -0
- package/dist/rpc/OperationEntityPicker.js.map +1 -0
- package/dist/rpc/OperationEntityPicker.model.cjs +39 -0
- package/dist/rpc/OperationEntityPicker.model.cjs.map +1 -0
- package/dist/rpc/OperationEntityPicker.model.d.ts +27 -0
- package/dist/rpc/OperationEntityPicker.model.d.ts.map +1 -0
- package/dist/rpc/OperationEntityPicker.model.js +39 -0
- package/dist/rpc/OperationEntityPicker.model.js.map +1 -0
- 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/operationCatalogRowSelection.cjs +85 -0
- package/dist/rpc/operationCatalogRowSelection.cjs.map +1 -0
- package/dist/rpc/operationCatalogRowSelection.d.ts +57 -0
- package/dist/rpc/operationCatalogRowSelection.d.ts.map +1 -0
- package/dist/rpc/operationCatalogRowSelection.js +85 -0
- package/dist/rpc/operationCatalogRowSelection.js.map +1 -0
- package/dist/rpc/operationEntityPicker.fixtures.d.ts +13 -0
- package/dist/rpc/operationEntityPicker.fixtures.d.ts.map +1 -0
- 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.cjs +2 -0
- package/dist/rpc.cjs.map +1 -1
- package/dist/rpc.d.ts +39 -37
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +2 -0
- package/dist/rpc.js.map +1 -1
- package/dist/runtime-profile.d.ts +1 -1
- package/dist/styles.css +1 -1
- package/dist/utils.d.ts +13 -13
- package/package.json +7 -3
- package/schemas/json-schema-form.schema.json +566 -0
package/dist/data/StatStrip.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
import { StaticIconComponent } from './Icon';
|
|
3
|
-
import { BadgeTone } from './Badge';
|
|
2
|
+
import { StaticIconComponent } from './Icon.js';
|
|
3
|
+
import { BadgeTone } from './Badge.js';
|
|
4
4
|
export type StatStripItem = {
|
|
5
5
|
/** Short caption above the value. */
|
|
6
6
|
label: ReactNode;
|
package/dist/data/TabButton.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
import { StaticIconComponent } from './Icon';
|
|
2
|
+
import { StaticIconComponent } from './Icon.js';
|
|
3
3
|
/** Visual style: a filled `pill` (default) or an `underline` tab. */
|
|
4
4
|
export type TabButtonVariant = "pill" | "underline";
|
|
5
5
|
export type TabButtonProps = {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
import { TaskSnapshot } from './TaskSnapshot';
|
|
2
|
+
import { TaskSnapshot } from './TaskSnapshot.js';
|
|
3
3
|
/**
|
|
4
4
|
* Contributes host-owned content into a task's header row — the line carrying
|
|
5
5
|
* its name, beside the duration and controls. It exists for the same reason
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { TaskHeaderExtra } from './TaskHeaderExtras';
|
|
2
|
-
import { TaskExtraTabs } from './TaskStreamTabs';
|
|
1
|
+
import { TaskHeaderExtra } from './TaskHeaderExtras.js';
|
|
2
|
+
import { TaskExtraTabs } from './TaskStreamTabs.js';
|
|
3
3
|
export interface TaskManagerProps {
|
|
4
4
|
/** Base path of the clicky task API, e.g. "/api/v1". */
|
|
5
5
|
basePath?: string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TaskProcessDetails } from './TaskSnapshot';
|
|
1
|
+
import { TaskProcessDetails } from './TaskSnapshot.js';
|
|
2
2
|
/**
|
|
3
3
|
* TaskMetadata renders the caller's own context for a process — which run it is
|
|
4
4
|
* working, which model, which phase, which turn. The producer chooses both the
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { TaskControlAction, TaskSnapshot } from './TaskSnapshot';
|
|
2
|
-
import { TaskHeaderExtra } from './TaskHeaderExtras';
|
|
3
|
-
import { TaskExtraTabs } from './TaskStreamTabs';
|
|
1
|
+
import { TaskControlAction, TaskSnapshot } from './TaskSnapshot.js';
|
|
2
|
+
import { TaskHeaderExtra } from './TaskHeaderExtras.js';
|
|
3
|
+
import { TaskExtraTabs } from './TaskStreamTabs.js';
|
|
4
4
|
export interface TaskProgressProps {
|
|
5
5
|
snapshots: TaskSnapshot[];
|
|
6
6
|
title?: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
import { TaskSnapshot } from './TaskSnapshot';
|
|
2
|
+
import { TaskSnapshot } from './TaskSnapshot.js';
|
|
3
3
|
/**
|
|
4
4
|
* A pane of output for a task, contributed by the host. It exists because the
|
|
5
5
|
* raw stdout of a process is not always the output worth reading: an agent's
|
package/dist/data/Timeline.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
import { StaticIconComponent } from './Icon';
|
|
3
|
-
import { BadgeTone } from './Badge';
|
|
2
|
+
import { StaticIconComponent } from './Icon.js';
|
|
3
|
+
import { BadgeTone } from './Badge.js';
|
|
4
4
|
export type TimelineItem = {
|
|
5
5
|
/** Stable key. */
|
|
6
6
|
id: string | number;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { StaticIconComponent } from './Icon';
|
|
2
|
-
import { GaugeSeries } from './TimeseriesGauge';
|
|
3
|
-
import { TimeseriesResponse } from './TimeseriesPanel';
|
|
4
|
-
import { ProgressBarsOrientation, ProgressBarsUnit, ProgressBarsVariant } from './ProgressBars';
|
|
1
|
+
import { StaticIconComponent } from './Icon.js';
|
|
2
|
+
import { GaugeSeries } from './TimeseriesGauge.js';
|
|
3
|
+
import { TimeseriesResponse } from './TimeseriesPanel.js';
|
|
4
|
+
import { ProgressBarsOrientation, ProgressBarsUnit, ProgressBarsVariant } from './ProgressBars.js';
|
|
5
5
|
export interface TimeseriesCoreBarsProps {
|
|
6
6
|
/** Common prefix; the value/max requests are `baseUrl + id` (unless a series has `load`). */
|
|
7
7
|
baseUrl?: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { StaticIconComponent } from './Icon';
|
|
2
|
-
import { SeriesLoader, TimeseriesResponse } from './TimeseriesPanel';
|
|
1
|
+
import { StaticIconComponent } from './Icon.js';
|
|
2
|
+
import { SeriesLoader, TimeseriesResponse } from './TimeseriesPanel.js';
|
|
3
3
|
/**
|
|
4
4
|
* A metric series whose latest value drives the gauge fill or its maximum. It
|
|
5
5
|
* is requested as `baseUrl + id` through the widget's `fetcher`, or, when
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MergedRow, ResolvedSeries } from './TimeseriesPanel.model';
|
|
1
|
+
import { MergedRow, ResolvedSeries } from './TimeseriesPanel.model.js';
|
|
2
2
|
export type AxisOrientation = "left" | "right";
|
|
3
3
|
/** A rendered Y-axis: its recharts id (== orientation) and the unit it formats with. */
|
|
4
4
|
export interface AxisSpec {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { TimeseriesPanelProps } from './TimeseriesPanel.model';
|
|
2
|
-
export type { AxisAssignment, AxisOrientation, AxisSpec } from './TimeseriesPanel.axes';
|
|
3
|
-
export type { BreakdownItem, MergedRow, ResolvedSeries, SeriesLoadContext, SeriesLoader, TimeseriesPanelProps, TimeseriesPoint, TimeseriesReferenceLine, TimeseriesResponse, TimeseriesSeries, } from './TimeseriesPanel.model';
|
|
1
|
+
import { TimeseriesPanelProps } from './TimeseriesPanel.model.js';
|
|
2
|
+
export type { AxisAssignment, AxisOrientation, AxisSpec } from './TimeseriesPanel.axes.js';
|
|
3
|
+
export type { BreakdownItem, MergedRow, ResolvedSeries, SeriesLoadContext, SeriesLoader, TimeseriesPanelProps, TimeseriesPoint, TimeseriesReferenceLine, TimeseriesResponse, TimeseriesSeries, } from './TimeseriesPanel.model.js';
|
|
4
4
|
export declare function TimeseriesPanel(props: TimeseriesPanelProps): import("react").JSX.Element;
|
|
5
5
|
//# sourceMappingURL=TimeseriesPanel.d.ts.map
|
package/dist/data/Tree.cjs
CHANGED
|
@@ -126,6 +126,9 @@ function Tree({
|
|
|
126
126
|
className,
|
|
127
127
|
ariaLabel,
|
|
128
128
|
showControls = true,
|
|
129
|
+
showSearch = false,
|
|
130
|
+
searchQuery,
|
|
131
|
+
onSearchQueryChange,
|
|
129
132
|
expandAll: controlledExpandAll,
|
|
130
133
|
onExpandAllChange,
|
|
131
134
|
toolbarClassName,
|
|
@@ -135,7 +138,12 @@ function Tree({
|
|
|
135
138
|
...nodeProps
|
|
136
139
|
}) {
|
|
137
140
|
const [internalExpandAll, setInternalExpandAll] = react.useState(null);
|
|
138
|
-
const [
|
|
141
|
+
const [internalFilterQuery, setInternalFilterQuery] = react.useState("");
|
|
142
|
+
const filterQuery = searchQuery ?? internalFilterQuery;
|
|
143
|
+
const setFilterQuery = (next) => {
|
|
144
|
+
if (searchQuery !== void 0) onSearchQueryChange == null ? void 0 : onSearchQueryChange(next);
|
|
145
|
+
else setInternalFilterQuery(next);
|
|
146
|
+
};
|
|
139
147
|
const basePaddingPx = nodeProps.basePaddingPx ?? 8;
|
|
140
148
|
const isControlled = onExpandAllChange !== void 0;
|
|
141
149
|
const expandAll = isControlled ? controlledExpandAll ?? null : internalExpandAll;
|
|
@@ -143,7 +151,7 @@ function Tree({
|
|
|
143
151
|
() => countTreeEdges(roots, nodeProps.getChildren),
|
|
144
152
|
[roots, nodeProps.getChildren]
|
|
145
153
|
);
|
|
146
|
-
const showFilter = totalEdges > 20;
|
|
154
|
+
const showFilter = showSearch || totalEdges > 20 || Boolean(searchQuery);
|
|
147
155
|
const activeFilter = showFilter ? filterQuery : "";
|
|
148
156
|
const filteredTree = react.useMemo(
|
|
149
157
|
() => filterTreeRoots(
|
package/dist/data/Tree.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tree.cjs","sources":["../../src/data/Tree.tsx"],"sourcesContent":["import { useMemo, useState, type ReactNode } from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { Icon } from \"./Icon\";\nimport { UiClose, UiCollapseAll, UiExpandAll, UiSearch } from \"../icons\";\nimport { TreeNode, type TreeNodeProps } from \"./TreeNode\";\n\nexport type TreeProps<T> = Omit<\n TreeNodeProps<T>,\n \"node\" | \"depth\" | \"expandAll\" | \"forcedOpenKeys\"\n> & {\n /** Root nodes to render. */\n roots: T[];\n /** Empty-state content when no roots are provided. */\n empty?: ReactNode;\n /** Classes applied to the tree root. */\n className?: string;\n /** Accessible name applied to the tree root. */\n ariaLabel?: string;\n /**\n * Render the Expand all / Collapse all toolbar above the tree. Enabled by\n * default. Set to false to suppress when the tree is tiny or the controls\n * are owned externally.\n */\n showControls?: boolean;\n /**\n * Externally controlled expand-all state. When provided together with\n * `onExpandAllChange`, the tree is controlled; otherwise it manages the\n * toolbar state internally.\n */\n expandAll?: boolean | null;\n /** Called when the toolbar expand-all state changes. */\n onExpandAllChange?: (next: boolean | null) => void;\n /** Classes applied to the search/control toolbar. */\n toolbarClassName?: string;\n /**\n * Extra controls rendered in the toolbar's right-hand group, before Expand\n * all / Collapse all. Providing actions shows the toolbar even when the tree\n * is too small for the filter and `showControls` is off.\n */\n actions?: ReactNode;\n /**\n * Override the text the filter matches against for a given node.\n * Defaults to a recursive walk of the node's own fields (excluding\n * its `children` and any secondary children), which works for\n * plain-shape trees but leaks text from nested domain objects —\n * e.g. a SQL Table's Field rows are marked secondary, yet the\n * parent record still carries `record.fields[].field` strings that\n * the default walker would collect. Callers that need precise\n * control over search behaviour should return only the text they\n * want surfaced (the node's own display label / id / type).\n */\n getSearchText?: (node: T) => string;\n /**\n * Force-open the ancestors of the `selected` node so it is always revealed,\n * even when its branch was collapsed (a deep-link, a programmatic selection\n * from outside the tree, or simply a folder the user never opened). While a\n * node is selected its ancestors cannot be collapsed. Off by default; other\n * nodes keep their normal expand state. Requires `selected` to be set.\n */\n revealSelected?: boolean;\n};\n\n// ancestorPathKeys returns the keys of every ancestor on the path from a root\n// down to `target` (excluding target itself — opening the ancestors is what\n// makes target render). Matches by getKey so it is robust to object identity\n// across roots rebuilds. Returns null when target is not found.\nfunction ancestorPathKeys<T>(\n roots: T[],\n getChildren: TreeProps<T>[\"getChildren\"],\n getKey: TreeProps<T>[\"getKey\"],\n target: T,\n): Set<string | number> | null {\n const targetKey = getKey(target);\n const path: (string | number)[] = [];\n const visit = (node: T): boolean => {\n if (getKey(node) === targetKey) return true;\n for (const child of getChildren(node) ?? []) {\n if (visit(child)) {\n path.push(getKey(node));\n return true;\n }\n }\n return false;\n };\n for (const root of roots) {\n if (visit(root)) return path.length ? new Set(path) : null;\n }\n return null;\n}\n\n// mergeKeySets unions two optional key sets, preserving the null fast-path when\n// both are empty so consumers without a filter or reveal pass null downstream.\nfunction mergeKeySets(\n a: Set<string | number> | null,\n b: Set<string | number> | null,\n): Set<string | number> | null {\n if (!a) return b;\n if (!b) return a;\n return new Set([...a, ...b]);\n}\n\n// Edge counting, search-text collection and filtering all walk the tree through\n// the synchronous `getChildren` only. A lazy node (one declared via\n// `hasMoreChildren` whose children have not been fetched yet) therefore\n// contributes no edges and no search text until the operator expands it — so it\n// is invisible to \"expand all\" and to the filter while still collapsed. This is\n// intentional: we never trigger network loads from bulk/search operations.\nfunction countTreeEdges<T>(roots: T[], getChildren: TreeProps<T>[\"getChildren\"]) {\n let total = 0;\n const stack = [...roots];\n\n while (stack.length > 0) {\n const node = stack.pop()!;\n const children = getChildren(node) ?? [];\n total += children.length;\n stack.push(...children);\n }\n\n return total;\n}\n\nfunction collectTreeSearchText(\n value: unknown,\n excluded = new Set<unknown>(),\n seen = new Set<unknown>(),\n): string {\n if (value == null || excluded.has(value)) return \"\";\n\n if (\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\" ||\n typeof value === \"bigint\"\n ) {\n return String(value);\n }\n\n if (typeof value !== \"object\") return \"\";\n if (seen.has(value)) return \"\";\n seen.add(value);\n\n if (Array.isArray(value)) {\n return value\n .map((entry) => collectTreeSearchText(entry, excluded, seen))\n .filter(Boolean)\n .join(\" \");\n }\n\n const preferredKeys = [\"label\", \"name\", \"title\", \"text\", \"plain\", \"id\", \"content\"];\n const record = value as Record<string, unknown>;\n const chunks: string[] = [];\n\n for (const key of preferredKeys) {\n if (!(key in record)) continue;\n const text = collectTreeSearchText(record[key], excluded, seen);\n if (text) chunks.push(text);\n }\n\n for (const [key, entry] of Object.entries(record)) {\n if (key === \"children\" || preferredKeys.includes(key)) continue;\n const text = collectTreeSearchText(entry, excluded, seen);\n if (text) chunks.push(text);\n }\n\n return chunks.join(\" \");\n}\n\nfunction nodeSearchText<T>(node: T, children: ReturnType<TreeProps<T>[\"getChildren\"]>) {\n const excluded = new Set<unknown>();\n if (children) excluded.add(children);\n return collectTreeSearchText(node, excluded).trim().toLowerCase();\n}\n\nfunction filterTreeRoots<T>(\n roots: T[],\n getChildren: TreeProps<T>[\"getChildren\"],\n getKey: TreeProps<T>[\"getKey\"],\n query: string,\n isSecondary?: (node: T) => boolean,\n getSearchText?: (node: T) => string,\n) {\n const normalizedQuery = query.trim().toLowerCase();\n if (!normalizedQuery) {\n return {\n roots,\n filteredChildren: null as Map<string | number, T[]> | null,\n forcedOpenKeys: null as Set<string | number> | null,\n };\n }\n\n const filteredChildren = new Map<string | number, T[]>();\n const forcedOpenKeys = new Set<string | number>();\n\n function matchText(node: T, children: T[]): string {\n // Honour the caller-supplied text extractor first — it's the\n // only way to get precise control over what the filter sees when\n // the node carries domain data whose fields would otherwise leak\n // into the default walker.\n if (getSearchText) return getSearchText(node).trim().toLowerCase();\n // Match-text skips secondary children so e.g. a Table's search\n // text only draws from the Table itself, not from its Field\n // rows. The Table is primary, so its own text still counts.\n const searchChildren = children.filter((c) => !isSecondary?.(c));\n return nodeSearchText(node, searchChildren);\n }\n\n function visit(node: T): boolean {\n // A secondary node never drives a filter match — it's\n // effectively invisible to search. Still rendered when the\n // caller opens the parent manually. This is what lets a 28k-row\n // field tree stay searchable at the record level without \"field\n // name contains 'x'\" matches spamming the results.\n if (isSecondary?.(node)) return false;\n\n const key = getKey(node);\n const children = getChildren(node) ?? [];\n const childrenAllSecondary =\n children.length > 0 && children.every((child) => isSecondary?.(child));\n const matches = matchText(node, children).includes(normalizedQuery);\n const visibleChildren: T[] = [];\n\n for (const child of children) {\n if (visit(child)) visibleChildren.push(child);\n }\n\n if (matches) {\n if (children.length > 0) {\n filteredChildren.set(key, children);\n if (!childrenAllSecondary) forcedOpenKeys.add(key);\n }\n return true;\n }\n\n if (visibleChildren.length > 0) {\n filteredChildren.set(key, visibleChildren);\n forcedOpenKeys.add(key);\n return true;\n }\n\n return false;\n }\n\n return {\n roots: roots.filter((root) => visit(root)),\n filteredChildren,\n forcedOpenKeys,\n };\n}\n\nexport function Tree<T>({\n roots,\n empty,\n className,\n ariaLabel,\n showControls = true,\n expandAll: controlledExpandAll,\n onExpandAllChange,\n toolbarClassName,\n actions,\n getSearchText,\n revealSelected = false,\n ...nodeProps\n}: TreeProps<T>) {\n const [internalExpandAll, setInternalExpandAll] = useState<boolean | null>(null);\n const [filterQuery, setFilterQuery] = useState(\"\");\n const basePaddingPx = nodeProps.basePaddingPx ?? 8;\n const isControlled = onExpandAllChange !== undefined;\n const expandAll = isControlled ? (controlledExpandAll ?? null) : internalExpandAll;\n const totalEdges = useMemo(\n () => countTreeEdges(roots, nodeProps.getChildren),\n [roots, nodeProps.getChildren],\n );\n const showFilter = totalEdges > 20;\n const activeFilter = showFilter ? filterQuery : \"\";\n const filteredTree = useMemo(\n () =>\n filterTreeRoots(\n roots,\n nodeProps.getChildren,\n nodeProps.getKey,\n activeFilter,\n nodeProps.isSecondary,\n getSearchText,\n ),\n [\n roots,\n nodeProps.getChildren,\n nodeProps.getKey,\n activeFilter,\n nodeProps.isSecondary,\n getSearchText,\n ],\n );\n const treeRoots = filteredTree.roots;\n const filteredChildren = filteredTree.filteredChildren;\n // Force-open the selected node's ancestors when revealSelected is set, unioned\n // with the filter's own forced-open keys. Recomputed when the selection moves\n // so the tree follows it without a remount.\n const revealKeys = useMemo(\n () =>\n revealSelected && nodeProps.selected\n ? ancestorPathKeys(roots, nodeProps.getChildren, nodeProps.getKey, nodeProps.selected)\n : null,\n [revealSelected, roots, nodeProps.getChildren, nodeProps.getKey, nodeProps.selected],\n );\n const forcedOpenKeys = useMemo(\n () => mergeKeySets(filteredTree.forcedOpenKeys, revealKeys),\n [filteredTree.forcedOpenKeys, revealKeys],\n );\n const effectiveGetChildren = filteredChildren\n ? (node: T) => filteredChildren.get(nodeProps.getKey(node)) ?? []\n : nodeProps.getChildren;\n const effectiveExpandAll = expandAll;\n const effectiveEmpty = activeFilter.trim() ? (\n <div className=\"px-3 py-4 text-sm text-muted-foreground\">No matching tree nodes.</div>\n ) : (\n empty\n );\n const showControlButtons = showControls && roots.length > 0;\n const showVirtualRow = showFilter || showControlButtons || actions != null;\n const setExpandAll = (next: boolean | null) => {\n if (isControlled) onExpandAllChange?.(next);\n else setInternalExpandAll(next);\n };\n\n if (treeRoots.length === 0 && !showVirtualRow) return <>{effectiveEmpty ?? null}</>;\n\n return (\n <div className={cn(\"flex flex-col min-h-0\", className)}>\n <div\n role=\"tree\"\n aria-label={ariaLabel}\n className=\"min-h-0 flex-1 overflow-auto\"\n >\n {showVirtualRow && (\n <div\n role=\"presentation\"\n className={cn(\n \"sticky top-0 z-10 flex items-center gap-1.5 border-b border-border/70 bg-background/95 py-1 pr-2 text-sm backdrop-blur supports-[backdrop-filter]:bg-background/80\",\n toolbarClassName,\n )}\n style={{ paddingLeft: `${basePaddingPx}px` }}\n >\n {showFilter ? (\n <Icon icon={UiSearch} className=\"w-3 shrink-0 text-xs text-muted-foreground\" />\n ) : (\n <span className=\"w-3 shrink-0\" aria-hidden />\n )}\n\n {showFilter ? (\n <label className=\"flex min-w-0 flex-1 items-center gap-2 rounded-md border border-border bg-background px-2 py-1 text-xs text-foreground shadow-sm\">\n <input\n type=\"search\"\n value={filterQuery}\n onChange={(event) => setFilterQuery(event.target.value)}\n placeholder=\"Filter tree\"\n className=\"h-5 w-full min-w-0 border-0 bg-transparent p-0 text-xs outline-none placeholder:text-placeholder\"\n aria-label=\"Filter tree nodes\"\n />\n {filterQuery && (\n <button\n type=\"button\"\n onClick={() => setFilterQuery(\"\")}\n className=\"inline-flex items-center rounded p-0.5 text-muted-foreground hover:bg-accent hover:text-accent-foreground\"\n aria-label=\"Clear tree filter\"\n title=\"Clear tree filter\"\n >\n <Icon icon={UiClose} className=\"text-xs\" />\n </button>\n )}\n </label>\n ) : (\n <span className=\"flex-1\" />\n )}\n\n {(showControlButtons || actions != null) && (\n <div className=\"ml-auto flex items-center gap-1\">\n {actions}\n {showControlButtons && (\n <>\n <button\n type=\"button\"\n onClick={() => setExpandAll(true)}\n aria-pressed={effectiveExpandAll === true}\n aria-label=\"Expand all\"\n title=\"Expand all\"\n disabled={activeFilter.trim().length > 0}\n className={cn(\n \"inline-flex h-6 w-6 items-center justify-center rounded text-muted-foreground hover:bg-accent hover:text-accent-foreground disabled:cursor-not-allowed disabled:opacity-50\",\n effectiveExpandAll === true && \"bg-accent text-accent-foreground\",\n )}\n >\n <Icon icon={UiExpandAll} className=\"text-sm\" />\n </button>\n <button\n type=\"button\"\n onClick={() => setExpandAll(false)}\n aria-pressed={effectiveExpandAll === false}\n aria-label=\"Collapse all\"\n title=\"Collapse all\"\n disabled={activeFilter.trim().length > 0}\n className={cn(\n \"inline-flex h-6 w-6 items-center justify-center rounded text-muted-foreground hover:bg-accent hover:text-accent-foreground disabled:cursor-not-allowed disabled:opacity-50\",\n effectiveExpandAll === false && \"bg-accent text-accent-foreground\",\n )}\n >\n <Icon icon={UiCollapseAll} className=\"text-sm\" />\n </button>\n </>\n )}\n </div>\n )}\n </div>\n )}\n\n {treeRoots.length === 0 ? (\n (effectiveEmpty ?? null)\n ) : (\n <>\n {treeRoots.map((root) => (\n <TreeNode<T>\n {...nodeProps}\n key={nodeProps.getKey(root)}\n node={root}\n expandAll={effectiveExpandAll}\n forcedOpenKeys={forcedOpenKeys}\n getChildren={effectiveGetChildren}\n />\n ))}\n </>\n )}\n </div>\n </div>\n );\n}\n"],"names":["useState","useMemo","jsx","Fragment","cn","jsxs","Icon","UiSearch","UiClose","UiExpandAll","UiCollapseAll","createElement","TreeNode"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Tree.cjs","sources":["../../src/data/Tree.tsx"],"sourcesContent":["import { useMemo, useState, type ReactNode } from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { Icon } from \"./Icon\";\nimport { UiClose, UiCollapseAll, UiExpandAll, UiSearch } from \"../icons\";\nimport { TreeNode, type TreeNodeProps } from \"./TreeNode\";\n\nexport type TreeProps<T> = Omit<\n TreeNodeProps<T>,\n \"node\" | \"depth\" | \"expandAll\" | \"forcedOpenKeys\"\n> & {\n /** Root nodes to render. */\n roots: T[];\n /** Empty-state content when no roots are provided. */\n empty?: ReactNode;\n /** Classes applied to the tree root. */\n className?: string;\n /** Accessible name applied to the tree root. */\n ariaLabel?: string;\n /**\n * Render the Expand all / Collapse all toolbar above the tree. Enabled by\n * default. Set to false to suppress when the tree is tiny or the controls\n * are owned externally.\n */\n showControls?: boolean;\n /** Keep search visible for small or empty trees. */\n showSearch?: boolean;\n /** URL or parent-controlled search query. */\n searchQuery?: string;\n onSearchQueryChange?: (query: string) => void;\n /**\n * Externally controlled expand-all state. When provided together with\n * `onExpandAllChange`, the tree is controlled; otherwise it manages the\n * toolbar state internally.\n */\n expandAll?: boolean | null;\n /** Called when the toolbar expand-all state changes. */\n onExpandAllChange?: (next: boolean | null) => void;\n /** Classes applied to the search/control toolbar. */\n toolbarClassName?: string;\n /**\n * Extra controls rendered in the toolbar's right-hand group, before Expand\n * all / Collapse all. Providing actions shows the toolbar even when the tree\n * is too small for the filter and `showControls` is off.\n */\n actions?: ReactNode;\n /**\n * Override the text the filter matches against for a given node.\n * Defaults to a recursive walk of the node's own fields (excluding\n * its `children` and any secondary children), which works for\n * plain-shape trees but leaks text from nested domain objects —\n * e.g. a SQL Table's Field rows are marked secondary, yet the\n * parent record still carries `record.fields[].field` strings that\n * the default walker would collect. Callers that need precise\n * control over search behaviour should return only the text they\n * want surfaced (the node's own display label / id / type).\n */\n getSearchText?: (node: T) => string;\n /**\n * Force-open the ancestors of the `selected` node so it is always revealed,\n * even when its branch was collapsed (a deep-link, a programmatic selection\n * from outside the tree, or simply a folder the user never opened). While a\n * node is selected its ancestors cannot be collapsed. Off by default; other\n * nodes keep their normal expand state. Requires `selected` to be set.\n */\n revealSelected?: boolean;\n};\n\n// ancestorPathKeys returns the keys of every ancestor on the path from a root\n// down to `target` (excluding target itself — opening the ancestors is what\n// makes target render). Matches by getKey so it is robust to object identity\n// across roots rebuilds. Returns null when target is not found.\nfunction ancestorPathKeys<T>(\n roots: T[],\n getChildren: TreeProps<T>[\"getChildren\"],\n getKey: TreeProps<T>[\"getKey\"],\n target: T,\n): Set<string | number> | null {\n const targetKey = getKey(target);\n const path: (string | number)[] = [];\n const visit = (node: T): boolean => {\n if (getKey(node) === targetKey) return true;\n for (const child of getChildren(node) ?? []) {\n if (visit(child)) {\n path.push(getKey(node));\n return true;\n }\n }\n return false;\n };\n for (const root of roots) {\n if (visit(root)) return path.length ? new Set(path) : null;\n }\n return null;\n}\n\n// mergeKeySets unions two optional key sets, preserving the null fast-path when\n// both are empty so consumers without a filter or reveal pass null downstream.\nfunction mergeKeySets(\n a: Set<string | number> | null,\n b: Set<string | number> | null,\n): Set<string | number> | null {\n if (!a) return b;\n if (!b) return a;\n return new Set([...a, ...b]);\n}\n\n// Edge counting, search-text collection and filtering all walk the tree through\n// the synchronous `getChildren` only. A lazy node (one declared via\n// `hasMoreChildren` whose children have not been fetched yet) therefore\n// contributes no edges and no search text until the operator expands it — so it\n// is invisible to \"expand all\" and to the filter while still collapsed. This is\n// intentional: we never trigger network loads from bulk/search operations.\nfunction countTreeEdges<T>(roots: T[], getChildren: TreeProps<T>[\"getChildren\"]) {\n let total = 0;\n const stack = [...roots];\n\n while (stack.length > 0) {\n const node = stack.pop()!;\n const children = getChildren(node) ?? [];\n total += children.length;\n stack.push(...children);\n }\n\n return total;\n}\n\nfunction collectTreeSearchText(\n value: unknown,\n excluded = new Set<unknown>(),\n seen = new Set<unknown>(),\n): string {\n if (value == null || excluded.has(value)) return \"\";\n\n if (\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\" ||\n typeof value === \"bigint\"\n ) {\n return String(value);\n }\n\n if (typeof value !== \"object\") return \"\";\n if (seen.has(value)) return \"\";\n seen.add(value);\n\n if (Array.isArray(value)) {\n return value\n .map((entry) => collectTreeSearchText(entry, excluded, seen))\n .filter(Boolean)\n .join(\" \");\n }\n\n const preferredKeys = [\"label\", \"name\", \"title\", \"text\", \"plain\", \"id\", \"content\"];\n const record = value as Record<string, unknown>;\n const chunks: string[] = [];\n\n for (const key of preferredKeys) {\n if (!(key in record)) continue;\n const text = collectTreeSearchText(record[key], excluded, seen);\n if (text) chunks.push(text);\n }\n\n for (const [key, entry] of Object.entries(record)) {\n if (key === \"children\" || preferredKeys.includes(key)) continue;\n const text = collectTreeSearchText(entry, excluded, seen);\n if (text) chunks.push(text);\n }\n\n return chunks.join(\" \");\n}\n\nfunction nodeSearchText<T>(node: T, children: ReturnType<TreeProps<T>[\"getChildren\"]>) {\n const excluded = new Set<unknown>();\n if (children) excluded.add(children);\n return collectTreeSearchText(node, excluded).trim().toLowerCase();\n}\n\nfunction filterTreeRoots<T>(\n roots: T[],\n getChildren: TreeProps<T>[\"getChildren\"],\n getKey: TreeProps<T>[\"getKey\"],\n query: string,\n isSecondary?: (node: T) => boolean,\n getSearchText?: (node: T) => string,\n) {\n const normalizedQuery = query.trim().toLowerCase();\n if (!normalizedQuery) {\n return {\n roots,\n filteredChildren: null as Map<string | number, T[]> | null,\n forcedOpenKeys: null as Set<string | number> | null,\n };\n }\n\n const filteredChildren = new Map<string | number, T[]>();\n const forcedOpenKeys = new Set<string | number>();\n\n function matchText(node: T, children: T[]): string {\n // Honour the caller-supplied text extractor first — it's the\n // only way to get precise control over what the filter sees when\n // the node carries domain data whose fields would otherwise leak\n // into the default walker.\n if (getSearchText) return getSearchText(node).trim().toLowerCase();\n // Match-text skips secondary children so e.g. a Table's search\n // text only draws from the Table itself, not from its Field\n // rows. The Table is primary, so its own text still counts.\n const searchChildren = children.filter((c) => !isSecondary?.(c));\n return nodeSearchText(node, searchChildren);\n }\n\n function visit(node: T): boolean {\n // A secondary node never drives a filter match — it's\n // effectively invisible to search. Still rendered when the\n // caller opens the parent manually. This is what lets a 28k-row\n // field tree stay searchable at the record level without \"field\n // name contains 'x'\" matches spamming the results.\n if (isSecondary?.(node)) return false;\n\n const key = getKey(node);\n const children = getChildren(node) ?? [];\n const childrenAllSecondary =\n children.length > 0 && children.every((child) => isSecondary?.(child));\n const matches = matchText(node, children).includes(normalizedQuery);\n const visibleChildren: T[] = [];\n\n for (const child of children) {\n if (visit(child)) visibleChildren.push(child);\n }\n\n if (matches) {\n if (children.length > 0) {\n filteredChildren.set(key, children);\n if (!childrenAllSecondary) forcedOpenKeys.add(key);\n }\n return true;\n }\n\n if (visibleChildren.length > 0) {\n filteredChildren.set(key, visibleChildren);\n forcedOpenKeys.add(key);\n return true;\n }\n\n return false;\n }\n\n return {\n roots: roots.filter((root) => visit(root)),\n filteredChildren,\n forcedOpenKeys,\n };\n}\n\nexport function Tree<T>({\n roots,\n empty,\n className,\n ariaLabel,\n showControls = true,\n showSearch = false,\n searchQuery,\n onSearchQueryChange,\n expandAll: controlledExpandAll,\n onExpandAllChange,\n toolbarClassName,\n actions,\n getSearchText,\n revealSelected = false,\n ...nodeProps\n}: TreeProps<T>) {\n const [internalExpandAll, setInternalExpandAll] = useState<boolean | null>(null);\n const [internalFilterQuery, setInternalFilterQuery] = useState(\"\");\n const filterQuery = searchQuery ?? internalFilterQuery;\n const setFilterQuery = (next: string) => {\n if (searchQuery !== undefined) onSearchQueryChange?.(next);\n else setInternalFilterQuery(next);\n };\n const basePaddingPx = nodeProps.basePaddingPx ?? 8;\n const isControlled = onExpandAllChange !== undefined;\n const expandAll = isControlled ? (controlledExpandAll ?? null) : internalExpandAll;\n const totalEdges = useMemo(\n () => countTreeEdges(roots, nodeProps.getChildren),\n [roots, nodeProps.getChildren],\n );\n const showFilter = showSearch || totalEdges > 20 || Boolean(searchQuery);\n const activeFilter = showFilter ? filterQuery : \"\";\n const filteredTree = useMemo(\n () =>\n filterTreeRoots(\n roots,\n nodeProps.getChildren,\n nodeProps.getKey,\n activeFilter,\n nodeProps.isSecondary,\n getSearchText,\n ),\n [\n roots,\n nodeProps.getChildren,\n nodeProps.getKey,\n activeFilter,\n nodeProps.isSecondary,\n getSearchText,\n ],\n );\n const treeRoots = filteredTree.roots;\n const filteredChildren = filteredTree.filteredChildren;\n // Force-open the selected node's ancestors when revealSelected is set, unioned\n // with the filter's own forced-open keys. Recomputed when the selection moves\n // so the tree follows it without a remount.\n const revealKeys = useMemo(\n () =>\n revealSelected && nodeProps.selected\n ? ancestorPathKeys(roots, nodeProps.getChildren, nodeProps.getKey, nodeProps.selected)\n : null,\n [revealSelected, roots, nodeProps.getChildren, nodeProps.getKey, nodeProps.selected],\n );\n const forcedOpenKeys = useMemo(\n () => mergeKeySets(filteredTree.forcedOpenKeys, revealKeys),\n [filteredTree.forcedOpenKeys, revealKeys],\n );\n const effectiveGetChildren = filteredChildren\n ? (node: T) => filteredChildren.get(nodeProps.getKey(node)) ?? []\n : nodeProps.getChildren;\n const effectiveExpandAll = expandAll;\n const effectiveEmpty = activeFilter.trim() ? (\n <div className=\"px-3 py-4 text-sm text-muted-foreground\">No matching tree nodes.</div>\n ) : (\n empty\n );\n const showControlButtons = showControls && roots.length > 0;\n const showVirtualRow = showFilter || showControlButtons || actions != null;\n const setExpandAll = (next: boolean | null) => {\n if (isControlled) onExpandAllChange?.(next);\n else setInternalExpandAll(next);\n };\n\n if (treeRoots.length === 0 && !showVirtualRow) return <>{effectiveEmpty ?? null}</>;\n\n return (\n <div className={cn(\"flex flex-col min-h-0\", className)}>\n <div\n role=\"tree\"\n aria-label={ariaLabel}\n className=\"min-h-0 flex-1 overflow-auto\"\n >\n {showVirtualRow && (\n <div\n role=\"presentation\"\n className={cn(\n \"sticky top-0 z-10 flex items-center gap-1.5 border-b border-border/70 bg-background/95 py-1 pr-2 text-sm backdrop-blur supports-[backdrop-filter]:bg-background/80\",\n toolbarClassName,\n )}\n style={{ paddingLeft: `${basePaddingPx}px` }}\n >\n {showFilter ? (\n <Icon icon={UiSearch} className=\"w-3 shrink-0 text-xs text-muted-foreground\" />\n ) : (\n <span className=\"w-3 shrink-0\" aria-hidden />\n )}\n\n {showFilter ? (\n <label className=\"flex min-w-0 flex-1 items-center gap-2 rounded-md border border-border bg-background px-2 py-1 text-xs text-foreground shadow-sm\">\n <input\n type=\"search\"\n value={filterQuery}\n onChange={(event) => setFilterQuery(event.target.value)}\n placeholder=\"Filter tree\"\n className=\"h-5 w-full min-w-0 border-0 bg-transparent p-0 text-xs outline-none placeholder:text-placeholder\"\n aria-label=\"Filter tree nodes\"\n />\n {filterQuery && (\n <button\n type=\"button\"\n onClick={() => setFilterQuery(\"\")}\n className=\"inline-flex items-center rounded p-0.5 text-muted-foreground hover:bg-accent hover:text-accent-foreground\"\n aria-label=\"Clear tree filter\"\n title=\"Clear tree filter\"\n >\n <Icon icon={UiClose} className=\"text-xs\" />\n </button>\n )}\n </label>\n ) : (\n <span className=\"flex-1\" />\n )}\n\n {(showControlButtons || actions != null) && (\n <div className=\"ml-auto flex items-center gap-1\">\n {actions}\n {showControlButtons && (\n <>\n <button\n type=\"button\"\n onClick={() => setExpandAll(true)}\n aria-pressed={effectiveExpandAll === true}\n aria-label=\"Expand all\"\n title=\"Expand all\"\n disabled={activeFilter.trim().length > 0}\n className={cn(\n \"inline-flex h-6 w-6 items-center justify-center rounded text-muted-foreground hover:bg-accent hover:text-accent-foreground disabled:cursor-not-allowed disabled:opacity-50\",\n effectiveExpandAll === true && \"bg-accent text-accent-foreground\",\n )}\n >\n <Icon icon={UiExpandAll} className=\"text-sm\" />\n </button>\n <button\n type=\"button\"\n onClick={() => setExpandAll(false)}\n aria-pressed={effectiveExpandAll === false}\n aria-label=\"Collapse all\"\n title=\"Collapse all\"\n disabled={activeFilter.trim().length > 0}\n className={cn(\n \"inline-flex h-6 w-6 items-center justify-center rounded text-muted-foreground hover:bg-accent hover:text-accent-foreground disabled:cursor-not-allowed disabled:opacity-50\",\n effectiveExpandAll === false && \"bg-accent text-accent-foreground\",\n )}\n >\n <Icon icon={UiCollapseAll} className=\"text-sm\" />\n </button>\n </>\n )}\n </div>\n )}\n </div>\n )}\n\n {treeRoots.length === 0 ? (\n (effectiveEmpty ?? null)\n ) : (\n <>\n {treeRoots.map((root) => (\n <TreeNode<T>\n {...nodeProps}\n key={nodeProps.getKey(root)}\n node={root}\n expandAll={effectiveExpandAll}\n forcedOpenKeys={forcedOpenKeys}\n getChildren={effectiveGetChildren}\n />\n ))}\n </>\n )}\n </div>\n </div>\n );\n}\n"],"names":["useState","useMemo","jsx","Fragment","cn","jsxs","Icon","UiSearch","UiClose","UiExpandAll","UiCollapseAll","createElement","TreeNode"],"mappings":"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"}
|
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[];
|
|
@@ -15,6 +15,11 @@ export type TreeProps<T> = Omit<TreeNodeProps<T>, "node" | "depth" | "expandAll"
|
|
|
15
15
|
* are owned externally.
|
|
16
16
|
*/
|
|
17
17
|
showControls?: boolean;
|
|
18
|
+
/** Keep search visible for small or empty trees. */
|
|
19
|
+
showSearch?: boolean;
|
|
20
|
+
/** URL or parent-controlled search query. */
|
|
21
|
+
searchQuery?: string;
|
|
22
|
+
onSearchQueryChange?: (query: string) => void;
|
|
18
23
|
/**
|
|
19
24
|
* Externally controlled expand-all state. When provided together with
|
|
20
25
|
* `onExpandAllChange`, the tree is controlled; otherwise it manages the
|
|
@@ -52,5 +57,5 @@ export type TreeProps<T> = Omit<TreeNodeProps<T>, "node" | "depth" | "expandAll"
|
|
|
52
57
|
*/
|
|
53
58
|
revealSelected?: boolean;
|
|
54
59
|
};
|
|
55
|
-
export declare function Tree<T>({ roots, empty, className, ariaLabel, showControls, expandAll: controlledExpandAll, onExpandAllChange, toolbarClassName, actions, getSearchText, revealSelected, ...nodeProps }: TreeProps<T>): import("react").JSX.Element;
|
|
60
|
+
export declare function Tree<T>({ roots, empty, className, ariaLabel, showControls, showSearch, searchQuery, onSearchQueryChange, expandAll: controlledExpandAll, onExpandAllChange, toolbarClassName, actions, getSearchText, revealSelected, ...nodeProps }: TreeProps<T>): import("react").JSX.Element;
|
|
56
61
|
//# sourceMappingURL=Tree.d.ts.map
|
package/dist/data/Tree.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tree.d.ts","sourceRoot":"","sources":["../../src/data/Tree.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAI1D,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAE1D,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,IAAI,CAC7B,aAAa,CAAC,CAAC,CAAC,EAChB,MAAM,GAAG,OAAO,GAAG,WAAW,GAAG,gBAAgB,CAClD,GAAG;IACF,4BAA4B;IAC5B,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,sDAAsD;IACtD,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3B,wDAAwD;IACxD,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC;IACnD,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;;;;;;;;;;OAUG;IACH,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IACpC;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AA6LF,wBAAgB,IAAI,CAAC,CAAC,EAAE,EACtB,KAAK,EACL,KAAK,EACL,SAAS,EACT,SAAS,EACT,YAAmB,EACnB,SAAS,EAAE,mBAAmB,EAC9B,iBAAiB,EACjB,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,cAAsB,EACtB,GAAG,SAAS,EACb,EAAE,SAAS,CAAC,CAAC,CAAC,+
|
|
1
|
+
{"version":3,"file":"Tree.d.ts","sourceRoot":"","sources":["../../src/data/Tree.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAI1D,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAE1D,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,IAAI,CAC7B,aAAa,CAAC,CAAC,CAAC,EAChB,MAAM,GAAG,OAAO,GAAG,WAAW,GAAG,gBAAgB,CAClD,GAAG;IACF,4BAA4B;IAC5B,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,sDAAsD;IACtD,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,oDAAoD;IACpD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3B,wDAAwD;IACxD,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC;IACnD,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;;;;;;;;;;OAUG;IACH,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IACpC;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AA6LF,wBAAgB,IAAI,CAAC,CAAC,EAAE,EACtB,KAAK,EACL,KAAK,EACL,SAAS,EACT,SAAS,EACT,YAAmB,EACnB,UAAkB,EAClB,WAAW,EACX,mBAAmB,EACnB,SAAS,EAAE,mBAAmB,EAC9B,iBAAiB,EACjB,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,cAAsB,EACtB,GAAG,SAAS,EACb,EAAE,SAAS,CAAC,CAAC,CAAC,+BAiLd"}
|
package/dist/data/Tree.js
CHANGED
|
@@ -124,6 +124,9 @@ function Tree({
|
|
|
124
124
|
className,
|
|
125
125
|
ariaLabel,
|
|
126
126
|
showControls = true,
|
|
127
|
+
showSearch = false,
|
|
128
|
+
searchQuery,
|
|
129
|
+
onSearchQueryChange,
|
|
127
130
|
expandAll: controlledExpandAll,
|
|
128
131
|
onExpandAllChange,
|
|
129
132
|
toolbarClassName,
|
|
@@ -133,7 +136,12 @@ function Tree({
|
|
|
133
136
|
...nodeProps
|
|
134
137
|
}) {
|
|
135
138
|
const [internalExpandAll, setInternalExpandAll] = useState(null);
|
|
136
|
-
const [
|
|
139
|
+
const [internalFilterQuery, setInternalFilterQuery] = useState("");
|
|
140
|
+
const filterQuery = searchQuery ?? internalFilterQuery;
|
|
141
|
+
const setFilterQuery = (next) => {
|
|
142
|
+
if (searchQuery !== void 0) onSearchQueryChange == null ? void 0 : onSearchQueryChange(next);
|
|
143
|
+
else setInternalFilterQuery(next);
|
|
144
|
+
};
|
|
137
145
|
const basePaddingPx = nodeProps.basePaddingPx ?? 8;
|
|
138
146
|
const isControlled = onExpandAllChange !== void 0;
|
|
139
147
|
const expandAll = isControlled ? controlledExpandAll ?? null : internalExpandAll;
|
|
@@ -141,7 +149,7 @@ function Tree({
|
|
|
141
149
|
() => countTreeEdges(roots, nodeProps.getChildren),
|
|
142
150
|
[roots, nodeProps.getChildren]
|
|
143
151
|
);
|
|
144
|
-
const showFilter = totalEdges > 20;
|
|
152
|
+
const showFilter = showSearch || totalEdges > 20 || Boolean(searchQuery);
|
|
145
153
|
const activeFilter = showFilter ? filterQuery : "";
|
|
146
154
|
const filteredTree = useMemo(
|
|
147
155
|
() => filterTreeRoots(
|
package/dist/data/Tree.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tree.js","sources":["../../src/data/Tree.tsx"],"sourcesContent":["import { useMemo, useState, type ReactNode } from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { Icon } from \"./Icon\";\nimport { UiClose, UiCollapseAll, UiExpandAll, UiSearch } from \"../icons\";\nimport { TreeNode, type TreeNodeProps } from \"./TreeNode\";\n\nexport type TreeProps<T> = Omit<\n TreeNodeProps<T>,\n \"node\" | \"depth\" | \"expandAll\" | \"forcedOpenKeys\"\n> & {\n /** Root nodes to render. */\n roots: T[];\n /** Empty-state content when no roots are provided. */\n empty?: ReactNode;\n /** Classes applied to the tree root. */\n className?: string;\n /** Accessible name applied to the tree root. */\n ariaLabel?: string;\n /**\n * Render the Expand all / Collapse all toolbar above the tree. Enabled by\n * default. Set to false to suppress when the tree is tiny or the controls\n * are owned externally.\n */\n showControls?: boolean;\n /**\n * Externally controlled expand-all state. When provided together with\n * `onExpandAllChange`, the tree is controlled; otherwise it manages the\n * toolbar state internally.\n */\n expandAll?: boolean | null;\n /** Called when the toolbar expand-all state changes. */\n onExpandAllChange?: (next: boolean | null) => void;\n /** Classes applied to the search/control toolbar. */\n toolbarClassName?: string;\n /**\n * Extra controls rendered in the toolbar's right-hand group, before Expand\n * all / Collapse all. Providing actions shows the toolbar even when the tree\n * is too small for the filter and `showControls` is off.\n */\n actions?: ReactNode;\n /**\n * Override the text the filter matches against for a given node.\n * Defaults to a recursive walk of the node's own fields (excluding\n * its `children` and any secondary children), which works for\n * plain-shape trees but leaks text from nested domain objects —\n * e.g. a SQL Table's Field rows are marked secondary, yet the\n * parent record still carries `record.fields[].field` strings that\n * the default walker would collect. Callers that need precise\n * control over search behaviour should return only the text they\n * want surfaced (the node's own display label / id / type).\n */\n getSearchText?: (node: T) => string;\n /**\n * Force-open the ancestors of the `selected` node so it is always revealed,\n * even when its branch was collapsed (a deep-link, a programmatic selection\n * from outside the tree, or simply a folder the user never opened). While a\n * node is selected its ancestors cannot be collapsed. Off by default; other\n * nodes keep their normal expand state. Requires `selected` to be set.\n */\n revealSelected?: boolean;\n};\n\n// ancestorPathKeys returns the keys of every ancestor on the path from a root\n// down to `target` (excluding target itself — opening the ancestors is what\n// makes target render). Matches by getKey so it is robust to object identity\n// across roots rebuilds. Returns null when target is not found.\nfunction ancestorPathKeys<T>(\n roots: T[],\n getChildren: TreeProps<T>[\"getChildren\"],\n getKey: TreeProps<T>[\"getKey\"],\n target: T,\n): Set<string | number> | null {\n const targetKey = getKey(target);\n const path: (string | number)[] = [];\n const visit = (node: T): boolean => {\n if (getKey(node) === targetKey) return true;\n for (const child of getChildren(node) ?? []) {\n if (visit(child)) {\n path.push(getKey(node));\n return true;\n }\n }\n return false;\n };\n for (const root of roots) {\n if (visit(root)) return path.length ? new Set(path) : null;\n }\n return null;\n}\n\n// mergeKeySets unions two optional key sets, preserving the null fast-path when\n// both are empty so consumers without a filter or reveal pass null downstream.\nfunction mergeKeySets(\n a: Set<string | number> | null,\n b: Set<string | number> | null,\n): Set<string | number> | null {\n if (!a) return b;\n if (!b) return a;\n return new Set([...a, ...b]);\n}\n\n// Edge counting, search-text collection and filtering all walk the tree through\n// the synchronous `getChildren` only. A lazy node (one declared via\n// `hasMoreChildren` whose children have not been fetched yet) therefore\n// contributes no edges and no search text until the operator expands it — so it\n// is invisible to \"expand all\" and to the filter while still collapsed. This is\n// intentional: we never trigger network loads from bulk/search operations.\nfunction countTreeEdges<T>(roots: T[], getChildren: TreeProps<T>[\"getChildren\"]) {\n let total = 0;\n const stack = [...roots];\n\n while (stack.length > 0) {\n const node = stack.pop()!;\n const children = getChildren(node) ?? [];\n total += children.length;\n stack.push(...children);\n }\n\n return total;\n}\n\nfunction collectTreeSearchText(\n value: unknown,\n excluded = new Set<unknown>(),\n seen = new Set<unknown>(),\n): string {\n if (value == null || excluded.has(value)) return \"\";\n\n if (\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\" ||\n typeof value === \"bigint\"\n ) {\n return String(value);\n }\n\n if (typeof value !== \"object\") return \"\";\n if (seen.has(value)) return \"\";\n seen.add(value);\n\n if (Array.isArray(value)) {\n return value\n .map((entry) => collectTreeSearchText(entry, excluded, seen))\n .filter(Boolean)\n .join(\" \");\n }\n\n const preferredKeys = [\"label\", \"name\", \"title\", \"text\", \"plain\", \"id\", \"content\"];\n const record = value as Record<string, unknown>;\n const chunks: string[] = [];\n\n for (const key of preferredKeys) {\n if (!(key in record)) continue;\n const text = collectTreeSearchText(record[key], excluded, seen);\n if (text) chunks.push(text);\n }\n\n for (const [key, entry] of Object.entries(record)) {\n if (key === \"children\" || preferredKeys.includes(key)) continue;\n const text = collectTreeSearchText(entry, excluded, seen);\n if (text) chunks.push(text);\n }\n\n return chunks.join(\" \");\n}\n\nfunction nodeSearchText<T>(node: T, children: ReturnType<TreeProps<T>[\"getChildren\"]>) {\n const excluded = new Set<unknown>();\n if (children) excluded.add(children);\n return collectTreeSearchText(node, excluded).trim().toLowerCase();\n}\n\nfunction filterTreeRoots<T>(\n roots: T[],\n getChildren: TreeProps<T>[\"getChildren\"],\n getKey: TreeProps<T>[\"getKey\"],\n query: string,\n isSecondary?: (node: T) => boolean,\n getSearchText?: (node: T) => string,\n) {\n const normalizedQuery = query.trim().toLowerCase();\n if (!normalizedQuery) {\n return {\n roots,\n filteredChildren: null as Map<string | number, T[]> | null,\n forcedOpenKeys: null as Set<string | number> | null,\n };\n }\n\n const filteredChildren = new Map<string | number, T[]>();\n const forcedOpenKeys = new Set<string | number>();\n\n function matchText(node: T, children: T[]): string {\n // Honour the caller-supplied text extractor first — it's the\n // only way to get precise control over what the filter sees when\n // the node carries domain data whose fields would otherwise leak\n // into the default walker.\n if (getSearchText) return getSearchText(node).trim().toLowerCase();\n // Match-text skips secondary children so e.g. a Table's search\n // text only draws from the Table itself, not from its Field\n // rows. The Table is primary, so its own text still counts.\n const searchChildren = children.filter((c) => !isSecondary?.(c));\n return nodeSearchText(node, searchChildren);\n }\n\n function visit(node: T): boolean {\n // A secondary node never drives a filter match — it's\n // effectively invisible to search. Still rendered when the\n // caller opens the parent manually. This is what lets a 28k-row\n // field tree stay searchable at the record level without \"field\n // name contains 'x'\" matches spamming the results.\n if (isSecondary?.(node)) return false;\n\n const key = getKey(node);\n const children = getChildren(node) ?? [];\n const childrenAllSecondary =\n children.length > 0 && children.every((child) => isSecondary?.(child));\n const matches = matchText(node, children).includes(normalizedQuery);\n const visibleChildren: T[] = [];\n\n for (const child of children) {\n if (visit(child)) visibleChildren.push(child);\n }\n\n if (matches) {\n if (children.length > 0) {\n filteredChildren.set(key, children);\n if (!childrenAllSecondary) forcedOpenKeys.add(key);\n }\n return true;\n }\n\n if (visibleChildren.length > 0) {\n filteredChildren.set(key, visibleChildren);\n forcedOpenKeys.add(key);\n return true;\n }\n\n return false;\n }\n\n return {\n roots: roots.filter((root) => visit(root)),\n filteredChildren,\n forcedOpenKeys,\n };\n}\n\nexport function Tree<T>({\n roots,\n empty,\n className,\n ariaLabel,\n showControls = true,\n expandAll: controlledExpandAll,\n onExpandAllChange,\n toolbarClassName,\n actions,\n getSearchText,\n revealSelected = false,\n ...nodeProps\n}: TreeProps<T>) {\n const [internalExpandAll, setInternalExpandAll] = useState<boolean | null>(null);\n const [filterQuery, setFilterQuery] = useState(\"\");\n const basePaddingPx = nodeProps.basePaddingPx ?? 8;\n const isControlled = onExpandAllChange !== undefined;\n const expandAll = isControlled ? (controlledExpandAll ?? null) : internalExpandAll;\n const totalEdges = useMemo(\n () => countTreeEdges(roots, nodeProps.getChildren),\n [roots, nodeProps.getChildren],\n );\n const showFilter = totalEdges > 20;\n const activeFilter = showFilter ? filterQuery : \"\";\n const filteredTree = useMemo(\n () =>\n filterTreeRoots(\n roots,\n nodeProps.getChildren,\n nodeProps.getKey,\n activeFilter,\n nodeProps.isSecondary,\n getSearchText,\n ),\n [\n roots,\n nodeProps.getChildren,\n nodeProps.getKey,\n activeFilter,\n nodeProps.isSecondary,\n getSearchText,\n ],\n );\n const treeRoots = filteredTree.roots;\n const filteredChildren = filteredTree.filteredChildren;\n // Force-open the selected node's ancestors when revealSelected is set, unioned\n // with the filter's own forced-open keys. Recomputed when the selection moves\n // so the tree follows it without a remount.\n const revealKeys = useMemo(\n () =>\n revealSelected && nodeProps.selected\n ? ancestorPathKeys(roots, nodeProps.getChildren, nodeProps.getKey, nodeProps.selected)\n : null,\n [revealSelected, roots, nodeProps.getChildren, nodeProps.getKey, nodeProps.selected],\n );\n const forcedOpenKeys = useMemo(\n () => mergeKeySets(filteredTree.forcedOpenKeys, revealKeys),\n [filteredTree.forcedOpenKeys, revealKeys],\n );\n const effectiveGetChildren = filteredChildren\n ? (node: T) => filteredChildren.get(nodeProps.getKey(node)) ?? []\n : nodeProps.getChildren;\n const effectiveExpandAll = expandAll;\n const effectiveEmpty = activeFilter.trim() ? (\n <div className=\"px-3 py-4 text-sm text-muted-foreground\">No matching tree nodes.</div>\n ) : (\n empty\n );\n const showControlButtons = showControls && roots.length > 0;\n const showVirtualRow = showFilter || showControlButtons || actions != null;\n const setExpandAll = (next: boolean | null) => {\n if (isControlled) onExpandAllChange?.(next);\n else setInternalExpandAll(next);\n };\n\n if (treeRoots.length === 0 && !showVirtualRow) return <>{effectiveEmpty ?? null}</>;\n\n return (\n <div className={cn(\"flex flex-col min-h-0\", className)}>\n <div\n role=\"tree\"\n aria-label={ariaLabel}\n className=\"min-h-0 flex-1 overflow-auto\"\n >\n {showVirtualRow && (\n <div\n role=\"presentation\"\n className={cn(\n \"sticky top-0 z-10 flex items-center gap-1.5 border-b border-border/70 bg-background/95 py-1 pr-2 text-sm backdrop-blur supports-[backdrop-filter]:bg-background/80\",\n toolbarClassName,\n )}\n style={{ paddingLeft: `${basePaddingPx}px` }}\n >\n {showFilter ? (\n <Icon icon={UiSearch} className=\"w-3 shrink-0 text-xs text-muted-foreground\" />\n ) : (\n <span className=\"w-3 shrink-0\" aria-hidden />\n )}\n\n {showFilter ? (\n <label className=\"flex min-w-0 flex-1 items-center gap-2 rounded-md border border-border bg-background px-2 py-1 text-xs text-foreground shadow-sm\">\n <input\n type=\"search\"\n value={filterQuery}\n onChange={(event) => setFilterQuery(event.target.value)}\n placeholder=\"Filter tree\"\n className=\"h-5 w-full min-w-0 border-0 bg-transparent p-0 text-xs outline-none placeholder:text-placeholder\"\n aria-label=\"Filter tree nodes\"\n />\n {filterQuery && (\n <button\n type=\"button\"\n onClick={() => setFilterQuery(\"\")}\n className=\"inline-flex items-center rounded p-0.5 text-muted-foreground hover:bg-accent hover:text-accent-foreground\"\n aria-label=\"Clear tree filter\"\n title=\"Clear tree filter\"\n >\n <Icon icon={UiClose} className=\"text-xs\" />\n </button>\n )}\n </label>\n ) : (\n <span className=\"flex-1\" />\n )}\n\n {(showControlButtons || actions != null) && (\n <div className=\"ml-auto flex items-center gap-1\">\n {actions}\n {showControlButtons && (\n <>\n <button\n type=\"button\"\n onClick={() => setExpandAll(true)}\n aria-pressed={effectiveExpandAll === true}\n aria-label=\"Expand all\"\n title=\"Expand all\"\n disabled={activeFilter.trim().length > 0}\n className={cn(\n \"inline-flex h-6 w-6 items-center justify-center rounded text-muted-foreground hover:bg-accent hover:text-accent-foreground disabled:cursor-not-allowed disabled:opacity-50\",\n effectiveExpandAll === true && \"bg-accent text-accent-foreground\",\n )}\n >\n <Icon icon={UiExpandAll} className=\"text-sm\" />\n </button>\n <button\n type=\"button\"\n onClick={() => setExpandAll(false)}\n aria-pressed={effectiveExpandAll === false}\n aria-label=\"Collapse all\"\n title=\"Collapse all\"\n disabled={activeFilter.trim().length > 0}\n className={cn(\n \"inline-flex h-6 w-6 items-center justify-center rounded text-muted-foreground hover:bg-accent hover:text-accent-foreground disabled:cursor-not-allowed disabled:opacity-50\",\n effectiveExpandAll === false && \"bg-accent text-accent-foreground\",\n )}\n >\n <Icon icon={UiCollapseAll} className=\"text-sm\" />\n </button>\n </>\n )}\n </div>\n )}\n </div>\n )}\n\n {treeRoots.length === 0 ? (\n (effectiveEmpty ?? null)\n ) : (\n <>\n {treeRoots.map((root) => (\n <TreeNode<T>\n {...nodeProps}\n key={nodeProps.getKey(root)}\n node={root}\n expandAll={effectiveExpandAll}\n forcedOpenKeys={forcedOpenKeys}\n getChildren={effectiveGetChildren}\n />\n ))}\n </>\n )}\n </div>\n </div>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Tree.js","sources":["../../src/data/Tree.tsx"],"sourcesContent":["import { useMemo, useState, type ReactNode } from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { Icon } from \"./Icon\";\nimport { UiClose, UiCollapseAll, UiExpandAll, UiSearch } from \"../icons\";\nimport { TreeNode, type TreeNodeProps } from \"./TreeNode\";\n\nexport type TreeProps<T> = Omit<\n TreeNodeProps<T>,\n \"node\" | \"depth\" | \"expandAll\" | \"forcedOpenKeys\"\n> & {\n /** Root nodes to render. */\n roots: T[];\n /** Empty-state content when no roots are provided. */\n empty?: ReactNode;\n /** Classes applied to the tree root. */\n className?: string;\n /** Accessible name applied to the tree root. */\n ariaLabel?: string;\n /**\n * Render the Expand all / Collapse all toolbar above the tree. Enabled by\n * default. Set to false to suppress when the tree is tiny or the controls\n * are owned externally.\n */\n showControls?: boolean;\n /** Keep search visible for small or empty trees. */\n showSearch?: boolean;\n /** URL or parent-controlled search query. */\n searchQuery?: string;\n onSearchQueryChange?: (query: string) => void;\n /**\n * Externally controlled expand-all state. When provided together with\n * `onExpandAllChange`, the tree is controlled; otherwise it manages the\n * toolbar state internally.\n */\n expandAll?: boolean | null;\n /** Called when the toolbar expand-all state changes. */\n onExpandAllChange?: (next: boolean | null) => void;\n /** Classes applied to the search/control toolbar. */\n toolbarClassName?: string;\n /**\n * Extra controls rendered in the toolbar's right-hand group, before Expand\n * all / Collapse all. Providing actions shows the toolbar even when the tree\n * is too small for the filter and `showControls` is off.\n */\n actions?: ReactNode;\n /**\n * Override the text the filter matches against for a given node.\n * Defaults to a recursive walk of the node's own fields (excluding\n * its `children` and any secondary children), which works for\n * plain-shape trees but leaks text from nested domain objects —\n * e.g. a SQL Table's Field rows are marked secondary, yet the\n * parent record still carries `record.fields[].field` strings that\n * the default walker would collect. Callers that need precise\n * control over search behaviour should return only the text they\n * want surfaced (the node's own display label / id / type).\n */\n getSearchText?: (node: T) => string;\n /**\n * Force-open the ancestors of the `selected` node so it is always revealed,\n * even when its branch was collapsed (a deep-link, a programmatic selection\n * from outside the tree, or simply a folder the user never opened). While a\n * node is selected its ancestors cannot be collapsed. Off by default; other\n * nodes keep their normal expand state. Requires `selected` to be set.\n */\n revealSelected?: boolean;\n};\n\n// ancestorPathKeys returns the keys of every ancestor on the path from a root\n// down to `target` (excluding target itself — opening the ancestors is what\n// makes target render). Matches by getKey so it is robust to object identity\n// across roots rebuilds. Returns null when target is not found.\nfunction ancestorPathKeys<T>(\n roots: T[],\n getChildren: TreeProps<T>[\"getChildren\"],\n getKey: TreeProps<T>[\"getKey\"],\n target: T,\n): Set<string | number> | null {\n const targetKey = getKey(target);\n const path: (string | number)[] = [];\n const visit = (node: T): boolean => {\n if (getKey(node) === targetKey) return true;\n for (const child of getChildren(node) ?? []) {\n if (visit(child)) {\n path.push(getKey(node));\n return true;\n }\n }\n return false;\n };\n for (const root of roots) {\n if (visit(root)) return path.length ? new Set(path) : null;\n }\n return null;\n}\n\n// mergeKeySets unions two optional key sets, preserving the null fast-path when\n// both are empty so consumers without a filter or reveal pass null downstream.\nfunction mergeKeySets(\n a: Set<string | number> | null,\n b: Set<string | number> | null,\n): Set<string | number> | null {\n if (!a) return b;\n if (!b) return a;\n return new Set([...a, ...b]);\n}\n\n// Edge counting, search-text collection and filtering all walk the tree through\n// the synchronous `getChildren` only. A lazy node (one declared via\n// `hasMoreChildren` whose children have not been fetched yet) therefore\n// contributes no edges and no search text until the operator expands it — so it\n// is invisible to \"expand all\" and to the filter while still collapsed. This is\n// intentional: we never trigger network loads from bulk/search operations.\nfunction countTreeEdges<T>(roots: T[], getChildren: TreeProps<T>[\"getChildren\"]) {\n let total = 0;\n const stack = [...roots];\n\n while (stack.length > 0) {\n const node = stack.pop()!;\n const children = getChildren(node) ?? [];\n total += children.length;\n stack.push(...children);\n }\n\n return total;\n}\n\nfunction collectTreeSearchText(\n value: unknown,\n excluded = new Set<unknown>(),\n seen = new Set<unknown>(),\n): string {\n if (value == null || excluded.has(value)) return \"\";\n\n if (\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\" ||\n typeof value === \"bigint\"\n ) {\n return String(value);\n }\n\n if (typeof value !== \"object\") return \"\";\n if (seen.has(value)) return \"\";\n seen.add(value);\n\n if (Array.isArray(value)) {\n return value\n .map((entry) => collectTreeSearchText(entry, excluded, seen))\n .filter(Boolean)\n .join(\" \");\n }\n\n const preferredKeys = [\"label\", \"name\", \"title\", \"text\", \"plain\", \"id\", \"content\"];\n const record = value as Record<string, unknown>;\n const chunks: string[] = [];\n\n for (const key of preferredKeys) {\n if (!(key in record)) continue;\n const text = collectTreeSearchText(record[key], excluded, seen);\n if (text) chunks.push(text);\n }\n\n for (const [key, entry] of Object.entries(record)) {\n if (key === \"children\" || preferredKeys.includes(key)) continue;\n const text = collectTreeSearchText(entry, excluded, seen);\n if (text) chunks.push(text);\n }\n\n return chunks.join(\" \");\n}\n\nfunction nodeSearchText<T>(node: T, children: ReturnType<TreeProps<T>[\"getChildren\"]>) {\n const excluded = new Set<unknown>();\n if (children) excluded.add(children);\n return collectTreeSearchText(node, excluded).trim().toLowerCase();\n}\n\nfunction filterTreeRoots<T>(\n roots: T[],\n getChildren: TreeProps<T>[\"getChildren\"],\n getKey: TreeProps<T>[\"getKey\"],\n query: string,\n isSecondary?: (node: T) => boolean,\n getSearchText?: (node: T) => string,\n) {\n const normalizedQuery = query.trim().toLowerCase();\n if (!normalizedQuery) {\n return {\n roots,\n filteredChildren: null as Map<string | number, T[]> | null,\n forcedOpenKeys: null as Set<string | number> | null,\n };\n }\n\n const filteredChildren = new Map<string | number, T[]>();\n const forcedOpenKeys = new Set<string | number>();\n\n function matchText(node: T, children: T[]): string {\n // Honour the caller-supplied text extractor first — it's the\n // only way to get precise control over what the filter sees when\n // the node carries domain data whose fields would otherwise leak\n // into the default walker.\n if (getSearchText) return getSearchText(node).trim().toLowerCase();\n // Match-text skips secondary children so e.g. a Table's search\n // text only draws from the Table itself, not from its Field\n // rows. The Table is primary, so its own text still counts.\n const searchChildren = children.filter((c) => !isSecondary?.(c));\n return nodeSearchText(node, searchChildren);\n }\n\n function visit(node: T): boolean {\n // A secondary node never drives a filter match — it's\n // effectively invisible to search. Still rendered when the\n // caller opens the parent manually. This is what lets a 28k-row\n // field tree stay searchable at the record level without \"field\n // name contains 'x'\" matches spamming the results.\n if (isSecondary?.(node)) return false;\n\n const key = getKey(node);\n const children = getChildren(node) ?? [];\n const childrenAllSecondary =\n children.length > 0 && children.every((child) => isSecondary?.(child));\n const matches = matchText(node, children).includes(normalizedQuery);\n const visibleChildren: T[] = [];\n\n for (const child of children) {\n if (visit(child)) visibleChildren.push(child);\n }\n\n if (matches) {\n if (children.length > 0) {\n filteredChildren.set(key, children);\n if (!childrenAllSecondary) forcedOpenKeys.add(key);\n }\n return true;\n }\n\n if (visibleChildren.length > 0) {\n filteredChildren.set(key, visibleChildren);\n forcedOpenKeys.add(key);\n return true;\n }\n\n return false;\n }\n\n return {\n roots: roots.filter((root) => visit(root)),\n filteredChildren,\n forcedOpenKeys,\n };\n}\n\nexport function Tree<T>({\n roots,\n empty,\n className,\n ariaLabel,\n showControls = true,\n showSearch = false,\n searchQuery,\n onSearchQueryChange,\n expandAll: controlledExpandAll,\n onExpandAllChange,\n toolbarClassName,\n actions,\n getSearchText,\n revealSelected = false,\n ...nodeProps\n}: TreeProps<T>) {\n const [internalExpandAll, setInternalExpandAll] = useState<boolean | null>(null);\n const [internalFilterQuery, setInternalFilterQuery] = useState(\"\");\n const filterQuery = searchQuery ?? internalFilterQuery;\n const setFilterQuery = (next: string) => {\n if (searchQuery !== undefined) onSearchQueryChange?.(next);\n else setInternalFilterQuery(next);\n };\n const basePaddingPx = nodeProps.basePaddingPx ?? 8;\n const isControlled = onExpandAllChange !== undefined;\n const expandAll = isControlled ? (controlledExpandAll ?? null) : internalExpandAll;\n const totalEdges = useMemo(\n () => countTreeEdges(roots, nodeProps.getChildren),\n [roots, nodeProps.getChildren],\n );\n const showFilter = showSearch || totalEdges > 20 || Boolean(searchQuery);\n const activeFilter = showFilter ? filterQuery : \"\";\n const filteredTree = useMemo(\n () =>\n filterTreeRoots(\n roots,\n nodeProps.getChildren,\n nodeProps.getKey,\n activeFilter,\n nodeProps.isSecondary,\n getSearchText,\n ),\n [\n roots,\n nodeProps.getChildren,\n nodeProps.getKey,\n activeFilter,\n nodeProps.isSecondary,\n getSearchText,\n ],\n );\n const treeRoots = filteredTree.roots;\n const filteredChildren = filteredTree.filteredChildren;\n // Force-open the selected node's ancestors when revealSelected is set, unioned\n // with the filter's own forced-open keys. Recomputed when the selection moves\n // so the tree follows it without a remount.\n const revealKeys = useMemo(\n () =>\n revealSelected && nodeProps.selected\n ? ancestorPathKeys(roots, nodeProps.getChildren, nodeProps.getKey, nodeProps.selected)\n : null,\n [revealSelected, roots, nodeProps.getChildren, nodeProps.getKey, nodeProps.selected],\n );\n const forcedOpenKeys = useMemo(\n () => mergeKeySets(filteredTree.forcedOpenKeys, revealKeys),\n [filteredTree.forcedOpenKeys, revealKeys],\n );\n const effectiveGetChildren = filteredChildren\n ? (node: T) => filteredChildren.get(nodeProps.getKey(node)) ?? []\n : nodeProps.getChildren;\n const effectiveExpandAll = expandAll;\n const effectiveEmpty = activeFilter.trim() ? (\n <div className=\"px-3 py-4 text-sm text-muted-foreground\">No matching tree nodes.</div>\n ) : (\n empty\n );\n const showControlButtons = showControls && roots.length > 0;\n const showVirtualRow = showFilter || showControlButtons || actions != null;\n const setExpandAll = (next: boolean | null) => {\n if (isControlled) onExpandAllChange?.(next);\n else setInternalExpandAll(next);\n };\n\n if (treeRoots.length === 0 && !showVirtualRow) return <>{effectiveEmpty ?? null}</>;\n\n return (\n <div className={cn(\"flex flex-col min-h-0\", className)}>\n <div\n role=\"tree\"\n aria-label={ariaLabel}\n className=\"min-h-0 flex-1 overflow-auto\"\n >\n {showVirtualRow && (\n <div\n role=\"presentation\"\n className={cn(\n \"sticky top-0 z-10 flex items-center gap-1.5 border-b border-border/70 bg-background/95 py-1 pr-2 text-sm backdrop-blur supports-[backdrop-filter]:bg-background/80\",\n toolbarClassName,\n )}\n style={{ paddingLeft: `${basePaddingPx}px` }}\n >\n {showFilter ? (\n <Icon icon={UiSearch} className=\"w-3 shrink-0 text-xs text-muted-foreground\" />\n ) : (\n <span className=\"w-3 shrink-0\" aria-hidden />\n )}\n\n {showFilter ? (\n <label className=\"flex min-w-0 flex-1 items-center gap-2 rounded-md border border-border bg-background px-2 py-1 text-xs text-foreground shadow-sm\">\n <input\n type=\"search\"\n value={filterQuery}\n onChange={(event) => setFilterQuery(event.target.value)}\n placeholder=\"Filter tree\"\n className=\"h-5 w-full min-w-0 border-0 bg-transparent p-0 text-xs outline-none placeholder:text-placeholder\"\n aria-label=\"Filter tree nodes\"\n />\n {filterQuery && (\n <button\n type=\"button\"\n onClick={() => setFilterQuery(\"\")}\n className=\"inline-flex items-center rounded p-0.5 text-muted-foreground hover:bg-accent hover:text-accent-foreground\"\n aria-label=\"Clear tree filter\"\n title=\"Clear tree filter\"\n >\n <Icon icon={UiClose} className=\"text-xs\" />\n </button>\n )}\n </label>\n ) : (\n <span className=\"flex-1\" />\n )}\n\n {(showControlButtons || actions != null) && (\n <div className=\"ml-auto flex items-center gap-1\">\n {actions}\n {showControlButtons && (\n <>\n <button\n type=\"button\"\n onClick={() => setExpandAll(true)}\n aria-pressed={effectiveExpandAll === true}\n aria-label=\"Expand all\"\n title=\"Expand all\"\n disabled={activeFilter.trim().length > 0}\n className={cn(\n \"inline-flex h-6 w-6 items-center justify-center rounded text-muted-foreground hover:bg-accent hover:text-accent-foreground disabled:cursor-not-allowed disabled:opacity-50\",\n effectiveExpandAll === true && \"bg-accent text-accent-foreground\",\n )}\n >\n <Icon icon={UiExpandAll} className=\"text-sm\" />\n </button>\n <button\n type=\"button\"\n onClick={() => setExpandAll(false)}\n aria-pressed={effectiveExpandAll === false}\n aria-label=\"Collapse all\"\n title=\"Collapse all\"\n disabled={activeFilter.trim().length > 0}\n className={cn(\n \"inline-flex h-6 w-6 items-center justify-center rounded text-muted-foreground hover:bg-accent hover:text-accent-foreground disabled:cursor-not-allowed disabled:opacity-50\",\n effectiveExpandAll === false && \"bg-accent text-accent-foreground\",\n )}\n >\n <Icon icon={UiCollapseAll} className=\"text-sm\" />\n </button>\n </>\n )}\n </div>\n )}\n </div>\n )}\n\n {treeRoots.length === 0 ? (\n (effectiveEmpty ?? null)\n ) : (\n <>\n {treeRoots.map((root) => (\n <TreeNode<T>\n {...nodeProps}\n key={nodeProps.getKey(root)}\n node={root}\n expandAll={effectiveExpandAll}\n forcedOpenKeys={forcedOpenKeys}\n getChildren={effectiveGetChildren}\n />\n ))}\n </>\n )}\n </div>\n </div>\n );\n}\n"],"names":[],"mappings":"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"}
|
package/dist/data/Version.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
import { TimeseriesResponse } from './TimeseriesPanel';
|
|
3
|
-
import { WorkloadCardMetrics, WorkloadCardWorkload } from './WorkloadCard.model';
|
|
2
|
+
import { TimeseriesResponse } from './TimeseriesPanel.js';
|
|
3
|
+
import { WorkloadCardMetrics, WorkloadCardWorkload } from './WorkloadCard.model.js';
|
|
4
4
|
export interface WorkloadCardProps {
|
|
5
5
|
workload: WorkloadCardWorkload;
|
|
6
6
|
/**
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
import { BadgeTone } from './Badge';
|
|
3
|
-
import { StaticIconComponent } from './Icon';
|
|
4
|
-
import { ProgressBarsOrientation } from './ProgressBars';
|
|
5
|
-
import { GaugeSeries } from './TimeseriesGauge';
|
|
2
|
+
import { BadgeTone } from './Badge.js';
|
|
3
|
+
import { StaticIconComponent } from './Icon.js';
|
|
4
|
+
import { ProgressBarsOrientation } from './ProgressBars.js';
|
|
5
|
+
import { GaugeSeries } from './TimeseriesGauge.js';
|
|
6
6
|
export type WorkloadCardKind = "service" | "ingress" | "deployment" | "statefulset" | "pod";
|
|
7
7
|
export type WorkloadCardIcon = string | StaticIconComponent;
|
|
8
8
|
export interface WorkloadCardReplicas {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { SpecRuntimeFamily } from '../runtime/runtime-mode';
|
|
2
|
-
import { ChatBudgetConfig, ChatModel, ChatModelRuntime, ChatUsageSummary, ClaudePermissionMode } from '../chat/types';
|
|
1
|
+
import { SpecRuntimeFamily } from '../runtime/runtime-mode.js';
|
|
2
|
+
import { ChatBudgetConfig, ChatModel, ChatModelRuntime, ChatUsageSummary, ClaudePermissionMode } from '../chat/types.js';
|
|
3
3
|
export type AdvancedChatConfigProps = {
|
|
4
4
|
models: ChatModel[];
|
|
5
5
|
runtime: ChatModelRuntime;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChatFabProps } from './ChatFab';
|
|
1
|
+
import { ChatFabProps } from './ChatFab.js';
|
|
2
2
|
export type ChatButtonProps = Omit<ChatFabProps, "persistent">;
|
|
3
3
|
/** A persistent chat trigger styled as navbar chrome for AppShell actions. */
|
|
4
4
|
export declare function ChatButton({ icon, label, className, }: ChatButtonProps): import("react").JSX.Element;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ChatModel } from '../chat/types';
|
|
2
|
-
import { SpecRuntimeFamily } from '../runtime/runtime-mode';
|
|
1
|
+
import { ChatModel } from '../chat/types.js';
|
|
2
|
+
import { SpecRuntimeFamily } from '../runtime/runtime-mode.js';
|
|
3
3
|
export type ChatWindowCatalogOptions = {
|
|
4
4
|
models?: ChatModel[] | undefined;
|
|
5
5
|
modelsApi?: string | null | undefined;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ChatWindowProps } from './ChatWindow.types';
|
|
2
|
-
export type { ChatContextPickerRenderProps, ChatWindowProps, } from './ChatWindow.types';
|
|
1
|
+
import { ChatWindowProps } from './ChatWindow.types.js';
|
|
2
|
+
export type { ChatContextPickerRenderProps, ChatWindowProps, } from './ChatWindow.types.js';
|
|
3
3
|
/** A draggable, resizable floating chat window. It lazy-loads `react-rnd` (an
|
|
4
4
|
* optional dependency, so consumers of just the inner <Chat> never pull it)
|
|
5
5
|
* and renders the existing <Chat> beneath a drag-handle header with thread
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ChatBudgetConfig, ChatModelRuntime, ClaudePermissionMode } from '../chat/types';
|
|
2
|
-
import { PermissionPolicy } from '../chat/tool-policy';
|
|
1
|
+
import { ChatBudgetConfig, ChatModelRuntime, ClaudePermissionMode } from '../chat/types.js';
|
|
2
|
+
import { PermissionPolicy } from '../chat/tool-policy.js';
|
|
3
3
|
export type StoredChatPreferences = {
|
|
4
4
|
runtime?: ChatModelRuntime;
|
|
5
5
|
budget?: ChatBudgetConfig;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ChatProps } from '../chat/Chat';
|
|
2
|
-
import { ChatModel, ChatModelRuntime } from '../chat/types';
|
|
1
|
+
import { ChatProps } from '../chat/Chat.js';
|
|
2
|
+
import { ChatModel, ChatModelRuntime } from '../chat/types.js';
|
|
3
3
|
export type ChatWindowRuntimeOptions = {
|
|
4
4
|
chat?: Partial<ChatProps> | undefined;
|
|
5
5
|
initialModel?: string | null | undefined;
|