@flanksource/clicky-ui 0.3.10 → 0.3.11
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
package/dist/data/FilterPill.cjs
CHANGED
|
@@ -28,7 +28,8 @@ const SLOT_TRANSLATE = {
|
|
|
28
28
|
function TristateSwitch({
|
|
29
29
|
mode,
|
|
30
30
|
onChange,
|
|
31
|
-
ariaLabel
|
|
31
|
+
ariaLabel,
|
|
32
|
+
interactive = true
|
|
32
33
|
}) {
|
|
33
34
|
const slot = mode === "exclude" ? "exclude" : mode === "include" ? "include" : "neutral";
|
|
34
35
|
const bg = slot === "exclude" ? "bg-red-500/80" : slot === "include" ? "bg-green-500/80" : "bg-muted";
|
|
@@ -45,7 +46,43 @@ function TristateSwitch({
|
|
|
45
46
|
className: "relative z-10 h-full flex-1 cursor-pointer"
|
|
46
47
|
}
|
|
47
48
|
);
|
|
48
|
-
|
|
49
|
+
const content = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
50
|
+
region(mode === "exclude" ? "neutral" : "exclude", "exclude"),
|
|
51
|
+
region(nextTriStateMode(mode), "neutral"),
|
|
52
|
+
region(mode === "include" ? "neutral" : "include", "include"),
|
|
53
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
54
|
+
"span",
|
|
55
|
+
{
|
|
56
|
+
"aria-hidden": true,
|
|
57
|
+
className: utils.cn(
|
|
58
|
+
// The knob stays white in BOTH themes (standard switch look): on the
|
|
59
|
+
// dark-mode muted/red/green tracks white is the high-contrast choice,
|
|
60
|
+
// while bg-background would vanish against the track.
|
|
61
|
+
"pointer-events-none absolute left-0.5 top-0.5 z-20 flex size-4 items-center justify-center rounded-full bg-white shadow-sm transition-transform duration-150",
|
|
62
|
+
SLOT_TRANSLATE[slot]
|
|
63
|
+
),
|
|
64
|
+
children: slot !== "neutral" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
65
|
+
Icon.Icon,
|
|
66
|
+
{
|
|
67
|
+
icon: slot === "exclude" ? UiClose.UiClose : UiCheck.UiCheck,
|
|
68
|
+
className: utils.cn(
|
|
69
|
+
"text-[10px]",
|
|
70
|
+
slot === "exclude" && "text-red-600",
|
|
71
|
+
slot === "include" && "text-green-600"
|
|
72
|
+
)
|
|
73
|
+
}
|
|
74
|
+
)
|
|
75
|
+
}
|
|
76
|
+
)
|
|
77
|
+
] });
|
|
78
|
+
const trackClasses = utils.cn(
|
|
79
|
+
"relative inline-flex h-5 w-[52px] shrink-0 overflow-hidden rounded-full transition-colors duration-200",
|
|
80
|
+
bg
|
|
81
|
+
);
|
|
82
|
+
if (!interactive) {
|
|
83
|
+
return /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": true, className: trackClasses, children: content });
|
|
84
|
+
}
|
|
85
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
49
86
|
"button",
|
|
50
87
|
{
|
|
51
88
|
type: "button",
|
|
@@ -56,39 +93,8 @@ function TristateSwitch({
|
|
|
56
93
|
event.stopPropagation();
|
|
57
94
|
onChange(nextTriStateMode(mode));
|
|
58
95
|
},
|
|
59
|
-
className:
|
|
60
|
-
|
|
61
|
-
bg
|
|
62
|
-
),
|
|
63
|
-
children: [
|
|
64
|
-
region(mode === "exclude" ? "neutral" : "exclude", "exclude"),
|
|
65
|
-
region(nextTriStateMode(mode), "neutral"),
|
|
66
|
-
region(mode === "include" ? "neutral" : "include", "include"),
|
|
67
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
68
|
-
"span",
|
|
69
|
-
{
|
|
70
|
-
"aria-hidden": true,
|
|
71
|
-
className: utils.cn(
|
|
72
|
-
// The knob stays white in BOTH themes (standard switch look): on the
|
|
73
|
-
// dark-mode muted/red/green tracks white is the high-contrast choice,
|
|
74
|
-
// while bg-background would vanish against the track.
|
|
75
|
-
"pointer-events-none absolute left-0.5 top-0.5 z-20 flex size-4 items-center justify-center rounded-full bg-white shadow-sm transition-transform duration-150",
|
|
76
|
-
SLOT_TRANSLATE[slot]
|
|
77
|
-
),
|
|
78
|
-
children: slot !== "neutral" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
79
|
-
Icon.Icon,
|
|
80
|
-
{
|
|
81
|
-
icon: slot === "exclude" ? UiClose.UiClose : UiCheck.UiCheck,
|
|
82
|
-
className: utils.cn(
|
|
83
|
-
"text-[10px]",
|
|
84
|
-
slot === "exclude" && "text-red-600",
|
|
85
|
-
slot === "include" && "text-green-600"
|
|
86
|
-
)
|
|
87
|
-
}
|
|
88
|
-
)
|
|
89
|
-
}
|
|
90
|
-
)
|
|
91
|
-
]
|
|
96
|
+
className: trackClasses,
|
|
97
|
+
children: content
|
|
92
98
|
}
|
|
93
99
|
);
|
|
94
100
|
}
|
|
@@ -102,6 +108,7 @@ function FilterPill({
|
|
|
102
108
|
onClick,
|
|
103
109
|
title,
|
|
104
110
|
togglePosition = "left",
|
|
111
|
+
interactive = true,
|
|
105
112
|
className
|
|
106
113
|
}) {
|
|
107
114
|
const triState = !!onModeChange;
|
|
@@ -125,6 +132,7 @@ function FilterPill({
|
|
|
125
132
|
{
|
|
126
133
|
mode,
|
|
127
134
|
onChange: onModeChange,
|
|
135
|
+
interactive,
|
|
128
136
|
...title ? { ariaLabel: title } : {}
|
|
129
137
|
}
|
|
130
138
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterPill.cjs","sources":["../../src/data/FilterPill.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { Icon, type StaticIconComponent } from \"./Icon\";\nimport { UiAdd, UiCheck, UiClose, UiRemove } from \"../icons\";\n\nexport type FilterMode = \"active\" | \"neutral\" | \"include\" | \"exclude\";\n\nexport type FilterPillProps = {\n /** Visual and semantic state for the pill. */\n mode?: FilterMode;\n /** Primary visible label. */\n label: ReactNode;\n /** Optional count badge rendered before the label. */\n count?: number;\n /** Iconify name or imported icon component. */\n icon?: string | StaticIconComponent;\n /** Classes for the count badge background. */\n badge?: string;\n /**\n * Tri-state handler. When provided the pill renders as a toggle with a left\n * minus (exclude) and right plus (include) region. Clicking a side toggles\n * that state against \"neutral\"; clicking the label cycles neutral → include\n * → exclude → neutral.\n */\n onModeChange?: (next: FilterMode) => void;\n /** Legacy single-click handler, used when onModeChange is not provided. */\n onClick?: () => void;\n /** Browser tooltip and accessible label for tri-state controls. */\n title?: string;\n /** Places the tri-state toggle before or after the label. */\n togglePosition?: \"left\" | \"right\";\n /** Classes applied to the pill root. */\n className?: string;\n};\n\nfunction bodyClasses(mode: FilterMode): string {\n switch (mode) {\n case \"active\":\n return \"bg-primary/10 border-primary/40 text-primary font-medium\";\n case \"include\":\n return \"bg-green-500/10 border-green-500/50 text-green-700 dark:text-green-400 font-medium\";\n case \"exclude\":\n return \"bg-red-500/10 border-red-500/50 text-red-700 dark:text-red-400 font-medium\";\n case \"neutral\":\n default:\n return \"border-border text-muted-foreground hover:bg-accent\";\n }\n}\n\ntype SlotMode = \"exclude\" | \"neutral\" | \"include\";\n\nconst SLOT_TRANSLATE: Record<SlotMode, string> = {\n exclude: \"translate-x-0\",\n neutral: \"translate-x-4\",\n include: \"translate-x-8\",\n};\n\nfunction TristateSwitch({\n mode,\n onChange,\n ariaLabel,\n}: {\n mode: FilterMode;\n onChange: (next: FilterMode) => void;\n ariaLabel?: string;\n}) {\n const slot: SlotMode =\n mode === \"exclude\" ? \"exclude\" : mode === \"include\" ? \"include\" : \"neutral\";\n const bg =\n slot === \"exclude\" ? \"bg-red-500/80\" : slot === \"include\" ? \"bg-green-500/80\" : \"bg-muted\";\n\n // The three regions are aria-hidden click targets layered over the toggle\n // track: clicking the left edge toggles exclude, the right edge toggles\n // include, and the middle rotates. They are NOT focusable buttons — the\n // whole switch is a single <button> so it exposes one accessible name and\n // does not pollute the accessible name of any FilterBar wrapper that hosts\n // it (e.g. the multi-filter option row, which is itself a role=\"button\").\n const region = (next: FilterMode, regionMode: SlotMode) => (\n <span\n aria-hidden\n data-tristate-region={regionMode}\n onClick={(event) => {\n event.preventDefault();\n event.stopPropagation();\n onChange(next);\n }}\n className=\"relative z-10 h-full flex-1 cursor-pointer\"\n />\n );\n\n return (\n <button\n type=\"button\"\n aria-label={ariaLabel}\n title={ariaLabel}\n onClick={(event) => {\n // Keyboard activation (Enter/Space) lands here without a region —\n // cycle, matching the middle-region rotation.\n event.preventDefault();\n event.stopPropagation();\n onChange(nextTriStateMode(mode));\n }}\n className={cn(\n \"relative inline-flex h-5 w-[52px] shrink-0 overflow-hidden rounded-full transition-colors duration-200\",\n bg,\n )}\n >\n {region(mode === \"exclude\" ? \"neutral\" : \"exclude\", \"exclude\")}\n {region(nextTriStateMode(mode), \"neutral\")}\n {region(mode === \"include\" ? \"neutral\" : \"include\", \"include\")}\n <span\n aria-hidden\n className={cn(\n // The knob stays white in BOTH themes (standard switch look): on the\n // dark-mode muted/red/green tracks white is the high-contrast choice,\n // while bg-background would vanish against the track.\n \"pointer-events-none absolute left-0.5 top-0.5 z-20 flex size-4 items-center justify-center rounded-full bg-white shadow-sm transition-transform duration-150\",\n SLOT_TRANSLATE[slot],\n )}\n >\n {slot !== \"neutral\" && (\n <Icon\n icon={slot === \"exclude\" ? UiClose : UiCheck}\n className={cn(\n \"text-[10px]\",\n slot === \"exclude\" && \"text-red-600\",\n slot === \"include\" && \"text-green-600\",\n )}\n />\n )}\n </span>\n </button>\n );\n}\n\nexport function FilterPill({\n mode = \"neutral\",\n label,\n count,\n icon,\n badge,\n onModeChange,\n onClick,\n title,\n togglePosition = \"left\",\n className,\n}: FilterPillProps) {\n const triState = !!onModeChange;\n const content = (\n <>\n {count !== undefined && (\n <span\n className={cn(\n \"inline-flex items-center justify-center min-w-[16px] h-[16px] px-1 rounded-full text-[10px] font-bold text-white\",\n badge ?? \"bg-muted-foreground\",\n )}\n >\n {count}\n </span>\n )}\n {icon && (\n <Icon {...(typeof icon === \"string\" ? { name: icon } : { icon })} className=\"text-sm\" />\n )}\n <span className=\"truncate\">{label}</span>\n </>\n );\n\n if (triState) {\n const control = (\n <TristateSwitch\n mode={mode}\n onChange={onModeChange!}\n {...(title ? { ariaLabel: title } : {})}\n />\n );\n const labelContent = (\n <span className=\"inline-flex min-w-0 items-center gap-1.5 text-xs text-foreground\">\n {content}\n </span>\n );\n\n return (\n <span className={cn(\"inline-flex items-center gap-1.5 select-none\", className)} title={title}>\n {togglePosition === \"right\" ? (\n <>\n {labelContent}\n {control}\n </>\n ) : (\n <>\n {control}\n {labelContent}\n </>\n )}\n </span>\n );\n }\n\n return (\n <button\n type=\"button\"\n onClick={onClick}\n title={title}\n className={cn(\n \"inline-flex items-center gap-1.5 text-xs px-2 py-0.5 rounded-full border transition-colors\",\n bodyClasses(mode),\n className,\n )}\n >\n <LegacyMarker mode={mode} />\n {content}\n </button>\n );\n}\n\nfunction LegacyMarker({ mode }: { mode: FilterMode }) {\n if (mode === \"include\") return <Icon icon={UiAdd} className=\"text-xs\" />;\n if (mode === \"exclude\") return <Icon icon={UiRemove} className=\"text-xs\" />;\n if (mode === \"active\") return <span className=\"w-2 h-2 rounded-full bg-current\" />;\n return <span className=\"w-2 h-2 rounded-full bg-current opacity-30\" />;\n}\n\nfunction nextTriStateMode(mode: FilterMode): FilterMode {\n if (mode === \"include\") return \"exclude\";\n if (mode === \"exclude\") return \"neutral\";\n return \"include\";\n}\n\nexport type FilterPillGroupProps = {\n /** Filter pills or separators to lay out. */\n children: ReactNode;\n /** Classes applied to the wrapping row. */\n className?: string;\n};\n\nexport function FilterPillGroup({ children, className }: FilterPillGroupProps) {\n return <div className={cn(\"flex items-center gap-1.5 flex-wrap\", className)}>{children}</div>;\n}\n\nexport function FilterSeparator() {\n return (\n <span aria-hidden className=\"text-border mx-0.5\">\n |\n </span>\n );\n}\n"],"names":["jsx","jsxs","cn","Icon","UiClose","UiCheck","Fragment","UiAdd","UiRemove"],"mappings":";;;;;;;;;AAmCA,SAAS,YAAY,MAA0B;AAC7C,UAAQ,MAAA;AAAA,IACN,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AAAA,IACL;AACE,aAAO;AAAA,EAAA;AAEb;AAIA,MAAM,iBAA2C;AAAA,EAC/C,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AACX;AAEA,SAAS,eAAe;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,QAAM,OACJ,SAAS,YAAY,YAAY,SAAS,YAAY,YAAY;AACpE,QAAM,KACJ,SAAS,YAAY,kBAAkB,SAAS,YAAY,oBAAoB;AAQlF,QAAM,SAAS,CAAC,MAAkB,eAChCA,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,eAAW;AAAA,MACX,wBAAsB;AAAA,MACtB,SAAS,CAAC,UAAU;AAClB,cAAM,eAAA;AACN,cAAM,gBAAA;AACN,iBAAS,IAAI;AAAA,MACf;AAAA,MACA,WAAU;AAAA,IAAA;AAAA,EAAA;AAId,SACEC,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,cAAY;AAAA,MACZ,OAAO;AAAA,MACP,SAAS,CAAC,UAAU;AAGlB,cAAM,eAAA;AACN,cAAM,gBAAA;AACN,iBAAS,iBAAiB,IAAI,CAAC;AAAA,MACjC;AAAA,MACA,WAAWC,MAAAA;AAAAA,QACT;AAAA,QACA;AAAA,MAAA;AAAA,MAGD,UAAA;AAAA,QAAA,OAAO,SAAS,YAAY,YAAY,WAAW,SAAS;AAAA,QAC5D,OAAO,iBAAiB,IAAI,GAAG,SAAS;AAAA,QACxC,OAAO,SAAS,YAAY,YAAY,WAAW,SAAS;AAAA,QAC7DF,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,eAAW;AAAA,YACX,WAAWE,MAAAA;AAAAA;AAAAA;AAAAA;AAAAA,cAIT;AAAA,cACA,eAAe,IAAI;AAAA,YAAA;AAAA,YAGpB,mBAAS,aACRF,2BAAAA;AAAAA,cAACG,KAAAA;AAAAA,cAAA;AAAA,gBACC,MAAM,SAAS,YAAYC,QAAAA,UAAUC,QAAAA;AAAAA,gBACrC,WAAWH,MAAAA;AAAAA,kBACT;AAAA,kBACA,SAAS,aAAa;AAAA,kBACtB,SAAS,aAAa;AAAA,gBAAA;AAAA,cACxB;AAAA,YAAA;AAAA,UACF;AAAA,QAAA;AAAA,MAEJ;AAAA,IAAA;AAAA,EAAA;AAGN;AAEO,SAAS,WAAW;AAAA,EACzB,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,iBAAiB;AAAA,EACjB;AACF,GAAoB;AAClB,QAAM,WAAW,CAAC,CAAC;AACnB,QAAM,UACJD,2BAAAA,KAAAK,WAAAA,UAAA,EACG,UAAA;AAAA,IAAA,UAAU,UACTN,2BAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWE,MAAAA;AAAAA,UACT;AAAA,UACA,SAAS;AAAA,QAAA;AAAA,QAGV,UAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAGJ,QACCF,2BAAAA,IAACG,KAAAA,MAAA,EAAM,GAAI,OAAO,SAAS,WAAW,EAAE,MAAM,SAAS,EAAE,KAAA,GAAS,WAAU,UAAA,CAAU;AAAA,IAExFH,2BAAAA,IAAC,QAAA,EAAK,WAAU,YAAY,UAAA,MAAA,CAAM;AAAA,EAAA,GACpC;AAGF,MAAI,UAAU;AACZ,UAAM,UACJA,2BAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,UAAU;AAAA,QACT,GAAI,QAAQ,EAAE,WAAW,UAAU,CAAA;AAAA,MAAC;AAAA,IAAA;AAGzC,UAAM,eACJA,2BAAAA,IAAC,QAAA,EAAK,WAAU,oEACb,UAAA,SACH;AAGF,WACEA,2BAAAA,IAAC,QAAA,EAAK,WAAWE,MAAAA,GAAG,gDAAgD,SAAS,GAAG,OAC7E,UAAA,mBAAmB,UAClBD,2BAAAA,KAAAK,WAAAA,UAAA,EACG,UAAA;AAAA,MAAA;AAAA,MACA;AAAA,IAAA,EAAA,CACH,IAEAL,2BAAAA,KAAAK,WAAAA,UAAA,EACG,UAAA;AAAA,MAAA;AAAA,MACA;AAAA,IAAA,EAAA,CACH,EAAA,CAEJ;AAAA,EAEJ;AAEA,SACEL,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA,WAAWC,MAAAA;AAAAA,QACT;AAAA,QACA,YAAY,IAAI;AAAA,QAChB;AAAA,MAAA;AAAA,MAGF,UAAA;AAAA,QAAAF,+BAAC,gBAAa,MAAY;AAAA,QACzB;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,SAAS,aAAa,EAAE,QAA8B;AACpD,MAAI,SAAS,UAAW,QAAOA,+BAACG,KAAAA,QAAK,MAAMI,MAAAA,OAAO,WAAU,WAAU;AACtE,MAAI,SAAS,UAAW,QAAOP,+BAACG,KAAAA,QAAK,MAAMK,SAAAA,UAAU,WAAU,WAAU;AACzE,MAAI,SAAS,SAAU,QAAOR,2BAAAA,IAAC,QAAA,EAAK,WAAU,mCAAkC;AAChF,SAAOA,2BAAAA,IAAC,QAAA,EAAK,WAAU,6CAAA,CAA6C;AACtE;AAEA,SAAS,iBAAiB,MAA8B;AACtD,MAAI,SAAS,UAAW,QAAO;AAC/B,MAAI,SAAS,UAAW,QAAO;AAC/B,SAAO;AACT;AASO,SAAS,gBAAgB,EAAE,UAAU,aAAmC;AAC7E,wCAAQ,OAAA,EAAI,WAAWE,MAAAA,GAAG,uCAAuC,SAAS,GAAI,UAAS;AACzF;AAEO,SAAS,kBAAkB;AAChC,wCACG,QAAA,EAAK,eAAW,MAAC,WAAU,sBAAqB,UAAA,KAEjD;AAEJ;;;;"}
|
|
1
|
+
{"version":3,"file":"FilterPill.cjs","sources":["../../src/data/FilterPill.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { Icon, type StaticIconComponent } from \"./Icon\";\nimport { UiAdd, UiCheck, UiClose, UiRemove } from \"../icons\";\n\nexport type FilterMode = \"active\" | \"neutral\" | \"include\" | \"exclude\";\n\nexport type FilterPillProps = {\n /** Visual and semantic state for the pill. */\n mode?: FilterMode;\n /** Primary visible label. */\n label: ReactNode;\n /** Optional count badge rendered before the label. */\n count?: number;\n /** Iconify name or imported icon component. */\n icon?: string | StaticIconComponent;\n /** Classes for the count badge background. */\n badge?: string;\n /**\n * Tri-state handler. When provided the pill renders as a toggle with a left\n * minus (exclude) and right plus (include) region. Clicking a side toggles\n * that state against \"neutral\"; clicking the label cycles neutral → include\n * → exclude → neutral.\n */\n onModeChange?: (next: FilterMode) => void;\n /** Legacy single-click handler, used when onModeChange is not provided. */\n onClick?: () => void;\n /** Browser tooltip and accessible label for tri-state controls. */\n title?: string;\n /** Places the tri-state toggle before or after the label. */\n togglePosition?: \"left\" | \"right\";\n /**\n * When false the tri-state switch renders without button semantics (an\n * aria-hidden span, nothing focusable) for hosts that own focus and keyboard\n * themselves — e.g. a combobox listbox option, where a nested focusable\n * button would violate the option content model. The region click zones\n * remain active. Defaults to true.\n */\n interactive?: boolean;\n /** Classes applied to the pill root. */\n className?: string;\n};\n\nfunction bodyClasses(mode: FilterMode): string {\n switch (mode) {\n case \"active\":\n return \"bg-primary/10 border-primary/40 text-primary font-medium\";\n case \"include\":\n return \"bg-green-500/10 border-green-500/50 text-green-700 dark:text-green-400 font-medium\";\n case \"exclude\":\n return \"bg-red-500/10 border-red-500/50 text-red-700 dark:text-red-400 font-medium\";\n case \"neutral\":\n default:\n return \"border-border text-muted-foreground hover:bg-accent\";\n }\n}\n\ntype SlotMode = \"exclude\" | \"neutral\" | \"include\";\n\nconst SLOT_TRANSLATE: Record<SlotMode, string> = {\n exclude: \"translate-x-0\",\n neutral: \"translate-x-4\",\n include: \"translate-x-8\",\n};\n\nfunction TristateSwitch({\n mode,\n onChange,\n ariaLabel,\n interactive = true,\n}: {\n mode: FilterMode;\n onChange: (next: FilterMode) => void;\n ariaLabel?: string;\n interactive?: boolean;\n}) {\n const slot: SlotMode =\n mode === \"exclude\" ? \"exclude\" : mode === \"include\" ? \"include\" : \"neutral\";\n const bg =\n slot === \"exclude\" ? \"bg-red-500/80\" : slot === \"include\" ? \"bg-green-500/80\" : \"bg-muted\";\n\n // The three regions are aria-hidden click targets layered over the toggle\n // track: clicking the left edge toggles exclude, the right edge toggles\n // include, and the middle rotates. They are NOT focusable buttons — the\n // whole switch is a single <button> so it exposes one accessible name and\n // does not pollute the accessible name of any FilterBar wrapper that hosts\n // it (e.g. the multi-filter option row, which is itself a role=\"button\").\n const region = (next: FilterMode, regionMode: SlotMode) => (\n <span\n aria-hidden\n data-tristate-region={regionMode}\n onClick={(event) => {\n event.preventDefault();\n event.stopPropagation();\n onChange(next);\n }}\n className=\"relative z-10 h-full flex-1 cursor-pointer\"\n />\n );\n\n const content = (\n <>\n {region(mode === \"exclude\" ? \"neutral\" : \"exclude\", \"exclude\")}\n {region(nextTriStateMode(mode), \"neutral\")}\n {region(mode === \"include\" ? \"neutral\" : \"include\", \"include\")}\n <span\n aria-hidden\n className={cn(\n // The knob stays white in BOTH themes (standard switch look): on the\n // dark-mode muted/red/green tracks white is the high-contrast choice,\n // while bg-background would vanish against the track.\n \"pointer-events-none absolute left-0.5 top-0.5 z-20 flex size-4 items-center justify-center rounded-full bg-white shadow-sm transition-transform duration-150\",\n SLOT_TRANSLATE[slot],\n )}\n >\n {slot !== \"neutral\" && (\n <Icon\n icon={slot === \"exclude\" ? UiClose : UiCheck}\n className={cn(\n \"text-[10px]\",\n slot === \"exclude\" && \"text-red-600\",\n slot === \"include\" && \"text-green-600\",\n )}\n />\n )}\n </span>\n </>\n );\n\n const trackClasses = cn(\n \"relative inline-flex h-5 w-[52px] shrink-0 overflow-hidden rounded-full transition-colors duration-200\",\n bg,\n );\n\n // Non-interactive hosts (combobox listbox options) own focus and keyboard;\n // the switch must not add a nested focusable button inside role=\"option\".\n if (!interactive) {\n return (\n <span aria-hidden className={trackClasses}>\n {content}\n </span>\n );\n }\n\n return (\n <button\n type=\"button\"\n aria-label={ariaLabel}\n title={ariaLabel}\n onClick={(event) => {\n // Keyboard activation (Enter/Space) lands here without a region —\n // cycle, matching the middle-region rotation.\n event.preventDefault();\n event.stopPropagation();\n onChange(nextTriStateMode(mode));\n }}\n className={trackClasses}\n >\n {content}\n </button>\n );\n}\n\nexport function FilterPill({\n mode = \"neutral\",\n label,\n count,\n icon,\n badge,\n onModeChange,\n onClick,\n title,\n togglePosition = \"left\",\n interactive = true,\n className,\n}: FilterPillProps) {\n const triState = !!onModeChange;\n const content = (\n <>\n {count !== undefined && (\n <span\n className={cn(\n \"inline-flex items-center justify-center min-w-[16px] h-[16px] px-1 rounded-full text-[10px] font-bold text-white\",\n badge ?? \"bg-muted-foreground\",\n )}\n >\n {count}\n </span>\n )}\n {icon && (\n <Icon {...(typeof icon === \"string\" ? { name: icon } : { icon })} className=\"text-sm\" />\n )}\n <span className=\"truncate\">{label}</span>\n </>\n );\n\n if (triState) {\n const control = (\n <TristateSwitch\n mode={mode}\n onChange={onModeChange!}\n interactive={interactive}\n {...(title ? { ariaLabel: title } : {})}\n />\n );\n const labelContent = (\n <span className=\"inline-flex min-w-0 items-center gap-1.5 text-xs text-foreground\">\n {content}\n </span>\n );\n\n return (\n <span className={cn(\"inline-flex items-center gap-1.5 select-none\", className)} title={title}>\n {togglePosition === \"right\" ? (\n <>\n {labelContent}\n {control}\n </>\n ) : (\n <>\n {control}\n {labelContent}\n </>\n )}\n </span>\n );\n }\n\n return (\n <button\n type=\"button\"\n onClick={onClick}\n title={title}\n className={cn(\n \"inline-flex items-center gap-1.5 text-xs px-2 py-0.5 rounded-full border transition-colors\",\n bodyClasses(mode),\n className,\n )}\n >\n <LegacyMarker mode={mode} />\n {content}\n </button>\n );\n}\n\nfunction LegacyMarker({ mode }: { mode: FilterMode }) {\n if (mode === \"include\") return <Icon icon={UiAdd} className=\"text-xs\" />;\n if (mode === \"exclude\") return <Icon icon={UiRemove} className=\"text-xs\" />;\n if (mode === \"active\") return <span className=\"w-2 h-2 rounded-full bg-current\" />;\n return <span className=\"w-2 h-2 rounded-full bg-current opacity-30\" />;\n}\n\nfunction nextTriStateMode(mode: FilterMode): FilterMode {\n if (mode === \"include\") return \"exclude\";\n if (mode === \"exclude\") return \"neutral\";\n return \"include\";\n}\n\nexport type FilterPillGroupProps = {\n /** Filter pills or separators to lay out. */\n children: ReactNode;\n /** Classes applied to the wrapping row. */\n className?: string;\n};\n\nexport function FilterPillGroup({ children, className }: FilterPillGroupProps) {\n return <div className={cn(\"flex items-center gap-1.5 flex-wrap\", className)}>{children}</div>;\n}\n\nexport function FilterSeparator() {\n return (\n <span aria-hidden className=\"text-border mx-0.5\">\n |\n </span>\n );\n}\n"],"names":["jsx","jsxs","Fragment","cn","Icon","UiClose","UiCheck","UiAdd","UiRemove"],"mappings":"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"}
|
|
@@ -25,10 +25,18 @@ export type FilterPillProps = {
|
|
|
25
25
|
title?: string;
|
|
26
26
|
/** Places the tri-state toggle before or after the label. */
|
|
27
27
|
togglePosition?: "left" | "right";
|
|
28
|
+
/**
|
|
29
|
+
* When false the tri-state switch renders without button semantics (an
|
|
30
|
+
* aria-hidden span, nothing focusable) for hosts that own focus and keyboard
|
|
31
|
+
* themselves — e.g. a combobox listbox option, where a nested focusable
|
|
32
|
+
* button would violate the option content model. The region click zones
|
|
33
|
+
* remain active. Defaults to true.
|
|
34
|
+
*/
|
|
35
|
+
interactive?: boolean;
|
|
28
36
|
/** Classes applied to the pill root. */
|
|
29
37
|
className?: string;
|
|
30
38
|
};
|
|
31
|
-
export declare function FilterPill({ mode, label, count, icon, badge, onModeChange, onClick, title, togglePosition, className, }: FilterPillProps): import("react/jsx-runtime").JSX.Element;
|
|
39
|
+
export declare function FilterPill({ mode, label, count, icon, badge, onModeChange, onClick, title, togglePosition, interactive, className, }: FilterPillProps): import("react/jsx-runtime").JSX.Element;
|
|
32
40
|
export type FilterPillGroupProps = {
|
|
33
41
|
/** Filter pills or separators to lay out. */
|
|
34
42
|
children: ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterPill.d.ts","sourceRoot":"","sources":["../../src/data/FilterPill.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAQ,KAAK,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAGxD,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAEtE,MAAM,MAAM,eAAe,GAAG;IAC5B,8CAA8C;IAC9C,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,6BAA6B;IAC7B,KAAK,EAAE,SAAS,CAAC;IACjB,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAC;IACpC,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IAC1C,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;
|
|
1
|
+
{"version":3,"file":"FilterPill.d.ts","sourceRoot":"","sources":["../../src/data/FilterPill.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAQ,KAAK,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAGxD,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAEtE,MAAM,MAAM,eAAe,GAAG;IAC5B,8CAA8C;IAC9C,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,6BAA6B;IAC7B,KAAK,EAAE,SAAS,CAAC;IACjB,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAC;IACpC,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IAC1C,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AA0HF,wBAAgB,UAAU,CAAC,EACzB,IAAgB,EAChB,KAAK,EACL,KAAK,EACL,IAAI,EACJ,KAAK,EACL,YAAY,EACZ,OAAO,EACP,KAAK,EACL,cAAuB,EACvB,WAAkB,EAClB,SAAS,GACV,EAAE,eAAe,2CAoEjB;AAeD,MAAM,MAAM,oBAAoB,GAAG;IACjC,6CAA6C;IAC7C,QAAQ,EAAE,SAAS,CAAC;IACpB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,oBAAoB,2CAE5E;AAED,wBAAgB,eAAe,4CAM9B"}
|
package/dist/data/FilterPill.js
CHANGED
|
@@ -26,7 +26,8 @@ const SLOT_TRANSLATE = {
|
|
|
26
26
|
function TristateSwitch({
|
|
27
27
|
mode,
|
|
28
28
|
onChange,
|
|
29
|
-
ariaLabel
|
|
29
|
+
ariaLabel,
|
|
30
|
+
interactive = true
|
|
30
31
|
}) {
|
|
31
32
|
const slot = mode === "exclude" ? "exclude" : mode === "include" ? "include" : "neutral";
|
|
32
33
|
const bg = slot === "exclude" ? "bg-red-500/80" : slot === "include" ? "bg-green-500/80" : "bg-muted";
|
|
@@ -43,7 +44,43 @@ function TristateSwitch({
|
|
|
43
44
|
className: "relative z-10 h-full flex-1 cursor-pointer"
|
|
44
45
|
}
|
|
45
46
|
);
|
|
46
|
-
|
|
47
|
+
const content = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
48
|
+
region(mode === "exclude" ? "neutral" : "exclude", "exclude"),
|
|
49
|
+
region(nextTriStateMode(mode), "neutral"),
|
|
50
|
+
region(mode === "include" ? "neutral" : "include", "include"),
|
|
51
|
+
/* @__PURE__ */ jsx(
|
|
52
|
+
"span",
|
|
53
|
+
{
|
|
54
|
+
"aria-hidden": true,
|
|
55
|
+
className: cn(
|
|
56
|
+
// The knob stays white in BOTH themes (standard switch look): on the
|
|
57
|
+
// dark-mode muted/red/green tracks white is the high-contrast choice,
|
|
58
|
+
// while bg-background would vanish against the track.
|
|
59
|
+
"pointer-events-none absolute left-0.5 top-0.5 z-20 flex size-4 items-center justify-center rounded-full bg-white shadow-sm transition-transform duration-150",
|
|
60
|
+
SLOT_TRANSLATE[slot]
|
|
61
|
+
),
|
|
62
|
+
children: slot !== "neutral" && /* @__PURE__ */ jsx(
|
|
63
|
+
Icon,
|
|
64
|
+
{
|
|
65
|
+
icon: slot === "exclude" ? UiClose : UiCheck,
|
|
66
|
+
className: cn(
|
|
67
|
+
"text-[10px]",
|
|
68
|
+
slot === "exclude" && "text-red-600",
|
|
69
|
+
slot === "include" && "text-green-600"
|
|
70
|
+
)
|
|
71
|
+
}
|
|
72
|
+
)
|
|
73
|
+
}
|
|
74
|
+
)
|
|
75
|
+
] });
|
|
76
|
+
const trackClasses = cn(
|
|
77
|
+
"relative inline-flex h-5 w-[52px] shrink-0 overflow-hidden rounded-full transition-colors duration-200",
|
|
78
|
+
bg
|
|
79
|
+
);
|
|
80
|
+
if (!interactive) {
|
|
81
|
+
return /* @__PURE__ */ jsx("span", { "aria-hidden": true, className: trackClasses, children: content });
|
|
82
|
+
}
|
|
83
|
+
return /* @__PURE__ */ jsx(
|
|
47
84
|
"button",
|
|
48
85
|
{
|
|
49
86
|
type: "button",
|
|
@@ -54,39 +91,8 @@ function TristateSwitch({
|
|
|
54
91
|
event.stopPropagation();
|
|
55
92
|
onChange(nextTriStateMode(mode));
|
|
56
93
|
},
|
|
57
|
-
className:
|
|
58
|
-
|
|
59
|
-
bg
|
|
60
|
-
),
|
|
61
|
-
children: [
|
|
62
|
-
region(mode === "exclude" ? "neutral" : "exclude", "exclude"),
|
|
63
|
-
region(nextTriStateMode(mode), "neutral"),
|
|
64
|
-
region(mode === "include" ? "neutral" : "include", "include"),
|
|
65
|
-
/* @__PURE__ */ jsx(
|
|
66
|
-
"span",
|
|
67
|
-
{
|
|
68
|
-
"aria-hidden": true,
|
|
69
|
-
className: cn(
|
|
70
|
-
// The knob stays white in BOTH themes (standard switch look): on the
|
|
71
|
-
// dark-mode muted/red/green tracks white is the high-contrast choice,
|
|
72
|
-
// while bg-background would vanish against the track.
|
|
73
|
-
"pointer-events-none absolute left-0.5 top-0.5 z-20 flex size-4 items-center justify-center rounded-full bg-white shadow-sm transition-transform duration-150",
|
|
74
|
-
SLOT_TRANSLATE[slot]
|
|
75
|
-
),
|
|
76
|
-
children: slot !== "neutral" && /* @__PURE__ */ jsx(
|
|
77
|
-
Icon,
|
|
78
|
-
{
|
|
79
|
-
icon: slot === "exclude" ? UiClose : UiCheck,
|
|
80
|
-
className: cn(
|
|
81
|
-
"text-[10px]",
|
|
82
|
-
slot === "exclude" && "text-red-600",
|
|
83
|
-
slot === "include" && "text-green-600"
|
|
84
|
-
)
|
|
85
|
-
}
|
|
86
|
-
)
|
|
87
|
-
}
|
|
88
|
-
)
|
|
89
|
-
]
|
|
94
|
+
className: trackClasses,
|
|
95
|
+
children: content
|
|
90
96
|
}
|
|
91
97
|
);
|
|
92
98
|
}
|
|
@@ -100,6 +106,7 @@ function FilterPill({
|
|
|
100
106
|
onClick,
|
|
101
107
|
title,
|
|
102
108
|
togglePosition = "left",
|
|
109
|
+
interactive = true,
|
|
103
110
|
className
|
|
104
111
|
}) {
|
|
105
112
|
const triState = !!onModeChange;
|
|
@@ -123,6 +130,7 @@ function FilterPill({
|
|
|
123
130
|
{
|
|
124
131
|
mode,
|
|
125
132
|
onChange: onModeChange,
|
|
133
|
+
interactive,
|
|
126
134
|
...title ? { ariaLabel: title } : {}
|
|
127
135
|
}
|
|
128
136
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterPill.js","sources":["../../src/data/FilterPill.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { Icon, type StaticIconComponent } from \"./Icon\";\nimport { UiAdd, UiCheck, UiClose, UiRemove } from \"../icons\";\n\nexport type FilterMode = \"active\" | \"neutral\" | \"include\" | \"exclude\";\n\nexport type FilterPillProps = {\n /** Visual and semantic state for the pill. */\n mode?: FilterMode;\n /** Primary visible label. */\n label: ReactNode;\n /** Optional count badge rendered before the label. */\n count?: number;\n /** Iconify name or imported icon component. */\n icon?: string | StaticIconComponent;\n /** Classes for the count badge background. */\n badge?: string;\n /**\n * Tri-state handler. When provided the pill renders as a toggle with a left\n * minus (exclude) and right plus (include) region. Clicking a side toggles\n * that state against \"neutral\"; clicking the label cycles neutral → include\n * → exclude → neutral.\n */\n onModeChange?: (next: FilterMode) => void;\n /** Legacy single-click handler, used when onModeChange is not provided. */\n onClick?: () => void;\n /** Browser tooltip and accessible label for tri-state controls. */\n title?: string;\n /** Places the tri-state toggle before or after the label. */\n togglePosition?: \"left\" | \"right\";\n /** Classes applied to the pill root. */\n className?: string;\n};\n\nfunction bodyClasses(mode: FilterMode): string {\n switch (mode) {\n case \"active\":\n return \"bg-primary/10 border-primary/40 text-primary font-medium\";\n case \"include\":\n return \"bg-green-500/10 border-green-500/50 text-green-700 dark:text-green-400 font-medium\";\n case \"exclude\":\n return \"bg-red-500/10 border-red-500/50 text-red-700 dark:text-red-400 font-medium\";\n case \"neutral\":\n default:\n return \"border-border text-muted-foreground hover:bg-accent\";\n }\n}\n\ntype SlotMode = \"exclude\" | \"neutral\" | \"include\";\n\nconst SLOT_TRANSLATE: Record<SlotMode, string> = {\n exclude: \"translate-x-0\",\n neutral: \"translate-x-4\",\n include: \"translate-x-8\",\n};\n\nfunction TristateSwitch({\n mode,\n onChange,\n ariaLabel,\n}: {\n mode: FilterMode;\n onChange: (next: FilterMode) => void;\n ariaLabel?: string;\n}) {\n const slot: SlotMode =\n mode === \"exclude\" ? \"exclude\" : mode === \"include\" ? \"include\" : \"neutral\";\n const bg =\n slot === \"exclude\" ? \"bg-red-500/80\" : slot === \"include\" ? \"bg-green-500/80\" : \"bg-muted\";\n\n // The three regions are aria-hidden click targets layered over the toggle\n // track: clicking the left edge toggles exclude, the right edge toggles\n // include, and the middle rotates. They are NOT focusable buttons — the\n // whole switch is a single <button> so it exposes one accessible name and\n // does not pollute the accessible name of any FilterBar wrapper that hosts\n // it (e.g. the multi-filter option row, which is itself a role=\"button\").\n const region = (next: FilterMode, regionMode: SlotMode) => (\n <span\n aria-hidden\n data-tristate-region={regionMode}\n onClick={(event) => {\n event.preventDefault();\n event.stopPropagation();\n onChange(next);\n }}\n className=\"relative z-10 h-full flex-1 cursor-pointer\"\n />\n );\n\n return (\n <button\n type=\"button\"\n aria-label={ariaLabel}\n title={ariaLabel}\n onClick={(event) => {\n // Keyboard activation (Enter/Space) lands here without a region —\n // cycle, matching the middle-region rotation.\n event.preventDefault();\n event.stopPropagation();\n onChange(nextTriStateMode(mode));\n }}\n className={cn(\n \"relative inline-flex h-5 w-[52px] shrink-0 overflow-hidden rounded-full transition-colors duration-200\",\n bg,\n )}\n >\n {region(mode === \"exclude\" ? \"neutral\" : \"exclude\", \"exclude\")}\n {region(nextTriStateMode(mode), \"neutral\")}\n {region(mode === \"include\" ? \"neutral\" : \"include\", \"include\")}\n <span\n aria-hidden\n className={cn(\n // The knob stays white in BOTH themes (standard switch look): on the\n // dark-mode muted/red/green tracks white is the high-contrast choice,\n // while bg-background would vanish against the track.\n \"pointer-events-none absolute left-0.5 top-0.5 z-20 flex size-4 items-center justify-center rounded-full bg-white shadow-sm transition-transform duration-150\",\n SLOT_TRANSLATE[slot],\n )}\n >\n {slot !== \"neutral\" && (\n <Icon\n icon={slot === \"exclude\" ? UiClose : UiCheck}\n className={cn(\n \"text-[10px]\",\n slot === \"exclude\" && \"text-red-600\",\n slot === \"include\" && \"text-green-600\",\n )}\n />\n )}\n </span>\n </button>\n );\n}\n\nexport function FilterPill({\n mode = \"neutral\",\n label,\n count,\n icon,\n badge,\n onModeChange,\n onClick,\n title,\n togglePosition = \"left\",\n className,\n}: FilterPillProps) {\n const triState = !!onModeChange;\n const content = (\n <>\n {count !== undefined && (\n <span\n className={cn(\n \"inline-flex items-center justify-center min-w-[16px] h-[16px] px-1 rounded-full text-[10px] font-bold text-white\",\n badge ?? \"bg-muted-foreground\",\n )}\n >\n {count}\n </span>\n )}\n {icon && (\n <Icon {...(typeof icon === \"string\" ? { name: icon } : { icon })} className=\"text-sm\" />\n )}\n <span className=\"truncate\">{label}</span>\n </>\n );\n\n if (triState) {\n const control = (\n <TristateSwitch\n mode={mode}\n onChange={onModeChange!}\n {...(title ? { ariaLabel: title } : {})}\n />\n );\n const labelContent = (\n <span className=\"inline-flex min-w-0 items-center gap-1.5 text-xs text-foreground\">\n {content}\n </span>\n );\n\n return (\n <span className={cn(\"inline-flex items-center gap-1.5 select-none\", className)} title={title}>\n {togglePosition === \"right\" ? (\n <>\n {labelContent}\n {control}\n </>\n ) : (\n <>\n {control}\n {labelContent}\n </>\n )}\n </span>\n );\n }\n\n return (\n <button\n type=\"button\"\n onClick={onClick}\n title={title}\n className={cn(\n \"inline-flex items-center gap-1.5 text-xs px-2 py-0.5 rounded-full border transition-colors\",\n bodyClasses(mode),\n className,\n )}\n >\n <LegacyMarker mode={mode} />\n {content}\n </button>\n );\n}\n\nfunction LegacyMarker({ mode }: { mode: FilterMode }) {\n if (mode === \"include\") return <Icon icon={UiAdd} className=\"text-xs\" />;\n if (mode === \"exclude\") return <Icon icon={UiRemove} className=\"text-xs\" />;\n if (mode === \"active\") return <span className=\"w-2 h-2 rounded-full bg-current\" />;\n return <span className=\"w-2 h-2 rounded-full bg-current opacity-30\" />;\n}\n\nfunction nextTriStateMode(mode: FilterMode): FilterMode {\n if (mode === \"include\") return \"exclude\";\n if (mode === \"exclude\") return \"neutral\";\n return \"include\";\n}\n\nexport type FilterPillGroupProps = {\n /** Filter pills or separators to lay out. */\n children: ReactNode;\n /** Classes applied to the wrapping row. */\n className?: string;\n};\n\nexport function FilterPillGroup({ children, className }: FilterPillGroupProps) {\n return <div className={cn(\"flex items-center gap-1.5 flex-wrap\", className)}>{children}</div>;\n}\n\nexport function FilterSeparator() {\n return (\n <span aria-hidden className=\"text-border mx-0.5\">\n |\n </span>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FilterPill.js","sources":["../../src/data/FilterPill.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { Icon, type StaticIconComponent } from \"./Icon\";\nimport { UiAdd, UiCheck, UiClose, UiRemove } from \"../icons\";\n\nexport type FilterMode = \"active\" | \"neutral\" | \"include\" | \"exclude\";\n\nexport type FilterPillProps = {\n /** Visual and semantic state for the pill. */\n mode?: FilterMode;\n /** Primary visible label. */\n label: ReactNode;\n /** Optional count badge rendered before the label. */\n count?: number;\n /** Iconify name or imported icon component. */\n icon?: string | StaticIconComponent;\n /** Classes for the count badge background. */\n badge?: string;\n /**\n * Tri-state handler. When provided the pill renders as a toggle with a left\n * minus (exclude) and right plus (include) region. Clicking a side toggles\n * that state against \"neutral\"; clicking the label cycles neutral → include\n * → exclude → neutral.\n */\n onModeChange?: (next: FilterMode) => void;\n /** Legacy single-click handler, used when onModeChange is not provided. */\n onClick?: () => void;\n /** Browser tooltip and accessible label for tri-state controls. */\n title?: string;\n /** Places the tri-state toggle before or after the label. */\n togglePosition?: \"left\" | \"right\";\n /**\n * When false the tri-state switch renders without button semantics (an\n * aria-hidden span, nothing focusable) for hosts that own focus and keyboard\n * themselves — e.g. a combobox listbox option, where a nested focusable\n * button would violate the option content model. The region click zones\n * remain active. Defaults to true.\n */\n interactive?: boolean;\n /** Classes applied to the pill root. */\n className?: string;\n};\n\nfunction bodyClasses(mode: FilterMode): string {\n switch (mode) {\n case \"active\":\n return \"bg-primary/10 border-primary/40 text-primary font-medium\";\n case \"include\":\n return \"bg-green-500/10 border-green-500/50 text-green-700 dark:text-green-400 font-medium\";\n case \"exclude\":\n return \"bg-red-500/10 border-red-500/50 text-red-700 dark:text-red-400 font-medium\";\n case \"neutral\":\n default:\n return \"border-border text-muted-foreground hover:bg-accent\";\n }\n}\n\ntype SlotMode = \"exclude\" | \"neutral\" | \"include\";\n\nconst SLOT_TRANSLATE: Record<SlotMode, string> = {\n exclude: \"translate-x-0\",\n neutral: \"translate-x-4\",\n include: \"translate-x-8\",\n};\n\nfunction TristateSwitch({\n mode,\n onChange,\n ariaLabel,\n interactive = true,\n}: {\n mode: FilterMode;\n onChange: (next: FilterMode) => void;\n ariaLabel?: string;\n interactive?: boolean;\n}) {\n const slot: SlotMode =\n mode === \"exclude\" ? \"exclude\" : mode === \"include\" ? \"include\" : \"neutral\";\n const bg =\n slot === \"exclude\" ? \"bg-red-500/80\" : slot === \"include\" ? \"bg-green-500/80\" : \"bg-muted\";\n\n // The three regions are aria-hidden click targets layered over the toggle\n // track: clicking the left edge toggles exclude, the right edge toggles\n // include, and the middle rotates. They are NOT focusable buttons — the\n // whole switch is a single <button> so it exposes one accessible name and\n // does not pollute the accessible name of any FilterBar wrapper that hosts\n // it (e.g. the multi-filter option row, which is itself a role=\"button\").\n const region = (next: FilterMode, regionMode: SlotMode) => (\n <span\n aria-hidden\n data-tristate-region={regionMode}\n onClick={(event) => {\n event.preventDefault();\n event.stopPropagation();\n onChange(next);\n }}\n className=\"relative z-10 h-full flex-1 cursor-pointer\"\n />\n );\n\n const content = (\n <>\n {region(mode === \"exclude\" ? \"neutral\" : \"exclude\", \"exclude\")}\n {region(nextTriStateMode(mode), \"neutral\")}\n {region(mode === \"include\" ? \"neutral\" : \"include\", \"include\")}\n <span\n aria-hidden\n className={cn(\n // The knob stays white in BOTH themes (standard switch look): on the\n // dark-mode muted/red/green tracks white is the high-contrast choice,\n // while bg-background would vanish against the track.\n \"pointer-events-none absolute left-0.5 top-0.5 z-20 flex size-4 items-center justify-center rounded-full bg-white shadow-sm transition-transform duration-150\",\n SLOT_TRANSLATE[slot],\n )}\n >\n {slot !== \"neutral\" && (\n <Icon\n icon={slot === \"exclude\" ? UiClose : UiCheck}\n className={cn(\n \"text-[10px]\",\n slot === \"exclude\" && \"text-red-600\",\n slot === \"include\" && \"text-green-600\",\n )}\n />\n )}\n </span>\n </>\n );\n\n const trackClasses = cn(\n \"relative inline-flex h-5 w-[52px] shrink-0 overflow-hidden rounded-full transition-colors duration-200\",\n bg,\n );\n\n // Non-interactive hosts (combobox listbox options) own focus and keyboard;\n // the switch must not add a nested focusable button inside role=\"option\".\n if (!interactive) {\n return (\n <span aria-hidden className={trackClasses}>\n {content}\n </span>\n );\n }\n\n return (\n <button\n type=\"button\"\n aria-label={ariaLabel}\n title={ariaLabel}\n onClick={(event) => {\n // Keyboard activation (Enter/Space) lands here without a region —\n // cycle, matching the middle-region rotation.\n event.preventDefault();\n event.stopPropagation();\n onChange(nextTriStateMode(mode));\n }}\n className={trackClasses}\n >\n {content}\n </button>\n );\n}\n\nexport function FilterPill({\n mode = \"neutral\",\n label,\n count,\n icon,\n badge,\n onModeChange,\n onClick,\n title,\n togglePosition = \"left\",\n interactive = true,\n className,\n}: FilterPillProps) {\n const triState = !!onModeChange;\n const content = (\n <>\n {count !== undefined && (\n <span\n className={cn(\n \"inline-flex items-center justify-center min-w-[16px] h-[16px] px-1 rounded-full text-[10px] font-bold text-white\",\n badge ?? \"bg-muted-foreground\",\n )}\n >\n {count}\n </span>\n )}\n {icon && (\n <Icon {...(typeof icon === \"string\" ? { name: icon } : { icon })} className=\"text-sm\" />\n )}\n <span className=\"truncate\">{label}</span>\n </>\n );\n\n if (triState) {\n const control = (\n <TristateSwitch\n mode={mode}\n onChange={onModeChange!}\n interactive={interactive}\n {...(title ? { ariaLabel: title } : {})}\n />\n );\n const labelContent = (\n <span className=\"inline-flex min-w-0 items-center gap-1.5 text-xs text-foreground\">\n {content}\n </span>\n );\n\n return (\n <span className={cn(\"inline-flex items-center gap-1.5 select-none\", className)} title={title}>\n {togglePosition === \"right\" ? (\n <>\n {labelContent}\n {control}\n </>\n ) : (\n <>\n {control}\n {labelContent}\n </>\n )}\n </span>\n );\n }\n\n return (\n <button\n type=\"button\"\n onClick={onClick}\n title={title}\n className={cn(\n \"inline-flex items-center gap-1.5 text-xs px-2 py-0.5 rounded-full border transition-colors\",\n bodyClasses(mode),\n className,\n )}\n >\n <LegacyMarker mode={mode} />\n {content}\n </button>\n );\n}\n\nfunction LegacyMarker({ mode }: { mode: FilterMode }) {\n if (mode === \"include\") return <Icon icon={UiAdd} className=\"text-xs\" />;\n if (mode === \"exclude\") return <Icon icon={UiRemove} className=\"text-xs\" />;\n if (mode === \"active\") return <span className=\"w-2 h-2 rounded-full bg-current\" />;\n return <span className=\"w-2 h-2 rounded-full bg-current opacity-30\" />;\n}\n\nfunction nextTriStateMode(mode: FilterMode): FilterMode {\n if (mode === \"include\") return \"exclude\";\n if (mode === \"exclude\") return \"neutral\";\n return \"include\";\n}\n\nexport type FilterPillGroupProps = {\n /** Filter pills or separators to lay out. */\n children: ReactNode;\n /** Classes applied to the wrapping row. */\n className?: string;\n};\n\nexport function FilterPillGroup({ children, className }: FilterPillGroupProps) {\n return <div className={cn(\"flex items-center gap-1.5 flex-wrap\", className)}>{children}</div>;\n}\n\nexport function FilterSeparator() {\n return (\n <span aria-hidden className=\"text-border mx-0.5\">\n |\n </span>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
+
const react = require("react");
|
|
5
|
+
const JsonSchemaForm = require("../../components/JsonSchemaForm.cjs");
|
|
6
|
+
const Badge = require("../Badge.cjs");
|
|
7
|
+
const fixtureBlocks = require("./fixture-blocks.cjs");
|
|
8
|
+
const RawFenceEditor = require("./RawFenceEditor.cjs");
|
|
9
|
+
function FenceForm({
|
|
10
|
+
info,
|
|
11
|
+
body,
|
|
12
|
+
schema,
|
|
13
|
+
parseAsYaml,
|
|
14
|
+
known,
|
|
15
|
+
readOnly,
|
|
16
|
+
onChangeBody
|
|
17
|
+
}) {
|
|
18
|
+
const parsed = react.useMemo(
|
|
19
|
+
() => parseAsYaml ? fixtureBlocks.parseFixtureYaml(body) : void 0,
|
|
20
|
+
[body, parseAsYaml]
|
|
21
|
+
);
|
|
22
|
+
const raw = react.useMemo(
|
|
23
|
+
() => !parseAsYaml ? parseRawFenceValue(body) : void 0,
|
|
24
|
+
[body, parseAsYaml]
|
|
25
|
+
);
|
|
26
|
+
const formValue = parseAsYaml ? (parsed == null ? void 0 : parsed.ok) === true ? parsed.value : void 0 : raw == null ? void 0 : raw.value;
|
|
27
|
+
const canRenderForm = schema != null && formValue != null;
|
|
28
|
+
if (!canRenderForm) {
|
|
29
|
+
return /* @__PURE__ */ jsxRuntime.jsx(NestedPanel, { title: "Source", aside: sourceBadge(parseAsYaml, schema, parsed, known), children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
30
|
+
RawFenceEditor.RawFenceEditor,
|
|
31
|
+
{
|
|
32
|
+
info,
|
|
33
|
+
body,
|
|
34
|
+
helper: (parsed == null ? void 0 : parsed.ok) === false ? parsed.error : void 0,
|
|
35
|
+
readOnly,
|
|
36
|
+
onChange: onChangeBody
|
|
37
|
+
}
|
|
38
|
+
) });
|
|
39
|
+
}
|
|
40
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col border-t border-border", children: [
|
|
41
|
+
/* @__PURE__ */ jsxRuntime.jsx(NestedPanel, { title: "Structured options", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
42
|
+
JsonSchemaForm.JsonSchemaForm,
|
|
43
|
+
{
|
|
44
|
+
schema,
|
|
45
|
+
value: formValue,
|
|
46
|
+
onChange: (next) => onChangeBody(
|
|
47
|
+
parseAsYaml ? fixtureBlocks.stringifyFixtureYaml(next) : stringifyRawFenceValue(next)
|
|
48
|
+
),
|
|
49
|
+
readOnly,
|
|
50
|
+
size: "md",
|
|
51
|
+
showPreferencesMenu: false,
|
|
52
|
+
persistPreferences: false,
|
|
53
|
+
layout: {
|
|
54
|
+
mode: "inline",
|
|
55
|
+
labelMaxWidth: "12rem",
|
|
56
|
+
valueMaxWidth: "min(100%, 34rem)"
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
) }),
|
|
60
|
+
/* @__PURE__ */ jsxRuntime.jsx(NestedPanel, { title: "Source", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
61
|
+
RawFenceEditor.RawFenceEditor,
|
|
62
|
+
{
|
|
63
|
+
info,
|
|
64
|
+
body,
|
|
65
|
+
readOnly,
|
|
66
|
+
onChange: onChangeBody
|
|
67
|
+
}
|
|
68
|
+
) })
|
|
69
|
+
] });
|
|
70
|
+
}
|
|
71
|
+
function parseRawFenceValue(body) {
|
|
72
|
+
const parsed = fixtureBlocks.parseFixtureYaml(body);
|
|
73
|
+
if (parsed.ok && isRecord(parsed.value) && typeof parsed.value.content === "string") {
|
|
74
|
+
return { value: parsed.value };
|
|
75
|
+
}
|
|
76
|
+
return { value: { content: body } };
|
|
77
|
+
}
|
|
78
|
+
function stringifyRawFenceValue(value) {
|
|
79
|
+
const content = typeof value.content === "string" ? value.content : "";
|
|
80
|
+
const compact = {};
|
|
81
|
+
for (const [key, field] of Object.entries(value)) {
|
|
82
|
+
if (key === "content") continue;
|
|
83
|
+
if (isEmptyValue(field)) continue;
|
|
84
|
+
compact[key] = field;
|
|
85
|
+
}
|
|
86
|
+
if (Object.keys(compact).length === 0) {
|
|
87
|
+
return content;
|
|
88
|
+
}
|
|
89
|
+
return fixtureBlocks.stringifyFixtureYaml({ content, ...compact });
|
|
90
|
+
}
|
|
91
|
+
function isEmptyValue(value) {
|
|
92
|
+
if (value == null || value === "") return true;
|
|
93
|
+
if (Array.isArray(value)) return value.length === 0;
|
|
94
|
+
if (isRecord(value)) return Object.keys(value).length === 0;
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
function isRecord(value) {
|
|
98
|
+
return typeof value === "object" && value != null && !Array.isArray(value);
|
|
99
|
+
}
|
|
100
|
+
function sourceBadge(parseAsYaml, schema, parsed, known) {
|
|
101
|
+
if ((parsed == null ? void 0 : parsed.ok) === false) {
|
|
102
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Badge.Badge, { variant: "status", status: "error", size: "xs", clickToCopy: false, children: "YAML error" });
|
|
103
|
+
}
|
|
104
|
+
if (parseAsYaml && schema == null && !known) {
|
|
105
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Badge.Badge, { variant: "status", status: "warning", size: "xs", clickToCopy: false, children: "Unknown fence" });
|
|
106
|
+
}
|
|
107
|
+
return void 0;
|
|
108
|
+
}
|
|
109
|
+
function NestedPanel({
|
|
110
|
+
title,
|
|
111
|
+
aside,
|
|
112
|
+
children
|
|
113
|
+
}) {
|
|
114
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "border-b border-border last:border-b-0", children: [
|
|
115
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-h-9 items-center justify-between gap-3 bg-muted/30 px-4 py-2", children: [
|
|
116
|
+
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-xs font-semibold uppercase tracking-normal text-muted-foreground", children: title }),
|
|
117
|
+
aside
|
|
118
|
+
] }),
|
|
119
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0 p-4", children })
|
|
120
|
+
] });
|
|
121
|
+
}
|
|
122
|
+
exports.FenceForm = FenceForm;
|
|
123
|
+
//# sourceMappingURL=FenceForm.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FenceForm.cjs","sources":["../../../src/data/FixtureEditor/FenceForm.tsx"],"sourcesContent":["import { useMemo, type ReactNode } from \"react\";\nimport { JsonSchemaForm } from \"../../components/JsonSchemaForm\";\nimport type { JsonSchemaObject } from \"../../components/json-schema-form-types\";\nimport { Badge } from \"../Badge\";\nimport type { FixtureEditorSize } from \"./types\";\nimport {\n parseFixtureYaml,\n stringifyFixtureYaml,\n type ParsedFixtureYaml,\n} from \"./fixture-blocks\";\nimport { RawFenceEditor } from \"./RawFenceEditor\";\n\nexport type FenceFormProps = {\n info: string;\n body: string;\n schema: JsonSchemaObject | undefined;\n parseAsYaml: boolean;\n known: boolean;\n readOnly: boolean;\n size: FixtureEditorSize;\n onChangeBody: (body: string) => void;\n};\n\nexport function FenceForm({\n info,\n body,\n schema,\n parseAsYaml,\n known,\n readOnly,\n onChangeBody,\n}: FenceFormProps) {\n const parsed = useMemo<ParsedFixtureYaml | undefined>(\n () => (parseAsYaml ? parseFixtureYaml(body) : undefined),\n [body, parseAsYaml],\n );\n const raw = useMemo(\n () => (!parseAsYaml ? parseRawFenceValue(body) : undefined),\n [body, parseAsYaml],\n );\n const formValue = parseAsYaml\n ? parsed?.ok === true\n ? parsed.value\n : undefined\n : raw?.value;\n const canRenderForm = schema != null && formValue != null;\n\n if (!canRenderForm) {\n return (\n <NestedPanel title=\"Source\" aside={sourceBadge(parseAsYaml, schema, parsed, known)}>\n <RawFenceEditor\n info={info}\n body={body}\n helper={parsed?.ok === false ? parsed.error : undefined}\n readOnly={readOnly}\n onChange={onChangeBody}\n />\n </NestedPanel>\n );\n }\n\n return (\n <div className=\"flex flex-col border-t border-border\">\n <NestedPanel title=\"Structured options\">\n <JsonSchemaForm\n schema={schema}\n value={formValue}\n onChange={(next) =>\n onChangeBody(\n parseAsYaml\n ? stringifyFixtureYaml(next)\n : stringifyRawFenceValue(next),\n )\n }\n readOnly={readOnly}\n size=\"md\"\n showPreferencesMenu={false}\n persistPreferences={false}\n layout={{\n mode: \"inline\",\n labelMaxWidth: \"12rem\",\n valueMaxWidth: \"min(100%, 34rem)\",\n }}\n />\n </NestedPanel>\n <NestedPanel title=\"Source\">\n <RawFenceEditor\n info={info}\n body={body}\n readOnly={readOnly}\n onChange={onChangeBody}\n />\n </NestedPanel>\n </div>\n );\n}\n\nfunction parseRawFenceValue(body: string): { value: Record<string, unknown> } {\n const parsed = parseFixtureYaml(body);\n if (\n parsed.ok &&\n isRecord(parsed.value) &&\n typeof parsed.value.content === \"string\"\n ) {\n return { value: parsed.value };\n }\n return { value: { content: body } };\n}\n\nfunction stringifyRawFenceValue(value: Record<string, unknown>): string {\n const content = typeof value.content === \"string\" ? value.content : \"\";\n const compact: Record<string, unknown> = {};\n for (const [key, field] of Object.entries(value)) {\n if (key === \"content\") continue;\n if (isEmptyValue(field)) continue;\n compact[key] = field;\n }\n if (Object.keys(compact).length === 0) {\n return content;\n }\n return stringifyFixtureYaml({ content, ...compact });\n}\n\nfunction isEmptyValue(value: unknown): boolean {\n if (value == null || value === \"\") return true;\n if (Array.isArray(value)) return value.length === 0;\n if (isRecord(value)) return Object.keys(value).length === 0;\n return false;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value != null && !Array.isArray(value);\n}\n\nfunction sourceBadge(\n parseAsYaml: boolean,\n schema: JsonSchemaObject | undefined,\n parsed: ParsedFixtureYaml | undefined,\n known: boolean,\n) {\n if (parsed?.ok === false) {\n return (\n <Badge variant=\"status\" status=\"error\" size=\"xs\" clickToCopy={false}>\n YAML error\n </Badge>\n );\n }\n\n if (parseAsYaml && schema == null && !known) {\n return (\n <Badge variant=\"status\" status=\"warning\" size=\"xs\" clickToCopy={false}>\n Unknown fence\n </Badge>\n );\n }\n\n return undefined;\n}\n\nfunction NestedPanel({\n title,\n aside,\n children,\n}: {\n title: string;\n aside?: ReactNode;\n children: ReactNode;\n}) {\n return (\n <section className=\"border-b border-border last:border-b-0\">\n <div className=\"flex min-h-9 items-center justify-between gap-3 bg-muted/30 px-4 py-2\">\n <h4 className=\"text-xs font-semibold uppercase tracking-normal text-muted-foreground\">\n {title}\n </h4>\n {aside}\n </div>\n <div className=\"min-w-0 p-4\">{children}</div>\n </section>\n );\n}\n"],"names":["useMemo","parseFixtureYaml","jsx","RawFenceEditor","jsxs","JsonSchemaForm","stringifyFixtureYaml","Badge"],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { JsonSchemaObject } from '../../components/json-schema-form-types';
|
|
2
|
+
import { FixtureEditorSize } from './types';
|
|
3
|
+
export type FenceFormProps = {
|
|
4
|
+
info: string;
|
|
5
|
+
body: string;
|
|
6
|
+
schema: JsonSchemaObject | undefined;
|
|
7
|
+
parseAsYaml: boolean;
|
|
8
|
+
known: boolean;
|
|
9
|
+
readOnly: boolean;
|
|
10
|
+
size: FixtureEditorSize;
|
|
11
|
+
onChangeBody: (body: string) => void;
|
|
12
|
+
};
|
|
13
|
+
export declare function FenceForm({ info, body, schema, parseAsYaml, known, readOnly, onChangeBody, }: FenceFormProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
//# sourceMappingURL=FenceForm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FenceForm.d.ts","sourceRoot":"","sources":["../../../src/data/FixtureEditor/FenceForm.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAEhF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAQjD,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACrC,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,iBAAiB,CAAC;IACxB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC,CAAC;AAEF,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,WAAW,EACX,KAAK,EACL,QAAQ,EACR,YAAY,GACb,EAAE,cAAc,2CAgEhB"}
|