@flanksource/clicky-ui 0.3.28 → 0.3.29
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/dist/comments/CommentAuthor.d.ts +1 -1
- package/dist/comments/CommentAuthor.d.ts.map +1 -1
- package/dist/comments/CommentCard.d.ts +2 -2
- package/dist/comments/CommentCard.d.ts.map +1 -1
- package/dist/comments/CommentComposer.d.ts +1 -1
- package/dist/comments/CommentComposer.d.ts.map +1 -1
- package/dist/comments/CommentFilterBar.d.ts +1 -1
- package/dist/comments/CommentFilterBar.d.ts.map +1 -1
- package/dist/comments/CommentMarkdown.d.ts +1 -1
- package/dist/comments/CommentMarkdown.d.ts.map +1 -1
- package/dist/comments/CommentProgress.d.ts +1 -1
- package/dist/comments/CommentProgress.d.ts.map +1 -1
- package/dist/comments/CommentProvider.d.ts +2 -2
- package/dist/comments/CommentProvider.d.ts.map +1 -1
- package/dist/comments/CommentSidePanel.d.ts +1 -1
- package/dist/comments/CommentSidePanel.d.ts.map +1 -1
- package/dist/comments/CommentThread.d.ts +2 -2
- package/dist/comments/CommentThread.d.ts.map +1 -1
- package/dist/comments/CommentThreadList.d.ts +2 -2
- package/dist/comments/CommentThreadList.d.ts.map +1 -1
- package/dist/comments/GroupedComments.d.ts +1 -1
- package/dist/comments/GroupedComments.d.ts.map +1 -1
- package/dist/comments/MentionTextarea.d.ts +1 -1
- package/dist/comments/comment-context.d.ts +4 -4
- package/dist/comments/comment-fixtures.d.ts +1 -1
- package/dist/comments/comment-types.d.ts +1 -1
- package/dist/components/AccordionList.d.ts +2 -2
- package/dist/components/AccordionList.d.ts.map +1 -1
- package/dist/components/Combobox.cjs +6 -6
- package/dist/components/Combobox.cjs.map +1 -1
- package/dist/components/Combobox.d.ts +1 -1
- package/dist/components/Combobox.d.ts.map +1 -1
- package/dist/components/Combobox.js +2 -2
- package/dist/components/Combobox.js.map +1 -1
- package/dist/components/ComboboxActions.d.ts +1 -1
- package/dist/components/ComboboxActions.d.ts.map +1 -1
- package/dist/components/ComboboxControl.cjs +3 -2
- package/dist/components/ComboboxControl.cjs.map +1 -1
- package/dist/components/ComboboxControl.d.ts +5 -5
- package/dist/components/ComboboxControl.d.ts.map +1 -1
- package/dist/components/ComboboxControl.js +2 -1
- package/dist/components/ComboboxControl.js.map +1 -1
- package/dist/components/ComboboxMenu.cjs +154 -134
- package/dist/components/ComboboxMenu.cjs.map +1 -1
- package/dist/components/ComboboxMenu.d.ts +4 -4
- package/dist/components/ComboboxMenu.d.ts.map +1 -1
- package/dist/components/ComboboxMenu.js +154 -134
- package/dist/components/ComboboxMenu.js.map +1 -1
- package/dist/components/ComboboxTags.d.ts +1 -1
- package/dist/components/ComboboxTags.d.ts.map +1 -1
- package/dist/components/ConnectionLoggingPolicy.d.ts +1 -1
- package/dist/components/ConnectionLoggingPolicy.d.ts.map +1 -1
- package/dist/components/CopyButton.d.ts +1 -1
- package/dist/components/CopyButton.d.ts.map +1 -1
- package/dist/components/CountryFlag.d.ts +1 -1
- package/dist/components/CountryFlag.d.ts.map +1 -1
- package/dist/components/CountryPicker.d.ts +1 -1
- package/dist/components/CountryPicker.d.ts.map +1 -1
- package/dist/components/DaemonSetIcon.d.ts +1 -1
- package/dist/components/DaemonSetIcon.d.ts.map +1 -1
- package/dist/components/DateField.d.ts +3 -3
- package/dist/components/DatePicker.d.ts +3 -3
- package/dist/components/DateTimePicker.d.ts +3 -3
- package/dist/components/DimensionField.d.ts +1 -1
- package/dist/components/DimensionField.d.ts.map +1 -1
- package/dist/components/EndpointSelector.d.ts +1 -1
- package/dist/components/EndpointSelector.d.ts.map +1 -1
- package/dist/components/ErrorWrapper.d.ts +2 -2
- package/dist/components/Field.d.ts +2 -2
- package/dist/components/Field.d.ts.map +1 -1
- package/dist/components/FilterBar.cjs +100 -85
- package/dist/components/FilterBar.cjs.map +1 -1
- package/dist/components/FilterBar.d.ts +4 -4
- package/dist/components/FilterBar.d.ts.map +1 -1
- package/dist/components/FilterBar.js +101 -86
- package/dist/components/FilterBar.js.map +1 -1
- package/dist/components/FormLookupProvider.d.ts +2 -2
- package/dist/components/FormLookupProvider.d.ts.map +1 -1
- package/dist/components/FormatOptionsDropdown.d.ts +2 -2
- package/dist/components/FormatOptionsDropdown.d.ts.map +1 -1
- package/dist/components/IconButton.d.ts +3 -3
- package/dist/components/InputField.d.ts +2 -2
- package/dist/components/ItemActions.d.ts +2 -2
- package/dist/components/ItemActions.d.ts.map +1 -1
- package/dist/components/JSONPathField.d.ts +1 -1
- package/dist/components/JSONPathField.d.ts.map +1 -1
- package/dist/components/JSONPathPlayground.d.ts +1 -1
- package/dist/components/JSONPathPlayground.d.ts.map +1 -1
- package/dist/components/JsonSchemaForm.d.ts +1 -1
- package/dist/components/JsonSchemaForm.d.ts.map +1 -1
- package/dist/components/ListMenu.d.ts +6 -6
- package/dist/components/ListMenu.d.ts.map +1 -1
- package/dist/components/MdxEditorCallout.d.ts +2 -2
- package/dist/components/MdxEditorCallout.d.ts.map +1 -1
- package/dist/components/MdxEditorField.d.ts +1 -1
- package/dist/components/MdxEditorField.d.ts.map +1 -1
- package/dist/components/MdxEditorToolbar.d.ts +1 -1
- package/dist/components/MdxEditorToolbar.d.ts.map +1 -1
- package/dist/components/MultiSelect.d.ts +2 -2
- package/dist/components/MultiSelect.d.ts.map +1 -1
- package/dist/components/NamespacePicker.d.ts +1 -1
- package/dist/components/NamespacePicker.d.ts.map +1 -1
- package/dist/components/OnePasswordSelector.d.ts +1 -1
- package/dist/components/OnePasswordSelector.d.ts.map +1 -1
- package/dist/components/RangeSlider.d.ts +1 -1
- package/dist/components/RangeSlider.d.ts.map +1 -1
- package/dist/components/SearchInput.d.ts +2 -2
- package/dist/components/SearchInput.d.ts.map +1 -1
- package/dist/components/SecretFormField.d.ts +1 -1
- package/dist/components/SecretFormField.d.ts.map +1 -1
- package/dist/components/SecretKeySelector.d.ts +1 -1
- package/dist/components/SecretKeySelector.d.ts.map +1 -1
- package/dist/components/SegmentedControl.d.ts +2 -2
- package/dist/components/SegmentedControl.d.ts.map +1 -1
- package/dist/components/SplitButton.d.ts +2 -2
- package/dist/components/SplitButton.d.ts.map +1 -1
- package/dist/components/Switch.d.ts +2 -2
- package/dist/components/Switch.d.ts.map +1 -1
- package/dist/components/TimeRange.d.ts +1 -1
- package/dist/components/TimeRange.d.ts.map +1 -1
- package/dist/components/TreePickerField.d.ts +2 -2
- package/dist/components/TreePickerField.d.ts.map +1 -1
- package/dist/components/TriStateToggle.d.ts +1 -1
- package/dist/components/TriStateToggle.d.ts.map +1 -1
- package/dist/components/UnitStepControls.d.ts +2 -2
- package/dist/components/UnitStepControls.d.ts.map +1 -1
- package/dist/components/WorkloadPicker.d.ts +1 -1
- package/dist/components/WorkloadPicker.d.ts.map +1 -1
- package/dist/components/button.d.ts +3 -3
- package/dist/components/combobox-types.d.ts +1 -1
- package/dist/components/density-switcher.d.ts +1 -1
- package/dist/components/filter-bar-context.d.ts +1 -1
- package/dist/components/filter-bar-field-utils.d.ts +2 -2
- package/dist/components/filter-bar-field-utils.js +1 -1
- package/dist/components/filter-bar-multi.d.ts +3 -3
- package/dist/components/filter-bar-multi.d.ts.map +1 -1
- package/dist/components/form-lookup-context.d.ts +1 -1
- package/dist/components/icon-menu-picker.cjs.map +1 -1
- package/dist/components/icon-menu-picker.d.ts +2 -2
- package/dist/components/icon-menu-picker.d.ts.map +1 -1
- package/dist/components/icon-menu-picker.js.map +1 -1
- package/dist/components/jotai-bindings.d.ts +2 -2
- package/dist/components/jotai-bindings.d.ts.map +1 -1
- package/dist/components/json-schema-form-accordion-array.d.ts +1 -1
- package/dist/components/json-schema-form-accordion-array.d.ts.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-cards-array.d.ts +1 -1
- package/dist/components/json-schema-form-cards-array.d.ts.map +1 -1
- package/dist/components/json-schema-form-discriminator.d.ts +1 -1
- package/dist/components/json-schema-form-error-display.d.ts +3 -3
- package/dist/components/json-schema-form-error-display.d.ts.map +1 -1
- package/dist/components/json-schema-form-extensions.d.ts +1 -1
- package/dist/components/json-schema-form-fields.d.ts +12 -12
- package/dist/components/json-schema-form-fields.d.ts.map +1 -1
- package/dist/components/json-schema-form-grid.d.ts +1 -1
- package/dist/components/json-schema-form-grid.d.ts.map +1 -1
- package/dist/components/json-schema-form-item-row.d.ts +4 -4
- package/dist/components/json-schema-form-item-row.d.ts.map +1 -1
- package/dist/components/json-schema-form-layout.d.ts +6 -6
- package/dist/components/json-schema-form-layout.d.ts.map +1 -1
- package/dist/components/json-schema-form-list-array.d.ts +1 -1
- package/dist/components/json-schema-form-list-array.d.ts.map +1 -1
- package/dist/components/json-schema-form-lookup-tree.d.ts +1 -1
- package/dist/components/json-schema-form-lookup-tree.d.ts.map +1 -1
- package/dist/components/json-schema-form-object.d.ts +2 -2
- package/dist/components/json-schema-form-object.d.ts.map +1 -1
- package/dist/components/json-schema-form-render.d.ts +1 -1
- package/dist/components/json-schema-form-table-array.d.ts +1 -1
- package/dist/components/json-schema-form-table-array.d.ts.map +1 -1
- package/dist/components/json-schema-form-tags-combobox.cjs +2 -2
- package/dist/components/json-schema-form-tags-combobox.cjs.map +1 -1
- package/dist/components/json-schema-form-tags-combobox.d.ts +1 -1
- package/dist/components/json-schema-form-tags-combobox.d.ts.map +1 -1
- package/dist/components/json-schema-form-tags-combobox.js +1 -1
- package/dist/components/json-schema-form-tags-combobox.js.map +1 -1
- package/dist/components/json-schema-form-template-menu.d.ts +2 -2
- package/dist/components/json-schema-form-template-menu.d.ts.map +1 -1
- package/dist/components/json-schema-form-template.d.ts +1 -1
- package/dist/components/json-schema-form-types.d.ts +1 -1
- package/dist/components/loading.d.ts +4 -4
- package/dist/components/mdx-editor-callout.d.ts +1 -1
- package/dist/components/mdx-editor-options.d.ts +1 -1
- package/dist/components/select.d.ts +3 -3
- package/dist/components/theme-switcher.d.ts +1 -1
- package/dist/components/use-list-menu-selection.d.ts +1 -1
- package/dist/components/useComboboxLayout.cjs +37 -27
- package/dist/components/useComboboxLayout.cjs.map +1 -1
- package/dist/components/useComboboxLayout.d.ts +4 -4
- package/dist/components/useComboboxLayout.d.ts.map +1 -1
- package/dist/components/useComboboxLayout.js +38 -28
- package/dist/components/useComboboxLayout.js.map +1 -1
- package/dist/components/workload-picker-utils.d.ts +1 -1
- package/dist/components.d.ts +1 -0
- package/dist/components.d.ts.map +1 -1
- package/dist/data/AnsiHtml.d.ts +1 -1
- package/dist/data/AnsiHtml.d.ts.map +1 -1
- package/dist/data/Avatar.d.ts +2 -2
- package/dist/data/Avatar.d.ts.map +1 -1
- package/dist/data/AvatarBadge.d.ts +2 -2
- package/dist/data/AvatarBadge.d.ts.map +1 -1
- package/dist/data/Badge.d.ts +2 -2
- package/dist/data/Badge.d.ts.map +1 -1
- package/dist/data/Callout.d.ts +2 -2
- package/dist/data/Callout.d.ts.map +1 -1
- package/dist/data/Clicky.d.ts +3 -3
- package/dist/data/Clicky.d.ts.map +1 -1
- package/dist/data/CodeBlock.cjs +1 -1
- package/dist/data/CodeBlock.cjs.map +1 -1
- package/dist/data/CodeBlock.d.ts +1 -1
- package/dist/data/CodeBlock.d.ts.map +1 -1
- package/dist/data/CodeBlock.js +1 -1
- package/dist/data/CodeBlock.js.map +1 -1
- package/dist/data/CodeDiff.d.ts +1 -1
- package/dist/data/CodeDiff.d.ts.map +1 -1
- package/dist/data/DataTable.cjs +63 -27
- package/dist/data/DataTable.cjs.map +1 -1
- package/dist/data/DataTable.d.ts +11 -2
- package/dist/data/DataTable.d.ts.map +1 -1
- package/dist/data/DataTable.grouping.d.ts +1 -1
- package/dist/data/DataTable.js +63 -27
- package/dist/data/DataTable.js.map +1 -1
- package/dist/data/DataTableGroupingControls.d.ts +1 -1
- package/dist/data/DataTableGroupingControls.d.ts.map +1 -1
- package/dist/data/ExecutionTree.d.ts +2 -2
- package/dist/data/ExecutionTree.d.ts.map +1 -1
- package/dist/data/FilterPill.d.ts +4 -4
- package/dist/data/FilterPill.d.ts.map +1 -1
- package/dist/data/FixtureEditor/FenceForm.d.ts +1 -1
- package/dist/data/FixtureEditor/FenceForm.d.ts.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/FixtureFenceCodeBlockEditor.d.ts +1 -1
- package/dist/data/FixtureEditor/FixtureFenceCodeBlockEditor.d.ts.map +1 -1
- package/dist/data/FixtureEditor/FixtureFrontmatterDialog.d.ts +1 -1
- package/dist/data/FixtureEditor/FixtureFrontmatterDialog.d.ts.map +1 -1
- package/dist/data/FixtureEditor/RawFenceEditor.d.ts +2 -2
- package/dist/data/FixtureEditor/RawFenceEditor.d.ts.map +1 -1
- package/dist/data/FixtureEditor/types.d.ts +1 -1
- package/dist/data/Gauge.d.ts +2 -2
- package/dist/data/Gauge.d.ts.map +1 -1
- package/dist/data/GaugeHoverCard.d.ts +2 -2
- package/dist/data/GaugeHoverCard.d.ts.map +1 -1
- package/dist/data/HighlightedTokens.d.ts +1 -1
- package/dist/data/HighlightedTokens.d.ts.map +1 -1
- package/dist/data/Icon.cjs.map +1 -1
- package/dist/data/Icon.d.ts +3 -3
- package/dist/data/Icon.d.ts.map +1 -1
- package/dist/data/Icon.js.map +1 -1
- package/dist/data/JsonView.d.ts +1 -1
- package/dist/data/JsonView.d.ts.map +1 -1
- package/dist/data/KeyValueList.d.ts +2 -2
- package/dist/data/KeyValueList.d.ts.map +1 -1
- package/dist/data/LogDetails.d.ts +1 -1
- package/dist/data/LogDetails.d.ts.map +1 -1
- package/dist/data/LogViewer.d.ts +1 -1
- package/dist/data/LogViewer.d.ts.map +1 -1
- package/dist/data/LogsTable.d.ts +1 -1
- package/dist/data/LogsTable.d.ts.map +1 -1
- package/dist/data/Markdown.d.ts +1 -1
- package/dist/data/Markdown.d.ts.map +1 -1
- package/dist/data/MarkdownEditor.d.ts +2 -2
- package/dist/data/MarkdownEditor.d.ts.map +1 -1
- package/dist/data/MatrixTable.d.ts +2 -2
- package/dist/data/MatrixTable.d.ts.map +1 -1
- package/dist/data/MethodBadge.d.ts +1 -1
- package/dist/data/MethodBadge.d.ts.map +1 -1
- package/dist/data/ObjectGraph.d.ts +2 -2
- package/dist/data/ObjectGraph.d.ts.map +1 -1
- package/dist/data/ProgressBar.d.ts +1 -1
- package/dist/data/ProgressBar.d.ts.map +1 -1
- package/dist/data/ProgressBars.d.ts +2 -2
- package/dist/data/ProgressBars.d.ts.map +1 -1
- package/dist/data/PromptBanner.d.ts +1 -1
- package/dist/data/PromptBanner.d.ts.map +1 -1
- package/dist/data/PromptDialog.d.ts +1 -1
- package/dist/data/PromptDialog.d.ts.map +1 -1
- package/dist/data/Properties.d.ts +2 -2
- package/dist/data/Properties.d.ts.map +1 -1
- package/dist/data/RadialGauge.d.ts +2 -2
- package/dist/data/RadialGauge.d.ts.map +1 -1
- package/dist/data/SchemaViewer.d.ts +4 -4
- package/dist/data/SchemaViewer.d.ts.map +1 -1
- package/dist/data/SelectionActionBar.cjs +7 -7
- package/dist/data/SelectionActionBar.cjs.map +1 -1
- package/dist/data/SelectionActionBar.d.ts +1 -1
- package/dist/data/SelectionActionBar.d.ts.map +1 -1
- package/dist/data/SelectionActionBar.js +7 -7
- package/dist/data/SelectionActionBar.js.map +1 -1
- package/dist/data/ServerTimingBadge.d.ts +1 -1
- package/dist/data/ServerTimingBadge.d.ts.map +1 -1
- package/dist/data/SignedDeltaBar.d.ts +1 -1
- package/dist/data/SignedDeltaBar.d.ts.map +1 -1
- package/dist/data/SortableHeader.d.ts +2 -2
- package/dist/data/SortableHeader.d.ts.map +1 -1
- package/dist/data/StatStrip.d.ts +2 -2
- package/dist/data/StatStrip.d.ts.map +1 -1
- package/dist/data/StatusBreakdown.d.ts +3 -3
- package/dist/data/StatusBreakdown.d.ts.map +1 -1
- package/dist/data/TabButton.d.ts +2 -2
- package/dist/data/TabButton.d.ts.map +1 -1
- package/dist/data/TaskExecDetails.d.ts +2 -2
- package/dist/data/TaskExecDetails.d.ts.map +1 -1
- package/dist/data/TaskManager.d.ts +1 -1
- package/dist/data/TaskManager.d.ts.map +1 -1
- package/dist/data/TaskManagerButton.d.ts +1 -1
- package/dist/data/TaskManagerButton.d.ts.map +1 -1
- package/dist/data/TaskProcessDetails.d.ts +1 -1
- package/dist/data/TaskProcessDetails.d.ts.map +1 -1
- package/dist/data/TaskProgress.d.ts +1 -1
- package/dist/data/TaskProgress.d.ts.map +1 -1
- package/dist/data/Timeline.d.ts +2 -2
- package/dist/data/Timeline.d.ts.map +1 -1
- package/dist/data/TimeseriesCoreBars.d.ts +1 -1
- package/dist/data/TimeseriesCoreBars.d.ts.map +1 -1
- package/dist/data/TimeseriesGauge.d.ts +1 -1
- package/dist/data/TimeseriesGauge.d.ts.map +1 -1
- package/dist/data/TimeseriesPanel.d.ts +1 -1
- package/dist/data/TimeseriesPanel.d.ts.map +1 -1
- package/dist/data/Tree.d.ts +2 -2
- package/dist/data/Tree.d.ts.map +1 -1
- package/dist/data/TreeGroupHeader.d.ts +2 -2
- package/dist/data/TreeGroupHeader.d.ts.map +1 -1
- package/dist/data/TreeNode.d.ts +2 -2
- package/dist/data/TreeNode.d.ts.map +1 -1
- package/dist/data/Version.d.ts +3 -3
- package/dist/data/WorkloadCard.d.ts +1 -1
- package/dist/data/WorkloadCard.d.ts.map +1 -1
- package/dist/data/ai/AdvancedChatConfig.d.ts +1 -1
- package/dist/data/ai/AdvancedChatConfig.d.ts.map +1 -1
- package/dist/data/ai/AdvancedCostsPanel.d.ts +1 -1
- package/dist/data/ai/AdvancedCostsPanel.d.ts.map +1 -1
- package/dist/data/ai/ChatButton.d.ts +1 -1
- package/dist/data/ai/ChatButton.d.ts.map +1 -1
- package/dist/data/ai/ChatFab.d.ts +1 -1
- package/dist/data/ai/ChatFab.d.ts.map +1 -1
- package/dist/data/ai/ChatWindow.d.ts +2 -2
- package/dist/data/ai/ChatWindow.d.ts.map +1 -1
- package/dist/data/ai/ChatWindow.test-utils.d.ts +1 -1
- package/dist/data/ai/ChatWindow.thread-status.d.ts +1 -1
- package/dist/data/ai/ChatWindow.thread-status.d.ts.map +1 -1
- package/dist/data/ai/ChatWindow.types.d.ts +1 -1
- package/dist/data/ai/ChatWindowManager.d.ts +2 -2
- package/dist/data/ai/ChatWindowManager.d.ts.map +1 -1
- package/dist/data/ai/ContextBadges.d.ts +2 -2
- package/dist/data/ai/ContextBadges.d.ts.map +1 -1
- package/dist/data/ai/PolicyTree.d.ts +2 -2
- package/dist/data/ai/PolicyTree.d.ts.map +1 -1
- package/dist/data/ai/PromptCatalog/PromptCatalogTable.d.ts +1 -1
- package/dist/data/ai/PromptCatalog/PromptCatalogTable.d.ts.map +1 -1
- package/dist/data/ai/PromptCatalog/PromptLayerStrip.d.ts +1 -1
- package/dist/data/ai/PromptCatalog/PromptLayerStrip.d.ts.map +1 -1
- package/dist/data/ai/PromptCatalog/PromptPage.d.ts +1 -1
- package/dist/data/ai/PromptCatalog/PromptPage.d.ts.map +1 -1
- package/dist/data/ai/PromptCatalog/PromptPageEditor.d.ts +1 -1
- package/dist/data/ai/PromptCatalog/PromptPageEditor.d.ts.map +1 -1
- package/dist/data/ai/PromptCatalog/PromptPageHeader.d.ts +2 -2
- package/dist/data/ai/PromptCatalog/PromptPageHeader.d.ts.map +1 -1
- package/dist/data/ai/PromptCatalog/PromptPagePreview.d.ts +1 -1
- package/dist/data/ai/PromptCatalog/PromptPagePreview.d.ts.map +1 -1
- package/dist/data/ai/PromptCatalog/PromptPageSaveBar.d.ts +1 -1
- package/dist/data/ai/PromptCatalog/PromptPageSaveBar.d.ts.map +1 -1
- package/dist/data/ai/PromptCatalog/PromptSourceBadge.d.ts +1 -1
- package/dist/data/ai/PromptCatalog/PromptSourceBadge.d.ts.map +1 -1
- package/dist/data/ai/PromptCatalog/types.d.ts +1 -1
- package/dist/data/ai/PromptPicker/PromptPicker.d.ts +2 -2
- package/dist/data/ai/PromptPicker/PromptPicker.d.ts.map +1 -1
- package/dist/data/ai/PromptPicker/PromptSourceRepair.d.ts +1 -1
- package/dist/data/ai/PromptPicker/PromptSourceRepair.d.ts.map +1 -1
- package/dist/data/ai/PromptRunEditor/index.d.ts +2 -2
- package/dist/data/ai/PromptRunEditor/index.d.ts.map +1 -1
- package/dist/data/ai/RuntimeModePicker.d.ts +1 -1
- package/dist/data/ai/RuntimeModePicker.d.ts.map +1 -1
- package/dist/data/ai/SandboxConnectionsSection.d.ts +1 -1
- package/dist/data/ai/SandboxConnectionsSection.d.ts.map +1 -1
- package/dist/data/ai/SandboxCreateWizard.d.ts +1 -1
- package/dist/data/ai/SandboxCreateWizard.d.ts.map +1 -1
- package/dist/data/ai/SessionChatComposer.d.ts +2 -2
- package/dist/data/ai/SessionChatComposer.d.ts.map +1 -1
- package/dist/data/ai/SessionInspector.d.ts +2 -2
- 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.files.d.ts.map +1 -1
- package/dist/data/ai/SessionInspector.hierarchy.d.ts +2 -2
- package/dist/data/ai/SessionInspector.hierarchy.d.ts.map +1 -1
- package/dist/data/ai/SessionInspector.panels.d.ts +1 -1
- package/dist/data/ai/SessionInspector.panels.d.ts.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.summary.d.ts +2 -2
- package/dist/data/ai/SessionInspector.summary.d.ts.map +1 -1
- package/dist/data/ai/SessionInspector.transcript.d.ts +1 -1
- package/dist/data/ai/SessionInspector.transcript.d.ts.map +1 -1
- package/dist/data/ai/SessionInspector.turns.d.ts +2 -2
- package/dist/data/ai/SessionInspector.turns.d.ts.map +1 -1
- package/dist/data/ai/SessionViewer.d.ts +2 -2
- package/dist/data/ai/SessionViewer.d.ts.map +1 -1
- package/dist/data/ai/SessionViewer.header.d.ts +2 -2
- package/dist/data/ai/SessionViewer.header.d.ts.map +1 -1
- package/dist/data/ai/SessionViewer.row-metadata.d.ts +3 -3
- package/dist/data/ai/SessionViewer.row-metadata.d.ts.map +1 -1
- package/dist/data/ai/SessionViewer.rows.d.ts +3 -3
- package/dist/data/ai/SessionViewer.rows.d.ts.map +1 -1
- package/dist/data/ai/SessionViewer.tool-details.d.ts +5 -5
- package/dist/data/ai/SessionViewer.tool-details.d.ts.map +1 -1
- package/dist/data/ai/SessionViewer.tool-row.d.ts +1 -1
- package/dist/data/ai/SessionViewer.tool-row.d.ts.map +1 -1
- package/dist/data/ai/SessionViewerMenu.d.ts +1 -1
- package/dist/data/ai/SessionViewerMenu.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/CLIArgsSection.d.ts +1 -1
- package/dist/data/ai/SpecRuntimeEditor/CLIArgsSection.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/CommitSection.d.ts +1 -1
- package/dist/data/ai/SpecRuntimeEditor/CommitSection.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/EnvironmentSection.d.ts +2 -2
- package/dist/data/ai/SpecRuntimeEditor/EnvironmentSection.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/Footer.d.ts +2 -2
- package/dist/data/ai/SpecRuntimeEditor/Footer.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/ModelContextAdvanced.d.ts +1 -1
- package/dist/data/ai/SpecRuntimeEditor/ModelContextAdvanced.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/ModelSection.d.ts +2 -2
- package/dist/data/ai/SpecRuntimeEditor/ModelSection.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PermissionModeField.d.ts +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PermissionModeField.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PermissionPolicyList.d.ts +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PermissionPolicyList.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.d.ts +2 -2
- package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PresetCards.d.ts +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PresetCards.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PromptSection.d.ts +2 -2
- package/dist/data/ai/SpecRuntimeEditor/PromptSection.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/Rail.d.ts +2 -2
- package/dist/data/ai/SpecRuntimeEditor/Rail.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/SandboxSection.d.ts +1 -1
- package/dist/data/ai/SpecRuntimeEditor/SandboxSection.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/SectionCard.d.ts +2 -2
- package/dist/data/ai/SpecRuntimeEditor/SectionCard.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/VerifySection.d.ts +1 -1
- package/dist/data/ai/SpecRuntimeEditor/VerifySection.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.d.ts +1 -1
- package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/fields.d.ts +12 -12
- package/dist/data/ai/SpecRuntimeEditor/fields.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/index.d.ts +2 -2
- package/dist/data/ai/SpecRuntimeEditor/index.d.ts.map +1 -1
- package/dist/data/ai/ThreadPicker.d.ts +1 -1
- package/dist/data/ai/ThreadPicker.d.ts.map +1 -1
- package/dist/data/ai/ToolPreferences.d.ts +1 -1
- package/dist/data/ai/ToolPreferences.d.ts.map +1 -1
- package/dist/data/ai/ToolPreferencesList.d.ts +2 -2
- package/dist/data/ai/ToolPreferencesList.d.ts.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.d.ts +1 -1
- package/dist/data/ai/ToolSchemaBrowser.d.ts.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.detail.d.ts +1 -1
- package/dist/data/ai/ToolSchemaBrowser.detail.d.ts.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.directory-header.d.ts +1 -1
- package/dist/data/ai/ToolSchemaBrowser.directory-header.d.ts.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.d.ts +1 -1
- package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.d.ts.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.sidebar.d.ts +1 -1
- package/dist/data/ai/ToolSchemaBrowser.sidebar.d.ts.map +1 -1
- package/dist/data/ai/chat-window-context.d.ts +1 -1
- package/dist/data/ai/use-session-scroll.d.ts +1 -1
- package/dist/data/cache-browser/CacheBrowser.d.ts +1 -1
- package/dist/data/cache-browser/CacheBrowser.d.ts.map +1 -1
- package/dist/data/cache-browser/CacheDetailPanel.d.ts +1 -1
- package/dist/data/cache-browser/CacheDetailPanel.d.ts.map +1 -1
- package/dist/data/cache-browser/CacheStatsOverview.d.ts +1 -1
- package/dist/data/cache-browser/CacheStatsOverview.d.ts.map +1 -1
- package/dist/data/cache-browser/CacheTree.d.ts +2 -2
- package/dist/data/cache-browser/CacheTree.d.ts.map +1 -1
- package/dist/data/cache-browser/CacheValue.d.ts +1 -1
- package/dist/data/cache-browser/CacheValue.d.ts.map +1 -1
- package/dist/data/cache-browser/adapter.d.ts +1 -1
- package/dist/data/cells/CellFilterActions.d.ts +2 -2
- package/dist/data/cells/CellFilterActions.d.ts.map +1 -1
- package/dist/data/cells/EntityCell.d.ts +2 -2
- package/dist/data/cells/EntityCell.d.ts.map +1 -1
- package/dist/data/cells/StatusDot.d.ts +1 -1
- package/dist/data/cells/StatusDot.d.ts.map +1 -1
- package/dist/data/cells/TagList.d.ts +3 -3
- package/dist/data/cells/TagList.d.ts.map +1 -1
- package/dist/data/cells/Timestamp.d.ts +1 -1
- package/dist/data/cells/Timestamp.d.ts.map +1 -1
- package/dist/data/cells/tag-utils.d.ts +1 -1
- package/dist/data/chat/Attachment.d.ts +2 -2
- package/dist/data/chat/Attachment.d.ts.map +1 -1
- package/dist/data/chat/Chat.d.ts +1 -1
- package/dist/data/chat/Chat.d.ts.map +1 -1
- package/dist/data/chat/ChatRuntimeToolbar.d.ts +1 -1
- package/dist/data/chat/ChatRuntimeToolbar.d.ts.map +1 -1
- package/dist/data/chat/ContextMeter.d.ts +1 -1
- package/dist/data/chat/ContextMeter.d.ts.map +1 -1
- package/dist/data/chat/Conversation.d.ts +1 -1
- package/dist/data/chat/Conversation.d.ts.map +1 -1
- package/dist/data/chat/Message.d.ts +1 -1
- package/dist/data/chat/Message.d.ts.map +1 -1
- package/dist/data/chat/MessageActions.d.ts +1 -1
- package/dist/data/chat/MessageActions.d.ts.map +1 -1
- package/dist/data/chat/ModelSelector.d.ts +5 -5
- package/dist/data/chat/ModelSelector.d.ts.map +1 -1
- package/dist/data/chat/PromptInput.d.ts +2 -2
- package/dist/data/chat/PromptInput.d.ts.map +1 -1
- package/dist/data/chat/Reasoning.d.ts +1 -1
- package/dist/data/chat/Reasoning.d.ts.map +1 -1
- package/dist/data/chat/Suggestion.d.ts +1 -1
- package/dist/data/chat/Suggestion.d.ts.map +1 -1
- package/dist/data/chat/ToolCall.d.ts +1 -1
- package/dist/data/chat/ToolCall.d.ts.map +1 -1
- package/dist/data/chat/tool-render/ToolArgs.d.ts +1 -1
- package/dist/data/chat/tool-render/ToolParams.d.ts +1 -1
- 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/known-tool-views.d.ts +1 -1
- package/dist/data/chat/tool-render/summary.d.ts +1 -1
- package/dist/data/chat/types.d.ts +1 -1
- package/dist/data/clicky-export/ClickyExportDialog.d.ts +1 -1
- package/dist/data/clicky-export/ClickyExportDialog.d.ts.map +1 -1
- package/dist/data/clicky-export/useClickyExport.d.ts +1 -1
- package/dist/data/code-block-actions.d.ts +1 -1
- package/dist/data/code-block-actions.d.ts.map +1 -1
- package/dist/data/data-table-server-filters.d.ts +1 -1
- package/dist/data/diagnostics/DiagnosticsDetailPanel.d.ts +2 -2
- package/dist/data/diagnostics/DiagnosticsDetailPanel.d.ts.map +1 -1
- package/dist/data/diagnostics/DiagnosticsTree.d.ts +1 -1
- package/dist/data/diagnostics/DiagnosticsTree.d.ts.map +1 -1
- package/dist/data/diagnostics/ErrorDetails.d.ts +4 -4
- package/dist/data/diagnostics/ErrorDetails.d.ts.map +1 -1
- package/dist/data/diagnostics/FrameSourceWindow.d.ts +1 -1
- package/dist/data/diagnostics/FrameSourceWindow.d.ts.map +1 -1
- package/dist/data/diagnostics/GoroutineCard.d.ts +1 -1
- package/dist/data/diagnostics/GoroutineCard.d.ts.map +1 -1
- package/dist/data/diagnostics/JvmStackTrace.d.ts +1 -1
- package/dist/data/diagnostics/JvmStackTrace.d.ts.map +1 -1
- package/dist/data/diagnostics/RenderedStackTrace.d.ts +1 -1
- package/dist/data/diagnostics/RenderedStackTrace.d.ts.map +1 -1
- package/dist/data/diagnostics/StackFrameRow.d.ts +2 -2
- package/dist/data/diagnostics/StackFrameRow.d.ts.map +1 -1
- package/dist/data/diagnostics/ThreadCard.d.ts +1 -1
- package/dist/data/diagnostics/ThreadCard.d.ts.map +1 -1
- package/dist/data/git/GitChangeList.d.ts +5 -5
- package/dist/data/git/GitChangeList.d.ts.map +1 -1
- package/dist/data/har/HarPanel.d.ts +1 -1
- package/dist/data/har/HarPanel.d.ts.map +1 -1
- package/dist/data/icon-fallback.d.ts +1 -1
- package/dist/data/query-browser/QueryBrowser.d.ts +1 -1
- package/dist/data/query-browser/QueryBrowser.d.ts.map +1 -1
- package/dist/data/query-browser/QueryBrowser.types.d.ts +1 -1
- package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.d.ts +1 -1
- package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.d.ts.map +1 -1
- package/dist/data/query-browser/QueryBrowserResults.d.ts +1 -1
- package/dist/data/query-browser/QueryBrowserResults.d.ts.map +1 -1
- package/dist/data/runtime/ProviderStatusPanel.d.ts +1 -1
- package/dist/data/runtime/ProviderStatusPanel.d.ts.map +1 -1
- package/dist/data/runtime/RuntimeBar.d.ts +1 -1
- package/dist/data/runtime/RuntimeBar.d.ts.map +1 -1
- package/dist/data/runtime/RuntimeBarCombo.d.ts +1 -1
- package/dist/data/runtime/RuntimeBarCombo.d.ts.map +1 -1
- package/dist/data/runtime/RuntimeBarSegments.d.ts +1 -1
- package/dist/data/runtime/RuntimeBarSegments.d.ts.map +1 -1
- package/dist/data/test-runner/TestDetailPanel.d.ts +1 -1
- package/dist/data/test-runner/TestDetailPanel.d.ts.map +1 -1
- package/dist/data/test-runner/TestFailureDetail.d.ts +3 -3
- package/dist/data/test-runner/TestFailureDetail.d.ts.map +1 -1
- package/dist/data/test-runner/TestFilterBar.d.ts +1 -1
- package/dist/data/test-runner/TestFilterBar.d.ts.map +1 -1
- package/dist/data/test-runner/TestRunSummary.d.ts +1 -1
- package/dist/data/test-runner/TestRunSummary.d.ts.map +1 -1
- package/dist/data/test-runner/TestRunner.d.ts +2 -2
- package/dist/data/test-runner/TestRunner.d.ts.map +1 -1
- package/dist/data/test-runner/TestTree.d.ts +1 -1
- package/dist/data/test-runner/TestTree.d.ts.map +1 -1
- package/dist/data/test-runner/TestTreeNode.cjs +16 -11
- package/dist/data/test-runner/TestTreeNode.cjs.map +1 -1
- package/dist/data/test-runner/TestTreeNode.d.ts +1 -1
- package/dist/data/test-runner/TestTreeNode.d.ts.map +1 -1
- package/dist/data/test-runner/TestTreeNode.js +16 -11
- package/dist/data/test-runner/TestTreeNode.js.map +1 -1
- package/dist/data/test-runner/adapter.d.ts +1 -1
- package/dist/data/test-runner/context.d.ts +1 -1
- package/dist/data/version-info.cjs +3 -3
- package/dist/data/version-info.js +3 -3
- package/dist/devtools/DebugConsole.d.ts +1 -1
- package/dist/devtools/DebugConsole.d.ts.map +1 -1
- package/dist/devtools/DebugConsoleButton.d.ts +1 -1
- package/dist/devtools/DebugConsoleButton.d.ts.map +1 -1
- package/dist/devtools/DebugConsoleDock.d.ts +1 -1
- package/dist/devtools/DebugConsoleDock.d.ts.map +1 -1
- package/dist/devtools/ExecutionDetail.d.ts +1 -1
- package/dist/devtools/ExecutionDetail.d.ts.map +1 -1
- package/dist/devtools/tabs/ConsoleTab.d.ts +1 -1
- package/dist/devtools/tabs/ConsoleTab.d.ts.map +1 -1
- package/dist/devtools/tabs/InspectionCaches.d.ts +1 -1
- package/dist/devtools/tabs/InspectionCaches.d.ts.map +1 -1
- package/dist/devtools/tabs/InspectionTab.d.ts +1 -1
- package/dist/devtools/tabs/InspectionTab.d.ts.map +1 -1
- package/dist/devtools/tabs/NetworkTab.d.ts +1 -1
- package/dist/devtools/tabs/NetworkTab.d.ts.map +1 -1
- package/dist/devtools/tabs/QueriesTab.d.ts +1 -1
- package/dist/devtools/tabs/QueriesTab.d.ts.map +1 -1
- package/dist/hooks/density-provider.d.ts +3 -3
- package/dist/hooks/density-provider.d.ts.map +1 -1
- package/dist/hooks/theme-provider.d.ts +2 -2
- package/dist/hooks/theme-provider.d.ts.map +1 -1
- package/dist/hooks/use-density.d.ts +1 -1
- package/dist/hooks/use-theme.d.ts +1 -1
- package/dist/icons/registry.d.ts +1 -1
- package/dist/icons/types.d.ts +1 -1
- package/dist/layout/AppShell.cjs.map +1 -1
- package/dist/layout/AppShell.d.ts +10 -2
- package/dist/layout/AppShell.d.ts.map +1 -1
- package/dist/layout/AppShell.debug.d.ts +1 -1
- package/dist/layout/AppShell.debug.d.ts.map +1 -1
- package/dist/layout/AppShell.js.map +1 -1
- package/dist/layout/AppShell.nav.cjs +133 -76
- package/dist/layout/AppShell.nav.cjs.map +1 -1
- package/dist/layout/AppShell.nav.d.ts +1 -1
- package/dist/layout/AppShell.nav.d.ts.map +1 -1
- package/dist/layout/AppShell.nav.drag.cjs +86 -0
- package/dist/layout/AppShell.nav.drag.cjs.map +1 -0
- package/dist/layout/AppShell.nav.drag.d.ts +52 -0
- package/dist/layout/AppShell.nav.drag.d.ts.map +1 -0
- package/dist/layout/AppShell.nav.drag.js +86 -0
- package/dist/layout/AppShell.nav.drag.js.map +1 -0
- package/dist/layout/AppShell.nav.js +133 -76
- package/dist/layout/AppShell.nav.js.map +1 -1
- package/dist/layout/AppSidebar.d.ts +3 -3
- package/dist/layout/AppSidebar.d.ts.map +1 -1
- package/dist/layout/Panel.d.ts +2 -2
- package/dist/layout/Panel.d.ts.map +1 -1
- package/dist/layout/PanelFrame.d.ts +2 -2
- package/dist/layout/PanelFrame.d.ts.map +1 -1
- package/dist/layout/Section.d.ts +3 -3
- package/dist/layout/Section.d.ts.map +1 -1
- package/dist/layout/SplitPane.d.ts +2 -2
- package/dist/layout/SplitPane.d.ts.map +1 -1
- package/dist/layout/Tabs.d.ts +2 -2
- package/dist/layout/Tabs.d.ts.map +1 -1
- package/dist/layout/Workspace.d.ts +2 -2
- package/dist/layout/Workspace.d.ts.map +1 -1
- package/dist/layout/Workspace.model.d.ts +1 -1
- package/dist/layout/Workspace.regions.d.ts +2 -2
- package/dist/layout/Workspace.regions.d.ts.map +1 -1
- package/dist/{components/combobox-utils.cjs → lib/combobox-values.cjs} +1 -5
- package/dist/lib/combobox-values.cjs.map +1 -0
- package/dist/{components/combobox-utils.d.ts → lib/combobox-values.d.ts} +3 -13
- package/dist/lib/combobox-values.d.ts.map +1 -0
- package/dist/{components/combobox-utils.js → lib/combobox-values.js} +1 -5
- package/dist/lib/combobox-values.js.map +1 -0
- package/dist/lib/combobox.cjs +93 -0
- package/dist/lib/combobox.cjs.map +1 -0
- package/dist/lib/combobox.d.ts +20 -0
- package/dist/lib/combobox.d.ts.map +1 -0
- package/dist/lib/combobox.js +93 -0
- package/dist/lib/combobox.js.map +1 -0
- package/dist/monaco/MonacoEditor.d.ts +1 -1
- package/dist/monaco/MonacoEditor.d.ts.map +1 -1
- package/dist/monaco/MonacoProvider.d.ts +1 -1
- package/dist/monaco/MonacoProvider.d.ts.map +1 -1
- package/dist/monaco/MonacoSchemaEditor.cjs +4 -4
- package/dist/monaco/MonacoSchemaEditor.cjs.map +1 -1
- package/dist/monaco/MonacoSchemaEditor.d.ts +1 -1
- package/dist/monaco/MonacoSchemaEditor.d.ts.map +1 -1
- package/dist/monaco/MonacoSchemaEditor.js +4 -4
- package/dist/monaco/MonacoSchemaEditor.js.map +1 -1
- package/dist/monaco/types.d.ts +1 -1
- package/dist/monaco/use-monaco-worker.d.ts +1 -1
- package/dist/overlay/CellActions.d.ts +3 -3
- package/dist/overlay/CellActions.d.ts.map +1 -1
- package/dist/overlay/CommandPalette.d.ts +2 -2
- package/dist/overlay/CommandPalette.model.d.ts +1 -1
- package/dist/overlay/CommandPaletteList.cjs.map +1 -1
- package/dist/overlay/CommandPaletteList.d.ts +3 -3
- package/dist/overlay/CommandPaletteList.d.ts.map +1 -1
- package/dist/overlay/CommandPaletteList.js.map +1 -1
- package/dist/overlay/CommandPaletteTrigger.d.ts +1 -1
- package/dist/overlay/CommandPaletteTrigger.d.ts.map +1 -1
- package/dist/overlay/ContextMenu.d.ts +1 -1
- package/dist/overlay/ContextMenu.d.ts.map +1 -1
- package/dist/overlay/DropdownMenu.d.ts +2 -2
- package/dist/overlay/DropdownMenu.d.ts.map +1 -1
- package/dist/overlay/DropdownMenuSubmenu.d.ts +1 -1
- package/dist/overlay/DropdownMenuSubmenu.d.ts.map +1 -1
- package/dist/overlay/HoverCard.d.ts +2 -2
- package/dist/overlay/HoverCard.d.ts.map +1 -1
- package/dist/overlay/Modal.cjs +105 -18
- package/dist/overlay/Modal.cjs.map +1 -1
- package/dist/overlay/Modal.d.ts +2 -2
- package/dist/overlay/Modal.d.ts.map +1 -1
- package/dist/overlay/Modal.js +105 -18
- package/dist/overlay/Modal.js.map +1 -1
- package/dist/overlay/Toast.d.ts +2 -2
- package/dist/overlay/Toast.d.ts.map +1 -1
- package/dist/overlay/Tour.d.ts +1 -1
- package/dist/overlay/Tour.d.ts.map +1 -1
- package/dist/overlay/TourCard.d.ts +2 -2
- package/dist/overlay/TourCard.d.ts.map +1 -1
- package/dist/overlay/TourProvider.d.ts +2 -2
- package/dist/overlay/TourProvider.d.ts.map +1 -1
- package/dist/overlay/TourSpotlight.d.ts +1 -1
- package/dist/overlay/TourSpotlight.d.ts.map +1 -1
- package/dist/overlay/dropdownMenuContext.d.ts +1 -1
- package/dist/overlay/toast-context.d.ts +2 -2
- package/dist/overlay/tour-context.d.ts +1 -1
- package/dist/overlay/tour-types.d.ts +1 -1
- package/dist/profiles/cel/celEditor.d.ts +4 -4
- package/dist/profiles/cel/celEditor.d.ts.map +1 -1
- package/dist/profiles/connections/catalogTree.d.ts +1 -1
- package/dist/profiles/connections/catalogTree.d.ts.map +1 -1
- package/dist/profiles/connections/connectionBrowserModel.d.ts +1 -1
- package/dist/profiles/connections/connectionQueryWorkspace.d.ts +2 -2
- package/dist/profiles/connections/connectionQueryWorkspace.d.ts.map +1 -1
- package/dist/profiles/connections/inspectionStatus.d.ts +1 -1
- package/dist/profiles/connections/inspectionStatus.d.ts.map +1 -1
- package/dist/profiles/editor/profileBuilder.d.ts +3 -3
- package/dist/profiles/editor/profileBuilder.d.ts.map +1 -1
- package/dist/profiles/editor/profileBuilderWorkspace.d.ts +1 -1
- package/dist/profiles/editor/profileBuilderWorkspace.d.ts.map +1 -1
- package/dist/profiles/editor/profileEditor.d.ts +1 -1
- package/dist/profiles/editor/profileEditor.d.ts.map +1 -1
- package/dist/profiles/editor/profileEditorPreview.d.ts +1 -1
- package/dist/profiles/editor/profileEditorPreview.d.ts.map +1 -1
- package/dist/profiles/editor/profileEditorRail.d.ts +1 -1
- package/dist/profiles/editor/profileEditorRail.d.ts.map +1 -1
- package/dist/profiles/editor/profileEditorRaw.d.ts +1 -1
- package/dist/profiles/editor/profileEditorRaw.d.ts.map +1 -1
- package/dist/profiles/editor/profileEditorSections.d.ts +3 -3
- package/dist/profiles/editor/profileEditorSections.d.ts.map +1 -1
- package/dist/profiles/elasticsearch/esParamMappingPill.d.ts +1 -1
- package/dist/profiles/elasticsearch/esParamMappingPill.d.ts.map +1 -1
- package/dist/profiles/elasticsearch/esParamOperandExtension.d.ts +1 -1
- package/dist/profiles/elasticsearch/esQueryBuilder.d.ts +2 -2
- package/dist/profiles/elasticsearch/esQueryBuilder.d.ts.map +1 -1
- package/dist/profiles/elasticsearch/esQueryClauseGroup.d.ts +1 -1
- package/dist/profiles/elasticsearch/esQueryClauseGroup.d.ts.map +1 -1
- package/dist/profiles/elasticsearch/esQueryConditionRow.d.ts +1 -1
- package/dist/profiles/elasticsearch/esQueryConditionRow.d.ts.map +1 -1
- package/dist/profiles/elasticsearch/esQueryOperandEditors.d.ts +2 -2
- package/dist/profiles/elasticsearch/esQueryOperandEditors.d.ts.map +1 -1
- package/dist/profiles/elasticsearch/esQueryOutputEditor.d.ts +1 -1
- package/dist/profiles/elasticsearch/esQueryOutputEditor.d.ts.map +1 -1
- package/dist/profiles/elasticsearch/esQueryPreview.d.ts +1 -1
- package/dist/profiles/elasticsearch/esQueryPreview.d.ts.map +1 -1
- package/dist/profiles/elasticsearch/esQuerySortEditor.d.ts +1 -1
- package/dist/profiles/elasticsearch/esQuerySortEditor.d.ts.map +1 -1
- package/dist/profiles/elasticsearch/esValueCombobox.d.ts +2 -2
- package/dist/profiles/elasticsearch/esValueCombobox.d.ts.map +1 -1
- package/dist/profiles/fields/profileColumnPicker.d.ts +1 -1
- package/dist/profiles/fields/profileColumnPicker.d.ts.map +1 -1
- package/dist/profiles/fields/profileFieldControls.d.ts +3 -3
- package/dist/profiles/fields/profileFieldControls.d.ts.map +1 -1
- package/dist/profiles/fields/profileFieldEditor.d.ts +3 -3
- package/dist/profiles/fields/profileFieldEditor.d.ts.map +1 -1
- package/dist/profiles/fields/profileFieldFilterEditor.d.ts +1 -1
- package/dist/profiles/fields/profileFieldFilterEditor.d.ts.map +1 -1
- package/dist/profiles/fields/profileFieldIcons.d.ts +1 -1
- package/dist/profiles/fields/profileFieldList.d.ts +2 -2
- package/dist/profiles/fields/profileFieldList.d.ts.map +1 -1
- package/dist/profiles/fields/profileFieldManager.d.ts +1 -1
- package/dist/profiles/fields/profileFieldManager.d.ts.map +1 -1
- package/dist/profiles/fields/profileFieldState.d.ts +1 -1
- package/dist/profiles/processor/processorPipeline.d.ts +1 -1
- package/dist/profiles/processor/processorPipeline.d.ts.map +1 -1
- package/dist/profiles/processor/processorPipelineEditor.d.ts +1 -1
- package/dist/profiles/processor/processorPipelineEditor.d.ts.map +1 -1
- package/dist/profiles/processor/processorPreviewTable.d.ts +1 -1
- package/dist/profiles/processor/processorPreviewTable.d.ts.map +1 -1
- package/dist/profiles/query/jsonPathSample.d.ts +1 -1
- package/dist/profiles/query/jsonPathSampleRow.d.ts +2 -2
- package/dist/profiles/query/jsonPathSampleRow.d.ts.map +1 -1
- package/dist/profiles/query/kubernetesWorkloadTargetPicker.d.ts +1 -1
- package/dist/profiles/query/kubernetesWorkloadTargetPicker.d.ts.map +1 -1
- package/dist/profiles/query/prometheusResults.d.ts +2 -2
- package/dist/profiles/query/prometheusResults.d.ts.map +1 -1
- package/dist/profiles/query/queryRowLimits.d.ts +1 -1
- package/dist/profiles/query/queryRowLimits.d.ts.map +1 -1
- package/dist/profiles/query/queryTargetPicker.d.ts +1 -1
- package/dist/profiles/query/queryTargetPicker.d.ts.map +1 -1
- package/dist/profiles/wizard/profileWizard.d.ts +1 -1
- package/dist/profiles/wizard/profileWizard.d.ts.map +1 -1
- package/dist/profiles/wizard/profileWizardQueryStep.d.ts +1 -1
- package/dist/profiles/wizard/profileWizardQueryStep.d.ts.map +1 -1
- package/dist/profiles/wizard/profileWizardSteps.d.ts +4 -4
- package/dist/profiles/wizard/profileWizardSteps.d.ts.map +1 -1
- package/dist/rpc/ChatLayer.d.ts +1 -1
- package/dist/rpc/ChatLayer.d.ts.map +1 -1
- package/dist/rpc/CommandForm.d.ts +1 -1
- package/dist/rpc/CommandForm.d.ts.map +1 -1
- package/dist/rpc/CommandOutput.d.ts +1 -1
- package/dist/rpc/CommandOutput.d.ts.map +1 -1
- package/dist/rpc/EndpointList.d.ts +2 -2
- package/dist/rpc/EndpointList.d.ts.map +1 -1
- package/dist/rpc/EntityExplorerApp.d.ts +2 -2
- package/dist/rpc/EntityExplorerApp.d.ts.map +1 -1
- package/dist/rpc/ExecutionResult.d.ts +1 -1
- package/dist/rpc/ExecutionResult.d.ts.map +1 -1
- package/dist/rpc/FilterForm.d.ts +1 -1
- package/dist/rpc/FilterForm.d.ts.map +1 -1
- package/dist/rpc/FilterFormFields.d.ts +1 -1
- package/dist/rpc/FilterFormFields.d.ts.map +1 -1
- package/dist/rpc/InlineError.d.ts +1 -1
- package/dist/rpc/InlineError.d.ts.map +1 -1
- package/dist/rpc/OperationActionBar.cjs +17 -5
- package/dist/rpc/OperationActionBar.cjs.map +1 -1
- package/dist/rpc/OperationActionBar.d.ts +3 -6
- package/dist/rpc/OperationActionBar.d.ts.map +1 -1
- package/dist/rpc/OperationActionBar.js +17 -5
- package/dist/rpc/OperationActionBar.js.map +1 -1
- package/dist/rpc/OperationActionDialog.d.ts +1 -1
- package/dist/rpc/OperationActionDialog.d.ts.map +1 -1
- package/dist/rpc/OperationCatalog.cjs +65 -5
- package/dist/rpc/OperationCatalog.cjs.map +1 -1
- package/dist/rpc/OperationCatalog.d.ts +4 -2
- package/dist/rpc/OperationCatalog.d.ts.map +1 -1
- package/dist/rpc/OperationCatalog.js +66 -6
- package/dist/rpc/OperationCatalog.js.map +1 -1
- package/dist/rpc/OperationCatalogActions.cjs +38 -7
- package/dist/rpc/OperationCatalogActions.cjs.map +1 -1
- package/dist/rpc/OperationCatalogActions.d.ts +6 -1
- package/dist/rpc/OperationCatalogActions.d.ts.map +1 -1
- package/dist/rpc/OperationCatalogActions.js +38 -7
- package/dist/rpc/OperationCatalogActions.js.map +1 -1
- package/dist/rpc/OperationCommandPage.d.ts +1 -1
- package/dist/rpc/OperationCommandPage.d.ts.map +1 -1
- package/dist/rpc/OperationEntityContextPicker.d.ts +2 -2
- package/dist/rpc/OperationEntityContextPicker.d.ts.map +1 -1
- package/dist/rpc/OperationEntityPage.d.ts +2 -2
- package/dist/rpc/OperationEntityPage.d.ts.map +1 -1
- package/dist/rpc/OperationResultView.d.ts +2 -2
- package/dist/rpc/OperationResultView.d.ts.map +1 -1
- package/dist/rpc/RouterProvider.d.ts +2 -2
- package/dist/rpc/RouterProvider.d.ts.map +1 -1
- package/dist/rpc/SchemaActionForm.d.ts +2 -2
- package/dist/rpc/SchemaActionForm.d.ts.map +1 -1
- package/dist/rpc/actionIconMap.cjs +11 -0
- package/dist/rpc/actionIconMap.cjs.map +1 -0
- package/dist/rpc/actionIconMap.d.ts +3 -0
- package/dist/rpc/actionIconMap.d.ts.map +1 -0
- package/dist/rpc/actionIconMap.js +11 -0
- package/dist/rpc/actionIconMap.js.map +1 -0
- package/dist/rpc/formMetadata.d.ts +1 -1
- package/dist/rpc/operationErrorDiagnostics.d.ts +1 -1
- package/dist/rpc/operationErrorDiagnostics.d.ts.map +1 -1
- package/dist/rpc/router.d.ts +1 -1
- package/dist/rpc/rpc-story.fixtures.d.ts +1 -1
- package/dist/styles.css +1 -1
- package/package.json +3 -3
- package/dist/components/combobox-utils.cjs.map +0 -1
- package/dist/components/combobox-utils.d.ts.map +0 -1
- package/dist/components/combobox-utils.js.map +0 -1
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const react = require("react");
|
|
4
|
+
const NAV_DRAG_TYPE = "application/x-clicky-nav";
|
|
5
|
+
const NAV_DRAG_ROW_CLASS = "data-[nav-drag=source]:opacity-40 data-[nav-drop=over]:bg-sidebar-accent data-[nav-drop=over]:ring-1 data-[nav-drop=over]:ring-inset data-[nav-drop=over]:ring-sidebar-primary";
|
|
6
|
+
const NAV_DRAG_ZONE_CLASS = "data-[nav-drop=over]:rounded-md data-[nav-drop=over]:outline-1 data-[nav-drop=over]:outline-dashed data-[nav-drop=over]:outline-sidebar-primary";
|
|
7
|
+
function sameTarget(left, right) {
|
|
8
|
+
return left !== null && right !== void 0 && left.key === right.key && left.kind === right.kind;
|
|
9
|
+
}
|
|
10
|
+
function useNavDrag(drag) {
|
|
11
|
+
const sourceRef = react.useRef(null);
|
|
12
|
+
const [source, setSource] = react.useState(null);
|
|
13
|
+
const [over, setOver] = react.useState(null);
|
|
14
|
+
const reset = () => {
|
|
15
|
+
sourceRef.current = null;
|
|
16
|
+
setSource(null);
|
|
17
|
+
setOver(null);
|
|
18
|
+
};
|
|
19
|
+
const props = ({
|
|
20
|
+
drag: from,
|
|
21
|
+
drop: to
|
|
22
|
+
}) => {
|
|
23
|
+
var _a;
|
|
24
|
+
const identity = to ?? from;
|
|
25
|
+
if (!drag || !identity) return void 0;
|
|
26
|
+
const draggable = from !== void 0 && (((_a = drag.canDrag) == null ? void 0 : _a.call(drag, from)) ?? true);
|
|
27
|
+
const accepted = (target) => {
|
|
28
|
+
var _a2;
|
|
29
|
+
const dragged = sourceRef.current;
|
|
30
|
+
return dragged !== null && !sameTarget(dragged, target) && (((_a2 = drag.canDrop) == null ? void 0 : _a2.call(drag, dragged, target)) ?? true) ? dragged : null;
|
|
31
|
+
};
|
|
32
|
+
const enterOrOver = (target) => (event) => {
|
|
33
|
+
event.stopPropagation();
|
|
34
|
+
if (!accepted(target)) {
|
|
35
|
+
setOver(null);
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
event.preventDefault();
|
|
39
|
+
event.dataTransfer.dropEffect = "move";
|
|
40
|
+
setOver(target);
|
|
41
|
+
};
|
|
42
|
+
return {
|
|
43
|
+
"data-nav-row": identity.kind,
|
|
44
|
+
...draggable && from ? {
|
|
45
|
+
draggable: true,
|
|
46
|
+
"data-nav-drag": sameTarget(source, from) ? "source" : void 0,
|
|
47
|
+
onDragStart: (event) => {
|
|
48
|
+
event.stopPropagation();
|
|
49
|
+
event.dataTransfer.effectAllowed = "move";
|
|
50
|
+
event.dataTransfer.setData(NAV_DRAG_TYPE, from.key);
|
|
51
|
+
event.dataTransfer.setData("text/plain", from.key);
|
|
52
|
+
sourceRef.current = from;
|
|
53
|
+
setSource(from);
|
|
54
|
+
},
|
|
55
|
+
onDragEnd: reset
|
|
56
|
+
} : {},
|
|
57
|
+
...to !== void 0 ? {
|
|
58
|
+
"data-nav-drop": sameTarget(over, to) ? "over" : void 0,
|
|
59
|
+
// A drop target has to cancel dragenter AND dragover — cancelling
|
|
60
|
+
// only the latter leaves the row a drop target in Chrome but not
|
|
61
|
+
// for every drag source, so both run the same admission check.
|
|
62
|
+
onDragEnter: enterOrOver(to),
|
|
63
|
+
onDragOver: enterOrOver(to),
|
|
64
|
+
onDragLeave: (event) => {
|
|
65
|
+
const next = event.relatedTarget;
|
|
66
|
+
if (next instanceof Node && event.currentTarget.contains(next)) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
setOver((current) => sameTarget(current, to) ? null : current);
|
|
70
|
+
},
|
|
71
|
+
onDrop: (event) => {
|
|
72
|
+
event.preventDefault();
|
|
73
|
+
event.stopPropagation();
|
|
74
|
+
const dragged = accepted(to);
|
|
75
|
+
if (dragged) drag.onDrop(dragged, to);
|
|
76
|
+
reset();
|
|
77
|
+
}
|
|
78
|
+
} : {}
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
return { props };
|
|
82
|
+
}
|
|
83
|
+
exports.NAV_DRAG_ROW_CLASS = NAV_DRAG_ROW_CLASS;
|
|
84
|
+
exports.NAV_DRAG_ZONE_CLASS = NAV_DRAG_ZONE_CLASS;
|
|
85
|
+
exports.useNavDrag = useNavDrag;
|
|
86
|
+
//# sourceMappingURL=AppShell.nav.drag.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AppShell.nav.drag.cjs","sources":["../../src/layout/AppShell.nav.drag.tsx"],"sourcesContent":["import { useRef, useState, type DragEvent, type HTMLAttributes } from \"react\";\n\n// Drag-and-drop for the nav rail, kept structural: this module knows about rows,\n// folders and a section root, never about what a consumer moves between them.\n// Native HTML5 drag events are what a sidebar wants — a nav row is an <a>, which\n// the browser already makes draggable, so the alternative is fighting it.\n\n/** Which kind of nav row a drag endpoint is. */\nexport type AppShellNavDropKind = \"item\" | \"group\" | \"section\";\n\n/** One end of a drag: a row's `key` plus what that row is. */\nexport type AppShellNavDropTarget = {\n key: string;\n kind: AppShellNavDropKind;\n};\n\nexport type AppShellNavDrag = {\n /** Rows the user may pick up. Defaults to every row in the section. */\n canDrag?: (source: AppShellNavDropTarget) => boolean;\n /** Whether `source` may land on `target`. Defaults to any row but itself. */\n canDrop?: (\n source: AppShellNavDropTarget,\n target: AppShellNavDropTarget,\n ) => boolean;\n /** Commits the move. */\n onDrop: (\n source: AppShellNavDropTarget,\n target: AppShellNavDropTarget,\n ) => void;\n /**\n * Key reported for a drop on the section's own space (the heading and the\n * gaps around the rows) — the tree root in a tree-shaped section. Defaults\n * to the empty string.\n */\n rootKey?: string;\n};\n\n/**\n * Marks the payload as a nav drag so a row cannot be \"dropped\" from an\n * unrelated source; the key rides along for consumers that read the transfer.\n */\nconst NAV_DRAG_TYPE = \"application/x-clicky-nav\";\n\nexport type NavDragProps = HTMLAttributes<HTMLElement> & {\n /** What this row is — a stable hook for tests and consumer styling. */\n \"data-nav-row\": AppShellNavDropKind;\n // `| undefined` is deliberate — exactOptionalPropertyTypes forbids assigning\n // undefined to a plain optional, and both states are expressed by absence.\n \"data-nav-drag\"?: \"source\" | undefined;\n \"data-nav-drop\"?: \"over\" | undefined;\n};\n\nexport type NavDragEndpoints = {\n /** Identity this row hands over when dragged. Omit for a drop-only zone. */\n drag?: AppShellNavDropTarget;\n /** Identity this row accepts drops as. Omit for a drag-only row. */\n drop?: AppShellNavDropTarget;\n};\n\nexport type NavDragState = {\n /** Props for one row, or `undefined` when the section has no drag config. */\n props: (endpoints: NavDragEndpoints) => NavDragProps | undefined;\n};\n\n/** Row styling for both drag states; spread beside the row's own classes. */\nexport const NAV_DRAG_ROW_CLASS =\n \"data-[nav-drag=source]:opacity-40 data-[nav-drop=over]:bg-sidebar-accent data-[nav-drop=over]:ring-1 data-[nav-drop=over]:ring-inset data-[nav-drop=over]:ring-sidebar-primary\";\n\n/** Section styling: a dashed outline so the root reads as a drop zone. */\nexport const NAV_DRAG_ZONE_CLASS =\n \"data-[nav-drop=over]:rounded-md data-[nav-drop=over]:outline-1 data-[nav-drop=over]:outline-dashed data-[nav-drop=over]:outline-sidebar-primary\";\n\nfunction sameTarget(\n left: AppShellNavDropTarget | null,\n right: AppShellNavDropTarget | undefined,\n): boolean {\n return (\n left !== null &&\n right !== undefined &&\n left.key === right.key &&\n left.kind === right.kind\n );\n}\n\n/**\n * Owns one section's drag state. Called once per section — the rail and the\n * mobile drawer each render their own, which is correct: a drag lives entirely\n * inside the rendering the pointer started in.\n *\n * There is no keyboard equivalent here: a move is a destructive-ish action, and\n * the row's context menu (right-click / Shift+F10) is the accessible path to it.\n */\nexport function useNavDrag(drag: AppShellNavDrag | undefined): NavDragState {\n // The ref decides, the state only paints. A browser can fire the first\n // dragover in the same frame as dragstart, so a drop that waited for the\n // re-render carrying the new source would be refused for the first stretch\n // of a fast drag — and refusing a dragover means no drop event at all.\n const sourceRef = useRef<AppShellNavDropTarget | null>(null);\n const [source, setSource] = useState<AppShellNavDropTarget | null>(null);\n const [over, setOver] = useState<AppShellNavDropTarget | null>(null);\n\n const reset = () => {\n sourceRef.current = null;\n setSource(null);\n setOver(null);\n };\n\n const props = ({\n drag: from,\n drop: to,\n }: NavDragEndpoints): NavDragProps | undefined => {\n // No endpoints means the row neither moves nor receives — nothing to wire.\n const identity = to ?? from;\n if (!drag || !identity) return undefined;\n const draggable = from !== undefined && (drag.canDrag?.(from) ?? true);\n /** The row being dragged, if it may land here — read at event time. */\n const accepted = (target: AppShellNavDropTarget) => {\n const dragged = sourceRef.current;\n return dragged !== null &&\n !sameTarget(dragged, target) &&\n (drag.canDrop?.(dragged, target) ?? true)\n ? dragged\n : null;\n };\n const enterOrOver =\n (target: AppShellNavDropTarget) => (event: DragEvent<HTMLElement>) => {\n // stopPropagation runs even for a refused row: the row under the\n // pointer is the answer, so a \"no\" here must not bubble up and let an\n // ancestor zone (the section root) accept the drop behind it.\n // preventDefault is what actually arms a drop, so it only runs for a\n // row that accepts.\n event.stopPropagation();\n if (!accepted(target)) {\n setOver(null);\n return;\n }\n event.preventDefault();\n event.dataTransfer.dropEffect = \"move\";\n setOver(target);\n };\n\n return {\n \"data-nav-row\": identity.kind,\n ...(draggable && from\n ? {\n draggable: true,\n \"data-nav-drag\": sameTarget(source, from) ? \"source\" : undefined,\n onDragStart: (event: DragEvent<HTMLElement>) => {\n // A nested row must not also start its ancestor folder's drag.\n event.stopPropagation();\n event.dataTransfer.effectAllowed = \"move\";\n // Overwrites the URL payload the browser puts on an anchor drag.\n event.dataTransfer.setData(NAV_DRAG_TYPE, from.key);\n event.dataTransfer.setData(\"text/plain\", from.key);\n sourceRef.current = from;\n setSource(from);\n },\n onDragEnd: reset,\n }\n : {}),\n ...(to !== undefined\n ? {\n \"data-nav-drop\": sameTarget(over, to) ? \"over\" : undefined,\n // A drop target has to cancel dragenter AND dragover — cancelling\n // only the latter leaves the row a drop target in Chrome but not\n // for every drag source, so both run the same admission check.\n onDragEnter: enterOrOver(to),\n onDragOver: enterOrOver(to),\n onDragLeave: (event: DragEvent<HTMLElement>) => {\n // dragleave also fires when the pointer crosses into a child of\n // this row; only a leave that exits the row should clear it.\n const next = event.relatedTarget;\n if (next instanceof Node && event.currentTarget.contains(next)) {\n return;\n }\n setOver((current) => (sameTarget(current, to) ? null : current));\n },\n onDrop: (event: DragEvent<HTMLElement>) => {\n event.preventDefault();\n event.stopPropagation();\n const dragged = accepted(to);\n if (dragged) drag.onDrop(dragged, to);\n reset();\n },\n }\n : {}),\n };\n };\n\n return { props };\n}\n"],"names":["useRef","useState","_a"],"mappings":";;;AAyCA,MAAM,gBAAgB;AAwBf,MAAM,qBACX;AAGK,MAAM,sBACX;AAEF,SAAS,WACP,MACA,OACS;AACT,SACE,SAAS,QACT,UAAU,UACV,KAAK,QAAQ,MAAM,OACnB,KAAK,SAAS,MAAM;AAExB;AAUO,SAAS,WAAW,MAAiD;AAK1E,QAAM,YAAYA,MAAAA,OAAqC,IAAI;AAC3D,QAAM,CAAC,QAAQ,SAAS,IAAIC,MAAAA,SAAuC,IAAI;AACvE,QAAM,CAAC,MAAM,OAAO,IAAIA,MAAAA,SAAuC,IAAI;AAEnE,QAAM,QAAQ,MAAM;AAClB,cAAU,UAAU;AACpB,cAAU,IAAI;AACd,YAAQ,IAAI;AAAA,EACd;AAEA,QAAM,QAAQ,CAAC;AAAA,IACb,MAAM;AAAA,IACN,MAAM;AAAA,EAAA,MAC0C;;AAEhD,UAAM,WAAW,MAAM;AACvB,QAAI,CAAC,QAAQ,CAAC,SAAU,QAAO;AAC/B,UAAM,YAAY,SAAS,aAAc,UAAK,YAAL,8BAAe,UAAS;AAEjE,UAAM,WAAW,CAAC,WAAkC;;AAClD,YAAM,UAAU,UAAU;AAC1B,aAAO,YAAY,QACjB,CAAC,WAAW,SAAS,MAAM,QAC1BC,MAAA,KAAK,YAAL,gBAAAA,IAAA,WAAe,SAAS,YAAW,QAClC,UACA;AAAA,IACN;AACA,UAAM,cACJ,CAAC,WAAkC,CAAC,UAAkC;AAMpE,YAAM,gBAAA;AACN,UAAI,CAAC,SAAS,MAAM,GAAG;AACrB,gBAAQ,IAAI;AACZ;AAAA,MACF;AACA,YAAM,eAAA;AACN,YAAM,aAAa,aAAa;AAChC,cAAQ,MAAM;AAAA,IAChB;AAEF,WAAO;AAAA,MACL,gBAAgB,SAAS;AAAA,MACzB,GAAI,aAAa,OACb;AAAA,QACE,WAAW;AAAA,QACX,iBAAiB,WAAW,QAAQ,IAAI,IAAI,WAAW;AAAA,QACvD,aAAa,CAAC,UAAkC;AAE9C,gBAAM,gBAAA;AACN,gBAAM,aAAa,gBAAgB;AAEnC,gBAAM,aAAa,QAAQ,eAAe,KAAK,GAAG;AAClD,gBAAM,aAAa,QAAQ,cAAc,KAAK,GAAG;AACjD,oBAAU,UAAU;AACpB,oBAAU,IAAI;AAAA,QAChB;AAAA,QACA,WAAW;AAAA,MAAA,IAEb,CAAA;AAAA,MACJ,GAAI,OAAO,SACP;AAAA,QACE,iBAAiB,WAAW,MAAM,EAAE,IAAI,SAAS;AAAA;AAAA;AAAA;AAAA,QAIjD,aAAa,YAAY,EAAE;AAAA,QAC3B,YAAY,YAAY,EAAE;AAAA,QAC1B,aAAa,CAAC,UAAkC;AAG9C,gBAAM,OAAO,MAAM;AACnB,cAAI,gBAAgB,QAAQ,MAAM,cAAc,SAAS,IAAI,GAAG;AAC9D;AAAA,UACF;AACA,kBAAQ,CAAC,YAAa,WAAW,SAAS,EAAE,IAAI,OAAO,OAAQ;AAAA,QACjE;AAAA,QACA,QAAQ,CAAC,UAAkC;AACzC,gBAAM,eAAA;AACN,gBAAM,gBAAA;AACN,gBAAM,UAAU,SAAS,EAAE;AAC3B,cAAI,QAAS,MAAK,OAAO,SAAS,EAAE;AACpC,gBAAA;AAAA,QACF;AAAA,MAAA,IAEF,CAAA;AAAA,IAAC;AAAA,EAET;AAEA,SAAO,EAAE,MAAA;AACX;;;;"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { HTMLAttributes } from '../../../../node_modules/@types/react/index.d.ts';
|
|
2
|
+
/** Which kind of nav row a drag endpoint is. */
|
|
3
|
+
export type AppShellNavDropKind = "item" | "group" | "section";
|
|
4
|
+
/** One end of a drag: a row's `key` plus what that row is. */
|
|
5
|
+
export type AppShellNavDropTarget = {
|
|
6
|
+
key: string;
|
|
7
|
+
kind: AppShellNavDropKind;
|
|
8
|
+
};
|
|
9
|
+
export type AppShellNavDrag = {
|
|
10
|
+
/** Rows the user may pick up. Defaults to every row in the section. */
|
|
11
|
+
canDrag?: (source: AppShellNavDropTarget) => boolean;
|
|
12
|
+
/** Whether `source` may land on `target`. Defaults to any row but itself. */
|
|
13
|
+
canDrop?: (source: AppShellNavDropTarget, target: AppShellNavDropTarget) => boolean;
|
|
14
|
+
/** Commits the move. */
|
|
15
|
+
onDrop: (source: AppShellNavDropTarget, target: AppShellNavDropTarget) => void;
|
|
16
|
+
/**
|
|
17
|
+
* Key reported for a drop on the section's own space (the heading and the
|
|
18
|
+
* gaps around the rows) — the tree root in a tree-shaped section. Defaults
|
|
19
|
+
* to the empty string.
|
|
20
|
+
*/
|
|
21
|
+
rootKey?: string;
|
|
22
|
+
};
|
|
23
|
+
export type NavDragProps = HTMLAttributes<HTMLElement> & {
|
|
24
|
+
/** What this row is — a stable hook for tests and consumer styling. */
|
|
25
|
+
"data-nav-row": AppShellNavDropKind;
|
|
26
|
+
"data-nav-drag"?: "source" | undefined;
|
|
27
|
+
"data-nav-drop"?: "over" | undefined;
|
|
28
|
+
};
|
|
29
|
+
export type NavDragEndpoints = {
|
|
30
|
+
/** Identity this row hands over when dragged. Omit for a drop-only zone. */
|
|
31
|
+
drag?: AppShellNavDropTarget;
|
|
32
|
+
/** Identity this row accepts drops as. Omit for a drag-only row. */
|
|
33
|
+
drop?: AppShellNavDropTarget;
|
|
34
|
+
};
|
|
35
|
+
export type NavDragState = {
|
|
36
|
+
/** Props for one row, or `undefined` when the section has no drag config. */
|
|
37
|
+
props: (endpoints: NavDragEndpoints) => NavDragProps | undefined;
|
|
38
|
+
};
|
|
39
|
+
/** Row styling for both drag states; spread beside the row's own classes. */
|
|
40
|
+
export declare const NAV_DRAG_ROW_CLASS = "data-[nav-drag=source]:opacity-40 data-[nav-drop=over]:bg-sidebar-accent data-[nav-drop=over]:ring-1 data-[nav-drop=over]:ring-inset data-[nav-drop=over]:ring-sidebar-primary";
|
|
41
|
+
/** Section styling: a dashed outline so the root reads as a drop zone. */
|
|
42
|
+
export declare const NAV_DRAG_ZONE_CLASS = "data-[nav-drop=over]:rounded-md data-[nav-drop=over]:outline-1 data-[nav-drop=over]:outline-dashed data-[nav-drop=over]:outline-sidebar-primary";
|
|
43
|
+
/**
|
|
44
|
+
* Owns one section's drag state. Called once per section — the rail and the
|
|
45
|
+
* mobile drawer each render their own, which is correct: a drag lives entirely
|
|
46
|
+
* inside the rendering the pointer started in.
|
|
47
|
+
*
|
|
48
|
+
* There is no keyboard equivalent here: a move is a destructive-ish action, and
|
|
49
|
+
* the row's context menu (right-click / Shift+F10) is the accessible path to it.
|
|
50
|
+
*/
|
|
51
|
+
export declare function useNavDrag(drag: AppShellNavDrag | undefined): NavDragState;
|
|
52
|
+
//# sourceMappingURL=AppShell.nav.drag.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AppShell.nav.drag.d.ts","sourceRoot":"","sources":["../../src/layout/AppShell.nav.drag.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAO9E,gDAAgD;AAChD,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAE/D,8DAA8D;AAC9D,MAAM,MAAM,qBAAqB,GAAG;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,mBAAmB,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,uEAAuE;IACvE,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,OAAO,CAAC;IACrD,6EAA6E;IAC7E,OAAO,CAAC,EAAE,CACR,MAAM,EAAE,qBAAqB,EAC7B,MAAM,EAAE,qBAAqB,KAC1B,OAAO,CAAC;IACb,wBAAwB;IACxB,MAAM,EAAE,CACN,MAAM,EAAE,qBAAqB,EAC7B,MAAM,EAAE,qBAAqB,KAC1B,IAAI,CAAC;IACV;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAQF,MAAM,MAAM,YAAY,GAAG,cAAc,CAAC,WAAW,CAAC,GAAG;IACvD,uEAAuE;IACvE,cAAc,EAAE,mBAAmB,CAAC;IAGpC,eAAe,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IACvC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,4EAA4E;IAC5E,IAAI,CAAC,EAAE,qBAAqB,CAAC;IAC7B,oEAAoE;IACpE,IAAI,CAAC,EAAE,qBAAqB,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,6EAA6E;IAC7E,KAAK,EAAE,CAAC,SAAS,EAAE,gBAAgB,KAAK,YAAY,GAAG,SAAS,CAAC;CAClE,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,kBAAkB,mLACmJ,CAAC;AAEnL,0EAA0E;AAC1E,eAAO,MAAM,mBAAmB,oJACmH,CAAC;AAcpJ;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,SAAS,GAAG,YAAY,CAkG1E"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { useRef, useState } from "react";
|
|
2
|
+
const NAV_DRAG_TYPE = "application/x-clicky-nav";
|
|
3
|
+
const NAV_DRAG_ROW_CLASS = "data-[nav-drag=source]:opacity-40 data-[nav-drop=over]:bg-sidebar-accent data-[nav-drop=over]:ring-1 data-[nav-drop=over]:ring-inset data-[nav-drop=over]:ring-sidebar-primary";
|
|
4
|
+
const NAV_DRAG_ZONE_CLASS = "data-[nav-drop=over]:rounded-md data-[nav-drop=over]:outline-1 data-[nav-drop=over]:outline-dashed data-[nav-drop=over]:outline-sidebar-primary";
|
|
5
|
+
function sameTarget(left, right) {
|
|
6
|
+
return left !== null && right !== void 0 && left.key === right.key && left.kind === right.kind;
|
|
7
|
+
}
|
|
8
|
+
function useNavDrag(drag) {
|
|
9
|
+
const sourceRef = useRef(null);
|
|
10
|
+
const [source, setSource] = useState(null);
|
|
11
|
+
const [over, setOver] = useState(null);
|
|
12
|
+
const reset = () => {
|
|
13
|
+
sourceRef.current = null;
|
|
14
|
+
setSource(null);
|
|
15
|
+
setOver(null);
|
|
16
|
+
};
|
|
17
|
+
const props = ({
|
|
18
|
+
drag: from,
|
|
19
|
+
drop: to
|
|
20
|
+
}) => {
|
|
21
|
+
var _a;
|
|
22
|
+
const identity = to ?? from;
|
|
23
|
+
if (!drag || !identity) return void 0;
|
|
24
|
+
const draggable = from !== void 0 && (((_a = drag.canDrag) == null ? void 0 : _a.call(drag, from)) ?? true);
|
|
25
|
+
const accepted = (target) => {
|
|
26
|
+
var _a2;
|
|
27
|
+
const dragged = sourceRef.current;
|
|
28
|
+
return dragged !== null && !sameTarget(dragged, target) && (((_a2 = drag.canDrop) == null ? void 0 : _a2.call(drag, dragged, target)) ?? true) ? dragged : null;
|
|
29
|
+
};
|
|
30
|
+
const enterOrOver = (target) => (event) => {
|
|
31
|
+
event.stopPropagation();
|
|
32
|
+
if (!accepted(target)) {
|
|
33
|
+
setOver(null);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
event.preventDefault();
|
|
37
|
+
event.dataTransfer.dropEffect = "move";
|
|
38
|
+
setOver(target);
|
|
39
|
+
};
|
|
40
|
+
return {
|
|
41
|
+
"data-nav-row": identity.kind,
|
|
42
|
+
...draggable && from ? {
|
|
43
|
+
draggable: true,
|
|
44
|
+
"data-nav-drag": sameTarget(source, from) ? "source" : void 0,
|
|
45
|
+
onDragStart: (event) => {
|
|
46
|
+
event.stopPropagation();
|
|
47
|
+
event.dataTransfer.effectAllowed = "move";
|
|
48
|
+
event.dataTransfer.setData(NAV_DRAG_TYPE, from.key);
|
|
49
|
+
event.dataTransfer.setData("text/plain", from.key);
|
|
50
|
+
sourceRef.current = from;
|
|
51
|
+
setSource(from);
|
|
52
|
+
},
|
|
53
|
+
onDragEnd: reset
|
|
54
|
+
} : {},
|
|
55
|
+
...to !== void 0 ? {
|
|
56
|
+
"data-nav-drop": sameTarget(over, to) ? "over" : void 0,
|
|
57
|
+
// A drop target has to cancel dragenter AND dragover — cancelling
|
|
58
|
+
// only the latter leaves the row a drop target in Chrome but not
|
|
59
|
+
// for every drag source, so both run the same admission check.
|
|
60
|
+
onDragEnter: enterOrOver(to),
|
|
61
|
+
onDragOver: enterOrOver(to),
|
|
62
|
+
onDragLeave: (event) => {
|
|
63
|
+
const next = event.relatedTarget;
|
|
64
|
+
if (next instanceof Node && event.currentTarget.contains(next)) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
setOver((current) => sameTarget(current, to) ? null : current);
|
|
68
|
+
},
|
|
69
|
+
onDrop: (event) => {
|
|
70
|
+
event.preventDefault();
|
|
71
|
+
event.stopPropagation();
|
|
72
|
+
const dragged = accepted(to);
|
|
73
|
+
if (dragged) drag.onDrop(dragged, to);
|
|
74
|
+
reset();
|
|
75
|
+
}
|
|
76
|
+
} : {}
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
return { props };
|
|
80
|
+
}
|
|
81
|
+
export {
|
|
82
|
+
NAV_DRAG_ROW_CLASS,
|
|
83
|
+
NAV_DRAG_ZONE_CLASS,
|
|
84
|
+
useNavDrag
|
|
85
|
+
};
|
|
86
|
+
//# sourceMappingURL=AppShell.nav.drag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AppShell.nav.drag.js","sources":["../../src/layout/AppShell.nav.drag.tsx"],"sourcesContent":["import { useRef, useState, type DragEvent, type HTMLAttributes } from \"react\";\n\n// Drag-and-drop for the nav rail, kept structural: this module knows about rows,\n// folders and a section root, never about what a consumer moves between them.\n// Native HTML5 drag events are what a sidebar wants — a nav row is an <a>, which\n// the browser already makes draggable, so the alternative is fighting it.\n\n/** Which kind of nav row a drag endpoint is. */\nexport type AppShellNavDropKind = \"item\" | \"group\" | \"section\";\n\n/** One end of a drag: a row's `key` plus what that row is. */\nexport type AppShellNavDropTarget = {\n key: string;\n kind: AppShellNavDropKind;\n};\n\nexport type AppShellNavDrag = {\n /** Rows the user may pick up. Defaults to every row in the section. */\n canDrag?: (source: AppShellNavDropTarget) => boolean;\n /** Whether `source` may land on `target`. Defaults to any row but itself. */\n canDrop?: (\n source: AppShellNavDropTarget,\n target: AppShellNavDropTarget,\n ) => boolean;\n /** Commits the move. */\n onDrop: (\n source: AppShellNavDropTarget,\n target: AppShellNavDropTarget,\n ) => void;\n /**\n * Key reported for a drop on the section's own space (the heading and the\n * gaps around the rows) — the tree root in a tree-shaped section. Defaults\n * to the empty string.\n */\n rootKey?: string;\n};\n\n/**\n * Marks the payload as a nav drag so a row cannot be \"dropped\" from an\n * unrelated source; the key rides along for consumers that read the transfer.\n */\nconst NAV_DRAG_TYPE = \"application/x-clicky-nav\";\n\nexport type NavDragProps = HTMLAttributes<HTMLElement> & {\n /** What this row is — a stable hook for tests and consumer styling. */\n \"data-nav-row\": AppShellNavDropKind;\n // `| undefined` is deliberate — exactOptionalPropertyTypes forbids assigning\n // undefined to a plain optional, and both states are expressed by absence.\n \"data-nav-drag\"?: \"source\" | undefined;\n \"data-nav-drop\"?: \"over\" | undefined;\n};\n\nexport type NavDragEndpoints = {\n /** Identity this row hands over when dragged. Omit for a drop-only zone. */\n drag?: AppShellNavDropTarget;\n /** Identity this row accepts drops as. Omit for a drag-only row. */\n drop?: AppShellNavDropTarget;\n};\n\nexport type NavDragState = {\n /** Props for one row, or `undefined` when the section has no drag config. */\n props: (endpoints: NavDragEndpoints) => NavDragProps | undefined;\n};\n\n/** Row styling for both drag states; spread beside the row's own classes. */\nexport const NAV_DRAG_ROW_CLASS =\n \"data-[nav-drag=source]:opacity-40 data-[nav-drop=over]:bg-sidebar-accent data-[nav-drop=over]:ring-1 data-[nav-drop=over]:ring-inset data-[nav-drop=over]:ring-sidebar-primary\";\n\n/** Section styling: a dashed outline so the root reads as a drop zone. */\nexport const NAV_DRAG_ZONE_CLASS =\n \"data-[nav-drop=over]:rounded-md data-[nav-drop=over]:outline-1 data-[nav-drop=over]:outline-dashed data-[nav-drop=over]:outline-sidebar-primary\";\n\nfunction sameTarget(\n left: AppShellNavDropTarget | null,\n right: AppShellNavDropTarget | undefined,\n): boolean {\n return (\n left !== null &&\n right !== undefined &&\n left.key === right.key &&\n left.kind === right.kind\n );\n}\n\n/**\n * Owns one section's drag state. Called once per section — the rail and the\n * mobile drawer each render their own, which is correct: a drag lives entirely\n * inside the rendering the pointer started in.\n *\n * There is no keyboard equivalent here: a move is a destructive-ish action, and\n * the row's context menu (right-click / Shift+F10) is the accessible path to it.\n */\nexport function useNavDrag(drag: AppShellNavDrag | undefined): NavDragState {\n // The ref decides, the state only paints. A browser can fire the first\n // dragover in the same frame as dragstart, so a drop that waited for the\n // re-render carrying the new source would be refused for the first stretch\n // of a fast drag — and refusing a dragover means no drop event at all.\n const sourceRef = useRef<AppShellNavDropTarget | null>(null);\n const [source, setSource] = useState<AppShellNavDropTarget | null>(null);\n const [over, setOver] = useState<AppShellNavDropTarget | null>(null);\n\n const reset = () => {\n sourceRef.current = null;\n setSource(null);\n setOver(null);\n };\n\n const props = ({\n drag: from,\n drop: to,\n }: NavDragEndpoints): NavDragProps | undefined => {\n // No endpoints means the row neither moves nor receives — nothing to wire.\n const identity = to ?? from;\n if (!drag || !identity) return undefined;\n const draggable = from !== undefined && (drag.canDrag?.(from) ?? true);\n /** The row being dragged, if it may land here — read at event time. */\n const accepted = (target: AppShellNavDropTarget) => {\n const dragged = sourceRef.current;\n return dragged !== null &&\n !sameTarget(dragged, target) &&\n (drag.canDrop?.(dragged, target) ?? true)\n ? dragged\n : null;\n };\n const enterOrOver =\n (target: AppShellNavDropTarget) => (event: DragEvent<HTMLElement>) => {\n // stopPropagation runs even for a refused row: the row under the\n // pointer is the answer, so a \"no\" here must not bubble up and let an\n // ancestor zone (the section root) accept the drop behind it.\n // preventDefault is what actually arms a drop, so it only runs for a\n // row that accepts.\n event.stopPropagation();\n if (!accepted(target)) {\n setOver(null);\n return;\n }\n event.preventDefault();\n event.dataTransfer.dropEffect = \"move\";\n setOver(target);\n };\n\n return {\n \"data-nav-row\": identity.kind,\n ...(draggable && from\n ? {\n draggable: true,\n \"data-nav-drag\": sameTarget(source, from) ? \"source\" : undefined,\n onDragStart: (event: DragEvent<HTMLElement>) => {\n // A nested row must not also start its ancestor folder's drag.\n event.stopPropagation();\n event.dataTransfer.effectAllowed = \"move\";\n // Overwrites the URL payload the browser puts on an anchor drag.\n event.dataTransfer.setData(NAV_DRAG_TYPE, from.key);\n event.dataTransfer.setData(\"text/plain\", from.key);\n sourceRef.current = from;\n setSource(from);\n },\n onDragEnd: reset,\n }\n : {}),\n ...(to !== undefined\n ? {\n \"data-nav-drop\": sameTarget(over, to) ? \"over\" : undefined,\n // A drop target has to cancel dragenter AND dragover — cancelling\n // only the latter leaves the row a drop target in Chrome but not\n // for every drag source, so both run the same admission check.\n onDragEnter: enterOrOver(to),\n onDragOver: enterOrOver(to),\n onDragLeave: (event: DragEvent<HTMLElement>) => {\n // dragleave also fires when the pointer crosses into a child of\n // this row; only a leave that exits the row should clear it.\n const next = event.relatedTarget;\n if (next instanceof Node && event.currentTarget.contains(next)) {\n return;\n }\n setOver((current) => (sameTarget(current, to) ? null : current));\n },\n onDrop: (event: DragEvent<HTMLElement>) => {\n event.preventDefault();\n event.stopPropagation();\n const dragged = accepted(to);\n if (dragged) drag.onDrop(dragged, to);\n reset();\n },\n }\n : {}),\n };\n };\n\n return { props };\n}\n"],"names":["_a"],"mappings":";AAyCA,MAAM,gBAAgB;AAwBf,MAAM,qBACX;AAGK,MAAM,sBACX;AAEF,SAAS,WACP,MACA,OACS;AACT,SACE,SAAS,QACT,UAAU,UACV,KAAK,QAAQ,MAAM,OACnB,KAAK,SAAS,MAAM;AAExB;AAUO,SAAS,WAAW,MAAiD;AAK1E,QAAM,YAAY,OAAqC,IAAI;AAC3D,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAuC,IAAI;AACvE,QAAM,CAAC,MAAM,OAAO,IAAI,SAAuC,IAAI;AAEnE,QAAM,QAAQ,MAAM;AAClB,cAAU,UAAU;AACpB,cAAU,IAAI;AACd,YAAQ,IAAI;AAAA,EACd;AAEA,QAAM,QAAQ,CAAC;AAAA,IACb,MAAM;AAAA,IACN,MAAM;AAAA,EAAA,MAC0C;;AAEhD,UAAM,WAAW,MAAM;AACvB,QAAI,CAAC,QAAQ,CAAC,SAAU,QAAO;AAC/B,UAAM,YAAY,SAAS,aAAc,UAAK,YAAL,8BAAe,UAAS;AAEjE,UAAM,WAAW,CAAC,WAAkC;;AAClD,YAAM,UAAU,UAAU;AAC1B,aAAO,YAAY,QACjB,CAAC,WAAW,SAAS,MAAM,QAC1BA,MAAA,KAAK,YAAL,gBAAAA,IAAA,WAAe,SAAS,YAAW,QAClC,UACA;AAAA,IACN;AACA,UAAM,cACJ,CAAC,WAAkC,CAAC,UAAkC;AAMpE,YAAM,gBAAA;AACN,UAAI,CAAC,SAAS,MAAM,GAAG;AACrB,gBAAQ,IAAI;AACZ;AAAA,MACF;AACA,YAAM,eAAA;AACN,YAAM,aAAa,aAAa;AAChC,cAAQ,MAAM;AAAA,IAChB;AAEF,WAAO;AAAA,MACL,gBAAgB,SAAS;AAAA,MACzB,GAAI,aAAa,OACb;AAAA,QACE,WAAW;AAAA,QACX,iBAAiB,WAAW,QAAQ,IAAI,IAAI,WAAW;AAAA,QACvD,aAAa,CAAC,UAAkC;AAE9C,gBAAM,gBAAA;AACN,gBAAM,aAAa,gBAAgB;AAEnC,gBAAM,aAAa,QAAQ,eAAe,KAAK,GAAG;AAClD,gBAAM,aAAa,QAAQ,cAAc,KAAK,GAAG;AACjD,oBAAU,UAAU;AACpB,oBAAU,IAAI;AAAA,QAChB;AAAA,QACA,WAAW;AAAA,MAAA,IAEb,CAAA;AAAA,MACJ,GAAI,OAAO,SACP;AAAA,QACE,iBAAiB,WAAW,MAAM,EAAE,IAAI,SAAS;AAAA;AAAA;AAAA;AAAA,QAIjD,aAAa,YAAY,EAAE;AAAA,QAC3B,YAAY,YAAY,EAAE;AAAA,QAC1B,aAAa,CAAC,UAAkC;AAG9C,gBAAM,OAAO,MAAM;AACnB,cAAI,gBAAgB,QAAQ,MAAM,cAAc,SAAS,IAAI,GAAG;AAC9D;AAAA,UACF;AACA,kBAAQ,CAAC,YAAa,WAAW,SAAS,EAAE,IAAI,OAAO,OAAQ;AAAA,QACjE;AAAA,QACA,QAAQ,CAAC,UAAkC;AACzC,gBAAM,eAAA;AACN,gBAAM,gBAAA;AACN,gBAAM,UAAU,SAAS,EAAE;AAC3B,cAAI,QAAS,MAAK,OAAO,SAAS,EAAE;AACpC,gBAAA;AAAA,QACF;AAAA,MAAA,IAEF,CAAA;AAAA,IAAC;AAAA,EAET;AAEA,SAAO,EAAE,MAAA;AACX;"}
|
|
@@ -4,13 +4,13 @@ import { Icon } from "../data/Icon.js";
|
|
|
4
4
|
import { cn } from "../lib/utils.js";
|
|
5
5
|
import { ContextMenu } from "../overlay/ContextMenu.js";
|
|
6
6
|
import { useRouter } from "../rpc/router.js";
|
|
7
|
+
import { useNavDrag, NAV_DRAG_ZONE_CLASS, NAV_DRAG_ROW_CLASS } from "./AppShell.nav.drag.js";
|
|
7
8
|
function NavSections({
|
|
8
9
|
sections,
|
|
9
10
|
collapsed,
|
|
10
11
|
groupState,
|
|
11
12
|
onNavigate
|
|
12
13
|
}) {
|
|
13
|
-
const { renderLink } = useRouter();
|
|
14
14
|
return /* @__PURE__ */ jsx(
|
|
15
15
|
"nav",
|
|
16
16
|
{
|
|
@@ -18,66 +18,90 @@ function NavSections({
|
|
|
18
18
|
"flex flex-col gap-0.5",
|
|
19
19
|
collapsed ? "px-2" : "px-density-2"
|
|
20
20
|
),
|
|
21
|
-
children: sections.map((section, index) =>
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
children: sections.map((section, index) => /* @__PURE__ */ jsx(
|
|
22
|
+
NavSection,
|
|
23
|
+
{
|
|
24
|
+
section,
|
|
25
|
+
collapsed,
|
|
26
|
+
groupState,
|
|
27
|
+
...onNavigate ? { onNavigate } : {}
|
|
28
|
+
},
|
|
29
|
+
section.label ?? `section-${index}`
|
|
30
|
+
))
|
|
31
|
+
}
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
function NavSection({
|
|
35
|
+
section,
|
|
36
|
+
collapsed,
|
|
37
|
+
groupState,
|
|
38
|
+
onNavigate
|
|
39
|
+
}) {
|
|
40
|
+
var _a, _b, _c, _d;
|
|
41
|
+
const { renderLink } = useRouter();
|
|
42
|
+
const dragState = useNavDrag(collapsed ? void 0 : section.drag);
|
|
43
|
+
const rootDrop = dragState.props({
|
|
44
|
+
drop: { key: ((_a = section.drag) == null ? void 0 : _a.rootKey) ?? "", kind: "section" }
|
|
45
|
+
});
|
|
46
|
+
return /* @__PURE__ */ jsxs(
|
|
47
|
+
"div",
|
|
48
|
+
{
|
|
49
|
+
className: cn("flex flex-col", rootDrop && NAV_DRAG_ZONE_CLASS),
|
|
50
|
+
...rootDrop,
|
|
51
|
+
children: [
|
|
52
|
+
section.label && (collapsed ? /* @__PURE__ */ jsx("div", { className: "mx-2 mb-1 mt-3 border-t border-sidebar-border first:mt-1" }) : /* @__PURE__ */ jsx("div", { className: "mb-0.5 mt-3 px-density-2 text-[10px] font-semibold uppercase tracking-[0.18em] text-sidebar-foreground/55 first:mt-1", children: section.label })),
|
|
53
|
+
section.variant !== "tree" && ((_b = section.items) == null ? void 0 : _b.map((item) => /* @__PURE__ */ jsx(
|
|
54
|
+
NavItemRow,
|
|
25
55
|
{
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
{
|
|
32
|
-
item,
|
|
33
|
-
collapsed,
|
|
34
|
-
renderLink,
|
|
35
|
-
...onNavigate ? { onNavigate } : {}
|
|
36
|
-
},
|
|
37
|
-
item.key
|
|
38
|
-
))),
|
|
39
|
-
(_b = section.groups) == null ? void 0 : _b.map(
|
|
40
|
-
(group) => (
|
|
41
|
-
// A collapsed rail has no room for group headings, so the whole
|
|
42
|
-
// subtree flattens into the icon strip rather than hiding behind
|
|
43
|
-
// toggles the user cannot see.
|
|
44
|
-
collapsed ? flattenGroup(group).map((item) => /* @__PURE__ */ jsx(
|
|
45
|
-
NavItemRow,
|
|
46
|
-
{
|
|
47
|
-
item,
|
|
48
|
-
collapsed: true,
|
|
49
|
-
renderLink,
|
|
50
|
-
...onNavigate ? { onNavigate } : {}
|
|
51
|
-
},
|
|
52
|
-
item.key
|
|
53
|
-
)) : /* @__PURE__ */ jsx(
|
|
54
|
-
NavGroupRows,
|
|
55
|
-
{
|
|
56
|
-
group,
|
|
57
|
-
variant: section.variant ?? "list",
|
|
58
|
-
renderLink,
|
|
59
|
-
groupState,
|
|
60
|
-
...onNavigate ? { onNavigate } : {}
|
|
61
|
-
},
|
|
62
|
-
group.key
|
|
63
|
-
)
|
|
64
|
-
)
|
|
65
|
-
),
|
|
66
|
-
section.variant === "tree" && ((_c = section.items) == null ? void 0 : _c.map((item) => /* @__PURE__ */ jsx(
|
|
67
|
-
NavItemRow,
|
|
68
|
-
{
|
|
69
|
-
item,
|
|
70
|
-
collapsed,
|
|
71
|
-
renderLink,
|
|
72
|
-
...onNavigate ? { onNavigate } : {}
|
|
73
|
-
},
|
|
74
|
-
item.key
|
|
75
|
-
)))
|
|
76
|
-
]
|
|
56
|
+
item,
|
|
57
|
+
collapsed,
|
|
58
|
+
renderLink,
|
|
59
|
+
dragState,
|
|
60
|
+
...onNavigate ? { onNavigate } : {}
|
|
77
61
|
},
|
|
78
|
-
|
|
79
|
-
)
|
|
80
|
-
|
|
62
|
+
item.key
|
|
63
|
+
))),
|
|
64
|
+
(_c = section.groups) == null ? void 0 : _c.map(
|
|
65
|
+
(group) => (
|
|
66
|
+
// A collapsed rail has no room for group headings, so the whole
|
|
67
|
+
// subtree flattens into the icon strip rather than hiding behind
|
|
68
|
+
// toggles the user cannot see.
|
|
69
|
+
collapsed ? flattenGroup(group).map((item) => /* @__PURE__ */ jsx(
|
|
70
|
+
NavItemRow,
|
|
71
|
+
{
|
|
72
|
+
item,
|
|
73
|
+
collapsed: true,
|
|
74
|
+
renderLink,
|
|
75
|
+
dragState,
|
|
76
|
+
...onNavigate ? { onNavigate } : {}
|
|
77
|
+
},
|
|
78
|
+
item.key
|
|
79
|
+
)) : /* @__PURE__ */ jsx(
|
|
80
|
+
NavGroupRows,
|
|
81
|
+
{
|
|
82
|
+
group,
|
|
83
|
+
variant: section.variant ?? "list",
|
|
84
|
+
renderLink,
|
|
85
|
+
groupState,
|
|
86
|
+
dragState,
|
|
87
|
+
...onNavigate ? { onNavigate } : {}
|
|
88
|
+
},
|
|
89
|
+
group.key
|
|
90
|
+
)
|
|
91
|
+
)
|
|
92
|
+
),
|
|
93
|
+
section.variant === "tree" && ((_d = section.items) == null ? void 0 : _d.map((item) => /* @__PURE__ */ jsx(
|
|
94
|
+
NavItemRow,
|
|
95
|
+
{
|
|
96
|
+
item,
|
|
97
|
+
collapsed,
|
|
98
|
+
renderLink,
|
|
99
|
+
dragState,
|
|
100
|
+
...onNavigate ? { onNavigate } : {}
|
|
101
|
+
},
|
|
102
|
+
item.key
|
|
103
|
+
)))
|
|
104
|
+
]
|
|
81
105
|
}
|
|
82
106
|
);
|
|
83
107
|
}
|
|
@@ -93,11 +117,18 @@ function NavGroupRows({
|
|
|
93
117
|
variant,
|
|
94
118
|
renderLink,
|
|
95
119
|
groupState,
|
|
120
|
+
dragState,
|
|
96
121
|
onNavigate
|
|
97
122
|
}) {
|
|
98
123
|
var _a, _b;
|
|
99
124
|
const [contextTarget, setContextTarget] = useState(null);
|
|
100
125
|
const hasChildren = group.items.length > 0 || (((_a = group.groups) == null ? void 0 : _a.length) ?? 0) > 0;
|
|
126
|
+
const folder = { key: group.key, kind: "group" };
|
|
127
|
+
const folderDrag = dragState.props({ drag: folder, drop: folder });
|
|
128
|
+
const leafFolderDrag = group.item ? dragState.props({
|
|
129
|
+
drag: { key: group.item.key, kind: "item" },
|
|
130
|
+
drop: folder
|
|
131
|
+
}) : void 0;
|
|
101
132
|
const fallback = group.defaultCollapsed ?? false;
|
|
102
133
|
const collapsed = !group.forceExpanded && groupState.isCollapsed(group.key, fallback);
|
|
103
134
|
const toggle = () => groupState.toggle(group.key, fallback);
|
|
@@ -114,7 +145,11 @@ function NavGroupRows({
|
|
|
114
145
|
"div",
|
|
115
146
|
{
|
|
116
147
|
ref: setContextTarget,
|
|
117
|
-
className:
|
|
148
|
+
className: cn(
|
|
149
|
+
"flex items-center gap-2.5 rounded-md px-density-2 py-1.5 text-[13px] text-sidebar-foreground",
|
|
150
|
+
folderDrag && NAV_DRAG_ROW_CLASS
|
|
151
|
+
),
|
|
152
|
+
...folderDrag,
|
|
118
153
|
children: [
|
|
119
154
|
groupIcon,
|
|
120
155
|
/* @__PURE__ */ jsx("span", { className: "flex-1 truncate text-left", children: group.label }),
|
|
@@ -140,6 +175,7 @@ function NavGroupRows({
|
|
|
140
175
|
item: group.item,
|
|
141
176
|
collapsed: false,
|
|
142
177
|
renderLink,
|
|
178
|
+
dragState,
|
|
143
179
|
...onNavigate ? { onNavigate } : {}
|
|
144
180
|
}
|
|
145
181
|
) }),
|
|
@@ -155,7 +191,11 @@ function NavGroupRows({
|
|
|
155
191
|
"div",
|
|
156
192
|
{
|
|
157
193
|
ref: setContextTarget,
|
|
158
|
-
className:
|
|
194
|
+
className: cn(
|
|
195
|
+
"group/nav flex items-center gap-1",
|
|
196
|
+
leafFolderDrag && NAV_DRAG_ROW_CLASS
|
|
197
|
+
),
|
|
198
|
+
...leafFolderDrag,
|
|
159
199
|
children: [
|
|
160
200
|
/* @__PURE__ */ jsx("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsx(
|
|
161
201
|
NavItemRow,
|
|
@@ -199,8 +239,10 @@ function NavGroupRows({
|
|
|
199
239
|
"aria-expanded": !collapsed,
|
|
200
240
|
className: cn(
|
|
201
241
|
"flex items-center gap-2.5 rounded-md px-density-2 py-1.5 transition-colors hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
|
|
202
|
-
variant === "tree" ? "text-[13px] text-sidebar-foreground" : "text-[11px] font-semibold uppercase tracking-[0.14em] text-sidebar-foreground/55"
|
|
242
|
+
variant === "tree" ? "text-[13px] text-sidebar-foreground" : "text-[11px] font-semibold uppercase tracking-[0.14em] text-sidebar-foreground/55",
|
|
243
|
+
folderDrag && NAV_DRAG_ROW_CLASS
|
|
203
244
|
),
|
|
245
|
+
...folderDrag,
|
|
204
246
|
children: [
|
|
205
247
|
groupIcon,
|
|
206
248
|
/* @__PURE__ */ jsx("span", { className: "flex-1 truncate text-left", children: group.label }),
|
|
@@ -225,6 +267,7 @@ function NavGroupRows({
|
|
|
225
267
|
item,
|
|
226
268
|
collapsed: false,
|
|
227
269
|
renderLink,
|
|
270
|
+
dragState,
|
|
228
271
|
...onNavigate ? { onNavigate } : {}
|
|
229
272
|
},
|
|
230
273
|
item.key
|
|
@@ -236,6 +279,7 @@ function NavGroupRows({
|
|
|
236
279
|
variant,
|
|
237
280
|
renderLink,
|
|
238
281
|
groupState,
|
|
282
|
+
dragState,
|
|
239
283
|
...onNavigate ? { onNavigate } : {}
|
|
240
284
|
},
|
|
241
285
|
child.key
|
|
@@ -246,6 +290,7 @@ function NavGroupRows({
|
|
|
246
290
|
item,
|
|
247
291
|
collapsed: false,
|
|
248
292
|
renderLink,
|
|
293
|
+
dragState,
|
|
249
294
|
...onNavigate ? { onNavigate } : {}
|
|
250
295
|
},
|
|
251
296
|
item.key
|
|
@@ -257,9 +302,12 @@ function NavItemRow({
|
|
|
257
302
|
item,
|
|
258
303
|
collapsed,
|
|
259
304
|
renderLink,
|
|
305
|
+
dragState,
|
|
260
306
|
onNavigate
|
|
261
307
|
}) {
|
|
262
308
|
const [contextTarget, setContextTarget] = useState(null);
|
|
309
|
+
const target = { key: item.key, kind: "item" };
|
|
310
|
+
const dragProps = dragState == null ? void 0 : dragState.props({ drag: target, drop: target });
|
|
263
311
|
const className = cn(
|
|
264
312
|
"flex w-full items-center gap-2.5 rounded-md px-density-2 py-1.5 text-left text-[13px] text-sidebar-foreground transition-colors hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
|
|
265
313
|
collapsed && "justify-center px-0",
|
|
@@ -289,18 +337,26 @@ function NavItemRow({
|
|
|
289
337
|
children
|
|
290
338
|
}
|
|
291
339
|
);
|
|
292
|
-
if (!item.contextMenu) return externalLink;
|
|
293
|
-
return /* @__PURE__ */ jsxs(
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
340
|
+
if (!item.contextMenu && !dragProps) return externalLink;
|
|
341
|
+
return /* @__PURE__ */ jsxs(
|
|
342
|
+
"div",
|
|
343
|
+
{
|
|
344
|
+
ref: setContextTarget,
|
|
345
|
+
className: cn("w-full", dragProps && NAV_DRAG_ROW_CLASS),
|
|
346
|
+
...dragProps,
|
|
347
|
+
children: [
|
|
348
|
+
externalLink,
|
|
349
|
+
item.contextMenu && /* @__PURE__ */ jsx(
|
|
350
|
+
ContextMenu,
|
|
351
|
+
{
|
|
352
|
+
contextTarget,
|
|
353
|
+
menuLabel: item.contextMenuLabel ?? `${String(item.label)} actions`,
|
|
354
|
+
menuItems: item.contextMenu
|
|
355
|
+
}
|
|
356
|
+
)
|
|
357
|
+
]
|
|
358
|
+
}
|
|
359
|
+
);
|
|
304
360
|
}
|
|
305
361
|
const link = renderLink({
|
|
306
362
|
key: item.key,
|
|
@@ -309,13 +365,14 @@ function NavItemRow({
|
|
|
309
365
|
children,
|
|
310
366
|
...title ? { title } : {}
|
|
311
367
|
});
|
|
312
|
-
if (!onNavigate && !item.contextMenu) return link;
|
|
368
|
+
if (!onNavigate && !item.contextMenu && !dragProps) return link;
|
|
313
369
|
return /* @__PURE__ */ jsxs(
|
|
314
370
|
"div",
|
|
315
371
|
{
|
|
316
372
|
ref: item.contextMenu ? setContextTarget : void 0,
|
|
317
|
-
className: "w-full",
|
|
373
|
+
className: cn("w-full", dragProps && NAV_DRAG_ROW_CLASS),
|
|
318
374
|
...onNavigate ? { onClick: onNavigate } : {},
|
|
375
|
+
...dragProps,
|
|
319
376
|
children: [
|
|
320
377
|
link,
|
|
321
378
|
item.contextMenu && /* @__PURE__ */ jsx(
|