@flanksource/clicky-ui 0.3.10 → 0.3.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NOTICE.md +85 -0
- package/README.md +33 -2
- package/dist/ai.cjs +71 -5
- package/dist/ai.cjs.map +1 -1
- package/dist/ai.js +71 -5
- package/dist/ai.js.map +1 -1
- package/dist/chat.cjs +17 -13
- package/dist/chat.cjs.map +1 -1
- package/dist/chat.js +8 -4
- package/dist/clicky.d.ts +1 -1
- package/dist/clicky.d.ts.map +1 -1
- package/dist/comments/CommentCard.cjs +84 -38
- package/dist/comments/CommentCard.cjs.map +1 -1
- package/dist/comments/CommentCard.d.ts +1 -1
- package/dist/comments/CommentCard.d.ts.map +1 -1
- package/dist/comments/CommentCard.js +85 -39
- package/dist/comments/CommentCard.js.map +1 -1
- package/dist/comments/CommentComposer.cjs +21 -11
- package/dist/comments/CommentComposer.cjs.map +1 -1
- package/dist/comments/CommentComposer.d.ts.map +1 -1
- package/dist/comments/CommentComposer.js +21 -11
- package/dist/comments/CommentComposer.js.map +1 -1
- package/dist/comments/CommentProvider.cjs +84 -12
- package/dist/comments/CommentProvider.cjs.map +1 -1
- package/dist/comments/CommentProvider.d.ts +4 -2
- package/dist/comments/CommentProvider.d.ts.map +1 -1
- package/dist/comments/CommentProvider.js +86 -14
- package/dist/comments/CommentProvider.js.map +1 -1
- package/dist/comments/CommentSidePanel.cjs +116 -38
- package/dist/comments/CommentSidePanel.cjs.map +1 -1
- package/dist/comments/CommentSidePanel.d.ts +2 -0
- package/dist/comments/CommentSidePanel.d.ts.map +1 -1
- package/dist/comments/CommentSidePanel.js +117 -39
- package/dist/comments/CommentSidePanel.js.map +1 -1
- package/dist/comments/CommentThread.cjs +4 -0
- package/dist/comments/CommentThread.cjs.map +1 -1
- package/dist/comments/CommentThread.d.ts +5 -1
- package/dist/comments/CommentThread.d.ts.map +1 -1
- package/dist/comments/CommentThread.js +4 -0
- package/dist/comments/CommentThread.js.map +1 -1
- package/dist/comments/CommentThreadList.cjs +17 -5
- package/dist/comments/CommentThreadList.cjs.map +1 -1
- package/dist/comments/CommentThreadList.d.ts +3 -1
- package/dist/comments/CommentThreadList.d.ts.map +1 -1
- package/dist/comments/CommentThreadList.js +18 -6
- package/dist/comments/CommentThreadList.js.map +1 -1
- package/dist/comments/comment-context.cjs +88 -0
- package/dist/comments/comment-context.cjs.map +1 -1
- package/dist/comments/comment-context.d.ts +26 -0
- package/dist/comments/comment-context.d.ts.map +1 -1
- package/dist/comments/comment-context.js +89 -1
- package/dist/comments/comment-context.js.map +1 -1
- package/dist/comments.cjs +3 -0
- package/dist/comments.cjs.map +1 -1
- package/dist/comments.d.ts +1 -1
- package/dist/comments.d.ts.map +1 -1
- package/dist/comments.js +4 -1
- package/dist/components/Combobox.cjs +145 -34
- package/dist/components/Combobox.cjs.map +1 -1
- package/dist/components/Combobox.d.ts +24 -1
- package/dist/components/Combobox.d.ts.map +1 -1
- package/dist/components/Combobox.js +147 -36
- package/dist/components/Combobox.js.map +1 -1
- package/dist/components/DatePicker.cjs +1 -1
- package/dist/components/DatePicker.cjs.map +1 -1
- package/dist/components/DatePicker.js +1 -1
- package/dist/components/DatePicker.js.map +1 -1
- package/dist/components/DateTimePicker.cjs +1 -1
- package/dist/components/DateTimePicker.cjs.map +1 -1
- package/dist/components/DateTimePicker.js +1 -1
- package/dist/components/DateTimePicker.js.map +1 -1
- package/dist/components/FilterBar.cjs +41 -459
- package/dist/components/FilterBar.cjs.map +1 -1
- package/dist/components/FilterBar.d.ts +4 -62
- package/dist/components/FilterBar.d.ts.map +1 -1
- package/dist/components/FilterBar.js +13 -430
- package/dist/components/FilterBar.js.map +1 -1
- package/dist/components/InputField.cjs +97 -0
- package/dist/components/InputField.cjs.map +1 -0
- package/dist/components/InputField.d.ts +42 -0
- package/dist/components/InputField.d.ts.map +1 -0
- package/dist/components/InputField.js +97 -0
- package/dist/components/InputField.js.map +1 -0
- package/dist/components/JsonSchemaForm.cjs +90 -15
- package/dist/components/JsonSchemaForm.cjs.map +1 -1
- package/dist/components/JsonSchemaForm.d.ts.map +1 -1
- package/dist/components/JsonSchemaForm.js +92 -17
- package/dist/components/JsonSchemaForm.js.map +1 -1
- package/dist/components/MdxEditorField.cjs.map +1 -1
- package/dist/components/MdxEditorField.d.ts +1 -1
- package/dist/components/MdxEditorField.d.ts.map +1 -1
- package/dist/components/MdxEditorField.js.map +1 -1
- package/dist/components/MdxEditorToolbar.cjs +6 -1
- package/dist/components/MdxEditorToolbar.cjs.map +1 -1
- package/dist/components/MdxEditorToolbar.d.ts.map +1 -1
- package/dist/components/MdxEditorToolbar.js +6 -1
- package/dist/components/MdxEditorToolbar.js.map +1 -1
- package/dist/components/MultiSelect.cjs +0 -1
- package/dist/components/MultiSelect.cjs.map +1 -1
- package/dist/components/MultiSelect.d.ts.map +1 -1
- package/dist/components/MultiSelect.js +0 -1
- package/dist/components/MultiSelect.js.map +1 -1
- package/dist/components/SearchInput.cjs +14 -43
- package/dist/components/SearchInput.cjs.map +1 -1
- package/dist/components/SearchInput.d.ts +6 -5
- package/dist/components/SearchInput.d.ts.map +1 -1
- package/dist/components/SearchInput.js +15 -44
- package/dist/components/SearchInput.js.map +1 -1
- package/dist/components/SecretKeySelector.cjs +155 -67
- package/dist/components/SecretKeySelector.cjs.map +1 -1
- package/dist/components/SecretKeySelector.d.ts +34 -16
- package/dist/components/SecretKeySelector.d.ts.map +1 -1
- package/dist/components/SecretKeySelector.js +158 -70
- package/dist/components/SecretKeySelector.js.map +1 -1
- package/dist/components/SecretKeySelector.model.cjs +32 -0
- package/dist/components/SecretKeySelector.model.cjs.map +1 -0
- package/dist/components/SecretKeySelector.model.d.ts +4 -0
- package/dist/components/SecretKeySelector.model.d.ts.map +1 -0
- package/dist/components/SecretKeySelector.model.js +32 -0
- package/dist/components/SecretKeySelector.model.js.map +1 -0
- package/dist/components/SegmentedControl.cjs +41 -6
- package/dist/components/SegmentedControl.cjs.map +1 -1
- package/dist/components/SegmentedControl.d.ts +7 -3
- package/dist/components/SegmentedControl.d.ts.map +1 -1
- package/dist/components/SegmentedControl.js +41 -6
- package/dist/components/SegmentedControl.js.map +1 -1
- package/dist/components/filter-bar-context.cjs +10 -0
- package/dist/components/filter-bar-context.cjs.map +1 -0
- package/dist/components/filter-bar-context.d.ts +5 -0
- package/dist/components/filter-bar-context.d.ts.map +1 -0
- package/dist/components/filter-bar-context.js +10 -0
- package/dist/components/filter-bar-context.js.map +1 -0
- package/dist/components/filter-bar-field-utils.cjs +119 -0
- package/dist/components/filter-bar-field-utils.cjs.map +1 -0
- package/dist/components/filter-bar-field-utils.d.ts +21 -0
- package/dist/components/filter-bar-field-utils.d.ts.map +1 -0
- package/dist/components/filter-bar-field-utils.js +119 -0
- package/dist/components/filter-bar-field-utils.js.map +1 -0
- package/dist/components/filter-bar-multi.cjs +193 -0
- package/dist/components/filter-bar-multi.cjs.map +1 -0
- package/dist/components/filter-bar-multi.d.ts +74 -0
- package/dist/components/filter-bar-multi.d.ts.map +1 -0
- package/dist/components/filter-bar-multi.js +193 -0
- package/dist/components/filter-bar-multi.js.map +1 -0
- package/dist/components/json-schema-form-array.cjs +81 -10
- package/dist/components/json-schema-form-array.cjs.map +1 -1
- package/dist/components/json-schema-form-array.d.ts.map +1 -1
- package/dist/components/json-schema-form-array.js +82 -11
- package/dist/components/json-schema-form-array.js.map +1 -1
- package/dist/components/json-schema-form-fields.cjs +156 -24
- package/dist/components/json-schema-form-fields.cjs.map +1 -1
- package/dist/components/json-schema-form-fields.d.ts +9 -1
- package/dist/components/json-schema-form-fields.d.ts.map +1 -1
- package/dist/components/json-schema-form-fields.js +156 -24
- package/dist/components/json-schema-form-fields.js.map +1 -1
- package/dist/components/json-schema-form-object.cjs +35 -12
- package/dist/components/json-schema-form-object.cjs.map +1 -1
- package/dist/components/json-schema-form-object.d.ts.map +1 -1
- package/dist/components/json-schema-form-object.js +37 -14
- package/dist/components/json-schema-form-object.js.map +1 -1
- package/dist/components/json-schema-form-render.cjs +21 -3
- package/dist/components/json-schema-form-render.cjs.map +1 -1
- package/dist/components/json-schema-form-render.d.ts.map +1 -1
- package/dist/components/json-schema-form-render.js +22 -4
- package/dist/components/json-schema-form-render.js.map +1 -1
- package/dist/components/json-schema-form-resolve.cjs +123 -13
- package/dist/components/json-schema-form-resolve.cjs.map +1 -1
- package/dist/components/json-schema-form-resolve.d.ts +1 -0
- package/dist/components/json-schema-form-resolve.d.ts.map +1 -1
- package/dist/components/json-schema-form-resolve.js +123 -13
- package/dist/components/json-schema-form-resolve.js.map +1 -1
- package/dist/components/json-schema-form-types.d.ts +30 -1
- package/dist/components/json-schema-form-types.d.ts.map +1 -1
- package/dist/components/json-schema-form-utils.cjs +19 -0
- package/dist/components/json-schema-form-utils.cjs.map +1 -1
- package/dist/components/json-schema-form-utils.d.ts +3 -0
- package/dist/components/json-schema-form-utils.d.ts.map +1 -1
- package/dist/components/json-schema-form-utils.js +19 -0
- package/dist/components/json-schema-form-utils.js.map +1 -1
- package/dist/components/loading.cjs +17 -0
- package/dist/components/loading.cjs.map +1 -1
- package/dist/components/loading.d.ts +9 -0
- package/dist/components/loading.d.ts.map +1 -1
- package/dist/components/loading.js +17 -0
- package/dist/components/loading.js.map +1 -1
- package/dist/components/mdx-editor-field-plugins.cjs +28 -4
- package/dist/components/mdx-editor-field-plugins.cjs.map +1 -1
- package/dist/components/mdx-editor-field-plugins.d.ts.map +1 -1
- package/dist/components/mdx-editor-field-plugins.js +28 -4
- package/dist/components/mdx-editor-field-plugins.js.map +1 -1
- package/dist/components/mdx-editor-options.d.ts +23 -1
- package/dist/components/mdx-editor-options.d.ts.map +1 -1
- package/dist/components.cjs +13 -1
- package/dist/components.cjs.map +1 -1
- package/dist/components.d.ts +20 -16
- package/dist/components.d.ts.map +1 -1
- package/dist/components.js +14 -2
- package/dist/components.js.map +1 -1
- package/dist/data/Clicky.cjs +301 -51
- package/dist/data/Clicky.cjs.map +1 -1
- package/dist/data/Clicky.d.ts +21 -3
- package/dist/data/Clicky.d.ts.map +1 -1
- package/dist/data/Clicky.js +301 -51
- package/dist/data/Clicky.js.map +1 -1
- package/dist/data/CodeBlock.cjs +100 -20
- package/dist/data/CodeBlock.cjs.map +1 -1
- package/dist/data/CodeBlock.d.ts +18 -1
- package/dist/data/CodeBlock.d.ts.map +1 -1
- package/dist/data/CodeBlock.js +101 -21
- package/dist/data/CodeBlock.js.map +1 -1
- package/dist/data/CodeDiff.cjs +221 -0
- package/dist/data/CodeDiff.cjs.map +1 -0
- package/dist/data/CodeDiff.d.ts +24 -0
- package/dist/data/CodeDiff.d.ts.map +1 -0
- package/dist/data/CodeDiff.js +221 -0
- package/dist/data/CodeDiff.js.map +1 -0
- package/dist/data/DataTable.cjs +359 -219
- package/dist/data/DataTable.cjs.map +1 -1
- package/dist/data/DataTable.d.ts +12 -0
- package/dist/data/DataTable.d.ts.map +1 -1
- package/dist/data/DataTable.js +353 -213
- package/dist/data/DataTable.js.map +1 -1
- package/dist/data/FilterPill.cjs +43 -35
- package/dist/data/FilterPill.cjs.map +1 -1
- package/dist/data/FilterPill.d.ts +9 -1
- package/dist/data/FilterPill.d.ts.map +1 -1
- package/dist/data/FilterPill.js +43 -35
- package/dist/data/FilterPill.js.map +1 -1
- package/dist/data/FixtureEditor/FenceForm.cjs +123 -0
- package/dist/data/FixtureEditor/FenceForm.cjs.map +1 -0
- package/dist/data/FixtureEditor/FenceForm.d.ts +14 -0
- package/dist/data/FixtureEditor/FenceForm.d.ts.map +1 -0
- package/dist/data/FixtureEditor/FenceForm.js +123 -0
- package/dist/data/FixtureEditor/FenceForm.js.map +1 -0
- package/dist/data/FixtureEditor/FixtureEditor.cjs +236 -0
- package/dist/data/FixtureEditor/FixtureEditor.cjs.map +1 -0
- package/dist/data/FixtureEditor/FixtureEditor.d.ts +3 -0
- package/dist/data/FixtureEditor/FixtureEditor.d.ts.map +1 -0
- package/dist/data/FixtureEditor/FixtureEditor.js +236 -0
- package/dist/data/FixtureEditor/FixtureEditor.js.map +1 -0
- package/dist/data/FixtureEditor/FixtureFenceCodeBlockEditor.cjs +128 -0
- package/dist/data/FixtureEditor/FixtureFenceCodeBlockEditor.cjs.map +1 -0
- package/dist/data/FixtureEditor/FixtureFenceCodeBlockEditor.d.ts +8 -0
- package/dist/data/FixtureEditor/FixtureFenceCodeBlockEditor.d.ts.map +1 -0
- package/dist/data/FixtureEditor/FixtureFenceCodeBlockEditor.js +128 -0
- package/dist/data/FixtureEditor/FixtureFenceCodeBlockEditor.js.map +1 -0
- package/dist/data/FixtureEditor/FixtureFrontmatterDialog.cjs +148 -0
- package/dist/data/FixtureEditor/FixtureFrontmatterDialog.cjs.map +1 -0
- package/dist/data/FixtureEditor/FixtureFrontmatterDialog.d.ts +11 -0
- package/dist/data/FixtureEditor/FixtureFrontmatterDialog.d.ts.map +1 -0
- package/dist/data/FixtureEditor/FixtureFrontmatterDialog.js +148 -0
- package/dist/data/FixtureEditor/FixtureFrontmatterDialog.js.map +1 -0
- package/dist/data/FixtureEditor/RawFenceEditor.cjs +35 -0
- package/dist/data/FixtureEditor/RawFenceEditor.cjs.map +1 -0
- package/dist/data/FixtureEditor/RawFenceEditor.d.ts +11 -0
- package/dist/data/FixtureEditor/RawFenceEditor.d.ts.map +1 -0
- package/dist/data/FixtureEditor/RawFenceEditor.js +35 -0
- package/dist/data/FixtureEditor/RawFenceEditor.js.map +1 -0
- package/dist/data/FixtureEditor/fixture-blocks.cjs +130 -0
- package/dist/data/FixtureEditor/fixture-blocks.cjs.map +1 -0
- package/dist/data/FixtureEditor/fixture-blocks.d.ts +26 -0
- package/dist/data/FixtureEditor/fixture-blocks.d.ts.map +1 -0
- package/dist/data/FixtureEditor/fixture-blocks.js +130 -0
- package/dist/data/FixtureEditor/fixture-blocks.js.map +1 -0
- package/dist/data/FixtureEditor/fixture-code-block-model.cjs +17 -0
- package/dist/data/FixtureEditor/fixture-code-block-model.cjs.map +1 -0
- package/dist/data/FixtureEditor/fixture-code-block-model.d.ts +3 -0
- package/dist/data/FixtureEditor/fixture-code-block-model.d.ts.map +1 -0
- package/dist/data/FixtureEditor/fixture-code-block-model.js +17 -0
- package/dist/data/FixtureEditor/fixture-code-block-model.js.map +1 -0
- package/dist/data/FixtureEditor/fixture-frontmatter.cjs +300 -0
- package/dist/data/FixtureEditor/fixture-frontmatter.cjs.map +1 -0
- package/dist/data/FixtureEditor/fixture-frontmatter.d.ts +32 -0
- package/dist/data/FixtureEditor/fixture-frontmatter.d.ts.map +1 -0
- package/dist/data/FixtureEditor/fixture-frontmatter.js +300 -0
- package/dist/data/FixtureEditor/fixture-frontmatter.js.map +1 -0
- package/dist/data/FixtureEditor/index.d.ts +5 -0
- package/dist/data/FixtureEditor/index.d.ts.map +1 -0
- package/dist/data/FixtureEditor/types.d.ts +44 -0
- package/dist/data/FixtureEditor/types.d.ts.map +1 -0
- package/dist/data/LogDetails.cjs +4 -4
- package/dist/data/LogDetails.cjs.map +1 -1
- package/dist/data/LogDetails.js +4 -4
- package/dist/data/LogDetails.js.map +1 -1
- package/dist/data/Markdown.cjs +29 -1
- package/dist/data/Markdown.cjs.map +1 -1
- package/dist/data/Markdown.d.ts +3 -2
- package/dist/data/Markdown.d.ts.map +1 -1
- package/dist/data/Markdown.js +30 -2
- package/dist/data/Markdown.js.map +1 -1
- package/dist/data/Properties.cjs +160 -40
- package/dist/data/Properties.cjs.map +1 -1
- package/dist/data/Properties.d.ts +8 -2
- package/dist/data/Properties.d.ts.map +1 -1
- package/dist/data/Properties.js +160 -40
- package/dist/data/Properties.js.map +1 -1
- package/dist/data/SchemaViewer.cjs +1 -1
- package/dist/data/SchemaViewer.cjs.map +1 -1
- package/dist/data/SchemaViewer.js +2 -2
- package/dist/data/SchemaViewer.js.map +1 -1
- package/dist/data/ai/ChatWindow.cjs +336 -18
- package/dist/data/ai/ChatWindow.cjs.map +1 -1
- package/dist/data/ai/ChatWindow.d.ts +13 -4
- package/dist/data/ai/ChatWindow.d.ts.map +1 -1
- package/dist/data/ai/ChatWindow.js +336 -18
- package/dist/data/ai/ChatWindow.js.map +1 -1
- package/dist/data/ai/ChatWindow.test-utils.d.ts +12 -0
- package/dist/data/ai/ChatWindow.test-utils.d.ts.map +1 -0
- package/dist/data/ai/PolicyTree.cjs +265 -0
- package/dist/data/ai/PolicyTree.cjs.map +1 -0
- package/dist/data/ai/PolicyTree.d.ts +33 -0
- package/dist/data/ai/PolicyTree.d.ts.map +1 -0
- package/dist/data/ai/PolicyTree.js +265 -0
- package/dist/data/ai/PolicyTree.js.map +1 -0
- package/dist/data/ai/PromptPicker/PromptPicker.cjs +251 -0
- package/dist/data/ai/PromptPicker/PromptPicker.cjs.map +1 -0
- package/dist/data/ai/PromptPicker/PromptPicker.d.ts +31 -0
- package/dist/data/ai/PromptPicker/PromptPicker.d.ts.map +1 -0
- package/dist/data/ai/PromptPicker/PromptPicker.js +251 -0
- package/dist/data/ai/PromptPicker/PromptPicker.js.map +1 -0
- package/dist/data/ai/PromptPicker/index.d.ts +4 -0
- package/dist/data/ai/PromptPicker/index.d.ts.map +1 -0
- package/dist/data/ai/PromptPicker/prompt-runtime.cjs +39 -0
- package/dist/data/ai/PromptPicker/prompt-runtime.cjs.map +1 -0
- package/dist/data/ai/PromptPicker/prompt-runtime.d.ts +9 -0
- package/dist/data/ai/PromptPicker/prompt-runtime.d.ts.map +1 -0
- package/dist/data/ai/PromptPicker/prompt-runtime.js +39 -0
- package/dist/data/ai/PromptPicker/prompt-runtime.js.map +1 -0
- package/dist/data/ai/PromptPicker/types.d.ts +25 -0
- package/dist/data/ai/PromptPicker/types.d.ts.map +1 -0
- package/dist/data/ai/PromptRunEditor/index.cjs +242 -0
- package/dist/data/ai/PromptRunEditor/index.cjs.map +1 -0
- package/dist/data/ai/PromptRunEditor/index.d.ts +42 -0
- package/dist/data/ai/PromptRunEditor/index.d.ts.map +1 -0
- package/dist/data/ai/PromptRunEditor/index.js +242 -0
- package/dist/data/ai/PromptRunEditor/index.js.map +1 -0
- package/dist/data/ai/RuntimeModePicker.cjs +61 -0
- package/dist/data/ai/RuntimeModePicker.cjs.map +1 -0
- package/dist/data/ai/RuntimeModePicker.d.ts +12 -0
- package/dist/data/ai/RuntimeModePicker.d.ts.map +1 -0
- package/dist/data/ai/RuntimeModePicker.js +61 -0
- package/dist/data/ai/RuntimeModePicker.js.map +1 -0
- package/dist/data/ai/SessionInspector.cjs +432 -0
- package/dist/data/ai/SessionInspector.cjs.map +1 -0
- package/dist/data/ai/SessionInspector.d.ts +11 -0
- package/dist/data/ai/SessionInspector.d.ts.map +1 -0
- package/dist/data/ai/SessionInspector.js +432 -0
- package/dist/data/ai/SessionInspector.js.map +1 -0
- package/dist/data/ai/SessionViewer.cjs +208 -196
- package/dist/data/ai/SessionViewer.cjs.map +1 -1
- package/dist/data/ai/SessionViewer.d.ts +39 -3
- package/dist/data/ai/SessionViewer.d.ts.map +1 -1
- package/dist/data/ai/SessionViewer.fixtures.d.ts.map +1 -1
- package/dist/data/ai/SessionViewer.grouping.cjs +44 -0
- package/dist/data/ai/SessionViewer.grouping.cjs.map +1 -0
- package/dist/data/ai/SessionViewer.grouping.d.ts +17 -0
- package/dist/data/ai/SessionViewer.grouping.d.ts.map +1 -0
- package/dist/data/ai/SessionViewer.grouping.js +44 -0
- package/dist/data/ai/SessionViewer.grouping.js.map +1 -0
- package/dist/data/ai/SessionViewer.input.cjs +219 -0
- package/dist/data/ai/SessionViewer.input.cjs.map +1 -0
- package/dist/data/ai/SessionViewer.input.d.ts +44 -0
- package/dist/data/ai/SessionViewer.input.d.ts.map +1 -0
- package/dist/data/ai/SessionViewer.input.js +219 -0
- package/dist/data/ai/SessionViewer.input.js.map +1 -0
- package/dist/data/ai/SessionViewer.js +209 -197
- package/dist/data/ai/SessionViewer.js.map +1 -1
- package/dist/data/ai/SessionViewer.model.cjs +203 -105
- package/dist/data/ai/SessionViewer.model.cjs.map +1 -1
- package/dist/data/ai/SessionViewer.model.d.ts +45 -7
- package/dist/data/ai/SessionViewer.model.d.ts.map +1 -1
- package/dist/data/ai/SessionViewer.model.js +203 -105
- package/dist/data/ai/SessionViewer.model.js.map +1 -1
- package/dist/data/ai/SessionViewer.rows.cjs +751 -0
- package/dist/data/ai/SessionViewer.rows.cjs.map +1 -0
- package/dist/data/ai/SessionViewer.rows.d.ts +20 -0
- package/dist/data/ai/SessionViewer.rows.d.ts.map +1 -0
- package/dist/data/ai/SessionViewer.rows.js +751 -0
- package/dist/data/ai/SessionViewer.rows.js.map +1 -0
- package/dist/data/ai/SessionViewer.unified.d.ts +193 -0
- package/dist/data/ai/SessionViewer.unified.d.ts.map +1 -0
- package/dist/data/ai/SessionViewerMenu.cjs +57 -68
- package/dist/data/ai/SessionViewerMenu.cjs.map +1 -1
- package/dist/data/ai/SessionViewerMenu.d.ts +3 -3
- package/dist/data/ai/SessionViewerMenu.d.ts.map +1 -1
- package/dist/data/ai/SessionViewerMenu.js +58 -69
- package/dist/data/ai/SessionViewerMenu.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/CLIArgsSection.cjs +25 -0
- package/dist/data/ai/SpecRuntimeEditor/CLIArgsSection.cjs.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/CLIArgsSection.d.ts +12 -0
- package/dist/data/ai/SpecRuntimeEditor/CLIArgsSection.d.ts.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/CLIArgsSection.js +25 -0
- package/dist/data/ai/SpecRuntimeEditor/CLIArgsSection.js.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/CommitSection.cjs +44 -0
- package/dist/data/ai/SpecRuntimeEditor/CommitSection.cjs.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/CommitSection.d.ts +6 -0
- package/dist/data/ai/SpecRuntimeEditor/CommitSection.d.ts.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/CommitSection.js +44 -0
- package/dist/data/ai/SpecRuntimeEditor/CommitSection.js.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/EnvironmentSection.cjs +137 -0
- package/dist/data/ai/SpecRuntimeEditor/EnvironmentSection.cjs.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/EnvironmentSection.d.ts +12 -0
- package/dist/data/ai/SpecRuntimeEditor/EnvironmentSection.d.ts.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/EnvironmentSection.js +137 -0
- package/dist/data/ai/SpecRuntimeEditor/EnvironmentSection.js.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/Footer.cjs +29 -0
- package/dist/data/ai/SpecRuntimeEditor/Footer.cjs.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/Footer.d.ts +8 -0
- package/dist/data/ai/SpecRuntimeEditor/Footer.d.ts.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/Footer.js +29 -0
- package/dist/data/ai/SpecRuntimeEditor/Footer.js.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/ModelSection.cjs +481 -0
- package/dist/data/ai/SpecRuntimeEditor/ModelSection.cjs.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/ModelSection.d.ts +16 -0
- package/dist/data/ai/SpecRuntimeEditor/ModelSection.d.ts.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/ModelSection.js +481 -0
- package/dist/data/ai/SpecRuntimeEditor/ModelSection.js.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.cjs +421 -0
- package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.cjs.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.d.ts +17 -0
- package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.d.ts.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.js +421 -0
- package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.js.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/PresetCards.d.ts +8 -0
- package/dist/data/ai/SpecRuntimeEditor/PresetCards.d.ts.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/PromptSection.cjs +98 -0
- package/dist/data/ai/SpecRuntimeEditor/PromptSection.cjs.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/PromptSection.d.ts +10 -0
- package/dist/data/ai/SpecRuntimeEditor/PromptSection.d.ts.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/PromptSection.js +98 -0
- package/dist/data/ai/SpecRuntimeEditor/PromptSection.js.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/Rail.cjs +23 -0
- package/dist/data/ai/SpecRuntimeEditor/Rail.cjs.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/Rail.d.ts +7 -0
- package/dist/data/ai/SpecRuntimeEditor/Rail.d.ts.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/Rail.js +23 -0
- package/dist/data/ai/SpecRuntimeEditor/Rail.js.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/SectionCard.cjs +77 -0
- package/dist/data/ai/SpecRuntimeEditor/SectionCard.cjs.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/SectionCard.d.ts +14 -0
- package/dist/data/ai/SpecRuntimeEditor/SectionCard.d.ts.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/SectionCard.js +77 -0
- package/dist/data/ai/SpecRuntimeEditor/SectionCard.js.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/VerifySection.cjs +65 -0
- package/dist/data/ai/SpecRuntimeEditor/VerifySection.cjs.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/VerifySection.d.ts +12 -0
- package/dist/data/ai/SpecRuntimeEditor/VerifySection.d.ts.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/VerifySection.js +65 -0
- package/dist/data/ai/SpecRuntimeEditor/VerifySection.js.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.cjs +227 -0
- package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.cjs.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.d.ts +8 -0
- package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.d.ts.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.js +227 -0
- package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.js.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/env-model.cjs +45 -0
- package/dist/data/ai/SpecRuntimeEditor/env-model.cjs.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/env-model.d.ts +7 -0
- package/dist/data/ai/SpecRuntimeEditor/env-model.d.ts.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/env-model.js +45 -0
- package/dist/data/ai/SpecRuntimeEditor/env-model.js.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/fields.cjs +287 -0
- package/dist/data/ai/SpecRuntimeEditor/fields.cjs.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/fields.d.ts +79 -0
- package/dist/data/ai/SpecRuntimeEditor/fields.d.ts.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/fields.js +287 -0
- package/dist/data/ai/SpecRuntimeEditor/fields.js.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/index.cjs +213 -0
- package/dist/data/ai/SpecRuntimeEditor/index.cjs.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/index.d.ts +41 -0
- package/dist/data/ai/SpecRuntimeEditor/index.d.ts.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/index.js +213 -0
- package/dist/data/ai/SpecRuntimeEditor/index.js.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/permissions-model.cjs +252 -0
- package/dist/data/ai/SpecRuntimeEditor/permissions-model.cjs.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/permissions-model.d.ts +36 -0
- package/dist/data/ai/SpecRuntimeEditor/permissions-model.d.ts.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/permissions-model.js +252 -0
- package/dist/data/ai/SpecRuntimeEditor/permissions-model.js.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/presets.cjs +214 -0
- package/dist/data/ai/SpecRuntimeEditor/presets.cjs.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/presets.d.ts +35 -0
- package/dist/data/ai/SpecRuntimeEditor/presets.d.ts.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/presets.js +214 -0
- package/dist/data/ai/SpecRuntimeEditor/presets.js.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/summaries.cjs +15 -0
- package/dist/data/ai/SpecRuntimeEditor/summaries.cjs.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/summaries.d.ts +13 -0
- package/dist/data/ai/SpecRuntimeEditor/summaries.d.ts.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/summaries.js +15 -0
- package/dist/data/ai/SpecRuntimeEditor/summaries.js.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/types.cjs +74 -0
- package/dist/data/ai/SpecRuntimeEditor/types.cjs.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/types.d.ts +19 -0
- package/dist/data/ai/SpecRuntimeEditor/types.d.ts.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/types.js +74 -0
- package/dist/data/ai/SpecRuntimeEditor/types.js.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/update.cjs +144 -0
- package/dist/data/ai/SpecRuntimeEditor/update.cjs.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/update.d.ts +28 -0
- package/dist/data/ai/SpecRuntimeEditor/update.d.ts.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/update.js +144 -0
- package/dist/data/ai/SpecRuntimeEditor/update.js.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/use-scrollspy.cjs +55 -0
- package/dist/data/ai/SpecRuntimeEditor/use-scrollspy.cjs.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/use-scrollspy.d.ts +9 -0
- package/dist/data/ai/SpecRuntimeEditor/use-scrollspy.d.ts.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/use-scrollspy.js +55 -0
- package/dist/data/ai/SpecRuntimeEditor/use-scrollspy.js.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor.model.cjs +398 -0
- package/dist/data/ai/SpecRuntimeEditor.model.cjs.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor.model.d.ts +169 -0
- package/dist/data/ai/SpecRuntimeEditor.model.d.ts.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor.model.js +398 -0
- package/dist/data/ai/SpecRuntimeEditor.model.js.map +1 -0
- package/dist/data/ai/ToolPreferences.cjs +705 -165
- package/dist/data/ai/ToolPreferences.cjs.map +1 -1
- package/dist/data/ai/ToolPreferences.d.ts +29 -5
- package/dist/data/ai/ToolPreferences.d.ts.map +1 -1
- package/dist/data/ai/ToolPreferences.js +707 -167
- package/dist/data/ai/ToolPreferences.js.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.cjs +549 -0
- package/dist/data/ai/ToolSchemaBrowser.cjs.map +1 -0
- package/dist/data/ai/ToolSchemaBrowser.d.ts +7 -0
- package/dist/data/ai/ToolSchemaBrowser.d.ts.map +1 -0
- package/dist/data/ai/ToolSchemaBrowser.js +549 -0
- package/dist/data/ai/ToolSchemaBrowser.js.map +1 -0
- package/dist/data/ai/agent-action-icons.cjs +78 -0
- package/dist/data/ai/agent-action-icons.cjs.map +1 -0
- package/dist/data/ai/agent-action-icons.d.ts +22 -0
- package/dist/data/ai/agent-action-icons.d.ts.map +1 -0
- package/dist/data/ai/agent-action-icons.js +78 -0
- package/dist/data/ai/agent-action-icons.js.map +1 -0
- package/dist/data/ai/index.d.ts +21 -6
- package/dist/data/ai/index.d.ts.map +1 -1
- package/dist/data/ai/model-capabilities.cjs +23 -0
- package/dist/data/ai/model-capabilities.cjs.map +1 -0
- package/dist/data/ai/model-capabilities.d.ts +9 -0
- package/dist/data/ai/model-capabilities.d.ts.map +1 -0
- package/dist/data/ai/model-capabilities.js +23 -0
- package/dist/data/ai/model-capabilities.js.map +1 -0
- package/dist/data/ai/runtime-mode.cjs +133 -0
- package/dist/data/ai/runtime-mode.cjs.map +1 -0
- package/dist/data/ai/runtime-mode.d.ts +31 -0
- package/dist/data/ai/runtime-mode.d.ts.map +1 -0
- package/dist/data/ai/runtime-mode.js +133 -0
- package/dist/data/ai/runtime-mode.js.map +1 -0
- package/dist/data/ai/session-categories.cjs +34 -0
- package/dist/data/ai/session-categories.cjs.map +1 -1
- package/dist/data/ai/session-categories.d.ts +2 -0
- package/dist/data/ai/session-categories.d.ts.map +1 -1
- package/dist/data/ai/session-categories.js +34 -0
- package/dist/data/ai/session-categories.js.map +1 -1
- package/dist/data/ai/session-cost.cjs +13 -0
- package/dist/data/ai/session-cost.cjs.map +1 -0
- package/dist/data/ai/session-cost.d.ts +8 -0
- package/dist/data/ai/session-cost.d.ts.map +1 -0
- package/dist/data/ai/session-cost.js +13 -0
- package/dist/data/ai/session-cost.js.map +1 -0
- package/dist/data/ai/tool-name.d.ts +10 -0
- package/dist/data/ai/tool-name.d.ts.map +1 -0
- package/dist/data/ai/use-session-scroll.cjs +96 -0
- package/dist/data/ai/use-session-scroll.cjs.map +1 -0
- package/dist/data/ai/use-session-scroll.d.ts +43 -0
- package/dist/data/ai/use-session-scroll.d.ts.map +1 -0
- package/dist/data/ai/use-session-scroll.js +96 -0
- package/dist/data/ai/use-session-scroll.js.map +1 -0
- package/dist/data/cells/TagList.cjs +4 -2
- package/dist/data/cells/TagList.cjs.map +1 -1
- package/dist/data/cells/TagList.d.ts +2 -1
- package/dist/data/cells/TagList.d.ts.map +1 -1
- package/dist/data/cells/TagList.js +4 -2
- package/dist/data/cells/TagList.js.map +1 -1
- package/dist/data/chat/Chat.cjs +49 -15
- package/dist/data/chat/Chat.cjs.map +1 -1
- package/dist/data/chat/Chat.d.ts +16 -2
- package/dist/data/chat/Chat.d.ts.map +1 -1
- package/dist/data/chat/Chat.js +49 -15
- package/dist/data/chat/Chat.js.map +1 -1
- package/dist/data/chat/ContextMeter.cjs +164 -0
- package/dist/data/chat/ContextMeter.cjs.map +1 -0
- package/dist/data/chat/ContextMeter.d.ts +50 -0
- package/dist/data/chat/ContextMeter.d.ts.map +1 -0
- package/dist/data/chat/ContextMeter.js +164 -0
- package/dist/data/chat/ContextMeter.js.map +1 -0
- package/dist/data/chat/ModelSelector.cjs +139 -10
- package/dist/data/chat/ModelSelector.cjs.map +1 -1
- package/dist/data/chat/ModelSelector.d.ts +44 -3
- package/dist/data/chat/ModelSelector.d.ts.map +1 -1
- package/dist/data/chat/ModelSelector.js +141 -12
- package/dist/data/chat/ModelSelector.js.map +1 -1
- package/dist/data/chat/clickyOperationsToTools.cjs +83 -69
- package/dist/data/chat/clickyOperationsToTools.cjs.map +1 -1
- package/dist/data/chat/clickyOperationsToTools.d.ts +3 -3
- package/dist/data/chat/clickyOperationsToTools.d.ts.map +1 -1
- package/dist/data/chat/clickyOperationsToTools.js +83 -69
- package/dist/data/chat/clickyOperationsToTools.js.map +1 -1
- package/dist/data/chat/effort-icons.cjs +43 -0
- package/dist/data/chat/effort-icons.cjs.map +1 -0
- package/dist/data/chat/effort-icons.d.ts +10 -0
- package/dist/data/chat/effort-icons.d.ts.map +1 -0
- package/dist/data/chat/effort-icons.js +43 -0
- package/dist/data/chat/effort-icons.js.map +1 -0
- package/dist/data/chat/index.d.ts +3 -3
- package/dist/data/chat/index.d.ts.map +1 -1
- package/dist/data/chat/provider-icons.cjs +25 -6
- package/dist/data/chat/provider-icons.cjs.map +1 -1
- package/dist/data/chat/provider-icons.d.ts +3 -5
- package/dist/data/chat/provider-icons.d.ts.map +1 -1
- package/dist/data/chat/provider-icons.js +25 -6
- package/dist/data/chat/provider-icons.js.map +1 -1
- package/dist/data/chat/types.cjs +42 -0
- package/dist/data/chat/types.cjs.map +1 -1
- package/dist/data/chat/types.d.ts +83 -19
- package/dist/data/chat/types.d.ts.map +1 -1
- package/dist/data/chat/types.js +42 -0
- package/dist/data/chat/types.js.map +1 -1
- package/dist/data/code-block-actions.cjs +101 -0
- package/dist/data/code-block-actions.cjs.map +1 -0
- package/dist/data/code-block-actions.d.ts +20 -0
- package/dist/data/code-block-actions.d.ts.map +1 -0
- package/dist/data/code-block-actions.js +101 -0
- package/dist/data/code-block-actions.js.map +1 -0
- package/dist/data/code-diff.cjs +106 -0
- package/dist/data/code-diff.cjs.map +1 -0
- package/dist/data/code-diff.d.ts +20 -0
- package/dist/data/code-diff.d.ts.map +1 -0
- package/dist/data/code-diff.js +106 -0
- package/dist/data/code-diff.js.map +1 -0
- package/dist/data/code-highlight.cjs +30 -0
- package/dist/data/code-highlight.cjs.map +1 -1
- package/dist/data/code-highlight.d.ts +8 -0
- package/dist/data/code-highlight.d.ts.map +1 -1
- package/dist/data/code-highlight.js +30 -0
- package/dist/data/code-highlight.js.map +1 -1
- package/dist/data/git/GitChangeList.cjs +410 -0
- package/dist/data/git/GitChangeList.cjs.map +1 -0
- package/dist/data/git/GitChangeList.d.ts +69 -0
- package/dist/data/git/GitChangeList.d.ts.map +1 -0
- package/dist/data/git/GitChangeList.js +410 -0
- package/dist/data/git/GitChangeList.js.map +1 -0
- package/dist/data/git/git-dates.cjs +37 -0
- package/dist/data/git/git-dates.cjs.map +1 -0
- package/dist/data/git/git-dates.d.ts +4 -0
- package/dist/data/git/git-dates.d.ts.map +1 -0
- package/dist/data/git/git-dates.js +37 -0
- package/dist/data/git/git-dates.js.map +1 -0
- package/dist/data/git/index.d.ts +3 -0
- package/dist/data/git/index.d.ts.map +1 -0
- package/dist/data/query-browser/QueryBrowser.cjs +323 -0
- package/dist/data/query-browser/QueryBrowser.cjs.map +1 -0
- package/dist/data/query-browser/QueryBrowser.completion.cjs +99 -0
- package/dist/data/query-browser/QueryBrowser.completion.cjs.map +1 -0
- package/dist/data/query-browser/QueryBrowser.completion.d.ts +34 -0
- package/dist/data/query-browser/QueryBrowser.completion.d.ts.map +1 -0
- package/dist/data/query-browser/QueryBrowser.completion.js +99 -0
- package/dist/data/query-browser/QueryBrowser.completion.js.map +1 -0
- package/dist/data/query-browser/QueryBrowser.d.ts +42 -0
- package/dist/data/query-browser/QueryBrowser.d.ts.map +1 -0
- package/dist/data/query-browser/QueryBrowser.js +323 -0
- package/dist/data/query-browser/QueryBrowser.js.map +1 -0
- package/dist/data/query-browser/index.d.ts +3 -0
- package/dist/data/query-browser/index.d.ts.map +1 -0
- package/dist/data/version-info.cjs +3 -3
- package/dist/data/version-info.cjs.map +1 -1
- package/dist/data/version-info.js +3 -3
- package/dist/data/version-info.js.map +1 -1
- package/dist/data.cjs +164 -0
- package/dist/data.cjs.map +1 -1
- package/dist/data.d.ts +7 -2
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +166 -2
- package/dist/data.js.map +1 -1
- package/dist/icons/components/UiArrowFatUp.cjs +15 -0
- package/dist/icons/components/UiArrowFatUp.cjs.map +1 -0
- package/dist/icons/components/UiArrowFatUp.d.ts +15 -0
- package/dist/icons/components/UiArrowFatUp.d.ts.map +1 -0
- package/dist/icons/components/UiArrowFatUp.js +15 -0
- package/dist/icons/components/UiArrowFatUp.js.map +1 -0
- package/dist/icons/components/UiAsterisk.cjs +15 -0
- package/dist/icons/components/UiAsterisk.cjs.map +1 -0
- package/dist/icons/components/UiAsterisk.d.ts +15 -0
- package/dist/icons/components/UiAsterisk.d.ts.map +1 -0
- package/dist/icons/components/UiAsterisk.js +15 -0
- package/dist/icons/components/UiAsterisk.js.map +1 -0
- package/dist/icons/components/UiAtom.cjs +15 -0
- package/dist/icons/components/UiAtom.cjs.map +1 -0
- package/dist/icons/components/UiAtom.d.ts +15 -0
- package/dist/icons/components/UiAtom.d.ts.map +1 -0
- package/dist/icons/components/UiAtom.js +15 -0
- package/dist/icons/components/UiAtom.js.map +1 -0
- package/dist/icons/components/UiBatteryChargingVertical.cjs +15 -0
- package/dist/icons/components/UiBatteryChargingVertical.cjs.map +1 -0
- package/dist/icons/components/UiBatteryChargingVertical.d.ts +15 -0
- package/dist/icons/components/UiBatteryChargingVertical.d.ts.map +1 -0
- package/dist/icons/components/UiBatteryChargingVertical.js +15 -0
- package/dist/icons/components/UiBatteryChargingVertical.js.map +1 -0
- package/dist/icons/components/UiBatteryVerticalEmpty.cjs +15 -0
- package/dist/icons/components/UiBatteryVerticalEmpty.cjs.map +1 -0
- package/dist/icons/components/UiBatteryVerticalEmpty.d.ts +15 -0
- package/dist/icons/components/UiBatteryVerticalEmpty.d.ts.map +1 -0
- package/dist/icons/components/UiBatteryVerticalEmpty.js +15 -0
- package/dist/icons/components/UiBatteryVerticalEmpty.js.map +1 -0
- package/dist/icons/components/UiBatteryVerticalFull.cjs +15 -0
- package/dist/icons/components/UiBatteryVerticalFull.cjs.map +1 -0
- package/dist/icons/components/UiBatteryVerticalFull.d.ts +15 -0
- package/dist/icons/components/UiBatteryVerticalFull.d.ts.map +1 -0
- package/dist/icons/components/UiBatteryVerticalFull.js +15 -0
- package/dist/icons/components/UiBatteryVerticalFull.js.map +1 -0
- package/dist/icons/components/UiBatteryVerticalHigh.cjs +15 -0
- package/dist/icons/components/UiBatteryVerticalHigh.cjs.map +1 -0
- package/dist/icons/components/UiBatteryVerticalHigh.d.ts +15 -0
- package/dist/icons/components/UiBatteryVerticalHigh.d.ts.map +1 -0
- package/dist/icons/components/UiBatteryVerticalHigh.js +15 -0
- package/dist/icons/components/UiBatteryVerticalHigh.js.map +1 -0
- package/dist/icons/components/UiBatteryVerticalLow.cjs +15 -0
- package/dist/icons/components/UiBatteryVerticalLow.cjs.map +1 -0
- package/dist/icons/components/UiBatteryVerticalLow.d.ts +15 -0
- package/dist/icons/components/UiBatteryVerticalLow.d.ts.map +1 -0
- package/dist/icons/components/UiBatteryVerticalLow.js +15 -0
- package/dist/icons/components/UiBatteryVerticalLow.js.map +1 -0
- package/dist/icons/components/UiBatteryVerticalMedium.cjs +15 -0
- package/dist/icons/components/UiBatteryVerticalMedium.cjs.map +1 -0
- package/dist/icons/components/UiBatteryVerticalMedium.d.ts +15 -0
- package/dist/icons/components/UiBatteryVerticalMedium.d.ts.map +1 -0
- package/dist/icons/components/UiBatteryVerticalMedium.js +15 -0
- package/dist/icons/components/UiBatteryVerticalMedium.js.map +1 -0
- package/dist/icons/components/UiChatDots.cjs +15 -0
- package/dist/icons/components/UiChatDots.cjs.map +1 -0
- package/dist/icons/components/UiChatDots.d.ts +15 -0
- package/dist/icons/components/UiChatDots.d.ts.map +1 -0
- package/dist/icons/components/UiChatDots.js +15 -0
- package/dist/icons/components/UiChatDots.js.map +1 -0
- package/dist/icons/components/UiCoins.cjs +15 -0
- package/dist/icons/components/UiCoins.cjs.map +1 -0
- package/dist/icons/components/UiCoins.d.ts +15 -0
- package/dist/icons/components/UiCoins.d.ts.map +1 -0
- package/dist/icons/components/UiCoins.js +15 -0
- package/dist/icons/components/UiCoins.js.map +1 -0
- package/dist/icons/components/UiCompass.cjs +15 -0
- package/dist/icons/components/UiCompass.cjs.map +1 -0
- package/dist/icons/components/UiCompass.d.ts +15 -0
- package/dist/icons/components/UiCompass.d.ts.map +1 -0
- package/dist/icons/components/UiCompass.js +15 -0
- package/dist/icons/components/UiCompass.js.map +1 -0
- package/dist/icons/components/UiCurrencyDollar.cjs +15 -0
- package/dist/icons/components/UiCurrencyDollar.cjs.map +1 -0
- package/dist/icons/components/UiCurrencyDollar.d.ts +15 -0
- package/dist/icons/components/UiCurrencyDollar.d.ts.map +1 -0
- package/dist/icons/components/UiCurrencyDollar.js +15 -0
- package/dist/icons/components/UiCurrencyDollar.js.map +1 -0
- package/dist/icons/components/UiCursorClick.cjs +15 -0
- package/dist/icons/components/UiCursorClick.cjs.map +1 -0
- package/dist/icons/components/UiCursorClick.d.ts +15 -0
- package/dist/icons/components/UiCursorClick.d.ts.map +1 -0
- package/dist/icons/components/UiCursorClick.js +15 -0
- package/dist/icons/components/UiCursorClick.js.map +1 -0
- package/dist/icons/components/UiCursorText.cjs +15 -0
- package/dist/icons/components/UiCursorText.cjs.map +1 -0
- package/dist/icons/components/UiCursorText.d.ts +15 -0
- package/dist/icons/components/UiCursorText.d.ts.map +1 -0
- package/dist/icons/components/UiCursorText.js +15 -0
- package/dist/icons/components/UiCursorText.js.map +1 -0
- package/dist/icons/components/UiEllipsisBold.cjs +10 -0
- package/dist/icons/components/UiEllipsisBold.cjs.map +1 -0
- package/dist/icons/components/UiEllipsisBold.d.ts +9 -0
- package/dist/icons/components/UiEllipsisBold.d.ts.map +1 -0
- package/dist/icons/components/UiEllipsisBold.js +10 -0
- package/dist/icons/components/UiEllipsisBold.js.map +1 -0
- package/dist/icons/components/UiFastForwardCircle.cjs +15 -0
- package/dist/icons/components/UiFastForwardCircle.cjs.map +1 -0
- package/dist/icons/components/UiFastForwardCircle.d.ts +15 -0
- package/dist/icons/components/UiFastForwardCircle.d.ts.map +1 -0
- package/dist/icons/components/UiFastForwardCircle.js +15 -0
- package/dist/icons/components/UiFastForwardCircle.js.map +1 -0
- package/dist/icons/components/UiFilePlus.cjs +15 -0
- package/dist/icons/components/UiFilePlus.cjs.map +1 -0
- package/dist/icons/components/UiFilePlus.d.ts +15 -0
- package/dist/icons/components/UiFilePlus.d.ts.map +1 -0
- package/dist/icons/components/UiFilePlus.js +15 -0
- package/dist/icons/components/UiFilePlus.js.map +1 -0
- package/dist/icons/components/UiGavel.cjs +15 -0
- package/dist/icons/components/UiGavel.cjs.map +1 -0
- package/dist/icons/components/UiGavel.d.ts +15 -0
- package/dist/icons/components/UiGavel.d.ts.map +1 -0
- package/dist/icons/components/UiGavel.js +15 -0
- package/dist/icons/components/UiGavel.js.map +1 -0
- package/dist/icons/components/UiGearSix.cjs +15 -0
- package/dist/icons/components/UiGearSix.cjs.map +1 -0
- package/dist/icons/components/UiGearSix.d.ts +15 -0
- package/dist/icons/components/UiGearSix.d.ts.map +1 -0
- package/dist/icons/components/UiGearSix.js +15 -0
- package/dist/icons/components/UiGearSix.js.map +1 -0
- package/dist/icons/components/UiGitCommit.cjs +15 -0
- package/dist/icons/components/UiGitCommit.cjs.map +1 -0
- package/dist/icons/components/UiGitCommit.d.ts +15 -0
- package/dist/icons/components/UiGitCommit.d.ts.map +1 -0
- package/dist/icons/components/UiGitCommit.js +15 -0
- package/dist/icons/components/UiGitCommit.js.map +1 -0
- package/dist/icons/components/UiHandPalm.cjs +15 -0
- package/dist/icons/components/UiHandPalm.cjs.map +1 -0
- package/dist/icons/components/UiHandPalm.d.ts +15 -0
- package/dist/icons/components/UiHandPalm.d.ts.map +1 -0
- package/dist/icons/components/UiHandPalm.js +15 -0
- package/dist/icons/components/UiHandPalm.js.map +1 -0
- package/dist/icons/components/UiKeyboard.cjs +15 -0
- package/dist/icons/components/UiKeyboard.cjs.map +1 -0
- package/dist/icons/components/UiKeyboard.d.ts +15 -0
- package/dist/icons/components/UiKeyboard.d.ts.map +1 -0
- package/dist/icons/components/UiKeyboard.js +15 -0
- package/dist/icons/components/UiKeyboard.js.map +1 -0
- package/dist/icons/components/UiListChecks.cjs +15 -0
- package/dist/icons/components/UiListChecks.cjs.map +1 -0
- package/dist/icons/components/UiListChecks.d.ts +15 -0
- package/dist/icons/components/UiListChecks.d.ts.map +1 -0
- package/dist/icons/components/UiListChecks.js +15 -0
- package/dist/icons/components/UiListChecks.js.map +1 -0
- package/dist/icons/components/UiLogoAnthropic.cjs +10 -0
- package/dist/icons/components/UiLogoAnthropic.cjs.map +1 -0
- package/dist/icons/components/UiLogoAnthropic.d.ts +9 -0
- package/dist/icons/components/UiLogoAnthropic.d.ts.map +1 -0
- package/dist/icons/components/UiLogoAnthropic.js +10 -0
- package/dist/icons/components/UiLogoAnthropic.js.map +1 -0
- package/dist/icons/components/UiLogoClaude.cjs +10 -0
- package/dist/icons/components/UiLogoClaude.cjs.map +1 -0
- package/dist/icons/components/UiLogoClaude.d.ts +9 -0
- package/dist/icons/components/UiLogoClaude.d.ts.map +1 -0
- package/dist/icons/components/UiLogoClaude.js +10 -0
- package/dist/icons/components/UiLogoClaude.js.map +1 -0
- package/dist/icons/components/UiLogoDeepseek.cjs +10 -0
- package/dist/icons/components/UiLogoDeepseek.cjs.map +1 -0
- package/dist/icons/components/UiLogoDeepseek.d.ts +9 -0
- package/dist/icons/components/UiLogoDeepseek.d.ts.map +1 -0
- package/dist/icons/components/UiLogoDeepseek.js +10 -0
- package/dist/icons/components/UiLogoDeepseek.js.map +1 -0
- package/dist/icons/components/UiLogoGemini.cjs +10 -0
- package/dist/icons/components/UiLogoGemini.cjs.map +1 -0
- package/dist/icons/components/UiLogoGemini.d.ts +9 -0
- package/dist/icons/components/UiLogoGemini.d.ts.map +1 -0
- package/dist/icons/components/UiLogoGemini.js +10 -0
- package/dist/icons/components/UiLogoGemini.js.map +1 -0
- package/dist/icons/components/UiLogoGoogle.cjs +10 -0
- package/dist/icons/components/UiLogoGoogle.cjs.map +1 -0
- package/dist/icons/components/UiLogoGoogle.d.ts +9 -0
- package/dist/icons/components/UiLogoGoogle.d.ts.map +1 -0
- package/dist/icons/components/UiLogoGoogle.js +10 -0
- package/dist/icons/components/UiLogoGoogle.js.map +1 -0
- package/dist/icons/components/UiLogoHuggingface.cjs +10 -0
- package/dist/icons/components/UiLogoHuggingface.cjs.map +1 -0
- package/dist/icons/components/UiLogoHuggingface.d.ts +9 -0
- package/dist/icons/components/UiLogoHuggingface.d.ts.map +1 -0
- package/dist/icons/components/UiLogoHuggingface.js +10 -0
- package/dist/icons/components/UiLogoHuggingface.js.map +1 -0
- package/dist/icons/components/UiLogoMeta.cjs +10 -0
- package/dist/icons/components/UiLogoMeta.cjs.map +1 -0
- package/dist/icons/components/UiLogoMeta.d.ts +9 -0
- package/dist/icons/components/UiLogoMeta.d.ts.map +1 -0
- package/dist/icons/components/UiLogoMeta.js +10 -0
- package/dist/icons/components/UiLogoMeta.js.map +1 -0
- package/dist/icons/components/UiLogoMistral.cjs +10 -0
- package/dist/icons/components/UiLogoMistral.cjs.map +1 -0
- package/dist/icons/components/UiLogoMistral.d.ts +9 -0
- package/dist/icons/components/UiLogoMistral.d.ts.map +1 -0
- package/dist/icons/components/UiLogoMistral.js +10 -0
- package/dist/icons/components/UiLogoMistral.js.map +1 -0
- package/dist/icons/components/UiLogoOllama.cjs +10 -0
- package/dist/icons/components/UiLogoOllama.cjs.map +1 -0
- package/dist/icons/components/UiLogoOllama.d.ts +9 -0
- package/dist/icons/components/UiLogoOllama.d.ts.map +1 -0
- package/dist/icons/components/UiLogoOllama.js +10 -0
- package/dist/icons/components/UiLogoOllama.js.map +1 -0
- package/dist/icons/components/UiLogoOpenai.cjs +10 -0
- package/dist/icons/components/UiLogoOpenai.cjs.map +1 -0
- package/dist/icons/components/UiLogoOpenai.d.ts +9 -0
- package/dist/icons/components/UiLogoOpenai.d.ts.map +1 -0
- package/dist/icons/components/UiLogoOpenai.js +10 -0
- package/dist/icons/components/UiLogoOpenai.js.map +1 -0
- package/dist/icons/components/UiLogoPerplexity.cjs +10 -0
- package/dist/icons/components/UiLogoPerplexity.cjs.map +1 -0
- package/dist/icons/components/UiLogoPerplexity.d.ts +9 -0
- package/dist/icons/components/UiLogoPerplexity.d.ts.map +1 -0
- package/dist/icons/components/UiLogoPerplexity.js +10 -0
- package/dist/icons/components/UiLogoPerplexity.js.map +1 -0
- package/dist/icons/components/UiPalette.cjs +15 -0
- package/dist/icons/components/UiPalette.cjs.map +1 -0
- package/dist/icons/components/UiPalette.d.ts +15 -0
- package/dist/icons/components/UiPalette.d.ts.map +1 -0
- package/dist/icons/components/UiPalette.js +15 -0
- package/dist/icons/components/UiPalette.js.map +1 -0
- package/dist/icons/components/UiPauseCircle.cjs +15 -0
- package/dist/icons/components/UiPauseCircle.cjs.map +1 -0
- package/dist/icons/components/UiPauseCircle.d.ts +15 -0
- package/dist/icons/components/UiPauseCircle.d.ts.map +1 -0
- package/dist/icons/components/UiPauseCircle.js +15 -0
- package/dist/icons/components/UiPauseCircle.js.map +1 -0
- package/dist/icons/components/UiPencilSimpleLine.cjs +15 -0
- package/dist/icons/components/UiPencilSimpleLine.cjs.map +1 -0
- package/dist/icons/components/UiPencilSimpleLine.d.ts +15 -0
- package/dist/icons/components/UiPencilSimpleLine.d.ts.map +1 -0
- package/dist/icons/components/UiPencilSimpleLine.js +15 -0
- package/dist/icons/components/UiPencilSimpleLine.js.map +1 -0
- package/dist/icons/components/UiPlugsConnected.cjs +15 -0
- package/dist/icons/components/UiPlugsConnected.cjs.map +1 -0
- package/dist/icons/components/UiPlugsConnected.d.ts +15 -0
- package/dist/icons/components/UiPlugsConnected.d.ts.map +1 -0
- package/dist/icons/components/UiPlugsConnected.js +15 -0
- package/dist/icons/components/UiPlugsConnected.js.map +1 -0
- package/dist/icons/components/UiProhibit.cjs +15 -0
- package/dist/icons/components/UiProhibit.cjs.map +1 -0
- package/dist/icons/components/UiProhibit.d.ts +15 -0
- package/dist/icons/components/UiProhibit.d.ts.map +1 -0
- package/dist/icons/components/UiProhibit.js +15 -0
- package/dist/icons/components/UiProhibit.js.map +1 -0
- package/dist/icons/components/UiRepeat.cjs +15 -0
- package/dist/icons/components/UiRepeat.cjs.map +1 -0
- package/dist/icons/components/UiRepeat.d.ts +15 -0
- package/dist/icons/components/UiRepeat.d.ts.map +1 -0
- package/dist/icons/components/UiRepeat.js +15 -0
- package/dist/icons/components/UiRepeat.js.map +1 -0
- package/dist/icons/components/UiScan.cjs +15 -0
- package/dist/icons/components/UiScan.cjs.map +1 -0
- package/dist/icons/components/UiScan.d.ts +15 -0
- package/dist/icons/components/UiScan.d.ts.map +1 -0
- package/dist/icons/components/UiScan.js +15 -0
- package/dist/icons/components/UiScan.js.map +1 -0
- package/dist/icons/components/UiScroll.cjs +15 -0
- package/dist/icons/components/UiScroll.cjs.map +1 -0
- package/dist/icons/components/UiScroll.d.ts +15 -0
- package/dist/icons/components/UiScroll.d.ts.map +1 -0
- package/dist/icons/components/UiScroll.js +15 -0
- package/dist/icons/components/UiScroll.js.map +1 -0
- package/dist/icons/components/UiShieldSlash.cjs +15 -0
- package/dist/icons/components/UiShieldSlash.cjs.map +1 -0
- package/dist/icons/components/UiShieldSlash.d.ts +15 -0
- package/dist/icons/components/UiShieldSlash.d.ts.map +1 -0
- package/dist/icons/components/UiShieldSlash.js +15 -0
- package/dist/icons/components/UiShieldSlash.js.map +1 -0
- package/dist/icons/components/UiStack.cjs +19 -0
- package/dist/icons/components/UiStack.cjs.map +1 -0
- package/dist/icons/components/UiStack.d.ts +15 -0
- package/dist/icons/components/UiStack.d.ts.map +1 -0
- package/dist/icons/components/UiStack.js +19 -0
- package/dist/icons/components/UiStack.js.map +1 -0
- package/dist/icons/components/UiStrategy.cjs +15 -0
- package/dist/icons/components/UiStrategy.cjs.map +1 -0
- package/dist/icons/components/UiStrategy.d.ts +15 -0
- package/dist/icons/components/UiStrategy.d.ts.map +1 -0
- package/dist/icons/components/UiStrategy.js +15 -0
- package/dist/icons/components/UiStrategy.js.map +1 -0
- package/dist/icons/components/UiThermometer.cjs +15 -0
- package/dist/icons/components/UiThermometer.cjs.map +1 -0
- package/dist/icons/components/UiThermometer.d.ts +15 -0
- package/dist/icons/components/UiThermometer.d.ts.map +1 -0
- package/dist/icons/components/UiThermometer.js +15 -0
- package/dist/icons/components/UiThermometer.js.map +1 -0
- package/dist/icons/components/UiTimer.cjs +15 -0
- package/dist/icons/components/UiTimer.cjs.map +1 -0
- package/dist/icons/components/UiTimer.d.ts +15 -0
- package/dist/icons/components/UiTimer.d.ts.map +1 -0
- package/dist/icons/components/UiTimer.js +15 -0
- package/dist/icons/components/UiTimer.js.map +1 -0
- package/dist/icons/index.d.ts +84 -0
- package/dist/icons/index.d.ts.map +1 -1
- package/dist/icons.cjs +132 -0
- package/dist/icons.cjs.map +1 -1
- package/dist/icons.js +132 -0
- package/dist/icons.js.map +1 -1
- package/dist/index.cjs +186 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +190 -5
- package/dist/index.js.map +1 -1
- package/dist/layout/Workspace.cjs +191 -0
- package/dist/layout/Workspace.cjs.map +1 -0
- package/dist/layout/Workspace.d.ts +17 -0
- package/dist/layout/Workspace.d.ts.map +1 -0
- package/dist/layout/Workspace.js +191 -0
- package/dist/layout/Workspace.js.map +1 -0
- package/dist/layout/Workspace.model.cjs +142 -0
- package/dist/layout/Workspace.model.cjs.map +1 -0
- package/dist/layout/Workspace.model.d.ts +43 -0
- package/dist/layout/Workspace.model.d.ts.map +1 -0
- package/dist/layout/Workspace.model.js +142 -0
- package/dist/layout/Workspace.model.js.map +1 -0
- package/dist/layout/Workspace.regions.cjs +305 -0
- package/dist/layout/Workspace.regions.cjs.map +1 -0
- package/dist/layout/Workspace.regions.d.ts +17 -0
- package/dist/layout/Workspace.regions.d.ts.map +1 -0
- package/dist/layout/Workspace.regions.js +305 -0
- package/dist/layout/Workspace.regions.js.map +1 -0
- package/dist/lib/tokens.cjs +14 -0
- package/dist/lib/tokens.cjs.map +1 -0
- package/dist/lib/tokens.d.ts +5 -0
- package/dist/lib/tokens.d.ts.map +1 -0
- package/dist/lib/tokens.js +14 -0
- package/dist/lib/tokens.js.map +1 -0
- package/dist/monaco/MonacoEditor.cjs +69 -0
- package/dist/monaco/MonacoEditor.cjs.map +1 -0
- package/dist/monaco/MonacoEditor.d.ts +5 -0
- package/dist/monaco/MonacoEditor.d.ts.map +1 -0
- package/dist/monaco/MonacoEditor.js +52 -0
- package/dist/monaco/MonacoEditor.js.map +1 -0
- package/dist/monaco/MonacoProvider.cjs +22 -0
- package/dist/monaco/MonacoProvider.cjs.map +1 -0
- package/dist/monaco/MonacoProvider.d.ts +3 -0
- package/dist/monaco/MonacoProvider.d.ts.map +1 -0
- package/dist/monaco/MonacoProvider.js +22 -0
- package/dist/monaco/MonacoProvider.js.map +1 -0
- package/dist/monaco/MonacoSchemaEditor.cjs +108 -0
- package/dist/monaco/MonacoSchemaEditor.cjs.map +1 -0
- package/dist/monaco/MonacoSchemaEditor.d.ts +4 -0
- package/dist/monaco/MonacoSchemaEditor.d.ts.map +1 -0
- package/dist/monaco/MonacoSchemaEditor.js +108 -0
- package/dist/monaco/MonacoSchemaEditor.js.map +1 -0
- package/dist/monaco/schema-normalizer.cjs +38 -0
- package/dist/monaco/schema-normalizer.cjs.map +1 -0
- package/dist/monaco/schema-normalizer.d.ts +7 -0
- package/dist/monaco/schema-normalizer.d.ts.map +1 -0
- package/dist/monaco/schema-normalizer.js +38 -0
- package/dist/monaco/schema-normalizer.js.map +1 -0
- package/dist/monaco/schema-registry.cjs +67 -0
- package/dist/monaco/schema-registry.cjs.map +1 -0
- package/dist/monaco/schema-registry.d.ts +3 -0
- package/dist/monaco/schema-registry.d.ts.map +1 -0
- package/dist/monaco/schema-registry.js +67 -0
- package/dist/monaco/schema-registry.js.map +1 -0
- package/dist/monaco/types.d.ts +31 -0
- package/dist/monaco/types.d.ts.map +1 -0
- package/dist/monaco/use-monaco-worker.cjs +10 -0
- package/dist/monaco/use-monaco-worker.cjs.map +1 -0
- package/dist/monaco/use-monaco-worker.d.ts +4 -0
- package/dist/monaco/use-monaco-worker.d.ts.map +1 -0
- package/dist/monaco/use-monaco-worker.js +10 -0
- package/dist/monaco/use-monaco-worker.js.map +1 -0
- package/dist/monaco-schema.cjs +5 -0
- package/dist/monaco-schema.cjs.map +1 -0
- package/dist/monaco-schema.d.ts +3 -0
- package/dist/monaco-schema.d.ts.map +1 -0
- package/dist/monaco-schema.js +5 -0
- package/dist/monaco-schema.js.map +1 -0
- package/dist/monaco.cjs +11 -0
- package/dist/monaco.cjs.map +1 -0
- package/dist/monaco.d.ts +6 -0
- package/dist/monaco.d.ts.map +1 -0
- package/dist/monaco.js +11 -0
- package/dist/monaco.js.map +1 -0
- package/dist/overlay/CellActions.cjs +183 -0
- package/dist/overlay/CellActions.cjs.map +1 -0
- package/dist/overlay/CellActions.d.ts +18 -0
- package/dist/overlay/CellActions.d.ts.map +1 -0
- package/dist/overlay/CellActions.js +183 -0
- package/dist/overlay/CellActions.js.map +1 -0
- package/dist/overlay/DropdownMenu.cjs +50 -59
- package/dist/overlay/DropdownMenu.cjs.map +1 -1
- package/dist/overlay/DropdownMenu.d.ts +21 -2
- package/dist/overlay/DropdownMenu.d.ts.map +1 -1
- package/dist/overlay/DropdownMenu.js +38 -47
- package/dist/overlay/DropdownMenu.js.map +1 -1
- package/dist/overlay/DropdownMenuSubmenu.cjs +210 -0
- package/dist/overlay/DropdownMenuSubmenu.cjs.map +1 -0
- package/dist/overlay/DropdownMenuSubmenu.d.ts +12 -0
- package/dist/overlay/DropdownMenuSubmenu.d.ts.map +1 -0
- package/dist/overlay/DropdownMenuSubmenu.js +210 -0
- package/dist/overlay/DropdownMenuSubmenu.js.map +1 -0
- package/dist/overlay/Modal.cjs +14 -2
- package/dist/overlay/Modal.cjs.map +1 -1
- package/dist/overlay/Modal.d.ts +9 -2
- package/dist/overlay/Modal.d.ts.map +1 -1
- package/dist/overlay/Modal.js +14 -2
- package/dist/overlay/Modal.js.map +1 -1
- package/dist/overlay/dropdownMenuContext.cjs +16 -0
- package/dist/overlay/dropdownMenuContext.cjs.map +1 -0
- package/dist/overlay/dropdownMenuContext.d.ts +16 -0
- package/dist/overlay/dropdownMenuContext.d.ts.map +1 -0
- package/dist/overlay/dropdownMenuContext.js +16 -0
- package/dist/overlay/dropdownMenuContext.js.map +1 -0
- package/dist/rpc/CommandOutput.cjs +28 -9
- package/dist/rpc/CommandOutput.cjs.map +1 -1
- package/dist/rpc/CommandOutput.d.ts +4 -2
- package/dist/rpc/CommandOutput.d.ts.map +1 -1
- package/dist/rpc/CommandOutput.js +28 -9
- package/dist/rpc/CommandOutput.js.map +1 -1
- package/dist/rpc/EntityExplorerApp.cjs +8 -1
- package/dist/rpc/EntityExplorerApp.cjs.map +1 -1
- package/dist/rpc/EntityExplorerApp.d.ts +9 -1
- package/dist/rpc/EntityExplorerApp.d.ts.map +1 -1
- package/dist/rpc/EntityExplorerApp.js +8 -1
- package/dist/rpc/EntityExplorerApp.js.map +1 -1
- package/dist/rpc/OperationActionBar.cjs +63 -41
- package/dist/rpc/OperationActionBar.cjs.map +1 -1
- package/dist/rpc/OperationActionBar.d.ts +2 -1
- package/dist/rpc/OperationActionBar.d.ts.map +1 -1
- package/dist/rpc/OperationActionBar.js +63 -41
- package/dist/rpc/OperationActionBar.js.map +1 -1
- package/dist/rpc/OperationCatalog.cjs +111 -80
- package/dist/rpc/OperationCatalog.cjs.map +1 -1
- package/dist/rpc/OperationCatalog.d.ts +2 -1
- package/dist/rpc/OperationCatalog.d.ts.map +1 -1
- package/dist/rpc/OperationCatalog.js +112 -81
- package/dist/rpc/OperationCatalog.js.map +1 -1
- package/dist/rpc/OperationCommandPage.cjs +2 -0
- package/dist/rpc/OperationCommandPage.cjs.map +1 -1
- package/dist/rpc/OperationCommandPage.d.ts +3 -2
- package/dist/rpc/OperationCommandPage.d.ts.map +1 -1
- package/dist/rpc/OperationCommandPage.js +2 -0
- package/dist/rpc/OperationCommandPage.js.map +1 -1
- package/dist/rpc/OperationEntityContextPicker.cjs +448 -0
- package/dist/rpc/OperationEntityContextPicker.cjs.map +1 -0
- package/dist/rpc/OperationEntityContextPicker.d.ts +28 -0
- package/dist/rpc/OperationEntityContextPicker.d.ts.map +1 -0
- package/dist/rpc/OperationEntityContextPicker.js +448 -0
- package/dist/rpc/OperationEntityContextPicker.js.map +1 -0
- package/dist/rpc/OperationEntityContextPicker.model.cjs +60 -0
- package/dist/rpc/OperationEntityContextPicker.model.cjs.map +1 -0
- package/dist/rpc/OperationEntityContextPicker.model.d.ts +7 -0
- package/dist/rpc/OperationEntityContextPicker.model.d.ts.map +1 -0
- package/dist/rpc/OperationEntityContextPicker.model.js +60 -0
- package/dist/rpc/OperationEntityContextPicker.model.js.map +1 -0
- package/dist/rpc/OperationEntityPage.cjs +47 -22
- package/dist/rpc/OperationEntityPage.cjs.map +1 -1
- package/dist/rpc/OperationEntityPage.d.ts +32 -2
- package/dist/rpc/OperationEntityPage.d.ts.map +1 -1
- package/dist/rpc/OperationEntityPage.js +47 -22
- package/dist/rpc/OperationEntityPage.js.map +1 -1
- package/dist/rpc/OperationResultView.cjs +4 -2
- package/dist/rpc/OperationResultView.cjs.map +1 -1
- package/dist/rpc/OperationResultView.d.ts +3 -2
- package/dist/rpc/OperationResultView.d.ts.map +1 -1
- package/dist/rpc/OperationResultView.js +4 -2
- package/dist/rpc/OperationResultView.js.map +1 -1
- package/dist/rpc/SchemaActionForm.cjs +151 -17
- package/dist/rpc/SchemaActionForm.cjs.map +1 -1
- package/dist/rpc/SchemaActionForm.d.ts +7 -1
- package/dist/rpc/SchemaActionForm.d.ts.map +1 -1
- package/dist/rpc/SchemaActionForm.js +152 -18
- package/dist/rpc/SchemaActionForm.js.map +1 -1
- package/dist/rpc/types.cjs.map +1 -1
- package/dist/rpc/types.d.ts +24 -0
- package/dist/rpc/types.d.ts.map +1 -1
- package/dist/rpc/types.js.map +1 -1
- package/dist/rpc.cjs +6 -0
- package/dist/rpc.cjs.map +1 -1
- package/dist/rpc.d.ts +5 -3
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +6 -0
- package/dist/rpc.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/tailwind-preset.cjs +8 -0
- package/dist/tailwind-preset.cjs.map +1 -1
- package/dist/tailwind-preset.d.ts.map +1 -1
- package/dist/tailwind-preset.js +8 -0
- package/dist/tailwind-preset.js.map +1 -1
- package/oxlint-plugins/README.md +82 -19
- package/oxlint-plugins/clicky-ui-no-adhoc-overlay.js +5 -50
- package/oxlint-plugins/clicky-ui-no-direct-z-index.js +134 -0
- package/oxlint-plugins/clicky-ui.js +3 -0
- package/package.json +26 -3
- package/dist/data/chat/ContextUsage.cjs +0 -99
- package/dist/data/chat/ContextUsage.cjs.map +0 -1
- package/dist/data/chat/ContextUsage.d.ts +0 -19
- package/dist/data/chat/ContextUsage.d.ts.map +0 -1
- package/dist/data/chat/ContextUsage.js +0 -99
- package/dist/data/chat/ContextUsage.js.map +0 -1
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
-
const react = require("react");
|
|
5
|
-
const react
|
|
4
|
+
const react$1 = require("react");
|
|
5
|
+
const react = require("@floating-ui/react");
|
|
6
6
|
const utils = require("../lib/utils.cjs");
|
|
7
7
|
const button = require("../components/button.cjs");
|
|
8
8
|
const Icon = require("../data/Icon.cjs");
|
|
9
|
+
const dropdownMenuContext = require("./dropdownMenuContext.cjs");
|
|
10
|
+
const DropdownMenuSubmenu = require("./DropdownMenuSubmenu.cjs");
|
|
9
11
|
const modalStack = require("./modalStack.cjs");
|
|
10
12
|
const UiChevronDown = require("../icons/components/UiChevronDown.cjs");
|
|
11
|
-
function DropdownMenu({
|
|
13
|
+
function DropdownMenu(props) {
|
|
14
|
+
return /* @__PURE__ */ jsxRuntime.jsx(react.FloatingTree, { children: /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuRoot, { ...props }) });
|
|
15
|
+
}
|
|
16
|
+
function DropdownMenuRoot({
|
|
12
17
|
label,
|
|
13
18
|
icon,
|
|
14
19
|
hideChevron = false,
|
|
@@ -26,36 +31,40 @@ function DropdownMenu({
|
|
|
26
31
|
className,
|
|
27
32
|
menuClassName
|
|
28
33
|
}) {
|
|
29
|
-
const [open, setOpen] = react.useState(false);
|
|
30
|
-
const [activeIndex, setActiveIndex] = react.useState(null);
|
|
34
|
+
const [open, setOpen] = react$1.useState(false);
|
|
35
|
+
const [activeIndex, setActiveIndex] = react$1.useState(null);
|
|
31
36
|
const floatingZ = modalStack.useFloatingZIndex();
|
|
32
|
-
const
|
|
33
|
-
const
|
|
37
|
+
const tree = react.useFloatingTree();
|
|
38
|
+
const nodeId = react.useFloatingNodeId();
|
|
39
|
+
const elementsRef = react$1.useRef([]);
|
|
40
|
+
const onOpenChangeRef = react$1.useRef(onOpenChange);
|
|
34
41
|
onOpenChangeRef.current = onOpenChange;
|
|
35
|
-
react.useEffect(() => {
|
|
42
|
+
react$1.useEffect(() => {
|
|
36
43
|
var _a;
|
|
37
44
|
(_a = onOpenChangeRef.current) == null ? void 0 : _a.call(onOpenChangeRef, open);
|
|
38
45
|
}, [open]);
|
|
39
|
-
const { refs, floatingStyles, context } = react
|
|
46
|
+
const { refs, floatingStyles, context } = react.useFloating({
|
|
47
|
+
// nodeId is always defined inside the FloatingTree; guard for the type only.
|
|
48
|
+
...nodeId ? { nodeId } : {},
|
|
40
49
|
open,
|
|
41
50
|
onOpenChange: setOpen,
|
|
42
51
|
// bottom-end / bottom-start reproduce the previous right/left alignment.
|
|
43
52
|
placement: align === "right" ? "bottom-end" : "bottom-start",
|
|
44
|
-
whileElementsMounted: react
|
|
53
|
+
whileElementsMounted: react.autoUpdate,
|
|
45
54
|
// offset(4) ≈ the previous mt-1; flip opens upward at the bottom edge and
|
|
46
55
|
// shift slides the menu back on-screen at the horizontal edges.
|
|
47
|
-
middleware: [react
|
|
56
|
+
middleware: [react.offset(4), react.flip({ padding: 8 }), react.shift({ padding: 8 })]
|
|
48
57
|
});
|
|
49
|
-
const click = react
|
|
50
|
-
const dismiss = react
|
|
51
|
-
const role = react
|
|
52
|
-
const listNav = react
|
|
53
|
-
listRef,
|
|
58
|
+
const click = react.useClick(context);
|
|
59
|
+
const dismiss = react.useDismiss(context, { escapeKey: false });
|
|
60
|
+
const role = react.useRole(context, { role: "menu" });
|
|
61
|
+
const listNav = react.useListNavigation(context, {
|
|
62
|
+
listRef: elementsRef,
|
|
54
63
|
activeIndex,
|
|
55
64
|
onNavigate: setActiveIndex,
|
|
56
65
|
loop: true
|
|
57
66
|
});
|
|
58
|
-
const { getReferenceProps, getFloatingProps, getItemProps } = react
|
|
67
|
+
const { getReferenceProps, getFloatingProps, getItemProps } = react.useInteractions([
|
|
59
68
|
click,
|
|
60
69
|
dismiss,
|
|
61
70
|
role,
|
|
@@ -66,7 +75,15 @@ function DropdownMenu({
|
|
|
66
75
|
if (refs.domReference.current instanceof HTMLElement) refs.domReference.current.focus();
|
|
67
76
|
};
|
|
68
77
|
modalStack.useEscapeLayer(open, closeMenu);
|
|
69
|
-
|
|
78
|
+
const closeMenuRef = react$1.useRef(closeMenu);
|
|
79
|
+
closeMenuRef.current = closeMenu;
|
|
80
|
+
react$1.useEffect(() => {
|
|
81
|
+
if (!tree) return;
|
|
82
|
+
const onTreeClick = () => closeMenuRef.current();
|
|
83
|
+
tree.events.on("click", onTreeClick);
|
|
84
|
+
return () => tree.events.off("click", onTreeClick);
|
|
85
|
+
}, [tree]);
|
|
86
|
+
return /* @__PURE__ */ jsxRuntime.jsx(react.FloatingNode, { id: nodeId, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: utils.cn("relative inline-flex", className), children: [
|
|
70
87
|
trigger ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
71
88
|
"span",
|
|
72
89
|
{
|
|
@@ -94,62 +111,36 @@ function DropdownMenu({
|
|
|
94
111
|
]
|
|
95
112
|
}
|
|
96
113
|
),
|
|
97
|
-
open && /* @__PURE__ */ jsxRuntime.jsx(react
|
|
114
|
+
open && /* @__PURE__ */ jsxRuntime.jsx(react.FloatingPortal, { children: /* @__PURE__ */ jsxRuntime.jsx(react.FloatingFocusManager, { context, modal: false, closeOnFocusOut: false, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
98
115
|
"div",
|
|
99
116
|
{
|
|
100
117
|
ref: refs.setFloating,
|
|
101
118
|
role: "menu",
|
|
102
119
|
"aria-label": menuLabel,
|
|
103
120
|
style: { ...floatingStyles, zIndex: floatingZ },
|
|
104
|
-
className: utils.cn(
|
|
105
|
-
"min-w-[8rem] rounded-md border border-border bg-popover py-1 shadow-md",
|
|
106
|
-
menuClassName
|
|
107
|
-
),
|
|
121
|
+
className: utils.cn(dropdownMenuContext.MENU_POPOVER_CLASS, menuClassName),
|
|
108
122
|
...getFloatingProps(),
|
|
109
123
|
children: [
|
|
110
124
|
header != null && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-b border-border px-3 py-1.5", children: header }),
|
|
111
|
-
children ? children(closeMenu) :
|
|
112
|
-
|
|
125
|
+
children ? children(closeMenu) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
126
|
+
dropdownMenuContext.MenuContext.Provider,
|
|
113
127
|
{
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
tabIndex: i === activeIndex ? 0 : -1,
|
|
120
|
-
disabled: item.disabled,
|
|
121
|
-
title: item.title,
|
|
122
|
-
className: "flex w-full items-center gap-2 px-3 py-1.5 text-left text-xs text-popover-foreground hover:bg-accent hover:text-accent-foreground disabled:pointer-events-none disabled:opacity-50",
|
|
123
|
-
...getItemProps({
|
|
124
|
-
onClick: () => {
|
|
125
|
-
item.onSelect();
|
|
126
|
-
closeMenu();
|
|
128
|
+
value: {
|
|
129
|
+
getItemProps,
|
|
130
|
+
activeIndex,
|
|
131
|
+
setActiveIndex,
|
|
132
|
+
setHasFocusInside: () => {
|
|
127
133
|
},
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
}),
|
|
136
|
-
children: [
|
|
137
|
-
item.icon && /* @__PURE__ */ jsxRuntime.jsx(
|
|
138
|
-
Icon.Icon,
|
|
139
|
-
{
|
|
140
|
-
...typeof item.icon === "string" ? { name: item.icon } : { icon: item.icon }
|
|
141
|
-
}
|
|
142
|
-
),
|
|
143
|
-
item.label
|
|
144
|
-
]
|
|
145
|
-
},
|
|
146
|
-
i
|
|
147
|
-
)),
|
|
134
|
+
isOpen: open
|
|
135
|
+
},
|
|
136
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(react.FloatingList, { elementsRef, children: /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuSubmenu.MenuItemList, { items: items ?? [] }) })
|
|
137
|
+
}
|
|
138
|
+
),
|
|
148
139
|
footer != null && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-t border-border px-3 py-1.5", children: footer })
|
|
149
140
|
]
|
|
150
141
|
}
|
|
151
142
|
) }) })
|
|
152
|
-
] });
|
|
143
|
+
] }) });
|
|
153
144
|
}
|
|
154
145
|
exports.DropdownMenu = DropdownMenu;
|
|
155
146
|
//# sourceMappingURL=DropdownMenu.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownMenu.cjs","sources":["../../src/overlay/DropdownMenu.tsx"],"sourcesContent":["import { useEffect, useRef, useState, type ReactNode } from \"react\";\nimport {\n autoUpdate,\n flip,\n FloatingFocusManager,\n FloatingPortal,\n offset,\n shift,\n useClick,\n useDismiss,\n useFloating,\n useInteractions,\n useListNavigation,\n useRole,\n} from \"@floating-ui/react\";\nimport { cn } from \"../lib/utils\";\nimport { Button, type ButtonProps } from \"../components/button\";\nimport { Icon, type StaticIconComponent } from \"../data/Icon\";\nimport { UiChevronDown } from \"../icons\";\nimport { useEscapeLayer, useFloatingZIndex } from \"./modalStack\";\n\nexport type DropdownMenuItem = {\n /** Visible label. */\n label: ReactNode;\n /** Called when the item is chosen. */\n onSelect: () => void;\n /** Iconify name or imported icon component rendered before the label. */\n icon?: string | StaticIconComponent;\n /** Browser tooltip for the item. */\n title?: string;\n /** Disable selection. */\n disabled?: boolean;\n};\n\nexport type DropdownMenuProps = {\n /** Trigger label. Ignored when `trigger` is provided. */\n label?: ReactNode;\n /** Icon shown before the trigger label. Ignored when `trigger` is provided. */\n icon?: string | StaticIconComponent;\n /** Hide the trailing chevron on the default trigger. */\n hideChevron?: boolean;\n /** Variant forwarded to the default Button trigger. */\n variant?: ButtonProps[\"variant\"];\n /** Size forwarded to the default Button trigger. */\n size?: ButtonProps[\"size\"];\n /** Fully custom trigger. Receives no props; the menu wraps it with open state. */\n trigger?: ReactNode;\n /** Declarative menu items. Provide this or `children`, not both. */\n items?: DropdownMenuItem[];\n /** Custom menu content. Use `closeMenu` to dismiss after a selection. */\n children?: (closeMenu: () => void) => ReactNode;\n /** Rendered at the top of the menu, above the items/children. */\n header?: ReactNode;\n /** Rendered at the bottom of the menu, below the items/children (e.g. a \"Show more…\" link). */\n footer?: ReactNode;\n /** Horizontal alignment of the menu relative to the trigger. */\n align?: \"left\" | \"right\";\n /** Notified whenever the menu opens or closes. */\n onOpenChange?: (open: boolean) => void;\n /** Browser tooltip / accessible label for the default trigger. */\n title?: string;\n /** Accessible label (`aria-label`) for the floating menu element itself. */\n menuLabel?: string;\n /** Classes applied to the wrapper. */\n className?: string;\n /** Classes applied to the floating menu. */\n menuClassName?: string;\n};\n\nexport function DropdownMenu({\n label,\n icon,\n hideChevron = false,\n variant = \"outline\",\n size = \"sm\",\n trigger,\n items,\n children,\n header,\n footer,\n align = \"right\",\n onOpenChange,\n title,\n menuLabel,\n className,\n menuClassName,\n}: DropdownMenuProps) {\n const [open, setOpen] = useState(false);\n const [activeIndex, setActiveIndex] = useState<number | null>(null);\n const floatingZ = useFloatingZIndex();\n const listRef = useRef<(HTMLElement | null)[]>([]);\n\n const onOpenChangeRef = useRef(onOpenChange);\n onOpenChangeRef.current = onOpenChange;\n useEffect(() => {\n onOpenChangeRef.current?.(open);\n }, [open]);\n\n const { refs, floatingStyles, context } = useFloating<HTMLDivElement>({\n open,\n onOpenChange: setOpen,\n // bottom-end / bottom-start reproduce the previous right/left alignment.\n placement: align === \"right\" ? \"bottom-end\" : \"bottom-start\",\n whileElementsMounted: autoUpdate,\n // offset(4) ≈ the previous mt-1; flip opens upward at the bottom edge and\n // shift slides the menu back on-screen at the horizontal edges.\n middleware: [offset(4), flip({ padding: 8 }), shift({ padding: 8 })],\n });\n\n const click = useClick(context);\n // useDismiss is React-tree aware: a press inside anything rendered through the\n // menu's `children` render-prop — including a Modal that portals to\n // document.body — propagates via React's synthetic events to the floating\n // element and counts as \"inside\", so it won't dismiss the menu (which would\n // unmount that child Modal). A Modal owned by a sibling/parent instead of this\n // menu correctly does dismiss the menu, which is harmless since closing the\n // menu does not unmount a Modal it doesn't own.\n const dismiss = useDismiss(context, { escapeKey: false });\n const role = useRole(context, { role: \"menu\" });\n const listNav = useListNavigation(context, {\n listRef,\n activeIndex,\n onNavigate: setActiveIndex,\n loop: true,\n });\n\n const { getReferenceProps, getFloatingProps, getItemProps } = useInteractions([\n click,\n dismiss,\n role,\n listNav,\n ]);\n\n const closeMenu = () => {\n setOpen(false);\n if (refs.domReference.current instanceof HTMLElement) refs.domReference.current.focus();\n };\n useEscapeLayer(open, closeMenu);\n\n return (\n <div className={cn(\"relative inline-flex\", className)}>\n {trigger ? (\n <span\n ref={refs.setReference}\n className=\"inline-flex\"\n aria-haspopup=\"menu\"\n aria-expanded={open}\n {...getReferenceProps()}\n >\n {trigger}\n </span>\n ) : (\n <Button\n ref={refs.setReference as React.Ref<HTMLButtonElement>}\n variant={variant}\n size={size}\n title={title}\n aria-haspopup=\"menu\"\n aria-expanded={open}\n {...getReferenceProps()}\n >\n {icon && <Icon {...(typeof icon === \"string\" ? { name: icon } : { icon })} />}\n {label}\n {!hideChevron && <Icon icon={UiChevronDown} />}\n </Button>\n )}\n {open && (\n <FloatingPortal>\n <FloatingFocusManager context={context} modal={false}>\n <div\n ref={refs.setFloating}\n role=\"menu\"\n aria-label={menuLabel}\n style={{ ...floatingStyles, zIndex: floatingZ }}\n className={cn(\n \"min-w-[8rem] rounded-md border border-border bg-popover py-1 shadow-md\",\n menuClassName,\n )}\n {...getFloatingProps()}\n >\n {header != null && (\n <div className=\"border-b border-border px-3 py-1.5\">{header}</div>\n )}\n {children\n ? children(closeMenu)\n : items?.map((item, i) => (\n <button\n key={i}\n ref={(node) => {\n listRef.current[i] = node;\n }}\n type=\"button\"\n role=\"menuitem\"\n tabIndex={i === activeIndex ? 0 : -1}\n disabled={item.disabled}\n title={item.title}\n className=\"flex w-full items-center gap-2 px-3 py-1.5 text-left text-xs text-popover-foreground hover:bg-accent hover:text-accent-foreground disabled:pointer-events-none disabled:opacity-50\"\n {...getItemProps({\n onClick: () => {\n item.onSelect();\n closeMenu();\n },\n onKeyDown: (event) => {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n item.onSelect();\n closeMenu();\n }\n },\n })}\n >\n {item.icon && (\n <Icon\n {...(typeof item.icon === \"string\"\n ? { name: item.icon }\n : { icon: item.icon })}\n />\n )}\n {item.label}\n </button>\n ))}\n {footer != null && (\n <div className=\"border-t border-border px-3 py-1.5\">{footer}</div>\n )}\n </div>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </div>\n );\n}\n"],"names":["useState","useFloatingZIndex","useRef","useEffect","useFloating","autoUpdate","offset","flip","shift","useClick","useDismiss","useRole","useListNavigation","useInteractions","useEscapeLayer","cn","jsx","jsxs","Button","Icon","UiChevronDown","FloatingPortal","FloatingFocusManager"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DropdownMenu.cjs","sources":["../../src/overlay/DropdownMenu.tsx"],"sourcesContent":["import { useEffect, useRef, useState, type ReactNode } from \"react\";\nimport {\n autoUpdate,\n flip,\n FloatingFocusManager,\n FloatingList,\n FloatingNode,\n FloatingPortal,\n FloatingTree,\n offset,\n shift,\n useClick,\n useDismiss,\n useFloating,\n useFloatingNodeId,\n useFloatingTree,\n useInteractions,\n useListNavigation,\n useRole,\n} from \"@floating-ui/react\";\nimport { cn } from \"../lib/utils\";\nimport { Button, type ButtonProps } from \"../components/button\";\nimport { Icon, type StaticIconComponent } from \"../data/Icon\";\nimport { UiChevronDown } from \"../icons\";\nimport { MENU_POPOVER_CLASS, MenuContext } from \"./dropdownMenuContext\";\nimport { MenuItemList } from \"./DropdownMenuSubmenu\";\nimport { useEscapeLayer, useFloatingZIndex } from \"./modalStack\";\n\nexport type DropdownMenuItem = {\n /** Visible label. */\n label: ReactNode;\n /** Called when the item is chosen. Ignored when the item has `children`. */\n onSelect: () => void;\n /** Iconify name or imported icon component rendered before the label. */\n icon?: string | StaticIconComponent;\n /** CSS colour applied to this item's icon (the glyph fills `currentColor`). */\n iconColor?: string;\n /**\n * Section header. A non-interactive header renders above the first item of\n * each contiguous group — provide items pre-sorted by `group`. Items without\n * a `group` render no header.\n */\n group?: string;\n /** Browser tooltip for the item. */\n title?: string;\n /** Disable selection. */\n disabled?: boolean;\n /**\n * Nested submenu items. When present the item becomes a submenu trigger: it\n * opens a flyout of `children` (recursively) on hover / click / ArrowRight\n * instead of firing `onSelect`.\n */\n children?: DropdownMenuItem[];\n};\n\nexport type DropdownMenuProps = {\n /** Trigger label. Ignored when `trigger` is provided. */\n label?: ReactNode;\n /** Icon shown before the trigger label. Ignored when `trigger` is provided. */\n icon?: string | StaticIconComponent;\n /** Hide the trailing chevron on the default trigger. */\n hideChevron?: boolean;\n /** Variant forwarded to the default Button trigger. */\n variant?: ButtonProps[\"variant\"];\n /** Size forwarded to the default Button trigger. */\n size?: ButtonProps[\"size\"];\n /** Fully custom trigger. Receives no props; the menu wraps it with open state. */\n trigger?: ReactNode;\n /** Declarative menu items. Provide this or `children`, not both. */\n items?: DropdownMenuItem[];\n /** Custom menu content. Use `closeMenu` to dismiss after a selection. */\n children?: (closeMenu: () => void) => ReactNode;\n /** Rendered at the top of the menu, above the items/children. */\n header?: ReactNode;\n /** Rendered at the bottom of the menu, below the items/children (e.g. a \"Show more…\" link). */\n footer?: ReactNode;\n /** Horizontal alignment of the menu relative to the trigger. */\n align?: \"left\" | \"right\";\n /** Notified whenever the menu opens or closes. */\n onOpenChange?: (open: boolean) => void;\n /** Browser tooltip / accessible label for the default trigger. */\n title?: string;\n /** Accessible label (`aria-label`) for the floating menu element itself. */\n menuLabel?: string;\n /** Classes applied to the wrapper. */\n className?: string;\n /** Classes applied to the floating menu. */\n menuClassName?: string;\n};\n\n/**\n * A trigger + floating menu. Flat `items` render as a single list; an item with\n * `children` opens a flyout submenu. The FloatingTree lets every level cooperate\n * on focus and dismissal, so selecting any leaf closes the whole menu.\n */\nexport function DropdownMenu(props: DropdownMenuProps) {\n return (\n <FloatingTree>\n <DropdownMenuRoot {...props} />\n </FloatingTree>\n );\n}\n\nfunction DropdownMenuRoot({\n label,\n icon,\n hideChevron = false,\n variant = \"outline\",\n size = \"sm\",\n trigger,\n items,\n children,\n header,\n footer,\n align = \"right\",\n onOpenChange,\n title,\n menuLabel,\n className,\n menuClassName,\n}: DropdownMenuProps) {\n const [open, setOpen] = useState(false);\n const [activeIndex, setActiveIndex] = useState<number | null>(null);\n const floatingZ = useFloatingZIndex();\n const tree = useFloatingTree();\n const nodeId = useFloatingNodeId();\n const elementsRef = useRef<Array<HTMLElement | null>>([]);\n\n const onOpenChangeRef = useRef(onOpenChange);\n onOpenChangeRef.current = onOpenChange;\n useEffect(() => {\n onOpenChangeRef.current?.(open);\n }, [open]);\n\n const { refs, floatingStyles, context } = useFloating<HTMLDivElement>({\n // nodeId is always defined inside the FloatingTree; guard for the type only.\n ...(nodeId ? { nodeId } : {}),\n open,\n onOpenChange: setOpen,\n // bottom-end / bottom-start reproduce the previous right/left alignment.\n placement: align === \"right\" ? \"bottom-end\" : \"bottom-start\",\n whileElementsMounted: autoUpdate,\n // offset(4) ≈ the previous mt-1; flip opens upward at the bottom edge and\n // shift slides the menu back on-screen at the horizontal edges.\n middleware: [offset(4), flip({ padding: 8 }), shift({ padding: 8 })],\n });\n\n const click = useClick(context);\n // useDismiss is React-tree aware: a press inside anything rendered through the\n // menu's `children` render-prop — including a Modal that portals to\n // document.body — propagates via React's synthetic events to the floating\n // element and counts as \"inside\", so it won't dismiss the menu (which would\n // unmount that child Modal). A Modal owned by a sibling/parent instead of this\n // menu correctly does dismiss the menu, which is harmless since closing the\n // menu does not unmount a Modal it doesn't own.\n const dismiss = useDismiss(context, { escapeKey: false });\n const role = useRole(context, { role: \"menu\" });\n const listNav = useListNavigation(context, {\n listRef: elementsRef,\n activeIndex,\n onNavigate: setActiveIndex,\n loop: true,\n });\n\n const { getReferenceProps, getFloatingProps, getItemProps } = useInteractions([\n click,\n dismiss,\n role,\n listNav,\n ]);\n\n const closeMenu = () => {\n setOpen(false);\n if (refs.domReference.current instanceof HTMLElement) refs.domReference.current.focus();\n };\n useEscapeLayer(open, closeMenu);\n\n // Selecting any leaf (at any depth) emits a tree-wide \"click\"; the root closes\n // and restores focus to the trigger.\n const closeMenuRef = useRef(closeMenu);\n closeMenuRef.current = closeMenu;\n useEffect(() => {\n if (!tree) return;\n const onTreeClick = () => closeMenuRef.current();\n tree.events.on(\"click\", onTreeClick);\n return () => tree.events.off(\"click\", onTreeClick);\n }, [tree]);\n\n return (\n <FloatingNode id={nodeId}>\n <div className={cn(\"relative inline-flex\", className)}>\n {trigger ? (\n <span\n ref={refs.setReference}\n className=\"inline-flex\"\n aria-haspopup=\"menu\"\n aria-expanded={open}\n {...getReferenceProps()}\n >\n {trigger}\n </span>\n ) : (\n <Button\n ref={refs.setReference as React.Ref<HTMLButtonElement>}\n variant={variant}\n size={size}\n title={title}\n aria-haspopup=\"menu\"\n aria-expanded={open}\n {...getReferenceProps()}\n >\n {icon && <Icon {...(typeof icon === \"string\" ? { name: icon } : { icon })} />}\n {label}\n {!hideChevron && <Icon icon={UiChevronDown} />}\n </Button>\n )}\n {open && (\n <FloatingPortal>\n <FloatingFocusManager context={context} modal={false} closeOnFocusOut={false}>\n <div\n ref={refs.setFloating}\n role=\"menu\"\n aria-label={menuLabel}\n style={{ ...floatingStyles, zIndex: floatingZ }}\n className={cn(MENU_POPOVER_CLASS, menuClassName)}\n {...getFloatingProps()}\n >\n {header != null && (\n <div className=\"border-b border-border px-3 py-1.5\">{header}</div>\n )}\n {children ? (\n children(closeMenu)\n ) : (\n <MenuContext.Provider\n value={{\n getItemProps,\n activeIndex,\n setActiveIndex,\n setHasFocusInside: () => {},\n isOpen: open,\n }}\n >\n <FloatingList elementsRef={elementsRef}>\n <MenuItemList items={items ?? []} />\n </FloatingList>\n </MenuContext.Provider>\n )}\n {footer != null && (\n <div className=\"border-t border-border px-3 py-1.5\">{footer}</div>\n )}\n </div>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </div>\n </FloatingNode>\n );\n}\n"],"names":["FloatingTree","jsx","useState","useFloatingZIndex","useFloatingTree","useFloatingNodeId","useRef","useEffect","useFloating","autoUpdate","offset","flip","shift","useClick","useDismiss","useRole","useListNavigation","useInteractions","useEscapeLayer","FloatingNode","jsxs","cn","Button","Icon","UiChevronDown","FloatingPortal","FloatingFocusManager","MENU_POPOVER_CLASS","MenuContext","FloatingList","MenuItemList"],"mappings":";;;;;;;;;;;;AA+FO,SAAS,aAAa,OAA0B;AACrD,wCACGA,oBAAA,EACC,UAAAC,2BAAAA,IAAC,kBAAA,EAAkB,GAAG,OAAO,GAC/B;AAEJ;AAEA,SAAS,iBAAiB;AAAA,EACxB;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd,UAAU;AAAA,EACV,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAsB;AACpB,QAAM,CAAC,MAAM,OAAO,IAAIC,QAAAA,SAAS,KAAK;AACtC,QAAM,CAAC,aAAa,cAAc,IAAIA,QAAAA,SAAwB,IAAI;AAClE,QAAM,YAAYC,WAAAA,kBAAA;AAClB,QAAM,OAAOC,MAAAA,gBAAA;AACb,QAAM,SAASC,MAAAA,kBAAA;AACf,QAAM,cAAcC,QAAAA,OAAkC,EAAE;AAExD,QAAM,kBAAkBA,QAAAA,OAAO,YAAY;AAC3C,kBAAgB,UAAU;AAC1BC,UAAAA,UAAU,MAAM;;AACd,0BAAgB,YAAhB,yCAA0B;AAAA,EAC5B,GAAG,CAAC,IAAI,CAAC;AAET,QAAM,EAAE,MAAM,gBAAgB,QAAA,IAAYC,MAAAA,YAA4B;AAAA;AAAA,IAEpE,GAAI,SAAS,EAAE,OAAA,IAAW,CAAA;AAAA,IAC1B;AAAA,IACA,cAAc;AAAA;AAAA,IAEd,WAAW,UAAU,UAAU,eAAe;AAAA,IAC9C,sBAAsBC,MAAAA;AAAAA;AAAAA;AAAAA,IAGtB,YAAY,CAACC,MAAAA,OAAO,CAAC,GAAGC,MAAAA,KAAK,EAAE,SAAS,EAAA,CAAG,GAAGC,MAAAA,MAAM,EAAE,SAAS,EAAA,CAAG,CAAC;AAAA,EAAA,CACpE;AAED,QAAM,QAAQC,MAAAA,SAAS,OAAO;AAQ9B,QAAM,UAAUC,MAAAA,WAAW,SAAS,EAAE,WAAW,OAAO;AACxD,QAAM,OAAOC,MAAAA,QAAQ,SAAS,EAAE,MAAM,QAAQ;AAC9C,QAAM,UAAUC,MAAAA,kBAAkB,SAAS;AAAA,IACzC,SAAS;AAAA,IACT;AAAA,IACA,YAAY;AAAA,IACZ,MAAM;AAAA,EAAA,CACP;AAED,QAAM,EAAE,mBAAmB,kBAAkB,aAAA,IAAiBC,MAAAA,gBAAgB;AAAA,IAC5E;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,CACD;AAED,QAAM,YAAY,MAAM;AACtB,YAAQ,KAAK;AACb,QAAI,KAAK,aAAa,mBAAmB,YAAa,MAAK,aAAa,QAAQ,MAAA;AAAA,EAClF;AACAC,aAAAA,eAAe,MAAM,SAAS;AAI9B,QAAM,eAAeZ,QAAAA,OAAO,SAAS;AACrC,eAAa,UAAU;AACvBC,UAAAA,UAAU,MAAM;AACd,QAAI,CAAC,KAAM;AACX,UAAM,cAAc,MAAM,aAAa,QAAA;AACvC,SAAK,OAAO,GAAG,SAAS,WAAW;AACnC,WAAO,MAAM,KAAK,OAAO,IAAI,SAAS,WAAW;AAAA,EACnD,GAAG,CAAC,IAAI,CAAC;AAET,SACEN,2BAAAA,IAACkB,MAAAA,cAAA,EAAa,IAAI,QAChB,UAAAC,2BAAAA,KAAC,SAAI,WAAWC,MAAAA,GAAG,wBAAwB,SAAS,GACjD,UAAA;AAAA,IAAA,UACCpB,2BAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAK,KAAK;AAAA,QACV,WAAU;AAAA,QACV,iBAAc;AAAA,QACd,iBAAe;AAAA,QACd,GAAG,kBAAA;AAAA,QAEH,UAAA;AAAA,MAAA;AAAA,IAAA,IAGHmB,2BAAAA;AAAAA,MAACE,OAAAA;AAAAA,MAAA;AAAA,QACC,KAAK,KAAK;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA,iBAAc;AAAA,QACd,iBAAe;AAAA,QACd,GAAG,kBAAA;AAAA,QAEH,UAAA;AAAA,UAAA,QAAQrB,2BAAAA,IAACsB,WAAA,EAAM,GAAI,OAAO,SAAS,WAAW,EAAE,MAAM,KAAA,IAAS,EAAE,KAAA,EAAK,CAAI;AAAA,UAC1E;AAAA,UACA,CAAC,eAAetB,2BAAAA,IAACsB,KAAAA,MAAA,EAAK,MAAMC,cAAAA,cAAA,CAAe;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAG/C,uCACEC,MAAAA,gBAAA,EACC,UAAAxB,2BAAAA,IAACyB,MAAAA,wBAAqB,SAAkB,OAAO,OAAO,iBAAiB,OACrE,UAAAN,2BAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAK,KAAK;AAAA,QACV,MAAK;AAAA,QACL,cAAY;AAAA,QACZ,OAAO,EAAE,GAAG,gBAAgB,QAAQ,UAAA;AAAA,QACpC,WAAWC,MAAAA,GAAGM,oBAAAA,oBAAoB,aAAa;AAAA,QAC9C,GAAG,iBAAA;AAAA,QAEH,UAAA;AAAA,UAAA,UAAU,QACT1B,2BAAAA,IAAC,OAAA,EAAI,WAAU,sCAAsC,UAAA,QAAO;AAAA,UAE7D,WACC,SAAS,SAAS,IAElBA,2BAAAA;AAAAA,YAAC2B,oBAAAA,YAAY;AAAA,YAAZ;AAAA,cACC,OAAO;AAAA,gBACL;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA,mBAAmB,MAAM;AAAA,gBAAC;AAAA,gBAC1B,QAAQ;AAAA,cAAA;AAAA,cAGV,UAAA3B,2BAAAA,IAAC4B,sBAAa,aACZ,UAAA5B,+BAAC6B,oBAAAA,gBAAa,OAAO,SAAS,CAAA,EAAC,CAAG,EAAA,CACpC;AAAA,YAAA;AAAA,UAAA;AAAA,UAGH,UAAU,QACT7B,2BAAAA,IAAC,OAAA,EAAI,WAAU,sCAAsC,UAAA,OAAA,CAAO;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA,GAGlE,EAAA,CACF;AAAA,EAAA,EAAA,CAEJ,EAAA,CACF;AAEJ;;"}
|
|
@@ -4,14 +4,28 @@ import { StaticIconComponent } from '../data/Icon';
|
|
|
4
4
|
export type DropdownMenuItem = {
|
|
5
5
|
/** Visible label. */
|
|
6
6
|
label: ReactNode;
|
|
7
|
-
/** Called when the item is chosen. */
|
|
7
|
+
/** Called when the item is chosen. Ignored when the item has `children`. */
|
|
8
8
|
onSelect: () => void;
|
|
9
9
|
/** Iconify name or imported icon component rendered before the label. */
|
|
10
10
|
icon?: string | StaticIconComponent;
|
|
11
|
+
/** CSS colour applied to this item's icon (the glyph fills `currentColor`). */
|
|
12
|
+
iconColor?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Section header. A non-interactive header renders above the first item of
|
|
15
|
+
* each contiguous group — provide items pre-sorted by `group`. Items without
|
|
16
|
+
* a `group` render no header.
|
|
17
|
+
*/
|
|
18
|
+
group?: string;
|
|
11
19
|
/** Browser tooltip for the item. */
|
|
12
20
|
title?: string;
|
|
13
21
|
/** Disable selection. */
|
|
14
22
|
disabled?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Nested submenu items. When present the item becomes a submenu trigger: it
|
|
25
|
+
* opens a flyout of `children` (recursively) on hover / click / ArrowRight
|
|
26
|
+
* instead of firing `onSelect`.
|
|
27
|
+
*/
|
|
28
|
+
children?: DropdownMenuItem[];
|
|
15
29
|
};
|
|
16
30
|
export type DropdownMenuProps = {
|
|
17
31
|
/** Trigger label. Ignored when `trigger` is provided. */
|
|
@@ -47,5 +61,10 @@ export type DropdownMenuProps = {
|
|
|
47
61
|
/** Classes applied to the floating menu. */
|
|
48
62
|
menuClassName?: string;
|
|
49
63
|
};
|
|
50
|
-
|
|
64
|
+
/**
|
|
65
|
+
* A trigger + floating menu. Flat `items` render as a single list; an item with
|
|
66
|
+
* `children` opens a flyout submenu. The FloatingTree lets every level cooperate
|
|
67
|
+
* on focus and dismissal, so selecting any leaf closes the whole menu.
|
|
68
|
+
*/
|
|
69
|
+
export declare function DropdownMenu(props: DropdownMenuProps): import("react/jsx-runtime").JSX.Element;
|
|
51
70
|
//# sourceMappingURL=DropdownMenu.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownMenu.d.ts","sourceRoot":"","sources":["../../src/overlay/DropdownMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DropdownMenu.d.ts","sourceRoot":"","sources":["../../src/overlay/DropdownMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAqBpE,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAQ,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAM9D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,qBAAqB;IACrB,KAAK,EAAE,SAAS,CAAC;IACjB,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,yEAAyE;IACzE,IAAI,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAC;IACpC,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yBAAyB;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,yDAAyD;IACzD,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAC;IACpC,wDAAwD;IACxD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uDAAuD;IACvD,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACjC,oDAAoD;IACpD,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,kFAAkF;IAClF,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,oEAAoE;IACpE,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC3B,yEAAyE;IACzE,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,IAAI,KAAK,SAAS,CAAC;IAChD,iEAAiE;IACjE,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,+FAA+F;IAC/F,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB,kDAAkD;IAClD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,2CAMpD"}
|
|
@@ -1,12 +1,17 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useState, useRef, useEffect } from "react";
|
|
3
|
-
import { useFloating, autoUpdate, offset, flip, shift, useClick, useDismiss, useRole, useListNavigation, useInteractions, FloatingPortal, FloatingFocusManager } from "@floating-ui/react";
|
|
3
|
+
import { FloatingTree, useFloatingTree, useFloatingNodeId, useFloating, autoUpdate, offset, flip, shift, useClick, useDismiss, useRole, useListNavigation, useInteractions, FloatingNode, FloatingPortal, FloatingFocusManager, FloatingList } from "@floating-ui/react";
|
|
4
4
|
import { cn } from "../lib/utils.js";
|
|
5
5
|
import { Button } from "../components/button.js";
|
|
6
6
|
import { Icon } from "../data/Icon.js";
|
|
7
|
+
import { MenuContext, MENU_POPOVER_CLASS } from "./dropdownMenuContext.js";
|
|
8
|
+
import { MenuItemList } from "./DropdownMenuSubmenu.js";
|
|
7
9
|
import { useFloatingZIndex, useEscapeLayer } from "./modalStack.js";
|
|
8
10
|
import { UiChevronDown } from "../icons/components/UiChevronDown.js";
|
|
9
|
-
function DropdownMenu({
|
|
11
|
+
function DropdownMenu(props) {
|
|
12
|
+
return /* @__PURE__ */ jsx(FloatingTree, { children: /* @__PURE__ */ jsx(DropdownMenuRoot, { ...props }) });
|
|
13
|
+
}
|
|
14
|
+
function DropdownMenuRoot({
|
|
10
15
|
label,
|
|
11
16
|
icon,
|
|
12
17
|
hideChevron = false,
|
|
@@ -27,7 +32,9 @@ function DropdownMenu({
|
|
|
27
32
|
const [open, setOpen] = useState(false);
|
|
28
33
|
const [activeIndex, setActiveIndex] = useState(null);
|
|
29
34
|
const floatingZ = useFloatingZIndex();
|
|
30
|
-
const
|
|
35
|
+
const tree = useFloatingTree();
|
|
36
|
+
const nodeId = useFloatingNodeId();
|
|
37
|
+
const elementsRef = useRef([]);
|
|
31
38
|
const onOpenChangeRef = useRef(onOpenChange);
|
|
32
39
|
onOpenChangeRef.current = onOpenChange;
|
|
33
40
|
useEffect(() => {
|
|
@@ -35,6 +42,8 @@ function DropdownMenu({
|
|
|
35
42
|
(_a = onOpenChangeRef.current) == null ? void 0 : _a.call(onOpenChangeRef, open);
|
|
36
43
|
}, [open]);
|
|
37
44
|
const { refs, floatingStyles, context } = useFloating({
|
|
45
|
+
// nodeId is always defined inside the FloatingTree; guard for the type only.
|
|
46
|
+
...nodeId ? { nodeId } : {},
|
|
38
47
|
open,
|
|
39
48
|
onOpenChange: setOpen,
|
|
40
49
|
// bottom-end / bottom-start reproduce the previous right/left alignment.
|
|
@@ -48,7 +57,7 @@ function DropdownMenu({
|
|
|
48
57
|
const dismiss = useDismiss(context, { escapeKey: false });
|
|
49
58
|
const role = useRole(context, { role: "menu" });
|
|
50
59
|
const listNav = useListNavigation(context, {
|
|
51
|
-
listRef,
|
|
60
|
+
listRef: elementsRef,
|
|
52
61
|
activeIndex,
|
|
53
62
|
onNavigate: setActiveIndex,
|
|
54
63
|
loop: true
|
|
@@ -64,7 +73,15 @@ function DropdownMenu({
|
|
|
64
73
|
if (refs.domReference.current instanceof HTMLElement) refs.domReference.current.focus();
|
|
65
74
|
};
|
|
66
75
|
useEscapeLayer(open, closeMenu);
|
|
67
|
-
|
|
76
|
+
const closeMenuRef = useRef(closeMenu);
|
|
77
|
+
closeMenuRef.current = closeMenu;
|
|
78
|
+
useEffect(() => {
|
|
79
|
+
if (!tree) return;
|
|
80
|
+
const onTreeClick = () => closeMenuRef.current();
|
|
81
|
+
tree.events.on("click", onTreeClick);
|
|
82
|
+
return () => tree.events.off("click", onTreeClick);
|
|
83
|
+
}, [tree]);
|
|
84
|
+
return /* @__PURE__ */ jsx(FloatingNode, { id: nodeId, children: /* @__PURE__ */ jsxs("div", { className: cn("relative inline-flex", className), children: [
|
|
68
85
|
trigger ? /* @__PURE__ */ jsx(
|
|
69
86
|
"span",
|
|
70
87
|
{
|
|
@@ -92,62 +109,36 @@ function DropdownMenu({
|
|
|
92
109
|
]
|
|
93
110
|
}
|
|
94
111
|
),
|
|
95
|
-
open && /* @__PURE__ */ jsx(FloatingPortal, { children: /* @__PURE__ */ jsx(FloatingFocusManager, { context, modal: false, children: /* @__PURE__ */ jsxs(
|
|
112
|
+
open && /* @__PURE__ */ jsx(FloatingPortal, { children: /* @__PURE__ */ jsx(FloatingFocusManager, { context, modal: false, closeOnFocusOut: false, children: /* @__PURE__ */ jsxs(
|
|
96
113
|
"div",
|
|
97
114
|
{
|
|
98
115
|
ref: refs.setFloating,
|
|
99
116
|
role: "menu",
|
|
100
117
|
"aria-label": menuLabel,
|
|
101
118
|
style: { ...floatingStyles, zIndex: floatingZ },
|
|
102
|
-
className: cn(
|
|
103
|
-
"min-w-[8rem] rounded-md border border-border bg-popover py-1 shadow-md",
|
|
104
|
-
menuClassName
|
|
105
|
-
),
|
|
119
|
+
className: cn(MENU_POPOVER_CLASS, menuClassName),
|
|
106
120
|
...getFloatingProps(),
|
|
107
121
|
children: [
|
|
108
122
|
header != null && /* @__PURE__ */ jsx("div", { className: "border-b border-border px-3 py-1.5", children: header }),
|
|
109
|
-
children ? children(closeMenu) :
|
|
110
|
-
|
|
123
|
+
children ? children(closeMenu) : /* @__PURE__ */ jsx(
|
|
124
|
+
MenuContext.Provider,
|
|
111
125
|
{
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
tabIndex: i === activeIndex ? 0 : -1,
|
|
118
|
-
disabled: item.disabled,
|
|
119
|
-
title: item.title,
|
|
120
|
-
className: "flex w-full items-center gap-2 px-3 py-1.5 text-left text-xs text-popover-foreground hover:bg-accent hover:text-accent-foreground disabled:pointer-events-none disabled:opacity-50",
|
|
121
|
-
...getItemProps({
|
|
122
|
-
onClick: () => {
|
|
123
|
-
item.onSelect();
|
|
124
|
-
closeMenu();
|
|
126
|
+
value: {
|
|
127
|
+
getItemProps,
|
|
128
|
+
activeIndex,
|
|
129
|
+
setActiveIndex,
|
|
130
|
+
setHasFocusInside: () => {
|
|
125
131
|
},
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
}),
|
|
134
|
-
children: [
|
|
135
|
-
item.icon && /* @__PURE__ */ jsx(
|
|
136
|
-
Icon,
|
|
137
|
-
{
|
|
138
|
-
...typeof item.icon === "string" ? { name: item.icon } : { icon: item.icon }
|
|
139
|
-
}
|
|
140
|
-
),
|
|
141
|
-
item.label
|
|
142
|
-
]
|
|
143
|
-
},
|
|
144
|
-
i
|
|
145
|
-
)),
|
|
132
|
+
isOpen: open
|
|
133
|
+
},
|
|
134
|
+
children: /* @__PURE__ */ jsx(FloatingList, { elementsRef, children: /* @__PURE__ */ jsx(MenuItemList, { items: items ?? [] }) })
|
|
135
|
+
}
|
|
136
|
+
),
|
|
146
137
|
footer != null && /* @__PURE__ */ jsx("div", { className: "border-t border-border px-3 py-1.5", children: footer })
|
|
147
138
|
]
|
|
148
139
|
}
|
|
149
140
|
) }) })
|
|
150
|
-
] });
|
|
141
|
+
] }) });
|
|
151
142
|
}
|
|
152
143
|
export {
|
|
153
144
|
DropdownMenu
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownMenu.js","sources":["../../src/overlay/DropdownMenu.tsx"],"sourcesContent":["import { useEffect, useRef, useState, type ReactNode } from \"react\";\nimport {\n autoUpdate,\n flip,\n FloatingFocusManager,\n FloatingPortal,\n offset,\n shift,\n useClick,\n useDismiss,\n useFloating,\n useInteractions,\n useListNavigation,\n useRole,\n} from \"@floating-ui/react\";\nimport { cn } from \"../lib/utils\";\nimport { Button, type ButtonProps } from \"../components/button\";\nimport { Icon, type StaticIconComponent } from \"../data/Icon\";\nimport { UiChevronDown } from \"../icons\";\nimport { useEscapeLayer, useFloatingZIndex } from \"./modalStack\";\n\nexport type DropdownMenuItem = {\n /** Visible label. */\n label: ReactNode;\n /** Called when the item is chosen. */\n onSelect: () => void;\n /** Iconify name or imported icon component rendered before the label. */\n icon?: string | StaticIconComponent;\n /** Browser tooltip for the item. */\n title?: string;\n /** Disable selection. */\n disabled?: boolean;\n};\n\nexport type DropdownMenuProps = {\n /** Trigger label. Ignored when `trigger` is provided. */\n label?: ReactNode;\n /** Icon shown before the trigger label. Ignored when `trigger` is provided. */\n icon?: string | StaticIconComponent;\n /** Hide the trailing chevron on the default trigger. */\n hideChevron?: boolean;\n /** Variant forwarded to the default Button trigger. */\n variant?: ButtonProps[\"variant\"];\n /** Size forwarded to the default Button trigger. */\n size?: ButtonProps[\"size\"];\n /** Fully custom trigger. Receives no props; the menu wraps it with open state. */\n trigger?: ReactNode;\n /** Declarative menu items. Provide this or `children`, not both. */\n items?: DropdownMenuItem[];\n /** Custom menu content. Use `closeMenu` to dismiss after a selection. */\n children?: (closeMenu: () => void) => ReactNode;\n /** Rendered at the top of the menu, above the items/children. */\n header?: ReactNode;\n /** Rendered at the bottom of the menu, below the items/children (e.g. a \"Show more…\" link). */\n footer?: ReactNode;\n /** Horizontal alignment of the menu relative to the trigger. */\n align?: \"left\" | \"right\";\n /** Notified whenever the menu opens or closes. */\n onOpenChange?: (open: boolean) => void;\n /** Browser tooltip / accessible label for the default trigger. */\n title?: string;\n /** Accessible label (`aria-label`) for the floating menu element itself. */\n menuLabel?: string;\n /** Classes applied to the wrapper. */\n className?: string;\n /** Classes applied to the floating menu. */\n menuClassName?: string;\n};\n\nexport function DropdownMenu({\n label,\n icon,\n hideChevron = false,\n variant = \"outline\",\n size = \"sm\",\n trigger,\n items,\n children,\n header,\n footer,\n align = \"right\",\n onOpenChange,\n title,\n menuLabel,\n className,\n menuClassName,\n}: DropdownMenuProps) {\n const [open, setOpen] = useState(false);\n const [activeIndex, setActiveIndex] = useState<number | null>(null);\n const floatingZ = useFloatingZIndex();\n const listRef = useRef<(HTMLElement | null)[]>([]);\n\n const onOpenChangeRef = useRef(onOpenChange);\n onOpenChangeRef.current = onOpenChange;\n useEffect(() => {\n onOpenChangeRef.current?.(open);\n }, [open]);\n\n const { refs, floatingStyles, context } = useFloating<HTMLDivElement>({\n open,\n onOpenChange: setOpen,\n // bottom-end / bottom-start reproduce the previous right/left alignment.\n placement: align === \"right\" ? \"bottom-end\" : \"bottom-start\",\n whileElementsMounted: autoUpdate,\n // offset(4) ≈ the previous mt-1; flip opens upward at the bottom edge and\n // shift slides the menu back on-screen at the horizontal edges.\n middleware: [offset(4), flip({ padding: 8 }), shift({ padding: 8 })],\n });\n\n const click = useClick(context);\n // useDismiss is React-tree aware: a press inside anything rendered through the\n // menu's `children` render-prop — including a Modal that portals to\n // document.body — propagates via React's synthetic events to the floating\n // element and counts as \"inside\", so it won't dismiss the menu (which would\n // unmount that child Modal). A Modal owned by a sibling/parent instead of this\n // menu correctly does dismiss the menu, which is harmless since closing the\n // menu does not unmount a Modal it doesn't own.\n const dismiss = useDismiss(context, { escapeKey: false });\n const role = useRole(context, { role: \"menu\" });\n const listNav = useListNavigation(context, {\n listRef,\n activeIndex,\n onNavigate: setActiveIndex,\n loop: true,\n });\n\n const { getReferenceProps, getFloatingProps, getItemProps } = useInteractions([\n click,\n dismiss,\n role,\n listNav,\n ]);\n\n const closeMenu = () => {\n setOpen(false);\n if (refs.domReference.current instanceof HTMLElement) refs.domReference.current.focus();\n };\n useEscapeLayer(open, closeMenu);\n\n return (\n <div className={cn(\"relative inline-flex\", className)}>\n {trigger ? (\n <span\n ref={refs.setReference}\n className=\"inline-flex\"\n aria-haspopup=\"menu\"\n aria-expanded={open}\n {...getReferenceProps()}\n >\n {trigger}\n </span>\n ) : (\n <Button\n ref={refs.setReference as React.Ref<HTMLButtonElement>}\n variant={variant}\n size={size}\n title={title}\n aria-haspopup=\"menu\"\n aria-expanded={open}\n {...getReferenceProps()}\n >\n {icon && <Icon {...(typeof icon === \"string\" ? { name: icon } : { icon })} />}\n {label}\n {!hideChevron && <Icon icon={UiChevronDown} />}\n </Button>\n )}\n {open && (\n <FloatingPortal>\n <FloatingFocusManager context={context} modal={false}>\n <div\n ref={refs.setFloating}\n role=\"menu\"\n aria-label={menuLabel}\n style={{ ...floatingStyles, zIndex: floatingZ }}\n className={cn(\n \"min-w-[8rem] rounded-md border border-border bg-popover py-1 shadow-md\",\n menuClassName,\n )}\n {...getFloatingProps()}\n >\n {header != null && (\n <div className=\"border-b border-border px-3 py-1.5\">{header}</div>\n )}\n {children\n ? children(closeMenu)\n : items?.map((item, i) => (\n <button\n key={i}\n ref={(node) => {\n listRef.current[i] = node;\n }}\n type=\"button\"\n role=\"menuitem\"\n tabIndex={i === activeIndex ? 0 : -1}\n disabled={item.disabled}\n title={item.title}\n className=\"flex w-full items-center gap-2 px-3 py-1.5 text-left text-xs text-popover-foreground hover:bg-accent hover:text-accent-foreground disabled:pointer-events-none disabled:opacity-50\"\n {...getItemProps({\n onClick: () => {\n item.onSelect();\n closeMenu();\n },\n onKeyDown: (event) => {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n item.onSelect();\n closeMenu();\n }\n },\n })}\n >\n {item.icon && (\n <Icon\n {...(typeof item.icon === \"string\"\n ? { name: item.icon }\n : { icon: item.icon })}\n />\n )}\n {item.label}\n </button>\n ))}\n {footer != null && (\n <div className=\"border-t border-border px-3 py-1.5\">{footer}</div>\n )}\n </div>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </div>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DropdownMenu.js","sources":["../../src/overlay/DropdownMenu.tsx"],"sourcesContent":["import { useEffect, useRef, useState, type ReactNode } from \"react\";\nimport {\n autoUpdate,\n flip,\n FloatingFocusManager,\n FloatingList,\n FloatingNode,\n FloatingPortal,\n FloatingTree,\n offset,\n shift,\n useClick,\n useDismiss,\n useFloating,\n useFloatingNodeId,\n useFloatingTree,\n useInteractions,\n useListNavigation,\n useRole,\n} from \"@floating-ui/react\";\nimport { cn } from \"../lib/utils\";\nimport { Button, type ButtonProps } from \"../components/button\";\nimport { Icon, type StaticIconComponent } from \"../data/Icon\";\nimport { UiChevronDown } from \"../icons\";\nimport { MENU_POPOVER_CLASS, MenuContext } from \"./dropdownMenuContext\";\nimport { MenuItemList } from \"./DropdownMenuSubmenu\";\nimport { useEscapeLayer, useFloatingZIndex } from \"./modalStack\";\n\nexport type DropdownMenuItem = {\n /** Visible label. */\n label: ReactNode;\n /** Called when the item is chosen. Ignored when the item has `children`. */\n onSelect: () => void;\n /** Iconify name or imported icon component rendered before the label. */\n icon?: string | StaticIconComponent;\n /** CSS colour applied to this item's icon (the glyph fills `currentColor`). */\n iconColor?: string;\n /**\n * Section header. A non-interactive header renders above the first item of\n * each contiguous group — provide items pre-sorted by `group`. Items without\n * a `group` render no header.\n */\n group?: string;\n /** Browser tooltip for the item. */\n title?: string;\n /** Disable selection. */\n disabled?: boolean;\n /**\n * Nested submenu items. When present the item becomes a submenu trigger: it\n * opens a flyout of `children` (recursively) on hover / click / ArrowRight\n * instead of firing `onSelect`.\n */\n children?: DropdownMenuItem[];\n};\n\nexport type DropdownMenuProps = {\n /** Trigger label. Ignored when `trigger` is provided. */\n label?: ReactNode;\n /** Icon shown before the trigger label. Ignored when `trigger` is provided. */\n icon?: string | StaticIconComponent;\n /** Hide the trailing chevron on the default trigger. */\n hideChevron?: boolean;\n /** Variant forwarded to the default Button trigger. */\n variant?: ButtonProps[\"variant\"];\n /** Size forwarded to the default Button trigger. */\n size?: ButtonProps[\"size\"];\n /** Fully custom trigger. Receives no props; the menu wraps it with open state. */\n trigger?: ReactNode;\n /** Declarative menu items. Provide this or `children`, not both. */\n items?: DropdownMenuItem[];\n /** Custom menu content. Use `closeMenu` to dismiss after a selection. */\n children?: (closeMenu: () => void) => ReactNode;\n /** Rendered at the top of the menu, above the items/children. */\n header?: ReactNode;\n /** Rendered at the bottom of the menu, below the items/children (e.g. a \"Show more…\" link). */\n footer?: ReactNode;\n /** Horizontal alignment of the menu relative to the trigger. */\n align?: \"left\" | \"right\";\n /** Notified whenever the menu opens or closes. */\n onOpenChange?: (open: boolean) => void;\n /** Browser tooltip / accessible label for the default trigger. */\n title?: string;\n /** Accessible label (`aria-label`) for the floating menu element itself. */\n menuLabel?: string;\n /** Classes applied to the wrapper. */\n className?: string;\n /** Classes applied to the floating menu. */\n menuClassName?: string;\n};\n\n/**\n * A trigger + floating menu. Flat `items` render as a single list; an item with\n * `children` opens a flyout submenu. The FloatingTree lets every level cooperate\n * on focus and dismissal, so selecting any leaf closes the whole menu.\n */\nexport function DropdownMenu(props: DropdownMenuProps) {\n return (\n <FloatingTree>\n <DropdownMenuRoot {...props} />\n </FloatingTree>\n );\n}\n\nfunction DropdownMenuRoot({\n label,\n icon,\n hideChevron = false,\n variant = \"outline\",\n size = \"sm\",\n trigger,\n items,\n children,\n header,\n footer,\n align = \"right\",\n onOpenChange,\n title,\n menuLabel,\n className,\n menuClassName,\n}: DropdownMenuProps) {\n const [open, setOpen] = useState(false);\n const [activeIndex, setActiveIndex] = useState<number | null>(null);\n const floatingZ = useFloatingZIndex();\n const tree = useFloatingTree();\n const nodeId = useFloatingNodeId();\n const elementsRef = useRef<Array<HTMLElement | null>>([]);\n\n const onOpenChangeRef = useRef(onOpenChange);\n onOpenChangeRef.current = onOpenChange;\n useEffect(() => {\n onOpenChangeRef.current?.(open);\n }, [open]);\n\n const { refs, floatingStyles, context } = useFloating<HTMLDivElement>({\n // nodeId is always defined inside the FloatingTree; guard for the type only.\n ...(nodeId ? { nodeId } : {}),\n open,\n onOpenChange: setOpen,\n // bottom-end / bottom-start reproduce the previous right/left alignment.\n placement: align === \"right\" ? \"bottom-end\" : \"bottom-start\",\n whileElementsMounted: autoUpdate,\n // offset(4) ≈ the previous mt-1; flip opens upward at the bottom edge and\n // shift slides the menu back on-screen at the horizontal edges.\n middleware: [offset(4), flip({ padding: 8 }), shift({ padding: 8 })],\n });\n\n const click = useClick(context);\n // useDismiss is React-tree aware: a press inside anything rendered through the\n // menu's `children` render-prop — including a Modal that portals to\n // document.body — propagates via React's synthetic events to the floating\n // element and counts as \"inside\", so it won't dismiss the menu (which would\n // unmount that child Modal). A Modal owned by a sibling/parent instead of this\n // menu correctly does dismiss the menu, which is harmless since closing the\n // menu does not unmount a Modal it doesn't own.\n const dismiss = useDismiss(context, { escapeKey: false });\n const role = useRole(context, { role: \"menu\" });\n const listNav = useListNavigation(context, {\n listRef: elementsRef,\n activeIndex,\n onNavigate: setActiveIndex,\n loop: true,\n });\n\n const { getReferenceProps, getFloatingProps, getItemProps } = useInteractions([\n click,\n dismiss,\n role,\n listNav,\n ]);\n\n const closeMenu = () => {\n setOpen(false);\n if (refs.domReference.current instanceof HTMLElement) refs.domReference.current.focus();\n };\n useEscapeLayer(open, closeMenu);\n\n // Selecting any leaf (at any depth) emits a tree-wide \"click\"; the root closes\n // and restores focus to the trigger.\n const closeMenuRef = useRef(closeMenu);\n closeMenuRef.current = closeMenu;\n useEffect(() => {\n if (!tree) return;\n const onTreeClick = () => closeMenuRef.current();\n tree.events.on(\"click\", onTreeClick);\n return () => tree.events.off(\"click\", onTreeClick);\n }, [tree]);\n\n return (\n <FloatingNode id={nodeId}>\n <div className={cn(\"relative inline-flex\", className)}>\n {trigger ? (\n <span\n ref={refs.setReference}\n className=\"inline-flex\"\n aria-haspopup=\"menu\"\n aria-expanded={open}\n {...getReferenceProps()}\n >\n {trigger}\n </span>\n ) : (\n <Button\n ref={refs.setReference as React.Ref<HTMLButtonElement>}\n variant={variant}\n size={size}\n title={title}\n aria-haspopup=\"menu\"\n aria-expanded={open}\n {...getReferenceProps()}\n >\n {icon && <Icon {...(typeof icon === \"string\" ? { name: icon } : { icon })} />}\n {label}\n {!hideChevron && <Icon icon={UiChevronDown} />}\n </Button>\n )}\n {open && (\n <FloatingPortal>\n <FloatingFocusManager context={context} modal={false} closeOnFocusOut={false}>\n <div\n ref={refs.setFloating}\n role=\"menu\"\n aria-label={menuLabel}\n style={{ ...floatingStyles, zIndex: floatingZ }}\n className={cn(MENU_POPOVER_CLASS, menuClassName)}\n {...getFloatingProps()}\n >\n {header != null && (\n <div className=\"border-b border-border px-3 py-1.5\">{header}</div>\n )}\n {children ? (\n children(closeMenu)\n ) : (\n <MenuContext.Provider\n value={{\n getItemProps,\n activeIndex,\n setActiveIndex,\n setHasFocusInside: () => {},\n isOpen: open,\n }}\n >\n <FloatingList elementsRef={elementsRef}>\n <MenuItemList items={items ?? []} />\n </FloatingList>\n </MenuContext.Provider>\n )}\n {footer != null && (\n <div className=\"border-t border-border px-3 py-1.5\">{footer}</div>\n )}\n </div>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </div>\n </FloatingNode>\n );\n}\n"],"names":[],"mappings":"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"}
|