@flanksource/clicky-ui 0.3.36 → 0.3.37
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 +462 -16
- package/README.md +16 -0
- package/dist/ai.cjs +24 -4
- package/dist/ai.cjs.map +1 -1
- package/dist/ai.js +21 -1
- package/dist/ai.js.map +1 -1
- package/dist/clicky.d.ts +1 -1
- package/dist/clicky.d.ts.map +1 -1
- package/dist/comments/CommentComposer.cjs +18 -5
- package/dist/comments/CommentComposer.cjs.map +1 -1
- package/dist/comments/CommentComposer.d.ts +5 -3
- package/dist/comments/CommentComposer.d.ts.map +1 -1
- package/dist/comments/CommentComposer.js +18 -5
- package/dist/comments/CommentComposer.js.map +1 -1
- package/dist/comments/CommentSidePanel.cjs +4 -1
- package/dist/comments/CommentSidePanel.cjs.map +1 -1
- package/dist/comments/CommentSidePanel.d.ts +2 -1
- package/dist/comments/CommentSidePanel.d.ts.map +1 -1
- package/dist/comments/CommentSidePanel.js +4 -1
- package/dist/comments/CommentSidePanel.js.map +1 -1
- package/dist/comments/CommentThread.cjs +2 -0
- package/dist/comments/CommentThread.cjs.map +1 -1
- package/dist/comments/CommentThread.d.ts +3 -2
- package/dist/comments/CommentThread.d.ts.map +1 -1
- package/dist/comments/CommentThread.js +2 -0
- package/dist/comments/CommentThread.js.map +1 -1
- package/dist/comments/comment-types.cjs.map +1 -1
- package/dist/comments/comment-types.d.ts +5 -1
- package/dist/comments/comment-types.d.ts.map +1 -1
- package/dist/comments/comment-types.js.map +1 -1
- package/dist/components/Combobox.cjs +1 -0
- package/dist/components/Combobox.cjs.map +1 -1
- package/dist/components/Combobox.d.ts.map +1 -1
- package/dist/components/Combobox.js +1 -0
- package/dist/components/Combobox.js.map +1 -1
- package/dist/components/ComboboxMenu.cjs +2 -1
- package/dist/components/ComboboxMenu.cjs.map +1 -1
- package/dist/components/ComboboxMenu.d.ts.map +1 -1
- package/dist/components/ComboboxMenu.js +2 -1
- package/dist/components/ComboboxMenu.js.map +1 -1
- package/dist/components/ErrorWrapper.cjs +1 -1
- package/dist/components/ErrorWrapper.cjs.map +1 -1
- package/dist/components/ErrorWrapper.d.ts +2 -2
- package/dist/components/ErrorWrapper.d.ts.map +1 -1
- package/dist/components/ErrorWrapper.js +2 -2
- package/dist/components/ErrorWrapper.js.map +1 -1
- package/dist/components/FilterBar.cjs +588 -228
- package/dist/components/FilterBar.cjs.map +1 -1
- package/dist/components/FilterBar.d.ts +42 -3
- package/dist/components/FilterBar.d.ts.map +1 -1
- package/dist/components/FilterBar.js +586 -226
- package/dist/components/FilterBar.js.map +1 -1
- package/dist/components/JsonSchemaForm.cjs +15 -6
- package/dist/components/JsonSchemaForm.cjs.map +1 -1
- package/dist/components/JsonSchemaForm.d.ts +1 -1
- package/dist/components/JsonSchemaForm.d.ts.map +1 -1
- package/dist/components/JsonSchemaForm.js +15 -6
- package/dist/components/JsonSchemaForm.js.map +1 -1
- package/dist/components/MultiSelect.cjs.map +1 -1
- package/dist/components/MultiSelect.d.ts +6 -0
- package/dist/components/MultiSelect.d.ts.map +1 -1
- package/dist/components/MultiSelect.js.map +1 -1
- package/dist/components/ScheduleEditor.cjs +184 -0
- package/dist/components/ScheduleEditor.cjs.map +1 -0
- package/dist/components/ScheduleEditor.d.ts +27 -0
- package/dist/components/ScheduleEditor.d.ts.map +1 -0
- package/dist/components/ScheduleEditor.js +184 -0
- package/dist/components/ScheduleEditor.js.map +1 -0
- package/dist/components/TimeRange.cjs +7 -4
- package/dist/components/TimeRange.cjs.map +1 -1
- package/dist/components/TimeRange.d.ts +6 -1
- package/dist/components/TimeRange.d.ts.map +1 -1
- package/dist/components/TimeRange.js +7 -4
- package/dist/components/TimeRange.js.map +1 -1
- package/dist/components/combobox-types.d.ts +6 -0
- package/dist/components/combobox-types.d.ts.map +1 -1
- package/dist/components/filter-bar-context.cjs +2 -1
- package/dist/components/filter-bar-context.cjs.map +1 -1
- package/dist/components/filter-bar-context.d.ts +1 -0
- package/dist/components/filter-bar-context.d.ts.map +1 -1
- package/dist/components/filter-bar-context.js +2 -1
- package/dist/components/filter-bar-context.js.map +1 -1
- package/dist/components/filter-bar-multi.cjs +7 -2
- package/dist/components/filter-bar-multi.cjs.map +1 -1
- package/dist/components/filter-bar-multi.d.ts.map +1 -1
- package/dist/components/filter-bar-multi.js +7 -2
- package/dist/components/filter-bar-multi.js.map +1 -1
- package/dist/components/filter-bar-utils.cjs +2 -2
- package/dist/components/filter-bar-utils.cjs.map +1 -1
- package/dist/components/filter-bar-utils.d.ts.map +1 -1
- package/dist/components/filter-bar-utils.js +2 -2
- package/dist/components/filter-bar-utils.js.map +1 -1
- package/dist/components/jotai-bindings-core.cjs +14 -1
- package/dist/components/jotai-bindings-core.cjs.map +1 -1
- package/dist/components/jotai-bindings-core.d.ts +3 -2
- package/dist/components/jotai-bindings-core.d.ts.map +1 -1
- package/dist/components/jotai-bindings-core.js +14 -1
- package/dist/components/jotai-bindings-core.js.map +1 -1
- package/dist/components/json-schema-form-errors.cjs +5 -3
- package/dist/components/json-schema-form-errors.cjs.map +1 -1
- package/dist/components/json-schema-form-errors.d.ts +3 -1
- package/dist/components/json-schema-form-errors.d.ts.map +1 -1
- package/dist/components/json-schema-form-errors.js +5 -3
- package/dist/components/json-schema-form-errors.js.map +1 -1
- package/dist/components/json-schema-form-fields.cjs +19 -13
- package/dist/components/json-schema-form-fields.cjs.map +1 -1
- package/dist/components/json-schema-form-fields.d.ts.map +1 -1
- package/dist/components/json-schema-form-fields.js +20 -14
- package/dist/components/json-schema-form-fields.js.map +1 -1
- package/dist/components/json-schema-form-layout.cjs +2 -1
- package/dist/components/json-schema-form-layout.cjs.map +1 -1
- package/dist/components/json-schema-form-layout.d.ts.map +1 -1
- package/dist/components/json-schema-form-layout.js +2 -1
- package/dist/components/json-schema-form-layout.js.map +1 -1
- package/dist/components/json-schema-form-render.cjs +32 -1
- 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 +33 -2
- package/dist/components/json-schema-form-render.js.map +1 -1
- package/dist/components/json-schema-form-resolve.cjs +13 -1
- package/dist/components/json-schema-form-resolve.cjs.map +1 -1
- package/dist/components/json-schema-form-resolve.d.ts.map +1 -1
- package/dist/components/json-schema-form-resolve.js +13 -1
- package/dist/components/json-schema-form-resolve.js.map +1 -1
- package/dist/components/json-schema-form-runtime-types.d.ts +18 -0
- package/dist/components/json-schema-form-runtime-types.d.ts.map +1 -1
- package/dist/components/json-schema-form-table-array.cjs +1 -1
- package/dist/components/json-schema-form-table-array.cjs.map +1 -1
- package/dist/components/json-schema-form-table-array.js +1 -1
- package/dist/components/json-schema-form-table-array.js.map +1 -1
- package/dist/components/json-schema-form-template-menu.cjs +4 -0
- package/dist/components/json-schema-form-template-menu.cjs.map +1 -1
- package/dist/components/json-schema-form-template-menu.d.ts.map +1 -1
- package/dist/components/json-schema-form-template-menu.js +4 -0
- package/dist/components/json-schema-form-template-menu.js.map +1 -1
- package/dist/components/json-schema-form-template.cjs +5 -4
- package/dist/components/json-schema-form-template.cjs.map +1 -1
- package/dist/components/json-schema-form-template.d.ts +3 -1
- package/dist/components/json-schema-form-template.d.ts.map +1 -1
- package/dist/components/json-schema-form-template.js +5 -4
- package/dist/components/json-schema-form-template.js.map +1 -1
- package/dist/components/schedule-cron-model.cjs +68 -0
- package/dist/components/schedule-cron-model.cjs.map +1 -0
- package/dist/components/schedule-cron-model.d.ts +7 -0
- package/dist/components/schedule-cron-model.d.ts.map +1 -0
- package/dist/components/schedule-cron-model.js +68 -0
- package/dist/components/schedule-cron-model.js.map +1 -0
- package/dist/components/schedule-types.cjs +13 -0
- package/dist/components/schedule-types.cjs.map +1 -0
- package/dist/components/schedule-types.d.ts +8 -0
- package/dist/components/schedule-types.d.ts.map +1 -0
- package/dist/components/schedule-types.js +13 -0
- package/dist/components/schedule-types.js.map +1 -0
- package/dist/components/useComboboxLayout.cjs +2 -1
- package/dist/components/useComboboxLayout.cjs.map +1 -1
- package/dist/components/useComboboxLayout.d.ts.map +1 -1
- package/dist/components/useComboboxLayout.js +2 -1
- package/dist/components/useComboboxLayout.js.map +1 -1
- package/dist/components.cjs +11 -0
- package/dist/components.cjs.map +1 -1
- package/dist/components.d.ts +6 -2
- package/dist/components.d.ts.map +1 -1
- package/dist/components.js +12 -1
- package/dist/components.js.map +1 -1
- package/dist/data/Badge.cjs +9 -4
- package/dist/data/Badge.cjs.map +1 -1
- package/dist/data/Badge.d.ts.map +1 -1
- package/dist/data/Badge.js +9 -4
- package/dist/data/Badge.js.map +1 -1
- package/dist/data/Clicky.cjs +188 -19
- package/dist/data/Clicky.cjs.map +1 -1
- package/dist/data/Clicky.d.ts +48 -2
- package/dist/data/Clicky.d.ts.map +1 -1
- package/dist/data/Clicky.js +188 -19
- package/dist/data/Clicky.js.map +1 -1
- package/dist/data/CodeBlock.cjs +29 -3
- package/dist/data/CodeBlock.cjs.map +1 -1
- package/dist/data/CodeBlock.d.ts +12 -1
- package/dist/data/CodeBlock.d.ts.map +1 -1
- package/dist/data/CodeBlock.js +29 -3
- package/dist/data/CodeBlock.js.map +1 -1
- package/dist/data/DataTable.cjs +268 -392
- package/dist/data/DataTable.cjs.map +1 -1
- package/dist/data/DataTable.d.ts +18 -1
- package/dist/data/DataTable.d.ts.map +1 -1
- package/dist/data/DataTable.js +250 -374
- package/dist/data/DataTable.js.map +1 -1
- package/dist/data/DataTableMenuSections.cjs +263 -0
- package/dist/data/DataTableMenuSections.cjs.map +1 -0
- package/dist/data/DataTableMenuSections.d.ts +23 -0
- package/dist/data/DataTableMenuSections.d.ts.map +1 -0
- package/dist/data/DataTableMenuSections.js +263 -0
- package/dist/data/DataTableMenuSections.js.map +1 -0
- package/dist/data/DataTableOverflowCue.cjs +77 -0
- package/dist/data/DataTableOverflowCue.cjs.map +1 -0
- package/dist/data/DataTableOverflowCue.d.ts +4 -0
- package/dist/data/DataTableOverflowCue.d.ts.map +1 -0
- package/dist/data/DataTableOverflowCue.js +77 -0
- package/dist/data/DataTableOverflowCue.js.map +1 -0
- package/dist/data/DataTablePreferencesSheet.cjs +136 -0
- package/dist/data/DataTablePreferencesSheet.cjs.map +1 -0
- package/dist/data/DataTablePreferencesSheet.d.ts +23 -0
- package/dist/data/DataTablePreferencesSheet.d.ts.map +1 -0
- package/dist/data/DataTablePreferencesSheet.js +136 -0
- package/dist/data/DataTablePreferencesSheet.js.map +1 -0
- package/dist/data/ExecutionTree.cjs +4 -0
- package/dist/data/ExecutionTree.cjs.map +1 -1
- package/dist/data/ExecutionTree.d.ts +10 -1
- package/dist/data/ExecutionTree.d.ts.map +1 -1
- package/dist/data/ExecutionTree.js +4 -0
- package/dist/data/ExecutionTree.js.map +1 -1
- package/dist/data/GraphDiagram.cjs +201 -0
- package/dist/data/GraphDiagram.cjs.map +1 -0
- package/dist/data/GraphDiagram.d.ts +36 -0
- package/dist/data/GraphDiagram.d.ts.map +1 -0
- package/dist/data/GraphDiagram.js +201 -0
- package/dist/data/GraphDiagram.js.map +1 -0
- package/dist/data/JsonView.cjs +1 -1
- package/dist/data/JsonView.cjs.map +1 -1
- package/dist/data/JsonView.d.ts.map +1 -1
- package/dist/data/JsonView.js +1 -1
- package/dist/data/JsonView.js.map +1 -1
- package/dist/data/MarkdownEditor.model.d.ts +1 -1
- package/dist/data/MatrixTable.cjs +5 -4
- package/dist/data/MatrixTable.cjs.map +1 -1
- package/dist/data/MatrixTable.d.ts.map +1 -1
- package/dist/data/MatrixTable.js +5 -4
- package/dist/data/MatrixTable.js.map +1 -1
- package/dist/data/ObjectGraph.cjs +5 -2
- package/dist/data/ObjectGraph.cjs.map +1 -1
- package/dist/data/ObjectGraph.d.ts +8 -1
- package/dist/data/ObjectGraph.d.ts.map +1 -1
- package/dist/data/ObjectGraph.js +5 -2
- package/dist/data/ObjectGraph.js.map +1 -1
- package/dist/data/TaskExecDetails.cjs +31 -5
- package/dist/data/TaskExecDetails.cjs.map +1 -1
- package/dist/data/TaskExecDetails.d.ts +2 -1
- package/dist/data/TaskExecDetails.d.ts.map +1 -1
- package/dist/data/TaskExecDetails.js +31 -5
- package/dist/data/TaskExecDetails.js.map +1 -1
- package/dist/data/TaskProgress.cjs +8 -1
- package/dist/data/TaskProgress.cjs.map +1 -1
- package/dist/data/TaskProgress.js +8 -1
- package/dist/data/TaskProgress.js.map +1 -1
- package/dist/data/TaskSnapshot.cjs.map +1 -1
- package/dist/data/TaskSnapshot.d.ts +2 -1
- package/dist/data/TaskSnapshot.d.ts.map +1 -1
- package/dist/data/TaskSnapshot.js.map +1 -1
- package/dist/data/TreeNode.cjs +28 -1
- package/dist/data/TreeNode.cjs.map +1 -1
- package/dist/data/TreeNode.d.ts +13 -1
- package/dist/data/TreeNode.d.ts.map +1 -1
- package/dist/data/TreeNode.js +28 -1
- package/dist/data/TreeNode.js.map +1 -1
- package/dist/data/ai/ChatWindow.cjs +2 -2
- package/dist/data/ai/ChatWindow.cjs.map +1 -1
- package/dist/data/ai/ChatWindow.js +2 -2
- package/dist/data/ai/ChatWindow.js.map +1 -1
- package/dist/data/ai/ChatWindowManager.cjs +2 -2
- package/dist/data/ai/ChatWindowManager.cjs.map +1 -1
- package/dist/data/ai/ChatWindowManager.d.ts.map +1 -1
- package/dist/data/ai/ChatWindowManager.js +3 -3
- package/dist/data/ai/ChatWindowManager.js.map +1 -1
- package/dist/data/ai/PromptRunEditor/PromptBlocks.cjs +125 -0
- package/dist/data/ai/PromptRunEditor/PromptBlocks.cjs.map +1 -0
- package/dist/data/ai/PromptRunEditor/PromptBlocks.d.ts +24 -0
- package/dist/data/ai/PromptRunEditor/PromptBlocks.d.ts.map +1 -0
- package/dist/data/ai/PromptRunEditor/PromptBlocks.js +125 -0
- package/dist/data/ai/PromptRunEditor/PromptBlocks.js.map +1 -0
- package/dist/data/ai/PromptRunEditor/RecentRuntimes.cjs +69 -0
- package/dist/data/ai/PromptRunEditor/RecentRuntimes.cjs.map +1 -0
- package/dist/data/ai/PromptRunEditor/RecentRuntimes.d.ts +10 -0
- package/dist/data/ai/PromptRunEditor/RecentRuntimes.d.ts.map +1 -0
- package/dist/data/ai/PromptRunEditor/RecentRuntimes.js +69 -0
- package/dist/data/ai/PromptRunEditor/RecentRuntimes.js.map +1 -0
- package/dist/data/ai/PromptRunEditor/RuntimeRows.cjs +118 -0
- package/dist/data/ai/PromptRunEditor/RuntimeRows.cjs.map +1 -0
- package/dist/data/ai/PromptRunEditor/RuntimeRows.d.ts +16 -0
- package/dist/data/ai/PromptRunEditor/RuntimeRows.d.ts.map +1 -0
- package/dist/data/ai/PromptRunEditor/RuntimeRows.js +118 -0
- package/dist/data/ai/PromptRunEditor/RuntimeRows.js.map +1 -0
- package/dist/data/ai/PromptRunEditor/index.cjs +157 -253
- package/dist/data/ai/PromptRunEditor/index.cjs.map +1 -1
- package/dist/data/ai/PromptRunEditor/index.d.ts +20 -8
- package/dist/data/ai/PromptRunEditor/index.d.ts.map +1 -1
- package/dist/data/ai/PromptRunEditor/index.js +158 -254
- package/dist/data/ai/PromptRunEditor/index.js.map +1 -1
- package/dist/data/ai/PromptRunEditor/model.cjs +56 -0
- package/dist/data/ai/PromptRunEditor/model.cjs.map +1 -1
- package/dist/data/ai/PromptRunEditor/model.d.ts +13 -1
- package/dist/data/ai/PromptRunEditor/model.d.ts.map +1 -1
- package/dist/data/ai/PromptRunEditor/model.js +57 -1
- package/dist/data/ai/PromptRunEditor/model.js.map +1 -1
- package/dist/data/ai/PromptRunEditor/runtimeActions.cjs +194 -0
- package/dist/data/ai/PromptRunEditor/runtimeActions.cjs.map +1 -0
- package/dist/data/ai/PromptRunEditor/runtimeActions.d.ts +30 -0
- package/dist/data/ai/PromptRunEditor/runtimeActions.d.ts.map +1 -0
- package/dist/data/ai/PromptRunEditor/runtimeActions.js +194 -0
- package/dist/data/ai/PromptRunEditor/runtimeActions.js.map +1 -0
- package/dist/data/ai/PromptRunEditor/yaml.cjs +47 -0
- package/dist/data/ai/PromptRunEditor/yaml.cjs.map +1 -0
- package/dist/data/ai/PromptRunEditor/yaml.d.ts +9 -0
- package/dist/data/ai/PromptRunEditor/yaml.d.ts.map +1 -0
- package/dist/data/ai/PromptRunEditor/yaml.js +47 -0
- package/dist/data/ai/PromptRunEditor/yaml.js.map +1 -0
- package/dist/data/ai/SessionChatComposer.cjs +72 -2
- package/dist/data/ai/SessionChatComposer.cjs.map +1 -1
- package/dist/data/ai/SessionChatComposer.d.ts +12 -1
- package/dist/data/ai/SessionChatComposer.d.ts.map +1 -1
- package/dist/data/ai/SessionChatComposer.js +73 -3
- package/dist/data/ai/SessionChatComposer.js.map +1 -1
- package/dist/data/ai/SessionInspector.cjs +219 -144
- package/dist/data/ai/SessionInspector.cjs.map +1 -1
- package/dist/data/ai/SessionInspector.compact.cjs +91 -0
- package/dist/data/ai/SessionInspector.compact.cjs.map +1 -0
- package/dist/data/ai/SessionInspector.compact.d.ts +19 -0
- package/dist/data/ai/SessionInspector.compact.d.ts.map +1 -0
- package/dist/data/ai/SessionInspector.compact.js +91 -0
- package/dist/data/ai/SessionInspector.compact.js.map +1 -0
- package/dist/data/ai/SessionInspector.d.ts +10 -2
- package/dist/data/ai/SessionInspector.d.ts.map +1 -1
- package/dist/data/ai/SessionInspector.hierarchy.cjs +48 -33
- package/dist/data/ai/SessionInspector.hierarchy.cjs.map +1 -1
- package/dist/data/ai/SessionInspector.hierarchy.d.ts +6 -0
- package/dist/data/ai/SessionInspector.hierarchy.d.ts.map +1 -1
- package/dist/data/ai/SessionInspector.hierarchy.js +50 -35
- package/dist/data/ai/SessionInspector.hierarchy.js.map +1 -1
- package/dist/data/ai/SessionInspector.js +222 -147
- package/dist/data/ai/SessionInspector.js.map +1 -1
- package/dist/data/ai/SessionInspector.panels.cjs +15 -0
- package/dist/data/ai/SessionInspector.panels.cjs.map +1 -1
- package/dist/data/ai/SessionInspector.panels.d.ts.map +1 -1
- package/dist/data/ai/SessionInspector.panels.js +15 -0
- package/dist/data/ai/SessionInspector.panels.js.map +1 -1
- package/dist/data/ai/SessionInspector.summary.cjs +25 -0
- package/dist/data/ai/SessionInspector.summary.cjs.map +1 -1
- package/dist/data/ai/SessionInspector.summary.d.ts.map +1 -1
- package/dist/data/ai/SessionInspector.summary.js +25 -0
- package/dist/data/ai/SessionInspector.summary.js.map +1 -1
- package/dist/data/ai/SessionInspector.tabs.cjs +34 -0
- package/dist/data/ai/SessionInspector.tabs.cjs.map +1 -0
- package/dist/data/ai/SessionInspector.tabs.d.ts +8 -0
- package/dist/data/ai/SessionInspector.tabs.d.ts.map +1 -0
- package/dist/data/ai/SessionInspector.tabs.js +34 -0
- package/dist/data/ai/SessionInspector.tabs.js.map +1 -0
- package/dist/data/ai/SessionInspector.tabs.model.cjs +70 -0
- package/dist/data/ai/SessionInspector.tabs.model.cjs.map +1 -0
- package/dist/data/ai/SessionInspector.tabs.model.d.ts +9 -0
- package/dist/data/ai/SessionInspector.tabs.model.d.ts.map +1 -0
- package/dist/data/ai/SessionInspector.tabs.model.js +70 -0
- package/dist/data/ai/SessionInspector.tabs.model.js.map +1 -0
- package/dist/data/ai/SessionViewer.cjs +16 -5
- package/dist/data/ai/SessionViewer.cjs.map +1 -1
- package/dist/data/ai/SessionViewer.d.ts +3 -1
- package/dist/data/ai/SessionViewer.d.ts.map +1 -1
- package/dist/data/ai/SessionViewer.header.cjs +36 -1
- package/dist/data/ai/SessionViewer.header.cjs.map +1 -1
- package/dist/data/ai/SessionViewer.header.d.ts.map +1 -1
- package/dist/data/ai/SessionViewer.header.js +36 -1
- package/dist/data/ai/SessionViewer.header.js.map +1 -1
- package/dist/data/ai/SessionViewer.input.cjs +1 -0
- package/dist/data/ai/SessionViewer.input.cjs.map +1 -1
- package/dist/data/ai/SessionViewer.input.d.ts +1 -0
- package/dist/data/ai/SessionViewer.input.d.ts.map +1 -1
- package/dist/data/ai/SessionViewer.input.js +1 -0
- package/dist/data/ai/SessionViewer.input.js.map +1 -1
- package/dist/data/ai/SessionViewer.js +16 -5
- package/dist/data/ai/SessionViewer.js.map +1 -1
- package/dist/data/ai/SessionViewer.model.cjs +12 -0
- package/dist/data/ai/SessionViewer.model.cjs.map +1 -1
- package/dist/data/ai/SessionViewer.model.d.ts +4 -0
- package/dist/data/ai/SessionViewer.model.d.ts.map +1 -1
- package/dist/data/ai/SessionViewer.model.js +12 -0
- package/dist/data/ai/SessionViewer.model.js.map +1 -1
- package/dist/data/ai/SessionViewer.rows.cjs +9 -5
- package/dist/data/ai/SessionViewer.rows.cjs.map +1 -1
- package/dist/data/ai/SessionViewer.rows.d.ts.map +1 -1
- package/dist/data/ai/SessionViewer.rows.js +9 -5
- package/dist/data/ai/SessionViewer.rows.js.map +1 -1
- package/dist/data/ai/SessionViewer.tool-row.cjs +79 -72
- package/dist/data/ai/SessionViewer.tool-row.cjs.map +1 -1
- package/dist/data/ai/SessionViewer.tool-row.js +79 -72
- package/dist/data/ai/SessionViewer.tool-row.js.map +1 -1
- package/dist/data/ai/SessionViewer.unified.d.ts +4 -0
- package/dist/data/ai/SessionViewer.unified.d.ts.map +1 -1
- package/dist/data/ai/SessionViewerMenu.cjs +2 -0
- package/dist/data/ai/SessionViewerMenu.cjs.map +1 -1
- package/dist/data/ai/SessionViewerMenu.d.ts +3 -1
- package/dist/data/ai/SessionViewerMenu.d.ts.map +1 -1
- package/dist/data/ai/SessionViewerMenu.js +2 -0
- package/dist/data/ai/SessionViewerMenu.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/ModelSection.cjs +5 -4
- package/dist/data/ai/SpecRuntimeEditor/ModelSection.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/ModelSection.d.ts +3 -1
- package/dist/data/ai/SpecRuntimeEditor/ModelSection.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/ModelSection.js +5 -4
- package/dist/data/ai/SpecRuntimeEditor/ModelSection.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PermissionModeField.cjs +41 -31
- package/dist/data/ai/SpecRuntimeEditor/PermissionModeField.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PermissionModeField.d.ts +7 -0
- package/dist/data/ai/SpecRuntimeEditor/PermissionModeField.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PermissionModeField.js +43 -33
- package/dist/data/ai/SpecRuntimeEditor/PermissionModeField.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.cjs +13 -171
- package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.d.ts +6 -2
- package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.js +14 -172
- package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PromptSection.cjs +6 -2
- package/dist/data/ai/SpecRuntimeEditor/PromptSection.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PromptSection.d.ts +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PromptSection.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PromptSection.js +7 -3
- package/dist/data/ai/SpecRuntimeEditor/PromptSection.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/SandboxSection.cjs +1 -29
- package/dist/data/ai/SpecRuntimeEditor/SandboxSection.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/SandboxSection.d.ts +2 -3
- package/dist/data/ai/SpecRuntimeEditor/SandboxSection.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/SandboxSection.js +2 -30
- package/dist/data/ai/SpecRuntimeEditor/SandboxSection.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/SectionCard.cjs +9 -1
- package/dist/data/ai/SpecRuntimeEditor/SectionCard.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/SectionCard.d.ts +3 -2
- package/dist/data/ai/SpecRuntimeEditor/SectionCard.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/SectionCard.js +9 -1
- package/dist/data/ai/SpecRuntimeEditor/SectionCard.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/SectionTabs.cjs +62 -0
- package/dist/data/ai/SpecRuntimeEditor/SectionTabs.cjs.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/SectionTabs.d.ts +12 -0
- package/dist/data/ai/SpecRuntimeEditor/SectionTabs.d.ts.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/SectionTabs.js +62 -0
- package/dist/data/ai/SpecRuntimeEditor/SectionTabs.js.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/index.cjs +80 -51
- package/dist/data/ai/SpecRuntimeEditor/index.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/index.d.ts +15 -5
- package/dist/data/ai/SpecRuntimeEditor/index.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/index.js +80 -51
- package/dist/data/ai/SpecRuntimeEditor/index.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/permission-mode-visuals.cjs +8 -3
- package/dist/data/ai/SpecRuntimeEditor/permission-mode-visuals.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/permission-mode-visuals.js +8 -3
- package/dist/data/ai/SpecRuntimeEditor/permission-mode-visuals.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/permissions-model.cjs +20 -0
- package/dist/data/ai/SpecRuntimeEditor/permissions-model.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/permissions-model.d.ts +3 -1
- package/dist/data/ai/SpecRuntimeEditor/permissions-model.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/permissions-model.js +20 -0
- package/dist/data/ai/SpecRuntimeEditor/permissions-model.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/summaries.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/summaries.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/summaries.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/types.cjs +17 -4
- package/dist/data/ai/SpecRuntimeEditor/types.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/types.d.ts +16 -0
- package/dist/data/ai/SpecRuntimeEditor/types.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/types.js +18 -5
- package/dist/data/ai/SpecRuntimeEditor/types.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/update.cjs +10 -9
- package/dist/data/ai/SpecRuntimeEditor/update.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/update.d.ts +1 -1
- package/dist/data/ai/SpecRuntimeEditor/update.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/update.js +10 -9
- package/dist/data/ai/SpecRuntimeEditor/update.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor.model.cjs +6 -1
- package/dist/data/ai/SpecRuntimeEditor.model.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor.model.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor.model.js +8 -3
- package/dist/data/ai/SpecRuntimeEditor.model.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor.sandbox-model.cjs +5 -13
- package/dist/data/ai/SpecRuntimeEditor.sandbox-model.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor.sandbox-model.d.ts +0 -1
- package/dist/data/ai/SpecRuntimeEditor.sandbox-model.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor.sandbox-model.js +5 -13
- package/dist/data/ai/SpecRuntimeEditor.sandbox-model.js.map +1 -1
- package/dist/data/ai/chat-window-context.cjs +15 -1
- package/dist/data/ai/chat-window-context.cjs.map +1 -1
- package/dist/data/ai/chat-window-context.d.ts +1 -0
- package/dist/data/ai/chat-window-context.d.ts.map +1 -1
- package/dist/data/ai/chat-window-context.js +15 -1
- package/dist/data/ai/chat-window-context.js.map +1 -1
- package/dist/data/ai/index.d.ts +9 -4
- package/dist/data/ai/index.d.ts.map +1 -1
- package/dist/data/ai/runtime-profile.cjs +1 -71
- package/dist/data/ai/runtime-profile.cjs.map +1 -1
- package/dist/data/ai/runtime-profile.d.ts +12 -11
- package/dist/data/ai/runtime-profile.d.ts.map +1 -1
- package/dist/data/ai/runtime-profile.js +1 -71
- package/dist/data/ai/runtime-profile.js.map +1 -1
- package/dist/data/ai/runtime-profiles/OrderedPresetSelect.cjs +2 -2
- package/dist/data/ai/runtime-profiles/OrderedPresetSelect.cjs.map +1 -1
- package/dist/data/ai/runtime-profiles/OrderedPresetSelect.js +2 -2
- package/dist/data/ai/runtime-profiles/OrderedPresetSelect.js.map +1 -1
- package/dist/data/ai/runtime-profiles/PresetSpecEditor.cjs +0 -8
- package/dist/data/ai/runtime-profiles/PresetSpecEditor.cjs.map +1 -1
- package/dist/data/ai/runtime-profiles/PresetSpecEditor.d.ts.map +1 -1
- package/dist/data/ai/runtime-profiles/PresetSpecEditor.js +0 -8
- package/dist/data/ai/runtime-profiles/PresetSpecEditor.js.map +1 -1
- package/dist/data/ai/runtime-profiles/PresetWorkspace.cjs +12 -3
- package/dist/data/ai/runtime-profiles/PresetWorkspace.cjs.map +1 -1
- package/dist/data/ai/runtime-profiles/PresetWorkspace.d.ts +3 -2
- package/dist/data/ai/runtime-profiles/PresetWorkspace.d.ts.map +1 -1
- package/dist/data/ai/runtime-profiles/PresetWorkspace.js +12 -3
- package/dist/data/ai/runtime-profiles/PresetWorkspace.js.map +1 -1
- package/dist/data/ai/runtime-profiles/ProfilePresetChips.cjs +59 -0
- package/dist/data/ai/runtime-profiles/ProfilePresetChips.cjs.map +1 -0
- package/dist/data/ai/runtime-profiles/ProfilePresetChips.d.ts +7 -0
- package/dist/data/ai/runtime-profiles/ProfilePresetChips.d.ts.map +1 -0
- package/dist/data/ai/runtime-profiles/ProfilePresetChips.js +59 -0
- package/dist/data/ai/runtime-profiles/ProfilePresetChips.js.map +1 -0
- package/dist/data/ai/runtime-profiles/ResolutionInspector.cjs.map +1 -1
- package/dist/data/ai/runtime-profiles/ResolutionInspector.d.ts +2 -2
- package/dist/data/ai/runtime-profiles/ResolutionInspector.d.ts.map +1 -1
- package/dist/data/ai/runtime-profiles/ResolutionInspector.js.map +1 -1
- package/dist/data/ai/runtime-profiles/RuntimeProfilePicker.cjs +136 -150
- package/dist/data/ai/runtime-profiles/RuntimeProfilePicker.cjs.map +1 -1
- package/dist/data/ai/runtime-profiles/RuntimeProfilePicker.d.ts +2 -5
- package/dist/data/ai/runtime-profiles/RuntimeProfilePicker.d.ts.map +1 -1
- package/dist/data/ai/runtime-profiles/RuntimeProfilePicker.js +137 -151
- package/dist/data/ai/runtime-profiles/RuntimeProfilePicker.js.map +1 -1
- package/dist/data/ai/runtime-profiles/RuntimeProfilePicker.model.cjs +0 -15
- package/dist/data/ai/runtime-profiles/RuntimeProfilePicker.model.cjs.map +1 -1
- package/dist/data/ai/runtime-profiles/RuntimeProfilePicker.model.js +1 -16
- package/dist/data/ai/runtime-profiles/RuntimeProfilePicker.model.js.map +1 -1
- package/dist/data/ai/runtime-profiles/RuntimeProfilesWorkspace.cjs +8 -62
- package/dist/data/ai/runtime-profiles/RuntimeProfilesWorkspace.cjs.map +1 -1
- package/dist/data/ai/runtime-profiles/RuntimeProfilesWorkspace.d.ts +1 -1
- package/dist/data/ai/runtime-profiles/RuntimeProfilesWorkspace.d.ts.map +1 -1
- package/dist/data/ai/runtime-profiles/RuntimeProfilesWorkspace.js +10 -64
- package/dist/data/ai/runtime-profiles/RuntimeProfilesWorkspace.js.map +1 -1
- package/dist/data/ai/runtime-profiles/index.d.ts +1 -1
- package/dist/data/ai/runtime-profiles/index.d.ts.map +1 -1
- package/dist/data/ai/runtime-profiles/types.d.ts +4 -2
- package/dist/data/ai/runtime-profiles/types.d.ts.map +1 -1
- package/dist/data/ai/runtime-profiles/use-resolution.cjs +33 -0
- package/dist/data/ai/runtime-profiles/use-resolution.cjs.map +1 -1
- package/dist/data/ai/runtime-profiles/use-resolution.d.ts +1 -0
- package/dist/data/ai/runtime-profiles/use-resolution.d.ts.map +1 -1
- package/dist/data/ai/runtime-profiles/use-resolution.js +33 -0
- package/dist/data/ai/runtime-profiles/use-resolution.js.map +1 -1
- package/dist/data/cells/TagList.cjs +5 -3
- package/dist/data/cells/TagList.cjs.map +1 -1
- package/dist/data/cells/TagList.d.ts.map +1 -1
- package/dist/data/cells/TagList.js +5 -3
- package/dist/data/cells/TagList.js.map +1 -1
- package/dist/data/chat/Chat.runtime.cjs +4 -6
- package/dist/data/chat/Chat.runtime.cjs.map +1 -1
- package/dist/data/chat/Chat.runtime.d.ts.map +1 -1
- package/dist/data/chat/Chat.runtime.js +4 -6
- package/dist/data/chat/Chat.runtime.js.map +1 -1
- package/dist/data/chat/ContextMeter.bar.cjs +150 -0
- package/dist/data/chat/ContextMeter.bar.cjs.map +1 -0
- package/dist/data/chat/ContextMeter.bar.d.ts +16 -0
- package/dist/data/chat/ContextMeter.bar.d.ts.map +1 -0
- package/dist/data/chat/ContextMeter.bar.js +150 -0
- package/dist/data/chat/ContextMeter.bar.js.map +1 -0
- package/dist/data/chat/ContextMeter.cjs +33 -58
- package/dist/data/chat/ContextMeter.cjs.map +1 -1
- package/dist/data/chat/ContextMeter.d.ts.map +1 -1
- package/dist/data/chat/ContextMeter.js +28 -53
- package/dist/data/chat/ContextMeter.js.map +1 -1
- package/dist/data/chat/ContextMeter.model.cjs +42 -0
- package/dist/data/chat/ContextMeter.model.cjs.map +1 -0
- package/dist/data/chat/ContextMeter.model.d.ts +2 -0
- package/dist/data/chat/ContextMeter.model.d.ts.map +1 -0
- package/dist/data/chat/ContextMeter.model.js +42 -0
- package/dist/data/chat/ContextMeter.model.js.map +1 -0
- package/dist/data/chat/ContextMeter.styles.cjs +21 -0
- package/dist/data/chat/ContextMeter.styles.cjs.map +1 -0
- package/dist/data/chat/ContextMeter.styles.d.ts +7 -0
- package/dist/data/chat/ContextMeter.styles.d.ts.map +1 -0
- package/dist/data/chat/ContextMeter.styles.js +21 -0
- package/dist/data/chat/ContextMeter.styles.js.map +1 -0
- package/dist/data/chat/Message.cjs +2 -29
- package/dist/data/chat/Message.cjs.map +1 -1
- package/dist/data/chat/Message.d.ts.map +1 -1
- package/dist/data/chat/Message.js +2 -29
- package/dist/data/chat/Message.js.map +1 -1
- package/dist/data/chat/MessageFilePart.cjs +36 -0
- package/dist/data/chat/MessageFilePart.cjs.map +1 -0
- package/dist/data/chat/MessageFilePart.d.ts +9 -0
- package/dist/data/chat/MessageFilePart.d.ts.map +1 -0
- package/dist/data/chat/MessageFilePart.js +36 -0
- package/dist/data/chat/MessageFilePart.js.map +1 -0
- package/dist/data/code-block-actions.cjs +4 -3
- package/dist/data/code-block-actions.cjs.map +1 -1
- package/dist/data/code-block-actions.d.ts +3 -1
- package/dist/data/code-block-actions.d.ts.map +1 -1
- package/dist/data/code-block-actions.js +4 -3
- package/dist/data/code-block-actions.js.map +1 -1
- package/dist/data/code-highlight.cjs +59 -9
- package/dist/data/code-highlight.cjs.map +1 -1
- package/dist/data/code-highlight.d.ts.map +1 -1
- package/dist/data/code-highlight.js +59 -9
- package/dist/data/code-highlight.js.map +1 -1
- package/dist/data/data-table-filter-values.cjs +68 -8
- package/dist/data/data-table-filter-values.cjs.map +1 -1
- package/dist/data/data-table-filter-values.d.ts +13 -4
- package/dist/data/data-table-filter-values.d.ts.map +1 -1
- package/dist/data/data-table-filter-values.js +68 -8
- package/dist/data/data-table-filter-values.js.map +1 -1
- package/dist/data/data-table-server-filters.cjs +52 -11
- package/dist/data/data-table-server-filters.cjs.map +1 -1
- package/dist/data/data-table-server-filters.d.ts.map +1 -1
- package/dist/data/data-table-server-filters.js +53 -12
- package/dist/data/data-table-server-filters.js.map +1 -1
- package/dist/data/data-table-utils.cjs +9 -0
- package/dist/data/data-table-utils.cjs.map +1 -1
- package/dist/data/data-table-utils.d.ts +2 -0
- package/dist/data/data-table-utils.d.ts.map +1 -1
- package/dist/data/data-table-utils.js +9 -0
- package/dist/data/data-table-utils.js.map +1 -1
- package/dist/data/dataTableMenuPosition.cjs +64 -0
- package/dist/data/dataTableMenuPosition.cjs.map +1 -0
- package/dist/data/dataTableMenuPosition.d.ts +32 -0
- package/dist/data/dataTableMenuPosition.d.ts.map +1 -0
- package/dist/data/dataTableMenuPosition.js +64 -0
- package/dist/data/dataTableMenuPosition.js.map +1 -0
- package/dist/data/diagnostics/FrameSourceWindow.cjs +7 -4
- package/dist/data/diagnostics/FrameSourceWindow.cjs.map +1 -1
- package/dist/data/diagnostics/FrameSourceWindow.d.ts +8 -1
- package/dist/data/diagnostics/FrameSourceWindow.d.ts.map +1 -1
- package/dist/data/diagnostics/FrameSourceWindow.js +7 -4
- package/dist/data/diagnostics/FrameSourceWindow.js.map +1 -1
- package/dist/data/diagnostics/FrameSourceWindow.utils.cjs.map +1 -1
- package/dist/data/diagnostics/FrameSourceWindow.utils.d.ts +3 -1
- package/dist/data/diagnostics/FrameSourceWindow.utils.d.ts.map +1 -1
- package/dist/data/diagnostics/FrameSourceWindow.utils.js.map +1 -1
- package/dist/data/diagnostics/RenderedStackTrace.cjs +19 -11
- package/dist/data/diagnostics/RenderedStackTrace.cjs.map +1 -1
- package/dist/data/diagnostics/RenderedStackTrace.d.ts +13 -2
- package/dist/data/diagnostics/RenderedStackTrace.d.ts.map +1 -1
- package/dist/data/diagnostics/RenderedStackTrace.js +19 -11
- package/dist/data/diagnostics/RenderedStackTrace.js.map +1 -1
- package/dist/data/diagnostics/StackFrameRow.cjs +20 -6
- package/dist/data/diagnostics/StackFrameRow.cjs.map +1 -1
- package/dist/data/diagnostics/StackFrameRow.d.ts +11 -1
- package/dist/data/diagnostics/StackFrameRow.d.ts.map +1 -1
- package/dist/data/diagnostics/StackFrameRow.js +20 -6
- package/dist/data/diagnostics/StackFrameRow.js.map +1 -1
- package/dist/data/graph-layout.cjs +128 -0
- package/dist/data/graph-layout.cjs.map +1 -0
- package/dist/data/graph-layout.d.ts +64 -0
- package/dist/data/graph-layout.d.ts.map +1 -0
- package/dist/data/graph-layout.js +128 -0
- package/dist/data/graph-layout.js.map +1 -0
- package/dist/data/runtime/RuntimeBar.cjs +61 -26
- package/dist/data/runtime/RuntimeBar.cjs.map +1 -1
- package/dist/data/runtime/RuntimeBar.context.cjs +8 -0
- package/dist/data/runtime/RuntimeBar.context.cjs.map +1 -0
- package/dist/data/runtime/RuntimeBar.context.d.ts +2 -0
- package/dist/data/runtime/RuntimeBar.context.d.ts.map +1 -0
- package/dist/data/runtime/RuntimeBar.context.js +8 -0
- package/dist/data/runtime/RuntimeBar.context.js.map +1 -0
- package/dist/data/runtime/RuntimeBar.d.ts +11 -1
- package/dist/data/runtime/RuntimeBar.d.ts.map +1 -1
- package/dist/data/runtime/RuntimeBar.js +62 -27
- package/dist/data/runtime/RuntimeBar.js.map +1 -1
- package/dist/data/runtime/RuntimeBar.limits.cjs +34 -0
- package/dist/data/runtime/RuntimeBar.limits.cjs.map +1 -0
- package/dist/data/runtime/RuntimeBar.limits.d.ts +14 -0
- package/dist/data/runtime/RuntimeBar.limits.d.ts.map +1 -0
- package/dist/data/runtime/RuntimeBar.limits.js +34 -0
- package/dist/data/runtime/RuntimeBar.limits.js.map +1 -0
- package/dist/data/runtime/RuntimeBarActions.cjs +74 -0
- package/dist/data/runtime/RuntimeBarActions.cjs.map +1 -0
- package/dist/data/runtime/RuntimeBarActions.d.ts +39 -0
- package/dist/data/runtime/RuntimeBarActions.d.ts.map +1 -0
- package/dist/data/runtime/RuntimeBarActions.js +74 -0
- package/dist/data/runtime/RuntimeBarActions.js.map +1 -0
- package/dist/data/runtime/RuntimeBarCombo.cjs +99 -49
- package/dist/data/runtime/RuntimeBarCombo.cjs.map +1 -1
- package/dist/data/runtime/RuntimeBarCombo.d.ts +8 -1
- package/dist/data/runtime/RuntimeBarCombo.d.ts.map +1 -1
- package/dist/data/runtime/RuntimeBarCombo.js +100 -50
- package/dist/data/runtime/RuntimeBarCombo.js.map +1 -1
- package/dist/data/runtime/RuntimeBarLimits.cjs +262 -0
- package/dist/data/runtime/RuntimeBarLimits.cjs.map +1 -0
- package/dist/data/runtime/RuntimeBarLimits.d.ts +17 -0
- package/dist/data/runtime/RuntimeBarLimits.d.ts.map +1 -0
- package/dist/data/runtime/RuntimeBarLimits.js +262 -0
- package/dist/data/runtime/RuntimeBarLimits.js.map +1 -0
- package/dist/data/runtime/RuntimeBarSegment.cjs +83 -0
- package/dist/data/runtime/RuntimeBarSegment.cjs.map +1 -0
- package/dist/data/runtime/RuntimeBarSegment.d.ts +22 -0
- package/dist/data/runtime/RuntimeBarSegment.d.ts.map +1 -0
- package/dist/data/runtime/RuntimeBarSegment.js +83 -0
- package/dist/data/runtime/RuntimeBarSegment.js.map +1 -0
- package/dist/data/runtime/RuntimeBarSegments.cjs +182 -187
- package/dist/data/runtime/RuntimeBarSegments.cjs.map +1 -1
- package/dist/data/runtime/RuntimeBarSegments.d.ts +10 -1
- package/dist/data/runtime/RuntimeBarSegments.d.ts.map +1 -1
- package/dist/data/runtime/RuntimeBarSegments.js +183 -188
- package/dist/data/runtime/RuntimeBarSegments.js.map +1 -1
- package/dist/data/runtime/model-capabilities.cjs +6 -5
- package/dist/data/runtime/model-capabilities.cjs.map +1 -1
- package/dist/data/runtime/model-capabilities.d.ts +9 -2
- package/dist/data/runtime/model-capabilities.d.ts.map +1 -1
- package/dist/data/runtime/model-capabilities.js +6 -5
- package/dist/data/runtime/model-capabilities.js.map +1 -1
- package/dist/data/runtime/runtime-mode.cjs +11 -1
- package/dist/data/runtime/runtime-mode.cjs.map +1 -1
- package/dist/data/runtime/runtime-mode.d.ts +3 -0
- package/dist/data/runtime/runtime-mode.d.ts.map +1 -1
- package/dist/data/runtime/runtime-mode.js +13 -2
- package/dist/data/runtime/runtime-mode.js.map +1 -1
- package/dist/data/runtime/unspecified.cjs +16 -0
- package/dist/data/runtime/unspecified.cjs.map +1 -0
- package/dist/data/runtime/unspecified.d.ts +7 -0
- package/dist/data/runtime/unspecified.d.ts.map +1 -0
- package/dist/data/runtime/unspecified.js +16 -0
- package/dist/data/runtime/unspecified.js.map +1 -0
- package/dist/data/task-copy.cjs +19 -2
- package/dist/data/task-copy.cjs.map +1 -1
- package/dist/data/task-copy.d.ts.map +1 -1
- package/dist/data/task-copy.js +19 -2
- package/dist/data/task-copy.js.map +1 -1
- package/dist/data/version-info.cjs +3 -3
- package/dist/data/version-info.js +3 -3
- package/dist/data.cjs +695 -0
- package/dist/data.cjs.map +1 -1
- package/dist/data.d.ts +4 -2
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +696 -1
- package/dist/data.js.map +1 -1
- package/dist/expressions/playground/ExpressionPlayground.cjs +44 -16
- package/dist/expressions/playground/ExpressionPlayground.cjs.map +1 -1
- package/dist/expressions/playground/ExpressionPlayground.d.ts +23 -2
- package/dist/expressions/playground/ExpressionPlayground.d.ts.map +1 -1
- package/dist/expressions/playground/ExpressionPlayground.js +44 -16
- package/dist/expressions/playground/ExpressionPlayground.js.map +1 -1
- package/dist/expressions/playground/RunControls.cjs +8 -6
- package/dist/expressions/playground/RunControls.cjs.map +1 -1
- package/dist/expressions/playground/RunControls.d.ts +3 -1
- package/dist/expressions/playground/RunControls.d.ts.map +1 -1
- package/dist/expressions/playground/RunControls.js +8 -6
- package/dist/expressions/playground/RunControls.js.map +1 -1
- package/dist/expressions/playground/api.cjs.map +1 -1
- package/dist/expressions/playground/api.d.ts +24 -0
- package/dist/expressions/playground/api.d.ts.map +1 -1
- package/dist/expressions/playground/api.js.map +1 -1
- package/dist/expressions/playground/panels/ExpectationStrip.cjs +62 -0
- package/dist/expressions/playground/panels/ExpectationStrip.cjs.map +1 -0
- package/dist/expressions/playground/panels/ExpectationStrip.d.ts +18 -0
- package/dist/expressions/playground/panels/ExpectationStrip.d.ts.map +1 -0
- package/dist/expressions/playground/panels/ExpectationStrip.js +62 -0
- package/dist/expressions/playground/panels/ExpectationStrip.js.map +1 -0
- package/dist/expressions/playground/panels/GraphPanel.cjs +3 -2
- package/dist/expressions/playground/panels/GraphPanel.cjs.map +1 -1
- package/dist/expressions/playground/panels/GraphPanel.d.ts +2 -1
- package/dist/expressions/playground/panels/GraphPanel.d.ts.map +1 -1
- package/dist/expressions/playground/panels/GraphPanel.js +3 -2
- package/dist/expressions/playground/panels/GraphPanel.js.map +1 -1
- package/dist/expressions/playground/panels/ResultPanel.cjs +61 -36
- package/dist/expressions/playground/panels/ResultPanel.cjs.map +1 -1
- package/dist/expressions/playground/panels/ResultPanel.d.ts +18 -2
- package/dist/expressions/playground/panels/ResultPanel.d.ts.map +1 -1
- package/dist/expressions/playground/panels/ResultPanel.js +62 -37
- package/dist/expressions/playground/panels/ResultPanel.js.map +1 -1
- package/dist/expressions/playground/panels/ResultView.cjs +45 -0
- package/dist/expressions/playground/panels/ResultView.cjs.map +1 -0
- package/dist/expressions/playground/panels/ResultView.d.ts +17 -0
- package/dist/expressions/playground/panels/ResultView.d.ts.map +1 -0
- package/dist/expressions/playground/panels/ResultView.js +45 -0
- package/dist/expressions/playground/panels/ResultView.js.map +1 -0
- package/dist/expressions/playground/panels/SamplesPanel.cjs +165 -0
- package/dist/expressions/playground/panels/SamplesPanel.cjs.map +1 -0
- package/dist/expressions/playground/panels/SamplesPanel.d.ts +19 -0
- package/dist/expressions/playground/panels/SamplesPanel.d.ts.map +1 -0
- package/dist/expressions/playground/panels/SamplesPanel.js +165 -0
- package/dist/expressions/playground/panels/SamplesPanel.js.map +1 -0
- package/dist/expressions/playground/sampleOutcome.cjs +29 -0
- package/dist/expressions/playground/sampleOutcome.cjs.map +1 -0
- package/dist/expressions/playground/sampleOutcome.d.ts +20 -0
- package/dist/expressions/playground/sampleOutcome.d.ts.map +1 -0
- package/dist/expressions/playground/sampleOutcome.js +29 -0
- package/dist/expressions/playground/sampleOutcome.js.map +1 -0
- package/dist/expressions/playground/useEvaluator.cjs +39 -18
- package/dist/expressions/playground/useEvaluator.cjs.map +1 -1
- package/dist/expressions/playground/useEvaluator.d.ts +9 -2
- package/dist/expressions/playground/useEvaluator.d.ts.map +1 -1
- package/dist/expressions/playground/useEvaluator.js +39 -18
- package/dist/expressions/playground/useEvaluator.js.map +1 -1
- package/dist/expressions/playground/useSampleRuns.cjs +73 -0
- package/dist/expressions/playground/useSampleRuns.cjs.map +1 -0
- package/dist/expressions/playground/useSampleRuns.d.ts +34 -0
- package/dist/expressions/playground/useSampleRuns.d.ts.map +1 -0
- package/dist/expressions/playground/useSampleRuns.js +73 -0
- package/dist/expressions/playground/useSampleRuns.js.map +1 -0
- package/dist/expressions/playground.cjs +6 -0
- package/dist/expressions/playground.cjs.map +1 -1
- package/dist/expressions/playground.d.ts +6 -2
- package/dist/expressions/playground.d.ts.map +1 -1
- package/dist/expressions/playground.js +7 -1
- package/dist/expressions/playground.js.map +1 -1
- package/dist/hooks/theme-provider.cjs +5 -7
- package/dist/hooks/theme-provider.cjs.map +1 -1
- package/dist/hooks/theme-provider.d.ts.map +1 -1
- package/dist/hooks/theme-provider.js +6 -8
- package/dist/hooks/theme-provider.js.map +1 -1
- package/dist/hooks/use-container-width.cjs +31 -0
- package/dist/hooks/use-container-width.cjs.map +1 -0
- package/dist/hooks/use-container-width.d.ts +18 -0
- package/dist/hooks/use-container-width.d.ts.map +1 -0
- package/dist/hooks/use-container-width.js +31 -0
- package/dist/hooks/use-container-width.js.map +1 -0
- package/dist/hooks/use-log-tail.cjs +49 -66
- package/dist/hooks/use-log-tail.cjs.map +1 -1
- package/dist/hooks/use-log-tail.d.ts +38 -10
- package/dist/hooks/use-log-tail.d.ts.map +1 -1
- package/dist/hooks/use-log-tail.js +49 -66
- package/dist/hooks/use-log-tail.js.map +1 -1
- package/dist/hooks/use-media-query.cjs +41 -0
- package/dist/hooks/use-media-query.cjs.map +1 -0
- package/dist/hooks/use-media-query.d.ts +33 -0
- package/dist/hooks/use-media-query.d.ts.map +1 -0
- package/dist/hooks/use-media-query.js +41 -0
- package/dist/hooks/use-media-query.js.map +1 -0
- package/dist/hooks/use-task-run.cjs +8 -4
- package/dist/hooks/use-task-run.cjs.map +1 -1
- package/dist/hooks/use-task-run.d.ts.map +1 -1
- package/dist/hooks/use-task-run.js +8 -4
- package/dist/hooks/use-task-run.js.map +1 -1
- package/dist/hooks/use-theme.cjs +11 -9
- package/dist/hooks/use-theme.cjs.map +1 -1
- package/dist/hooks/use-theme.d.ts +1 -0
- package/dist/hooks/use-theme.d.ts.map +1 -1
- package/dist/hooks/use-theme.js +11 -9
- package/dist/hooks/use-theme.js.map +1 -1
- package/dist/hooks.cjs +6 -1
- package/dist/hooks.cjs.map +1 -1
- package/dist/hooks.d.ts +3 -1
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +7 -2
- package/dist/hooks.js.map +1 -1
- package/dist/icons/components/UiAccessProtected.cjs +15 -0
- package/dist/icons/components/UiAccessProtected.cjs.map +1 -0
- package/dist/icons/components/UiAccessProtected.d.ts +15 -0
- package/dist/icons/components/UiAccessProtected.d.ts.map +1 -0
- package/dist/icons/components/UiAccessProtected.js +15 -0
- package/dist/icons/components/UiAccessProtected.js.map +1 -0
- package/dist/icons/components/UiAccessPublic.cjs +23 -0
- package/dist/icons/components/UiAccessPublic.cjs.map +1 -0
- package/dist/icons/components/UiAccessPublic.d.ts +15 -0
- package/dist/icons/components/UiAccessPublic.d.ts.map +1 -0
- package/dist/icons/components/UiAccessPublic.js +23 -0
- package/dist/icons/components/UiAccessPublic.js.map +1 -0
- package/dist/icons/components/UiAddChangeset.cjs +29 -0
- package/dist/icons/components/UiAddChangeset.cjs.map +1 -0
- package/dist/icons/components/UiAddChangeset.d.ts +15 -0
- package/dist/icons/components/UiAddChangeset.d.ts.map +1 -0
- package/dist/icons/components/UiAddChangeset.js +29 -0
- package/dist/icons/components/UiAddChangeset.js.map +1 -0
- package/dist/icons/components/UiAggregate.cjs +21 -0
- package/dist/icons/components/UiAggregate.cjs.map +1 -0
- package/dist/icons/components/UiAggregate.d.ts +15 -0
- package/dist/icons/components/UiAggregate.d.ts.map +1 -0
- package/dist/icons/components/UiAggregate.js +21 -0
- package/dist/icons/components/UiAggregate.js.map +1 -0
- package/dist/icons/components/UiAlias.cjs +25 -0
- package/dist/icons/components/UiAlias.cjs.map +1 -0
- package/dist/icons/components/UiAlias.d.ts +15 -0
- package/dist/icons/components/UiAlias.d.ts.map +1 -0
- package/dist/icons/components/UiAlias.js +25 -0
- package/dist/icons/components/UiAlias.js.map +1 -0
- package/dist/icons/components/UiAnnotation.cjs +21 -0
- package/dist/icons/components/UiAnnotation.cjs.map +1 -0
- package/dist/icons/components/UiAnnotation.d.ts +15 -0
- package/dist/icons/components/UiAnnotation.d.ts.map +1 -0
- package/dist/icons/components/UiAnnotation.js +21 -0
- package/dist/icons/components/UiAnnotation.js.map +1 -0
- package/dist/icons/components/UiAopAroundAdvice.cjs +15 -0
- package/dist/icons/components/UiAopAroundAdvice.cjs.map +1 -0
- package/dist/icons/components/UiAopAroundAdvice.d.ts +9 -0
- package/dist/icons/components/UiAopAroundAdvice.d.ts.map +1 -0
- package/dist/icons/components/UiAopAroundAdvice.js +15 -0
- package/dist/icons/components/UiAopAroundAdvice.js.map +1 -0
- package/dist/icons/components/UiAopBeforeAdvice.cjs +15 -0
- package/dist/icons/components/UiAopBeforeAdvice.cjs.map +1 -0
- package/dist/icons/components/UiAopBeforeAdvice.d.ts +9 -0
- package/dist/icons/components/UiAopBeforeAdvice.d.ts.map +1 -0
- package/dist/icons/components/UiAopBeforeAdvice.js +15 -0
- package/dist/icons/components/UiAopBeforeAdvice.js.map +1 -0
- package/dist/icons/components/UiAopPointcut.cjs +13 -0
- package/dist/icons/components/UiAopPointcut.cjs.map +1 -0
- package/dist/icons/components/UiAopPointcut.d.ts +9 -0
- package/dist/icons/components/UiAopPointcut.d.ts.map +1 -0
- package/dist/icons/components/UiAopPointcut.js +13 -0
- package/dist/icons/components/UiAopPointcut.js.map +1 -0
- package/dist/icons/components/UiArtifact.cjs +31 -0
- package/dist/icons/components/UiArtifact.cjs.map +1 -0
- package/dist/icons/components/UiArtifact.d.ts +15 -0
- package/dist/icons/components/UiArtifact.d.ts.map +1 -0
- package/dist/icons/components/UiArtifact.js +31 -0
- package/dist/icons/components/UiArtifact.js.map +1 -0
- package/dist/icons/components/UiAttachDebugger.cjs +21 -0
- package/dist/icons/components/UiAttachDebugger.cjs.map +1 -0
- package/dist/icons/components/UiAttachDebugger.d.ts +15 -0
- package/dist/icons/components/UiAttachDebugger.d.ts.map +1 -0
- package/dist/icons/components/UiAttachDebugger.js +21 -0
- package/dist/icons/components/UiAttachDebugger.js.map +1 -0
- package/dist/icons/components/UiAttachToProcess.cjs +25 -0
- package/dist/icons/components/UiAttachToProcess.cjs.map +1 -0
- package/dist/icons/components/UiAttachToProcess.d.ts +15 -0
- package/dist/icons/components/UiAttachToProcess.d.ts.map +1 -0
- package/dist/icons/components/UiAttachToProcess.js +25 -0
- package/dist/icons/components/UiAttachToProcess.js.map +1 -0
- package/dist/icons/components/UiAuditLog.cjs +14 -0
- package/dist/icons/components/UiAuditLog.cjs.map +1 -0
- package/dist/icons/components/UiAuditLog.d.ts +9 -0
- package/dist/icons/components/UiAuditLog.d.ts.map +1 -0
- package/dist/icons/components/UiAuditLog.js +14 -0
- package/dist/icons/components/UiAuditLog.js.map +1 -0
- package/dist/icons/components/UiBlueKey.cjs +15 -0
- package/dist/icons/components/UiBlueKey.cjs.map +1 -0
- package/dist/icons/components/UiBlueKey.d.ts +15 -0
- package/dist/icons/components/UiBlueKey.d.ts.map +1 -0
- package/dist/icons/components/UiBlueKey.js +15 -0
- package/dist/icons/components/UiBlueKey.js.map +1 -0
- package/dist/icons/components/UiBoolean.cjs +15 -0
- package/dist/icons/components/UiBoolean.cjs.map +1 -0
- package/dist/icons/components/UiBoolean.d.ts +9 -0
- package/dist/icons/components/UiBoolean.d.ts.map +1 -0
- package/dist/icons/components/UiBoolean.js +15 -0
- package/dist/icons/components/UiBoolean.js.map +1 -0
- package/dist/icons/components/UiBreakpoint.cjs +10 -0
- package/dist/icons/components/UiBreakpoint.cjs.map +1 -0
- package/dist/icons/components/UiBreakpoint.d.ts +9 -0
- package/dist/icons/components/UiBreakpoint.d.ts.map +1 -0
- package/dist/icons/components/UiBreakpoint.js +10 -0
- package/dist/icons/components/UiBreakpoint.js.map +1 -0
- package/dist/icons/components/UiBreakpoint1.cjs +21 -0
- package/dist/icons/components/UiBreakpoint1.cjs.map +1 -0
- package/dist/icons/components/UiBreakpoint1.d.ts +15 -0
- package/dist/icons/components/UiBreakpoint1.d.ts.map +1 -0
- package/dist/icons/components/UiBreakpoint1.js +21 -0
- package/dist/icons/components/UiBreakpoint1.js.map +1 -0
- package/dist/icons/components/UiBreakpoint2.cjs +15 -0
- package/dist/icons/components/UiBreakpoint2.cjs.map +1 -0
- package/dist/icons/components/UiBreakpoint2.d.ts +15 -0
- package/dist/icons/components/UiBreakpoint2.d.ts.map +1 -0
- package/dist/icons/components/UiBreakpoint2.js +15 -0
- package/dist/icons/components/UiBreakpoint2.js.map +1 -0
- package/dist/icons/components/UiBreakpoint3.cjs +15 -0
- package/dist/icons/components/UiBreakpoint3.cjs.map +1 -0
- package/dist/icons/components/UiBreakpoint3.d.ts +15 -0
- package/dist/icons/components/UiBreakpoint3.d.ts.map +1 -0
- package/dist/icons/components/UiBreakpoint3.js +15 -0
- package/dist/icons/components/UiBreakpoint3.js.map +1 -0
- package/dist/icons/components/UiBreakpoint4.cjs +23 -0
- package/dist/icons/components/UiBreakpoint4.cjs.map +1 -0
- package/dist/icons/components/UiBreakpoint4.d.ts +15 -0
- package/dist/icons/components/UiBreakpoint4.d.ts.map +1 -0
- package/dist/icons/components/UiBreakpoint4.js +23 -0
- package/dist/icons/components/UiBreakpoint4.js.map +1 -0
- package/dist/icons/components/UiBreakpointDisabled.cjs +10 -0
- package/dist/icons/components/UiBreakpointDisabled.cjs.map +1 -0
- package/dist/icons/components/UiBreakpointDisabled.d.ts +9 -0
- package/dist/icons/components/UiBreakpointDisabled.d.ts.map +1 -0
- package/dist/icons/components/UiBreakpointDisabled.js +10 -0
- package/dist/icons/components/UiBreakpointDisabled.js.map +1 -0
- package/dist/icons/components/UiBreakpointField.cjs +13 -0
- package/dist/icons/components/UiBreakpointField.cjs.map +1 -0
- package/dist/icons/components/UiBreakpointField.d.ts +9 -0
- package/dist/icons/components/UiBreakpointField.d.ts.map +1 -0
- package/dist/icons/components/UiBreakpointField.js +13 -0
- package/dist/icons/components/UiBreakpointField.js.map +1 -0
- package/dist/icons/components/UiBreakpointMethod.cjs +10 -0
- package/dist/icons/components/UiBreakpointMethod.cjs.map +1 -0
- package/dist/icons/components/UiBreakpointMethod.d.ts +9 -0
- package/dist/icons/components/UiBreakpointMethod.d.ts.map +1 -0
- package/dist/icons/components/UiBreakpointMethod.js +10 -0
- package/dist/icons/components/UiBreakpointMethod.js.map +1 -0
- package/dist/icons/components/UiCache.cjs +15 -0
- package/dist/icons/components/UiCache.cjs.map +1 -0
- package/dist/icons/components/UiCache.d.ts +9 -0
- package/dist/icons/components/UiCache.d.ts.map +1 -0
- package/dist/icons/components/UiCache.js +15 -0
- package/dist/icons/components/UiCache.js.map +1 -0
- package/dist/icons/components/UiCheckConstraint.cjs +25 -0
- package/dist/icons/components/UiCheckConstraint.cjs.map +1 -0
- package/dist/icons/components/UiCheckConstraint.d.ts +15 -0
- package/dist/icons/components/UiCheckConstraint.d.ts.map +1 -0
- package/dist/icons/components/UiCheckConstraint.js +25 -0
- package/dist/icons/components/UiCheckConstraint.js.map +1 -0
- package/dist/icons/components/UiClass1.cjs +33 -0
- package/dist/icons/components/UiClass1.cjs.map +1 -0
- package/dist/icons/components/UiClass1.d.ts +15 -0
- package/dist/icons/components/UiClass1.d.ts.map +1 -0
- package/dist/icons/components/UiClass1.js +33 -0
- package/dist/icons/components/UiClass1.js.map +1 -0
- package/dist/icons/components/UiClass2.cjs +21 -0
- package/dist/icons/components/UiClass2.cjs.map +1 -0
- package/dist/icons/components/UiClass2.d.ts +15 -0
- package/dist/icons/components/UiClass2.d.ts.map +1 -0
- package/dist/icons/components/UiClass2.js +21 -0
- package/dist/icons/components/UiClass2.js.map +1 -0
- package/dist/icons/components/UiClass3.cjs +21 -0
- package/dist/icons/components/UiClass3.cjs.map +1 -0
- package/dist/icons/components/UiClass3.d.ts +15 -0
- package/dist/icons/components/UiClass3.d.ts.map +1 -0
- package/dist/icons/components/UiClass3.js +21 -0
- package/dist/icons/components/UiClass3.js.map +1 -0
- package/dist/icons/components/UiClass4.cjs +23 -0
- package/dist/icons/components/UiClass4.cjs.map +1 -0
- package/dist/icons/components/UiClass4.d.ts +15 -0
- package/dist/icons/components/UiClass4.d.ts.map +1 -0
- package/dist/icons/components/UiClass4.js +23 -0
- package/dist/icons/components/UiClass4.js.map +1 -0
- package/dist/icons/components/UiClass5.cjs +23 -0
- package/dist/icons/components/UiClass5.cjs.map +1 -0
- package/dist/icons/components/UiClass5.d.ts +15 -0
- package/dist/icons/components/UiClass5.d.ts.map +1 -0
- package/dist/icons/components/UiClass5.js +23 -0
- package/dist/icons/components/UiClass5.js.map +1 -0
- package/dist/icons/components/UiClass6.cjs +21 -0
- package/dist/icons/components/UiClass6.cjs.map +1 -0
- package/dist/icons/components/UiClass6.d.ts +15 -0
- package/dist/icons/components/UiClass6.d.ts.map +1 -0
- package/dist/icons/components/UiClass6.js +21 -0
- package/dist/icons/components/UiClass6.js.map +1 -0
- package/dist/icons/components/UiClass7.cjs +23 -0
- package/dist/icons/components/UiClass7.cjs.map +1 -0
- package/dist/icons/components/UiClass7.d.ts +15 -0
- package/dist/icons/components/UiClass7.d.ts.map +1 -0
- package/dist/icons/components/UiClass7.js +23 -0
- package/dist/icons/components/UiClass7.js.map +1 -0
- package/dist/icons/components/UiClearCash.cjs +23 -0
- package/dist/icons/components/UiClearCash.cjs.map +1 -0
- package/dist/icons/components/UiClearCash.d.ts +15 -0
- package/dist/icons/components/UiClearCash.d.ts.map +1 -0
- package/dist/icons/components/UiClearCash.js +23 -0
- package/dist/icons/components/UiClearCash.js.map +1 -0
- package/dist/icons/components/UiCollection.cjs +27 -0
- package/dist/icons/components/UiCollection.cjs.map +1 -0
- package/dist/icons/components/UiCollection.d.ts +15 -0
- package/dist/icons/components/UiCollection.d.ts.map +1 -0
- package/dist/icons/components/UiCollection.js +27 -0
- package/dist/icons/components/UiCollection.js.map +1 -0
- package/dist/icons/components/UiCollectionType.cjs +27 -0
- package/dist/icons/components/UiCollectionType.cjs.map +1 -0
- package/dist/icons/components/UiCollectionType.d.ts +15 -0
- package/dist/icons/components/UiCollectionType.d.ts.map +1 -0
- package/dist/icons/components/UiCollectionType.js +27 -0
- package/dist/icons/components/UiCollectionType.js.map +1 -0
- package/dist/icons/components/UiColumn.cjs +21 -0
- package/dist/icons/components/UiColumn.cjs.map +1 -0
- package/dist/icons/components/UiColumn.d.ts +15 -0
- package/dist/icons/components/UiColumn.d.ts.map +1 -0
- package/dist/icons/components/UiColumn.js +21 -0
- package/dist/icons/components/UiColumn.js.map +1 -0
- package/dist/icons/components/UiColumn1.cjs +26 -0
- package/dist/icons/components/UiColumn1.cjs.map +1 -0
- package/dist/icons/components/UiColumn1.d.ts +15 -0
- package/dist/icons/components/UiColumn1.d.ts.map +1 -0
- package/dist/icons/components/UiColumn1.js +26 -0
- package/dist/icons/components/UiColumn1.js.map +1 -0
- package/dist/icons/components/UiColumn2.cjs +28 -0
- package/dist/icons/components/UiColumn2.cjs.map +1 -0
- package/dist/icons/components/UiColumn2.d.ts +15 -0
- package/dist/icons/components/UiColumn2.d.ts.map +1 -0
- package/dist/icons/components/UiColumn2.js +28 -0
- package/dist/icons/components/UiColumn2.js.map +1 -0
- package/dist/icons/components/UiColumn3.cjs +26 -0
- package/dist/icons/components/UiColumn3.cjs.map +1 -0
- package/dist/icons/components/UiColumn3.d.ts +15 -0
- package/dist/icons/components/UiColumn3.d.ts.map +1 -0
- package/dist/icons/components/UiColumn3.js +26 -0
- package/dist/icons/components/UiColumn3.js.map +1 -0
- package/dist/icons/components/UiColumn4.cjs +26 -0
- package/dist/icons/components/UiColumn4.cjs.map +1 -0
- package/dist/icons/components/UiColumn4.d.ts +15 -0
- package/dist/icons/components/UiColumn4.d.ts.map +1 -0
- package/dist/icons/components/UiColumn4.js +26 -0
- package/dist/icons/components/UiColumn4.js.map +1 -0
- package/dist/icons/components/UiColumn5.cjs +21 -0
- package/dist/icons/components/UiColumn5.cjs.map +1 -0
- package/dist/icons/components/UiColumn5.d.ts +15 -0
- package/dist/icons/components/UiColumn5.d.ts.map +1 -0
- package/dist/icons/components/UiColumn5.js +21 -0
- package/dist/icons/components/UiColumn5.js.map +1 -0
- package/dist/icons/components/UiConfigMap.cjs +31 -0
- package/dist/icons/components/UiConfigMap.cjs.map +1 -0
- package/dist/icons/components/UiConfigMap.d.ts +15 -0
- package/dist/icons/components/UiConfigMap.d.ts.map +1 -0
- package/dist/icons/components/UiConfigMap.js +31 -0
- package/dist/icons/components/UiConfigMap.js.map +1 -0
- package/dist/icons/components/UiConnector.cjs +15 -0
- package/dist/icons/components/UiConnector.cjs.map +1 -0
- package/dist/icons/components/UiConnector.d.ts +15 -0
- package/dist/icons/components/UiConnector.d.ts.map +1 -0
- package/dist/icons/components/UiConnector.js +15 -0
- package/dist/icons/components/UiConnector.js.map +1 -0
- package/dist/icons/components/UiConstant1.cjs +23 -0
- package/dist/icons/components/UiConstant1.cjs.map +1 -0
- package/dist/icons/components/UiConstant1.d.ts +15 -0
- package/dist/icons/components/UiConstant1.d.ts.map +1 -0
- package/dist/icons/components/UiConstant1.js +23 -0
- package/dist/icons/components/UiConstant1.js.map +1 -0
- package/dist/icons/components/UiConverter.cjs +23 -0
- package/dist/icons/components/UiConverter.cjs.map +1 -0
- package/dist/icons/components/UiConverter.d.ts +15 -0
- package/dist/icons/components/UiConverter.d.ts.map +1 -0
- package/dist/icons/components/UiConverter.js +23 -0
- package/dist/icons/components/UiConverter.js.map +1 -0
- package/dist/icons/components/UiConverter1.cjs +23 -0
- package/dist/icons/components/UiConverter1.cjs.map +1 -0
- package/dist/icons/components/UiConverter1.d.ts +15 -0
- package/dist/icons/components/UiConverter1.d.ts.map +1 -0
- package/dist/icons/components/UiConverter1.js +23 -0
- package/dist/icons/components/UiConverter1.js.map +1 -0
- package/dist/icons/components/UiCreateConstraint.cjs +23 -0
- package/dist/icons/components/UiCreateConstraint.cjs.map +1 -0
- package/dist/icons/components/UiCreateConstraint.d.ts +15 -0
- package/dist/icons/components/UiCreateConstraint.d.ts.map +1 -0
- package/dist/icons/components/UiCreateConstraint.js +23 -0
- package/dist/icons/components/UiCreateConstraint.js.map +1 -0
- package/dist/icons/components/UiCustomResource.cjs +21 -0
- package/dist/icons/components/UiCustomResource.cjs.map +1 -0
- package/dist/icons/components/UiCustomResource.d.ts +15 -0
- package/dist/icons/components/UiCustomResource.d.ts.map +1 -0
- package/dist/icons/components/UiCustomResource.js +21 -0
- package/dist/icons/components/UiCustomResource.js.map +1 -0
- package/dist/icons/components/UiDataSchema.cjs +23 -0
- package/dist/icons/components/UiDataSchema.cjs.map +1 -0
- package/dist/icons/components/UiDataSchema.d.ts +15 -0
- package/dist/icons/components/UiDataSchema.d.ts.map +1 -0
- package/dist/icons/components/UiDataSchema.js +23 -0
- package/dist/icons/components/UiDataSchema.js.map +1 -0
- package/dist/icons/components/UiDataShare.cjs +21 -0
- package/dist/icons/components/UiDataShare.cjs.map +1 -0
- package/dist/icons/components/UiDataShare.d.ts +15 -0
- package/dist/icons/components/UiDataShare.d.ts.map +1 -0
- package/dist/icons/components/UiDataShare.js +21 -0
- package/dist/icons/components/UiDataShare.js.map +1 -0
- package/dist/icons/components/UiDatabaseEventStream.cjs +17 -0
- package/dist/icons/components/UiDatabaseEventStream.cjs.map +1 -0
- package/dist/icons/components/UiDatabaseEventStream.d.ts +9 -0
- package/dist/icons/components/UiDatabaseEventStream.d.ts.map +1 -0
- package/dist/icons/components/UiDatabaseEventStream.js +17 -0
- package/dist/icons/components/UiDatabaseEventStream.js.map +1 -0
- package/dist/icons/components/UiDatabaseLink.cjs +21 -0
- package/dist/icons/components/UiDatabaseLink.cjs.map +1 -0
- package/dist/icons/components/UiDatabaseLink.d.ts +15 -0
- package/dist/icons/components/UiDatabaseLink.d.ts.map +1 -0
- package/dist/icons/components/UiDatabaseLink.js +21 -0
- package/dist/icons/components/UiDatabaseLink.js.map +1 -0
- package/dist/icons/components/UiDebugDisabled.cjs +23 -0
- package/dist/icons/components/UiDebugDisabled.cjs.map +1 -0
- package/dist/icons/components/UiDebugDisabled.d.ts +15 -0
- package/dist/icons/components/UiDebugDisabled.d.ts.map +1 -0
- package/dist/icons/components/UiDebugDisabled.js +23 -0
- package/dist/icons/components/UiDebugDisabled.js.map +1 -0
- package/dist/icons/components/UiDebugSelection.cjs +31 -0
- package/dist/icons/components/UiDebugSelection.cjs.map +1 -0
- package/dist/icons/components/UiDebugSelection.d.ts +15 -0
- package/dist/icons/components/UiDebugSelection.d.ts.map +1 -0
- package/dist/icons/components/UiDebugSelection.js +31 -0
- package/dist/icons/components/UiDebugSelection.js.map +1 -0
- package/dist/icons/components/UiDeploy.cjs +23 -0
- package/dist/icons/components/UiDeploy.cjs.map +1 -0
- package/dist/icons/components/UiDeploy.d.ts +15 -0
- package/dist/icons/components/UiDeploy.d.ts.map +1 -0
- package/dist/icons/components/UiDeploy.js +23 -0
- package/dist/icons/components/UiDeploy.js.map +1 -0
- package/dist/icons/components/UiDetach.cjs +21 -0
- package/dist/icons/components/UiDetach.cjs.map +1 -0
- package/dist/icons/components/UiDetach.d.ts +15 -0
- package/dist/icons/components/UiDetach.d.ts.map +1 -0
- package/dist/icons/components/UiDetach.js +21 -0
- package/dist/icons/components/UiDetach.js.map +1 -0
- package/dist/icons/components/UiDiagramDiff.cjs +21 -0
- package/dist/icons/components/UiDiagramDiff.cjs.map +1 -0
- package/dist/icons/components/UiDiagramDiff.d.ts +15 -0
- package/dist/icons/components/UiDiagramDiff.d.ts.map +1 -0
- package/dist/icons/components/UiDiagramDiff.js +21 -0
- package/dist/icons/components/UiDiagramDiff.js.map +1 -0
- package/dist/icons/components/UiDumpThreads.cjs +23 -0
- package/dist/icons/components/UiDumpThreads.cjs.map +1 -0
- package/dist/icons/components/UiDumpThreads.d.ts +15 -0
- package/dist/icons/components/UiDumpThreads.d.ts.map +1 -0
- package/dist/icons/components/UiDumpThreads.js +23 -0
- package/dist/icons/components/UiDumpThreads.js.map +1 -0
- package/dist/icons/components/UiEditMode.cjs +41 -0
- package/dist/icons/components/UiEditMode.cjs.map +1 -0
- package/dist/icons/components/UiEditMode.d.ts +15 -0
- package/dist/icons/components/UiEditMode.d.ts.map +1 -0
- package/dist/icons/components/UiEditMode.js +41 -0
- package/dist/icons/components/UiEditMode.js.map +1 -0
- package/dist/icons/components/UiEvaluateExpression.cjs +33 -0
- package/dist/icons/components/UiEvaluateExpression.cjs.map +1 -0
- package/dist/icons/components/UiEvaluateExpression.d.ts +15 -0
- package/dist/icons/components/UiEvaluateExpression.d.ts.map +1 -0
- package/dist/icons/components/UiEvaluateExpression.js +33 -0
- package/dist/icons/components/UiEvaluateExpression.js.map +1 -0
- package/dist/icons/components/UiException.cjs +21 -0
- package/dist/icons/components/UiException.cjs.map +1 -0
- package/dist/icons/components/UiException.d.ts +15 -0
- package/dist/icons/components/UiException.d.ts.map +1 -0
- package/dist/icons/components/UiException.js +21 -0
- package/dist/icons/components/UiException.js.map +1 -0
- package/dist/icons/components/UiExceptionAnalyzerImportant.cjs +21 -0
- package/dist/icons/components/UiExceptionAnalyzerImportant.cjs.map +1 -0
- package/dist/icons/components/UiExceptionAnalyzerImportant.d.ts +15 -0
- package/dist/icons/components/UiExceptionAnalyzerImportant.d.ts.map +1 -0
- package/dist/icons/components/UiExceptionAnalyzerImportant.js +21 -0
- package/dist/icons/components/UiExceptionAnalyzerImportant.js.map +1 -0
- package/dist/icons/components/UiExcludedGenerated.cjs +35 -0
- package/dist/icons/components/UiExcludedGenerated.cjs.map +1 -0
- package/dist/icons/components/UiExcludedGenerated.d.ts +15 -0
- package/dist/icons/components/UiExcludedGenerated.d.ts.map +1 -0
- package/dist/icons/components/UiExcludedGenerated.js +35 -0
- package/dist/icons/components/UiExcludedGenerated.js.map +1 -0
- package/dist/icons/components/UiExtension.cjs +15 -0
- package/dist/icons/components/UiExtension.cjs.map +1 -0
- package/dist/icons/components/UiExtension.d.ts +15 -0
- package/dist/icons/components/UiExtension.d.ts.map +1 -0
- package/dist/icons/components/UiExtension.js +15 -0
- package/dist/icons/components/UiExtension.js.map +1 -0
- package/dist/icons/components/UiFailedInProgress.cjs +29 -0
- package/dist/icons/components/UiFailedInProgress.cjs.map +1 -0
- package/dist/icons/components/UiFailedInProgress.d.ts +15 -0
- package/dist/icons/components/UiFailedInProgress.d.ts.map +1 -0
- package/dist/icons/components/UiFailedInProgress.js +29 -0
- package/dist/icons/components/UiFailedInProgress.js.map +1 -0
- package/dist/icons/components/UiField.cjs +1 -1
- package/dist/icons/components/UiField.cjs.map +1 -1
- package/dist/icons/components/UiField.js +1 -1
- package/dist/icons/components/UiField.js.map +1 -1
- package/dist/icons/components/UiField1.cjs +21 -0
- package/dist/icons/components/UiField1.cjs.map +1 -0
- package/dist/icons/components/UiField1.d.ts +15 -0
- package/dist/icons/components/UiField1.d.ts.map +1 -0
- package/dist/icons/components/UiField1.js +21 -0
- package/dist/icons/components/UiField1.js.map +1 -0
- package/dist/icons/components/UiField2.cjs +21 -0
- package/dist/icons/components/UiField2.cjs.map +1 -0
- package/dist/icons/components/UiField2.d.ts +15 -0
- package/dist/icons/components/UiField2.d.ts.map +1 -0
- package/dist/icons/components/UiField2.js +21 -0
- package/dist/icons/components/UiField2.js.map +1 -0
- package/dist/icons/components/UiField3.cjs +21 -0
- package/dist/icons/components/UiField3.cjs.map +1 -0
- package/dist/icons/components/UiField3.d.ts +15 -0
- package/dist/icons/components/UiField3.d.ts.map +1 -0
- package/dist/icons/components/UiField3.js +21 -0
- package/dist/icons/components/UiField3.js.map +1 -0
- package/dist/icons/components/UiField4.cjs +21 -0
- package/dist/icons/components/UiField4.cjs.map +1 -0
- package/dist/icons/components/UiField4.d.ts +15 -0
- package/dist/icons/components/UiField4.d.ts.map +1 -0
- package/dist/icons/components/UiField4.js +21 -0
- package/dist/icons/components/UiField4.js.map +1 -0
- package/dist/icons/components/UiField5.cjs +21 -0
- package/dist/icons/components/UiField5.cjs.map +1 -0
- package/dist/icons/components/UiField5.d.ts +15 -0
- package/dist/icons/components/UiField5.d.ts.map +1 -0
- package/dist/icons/components/UiField5.js +21 -0
- package/dist/icons/components/UiField5.js.map +1 -0
- package/dist/icons/components/UiField6.cjs +21 -0
- package/dist/icons/components/UiField6.cjs.map +1 -0
- package/dist/icons/components/UiField6.d.ts +15 -0
- package/dist/icons/components/UiField6.d.ts.map +1 -0
- package/dist/icons/components/UiField6.js +21 -0
- package/dist/icons/components/UiField6.js.map +1 -0
- package/dist/icons/components/UiFieldProtected.cjs +10 -0
- package/dist/icons/components/UiFieldProtected.cjs.map +1 -0
- package/dist/icons/components/UiFieldProtected.d.ts +9 -0
- package/dist/icons/components/UiFieldProtected.d.ts.map +1 -0
- package/dist/icons/components/UiFieldProtected.js +10 -0
- package/dist/icons/components/UiFieldProtected.js.map +1 -0
- package/dist/icons/components/UiFieldReadAccess.cjs +13 -0
- package/dist/icons/components/UiFieldReadAccess.cjs.map +1 -0
- package/dist/icons/components/UiFieldReadAccess.d.ts +9 -0
- package/dist/icons/components/UiFieldReadAccess.d.ts.map +1 -0
- package/dist/icons/components/UiFieldReadAccess.js +13 -0
- package/dist/icons/components/UiFieldReadAccess.js.map +1 -0
- package/dist/icons/components/UiFieldType.cjs +14 -0
- package/dist/icons/components/UiFieldType.cjs.map +1 -0
- package/dist/icons/components/UiFieldType.d.ts +9 -0
- package/dist/icons/components/UiFieldType.d.ts.map +1 -0
- package/dist/icons/components/UiFieldType.js +14 -0
- package/dist/icons/components/UiFieldType.js.map +1 -0
- package/dist/icons/components/UiFieldWriteAccess.cjs +13 -0
- package/dist/icons/components/UiFieldWriteAccess.cjs.map +1 -0
- package/dist/icons/components/UiFieldWriteAccess.d.ts +9 -0
- package/dist/icons/components/UiFieldWriteAccess.d.ts.map +1 -0
- package/dist/icons/components/UiFieldWriteAccess.js +13 -0
- package/dist/icons/components/UiFieldWriteAccess.js.map +1 -0
- package/dist/icons/components/UiFileFormat.cjs +23 -0
- package/dist/icons/components/UiFileFormat.cjs.map +1 -0
- package/dist/icons/components/UiFileFormat.d.ts +15 -0
- package/dist/icons/components/UiFileFormat.d.ts.map +1 -0
- package/dist/icons/components/UiFileFormat.js +23 -0
- package/dist/icons/components/UiFileFormat.js.map +1 -0
- package/dist/icons/components/UiForeignServer.cjs +21 -0
- package/dist/icons/components/UiForeignServer.cjs.map +1 -0
- package/dist/icons/components/UiForeignServer.d.ts +15 -0
- package/dist/icons/components/UiForeignServer.d.ts.map +1 -0
- package/dist/icons/components/UiForeignServer.js +21 -0
- package/dist/icons/components/UiForeignServer.js.map +1 -0
- package/dist/icons/components/UiFreemarker.cjs +15 -0
- package/dist/icons/components/UiFreemarker.cjs.map +1 -0
- package/dist/icons/components/UiFreemarker.d.ts +15 -0
- package/dist/icons/components/UiFreemarker.d.ts.map +1 -0
- package/dist/icons/components/UiFreemarker.js +15 -0
- package/dist/icons/components/UiFreemarker.js.map +1 -0
- package/dist/icons/components/UiFunction1.cjs +25 -0
- package/dist/icons/components/UiFunction1.cjs.map +1 -0
- package/dist/icons/components/UiFunction1.d.ts +15 -0
- package/dist/icons/components/UiFunction1.d.ts.map +1 -0
- package/dist/icons/components/UiFunction1.js +25 -0
- package/dist/icons/components/UiFunction1.js.map +1 -0
- package/dist/icons/components/UiFunction2.cjs +27 -0
- package/dist/icons/components/UiFunction2.cjs.map +1 -0
- package/dist/icons/components/UiFunction2.d.ts +15 -0
- package/dist/icons/components/UiFunction2.d.ts.map +1 -0
- package/dist/icons/components/UiFunction2.js +27 -0
- package/dist/icons/components/UiFunction2.js.map +1 -0
- package/dist/icons/components/UiFunction3.cjs +31 -0
- package/dist/icons/components/UiFunction3.cjs.map +1 -0
- package/dist/icons/components/UiFunction3.d.ts +15 -0
- package/dist/icons/components/UiFunction3.d.ts.map +1 -0
- package/dist/icons/components/UiFunction3.js +31 -0
- package/dist/icons/components/UiFunction3.js.map +1 -0
- package/dist/icons/components/UiFunction4.cjs +21 -0
- package/dist/icons/components/UiFunction4.cjs.map +1 -0
- package/dist/icons/components/UiFunction4.d.ts +15 -0
- package/dist/icons/components/UiFunction4.d.ts.map +1 -0
- package/dist/icons/components/UiFunction4.js +21 -0
- package/dist/icons/components/UiFunction4.js.map +1 -0
- package/dist/icons/components/UiGreyKey.cjs +15 -0
- package/dist/icons/components/UiGreyKey.cjs.map +1 -0
- package/dist/icons/components/UiGreyKey.d.ts +15 -0
- package/dist/icons/components/UiGreyKey.d.ts.map +1 -0
- package/dist/icons/components/UiGreyKey.js +15 -0
- package/dist/icons/components/UiGreyKey.js.map +1 -0
- package/dist/icons/components/UiGroupByModuleGroup.cjs +29 -0
- package/dist/icons/components/UiGroupByModuleGroup.cjs.map +1 -0
- package/dist/icons/components/UiGroupByModuleGroup.d.ts +15 -0
- package/dist/icons/components/UiGroupByModuleGroup.d.ts.map +1 -0
- package/dist/icons/components/UiGroupByModuleGroup.js +29 -0
- package/dist/icons/components/UiGroupByModuleGroup.js.map +1 -0
- package/dist/icons/components/UiGroupByPackage.cjs +23 -0
- package/dist/icons/components/UiGroupByPackage.cjs.map +1 -0
- package/dist/icons/components/UiGroupByPackage.d.ts +15 -0
- package/dist/icons/components/UiGroupByPackage.d.ts.map +1 -0
- package/dist/icons/components/UiGroupByPackage.js +23 -0
- package/dist/icons/components/UiGroupByPackage.js.map +1 -0
- package/dist/icons/components/UiGroupByTestProduction.cjs +25 -0
- package/dist/icons/components/UiGroupByTestProduction.cjs.map +1 -0
- package/dist/icons/components/UiGroupByTestProduction.d.ts +15 -0
- package/dist/icons/components/UiGroupByTestProduction.d.ts.map +1 -0
- package/dist/icons/components/UiGroupByTestProduction.js +25 -0
- package/dist/icons/components/UiGroupByTestProduction.js.map +1 -0
- package/dist/icons/components/UiHibernate.cjs +25 -0
- package/dist/icons/components/UiHibernate.cjs.map +1 -0
- package/dist/icons/components/UiHibernate.d.ts +15 -0
- package/dist/icons/components/UiHibernate.d.ts.map +1 -0
- package/dist/icons/components/UiHibernate.js +25 -0
- package/dist/icons/components/UiHibernate.js.map +1 -0
- package/dist/icons/components/UiHibernateEvent.cjs +21 -0
- package/dist/icons/components/UiHibernateEvent.cjs.map +1 -0
- package/dist/icons/components/UiHibernateEvent.d.ts +15 -0
- package/dist/icons/components/UiHibernateEvent.d.ts.map +1 -0
- package/dist/icons/components/UiHibernateEvent.js +21 -0
- package/dist/icons/components/UiHibernateEvent.js.map +1 -0
- package/dist/icons/components/UiId.cjs +23 -0
- package/dist/icons/components/UiId.cjs.map +1 -0
- package/dist/icons/components/UiId.d.ts +15 -0
- package/dist/icons/components/UiId.d.ts.map +1 -0
- package/dist/icons/components/UiId.js +23 -0
- package/dist/icons/components/UiId.js.map +1 -0
- package/dist/icons/components/UiIndex.cjs +21 -0
- package/dist/icons/components/UiIndex.cjs.map +1 -0
- package/dist/icons/components/UiIndex.d.ts +15 -0
- package/dist/icons/components/UiIndex.d.ts.map +1 -0
- package/dist/icons/components/UiIndex.js +21 -0
- package/dist/icons/components/UiIndex.js.map +1 -0
- package/dist/icons/components/UiIndex1.cjs +28 -0
- package/dist/icons/components/UiIndex1.cjs.map +1 -0
- package/dist/icons/components/UiIndex1.d.ts +15 -0
- package/dist/icons/components/UiIndex1.d.ts.map +1 -0
- package/dist/icons/components/UiIndex1.js +28 -0
- package/dist/icons/components/UiIndex1.js.map +1 -0
- package/dist/icons/components/UiIndex2.cjs +26 -0
- package/dist/icons/components/UiIndex2.cjs.map +1 -0
- package/dist/icons/components/UiIndex2.d.ts +15 -0
- package/dist/icons/components/UiIndex2.d.ts.map +1 -0
- package/dist/icons/components/UiIndex2.js +26 -0
- package/dist/icons/components/UiIndex2.js.map +1 -0
- package/dist/icons/components/UiIndex3.cjs +21 -0
- package/dist/icons/components/UiIndex3.cjs.map +1 -0
- package/dist/icons/components/UiIndex3.d.ts +15 -0
- package/dist/icons/components/UiIndex3.d.ts.map +1 -0
- package/dist/icons/components/UiIndex3.js +21 -0
- package/dist/icons/components/UiIndex3.js.map +1 -0
- package/dist/icons/components/UiIndex4.cjs +21 -0
- package/dist/icons/components/UiIndex4.cjs.map +1 -0
- package/dist/icons/components/UiIndex4.d.ts +15 -0
- package/dist/icons/components/UiIndex4.d.ts.map +1 -0
- package/dist/icons/components/UiIndex4.js +21 -0
- package/dist/icons/components/UiIndex4.js.map +1 -0
- package/dist/icons/components/UiIndex5.cjs +23 -0
- package/dist/icons/components/UiIndex5.cjs.map +1 -0
- package/dist/icons/components/UiIndex5.d.ts +15 -0
- package/dist/icons/components/UiIndex5.d.ts.map +1 -0
- package/dist/icons/components/UiIndex5.js +23 -0
- package/dist/icons/components/UiIndex5.js.map +1 -0
- package/dist/icons/components/UiIndex6.cjs +23 -0
- package/dist/icons/components/UiIndex6.cjs.map +1 -0
- package/dist/icons/components/UiIndex6.d.ts +15 -0
- package/dist/icons/components/UiIndex6.d.ts.map +1 -0
- package/dist/icons/components/UiIndex6.js +23 -0
- package/dist/icons/components/UiIndex6.js.map +1 -0
- package/dist/icons/components/UiInspectionsGrammar.cjs +21 -0
- package/dist/icons/components/UiInspectionsGrammar.cjs.map +1 -0
- package/dist/icons/components/UiInspectionsGrammar.d.ts +15 -0
- package/dist/icons/components/UiInspectionsGrammar.d.ts.map +1 -0
- package/dist/icons/components/UiInspectionsGrammar.js +21 -0
- package/dist/icons/components/UiInspectionsGrammar.js.map +1 -0
- package/dist/icons/components/UiJpaAttribute.cjs +13 -0
- package/dist/icons/components/UiJpaAttribute.cjs.map +1 -0
- package/dist/icons/components/UiJpaAttribute.d.ts +9 -0
- package/dist/icons/components/UiJpaAttribute.d.ts.map +1 -0
- package/dist/icons/components/UiJpaAttribute.js +13 -0
- package/dist/icons/components/UiJpaAttribute.js.map +1 -0
- package/dist/icons/components/UiJpaId.cjs +15 -0
- package/dist/icons/components/UiJpaId.cjs.map +1 -0
- package/dist/icons/components/UiJpaId.d.ts +9 -0
- package/dist/icons/components/UiJpaId.d.ts.map +1 -0
- package/dist/icons/components/UiJpaId.js +15 -0
- package/dist/icons/components/UiJpaId.js.map +1 -0
- package/dist/icons/components/UiJpaRelationship.cjs +14 -0
- package/dist/icons/components/UiJpaRelationship.cjs.map +1 -0
- package/dist/icons/components/UiJpaRelationship.d.ts +9 -0
- package/dist/icons/components/UiJpaRelationship.d.ts.map +1 -0
- package/dist/icons/components/UiJpaRelationship.js +14 -0
- package/dist/icons/components/UiJpaRelationship.js.map +1 -0
- package/dist/icons/components/UiKillDataSourceProcess.cjs +21 -0
- package/dist/icons/components/UiKillDataSourceProcess.cjs.map +1 -0
- package/dist/icons/components/UiKillDataSourceProcess.d.ts +15 -0
- package/dist/icons/components/UiKillDataSourceProcess.d.ts.map +1 -0
- package/dist/icons/components/UiKillDataSourceProcess.js +21 -0
- package/dist/icons/components/UiKillDataSourceProcess.js.map +1 -0
- package/dist/icons/components/UiKubeConfigMap.cjs +18 -0
- package/dist/icons/components/UiKubeConfigMap.cjs.map +1 -0
- package/dist/icons/components/UiKubeConfigMap.d.ts +9 -0
- package/dist/icons/components/UiKubeConfigMap.d.ts.map +1 -0
- package/dist/icons/components/UiKubeConfigMap.js +18 -0
- package/dist/icons/components/UiKubeConfigMap.js.map +1 -0
- package/dist/icons/components/UiKubeDeployment.cjs +10 -0
- package/dist/icons/components/UiKubeDeployment.cjs.map +1 -0
- package/dist/icons/components/UiKubeDeployment.d.ts +9 -0
- package/dist/icons/components/UiKubeDeployment.d.ts.map +1 -0
- package/dist/icons/components/UiKubeDeployment.js +10 -0
- package/dist/icons/components/UiKubeDeployment.js.map +1 -0
- package/dist/icons/components/UiKubeJob.cjs +25 -0
- package/dist/icons/components/UiKubeJob.cjs.map +1 -0
- package/dist/icons/components/UiKubeJob.d.ts +9 -0
- package/dist/icons/components/UiKubeJob.d.ts.map +1 -0
- package/dist/icons/components/UiKubeJob.js +25 -0
- package/dist/icons/components/UiKubeJob.js.map +1 -0
- package/dist/icons/components/UiKubeNamespace.cjs +15 -0
- package/dist/icons/components/UiKubeNamespace.cjs.map +1 -0
- package/dist/icons/components/UiKubeNamespace.d.ts +9 -0
- package/dist/icons/components/UiKubeNamespace.d.ts.map +1 -0
- package/dist/icons/components/UiKubeNamespace.js +15 -0
- package/dist/icons/components/UiKubeNamespace.js.map +1 -0
- package/dist/icons/components/UiKubePod.cjs +13 -0
- package/dist/icons/components/UiKubePod.cjs.map +1 -0
- package/dist/icons/components/UiKubePod.d.ts +9 -0
- package/dist/icons/components/UiKubePod.d.ts.map +1 -0
- package/dist/icons/components/UiKubePod.js +13 -0
- package/dist/icons/components/UiKubePod.js.map +1 -0
- package/dist/icons/components/UiLangJava.cjs +14 -0
- package/dist/icons/components/UiLangJava.cjs.map +1 -0
- package/dist/icons/components/UiLangJava.d.ts +9 -0
- package/dist/icons/components/UiLangJava.d.ts.map +1 -0
- package/dist/icons/components/UiLangJava.js +14 -0
- package/dist/icons/components/UiLangJava.js.map +1 -0
- package/dist/icons/components/UiLangJavascript.cjs +14 -0
- package/dist/icons/components/UiLangJavascript.cjs.map +1 -0
- package/dist/icons/components/UiLangJavascript.d.ts +9 -0
- package/dist/icons/components/UiLangJavascript.d.ts.map +1 -0
- package/dist/icons/components/UiLangJavascript.js +14 -0
- package/dist/icons/components/UiLangJavascript.js.map +1 -0
- package/dist/icons/components/UiLangPython.cjs +13 -0
- package/dist/icons/components/UiLangPython.cjs.map +1 -0
- package/dist/icons/components/UiLangPython.d.ts +9 -0
- package/dist/icons/components/UiLangPython.d.ts.map +1 -0
- package/dist/icons/components/UiLangPython.js +13 -0
- package/dist/icons/components/UiLangPython.js.map +1 -0
- package/dist/icons/components/UiMaterializedLog.cjs +15 -0
- package/dist/icons/components/UiMaterializedLog.cjs.map +1 -0
- package/dist/icons/components/UiMaterializedLog.d.ts +15 -0
- package/dist/icons/components/UiMaterializedLog.d.ts.map +1 -0
- package/dist/icons/components/UiMaterializedLog.js +15 -0
- package/dist/icons/components/UiMaterializedLog.js.map +1 -0
- package/dist/icons/components/UiMemoryProfile.cjs +15 -0
- package/dist/icons/components/UiMemoryProfile.cjs.map +1 -0
- package/dist/icons/components/UiMemoryProfile.d.ts +9 -0
- package/dist/icons/components/UiMemoryProfile.d.ts.map +1 -0
- package/dist/icons/components/UiMemoryProfile.js +15 -0
- package/dist/icons/components/UiMemoryProfile.js.map +1 -0
- package/dist/icons/components/UiMessageQueue.cjs +13 -0
- package/dist/icons/components/UiMessageQueue.cjs.map +1 -0
- package/dist/icons/components/UiMessageQueue.d.ts +9 -0
- package/dist/icons/components/UiMessageQueue.d.ts.map +1 -0
- package/dist/icons/components/UiMessageQueue.js +13 -0
- package/dist/icons/components/UiMessageQueue.js.map +1 -0
- package/dist/icons/components/UiMessageQueue1.cjs +25 -0
- package/dist/icons/components/UiMessageQueue1.cjs.map +1 -0
- package/dist/icons/components/UiMessageQueue1.d.ts +15 -0
- package/dist/icons/components/UiMessageQueue1.d.ts.map +1 -0
- package/dist/icons/components/UiMessageQueue1.js +25 -0
- package/dist/icons/components/UiMessageQueue1.js.map +1 -0
- package/dist/icons/components/UiMethod1.cjs +27 -0
- package/dist/icons/components/UiMethod1.cjs.map +1 -0
- package/dist/icons/components/UiMethod1.d.ts +15 -0
- package/dist/icons/components/UiMethod1.d.ts.map +1 -0
- package/dist/icons/components/UiMethod1.js +27 -0
- package/dist/icons/components/UiMethod1.js.map +1 -0
- package/dist/icons/components/UiMethod10.cjs +25 -0
- package/dist/icons/components/UiMethod10.cjs.map +1 -0
- package/dist/icons/components/UiMethod10.d.ts +15 -0
- package/dist/icons/components/UiMethod10.d.ts.map +1 -0
- package/dist/icons/components/UiMethod10.js +25 -0
- package/dist/icons/components/UiMethod10.js.map +1 -0
- package/dist/icons/components/UiMethod11.cjs +21 -0
- package/dist/icons/components/UiMethod11.cjs.map +1 -0
- package/dist/icons/components/UiMethod11.d.ts +15 -0
- package/dist/icons/components/UiMethod11.d.ts.map +1 -0
- package/dist/icons/components/UiMethod11.js +21 -0
- package/dist/icons/components/UiMethod11.js.map +1 -0
- package/dist/icons/components/UiMethod2.cjs +25 -0
- package/dist/icons/components/UiMethod2.cjs.map +1 -0
- package/dist/icons/components/UiMethod2.d.ts +15 -0
- package/dist/icons/components/UiMethod2.d.ts.map +1 -0
- package/dist/icons/components/UiMethod2.js +25 -0
- package/dist/icons/components/UiMethod2.js.map +1 -0
- package/dist/icons/components/UiMethod3.cjs +23 -0
- package/dist/icons/components/UiMethod3.cjs.map +1 -0
- package/dist/icons/components/UiMethod3.d.ts +15 -0
- package/dist/icons/components/UiMethod3.d.ts.map +1 -0
- package/dist/icons/components/UiMethod3.js +23 -0
- package/dist/icons/components/UiMethod3.js.map +1 -0
- package/dist/icons/components/UiMethod4.cjs +25 -0
- package/dist/icons/components/UiMethod4.cjs.map +1 -0
- package/dist/icons/components/UiMethod4.d.ts +15 -0
- package/dist/icons/components/UiMethod4.d.ts.map +1 -0
- package/dist/icons/components/UiMethod4.js +25 -0
- package/dist/icons/components/UiMethod4.js.map +1 -0
- package/dist/icons/components/UiMethod5.cjs +25 -0
- package/dist/icons/components/UiMethod5.cjs.map +1 -0
- package/dist/icons/components/UiMethod5.d.ts +15 -0
- package/dist/icons/components/UiMethod5.d.ts.map +1 -0
- package/dist/icons/components/UiMethod5.js +25 -0
- package/dist/icons/components/UiMethod5.js.map +1 -0
- package/dist/icons/components/UiMethod6.cjs +21 -0
- package/dist/icons/components/UiMethod6.cjs.map +1 -0
- package/dist/icons/components/UiMethod6.d.ts +15 -0
- package/dist/icons/components/UiMethod6.d.ts.map +1 -0
- package/dist/icons/components/UiMethod6.js +21 -0
- package/dist/icons/components/UiMethod6.js.map +1 -0
- package/dist/icons/components/UiMethod7.cjs +23 -0
- package/dist/icons/components/UiMethod7.cjs.map +1 -0
- package/dist/icons/components/UiMethod7.d.ts +15 -0
- package/dist/icons/components/UiMethod7.d.ts.map +1 -0
- package/dist/icons/components/UiMethod7.js +23 -0
- package/dist/icons/components/UiMethod7.js.map +1 -0
- package/dist/icons/components/UiMethod8.cjs +23 -0
- package/dist/icons/components/UiMethod8.cjs.map +1 -0
- package/dist/icons/components/UiMethod8.d.ts +15 -0
- package/dist/icons/components/UiMethod8.d.ts.map +1 -0
- package/dist/icons/components/UiMethod8.js +23 -0
- package/dist/icons/components/UiMethod8.js.map +1 -0
- package/dist/icons/components/UiMethod9.cjs +25 -0
- package/dist/icons/components/UiMethod9.cjs.map +1 -0
- package/dist/icons/components/UiMethod9.d.ts +15 -0
- package/dist/icons/components/UiMethod9.d.ts.map +1 -0
- package/dist/icons/components/UiMethod9.js +25 -0
- package/dist/icons/components/UiMethod9.js.map +1 -0
- package/dist/icons/components/UiModels.cjs +25 -0
- package/dist/icons/components/UiModels.cjs.map +1 -0
- package/dist/icons/components/UiModels.d.ts +15 -0
- package/dist/icons/components/UiModels.d.ts.map +1 -0
- package/dist/icons/components/UiModels.js +25 -0
- package/dist/icons/components/UiModels.js.map +1 -0
- package/dist/icons/components/UiModule1.cjs +23 -0
- package/dist/icons/components/UiModule1.cjs.map +1 -0
- package/dist/icons/components/UiModule1.d.ts +15 -0
- package/dist/icons/components/UiModule1.d.ts.map +1 -0
- package/dist/icons/components/UiModule1.js +23 -0
- package/dist/icons/components/UiModule1.js.map +1 -0
- package/dist/icons/components/UiName.cjs +21 -0
- package/dist/icons/components/UiName.cjs.map +1 -0
- package/dist/icons/components/UiName.d.ts +15 -0
- package/dist/icons/components/UiName.d.ts.map +1 -0
- package/dist/icons/components/UiName.js +21 -0
- package/dist/icons/components/UiName.js.map +1 -0
- package/dist/icons/components/UiOpenBlock.cjs +23 -0
- package/dist/icons/components/UiOpenBlock.cjs.map +1 -0
- package/dist/icons/components/UiOpenBlock.d.ts +15 -0
- package/dist/icons/components/UiOpenBlock.d.ts.map +1 -0
- package/dist/icons/components/UiOpenBlock.js +23 -0
- package/dist/icons/components/UiOpenBlock.js.map +1 -0
- package/dist/icons/components/UiOperator1.cjs +21 -0
- package/dist/icons/components/UiOperator1.cjs.map +1 -0
- package/dist/icons/components/UiOperator1.d.ts +15 -0
- package/dist/icons/components/UiOperator1.d.ts.map +1 -0
- package/dist/icons/components/UiOperator1.js +21 -0
- package/dist/icons/components/UiOperator1.js.map +1 -0
- package/dist/icons/components/UiPartition.cjs +23 -0
- package/dist/icons/components/UiPartition.cjs.map +1 -0
- package/dist/icons/components/UiPartition.d.ts +15 -0
- package/dist/icons/components/UiPartition.d.ts.map +1 -0
- package/dist/icons/components/UiPartition.js +23 -0
- package/dist/icons/components/UiPartition.js.map +1 -0
- package/dist/icons/components/UiPending.cjs +21 -0
- package/dist/icons/components/UiPending.cjs.map +1 -0
- package/dist/icons/components/UiPending.d.ts +15 -0
- package/dist/icons/components/UiPending.d.ts.map +1 -0
- package/dist/icons/components/UiPending.js +21 -0
- package/dist/icons/components/UiPending.js.map +1 -0
- package/dist/icons/components/UiPercent.cjs +10 -0
- package/dist/icons/components/UiPercent.cjs.map +1 -0
- package/dist/icons/components/UiPercent.d.ts +9 -0
- package/dist/icons/components/UiPercent.d.ts.map +1 -0
- package/dist/icons/components/UiPercent.js +10 -0
- package/dist/icons/components/UiPercent.js.map +1 -0
- package/dist/icons/components/UiPluginModule.cjs +25 -0
- package/dist/icons/components/UiPluginModule.cjs.map +1 -0
- package/dist/icons/components/UiPluginModule.d.ts +15 -0
- package/dist/icons/components/UiPluginModule.d.ts.map +1 -0
- package/dist/icons/components/UiPluginModule.js +25 -0
- package/dist/icons/components/UiPluginModule.js.map +1 -0
- package/dist/icons/components/UiPluginV2.cjs +25 -0
- package/dist/icons/components/UiPluginV2.cjs.map +1 -0
- package/dist/icons/components/UiPluginV2.d.ts +15 -0
- package/dist/icons/components/UiPluginV2.d.ts.map +1 -0
- package/dist/icons/components/UiPluginV2.js +25 -0
- package/dist/icons/components/UiPluginV2.js.map +1 -0
- package/dist/icons/components/UiPointcut.cjs +21 -0
- package/dist/icons/components/UiPointcut.cjs.map +1 -0
- package/dist/icons/components/UiPointcut.d.ts +15 -0
- package/dist/icons/components/UiPointcut.d.ts.map +1 -0
- package/dist/icons/components/UiPointcut.js +21 -0
- package/dist/icons/components/UiPointcut.js.map +1 -0
- package/dist/icons/components/UiProcedure.cjs +21 -0
- package/dist/icons/components/UiProcedure.cjs.map +1 -0
- package/dist/icons/components/UiProcedure.d.ts +15 -0
- package/dist/icons/components/UiProcedure.d.ts.map +1 -0
- package/dist/icons/components/UiProcedure.js +21 -0
- package/dist/icons/components/UiProcedure.js.map +1 -0
- package/dist/icons/components/UiProfile.cjs +25 -0
- package/dist/icons/components/UiProfile.cjs.map +1 -0
- package/dist/icons/components/UiProfile.d.ts +15 -0
- package/dist/icons/components/UiProfile.d.ts.map +1 -0
- package/dist/icons/components/UiProfile.js +25 -0
- package/dist/icons/components/UiProfile.js.map +1 -0
- package/dist/icons/components/UiProfile1.cjs +21 -0
- package/dist/icons/components/UiProfile1.cjs.map +1 -0
- package/dist/icons/components/UiProfile1.d.ts +15 -0
- package/dist/icons/components/UiProfile1.d.ts.map +1 -0
- package/dist/icons/components/UiProfile1.js +21 -0
- package/dist/icons/components/UiProfile1.js.map +1 -0
- package/dist/icons/components/UiProfile2.cjs +25 -0
- package/dist/icons/components/UiProfile2.cjs.map +1 -0
- package/dist/icons/components/UiProfile2.d.ts +15 -0
- package/dist/icons/components/UiProfile2.d.ts.map +1 -0
- package/dist/icons/components/UiProfile2.js +25 -0
- package/dist/icons/components/UiProfile2.js.map +1 -0
- package/dist/icons/components/UiProfile3.cjs +33 -0
- package/dist/icons/components/UiProfile3.cjs.map +1 -0
- package/dist/icons/components/UiProfile3.d.ts +15 -0
- package/dist/icons/components/UiProfile3.d.ts.map +1 -0
- package/dist/icons/components/UiProfile3.js +33 -0
- package/dist/icons/components/UiProfile3.js.map +1 -0
- package/dist/icons/components/UiProfile4.cjs +25 -0
- package/dist/icons/components/UiProfile4.cjs.map +1 -0
- package/dist/icons/components/UiProfile4.d.ts +15 -0
- package/dist/icons/components/UiProfile4.d.ts.map +1 -0
- package/dist/icons/components/UiProfile4.js +25 -0
- package/dist/icons/components/UiProfile4.js.map +1 -0
- package/dist/icons/components/UiProfiler.cjs +13 -0
- package/dist/icons/components/UiProfiler.cjs.map +1 -0
- package/dist/icons/components/UiProfiler.d.ts +9 -0
- package/dist/icons/components/UiProfiler.d.ts.map +1 -0
- package/dist/icons/components/UiProfiler.js +13 -0
- package/dist/icons/components/UiProfiler.js.map +1 -0
- package/dist/icons/components/UiProfilerBackTrace.cjs +10 -0
- package/dist/icons/components/UiProfilerBackTrace.cjs.map +1 -0
- package/dist/icons/components/UiProfilerBackTrace.d.ts +9 -0
- package/dist/icons/components/UiProfilerBackTrace.d.ts.map +1 -0
- package/dist/icons/components/UiProfilerBackTrace.js +10 -0
- package/dist/icons/components/UiProfilerBackTrace.js.map +1 -0
- package/dist/icons/components/UiProfilerMergeCallees.cjs +10 -0
- package/dist/icons/components/UiProfilerMergeCallees.cjs.map +1 -0
- package/dist/icons/components/UiProfilerMergeCallees.d.ts +9 -0
- package/dist/icons/components/UiProfilerMergeCallees.d.ts.map +1 -0
- package/dist/icons/components/UiProfilerMergeCallees.js +10 -0
- package/dist/icons/components/UiProfilerMergeCallees.js.map +1 -0
- package/dist/icons/components/UiProjectStructure.cjs +23 -0
- package/dist/icons/components/UiProjectStructure.cjs.map +1 -0
- package/dist/icons/components/UiProjectStructure.d.ts +15 -0
- package/dist/icons/components/UiProjectStructure.d.ts.map +1 -0
- package/dist/icons/components/UiProjectStructure.js +23 -0
- package/dist/icons/components/UiProjectStructure.js.map +1 -0
- package/dist/icons/components/UiProjection.cjs +21 -0
- package/dist/icons/components/UiProjection.cjs.map +1 -0
- package/dist/icons/components/UiProjection.d.ts +15 -0
- package/dist/icons/components/UiProjection.d.ts.map +1 -0
- package/dist/icons/components/UiProjection.js +21 -0
- package/dist/icons/components/UiProjection.js.map +1 -0
- package/dist/icons/components/UiReadAccess.cjs +21 -0
- package/dist/icons/components/UiReadAccess.cjs.map +1 -0
- package/dist/icons/components/UiReadAccess.d.ts +15 -0
- package/dist/icons/components/UiReadAccess.d.ts.map +1 -0
- package/dist/icons/components/UiReadAccess.js +21 -0
- package/dist/icons/components/UiReadAccess.js.map +1 -0
- package/dist/icons/components/UiRecord1.cjs +21 -0
- package/dist/icons/components/UiRecord1.cjs.map +1 -0
- package/dist/icons/components/UiRecord1.d.ts +15 -0
- package/dist/icons/components/UiRecord1.d.ts.map +1 -0
- package/dist/icons/components/UiRecord1.js +21 -0
- package/dist/icons/components/UiRecord1.js.map +1 -0
- package/dist/icons/components/UiRegex.cjs +21 -0
- package/dist/icons/components/UiRegex.cjs.map +1 -0
- package/dist/icons/components/UiRegex.d.ts +15 -0
- package/dist/icons/components/UiRegex.d.ts.map +1 -0
- package/dist/icons/components/UiRegex.js +21 -0
- package/dist/icons/components/UiRegex.js.map +1 -0
- package/dist/icons/components/UiRelationship.cjs +23 -0
- package/dist/icons/components/UiRelationship.cjs.map +1 -0
- package/dist/icons/components/UiRelationship.d.ts +15 -0
- package/dist/icons/components/UiRelationship.d.ts.map +1 -0
- package/dist/icons/components/UiRelationship.js +23 -0
- package/dist/icons/components/UiRelationship.js.map +1 -0
- package/dist/icons/components/UiRelay.cjs +15 -0
- package/dist/icons/components/UiRelay.cjs.map +1 -0
- package/dist/icons/components/UiRelay.d.ts +15 -0
- package/dist/icons/components/UiRelay.d.ts.map +1 -0
- package/dist/icons/components/UiRelay.js +15 -0
- package/dist/icons/components/UiRelay.js.map +1 -0
- package/dist/icons/components/UiRole.cjs +25 -0
- package/dist/icons/components/UiRole.cjs.map +1 -0
- package/dist/icons/components/UiRole.d.ts +15 -0
- package/dist/icons/components/UiRole.d.ts.map +1 -0
- package/dist/icons/components/UiRole.js +25 -0
- package/dist/icons/components/UiRole.js.map +1 -0
- package/dist/icons/components/UiRollback.cjs +15 -0
- package/dist/icons/components/UiRollback.cjs.map +1 -0
- package/dist/icons/components/UiRollback.d.ts +15 -0
- package/dist/icons/components/UiRollback.d.ts.map +1 -0
- package/dist/icons/components/UiRollback.js +15 -0
- package/dist/icons/components/UiRollback.js.map +1 -0
- package/dist/icons/components/UiRoutine.cjs +21 -0
- package/dist/icons/components/UiRoutine.cjs.map +1 -0
- package/dist/icons/components/UiRoutine.d.ts +15 -0
- package/dist/icons/components/UiRoutine.d.ts.map +1 -0
- package/dist/icons/components/UiRoutine.js +21 -0
- package/dist/icons/components/UiRoutine.js.map +1 -0
- package/dist/icons/components/UiRun.cjs +15 -0
- package/dist/icons/components/UiRun.cjs.map +1 -0
- package/dist/icons/components/UiRun.d.ts +15 -0
- package/dist/icons/components/UiRun.d.ts.map +1 -0
- package/dist/icons/components/UiRun.js +15 -0
- package/dist/icons/components/UiRun.js.map +1 -0
- package/dist/icons/components/UiRun1.cjs +23 -0
- package/dist/icons/components/UiRun1.cjs.map +1 -0
- package/dist/icons/components/UiRun1.d.ts +15 -0
- package/dist/icons/components/UiRun1.d.ts.map +1 -0
- package/dist/icons/components/UiRun1.js +23 -0
- package/dist/icons/components/UiRun1.js.map +1 -0
- package/dist/icons/components/UiRun10.cjs +27 -0
- package/dist/icons/components/UiRun10.cjs.map +1 -0
- package/dist/icons/components/UiRun10.d.ts +15 -0
- package/dist/icons/components/UiRun10.d.ts.map +1 -0
- package/dist/icons/components/UiRun10.js +27 -0
- package/dist/icons/components/UiRun10.js.map +1 -0
- package/dist/icons/components/UiRun11.cjs +23 -0
- package/dist/icons/components/UiRun11.cjs.map +1 -0
- package/dist/icons/components/UiRun11.d.ts +15 -0
- package/dist/icons/components/UiRun11.d.ts.map +1 -0
- package/dist/icons/components/UiRun11.js +23 -0
- package/dist/icons/components/UiRun11.js.map +1 -0
- package/dist/icons/components/UiRun12.cjs +25 -0
- package/dist/icons/components/UiRun12.cjs.map +1 -0
- package/dist/icons/components/UiRun12.d.ts +15 -0
- package/dist/icons/components/UiRun12.d.ts.map +1 -0
- package/dist/icons/components/UiRun12.js +25 -0
- package/dist/icons/components/UiRun12.js.map +1 -0
- package/dist/icons/components/UiRun13.cjs +15 -0
- package/dist/icons/components/UiRun13.cjs.map +1 -0
- package/dist/icons/components/UiRun13.d.ts +15 -0
- package/dist/icons/components/UiRun13.d.ts.map +1 -0
- package/dist/icons/components/UiRun13.js +15 -0
- package/dist/icons/components/UiRun13.js.map +1 -0
- package/dist/icons/components/UiRun14.cjs +25 -0
- package/dist/icons/components/UiRun14.cjs.map +1 -0
- package/dist/icons/components/UiRun14.d.ts +15 -0
- package/dist/icons/components/UiRun14.d.ts.map +1 -0
- package/dist/icons/components/UiRun14.js +25 -0
- package/dist/icons/components/UiRun14.js.map +1 -0
- package/dist/icons/components/UiRun2.cjs +27 -0
- package/dist/icons/components/UiRun2.cjs.map +1 -0
- package/dist/icons/components/UiRun2.d.ts +15 -0
- package/dist/icons/components/UiRun2.d.ts.map +1 -0
- package/dist/icons/components/UiRun2.js +27 -0
- package/dist/icons/components/UiRun2.js.map +1 -0
- package/dist/icons/components/UiRun3.cjs +23 -0
- package/dist/icons/components/UiRun3.cjs.map +1 -0
- package/dist/icons/components/UiRun3.d.ts +15 -0
- package/dist/icons/components/UiRun3.d.ts.map +1 -0
- package/dist/icons/components/UiRun3.js +23 -0
- package/dist/icons/components/UiRun3.js.map +1 -0
- package/dist/icons/components/UiRun4.cjs +23 -0
- package/dist/icons/components/UiRun4.cjs.map +1 -0
- package/dist/icons/components/UiRun4.d.ts +15 -0
- package/dist/icons/components/UiRun4.d.ts.map +1 -0
- package/dist/icons/components/UiRun4.js +23 -0
- package/dist/icons/components/UiRun4.js.map +1 -0
- package/dist/icons/components/UiRun5.cjs +25 -0
- package/dist/icons/components/UiRun5.cjs.map +1 -0
- package/dist/icons/components/UiRun5.d.ts +15 -0
- package/dist/icons/components/UiRun5.d.ts.map +1 -0
- package/dist/icons/components/UiRun5.js +25 -0
- package/dist/icons/components/UiRun5.js.map +1 -0
- package/dist/icons/components/UiRun6.cjs +34 -0
- package/dist/icons/components/UiRun6.cjs.map +1 -0
- package/dist/icons/components/UiRun6.d.ts +15 -0
- package/dist/icons/components/UiRun6.d.ts.map +1 -0
- package/dist/icons/components/UiRun6.js +34 -0
- package/dist/icons/components/UiRun6.js.map +1 -0
- package/dist/icons/components/UiRun7.cjs +21 -0
- package/dist/icons/components/UiRun7.cjs.map +1 -0
- package/dist/icons/components/UiRun7.d.ts +15 -0
- package/dist/icons/components/UiRun7.d.ts.map +1 -0
- package/dist/icons/components/UiRun7.js +21 -0
- package/dist/icons/components/UiRun7.js.map +1 -0
- package/dist/icons/components/UiRun8.cjs +23 -0
- package/dist/icons/components/UiRun8.cjs.map +1 -0
- package/dist/icons/components/UiRun8.d.ts +15 -0
- package/dist/icons/components/UiRun8.d.ts.map +1 -0
- package/dist/icons/components/UiRun8.js +23 -0
- package/dist/icons/components/UiRun8.js.map +1 -0
- package/dist/icons/components/UiRun9.cjs +29 -0
- package/dist/icons/components/UiRun9.cjs.map +1 -0
- package/dist/icons/components/UiRun9.d.ts +15 -0
- package/dist/icons/components/UiRun9.d.ts.map +1 -0
- package/dist/icons/components/UiRun9.js +29 -0
- package/dist/icons/components/UiRun9.js.map +1 -0
- package/dist/icons/components/UiSecurityRole.cjs +15 -0
- package/dist/icons/components/UiSecurityRole.cjs.map +1 -0
- package/dist/icons/components/UiSecurityRole.d.ts +15 -0
- package/dist/icons/components/UiSecurityRole.d.ts.map +1 -0
- package/dist/icons/components/UiSecurityRole.js +15 -0
- package/dist/icons/components/UiSecurityRole.js.map +1 -0
- package/dist/icons/components/UiSequence.cjs +23 -0
- package/dist/icons/components/UiSequence.cjs.map +1 -0
- package/dist/icons/components/UiSequence.d.ts +15 -0
- package/dist/icons/components/UiSequence.d.ts.map +1 -0
- package/dist/icons/components/UiSequence.js +23 -0
- package/dist/icons/components/UiSequence.js.map +1 -0
- package/dist/icons/components/UiSequence1.cjs +31 -0
- package/dist/icons/components/UiSequence1.cjs.map +1 -0
- package/dist/icons/components/UiSequence1.d.ts +15 -0
- package/dist/icons/components/UiSequence1.d.ts.map +1 -0
- package/dist/icons/components/UiSequence1.js +31 -0
- package/dist/icons/components/UiSequence1.js.map +1 -0
- package/dist/icons/components/UiSequence2.cjs +29 -0
- package/dist/icons/components/UiSequence2.cjs.map +1 -0
- package/dist/icons/components/UiSequence2.d.ts +15 -0
- package/dist/icons/components/UiSequence2.d.ts.map +1 -0
- package/dist/icons/components/UiSequence2.js +29 -0
- package/dist/icons/components/UiSequence2.js.map +1 -0
- package/dist/icons/components/UiSequence3.cjs +23 -0
- package/dist/icons/components/UiSequence3.cjs.map +1 -0
- package/dist/icons/components/UiSequence3.d.ts +15 -0
- package/dist/icons/components/UiSequence3.d.ts.map +1 -0
- package/dist/icons/components/UiSequence3.js +23 -0
- package/dist/icons/components/UiSequence3.js.map +1 -0
- package/dist/icons/components/UiSequence4.cjs +23 -0
- package/dist/icons/components/UiSequence4.cjs.map +1 -0
- package/dist/icons/components/UiSequence4.d.ts +15 -0
- package/dist/icons/components/UiSequence4.d.ts.map +1 -0
- package/dist/icons/components/UiSequence4.js +23 -0
- package/dist/icons/components/UiSequence4.js.map +1 -0
- package/dist/icons/components/UiSetKey.cjs +29 -0
- package/dist/icons/components/UiSetKey.cjs.map +1 -0
- package/dist/icons/components/UiSetKey.d.ts +15 -0
- package/dist/icons/components/UiSetKey.d.ts.map +1 -0
- package/dist/icons/components/UiSetKey.js +29 -0
- package/dist/icons/components/UiSetKey.js.map +1 -0
- package/dist/icons/components/UiShortcutFilter.cjs +25 -0
- package/dist/icons/components/UiShortcutFilter.cjs.map +1 -0
- package/dist/icons/components/UiShortcutFilter.d.ts +15 -0
- package/dist/icons/components/UiShortcutFilter.d.ts.map +1 -0
- package/dist/icons/components/UiShortcutFilter.js +25 -0
- package/dist/icons/components/UiShortcutFilter.js.map +1 -0
- package/dist/icons/components/UiShowCurrentFrame.cjs +23 -0
- package/dist/icons/components/UiShowCurrentFrame.cjs.map +1 -0
- package/dist/icons/components/UiShowCurrentFrame.d.ts +15 -0
- package/dist/icons/components/UiShowCurrentFrame.d.ts.map +1 -0
- package/dist/icons/components/UiShowCurrentFrame.js +23 -0
- package/dist/icons/components/UiShowCurrentFrame.js.map +1 -0
- package/dist/icons/components/UiShowMembers.cjs +27 -0
- package/dist/icons/components/UiShowMembers.cjs.map +1 -0
- package/dist/icons/components/UiShowMembers.d.ts +15 -0
- package/dist/icons/components/UiShowMembers.d.ts.map +1 -0
- package/dist/icons/components/UiShowMembers.js +27 -0
- package/dist/icons/components/UiShowMembers.js.map +1 -0
- package/dist/icons/components/UiShowToImplement.cjs +27 -0
- package/dist/icons/components/UiShowToImplement.cjs.map +1 -0
- package/dist/icons/components/UiShowToImplement.d.ts +15 -0
- package/dist/icons/components/UiShowToImplement.d.ts.map +1 -0
- package/dist/icons/components/UiShowToImplement.js +27 -0
- package/dist/icons/components/UiShowToImplement.js.map +1 -0
- package/dist/icons/components/UiSortAlphabetically.cjs +23 -0
- package/dist/icons/components/UiSortAlphabetically.cjs.map +1 -0
- package/dist/icons/components/UiSortAlphabetically.d.ts +15 -0
- package/dist/icons/components/UiSortAlphabetically.d.ts.map +1 -0
- package/dist/icons/components/UiSortAlphabetically.js +23 -0
- package/dist/icons/components/UiSortAlphabetically.js.map +1 -0
- package/dist/icons/components/UiSortByType.cjs +23 -0
- package/dist/icons/components/UiSortByType.cjs.map +1 -0
- package/dist/icons/components/UiSortByType.d.ts +15 -0
- package/dist/icons/components/UiSortByType.d.ts.map +1 -0
- package/dist/icons/components/UiSortByType.js +23 -0
- package/dist/icons/components/UiSortByType.js.map +1 -0
- package/dist/icons/components/UiSortByUsage.cjs +21 -0
- package/dist/icons/components/UiSortByUsage.cjs.map +1 -0
- package/dist/icons/components/UiSortByUsage.d.ts +15 -0
- package/dist/icons/components/UiSortByUsage.d.ts.map +1 -0
- package/dist/icons/components/UiSortByUsage.js +21 -0
- package/dist/icons/components/UiSortByUsage.js.map +1 -0
- package/dist/icons/components/UiSortByVisibility.cjs +23 -0
- package/dist/icons/components/UiSortByVisibility.cjs.map +1 -0
- package/dist/icons/components/UiSortByVisibility.d.ts +15 -0
- package/dist/icons/components/UiSortByVisibility.d.ts.map +1 -0
- package/dist/icons/components/UiSortByVisibility.js +23 -0
- package/dist/icons/components/UiSortByVisibility.js.map +1 -0
- package/dist/icons/components/UiSpringBoot.cjs +29 -0
- package/dist/icons/components/UiSpringBoot.cjs.map +1 -0
- package/dist/icons/components/UiSpringBoot.d.ts +15 -0
- package/dist/icons/components/UiSpringBoot.d.ts.map +1 -0
- package/dist/icons/components/UiSpringBoot.js +29 -0
- package/dist/icons/components/UiSpringBoot.js.map +1 -0
- package/dist/icons/components/UiSqlColumn.cjs +1 -1
- package/dist/icons/components/UiSqlColumn.cjs.map +1 -1
- package/dist/icons/components/UiSqlColumn.js +1 -1
- package/dist/icons/components/UiSqlColumn.js.map +1 -1
- package/dist/icons/components/UiSqlConstraint.cjs +7 -2
- package/dist/icons/components/UiSqlConstraint.cjs.map +1 -1
- package/dist/icons/components/UiSqlConstraint.js +8 -3
- package/dist/icons/components/UiSqlConstraint.js.map +1 -1
- package/dist/icons/components/UiSqlDatabase.cjs +3 -4
- package/dist/icons/components/UiSqlDatabase.cjs.map +1 -1
- package/dist/icons/components/UiSqlDatabase.js +3 -4
- package/dist/icons/components/UiSqlDatabase.js.map +1 -1
- package/dist/icons/components/UiSqlForeignKey.cjs +4 -3
- package/dist/icons/components/UiSqlForeignKey.cjs.map +1 -1
- package/dist/icons/components/UiSqlForeignKey.js +4 -3
- package/dist/icons/components/UiSqlForeignKey.js.map +1 -1
- package/dist/icons/components/UiSqlFunction.cjs +3 -3
- package/dist/icons/components/UiSqlFunction.cjs.map +1 -1
- package/dist/icons/components/UiSqlFunction.js +3 -3
- package/dist/icons/components/UiSqlFunction.js.map +1 -1
- package/dist/icons/components/UiSqlIndex.cjs +3 -3
- package/dist/icons/components/UiSqlIndex.cjs.map +1 -1
- package/dist/icons/components/UiSqlIndex.js +3 -3
- package/dist/icons/components/UiSqlIndex.js.map +1 -1
- package/dist/icons/components/UiSqlPrimaryKey.cjs +3 -2
- package/dist/icons/components/UiSqlPrimaryKey.cjs.map +1 -1
- package/dist/icons/components/UiSqlPrimaryKey.js +3 -2
- package/dist/icons/components/UiSqlPrimaryKey.js.map +1 -1
- package/dist/icons/components/UiSqlQuery.cjs +10 -2
- package/dist/icons/components/UiSqlQuery.cjs.map +1 -1
- package/dist/icons/components/UiSqlQuery.js +11 -3
- package/dist/icons/components/UiSqlQuery.js.map +1 -1
- package/dist/icons/components/UiSqlSchema.cjs +6 -3
- package/dist/icons/components/UiSqlSchema.cjs.map +1 -1
- package/dist/icons/components/UiSqlSchema.js +6 -3
- package/dist/icons/components/UiSqlSchema.js.map +1 -1
- package/dist/icons/components/UiSqlSequence.cjs +4 -4
- package/dist/icons/components/UiSqlSequence.cjs.map +1 -1
- package/dist/icons/components/UiSqlSequence.js +4 -4
- package/dist/icons/components/UiSqlSequence.js.map +1 -1
- package/dist/icons/components/UiSqlStoredProc.cjs +3 -3
- package/dist/icons/components/UiSqlStoredProc.cjs.map +1 -1
- package/dist/icons/components/UiSqlStoredProc.js +3 -3
- package/dist/icons/components/UiSqlStoredProc.js.map +1 -1
- package/dist/icons/components/UiSqlTable.cjs +7 -2
- package/dist/icons/components/UiSqlTable.cjs.map +1 -1
- package/dist/icons/components/UiSqlTable.js +7 -2
- package/dist/icons/components/UiSqlTable.js.map +1 -1
- package/dist/icons/components/UiSqlTrigger.cjs +6 -2
- package/dist/icons/components/UiSqlTrigger.cjs.map +1 -1
- package/dist/icons/components/UiSqlTrigger.js +7 -3
- package/dist/icons/components/UiSqlTrigger.js.map +1 -1
- package/dist/icons/components/UiSqlView.cjs +4 -5
- package/dist/icons/components/UiSqlView.cjs.map +1 -1
- package/dist/icons/components/UiSqlView.js +4 -5
- package/dist/icons/components/UiSqlView.js.map +1 -1
- package/dist/icons/components/UiStackTrace.cjs +15 -0
- package/dist/icons/components/UiStackTrace.cjs.map +1 -0
- package/dist/icons/components/UiStackTrace.d.ts +9 -0
- package/dist/icons/components/UiStackTrace.d.ts.map +1 -0
- package/dist/icons/components/UiStackTrace.js +15 -0
- package/dist/icons/components/UiStackTrace.js.map +1 -0
- package/dist/icons/components/UiStartTimer.cjs +27 -0
- package/dist/icons/components/UiStartTimer.cjs.map +1 -0
- package/dist/icons/components/UiStartTimer.d.ts +15 -0
- package/dist/icons/components/UiStartTimer.d.ts.map +1 -0
- package/dist/icons/components/UiStartTimer.js +27 -0
- package/dist/icons/components/UiStartTimer.js.map +1 -0
- package/dist/icons/components/UiStatic.cjs +21 -0
- package/dist/icons/components/UiStatic.cjs.map +1 -0
- package/dist/icons/components/UiStatic.d.ts +15 -0
- package/dist/icons/components/UiStatic.d.ts.map +1 -0
- package/dist/icons/components/UiStatic.js +21 -0
- package/dist/icons/components/UiStatic.js.map +1 -0
- package/dist/icons/components/UiStep.cjs +21 -0
- package/dist/icons/components/UiStep.cjs.map +1 -0
- package/dist/icons/components/UiStep.d.ts +15 -0
- package/dist/icons/components/UiStep.d.ts.map +1 -0
- package/dist/icons/components/UiStep.js +21 -0
- package/dist/icons/components/UiStep.js.map +1 -0
- package/dist/icons/components/UiStep1.cjs +29 -0
- package/dist/icons/components/UiStep1.cjs.map +1 -0
- package/dist/icons/components/UiStep1.d.ts +15 -0
- package/dist/icons/components/UiStep1.d.ts.map +1 -0
- package/dist/icons/components/UiStep1.js +29 -0
- package/dist/icons/components/UiStep1.js.map +1 -0
- package/dist/icons/components/UiStep2.cjs +21 -0
- package/dist/icons/components/UiStep2.cjs.map +1 -0
- package/dist/icons/components/UiStep2.d.ts +15 -0
- package/dist/icons/components/UiStep2.d.ts.map +1 -0
- package/dist/icons/components/UiStep2.js +21 -0
- package/dist/icons/components/UiStep2.js.map +1 -0
- package/dist/icons/components/UiStep3.cjs +21 -0
- package/dist/icons/components/UiStep3.cjs.map +1 -0
- package/dist/icons/components/UiStep3.d.ts +15 -0
- package/dist/icons/components/UiStep3.d.ts.map +1 -0
- package/dist/icons/components/UiStep3.js +21 -0
- package/dist/icons/components/UiStep3.js.map +1 -0
- package/dist/icons/components/UiStep4.cjs +31 -0
- package/dist/icons/components/UiStep4.cjs.map +1 -0
- package/dist/icons/components/UiStep4.d.ts +15 -0
- package/dist/icons/components/UiStep4.d.ts.map +1 -0
- package/dist/icons/components/UiStep4.js +31 -0
- package/dist/icons/components/UiStep4.js.map +1 -0
- package/dist/icons/components/UiStep5.cjs +27 -0
- package/dist/icons/components/UiStep5.cjs.map +1 -0
- package/dist/icons/components/UiStep5.d.ts +15 -0
- package/dist/icons/components/UiStep5.d.ts.map +1 -0
- package/dist/icons/components/UiStep5.js +27 -0
- package/dist/icons/components/UiStep5.js.map +1 -0
- package/dist/icons/components/UiStep6.cjs +23 -0
- package/dist/icons/components/UiStep6.cjs.map +1 -0
- package/dist/icons/components/UiStep6.d.ts +15 -0
- package/dist/icons/components/UiStep6.d.ts.map +1 -0
- package/dist/icons/components/UiStep6.js +23 -0
- package/dist/icons/components/UiStep6.js.map +1 -0
- package/dist/icons/components/UiStep7.cjs +21 -0
- package/dist/icons/components/UiStep7.cjs.map +1 -0
- package/dist/icons/components/UiStep7.d.ts +15 -0
- package/dist/icons/components/UiStep7.d.ts.map +1 -0
- package/dist/icons/components/UiStep7.js +21 -0
- package/dist/icons/components/UiStep7.js.map +1 -0
- package/dist/icons/components/UiStep8.cjs +28 -0
- package/dist/icons/components/UiStep8.cjs.map +1 -0
- package/dist/icons/components/UiStep8.d.ts +15 -0
- package/dist/icons/components/UiStep8.d.ts.map +1 -0
- package/dist/icons/components/UiStep8.js +28 -0
- package/dist/icons/components/UiStep8.js.map +1 -0
- package/dist/icons/components/UiStep9.cjs +21 -0
- package/dist/icons/components/UiStep9.cjs.map +1 -0
- package/dist/icons/components/UiStep9.d.ts +15 -0
- package/dist/icons/components/UiStep9.d.ts.map +1 -0
- package/dist/icons/components/UiStep9.js +21 -0
- package/dist/icons/components/UiStep9.js.map +1 -0
- package/dist/icons/components/UiStream.cjs +23 -0
- package/dist/icons/components/UiStream.cjs.map +1 -0
- package/dist/icons/components/UiStream.d.ts +15 -0
- package/dist/icons/components/UiStream.d.ts.map +1 -0
- package/dist/icons/components/UiStream.js +23 -0
- package/dist/icons/components/UiStream.js.map +1 -0
- package/dist/icons/components/UiStreamKey.cjs +31 -0
- package/dist/icons/components/UiStreamKey.cjs.map +1 -0
- package/dist/icons/components/UiStreamKey.d.ts +15 -0
- package/dist/icons/components/UiStreamKey.d.ts.map +1 -0
- package/dist/icons/components/UiStreamKey.js +31 -0
- package/dist/icons/components/UiStreamKey.js.map +1 -0
- package/dist/icons/components/UiSubmitDB.cjs +15 -0
- package/dist/icons/components/UiSubmitDB.cjs.map +1 -0
- package/dist/icons/components/UiSubmitDB.d.ts +15 -0
- package/dist/icons/components/UiSubmitDB.d.ts.map +1 -0
- package/dist/icons/components/UiSubmitDB.js +15 -0
- package/dist/icons/components/UiSubmitDB.js.map +1 -0
- package/dist/icons/components/UiSubscription.cjs +21 -0
- package/dist/icons/components/UiSubscription.cjs.map +1 -0
- package/dist/icons/components/UiSubscription.d.ts +15 -0
- package/dist/icons/components/UiSubscription.d.ts.map +1 -0
- package/dist/icons/components/UiSubscription.js +21 -0
- package/dist/icons/components/UiSubscription.js.map +1 -0
- package/dist/icons/components/UiSymbol.cjs +25 -0
- package/dist/icons/components/UiSymbol.cjs.map +1 -0
- package/dist/icons/components/UiSymbol.d.ts +15 -0
- package/dist/icons/components/UiSymbol.d.ts.map +1 -0
- package/dist/icons/components/UiSymbol.js +25 -0
- package/dist/icons/components/UiSymbol.js.map +1 -0
- package/dist/icons/components/UiTable1.cjs +23 -0
- package/dist/icons/components/UiTable1.cjs.map +1 -0
- package/dist/icons/components/UiTable1.d.ts +15 -0
- package/dist/icons/components/UiTable1.d.ts.map +1 -0
- package/dist/icons/components/UiTable1.js +23 -0
- package/dist/icons/components/UiTable1.js.map +1 -0
- package/dist/icons/components/UiTable10.cjs +25 -0
- package/dist/icons/components/UiTable10.cjs.map +1 -0
- package/dist/icons/components/UiTable10.d.ts +15 -0
- package/dist/icons/components/UiTable10.d.ts.map +1 -0
- package/dist/icons/components/UiTable10.js +25 -0
- package/dist/icons/components/UiTable10.js.map +1 -0
- package/dist/icons/components/UiTable11.cjs +25 -0
- package/dist/icons/components/UiTable11.cjs.map +1 -0
- package/dist/icons/components/UiTable11.d.ts +15 -0
- package/dist/icons/components/UiTable11.d.ts.map +1 -0
- package/dist/icons/components/UiTable11.js +25 -0
- package/dist/icons/components/UiTable11.js.map +1 -0
- package/dist/icons/components/UiTable12.cjs +23 -0
- package/dist/icons/components/UiTable12.cjs.map +1 -0
- package/dist/icons/components/UiTable12.d.ts +15 -0
- package/dist/icons/components/UiTable12.d.ts.map +1 -0
- package/dist/icons/components/UiTable12.js +23 -0
- package/dist/icons/components/UiTable12.js.map +1 -0
- package/dist/icons/components/UiTable2.cjs +21 -0
- package/dist/icons/components/UiTable2.cjs.map +1 -0
- package/dist/icons/components/UiTable2.d.ts +15 -0
- package/dist/icons/components/UiTable2.d.ts.map +1 -0
- package/dist/icons/components/UiTable2.js +21 -0
- package/dist/icons/components/UiTable2.js.map +1 -0
- package/dist/icons/components/UiTable3.cjs +33 -0
- package/dist/icons/components/UiTable3.cjs.map +1 -0
- package/dist/icons/components/UiTable3.d.ts +15 -0
- package/dist/icons/components/UiTable3.d.ts.map +1 -0
- package/dist/icons/components/UiTable3.js +33 -0
- package/dist/icons/components/UiTable3.js.map +1 -0
- package/dist/icons/components/UiTable4.cjs +55 -0
- package/dist/icons/components/UiTable4.cjs.map +1 -0
- package/dist/icons/components/UiTable4.d.ts +15 -0
- package/dist/icons/components/UiTable4.d.ts.map +1 -0
- package/dist/icons/components/UiTable4.js +55 -0
- package/dist/icons/components/UiTable4.js.map +1 -0
- package/dist/icons/components/UiTable5.cjs +25 -0
- package/dist/icons/components/UiTable5.cjs.map +1 -0
- package/dist/icons/components/UiTable5.d.ts +15 -0
- package/dist/icons/components/UiTable5.d.ts.map +1 -0
- package/dist/icons/components/UiTable5.js +25 -0
- package/dist/icons/components/UiTable5.js.map +1 -0
- package/dist/icons/components/UiTable6.cjs +31 -0
- package/dist/icons/components/UiTable6.cjs.map +1 -0
- package/dist/icons/components/UiTable6.d.ts +15 -0
- package/dist/icons/components/UiTable6.d.ts.map +1 -0
- package/dist/icons/components/UiTable6.js +31 -0
- package/dist/icons/components/UiTable6.js.map +1 -0
- package/dist/icons/components/UiTable7.cjs +24 -0
- package/dist/icons/components/UiTable7.cjs.map +1 -0
- package/dist/icons/components/UiTable7.d.ts +15 -0
- package/dist/icons/components/UiTable7.d.ts.map +1 -0
- package/dist/icons/components/UiTable7.js +24 -0
- package/dist/icons/components/UiTable7.js.map +1 -0
- package/dist/icons/components/UiTable8.cjs +25 -0
- package/dist/icons/components/UiTable8.cjs.map +1 -0
- package/dist/icons/components/UiTable8.d.ts +15 -0
- package/dist/icons/components/UiTable8.d.ts.map +1 -0
- package/dist/icons/components/UiTable8.js +25 -0
- package/dist/icons/components/UiTable8.js.map +1 -0
- package/dist/icons/components/UiTable9.cjs +25 -0
- package/dist/icons/components/UiTable9.cjs.map +1 -0
- package/dist/icons/components/UiTable9.d.ts +15 -0
- package/dist/icons/components/UiTable9.d.ts.map +1 -0
- package/dist/icons/components/UiTable9.js +25 -0
- package/dist/icons/components/UiTable9.js.map +1 -0
- package/dist/icons/components/UiTemplate.cjs +21 -0
- package/dist/icons/components/UiTemplate.cjs.map +1 -0
- package/dist/icons/components/UiTemplate.d.ts +15 -0
- package/dist/icons/components/UiTemplate.d.ts.map +1 -0
- package/dist/icons/components/UiTemplate.js +21 -0
- package/dist/icons/components/UiTemplate.js.map +1 -0
- package/dist/icons/components/UiTest1.cjs +24 -0
- package/dist/icons/components/UiTest1.cjs.map +1 -0
- package/dist/icons/components/UiTest1.d.ts +15 -0
- package/dist/icons/components/UiTest1.d.ts.map +1 -0
- package/dist/icons/components/UiTest1.js +24 -0
- package/dist/icons/components/UiTest1.js.map +1 -0
- package/dist/icons/components/UiTest2.cjs +21 -0
- package/dist/icons/components/UiTest2.cjs.map +1 -0
- package/dist/icons/components/UiTest2.d.ts +15 -0
- package/dist/icons/components/UiTest2.d.ts.map +1 -0
- package/dist/icons/components/UiTest2.js +21 -0
- package/dist/icons/components/UiTest2.js.map +1 -0
- package/dist/icons/components/UiTest3.cjs +21 -0
- package/dist/icons/components/UiTest3.cjs.map +1 -0
- package/dist/icons/components/UiTest3.d.ts +15 -0
- package/dist/icons/components/UiTest3.d.ts.map +1 -0
- package/dist/icons/components/UiTest3.js +21 -0
- package/dist/icons/components/UiTest3.js.map +1 -0
- package/dist/icons/components/UiTest4.cjs +15 -0
- package/dist/icons/components/UiTest4.cjs.map +1 -0
- package/dist/icons/components/UiTest4.d.ts +15 -0
- package/dist/icons/components/UiTest4.d.ts.map +1 -0
- package/dist/icons/components/UiTest4.js +15 -0
- package/dist/icons/components/UiTest4.js.map +1 -0
- package/dist/icons/components/UiTest5.cjs +25 -0
- package/dist/icons/components/UiTest5.cjs.map +1 -0
- package/dist/icons/components/UiTest5.d.ts +15 -0
- package/dist/icons/components/UiTest5.d.ts.map +1 -0
- package/dist/icons/components/UiTest5.js +25 -0
- package/dist/icons/components/UiTest5.js.map +1 -0
- package/dist/icons/components/UiTest6.cjs +30 -0
- package/dist/icons/components/UiTest6.cjs.map +1 -0
- package/dist/icons/components/UiTest6.d.ts +15 -0
- package/dist/icons/components/UiTest6.d.ts.map +1 -0
- package/dist/icons/components/UiTest6.js +30 -0
- package/dist/icons/components/UiTest6.js.map +1 -0
- package/dist/icons/components/UiTest7.cjs +25 -0
- package/dist/icons/components/UiTest7.cjs.map +1 -0
- package/dist/icons/components/UiTest7.d.ts +15 -0
- package/dist/icons/components/UiTest7.d.ts.map +1 -0
- package/dist/icons/components/UiTest7.js +25 -0
- package/dist/icons/components/UiTest7.js.map +1 -0
- package/dist/icons/components/UiText.cjs +21 -0
- package/dist/icons/components/UiText.cjs.map +1 -0
- package/dist/icons/components/UiText.d.ts +15 -0
- package/dist/icons/components/UiText.d.ts.map +1 -0
- package/dist/icons/components/UiText.js +21 -0
- package/dist/icons/components/UiText.js.map +1 -0
- package/dist/icons/components/UiTransactionStart.cjs +31 -0
- package/dist/icons/components/UiTransactionStart.cjs.map +1 -0
- package/dist/icons/components/UiTransactionStart.d.ts +15 -0
- package/dist/icons/components/UiTransactionStart.d.ts.map +1 -0
- package/dist/icons/components/UiTransactionStart.js +31 -0
- package/dist/icons/components/UiTransactionStart.js.map +1 -0
- package/dist/icons/components/UiTypeScriptIndexSignature.cjs +29 -0
- package/dist/icons/components/UiTypeScriptIndexSignature.cjs.map +1 -0
- package/dist/icons/components/UiTypeScriptIndexSignature.d.ts +15 -0
- package/dist/icons/components/UiTypeScriptIndexSignature.d.ts.map +1 -0
- package/dist/icons/components/UiTypeScriptIndexSignature.js +29 -0
- package/dist/icons/components/UiTypeScriptIndexSignature.js.map +1 -0
- package/dist/icons/components/UiUndeploy.cjs +29 -0
- package/dist/icons/components/UiUndeploy.cjs.map +1 -0
- package/dist/icons/components/UiUndeploy.d.ts +15 -0
- package/dist/icons/components/UiUndeploy.d.ts.map +1 -0
- package/dist/icons/components/UiUndeploy.js +29 -0
- package/dist/icons/components/UiUndeploy.js.map +1 -0
- package/dist/icons/components/UiVariable1.cjs +29 -0
- package/dist/icons/components/UiVariable1.cjs.map +1 -0
- package/dist/icons/components/UiVariable1.d.ts +15 -0
- package/dist/icons/components/UiVariable1.d.ts.map +1 -0
- package/dist/icons/components/UiVariable1.js +29 -0
- package/dist/icons/components/UiVariable1.js.map +1 -0
- package/dist/icons/components/UiVariable2.cjs +21 -0
- package/dist/icons/components/UiVariable2.cjs.map +1 -0
- package/dist/icons/components/UiVariable2.d.ts +15 -0
- package/dist/icons/components/UiVariable2.d.ts.map +1 -0
- package/dist/icons/components/UiVariable2.js +21 -0
- package/dist/icons/components/UiVariable2.js.map +1 -0
- package/dist/icons/components/UiVariable3.cjs +25 -0
- package/dist/icons/components/UiVariable3.cjs.map +1 -0
- package/dist/icons/components/UiVariable3.d.ts +15 -0
- package/dist/icons/components/UiVariable3.d.ts.map +1 -0
- package/dist/icons/components/UiVariable3.js +25 -0
- package/dist/icons/components/UiVariable3.js.map +1 -0
- package/dist/icons/components/UiVariable4.cjs +31 -0
- package/dist/icons/components/UiVariable4.cjs.map +1 -0
- package/dist/icons/components/UiVariable4.d.ts +15 -0
- package/dist/icons/components/UiVariable4.d.ts.map +1 -0
- package/dist/icons/components/UiVariable4.js +31 -0
- package/dist/icons/components/UiVariable4.js.map +1 -0
- package/dist/icons/components/UiVariable5.cjs +21 -0
- package/dist/icons/components/UiVariable5.cjs.map +1 -0
- package/dist/icons/components/UiVariable5.d.ts +15 -0
- package/dist/icons/components/UiVariable5.d.ts.map +1 -0
- package/dist/icons/components/UiVariable5.js +21 -0
- package/dist/icons/components/UiVariable5.js.map +1 -0
- package/dist/icons/components/UiVariable6.cjs +21 -0
- package/dist/icons/components/UiVariable6.cjs.map +1 -0
- package/dist/icons/components/UiVariable6.d.ts +15 -0
- package/dist/icons/components/UiVariable6.d.ts.map +1 -0
- package/dist/icons/components/UiVariable6.js +21 -0
- package/dist/icons/components/UiVariable6.js.map +1 -0
- package/dist/icons/components/UiVirtualForeignKey.cjs +25 -0
- package/dist/icons/components/UiVirtualForeignKey.cjs.map +1 -0
- package/dist/icons/components/UiVirtualForeignKey.d.ts +15 -0
- package/dist/icons/components/UiVirtualForeignKey.d.ts.map +1 -0
- package/dist/icons/components/UiVirtualForeignKey.js +25 -0
- package/dist/icons/components/UiVirtualForeignKey.js.map +1 -0
- package/dist/icons/components/UiWebArtifact.cjs +47 -0
- package/dist/icons/components/UiWebArtifact.cjs.map +1 -0
- package/dist/icons/components/UiWebArtifact.d.ts +15 -0
- package/dist/icons/components/UiWebArtifact.d.ts.map +1 -0
- package/dist/icons/components/UiWebArtifact.js +47 -0
- package/dist/icons/components/UiWebArtifact.js.map +1 -0
- package/dist/icons/components/UiWebServiceClient.cjs +27 -0
- package/dist/icons/components/UiWebServiceClient.cjs.map +1 -0
- package/dist/icons/components/UiWebServiceClient.d.ts +15 -0
- package/dist/icons/components/UiWebServiceClient.d.ts.map +1 -0
- package/dist/icons/components/UiWebServiceClient.js +27 -0
- package/dist/icons/components/UiWebServiceClient.js.map +1 -0
- package/dist/icons/components/UiWriteAccess.cjs +21 -0
- package/dist/icons/components/UiWriteAccess.cjs.map +1 -0
- package/dist/icons/components/UiWriteAccess.d.ts +15 -0
- package/dist/icons/components/UiWriteAccess.d.ts.map +1 -0
- package/dist/icons/components/UiWriteAccess.js +21 -0
- package/dist/icons/components/UiWriteAccess.js.map +1 -0
- package/dist/icons/components/UiXpath.cjs +21 -0
- package/dist/icons/components/UiXpath.cjs.map +1 -0
- package/dist/icons/components/UiXpath.d.ts +15 -0
- package/dist/icons/components/UiXpath.d.ts.map +1 -0
- package/dist/icons/components/UiXpath.js +21 -0
- package/dist/icons/components/UiXpath.js.map +1 -0
- package/dist/icons/components/UiXpath1.cjs +21 -0
- package/dist/icons/components/UiXpath1.cjs.map +1 -0
- package/dist/icons/components/UiXpath1.d.ts +15 -0
- package/dist/icons/components/UiXpath1.d.ts.map +1 -0
- package/dist/icons/components/UiXpath1.js +21 -0
- package/dist/icons/components/UiXpath1.js.map +1 -0
- package/dist/icons/index.d.ts +447 -0
- package/dist/icons/index.d.ts.map +1 -1
- package/dist/icons/programmingCatalog.cjs +418 -0
- package/dist/icons/programmingCatalog.cjs.map +1 -0
- package/dist/icons/programmingCatalog.d.ts +16 -0
- package/dist/icons/programmingCatalog.d.ts.map +1 -0
- package/dist/icons/programmingCatalog.js +418 -0
- package/dist/icons/programmingCatalog.js.map +1 -0
- package/dist/icons/registry.cjs +479 -1
- package/dist/icons/registry.cjs.map +1 -1
- package/dist/icons/registry.d.ts.map +1 -1
- package/dist/icons/registry.js +479 -1
- package/dist/icons/registry.js.map +1 -1
- package/dist/icons.cjs +686 -0
- package/dist/icons.cjs.map +1 -1
- package/dist/icons.js +687 -1
- package/dist/icons.js.map +1 -1
- package/dist/index.cjs +752 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +749 -4
- package/dist/index.js.map +1 -1
- package/dist/jotai.d.ts +1 -1
- package/dist/jotai.d.ts.map +1 -1
- package/dist/layout/AppShell.cjs +6 -0
- package/dist/layout/AppShell.cjs.map +1 -1
- package/dist/layout/AppShell.d.ts.map +1 -1
- package/dist/layout/AppShell.js +6 -0
- package/dist/layout/AppShell.js.map +1 -1
- package/dist/layout/Workspace.model.cjs +5 -0
- package/dist/layout/Workspace.model.cjs.map +1 -1
- package/dist/layout/Workspace.model.d.ts +2 -0
- package/dist/layout/Workspace.model.d.ts.map +1 -1
- package/dist/layout/Workspace.model.js +5 -0
- package/dist/layout/Workspace.model.js.map +1 -1
- package/dist/layout/Workspace.regions.cjs +2 -2
- package/dist/layout/Workspace.regions.cjs.map +1 -1
- package/dist/layout/Workspace.regions.d.ts.map +1 -1
- package/dist/layout/Workspace.regions.js +2 -2
- package/dist/layout/Workspace.regions.js.map +1 -1
- package/dist/lib/duration.cjs +67 -0
- package/dist/lib/duration.cjs.map +1 -0
- package/dist/lib/duration.d.ts +15 -0
- package/dist/lib/duration.d.ts.map +1 -0
- package/dist/lib/duration.js +67 -0
- package/dist/lib/duration.js.map +1 -0
- package/dist/lib/runtime-profile-model.cjs +1 -1
- package/dist/lib/runtime-profile-model.cjs.map +1 -1
- package/dist/lib/runtime-profile-model.d.ts.map +1 -1
- package/dist/lib/runtime-profile-model.js +1 -1
- package/dist/lib/runtime-profile-model.js.map +1 -1
- package/dist/lib/shell-command.cjs +17 -0
- package/dist/lib/shell-command.cjs.map +1 -0
- package/dist/lib/shell-command.d.ts +7 -0
- package/dist/lib/shell-command.d.ts.map +1 -0
- package/dist/lib/shell-command.js +17 -0
- package/dist/lib/shell-command.js.map +1 -0
- package/dist/lib/string.cjs +29 -4
- package/dist/lib/string.cjs.map +1 -1
- package/dist/lib/string.d.ts +3 -1
- package/dist/lib/string.d.ts.map +1 -1
- package/dist/lib/string.js +29 -4
- package/dist/lib/string.js.map +1 -1
- package/dist/monaco/MonacoEditor.cjs +7 -1
- package/dist/monaco/MonacoEditor.cjs.map +1 -1
- package/dist/monaco/MonacoEditor.d.ts.map +1 -1
- package/dist/monaco/MonacoEditor.js +7 -1
- package/dist/monaco/MonacoEditor.js.map +1 -1
- package/dist/overlay/ConfirmDialog.cjs +70 -0
- package/dist/overlay/ConfirmDialog.cjs.map +1 -0
- package/dist/overlay/ConfirmDialog.d.ts +40 -0
- package/dist/overlay/ConfirmDialog.d.ts.map +1 -0
- package/dist/overlay/ConfirmDialog.js +70 -0
- package/dist/overlay/ConfirmDialog.js.map +1 -0
- package/dist/overlay/Modal.cjs +2 -1
- package/dist/overlay/Modal.cjs.map +1 -1
- package/dist/overlay/Modal.d.ts.map +1 -1
- package/dist/overlay/Modal.js +2 -1
- package/dist/overlay/Modal.js.map +1 -1
- package/dist/overlay/confirmMemory.cjs +50 -0
- package/dist/overlay/confirmMemory.cjs.map +1 -0
- package/dist/overlay/confirmMemory.d.ts +8 -0
- package/dist/overlay/confirmMemory.d.ts.map +1 -0
- package/dist/overlay/confirmMemory.js +50 -0
- package/dist/overlay/confirmMemory.js.map +1 -0
- package/dist/overlay/useConfirm.cjs +45 -0
- package/dist/overlay/useConfirm.cjs.map +1 -0
- package/dist/overlay/useConfirm.d.ts +19 -0
- package/dist/overlay/useConfirm.d.ts.map +1 -0
- package/dist/overlay/useConfirm.js +45 -0
- package/dist/overlay/useConfirm.js.map +1 -0
- package/dist/profiles/cel/celEditor.cjs +44 -134
- package/dist/profiles/cel/celEditor.cjs.map +1 -1
- package/dist/profiles/cel/celEditor.d.ts +4 -3
- package/dist/profiles/cel/celEditor.d.ts.map +1 -1
- package/dist/profiles/cel/celEditor.js +45 -135
- package/dist/profiles/cel/celEditor.js.map +1 -1
- package/dist/profiles/cel/celEditorResults.cjs +133 -0
- package/dist/profiles/cel/celEditorResults.cjs.map +1 -0
- package/dist/profiles/cel/celEditorResults.d.ts +37 -0
- package/dist/profiles/cel/celEditorResults.d.ts.map +1 -0
- package/dist/profiles/cel/celEditorResults.js +133 -0
- package/dist/profiles/cel/celEditorResults.js.map +1 -0
- package/dist/profiles/cel/celExamples.cjs +134 -0
- package/dist/profiles/cel/celExamples.cjs.map +1 -0
- package/dist/profiles/cel/celExamples.d.ts +30 -0
- package/dist/profiles/cel/celExamples.d.ts.map +1 -0
- package/dist/profiles/cel/celExamples.js +134 -0
- package/dist/profiles/cel/celExamples.js.map +1 -0
- package/dist/profiles/cel/celExpression.cjs +16 -63
- package/dist/profiles/cel/celExpression.cjs.map +1 -1
- package/dist/profiles/cel/celExpression.d.ts +36 -21
- package/dist/profiles/cel/celExpression.d.ts.map +1 -1
- package/dist/profiles/cel/celExpression.js +16 -63
- package/dist/profiles/cel/celExpression.js.map +1 -1
- package/dist/profiles/cel/celPath.cjs +2 -1
- package/dist/profiles/cel/celPath.cjs.map +1 -1
- package/dist/profiles/cel/celPath.d.ts +3 -0
- package/dist/profiles/cel/celPath.d.ts.map +1 -1
- package/dist/profiles/cel/celPath.js +2 -1
- package/dist/profiles/cel/celPath.js.map +1 -1
- package/dist/profiles/cel/index.d.ts +1 -0
- package/dist/profiles/cel/index.d.ts.map +1 -1
- package/dist/profiles/connections/catalogTree.cjs +4 -4
- package/dist/profiles/connections/catalogTree.cjs.map +1 -1
- package/dist/profiles/connections/catalogTree.js +4 -4
- package/dist/profiles/connections/catalogTree.js.map +1 -1
- package/dist/profiles/editor/profileEditor.cjs +106 -79
- package/dist/profiles/editor/profileEditor.cjs.map +1 -1
- package/dist/profiles/editor/profileEditor.d.ts +2 -2
- package/dist/profiles/editor/profileEditor.d.ts.map +1 -1
- package/dist/profiles/editor/profileEditor.js +110 -83
- package/dist/profiles/editor/profileEditor.js.map +1 -1
- package/dist/profiles/editor/profileEditorModel.cjs +3 -2
- package/dist/profiles/editor/profileEditorModel.cjs.map +1 -1
- package/dist/profiles/editor/profileEditorModel.d.ts.map +1 -1
- package/dist/profiles/editor/profileEditorModel.js +4 -3
- package/dist/profiles/editor/profileEditorModel.js.map +1 -1
- package/dist/profiles/editor/profileEditorRail.cjs +85 -28
- package/dist/profiles/editor/profileEditorRail.cjs.map +1 -1
- package/dist/profiles/editor/profileEditorRail.d.ts +5 -2
- package/dist/profiles/editor/profileEditorRail.d.ts.map +1 -1
- package/dist/profiles/editor/profileEditorRail.js +85 -28
- package/dist/profiles/editor/profileEditorRail.js.map +1 -1
- package/dist/profiles/editor/profileParameterEditor.cjs +228 -0
- package/dist/profiles/editor/profileParameterEditor.cjs.map +1 -0
- package/dist/profiles/editor/profileParameterEditor.d.ts +12 -0
- package/dist/profiles/editor/profileParameterEditor.d.ts.map +1 -0
- package/dist/profiles/editor/profileParameterEditor.js +228 -0
- package/dist/profiles/editor/profileParameterEditor.js.map +1 -0
- package/dist/profiles/editor/profileYaml.cjs +1 -1
- package/dist/profiles/editor/profileYaml.cjs.map +1 -1
- package/dist/profiles/editor/profileYaml.js +2 -2
- package/dist/profiles/editor/profileYaml.js.map +1 -1
- package/dist/profiles/editor/testSchema.d.ts.map +1 -1
- package/dist/profiles/fields/profileFieldControls.cjs +26 -13
- package/dist/profiles/fields/profileFieldControls.cjs.map +1 -1
- package/dist/profiles/fields/profileFieldControls.d.ts +3 -6
- package/dist/profiles/fields/profileFieldControls.d.ts.map +1 -1
- package/dist/profiles/fields/profileFieldControls.js +26 -13
- package/dist/profiles/fields/profileFieldControls.js.map +1 -1
- package/dist/profiles/fields/profileFieldEditor.cjs +0 -1
- package/dist/profiles/fields/profileFieldEditor.cjs.map +1 -1
- package/dist/profiles/fields/profileFieldEditor.d.ts.map +1 -1
- package/dist/profiles/fields/profileFieldEditor.js +0 -1
- package/dist/profiles/fields/profileFieldEditor.js.map +1 -1
- package/dist/profiles/fields/profileFieldList.cjs +229 -12
- package/dist/profiles/fields/profileFieldList.cjs.map +1 -1
- package/dist/profiles/fields/profileFieldList.d.ts +10 -0
- package/dist/profiles/fields/profileFieldList.d.ts.map +1 -1
- package/dist/profiles/fields/profileFieldList.js +230 -13
- package/dist/profiles/fields/profileFieldList.js.map +1 -1
- package/dist/profiles/processor/processorPipeline.cjs +126 -78
- package/dist/profiles/processor/processorPipeline.cjs.map +1 -1
- package/dist/profiles/processor/processorPipeline.d.ts +6 -1
- package/dist/profiles/processor/processorPipeline.d.ts.map +1 -1
- package/dist/profiles/processor/processorPipeline.js +126 -78
- package/dist/profiles/processor/processorPipeline.js.map +1 -1
- package/dist/profiles.cjs +4 -1
- package/dist/profiles.cjs.map +1 -1
- package/dist/profiles.js +5 -2
- package/dist/profiles.js.map +1 -1
- package/dist/rpc/CommandOutput.cjs +29 -1
- package/dist/rpc/CommandOutput.cjs.map +1 -1
- package/dist/rpc/CommandOutput.d.ts +10 -2
- package/dist/rpc/CommandOutput.d.ts.map +1 -1
- package/dist/rpc/CommandOutput.js +29 -1
- package/dist/rpc/CommandOutput.js.map +1 -1
- package/dist/rpc/EndpointList.cjs.map +1 -1
- package/dist/rpc/EndpointList.d.ts +7 -1
- package/dist/rpc/EndpointList.d.ts.map +1 -1
- package/dist/rpc/EndpointList.js.map +1 -1
- package/dist/rpc/FilterFormFields.cjs +25 -4
- package/dist/rpc/FilterFormFields.cjs.map +1 -1
- package/dist/rpc/FilterFormFields.d.ts.map +1 -1
- package/dist/rpc/FilterFormFields.js +25 -4
- package/dist/rpc/FilterFormFields.js.map +1 -1
- package/dist/rpc/OperationCatalog.cjs +201 -91
- package/dist/rpc/OperationCatalog.cjs.map +1 -1
- package/dist/rpc/OperationCatalog.d.ts +71 -2
- package/dist/rpc/OperationCatalog.d.ts.map +1 -1
- package/dist/rpc/OperationCatalog.js +202 -92
- package/dist/rpc/OperationCatalog.js.map +1 -1
- package/dist/rpc/OperationCatalogFollowStatus.cjs +61 -0
- package/dist/rpc/OperationCatalogFollowStatus.cjs.map +1 -0
- package/dist/rpc/OperationCatalogFollowStatus.d.ts +20 -0
- package/dist/rpc/OperationCatalogFollowStatus.d.ts.map +1 -0
- package/dist/rpc/OperationCatalogFollowStatus.js +61 -0
- package/dist/rpc/OperationCatalogFollowStatus.js.map +1 -0
- package/dist/rpc/OperationPicker.cjs +45 -0
- package/dist/rpc/OperationPicker.cjs.map +1 -0
- package/dist/rpc/OperationPicker.d.ts +11 -0
- package/dist/rpc/OperationPicker.d.ts.map +1 -0
- package/dist/rpc/OperationPicker.js +45 -0
- package/dist/rpc/OperationPicker.js.map +1 -0
- package/dist/rpc/OperationResultView.cjs +16 -2
- package/dist/rpc/OperationResultView.cjs.map +1 -1
- package/dist/rpc/OperationResultView.d.ts +25 -2
- package/dist/rpc/OperationResultView.d.ts.map +1 -1
- package/dist/rpc/OperationResultView.js +16 -2
- package/dist/rpc/OperationResultView.js.map +1 -1
- package/dist/rpc/OperationScheduleDialog.cjs +207 -0
- package/dist/rpc/OperationScheduleDialog.cjs.map +1 -0
- package/dist/rpc/OperationScheduleDialog.d.ts +13 -0
- package/dist/rpc/OperationScheduleDialog.d.ts.map +1 -0
- package/dist/rpc/OperationScheduleDialog.js +207 -0
- package/dist/rpc/OperationScheduleDialog.js.map +1 -0
- package/dist/rpc/OperationSchedules.cjs +216 -0
- package/dist/rpc/OperationSchedules.cjs.map +1 -0
- package/dist/rpc/OperationSchedules.d.ts +3 -0
- package/dist/rpc/OperationSchedules.d.ts.map +1 -0
- package/dist/rpc/OperationSchedules.js +216 -0
- package/dist/rpc/OperationSchedules.js.map +1 -0
- package/dist/rpc/SessionHeader.cjs +149 -0
- package/dist/rpc/SessionHeader.cjs.map +1 -0
- package/dist/rpc/SessionHeader.d.ts +37 -0
- package/dist/rpc/SessionHeader.d.ts.map +1 -0
- package/dist/rpc/SessionHeader.js +149 -0
- package/dist/rpc/SessionHeader.js.map +1 -0
- package/dist/rpc/SessionHeaderControls.cjs +161 -0
- package/dist/rpc/SessionHeaderControls.cjs.map +1 -0
- package/dist/rpc/SessionHeaderControls.d.ts +25 -0
- package/dist/rpc/SessionHeaderControls.d.ts.map +1 -0
- package/dist/rpc/SessionHeaderControls.js +161 -0
- package/dist/rpc/SessionHeaderControls.js.map +1 -0
- package/dist/rpc/SessionsCatalog.cjs +64 -0
- package/dist/rpc/SessionsCatalog.cjs.map +1 -0
- package/dist/rpc/SessionsCatalog.d.ts +37 -0
- package/dist/rpc/SessionsCatalog.d.ts.map +1 -0
- package/dist/rpc/SessionsCatalog.js +64 -0
- package/dist/rpc/SessionsCatalog.js.map +1 -0
- package/dist/rpc/executionPages.cjs +3 -0
- package/dist/rpc/executionPages.cjs.map +1 -1
- package/dist/rpc/executionPages.d.ts +13 -0
- package/dist/rpc/executionPages.d.ts.map +1 -1
- package/dist/rpc/executionPages.js +3 -0
- package/dist/rpc/executionPages.js.map +1 -1
- package/dist/rpc/formMetadata.cjs +56 -5
- package/dist/rpc/formMetadata.cjs.map +1 -1
- package/dist/rpc/formMetadata.d.ts +1 -0
- package/dist/rpc/formMetadata.d.ts.map +1 -1
- package/dist/rpc/formMetadata.js +57 -6
- package/dist/rpc/formMetadata.js.map +1 -1
- package/dist/rpc/operation-cli-command.cjs +43 -0
- package/dist/rpc/operation-cli-command.cjs.map +1 -0
- package/dist/rpc/operation-cli-command.d.ts +4 -0
- package/dist/rpc/operation-cli-command.d.ts.map +1 -0
- package/dist/rpc/operation-cli-command.js +43 -0
- package/dist/rpc/operation-cli-command.js.map +1 -0
- package/dist/rpc/operation-schedule-model.cjs +56 -0
- package/dist/rpc/operation-schedule-model.cjs.map +1 -0
- package/dist/rpc/operation-schedule-model.d.ts +11 -0
- package/dist/rpc/operation-schedule-model.d.ts.map +1 -0
- package/dist/rpc/operation-schedule-model.js +56 -0
- package/dist/rpc/operation-schedule-model.js.map +1 -0
- package/dist/rpc/operation-schedule-types.d.ts +31 -0
- package/dist/rpc/operation-schedule-types.d.ts.map +1 -0
- package/dist/rpc/operationCatalogFilterState.cjs +34 -0
- package/dist/rpc/operationCatalogFilterState.cjs.map +1 -0
- package/dist/rpc/operationCatalogFilterState.d.ts +44 -0
- package/dist/rpc/operationCatalogFilterState.d.ts.map +1 -0
- package/dist/rpc/operationCatalogFilterState.js +34 -0
- package/dist/rpc/operationCatalogFilterState.js.map +1 -0
- package/dist/rpc/operationCatalogFollow.cjs +93 -0
- package/dist/rpc/operationCatalogFollow.cjs.map +1 -0
- package/dist/rpc/operationCatalogFollow.d.ts +85 -0
- package/dist/rpc/operationCatalogFollow.d.ts.map +1 -0
- package/dist/rpc/operationCatalogFollow.js +93 -0
- package/dist/rpc/operationCatalogFollow.js.map +1 -0
- package/dist/rpc/operationCatalogUrl.cjs +19 -4
- package/dist/rpc/operationCatalogUrl.cjs.map +1 -1
- package/dist/rpc/operationCatalogUrl.d.ts +2 -2
- package/dist/rpc/operationCatalogUrl.d.ts.map +1 -1
- package/dist/rpc/operationCatalogUrl.js +19 -4
- package/dist/rpc/operationCatalogUrl.js.map +1 -1
- package/dist/rpc/router.cjs +6 -2
- package/dist/rpc/router.cjs.map +1 -1
- package/dist/rpc/router.d.ts.map +1 -1
- package/dist/rpc/router.js +6 -2
- package/dist/rpc/router.js.map +1 -1
- package/dist/rpc/session-story.fixtures.d.ts +13 -0
- package/dist/rpc/session-story.fixtures.d.ts.map +1 -0
- package/dist/rpc/sessionHeaderModel.cjs +54 -0
- package/dist/rpc/sessionHeaderModel.cjs.map +1 -0
- package/dist/rpc/sessionHeaderModel.d.ts +39 -0
- package/dist/rpc/sessionHeaderModel.d.ts.map +1 -0
- package/dist/rpc/sessionHeaderModel.js +54 -0
- package/dist/rpc/sessionHeaderModel.js.map +1 -0
- package/dist/rpc/sessionTypes.cjs +108 -0
- package/dist/rpc/sessionTypes.cjs.map +1 -0
- package/dist/rpc/sessionTypes.d.ts +99 -0
- package/dist/rpc/sessionTypes.d.ts.map +1 -0
- package/dist/rpc/sessionTypes.js +108 -0
- package/dist/rpc/sessionTypes.js.map +1 -0
- package/dist/rpc/types.cjs.map +1 -1
- package/dist/rpc/types.d.ts +17 -3
- package/dist/rpc/types.d.ts.map +1 -1
- package/dist/rpc/types.js.map +1 -1
- package/dist/rpc/useOperationCatalogFollow.cjs +37 -0
- package/dist/rpc/useOperationCatalogFollow.cjs.map +1 -0
- package/dist/rpc/useOperationCatalogFollow.d.ts +37 -0
- package/dist/rpc/useOperationCatalogFollow.d.ts.map +1 -0
- package/dist/rpc/useOperationCatalogFollow.js +37 -0
- package/dist/rpc/useOperationCatalogFollow.js.map +1 -0
- package/dist/rpc/useOperationPages.cjs +13 -6
- package/dist/rpc/useOperationPages.cjs.map +1 -1
- package/dist/rpc/useOperationPages.d.ts +10 -6
- package/dist/rpc/useOperationPages.d.ts.map +1 -1
- package/dist/rpc/useOperationPages.js +13 -6
- package/dist/rpc/useOperationPages.js.map +1 -1
- package/dist/rpc/useSession.cjs +86 -0
- package/dist/rpc/useSession.cjs.map +1 -0
- package/dist/rpc/useSession.d.ts +37 -0
- package/dist/rpc/useSession.d.ts.map +1 -0
- package/dist/rpc/useSession.js +86 -0
- package/dist/rpc/useSession.js.map +1 -0
- package/dist/rpc.cjs +37 -0
- package/dist/rpc.cjs.map +1 -1
- package/dist/rpc.d.ts +11 -0
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +31 -0
- package/dist/rpc.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utils.cjs +3 -0
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.ts +1 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +3 -0
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PresetCards.d.ts +0 -8
- package/dist/data/ai/SpecRuntimeEditor/PresetCards.d.ts.map +0 -1
- package/dist/data/ai/SpecRuntimeEditor/permission-preset-storage.cjs +0 -35
- package/dist/data/ai/SpecRuntimeEditor/permission-preset-storage.cjs.map +0 -1
- package/dist/data/ai/SpecRuntimeEditor/permission-preset-storage.d.ts +0 -5
- package/dist/data/ai/SpecRuntimeEditor/permission-preset-storage.d.ts.map +0 -1
- package/dist/data/ai/SpecRuntimeEditor/permission-preset-storage.js +0 -35
- package/dist/data/ai/SpecRuntimeEditor/permission-preset-storage.js.map +0 -1
- package/dist/data/ai/SpecRuntimeEditor/presets.cjs +0 -207
- package/dist/data/ai/SpecRuntimeEditor/presets.cjs.map +0 -1
- package/dist/data/ai/SpecRuntimeEditor/presets.d.ts +0 -34
- package/dist/data/ai/SpecRuntimeEditor/presets.d.ts.map +0 -1
- package/dist/data/ai/SpecRuntimeEditor/presets.js +0 -207
- package/dist/data/ai/SpecRuntimeEditor/presets.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterBar.js","sources":["../../src/components/FilterBar.tsx"],"sourcesContent":["import {\n useCallback,\n useContext,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n type ReactNode,\n type Ref,\n type RefObject,\n} from \"react\";\nimport {\n autoUpdate,\n flip,\n FloatingFocusManager,\n FloatingPortal,\n offset,\n shift,\n useClick,\n useDismiss,\n useFloating,\n useInteractions,\n useMergeRefs,\n useRole,\n type Placement,\n} from \"@floating-ui/react\";\nimport { FilterPill } from \"../data/FilterPill\";\nimport { FILTER_INPUT_DEBOUNCE_MS, FilterBarContext } from \"./filter-bar-context\";\nimport {\n comboboxLabelProps,\n lookupFieldWidthClass,\n multiSelectOptionText,\n nextFilterMode,\n sizedIcon,\n summarizeMultiFilter,\n updateMultiFilterValue,\n useDebouncedMultiDraft,\n type FilterBarMultiFilterMode,\n} from \"./filter-bar-field-utils\";\nimport {\n MultiFilterField,\n MultiFilterPanel,\n type FilterBarMultiFilter,\n} from \"./filter-bar-multi\";\nimport {\n clearFilterBarFilter,\n dateRangeFilterProps,\n isFilterBarFilterActive,\n} from \"./filter-bar-utils\";\n\nexport { TriStateMultiSelect, type TriStateMultiSelectProps } from \"./filter-bar-multi\";\nexport type { FilterBarMultiFilter, FilterBarMultiFilterMode };\nimport { Icon, LabelIcon, type LabelIconSpec } from \"../data/Icon\";\nimport { formatDateTimeRelative } from \"../data/cells/timestamp-format\";\nimport { UiChevronDown, UiChevronRight, UiChevronUp, UiClose, UiFilter, UiSearch } from \"../icons\";\nimport { cn } from \"../lib/utils\";\nimport { Modal } from \"../overlay/Modal\";\nimport { useEscapeLayer, useFloatingZIndex } from \"../overlay/modalStack\";\nimport { Button } from \"./button\";\nimport { Combobox, type ComboboxOption } from \"./Combobox\";\nimport { DateTimePicker } from \"./DateTimePicker\";\nimport { MultiSelect, type MultiSelectOption } from \"./MultiSelect\";\nimport { RangeSlider } from \"./RangeSlider\";\nimport { TimeRange, type TimeRangePresetGroup } from \"./TimeRange\";\nimport { TriStateToggle, type TriState, type TriStateLabels } from \"./TriStateToggle\";\nimport { WorkloadPicker } from \"./WorkloadPicker\";\nimport type { WorkloadKind, WorkloadResource } from \"./workload-picker-utils\";\n\nconst FILTER_BAR_GAP_PX = 8;\nconst FILTER_BAR_OVERFLOW_TRIGGER_ESTIMATE_PX = 44;\n\nexport type FilterBarSearchProps = {\n /** Controlled search text. */\n value: string;\n /** Called with the next search text. Debounced when `autoSubmit` is true. */\n onChange: (value: string) => void;\n /** Placeholder shown in the search input. */\n placeholder?: string;\n /** Accessible label for the search input. */\n ariaLabel?: string;\n /** Classes applied to the search input. */\n className?: string;\n};\n\nexport type FilterBarTextFilter = {\n /** Stable filter key used for rendering and overflow measurement. */\n key: string;\n /** Renders a free-text input. */\n kind: \"text\";\n /** Filter label shown on the control. */\n label: string;\n /** Leading glyph shown before the label: a runtime icon name or a node. */\n icon?: LabelIconSpec;\n /** Optional helper text shown in filter popovers. */\n description?: string;\n /** Controlled input value. */\n value: string;\n /** Called with the next input value. */\n onChange: (value: string) => void;\n /** Placeholder shown in the input. */\n placeholder?: string;\n /** Disables this filter. */\n disabled?: boolean;\n /** Classes applied to this filter control. */\n className?: string;\n};\n\nexport type FilterBarLookupOption = {\n /** Option value written to filter state. */\n value: string;\n /** Optional display label; falls back to `value`. */\n label?: string;\n /** Prevents choosing the option. */\n disabled?: boolean;\n /** Optional browser tooltip. */\n title?: string;\n};\n\nexport type FilterBarLookupInputType = \"text\" | \"number\" | \"date\";\n\nexport type FilterBarLookupFilter = {\n key: string;\n /** Renders an input backed by a datalist-style option set. */\n kind: \"lookup\";\n label: string;\n /** Leading glyph shown before the label: a runtime icon name or a node. */\n icon?: LabelIconSpec;\n description?: string;\n /** Controlled selected or typed value. */\n value: string;\n /** Suggestions for the lookup input. */\n options: FilterBarLookupOption[];\n onChange: (value: string) => void;\n placeholder?: string;\n /** Native input type for the lookup field. */\n inputType?: FilterBarLookupInputType;\n disabled?: boolean;\n className?: string;\n};\n\nexport type FilterBarLookupMultiFilter = {\n key: string;\n /** Renders a multi-value lookup filter. */\n kind: \"lookup-multi\";\n label: string;\n /** Leading glyph shown before the label: a runtime icon name or a node. */\n icon?: LabelIconSpec;\n description?: string;\n /** Controlled selected values. */\n value: string[];\n /** Suggestions for the lookup input. */\n options: FilterBarLookupOption[];\n onChange: (value: string[]) => void;\n placeholder?: string;\n /**\n * Optional async search invoked (debounced) as the user types; the consumer\n * fetches matching options and feeds them back via `options`. When set, the\n * typeahead is server-driven (results replace the list); when absent it\n * filters the static `options` client-side.\n */\n onSearch?: (query: string) => void;\n /** Shows a loading indicator while a search is in flight. */\n loading?: boolean;\n /** True when `options` is a capped head of a larger server-side result set. */\n truncated?: boolean;\n /** Total distinct option count behind a truncated result set. */\n total?: number;\n disabled?: boolean;\n className?: string;\n};\n\nexport type FilterBarNestedMultiGroup = {\n /** Stable group id. */\n groupKey: string;\n /** Optional visible group label. */\n label?: string;\n /** Options in this group. */\n options: MultiSelectOption[];\n};\n\nexport type FilterBarNestedMultiFilter = {\n key: string;\n /** Renders grouped include/exclude chips. */\n kind: \"nested-multi\";\n label: string;\n /** Leading glyph shown before the label: a runtime icon name or a node. */\n icon?: LabelIconSpec;\n description?: string;\n // Same wire shape as FilterBarMultiFilter so consumers can swap kinds\n // without changing their state slot.\n value: Record<string, FilterBarMultiFilterMode>;\n groups: FilterBarNestedMultiGroup[];\n onChange: (value: Record<string, FilterBarMultiFilterMode>) => void;\n disabled?: boolean;\n className?: string;\n};\n\nexport type FilterBarWorkloadFilter = {\n key: string;\n /** Renders the shared Kubernetes workload picker. */\n kind: \"workload\";\n label: string;\n icon?: LabelIconSpec;\n description?: string;\n value: string;\n onChange: (value: string) => void;\n loadWorkloads: (\n kinds: WorkloadKind[],\n namespace?: string,\n ) => Promise<Partial<Record<WorkloadKind, WorkloadResource[]>>>;\n kinds?: WorkloadKind[];\n /**\n * Render the sole loaded workload as plain text rather than a picker. See\n * {@link WorkloadPickerProps.collapseSingleOption}.\n */\n collapseSingleOption?: boolean;\n disabled?: boolean;\n className?: string;\n};\n\nexport type FilterBarSelectMultiFilter = {\n key: string;\n /** Renders a compact multi-select dropdown. */\n kind: \"select-multi\";\n label: string;\n /** Leading glyph shown before the label: a runtime icon name or a node. */\n icon?: LabelIconSpec;\n description?: string;\n /** Controlled selected values. */\n value: string[];\n /** Available dropdown options. */\n options: MultiSelectOption[];\n onChange: (value: string[]) => void;\n placeholder?: string;\n disabled?: boolean;\n className?: string;\n};\n\nexport type FilterBarNumberValue = {\n /** Minimum bound as a string so callers can preserve draft input. */\n min?: string;\n /** Maximum bound as a string so callers can preserve draft input. */\n max?: string;\n};\n\nexport type FilterBarNumberFilter = {\n key: string;\n /** Renders paired min/max numeric controls. */\n kind: \"number\";\n label: string;\n /** Leading glyph shown before the label: a runtime icon name or a node. */\n icon?: LabelIconSpec;\n description?: string;\n /** Controlled min/max value. */\n value: FilterBarNumberValue;\n onChange: (value: FilterBarNumberValue) => void;\n /** Lower bound used by the optional range slider. */\n domainMin?: number;\n /** Upper bound used by the optional range slider. */\n domainMax?: number;\n /** Step size for number inputs and slider movement. */\n step?: number;\n /** Formatter used for slider labels. */\n formatValue?: (value: number) => string;\n minPlaceholder?: string;\n maxPlaceholder?: string;\n disabled?: boolean;\n className?: string;\n};\n\nexport type FilterBarEnumFilter = {\n key: string;\n /** Renders a single-select dropdown. */\n kind: \"enum\";\n label: string;\n /** Leading glyph shown before the label: a runtime icon name or a node. */\n icon?: LabelIconSpec;\n description?: string;\n /** Controlled selected value. */\n value: string;\n /** Available enum options. */\n options: Array<{ value: string; label?: string }>;\n onChange: (value: string) => void;\n placeholder?: string;\n disabled?: boolean;\n className?: string;\n};\n\nexport type FilterBarBooleanFilter = {\n key: string;\n /** Renders a boolean toggle. */\n kind: \"boolean\";\n label: string;\n /** Leading glyph shown before the label: a runtime icon name or a node. */\n icon?: LabelIconSpec;\n description?: string;\n /** Controlled checked state. */\n value: boolean;\n onChange: (value: boolean) => void;\n disabled?: boolean;\n className?: string;\n};\n\nexport type FilterBarTriStateFilter = {\n key: string;\n /** Renders a yes/no/any toggle for a nullable boolean field. */\n kind: \"tristate\";\n label: string;\n /** Leading glyph shown before the label: a runtime icon name or a node. */\n icon?: LabelIconSpec;\n description?: string;\n /** Controlled state; undefined means the filter is off. */\n value: TriState;\n onChange: (value: TriState) => void;\n /** Per-state wording, e.g. { on: \"Deductible\", off: \"Not deductible\" }. */\n labels?: TriStateLabels;\n disabled?: boolean;\n className?: string;\n};\n\nexport type FilterBarFilter =\n | FilterBarTextFilter\n | FilterBarLookupFilter\n | FilterBarLookupMultiFilter\n | FilterBarMultiFilter\n | FilterBarNestedMultiFilter\n | FilterBarWorkloadFilter\n | FilterBarSelectMultiFilter\n | FilterBarNumberFilter\n | FilterBarEnumFilter\n | FilterBarBooleanFilter\n | FilterBarTriStateFilter\n | FilterBarDateRangeFilter;\n\nexport type FilterBarRangePreset = {\n /** Visible preset label. */\n label: string;\n /** Start value applied by the preset. */\n from: string;\n /** End value applied by the preset. */\n to: string;\n};\n\nexport type FilterBarRangeProps = {\n /** Current start value. */\n from?: string;\n /** Current end value. */\n to?: string;\n /** Called when the user applies the range. */\n onApply: (from: string, to: string) => void;\n /** Presets or preset groups shown in the range popup. */\n presets?: Array<FilterBarRangePreset | TimeRangePresetGroup>;\n /** Enables time inputs when using date-time values. */\n timeEnabled?: boolean;\n /** Selected timezone. */\n timeZone?: string;\n /** Available timezone options. */\n timeZones?: string[];\n fromPlaceholder?: string;\n toPlaceholder?: string;\n emptyLabel?: string;\n className?: string;\n disabled?: boolean;\n};\n\n/**\n * A date range that lives among the filters rather than in the bar's trailing\n * range slot.\n *\n * The trailing slot holds one range, which is right when a result has one\n * timestamp and the range is the primary way through it. A result with several\n * — `created_at` and `updated_at`, `@timestamp` and `event.ingested` — has no\n * such primary, and each of the others is a filter like any other.\n */\nexport type FilterBarDateRangeFilter = FilterBarRangeProps & {\n key: string;\n kind: \"date-range\";\n label: string;\n /** Leading glyph shown before the label: a runtime icon name or a node. */\n icon?: LabelIconSpec;\n description?: string;\n};\n\n/** The bar's own row. Shared with the overlay so the two cannot drift apart. */\nconst FILTER_BAR_ROW_CLASS =\n \"flex items-center gap-2 overflow-visible bg-background py-1.5\";\n\nexport type FilterBarProps = {\n /** Optional global search control shown first. */\n search?: FilterBarSearchProps;\n /** Structured filters rendered after search. */\n filters?: FilterBarFilter[];\n /** Date-time range control. */\n timeRange?: FilterBarRangeProps;\n /** Date-only range control. */\n dateRange?: FilterBarRangeProps;\n /** Additional content rendered in the filter row. */\n children?: ReactNode;\n /** Content rendered before search and filters. */\n leading?: ReactNode;\n /** Content rendered at the end of the bar. */\n trailing?: ReactNode;\n /** Classes applied to the root bar. */\n className?: string;\n /**\n * When false, debounced fields forward edits immediately and an Apply button\n * is rendered in the trailing slot. Defaults to true.\n */\n autoSubmit?: boolean;\n /** Called by the Apply button when `autoSubmit` is false. */\n onApply?: () => void;\n /** Label for the Apply button. */\n applyLabel?: string;\n /** Shows a pending state on the Apply button. */\n isPending?: boolean;\n /** `responsive` moves hidden filters into an overflow popover; `wrap` lets them wrap. */\n overflowMode?: \"responsive\" | \"wrap\";\n /**\n * Content that takes the bar's place while it is present — a bulk-action bar\n * that owns the row while rows are selected, say.\n *\n * The bar's own controls stay mounted, hidden rather than unmounted, so a\n * half-typed search survives the takeover and the row keeps whichever of the\n * two is taller. Nothing below it moves.\n */\n overlay?: ReactNode;\n};\n\nexport function FilterBar({\n search,\n filters,\n timeRange,\n dateRange,\n children,\n leading,\n trailing,\n className,\n autoSubmit = true,\n onApply,\n applyLabel = \"Apply\",\n isPending = false,\n overflowMode = \"responsive\",\n overlay,\n}: FilterBarProps) {\n const hasRangeControls = Boolean(timeRange || dateRange);\n const showApply = !autoSubmit && !!onApply;\n const contextValue = useMemo(() => ({ autoSubmit }), [autoSubmit]);\n const allFilters = filters ?? [];\n const responsiveOverflow = overflowMode === \"responsive\" && allFilters.length > 0;\n const mobileFilterOverflow = useMediaQuery(\"(max-width: 767px)\");\n const mobilePageOverflow = useMediaQuery(\"(max-width: 639px)\");\n const filterListRef = useRef<HTMLDivElement>(null);\n const overflowTriggerRef = useRef<HTMLButtonElement>(null);\n const filterNodeRefs = useRef(new Map<string, HTMLDivElement>());\n const filterWidthCache = useRef(new Map<string, number>());\n const filterKeys = useMemo(\n () => allFilters.map((filter) => filter.key).join(\"\\u0000\"),\n [allFilters],\n );\n const [visibleFilterCount, setVisibleFilterCount] = useState(allFilters.length);\n\n // Latest-value refs so measureOverflow can be a stable useCallback. Reading\n // the current values through refs sidesteps the closure-staleness problem\n // without putting array references in the dep list — which is what caused\n // the \"Maximum update depth exceeded\" cascade (allFilters in the deps made\n // measureOverflow change on every render → ResizeObserver effect re-ran →\n // setVisibleFilterCount fired → repeat).\n const allFiltersRef = useRef(allFilters);\n const responsiveOverflowRef = useRef(responsiveOverflow);\n const mobileFilterOverflowRef = useRef(mobileFilterOverflow);\n allFiltersRef.current = allFilters;\n responsiveOverflowRef.current = responsiveOverflow;\n mobileFilterOverflowRef.current = mobileFilterOverflow;\n\n useLayoutEffect(() => {\n setVisibleFilterCount(\n responsiveOverflowRef.current && mobileFilterOverflowRef.current\n ? 0\n : allFiltersRef.current.length,\n );\n }, [filterKeys, mobileFilterOverflow]);\n\n const measureOverflow = useCallback(() => {\n const current = allFiltersRef.current;\n if (!responsiveOverflowRef.current) {\n setVisibleFilterCount(current.length);\n return;\n }\n if (mobileFilterOverflowRef.current) {\n setVisibleFilterCount(0);\n return;\n }\n\n const filterList = filterListRef.current;\n if (!filterList) return;\n\n const availableWidth = Math.floor(filterList.getBoundingClientRect().width);\n if (availableWidth <= 0) return;\n\n const widths = current.map((filter) => {\n const node = filterNodeRefs.current.get(filter.key);\n const measured = node?.getBoundingClientRect().width ?? 0;\n if (measured > 0) {\n const width = Math.ceil(measured);\n filterWidthCache.current.set(filter.key, width);\n return width;\n }\n return filterWidthCache.current.get(filter.key) ?? estimateFilterWidth(filter);\n });\n\n const triggerWidth = Math.ceil(\n overflowTriggerRef.current?.getBoundingClientRect().width ??\n FILTER_BAR_OVERFLOW_TRIGGER_ESTIMATE_PX,\n );\n const triggerGap = triggerWidth > 0 ? FILTER_BAR_GAP_PX : 0;\n const allFiltersWidth = sumFilterWidths(widths);\n const nextVisible =\n allFiltersWidth <= availableWidth\n ? current.length\n : calculateVisibleFilterCount(\n widths,\n Math.max(0, availableWidth - triggerWidth - triggerGap),\n );\n setVisibleFilterCount((prev) => (prev === nextVisible ? prev : nextVisible));\n }, []);\n\n useLayoutEffect(() => {\n measureOverflow();\n }, [measureOverflow]);\n\n useEffect(() => {\n if (!responsiveOverflow) return;\n\n const filterList = filterListRef.current;\n const trigger = overflowTriggerRef.current;\n const ResizeObserverCtor = typeof ResizeObserver === \"undefined\" ? null : ResizeObserver;\n\n if (!ResizeObserverCtor) {\n window.addEventListener(\"resize\", measureOverflow);\n measureOverflow();\n return () => window.removeEventListener(\"resize\", measureOverflow);\n }\n\n const observer = new ResizeObserverCtor(() => measureOverflow());\n if (filterList) observer.observe(filterList);\n if (trigger) observer.observe(trigger);\n window.addEventListener(\"resize\", measureOverflow);\n measureOverflow();\n\n return () => {\n observer.disconnect();\n window.removeEventListener(\"resize\", measureOverflow);\n };\n }, [measureOverflow, responsiveOverflow, mobileFilterOverflow]);\n\n const inlineFilters = responsiveOverflow\n ? allFilters.slice(0, Math.min(visibleFilterCount, allFilters.length))\n : allFilters;\n const overflowFilters = responsiveOverflow\n ? allFilters.slice(Math.min(visibleFilterCount, allFilters.length))\n : [];\n const activeOverflowCount = overflowFilters.filter(isFilterBarFilterActive).length;\n\n const setFilterNode = useCallback((key: string, node: HTMLDivElement | null) => {\n if (!node) {\n filterNodeRefs.current.delete(key);\n return;\n }\n filterNodeRefs.current.set(key, node);\n }, []);\n\n const row = (\n <FilterBarContext.Provider value={contextValue}>\n <div\n data-slot=\"filter-bar\"\n className={cn(\n FILTER_BAR_ROW_CLASS,\n // `wrap` has to drop the md:flex-nowrap entirely rather than add a\n // plain flex-wrap beside it: the two live in different variant groups,\n // so twMerge keeps both and the breakpoint variant still wins above\n // md — which made the documented escape hatch do nothing on exactly\n // the desktop widths where a crowded bar overflows the viewport.\n overflowMode === \"wrap\" ? \"flex-wrap\" : \"flex-wrap md:flex-nowrap\",\n className,\n // Hidden rather than unmounted, so a half-typed search survives the\n // takeover. `visibility: hidden` is not focusable per spec, so this\n // leaves the tab order without needing `inert`.\n overlay && \"invisible pointer-events-none\",\n )}\n {...(overlay ? { \"aria-hidden\": true } : {})}\n >\n {leading && <div className=\"flex shrink-0 items-center gap-2\">{leading}</div>}\n\n {search && <SearchField search={search} />}\n\n {children}\n\n {allFilters.length > 0 && (\n <div\n ref={filterListRef}\n data-filter-bar-list\n className={cn(\n \"flex min-w-0 items-center gap-2\",\n overflowMode === \"wrap\" ? \"flex-wrap\" : \"flex-1\",\n )}\n >\n {inlineFilters.map((filter, index) => (\n <div\n key={filter.key}\n ref={(node) => setFilterNode(filter.key, node)}\n data-filter-bar-item={filter.key}\n className=\"min-w-0 shrink-0\"\n >\n {renderFilterField(filter, !search && index === 0)}\n </div>\n ))}\n </div>\n )}\n\n {responsiveOverflow && overflowFilters.length > 0 && (\n <OverflowFiltersMenu\n triggerRef={overflowTriggerRef}\n filters={overflowFilters}\n activeHidden={activeOverflowCount}\n mobilePage={mobilePageOverflow}\n {...(onApply ? { onApply } : {})}\n />\n )}\n\n {(hasRangeControls || trailing || showApply) && (\n <div className=\"ml-auto flex min-w-0 shrink-0 flex-wrap items-center justify-end gap-2\">\n {dateRange && <RangeControlButton kind=\"date\" label=\"Date range\" {...dateRange} />}\n {timeRange && (\n <RangeControlButton\n kind={timeRange.timeEnabled === false ? \"date\" : \"time\"}\n label={timeRange.timeEnabled === false ? \"Date range\" : \"Time range\"}\n {...timeRange}\n />\n )}\n {trailing}\n {showApply && (\n <Button\n type=\"button\"\n variant=\"default\"\n size=\"sm\"\n disabled={isPending}\n onClick={onApply}\n >\n {isPending ? \"Loading…\" : applyLabel}\n </Button>\n )}\n </div>\n )}\n </div>\n </FilterBarContext.Provider>\n );\n\n if (!overlay) return row;\n\n // Both rows share one grid cell, so the cell is as tall as the taller of the\n // two and neither can move the table underneath it. A min-height guess would\n // not do: the bar's height depends on which controls a caller supplied, so\n // there is no constant to guess.\n return (\n <div className=\"grid\">\n <div className=\"col-start-1 row-start-1 min-w-0\">{row}</div>\n <div\n data-slot=\"filter-bar-overlay\"\n className={cn(FILTER_BAR_ROW_CLASS, \"col-start-1 row-start-1 min-w-0 flex-wrap\")}\n >\n {overlay}\n </div>\n </div>\n );\n}\n\ntype FilterBarFilterPanelChrome = \"full\" | \"embedded\";\n\nexport function FilterBarFilterPanel({\n filter,\n chrome = \"full\",\n autoSubmit = true,\n}: {\n filter: FilterBarFilter;\n chrome?: FilterBarFilterPanelChrome;\n autoSubmit?: boolean;\n}) {\n const contextValue = useMemo(() => ({ autoSubmit }), [autoSubmit]);\n\n return (\n <FilterBarContext.Provider value={contextValue}>\n <FilterBarFilterPanelContent filter={filter} chrome={chrome} />\n </FilterBarContext.Provider>\n );\n}\n\nfunction FilterBarFilterPanelContent({\n filter,\n chrome = \"full\",\n}: {\n filter: FilterBarFilter;\n chrome?: FilterBarFilterPanelChrome;\n}) {\n return (\n <>\n {filter.kind === \"lookup\" && <LookupFilterField filter={filter} grow />}\n {filter.kind === \"lookup-multi\" && <LookupMultiFilterField filter={filter} grow />}\n {filter.kind === \"multi\" && <MultiFilterPanel filter={filter} chrome={chrome} />}\n {filter.kind === \"nested-multi\" && <NestedMultiFilterPanel filter={filter} chrome={chrome} />}\n {filter.kind === \"workload\" && <WorkloadFilterField filter={filter} grow />}\n {filter.kind === \"select-multi\" && <SelectMultiFilterField filter={filter} grow />}\n {filter.kind === \"number\" && <NumberFilterPanel filter={filter} chrome={chrome} />}\n {filter.kind === \"enum\" && <EnumFilterField filter={filter} grow />}\n {filter.kind === \"boolean\" && <BooleanFilterField filter={filter} />}\n {filter.kind === \"tristate\" && <TriStateFilterField filter={filter} />}\n {filter.kind === \"date-range\" && (\n <FilterBarRangePanel\n kind={filter.timeEnabled === false ? \"date\" : \"time\"}\n label={filter.label}\n {...dateRangeFilterProps(filter)}\n />\n )}\n {filter.kind === \"text\" && <TextFilterField filter={filter} grow />}\n </>\n );\n}\n\nfunction renderFilterField(filter: FilterBarFilter, grow: boolean) {\n if (filter.kind === \"lookup\") {\n return <LookupFilterField filter={filter} grow={grow} />;\n }\n\n if (filter.kind === \"lookup-multi\") {\n return <LookupMultiFilterField filter={filter} grow={grow} />;\n }\n\n if (filter.kind === \"multi\") {\n return <MultiFilterField filter={filter} grow={grow} />;\n }\n\n if (filter.kind === \"nested-multi\") {\n return <NestedMultiFilterField filter={filter} grow={grow} />;\n }\n\n if (filter.kind === \"workload\") {\n return <WorkloadFilterField filter={filter} grow={grow} />;\n }\n\n if (filter.kind === \"select-multi\") {\n return <SelectMultiFilterField filter={filter} grow={grow} />;\n }\n\n if (filter.kind === \"number\") {\n return <NumberFilterField filter={filter} grow={grow} />;\n }\n\n if (filter.kind === \"enum\") {\n return <EnumFilterField filter={filter} grow={grow} />;\n }\n\n if (filter.kind === \"boolean\") {\n return <BooleanFilterField filter={filter} />;\n }\n\n if (filter.kind === \"tristate\") {\n return <TriStateFilterField filter={filter} />;\n }\n\n if (filter.kind === \"date-range\") {\n return (\n <RangeControlButton\n kind={filter.timeEnabled === false ? \"date\" : \"time\"}\n label={filter.label}\n {...dateRangeFilterProps(filter)}\n />\n );\n }\n\n return <TextFilterField filter={filter} grow={grow} />;\n}\n\nfunction OverflowFiltersMenu({\n triggerRef,\n filters,\n activeHidden,\n mobilePage,\n onApply,\n}: {\n triggerRef: RefObject<HTMLButtonElement | null>;\n filters: FilterBarFilter[];\n activeHidden: number;\n mobilePage: boolean;\n onApply?: () => void;\n}) {\n const [open, setOpen] = useState(false);\n const [stagedValues, setStagedValues] = useState<Record<string, FilterBarValue>>({});\n const hasHidden = filters.length > 0;\n const hiddenFilterKeys = useMemo(\n () => filters.map((filter) => filter.key).join(\"\\u0000\"),\n [filters],\n );\n // Re-stage from the live filters on every open/close so an un-applied edit is\n // discarded, preserving the prior close behaviour.\n const { refs, floatingStyles, context, floatingZ, getReferenceProps, getFloatingProps } =\n useAnchoredPopup(\n open && !mobilePage,\n (next) => {\n setStagedValues(createFilterValueMap(filters));\n setOpen(next);\n },\n \"bottom-end\",\n );\n const closeOverflowMenu = useCallback(() => {\n setStagedValues(createFilterValueMap(filters));\n setOpen(false);\n }, [filters]);\n // Merge floating-ui's reference ref with the caller's triggerRef (the parent\n // measures the trigger width through it for overflow layout).\n const setTriggerRef = useMergeRefs([refs.setReference, triggerRef]);\n\n useEffect(() => {\n if (!hasHidden) closeOverflowMenu();\n }, [closeOverflowMenu, hasHidden]);\n\n useEffect(() => {\n if (!open) return;\n setStagedValues(createFilterValueMap(filters));\n }, [hiddenFilterKeys, open]);\n\n const stagedFilters = filters.map((filter) =>\n filterWithStagedValue(\n filter,\n // Key presence, not `??`: a tri-state cycled to unset stages `undefined`,\n // which must render as unset instead of falling back to the live value.\n Object.hasOwn(stagedValues, filter.key)\n ? stagedValues[filter.key]\n : filterBarFilterValue(filter),\n (next) =>\n setStagedValues((current) => ({\n ...current,\n [filter.key]: next,\n })),\n ),\n );\n const applyOverflowFilters = () => {\n applyStagedFilterValues(filters, stagedValues);\n onApply?.();\n setOpen(false);\n };\n const clearAll = (\n <button\n type=\"button\"\n className=\"rounded px-1.5 py-0.5 text-xs text-primary transition-colors hover:bg-accent focus:bg-accent focus:outline-none disabled:text-muted-foreground\"\n onClick={() => stagedFilters.forEach(clearFilterBarFilter)}\n disabled={stagedFilters.every((filter) => !isFilterBarFilterActive(filter))}\n >\n Clear all\n </button>\n );\n const actions = (\n <OverflowFilterActions onClose={closeOverflowMenu} onApply={applyOverflowFilters} />\n );\n\n return (\n <div\n className={cn(\"inline-flex shrink-0\", !hasHidden && \"invisible pointer-events-none\")}\n aria-hidden={!hasHidden || undefined}\n >\n <Button\n ref={setTriggerRef}\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n aria-label=\"More filters\"\n tabIndex={hasHidden ? 0 : -1}\n title={hasHidden ? \"More filters\" : undefined}\n className={cn(\n \"h-8 min-w-0 gap-1.5 px-2 text-xs font-normal\",\n activeHidden > 0 && \"border-primary/40 text-primary\",\n )}\n {...getReferenceProps()}\n aria-expanded={open}\n >\n <Icon icon={UiFilter} className=\"text-[14px]\" />\n {activeHidden > 0 && (\n <span className=\"rounded-full bg-muted px-1.5 text-[10px] font-medium text-muted-foreground\">\n {activeHidden}\n </span>\n )}\n </Button>\n\n {mobilePage && (\n <Modal\n open={hasHidden && open}\n onClose={closeOverflowMenu}\n title=\"Filters\"\n headerSlot={clearAll}\n footer={actions}\n scrollBody={false}\n >\n <OverflowFilterRows filters={stagedFilters} mobilePage />\n </Modal>\n )}\n\n {!mobilePage && hasHidden && open && (\n <FloatingPortal>\n <FloatingFocusManager context={context} modal={false}>\n <div\n ref={refs.setFloating}\n role=\"dialog\"\n aria-label=\"Overflow filters\"\n style={{ ...floatingStyles, zIndex: floatingZ }}\n className=\"flex max-h-[min(34rem,calc(100vh-2rem))] w-[min(34rem,calc(100vw-2rem))] flex-col overflow-hidden rounded-md border border-border bg-popover p-2 text-popover-foreground shadow-lg shadow-black/10\"\n {...getFloatingProps()}\n >\n <div className=\"mb-2 flex items-center justify-between gap-2 px-1\">\n <div className=\"text-[10px] font-medium uppercase tracking-wide text-muted-foreground\">\n Filters\n </div>\n <div className=\"flex items-center gap-1\">\n {clearAll}\n <button\n type=\"button\"\n aria-label=\"Close overflow filters\"\n title=\"Close\"\n className=\"inline-flex h-6 w-6 items-center justify-center rounded text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:outline-none\"\n onClick={closeOverflowMenu}\n >\n <Icon icon={UiClose} className=\"text-sm\" />\n </button>\n </div>\n </div>\n <OverflowFilterRows filters={stagedFilters} />\n <div className=\"mt-3\">{actions}</div>\n </div>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </div>\n );\n}\n\nfunction OverflowFilterRows({\n filters,\n mobilePage = false,\n}: {\n filters: FilterBarFilter[];\n mobilePage?: boolean;\n}) {\n return (\n <div\n className={cn(\n \"min-h-0 flex-1 divide-y divide-border/70 overflow-y-auto\",\n mobilePage ? \"bg-background\" : \"rounded-md border border-border/70\",\n )}\n >\n {filters.map((filter) => {\n const active = isFilterBarFilterActive(filter);\n return (\n <div\n key={filter.key}\n data-overflow-filter-row={filter.key}\n className=\"grid grid-cols-[minmax(0,1fr)_auto] items-start gap-2 overflow-visible p-4 md:h-12 md:grid-cols-[minmax(7rem,10rem)_auto_minmax(0,1fr)_auto] md:items-center md:p-2\"\n >\n <label\n htmlFor={filterInputId(filter)}\n className=\"col-span-2 flex min-w-0 items-center gap-1 truncate text-[10px] font-medium uppercase tracking-wide text-muted-foreground md:col-span-1\"\n title={filter.description ?? filter.label}\n >\n <LabelIcon icon={sizedIcon(filter.icon, 12)} className=\"text-[12px] normal-case\" />\n <span className=\"truncate\">{filter.label}</span>\n </label>\n <span className=\"hidden text-sm text-muted-foreground md:block\">=</span>\n <div className=\"min-w-0 overflow-visible\">\n <FilterBarContext.Provider value={{ autoSubmit: false }}>\n <FilterBarKeyValueControl filter={filter} />\n </FilterBarContext.Provider>\n </div>\n <button\n type=\"button\"\n aria-label={`Clear ${filter.label}`}\n title={`Clear ${filter.label}`}\n className=\"inline-flex h-6 w-6 self-center items-center justify-center rounded text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:outline-none disabled:text-muted-foreground/40\"\n onClick={() => clearFilterBarFilter(filter)}\n disabled={!active}\n >\n <Icon icon={UiClose} className=\"text-sm\" />\n </button>\n </div>\n );\n })}\n </div>\n );\n}\n\nfunction OverflowFilterActions({\n onClose,\n onApply,\n}: {\n onClose: () => void;\n onApply: () => void;\n}) {\n return (\n <div className=\"flex justify-end gap-2\">\n <Button type=\"button\" variant=\"ghost\" size=\"sm\" className=\"h-8 px-3 text-xs\" onClick={onClose}>\n Close\n </Button>\n <Button type=\"button\" variant=\"default\" size=\"sm\" className=\"h-8 px-3 text-xs\" onClick={onApply}>\n Apply\n </Button>\n </div>\n );\n}\n\nfunction FilterBarKeyValueControl({ filter }: { filter: FilterBarFilter }) {\n if (filter.kind === \"date-range\") {\n return (\n <RangeControlButton\n kind={filter.timeEnabled === false ? \"date\" : \"time\"}\n label={filter.label}\n {...dateRangeFilterProps(filter)}\n />\n );\n }\n if (filter.kind === \"text\") {\n return <TextFilterValueControl filter={filter} />;\n }\n if (filter.kind === \"lookup\") {\n return <LookupFilterValueControl filter={filter} />;\n }\n if (filter.kind === \"lookup-multi\") {\n return <LookupMultiFilterValueControl filter={filter} />;\n }\n if (filter.kind === \"enum\") {\n return <EnumFilterValueControl filter={filter} />;\n }\n if (filter.kind === \"boolean\") {\n return <BooleanFilterValueControl filter={filter} />;\n }\n if (filter.kind === \"select-multi\") {\n return <SelectMultiFilterValueControl filter={filter} />;\n }\n if (filter.kind === \"multi\") {\n return <MultiFilterField filter={filter} grow />;\n }\n if (filter.kind === \"nested-multi\") {\n return <NestedMultiFilterField filter={filter} grow />;\n }\n if (filter.kind === \"workload\") {\n return <WorkloadFilterField filter={filter} grow />;\n }\n if (filter.kind === \"tristate\") {\n return <TriStateFilterValueControl filter={filter} />;\n }\n return <NumberFilterField filter={filter} grow />;\n}\n\nfunction filterInputId(filter: FilterBarFilter) {\n return `filterbar-overflow-${filter.key}`;\n}\n\nfunction lookupOptionsToCombobox(options: FilterBarLookupOption[]): ComboboxOption[] {\n return options.map((option) => ({\n value: option.value,\n label: option.label ?? option.value,\n ...(option.disabled !== undefined ? { disabled: option.disabled } : {}),\n }));\n}\n\nfunction WorkloadFilterField({\n filter,\n grow,\n}: {\n filter: FilterBarWorkloadFilter;\n grow: boolean;\n}) {\n return (\n <div className={cn(\"min-w-[14rem]\", grow && \"flex-1\", filter.className)}>\n <WorkloadPicker\n value={filter.value}\n onChange={filter.onChange}\n loadWorkloads={filter.loadWorkloads}\n {...(filter.kinds ? { kinds: filter.kinds } : {})}\n {...(filter.collapseSingleOption ? { collapseSingleOption: true } : {})}\n allowCustomValue={false}\n strict\n {...(filter.disabled !== undefined ? { disabled: filter.disabled } : {})}\n placeholder={`Select ${filter.label.toLowerCase()}…`}\n />\n </div>\n );\n}\n\nfunction valueInputClassName(disabled?: boolean) {\n return cn(\n \"h-8 w-full rounded-md border border-input bg-background px-2 text-sm text-foreground outline-none placeholder:text-placeholder focus-visible:ring-2 focus-visible:ring-ring\",\n disabled && \"cursor-not-allowed opacity-60\",\n );\n}\n\nfunction TextFilterValueControl({ filter }: { filter: FilterBarTextFilter }) {\n const [draft, setDraft] = useDebouncedTextDraft(filter.value, filter.onChange);\n\n return (\n <input\n id={filterInputId(filter)}\n type=\"text\"\n aria-label={filter.label}\n className={valueInputClassName(filter.disabled)}\n {...(filter.placeholder !== undefined ? { placeholder: filter.placeholder } : {})}\n value={draft}\n disabled={filter.disabled}\n onChange={(event) => setDraft(event.target.value)}\n />\n );\n}\n\nfunction LookupFilterValueControl({ filter }: { filter: FilterBarLookupFilter }) {\n const [draft, setDraft] = useDebouncedTextDraft(filter.value, filter.onChange);\n\n if (filter.inputType === \"date\") {\n return (\n <DateTimePicker\n id={filterInputId(filter)}\n aria-label={filter.label}\n className=\"w-full\"\n inputClassName={valueInputClassName(filter.disabled)}\n buttonClassName=\"right-1\"\n placeholder={filter.placeholder}\n value={draft}\n disabled={filter.disabled}\n onChange={setDraft}\n />\n );\n }\n\n if (filter.inputType === \"number\") {\n return (\n <input\n id={filterInputId(filter)}\n type=\"number\"\n aria-label={filter.label}\n className={valueInputClassName(filter.disabled)}\n placeholder={filter.placeholder}\n value={draft}\n disabled={filter.disabled}\n onChange={(event) => setDraft(event.target.value)}\n />\n );\n }\n\n // The overflow panel renders the filter label as a separate row header, so\n // the Combobox here omits its own inline label to avoid duplication.\n return (\n <Combobox\n id={filterInputId(filter)}\n options={lookupOptionsToCombobox(filter.options)}\n value={filter.value}\n onChange={filter.onChange}\n allowCustomValue={false}\n size=\"sm\"\n className=\"w-full\"\n {...(filter.placeholder !== undefined ? { placeholder: filter.placeholder } : {})}\n {...(filter.disabled !== undefined ? { disabled: filter.disabled } : {})}\n />\n );\n}\n\nfunction LookupMultiFilterValueControl({ filter }: { filter: FilterBarLookupMultiFilter }) {\n return (\n <Combobox\n multiple\n id={filterInputId(filter)}\n options={lookupOptionsToCombobox(filter.options)}\n value={filter.value}\n onChange={filter.onChange}\n allowCustomValue={false}\n footer={lookupMultiFilterFooter(filter)}\n size=\"sm\"\n className=\"w-full\"\n {...(filter.placeholder !== undefined ? { placeholder: filter.placeholder } : {})}\n {...(filter.disabled !== undefined ? { disabled: filter.disabled } : {})}\n />\n );\n}\n\nfunction enumOptionsToCombobox(\n options: FilterBarEnumFilter[\"options\"],\n): ComboboxOption[] {\n return options.map((option) => ({\n value: option.value,\n label: option.label ?? option.value,\n }));\n}\n\nfunction EnumFilterValueControl({ filter }: { filter: FilterBarEnumFilter }) {\n return (\n <Combobox\n id={filterInputId(filter)}\n options={enumOptionsToCombobox(filter.options)}\n value={filter.value}\n onChange={filter.onChange}\n allowCustomValue={false}\n size=\"sm\"\n {...(filter.placeholder !== undefined ? { placeholder: filter.placeholder } : {})}\n className=\"w-full\"\n {...(filter.disabled !== undefined ? { disabled: filter.disabled } : {})}\n />\n );\n}\n\nfunction BooleanFilterValueControl({ filter }: { filter: FilterBarBooleanFilter }) {\n return (\n <div className=\"flex h-8 items-center\">\n <input\n id={filterInputId(filter)}\n type=\"checkbox\"\n aria-label={filter.label}\n className=\"h-4 w-4 accent-primary\"\n checked={filter.value}\n disabled={filter.disabled}\n onChange={(event) => filter.onChange(event.target.checked)}\n />\n </div>\n );\n}\n\nfunction TriStateFilterValueControl({ filter }: { filter: FilterBarTriStateFilter }) {\n return (\n <div className=\"flex h-8 items-center\">\n <TriStateToggle\n id={filterInputId(filter)}\n value={filter.value}\n onChange={filter.onChange}\n label={filter.label}\n size=\"md\"\n {...(filter.labels ? { labels: filter.labels } : {})}\n {...(filter.disabled ? { disabled: filter.disabled } : {})}\n />\n </div>\n );\n}\n\nfunction SelectMultiFilterValueControl({ filter }: { filter: FilterBarSelectMultiFilter }) {\n return (\n <MultiSelect\n options={filter.options}\n value={filter.value}\n onChange={filter.onChange}\n ariaLabel={`${filter.label} filter`}\n {...(filter.placeholder !== undefined ? { placeholder: filter.placeholder } : {})}\n {...(filter.disabled !== undefined ? { disabled: filter.disabled } : {})}\n triggerClassName=\"h-8 w-full rounded-md border border-input bg-background px-2 text-sm shadow-none\"\n menuClassName=\"left-auto right-0\"\n />\n );\n}\n\nexport function FilterBarRangePanel({\n kind,\n label,\n from = \"\",\n to = \"\",\n onApply,\n presets,\n timeEnabled,\n timeZone,\n timeZones,\n fromPlaceholder,\n toPlaceholder,\n emptyLabel,\n disabled,\n}: FilterBarRangeProps & { kind: \"date\" | \"time\"; label: string }) {\n return (\n <div className=\"w-72 p-3 text-popover-foreground\">\n <TimeRange\n kind={kind}\n label={label}\n align=\"left\"\n from={from}\n to={to}\n onApply={onApply}\n {...(disabled !== undefined ? { disabled } : {})}\n {...(presets ? { presets } : {})}\n {...(timeEnabled !== undefined ? { timeEnabled } : {})}\n {...(timeZone ? { timeZone } : {})}\n {...(timeZones ? { timeZones } : {})}\n {...(fromPlaceholder ? { fromPlaceholder } : {})}\n {...(toPlaceholder ? { toPlaceholder } : {})}\n {...(emptyLabel ? { emptyLabel } : {})}\n panelClassName=\"left-0 right-auto\"\n />\n </div>\n );\n}\n\nfunction EnumFilterField({ filter, grow }: { filter: FilterBarEnumFilter; grow: boolean }) {\n return (\n <Combobox\n {...comboboxLabelProps(filter)}\n options={enumOptionsToCombobox(filter.options)}\n value={filter.value}\n onChange={filter.onChange}\n allowCustomValue={false}\n size=\"sm\"\n {...(filter.placeholder !== undefined ? { placeholder: filter.placeholder } : {})}\n className={cn(lookupFieldWidthClass(grow), filter.className)}\n {...(filter.disabled !== undefined ? { disabled: filter.disabled } : {})}\n />\n );\n}\n\nfunction TriStateFilterField({ filter }: { filter: FilterBarTriStateFilter }) {\n return (\n <div\n title={filter.description}\n className={cn(\n \"flex h-8 shrink-0 items-center gap-2 rounded-md border border-input bg-muted/30 px-2 text-xs\",\n filter.disabled && \"opacity-60\",\n filter.className,\n )}\n >\n <TriStateToggle\n value={filter.value}\n onChange={filter.onChange}\n label={filter.label}\n {...(filter.labels ? { labels: filter.labels } : {})}\n {...(filter.disabled ? { disabled: filter.disabled } : {})}\n />\n <FilterFieldLabel icon={filter.icon} label={filter.label} />\n </div>\n );\n}\n\nfunction BooleanFilterField({ filter }: { filter: FilterBarBooleanFilter }) {\n return (\n <label\n title={filter.description}\n className={cn(\n \"flex h-8 shrink-0 items-center gap-2 rounded-md border border-input bg-muted/30 px-2 text-xs\",\n filter.disabled && \"opacity-60\",\n filter.className,\n )}\n >\n <input\n type=\"checkbox\"\n aria-label={filter.label}\n className=\"h-3.5 w-3.5 accent-primary\"\n checked={filter.value}\n disabled={filter.disabled}\n onChange={(event) => filter.onChange(event.target.checked)}\n />\n <FilterFieldLabel icon={filter.icon} label={filter.label} />\n </label>\n );\n}\n\nfunction SearchField({ search }: { search: FilterBarSearchProps }) {\n const [draft, setDraft] = useDebouncedTextDraft(search.value, search.onChange);\n\n return (\n <div className=\"flex min-w-0 flex-[1_1_14rem] items-center gap-2 md:min-w-[14rem] md:max-w-[24rem]\">\n <label\n className={cn(\n \"flex h-8 min-w-0 flex-1 items-center rounded-md border border-input bg-background px-3 text-sm\",\n search.className,\n )}\n >\n {draft.trim() ? (\n <span className=\"mr-2 whitespace-nowrap text-[10px] font-medium uppercase tracking-wide text-muted-foreground\">\n {search.ariaLabel ?? \"Search\"}\n </span>\n ) : (\n <Icon icon={UiSearch} className=\"mr-2 shrink-0 text-muted-foreground\" />\n )}\n <input\n type=\"search\"\n aria-label={search.ariaLabel ?? search.placeholder ?? \"Search\"}\n className=\"w-full bg-transparent outline-none placeholder:text-placeholder\"\n placeholder={search.placeholder ?? \"Search…\"}\n value={draft}\n onChange={(event) => setDraft(event.target.value)}\n />\n </label>\n </div>\n );\n}\n\nfunction TextFilterField({ filter, grow }: { filter: FilterBarTextFilter; grow: boolean }) {\n const [draft, setDraft] = useDebouncedTextDraft(filter.value, filter.onChange);\n\n return (\n <label\n title={filter.description}\n className={cn(\n \"flex h-8 items-center gap-2 rounded-md border border-input bg-muted/30 pl-2 pr-2 text-xs\",\n grow ? \"min-w-[12rem] max-w-[18rem] flex-1\" : \"min-w-[11rem] max-w-[15rem] shrink-0\",\n filter.disabled && \"opacity-60\",\n filter.className,\n )}\n >\n <FilterFieldLabel icon={filter.icon} label={filter.label} />\n <input\n type=\"text\"\n aria-label={filter.label}\n className=\"w-full min-w-0 bg-transparent text-sm text-foreground outline-none placeholder:text-placeholder disabled:cursor-not-allowed\"\n {...(filter.placeholder !== undefined ? { placeholder: filter.placeholder } : {})}\n value={draft}\n disabled={filter.disabled}\n onChange={(event) => setDraft(event.target.value)}\n />\n </label>\n );\n}\n\n// FilterFieldLabel is the uppercase label shown inside inline filter shells,\n// with an optional leading glyph from the filter's `icon`.\nfunction FilterFieldLabel({ icon, label }: { icon?: LabelIconSpec; label: string }) {\n return (\n <span className=\"flex items-center gap-1 whitespace-nowrap font-medium uppercase tracking-wide text-muted-foreground\">\n <LabelIcon icon={icon} className=\"text-[13px] normal-case\" />\n {label}\n </span>\n );\n}\n\nfunction LookupFilterField({ filter, grow }: { filter: FilterBarLookupFilter; grow: boolean }) {\n const [draft, setDraft] = useDebouncedTextDraft(filter.value, filter.onChange);\n\n // Date and number lookups keep their specialized inputs in the label shell;\n // text lookups use the Combobox with its own inline label.\n if (filter.inputType === \"date\" || filter.inputType === \"number\") {\n // For a date lookup with a value, surface the human-readable absolute +\n // relative form (e.g. \"Apr 15, 2026, 12:00 PM (2h ago)\") as the hover title.\n const dateTitle =\n filter.inputType === \"date\" && draft ? formatDateTimeRelative(draft) : undefined;\n return (\n <label\n title={dateTitle ?? filter.description}\n className={cn(\n \"flex h-8 items-center gap-2 rounded-md border border-input bg-muted/30 pl-2 pr-2 text-xs\",\n lookupFieldWidthClass(grow),\n filter.disabled && \"opacity-60\",\n filter.className,\n )}\n >\n <FilterFieldLabel icon={filter.icon} label={filter.label} />\n {filter.inputType === \"date\" ? (\n <DateTimePicker\n aria-label={filter.label}\n className=\"w-full\"\n inputClassName=\"w-full min-w-0 border-0 bg-transparent px-0 pr-6 text-sm text-foreground shadow-none focus-visible:ring-0\"\n buttonClassName=\"right-0\"\n placeholder={filter.placeholder}\n value={draft}\n disabled={filter.disabled}\n onChange={setDraft}\n />\n ) : (\n <input\n type=\"number\"\n aria-label={filter.label}\n className=\"w-full min-w-0 bg-transparent text-sm text-foreground outline-none placeholder:text-placeholder disabled:cursor-not-allowed\"\n placeholder={filter.placeholder}\n value={draft}\n disabled={filter.disabled}\n onChange={(event) => setDraft(event.target.value)}\n />\n )}\n </label>\n );\n }\n\n return (\n <Combobox\n {...comboboxLabelProps(filter)}\n options={lookupOptionsToCombobox(filter.options)}\n value={filter.value}\n onChange={filter.onChange}\n allowCustomValue={false}\n size=\"sm\"\n className={cn(lookupFieldWidthClass(grow), filter.className)}\n {...(filter.placeholder !== undefined ? { placeholder: filter.placeholder } : {})}\n {...(filter.disabled !== undefined ? { disabled: filter.disabled } : {})}\n />\n );\n}\n\nfunction LookupMultiFilterField({\n filter,\n grow,\n}: {\n filter: FilterBarLookupMultiFilter;\n grow: boolean;\n}) {\n return (\n <Combobox\n multiple\n {...comboboxLabelProps(filter)}\n options={lookupOptionsToCombobox(filter.options)}\n value={filter.value}\n onChange={filter.onChange}\n allowCustomValue={false}\n footer={lookupMultiFilterFooter(filter)}\n size=\"sm\"\n className={cn(lookupFieldWidthClass(grow), filter.className)}\n {...(filter.placeholder !== undefined ? { placeholder: filter.placeholder } : {})}\n {...(filter.onSearch !== undefined ? { onSearch: filter.onSearch } : {})}\n {...(filter.loading !== undefined ? { loading: filter.loading } : {})}\n {...(filter.disabled !== undefined ? { disabled: filter.disabled } : {})}\n />\n );\n}\n\nfunction lookupMultiFilterFooter(filter: FilterBarLookupMultiFilter) {\n const moreCount =\n filter.truncated && filter.total ? Math.max(filter.total - filter.options.length, 0) : 0;\n if (moreCount === 0) return undefined;\n return (\n <>\n … and {moreCount.toLocaleString()} more\n {filter.onSearch ? \" — type to search all\" : \"\"}\n </>\n );\n}\n\nfunction NumberFilterField({ filter, grow }: { filter: FilterBarNumberFilter; grow: boolean }) {\n const [open, setOpen] = useState(false);\n const popup = useAnchoredPopup(open, setOpen);\n\n const bounds = resolveNumberFilterBounds(filter);\n const [draft, setDraft] = useDebouncedNumberDraft(filter.value, filter.onChange);\n const sliderMin = clampNumber(parseFilterNumber(draft.min) ?? bounds.min, bounds.min, bounds.max);\n const sliderMax = clampNumber(parseFilterNumber(draft.max) ?? bounds.max, bounds.min, bounds.max);\n const activeMin = Math.min(sliderMin, sliderMax);\n const activeMax = Math.max(sliderMin, sliderMax);\n const summary = summarizeNumberFilter(filter, bounds, draft);\n\n return (\n <div\n title={filter.description}\n className={cn(\n \"inline-flex min-w-0\",\n grow ? \"min-w-[8rem] max-w-[12rem] flex-1\" : \"shrink-0\",\n filter.disabled && \"opacity-60\",\n filter.className,\n )}\n >\n <Button\n ref={popup.refs.setReference as Ref<HTMLButtonElement>}\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n aria-label={`${filter.label} filter`}\n disabled={filter.disabled}\n className={cn(\n \"min-w-0 gap-2 font-normal\",\n grow ? \"w-full max-w-[12rem] justify-between\" : \"w-auto max-w-[9.5rem] px-2.5\",\n summary === filter.label && \"text-muted-foreground\",\n )}\n {...popup.getReferenceProps()}\n >\n <LabelIcon icon={filter.icon} className=\"text-[14px] text-muted-foreground\" />\n <span className=\"truncate\">{summary}</span>\n <Icon icon={open ? UiChevronUp : UiChevronDown} className=\"text-muted-foreground\" />\n </Button>\n\n {open && (\n <FloatingPortal>\n <FloatingFocusManager context={popup.context} modal={false}>\n <div\n ref={popup.refs.setFloating}\n role=\"dialog\"\n aria-label={filter.label}\n style={{ ...popup.floatingStyles, zIndex: popup.floatingZ }}\n className=\"min-w-[18rem] max-w-[22rem] rounded-md border border-border bg-popover p-3 text-popover-foreground shadow-lg shadow-black/5\"\n {...popup.getFloatingProps()}\n >\n <div className=\"mb-3 flex items-center justify-between gap-2\">\n <div className=\"text-[10px] font-medium uppercase tracking-wide text-muted-foreground\">\n {filter.label}\n </div>\n <button\n type=\"button\"\n className=\"text-[10px] text-primary disabled:text-muted-foreground\"\n onClick={() => {\n setDraft({});\n filter.onChange({});\n }}\n disabled={!String(draft.min ?? \"\").trim() && !String(draft.max ?? \"\").trim()}\n >\n Clear all\n </button>\n </div>\n\n <div className=\"space-y-3\">\n <div className=\"space-y-2\">\n <div className=\"flex items-center justify-between text-[11px] text-muted-foreground\">\n <span>{formatNumberValue(bounds.min, filter)}</span>\n <span>{formatNumberValue(bounds.max, filter)}</span>\n </div>\n <div className=\"relative h-6\">\n <RangeSlider\n min={bounds.min}\n max={bounds.max}\n step={bounds.step}\n value={[activeMin, activeMax]}\n ariaLabelMin={`${filter.label} minimum slider`}\n ariaLabelMax={`${filter.label} maximum slider`}\n onChange={([nextMin, nextMax]) =>\n setDraft(numberFilterValueFromSlider([nextMin, nextMax], bounds))\n }\n />\n </div>\n </div>\n\n <div className=\"grid grid-cols-2 gap-2\">\n <div className=\"space-y-1\">\n <label className=\"text-[10px] text-muted-foreground\">Min</label>\n <input\n type=\"number\"\n inputMode=\"decimal\"\n step={bounds.step}\n aria-label={`${filter.label} minimum`}\n className=\"h-8 w-full rounded-md border border-input bg-background px-2 text-xs outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n {...(filter.minPlaceholder !== undefined ? { placeholder: filter.minPlaceholder } : {})}\n value={draft.min ?? \"\"}\n onChange={(event) =>\n setDraft(\n normalizeNumberFilterValue(\n { min: event.target.value, max: draft.max ?? \"\" },\n \"min-input\",\n ),\n )\n }\n />\n </div>\n <div className=\"space-y-1\">\n <label className=\"text-[10px] text-muted-foreground\">Max</label>\n <input\n type=\"number\"\n inputMode=\"decimal\"\n step={bounds.step}\n aria-label={`${filter.label} maximum`}\n className=\"h-8 w-full rounded-md border border-input bg-background px-2 text-xs outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n {...(filter.maxPlaceholder !== undefined ? { placeholder: filter.maxPlaceholder } : {})}\n value={draft.max ?? \"\"}\n onChange={(event) =>\n setDraft(\n normalizeNumberFilterValue(\n { min: draft.min ?? \"\", max: event.target.value },\n \"max-input\",\n ),\n )\n }\n />\n </div>\n </div>\n </div>\n </div>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </div>\n );\n}\n\nfunction NumberFilterPanel({\n filter,\n chrome = \"full\",\n}: {\n filter: FilterBarNumberFilter;\n chrome?: FilterBarFilterPanelChrome;\n}) {\n const bounds = resolveNumberFilterBounds(filter);\n const [draft, setDraft] = useDebouncedNumberDraft(filter.value, filter.onChange);\n const sliderMin = clampNumber(parseFilterNumber(draft.min) ?? bounds.min, bounds.min, bounds.max);\n const sliderMax = clampNumber(parseFilterNumber(draft.max) ?? bounds.max, bounds.min, bounds.max);\n const activeMin = Math.min(sliderMin, sliderMax);\n const activeMax = Math.max(sliderMin, sliderMax);\n const embedded = chrome === \"embedded\";\n\n return (\n <div\n data-filter-panel-chrome={chrome}\n className={cn(\n \"min-w-[18rem] max-w-[22rem] text-popover-foreground\",\n embedded\n ? \"p-0\"\n : \"rounded-md border border-border bg-popover p-3 shadow-sm shadow-black/5\",\n )}\n >\n {!embedded && (\n <div className=\"mb-3 flex items-center justify-between gap-2\">\n <div className=\"text-[10px] font-medium uppercase tracking-wide text-muted-foreground\">\n {filter.label}\n </div>\n <button\n type=\"button\"\n className=\"text-[10px] text-primary disabled:text-muted-foreground\"\n onClick={() => {\n setDraft({});\n filter.onChange({});\n }}\n disabled={!String(draft.min ?? \"\").trim() && !String(draft.max ?? \"\").trim()}\n >\n Clear all\n </button>\n </div>\n )}\n\n <div className=\"space-y-3\">\n <div className=\"space-y-2\">\n <div className=\"flex items-center justify-between text-[11px] text-muted-foreground\">\n <span>{formatNumberValue(bounds.min, filter)}</span>\n <span>{formatNumberValue(bounds.max, filter)}</span>\n </div>\n <div className=\"relative h-6\">\n <RangeSlider\n min={bounds.min}\n max={bounds.max}\n step={bounds.step}\n value={[activeMin, activeMax]}\n ariaLabelMin={`${filter.label} minimum slider`}\n ariaLabelMax={`${filter.label} maximum slider`}\n onChange={([nextMin, nextMax]) =>\n setDraft(numberFilterValueFromSlider([nextMin, nextMax], bounds))\n }\n />\n </div>\n </div>\n\n <div className=\"grid grid-cols-2 gap-2\">\n <div className=\"space-y-1\">\n <label className=\"text-[10px] text-muted-foreground\">Min</label>\n <input\n type=\"number\"\n inputMode=\"decimal\"\n step={bounds.step}\n aria-label={`${filter.label} minimum`}\n className=\"h-8 w-full rounded-md border border-input bg-background px-2 text-xs outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n {...(filter.minPlaceholder !== undefined ? { placeholder: filter.minPlaceholder } : {})}\n value={draft.min ?? \"\"}\n onChange={(event) =>\n setDraft(\n normalizeNumberFilterValue(\n { min: event.target.value, max: draft.max ?? \"\" },\n \"min-input\",\n ),\n )\n }\n />\n </div>\n <div className=\"space-y-1\">\n <label className=\"text-[10px] text-muted-foreground\">Max</label>\n <input\n type=\"number\"\n inputMode=\"decimal\"\n step={bounds.step}\n aria-label={`${filter.label} maximum`}\n className=\"h-8 w-full rounded-md border border-input bg-background px-2 text-xs outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n {...(filter.maxPlaceholder !== undefined ? { placeholder: filter.maxPlaceholder } : {})}\n value={draft.max ?? \"\"}\n onChange={(event) =>\n setDraft(\n normalizeNumberFilterValue(\n { min: draft.min ?? \"\", max: event.target.value },\n \"max-input\",\n ),\n )\n }\n />\n </div>\n </div>\n </div>\n </div>\n );\n}\n\nfunction NestedMultiFilterPanel({\n filter,\n chrome = \"full\",\n}: {\n filter: FilterBarNestedMultiFilter;\n chrome?: FilterBarFilterPanelChrome;\n}) {\n const [activeGroup, setActiveGroup] = useState<string | null>(filter.groups[0]?.groupKey ?? null);\n const [draft, setDraft] = useDebouncedMultiDraft(filter.value, filter.onChange);\n const groups = filter.groups;\n const embedded = chrome === \"embedded\";\n const activeGroupData = useMemo(\n () => groups.find((group) => group.groupKey === activeGroup) ?? groups[0] ?? null,\n [groups, activeGroup],\n );\n\n const selectedByGroup = useMemo(() => {\n const counts: Record<string, number> = {};\n for (const group of groups) {\n let n = 0;\n for (const option of group.options) {\n if (draft[option.value]) n += 1;\n }\n counts[group.groupKey] = n;\n }\n return counts;\n }, [groups, draft]);\n\n const sortedGroups = useMemo(() => {\n const selected: typeof groups = [];\n const rest: typeof groups = [];\n for (const group of groups) {\n if ((selectedByGroup[group.groupKey] ?? 0) > 0) selected.push(group);\n else rest.push(group);\n }\n return [...selected, ...rest];\n }, [groups, selectedByGroup]);\n\n const clearGroup = (groupKey: string) => {\n const group = groups.find((g) => g.groupKey === groupKey);\n if (!group) return;\n const next = { ...draft };\n for (const option of group.options) {\n delete next[option.value];\n }\n setDraft(next);\n };\n\n return (\n <div role=\"dialog\" className=\"flex\">\n <div\n data-filter-panel-chrome={chrome}\n className={cn(\n \"min-w-[14rem] max-w-[16rem] text-popover-foreground\",\n embedded\n ? \"p-0\"\n : \"rounded-md border border-border bg-popover p-2 shadow-sm shadow-black/5\",\n )}\n >\n {!embedded && (\n <div className=\"mb-2 flex items-center justify-between gap-2\">\n <div className=\"text-[10px] font-medium uppercase tracking-wide text-muted-foreground\">\n {filter.label}\n </div>\n <button\n type=\"button\"\n className=\"text-[10px] text-primary disabled:text-muted-foreground\"\n onClick={() => setDraft({})}\n disabled={Object.keys(draft).length === 0}\n >\n Clear all\n </button>\n </div>\n )}\n\n <div className=\"max-h-72 space-y-0.5 overflow-auto\">\n {sortedGroups.map((group) => {\n const selected = selectedByGroup[group.groupKey] ?? 0;\n const isActive = group.groupKey === activeGroup;\n return (\n <div\n key={group.groupKey}\n role=\"button\"\n tabIndex={0}\n onMouseEnter={() => setActiveGroup(group.groupKey)}\n onFocus={() => setActiveGroup(group.groupKey)}\n onClick={() => setActiveGroup(group.groupKey)}\n onKeyDown={(event) => {\n if (event.key === \"Enter\" || event.key === \" \" || event.key === \"ArrowRight\") {\n event.preventDefault();\n setActiveGroup(group.groupKey);\n }\n }}\n className={cn(\n \"flex cursor-pointer items-center justify-between gap-2 rounded-md px-1.5 py-0.5 text-sm\",\n \"hover:bg-accent/50 focus-visible:bg-accent/50 focus-visible:outline-none\",\n isActive && \"bg-accent/60\",\n )}\n >\n <span className=\"min-w-0 flex-1 truncate\">{group.label ?? group.groupKey}</span>\n {selected > 0 && (\n <span className=\"rounded-full bg-primary/15 px-1.5 text-[10px] font-medium text-primary\">\n {selected}/{group.options.length}\n </span>\n )}\n <Icon icon={UiChevronRight} className=\"shrink-0 text-muted-foreground\" />\n </div>\n );\n })}\n {groups.length === 0 && (\n <div className=\"px-2 py-3 text-sm text-muted-foreground\">No groups</div>\n )}\n </div>\n </div>\n\n {activeGroupData && (\n <div\n onMouseEnter={() => setActiveGroup(activeGroupData.groupKey)}\n className=\"ml-1.5 min-w-[16rem] max-w-[20rem] rounded-md border border-border bg-popover p-2 text-popover-foreground shadow-sm shadow-black/5\"\n >\n <div className=\"mb-2 flex items-center justify-between gap-2\">\n <div className=\"text-[10px] font-medium uppercase tracking-wide text-muted-foreground\">\n {activeGroupData.label ?? activeGroupData.groupKey}\n </div>\n <button\n type=\"button\"\n className=\"text-[10px] text-primary disabled:text-muted-foreground\"\n onClick={() => clearGroup(activeGroupData.groupKey)}\n disabled={(selectedByGroup[activeGroupData.groupKey] ?? 0) === 0}\n >\n Clear\n </button>\n </div>\n\n <div className=\"max-h-72 space-y-0.5 overflow-auto\">\n {activeGroupData.options.map((option) => {\n const mode = draft[option.value] ?? \"neutral\";\n const title = option.title ?? multiSelectOptionText(option);\n return (\n <div\n key={option.value}\n role=\"button\"\n tabIndex={0}\n data-filter-option={option.value}\n className=\"rounded-md px-1.5 py-0.5 hover:bg-accent/50 focus-visible:bg-accent/50 focus-visible:outline-none\"\n onClick={() =>\n setDraft(updateMultiFilterValue(draft, option.value, nextFilterMode(mode)))\n }\n onKeyDown={(event) => {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n setDraft(updateMultiFilterValue(draft, option.value, nextFilterMode(mode)));\n } else if (event.key === \"ArrowLeft\") {\n event.preventDefault();\n setActiveGroup(null);\n }\n }}\n >\n <FilterPill\n className=\"w-full justify-between\"\n label={renderNestedOptionLabel(option, activeGroupData.groupKey)}\n mode={mode}\n title={title}\n togglePosition=\"right\"\n onModeChange={(next) =>\n setDraft(updateMultiFilterValue(draft, option.value, next))\n }\n />\n </div>\n );\n })}\n {activeGroupData.options.length === 0 && (\n <div className=\"px-2 py-3 text-sm text-muted-foreground\">No values</div>\n )}\n </div>\n </div>\n )}\n </div>\n );\n}\n\nfunction NestedMultiFilterField({\n filter,\n grow,\n}: {\n filter: FilterBarNestedMultiFilter;\n grow: boolean;\n}) {\n const [open, setOpen] = useState(false);\n const [activeGroup, setActiveGroup] = useState<string | null>(null);\n const [draft, setDraft] = useDebouncedMultiDraft(filter.value, filter.onChange);\n\n const popup = useAnchoredPopup(open, (next) => {\n setOpen(next);\n if (!next) setActiveGroup(null);\n });\n\n const summary = summarizeMultiFilter(filter.label, draft);\n const groups = filter.groups;\n const activeGroupData = useMemo(\n () => groups.find((group) => group.groupKey === activeGroup) ?? null,\n [groups, activeGroup],\n );\n\n // Selected count per group, used in the outer list.\n const selectedByGroup = useMemo(() => {\n const counts: Record<string, number> = {};\n for (const group of groups) {\n let n = 0;\n for (const option of group.options) {\n if (draft[option.value]) n += 1;\n }\n counts[group.groupKey] = n;\n }\n return counts;\n }, [groups, draft]);\n\n // Groups with active selections sort to the top so the user always sees\n // what's filtered without scrolling. Within each partition, the original\n // order from the consumer is preserved.\n const sortedGroups = useMemo(() => {\n const selected: typeof groups = [];\n const rest: typeof groups = [];\n for (const group of groups) {\n if ((selectedByGroup[group.groupKey] ?? 0) > 0) selected.push(group);\n else rest.push(group);\n }\n return [...selected, ...rest];\n }, [groups, selectedByGroup]);\n\n const clearGroup = (groupKey: string) => {\n const group = groups.find((g) => g.groupKey === groupKey);\n if (!group) return;\n const next = { ...draft };\n for (const option of group.options) {\n delete next[option.value];\n }\n setDraft(next);\n };\n\n return (\n <div\n title={filter.description}\n className={cn(\n \"inline-flex min-w-0\",\n grow ? \"min-w-[8rem] max-w-[12rem] flex-1\" : \"shrink-0\",\n filter.disabled && \"opacity-60\",\n filter.className,\n )}\n >\n <Button\n ref={popup.refs.setReference as Ref<HTMLButtonElement>}\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n aria-label={`${filter.label} filter`}\n disabled={filter.disabled}\n className={cn(\n \"min-w-0 gap-2 font-normal\",\n grow ? \"w-full max-w-[12rem] justify-between\" : \"w-auto max-w-[8.5rem] px-2.5\",\n summary === filter.label && \"text-muted-foreground\",\n )}\n {...popup.getReferenceProps()}\n >\n <span className=\"truncate\">{summary}</span>\n <Icon icon={open ? UiChevronUp : UiChevronDown} className=\"text-muted-foreground\" />\n </Button>\n\n {open && (\n <FloatingPortal>\n <FloatingFocusManager context={popup.context} modal={false}>\n <div\n ref={popup.refs.setFloating}\n role=\"dialog\"\n aria-label={filter.label}\n style={{ ...popup.floatingStyles, zIndex: popup.floatingZ }}\n className=\"flex\"\n {...popup.getFloatingProps()}\n >\n <div className=\"min-w-[14rem] max-w-[16rem] rounded-md border border-border bg-popover p-2 text-popover-foreground shadow-lg shadow-black/5\">\n <div className=\"mb-2 flex items-center justify-between gap-2\">\n <div className=\"text-[10px] font-medium uppercase tracking-wide text-muted-foreground\">\n {filter.label}\n </div>\n <button\n type=\"button\"\n className=\"text-[10px] text-primary disabled:text-muted-foreground\"\n onClick={() => setDraft({})}\n disabled={Object.keys(draft).length === 0}\n >\n Clear all\n </button>\n </div>\n\n <div className=\"max-h-72 space-y-0.5 overflow-auto\">\n {sortedGroups.map((group) => {\n const selected = selectedByGroup[group.groupKey] ?? 0;\n const isActive = group.groupKey === activeGroup;\n return (\n <div\n key={group.groupKey}\n role=\"button\"\n tabIndex={0}\n onMouseEnter={() => setActiveGroup(group.groupKey)}\n onFocus={() => setActiveGroup(group.groupKey)}\n onClick={() => setActiveGroup(group.groupKey)}\n onKeyDown={(event) => {\n if (\n event.key === \"Enter\" ||\n event.key === \" \" ||\n event.key === \"ArrowRight\"\n ) {\n event.preventDefault();\n setActiveGroup(group.groupKey);\n }\n }}\n className={cn(\n \"flex cursor-pointer items-center justify-between gap-2 rounded-md px-1.5 py-0.5 text-sm\",\n \"hover:bg-accent/50 focus-visible:bg-accent/50 focus-visible:outline-none\",\n isActive && \"bg-accent/60\",\n )}\n >\n <span className=\"min-w-0 flex-1 truncate\">{group.label ?? group.groupKey}</span>\n {selected > 0 && (\n <span className=\"rounded-full bg-primary/15 px-1.5 text-[10px] font-medium text-primary\">\n {selected}/{group.options.length}\n </span>\n )}\n <Icon icon={UiChevronRight} className=\"shrink-0 text-muted-foreground\" />\n </div>\n );\n })}\n {groups.length === 0 && (\n <div className=\"px-2 py-3 text-sm text-muted-foreground\">No groups</div>\n )}\n </div>\n </div>\n\n {activeGroupData && (\n <div\n onMouseEnter={() => setActiveGroup(activeGroupData.groupKey)}\n className=\"ml-1.5 min-w-[16rem] max-w-[20rem] rounded-md border border-border bg-popover p-2 text-popover-foreground shadow-lg shadow-black/5\"\n >\n <div className=\"mb-2 flex items-center justify-between gap-2\">\n <div className=\"text-[10px] font-medium uppercase tracking-wide text-muted-foreground\">\n {activeGroupData.label ?? activeGroupData.groupKey}\n </div>\n <button\n type=\"button\"\n className=\"text-[10px] text-primary disabled:text-muted-foreground\"\n onClick={() => clearGroup(activeGroupData.groupKey)}\n disabled={(selectedByGroup[activeGroupData.groupKey] ?? 0) === 0}\n >\n Clear\n </button>\n </div>\n\n <div className=\"max-h-72 space-y-0.5 overflow-auto\">\n {activeGroupData.options.map((option) => {\n const mode = draft[option.value] ?? \"neutral\";\n const title = option.title ?? multiSelectOptionText(option);\n return (\n <div\n key={option.value}\n role=\"button\"\n tabIndex={0}\n data-filter-option={option.value}\n className=\"rounded-md px-1.5 py-0.5 hover:bg-accent/50 focus-visible:bg-accent/50 focus-visible:outline-none\"\n onClick={() =>\n setDraft(updateMultiFilterValue(draft, option.value, nextFilterMode(mode)))\n }\n onKeyDown={(event) => {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n setDraft(\n updateMultiFilterValue(draft, option.value, nextFilterMode(mode)),\n );\n } else if (event.key === \"ArrowLeft\") {\n event.preventDefault();\n setActiveGroup(null);\n }\n }}\n >\n <FilterPill\n className=\"w-full justify-between\"\n // Show only the value side here — the key is already\n // implied by the parent group panel.\n label={renderNestedOptionLabel(option, activeGroupData.groupKey)}\n mode={mode}\n title={title}\n togglePosition=\"right\"\n onModeChange={(next) =>\n setDraft(updateMultiFilterValue(draft, option.value, next))\n }\n />\n </div>\n );\n })}\n {activeGroupData.options.length === 0 && (\n <div className=\"px-2 py-3 text-sm text-muted-foreground\">No values</div>\n )}\n </div>\n </div>\n )}\n </div>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </div>\n );\n}\n\nfunction renderNestedOptionLabel(option: MultiSelectOption, groupKey: string): ReactNode {\n // If the option label already strips the key prefix, use it. Otherwise\n // strip it here so the inner panel doesn't repeat the key on every row.\n if (typeof option.label === \"string\") {\n const prefix = `${groupKey}=`;\n if (option.label.startsWith(prefix)) return option.label.slice(prefix.length);\n return option.label;\n }\n return option.label ?? option.value;\n}\n\nfunction SelectMultiFilterField({\n filter,\n grow,\n}: {\n filter: FilterBarSelectMultiFilter;\n grow: boolean;\n}) {\n return (\n <label\n title={filter.description}\n className={cn(\n \"flex h-8 items-center gap-2 rounded-md border border-input bg-muted/30 pl-2 pr-1 text-xs\",\n grow ? \"min-w-[12rem] max-w-[18rem] flex-1\" : \"min-w-[11rem] max-w-[15rem] shrink-0\",\n filter.disabled && \"opacity-60\",\n filter.className,\n )}\n >\n <span className=\"whitespace-nowrap font-medium uppercase tracking-wide text-muted-foreground\">\n {filter.label}\n </span>\n <MultiSelect\n options={filter.options}\n value={filter.value}\n onChange={filter.onChange}\n ariaLabel={`${filter.label} filter`}\n {...(filter.placeholder !== undefined ? { placeholder: filter.placeholder } : {})}\n {...(filter.disabled !== undefined ? { disabled: filter.disabled } : {})}\n triggerClassName=\"h-6 min-w-0 border-0 bg-transparent px-1 text-xs shadow-none focus-visible:ring-0\"\n menuClassName=\"left-auto right-0\"\n />\n </label>\n );\n}\n\nfunction RangeControlButton({\n kind,\n label,\n from = \"\",\n to = \"\",\n onApply,\n presets,\n timeEnabled,\n timeZone,\n timeZones,\n fromPlaceholder,\n toPlaceholder,\n emptyLabel,\n className,\n disabled,\n}: FilterBarRangeProps & { kind: \"date\" | \"time\"; label: string }) {\n return (\n <TimeRange\n kind={kind}\n label={label}\n from={from}\n to={to}\n onApply={onApply}\n {...(disabled !== undefined ? { disabled } : {})}\n {...(presets ? { presets } : {})}\n {...(timeEnabled !== undefined ? { timeEnabled } : {})}\n {...(timeZone ? { timeZone } : {})}\n {...(timeZones ? { timeZones } : {})}\n {...(fromPlaceholder ? { fromPlaceholder } : {})}\n {...(toPlaceholder ? { toPlaceholder } : {})}\n {...(emptyLabel ? { emptyLabel } : {})}\n {...(className ? { className } : {})}\n />\n );\n}\n\n// Anchored popup wired through floating-ui's portal so it escapes `overflow`\n// clipping from scroll-container ancestors (e.g. AppLayout's `<main>`), matching\n// Combobox/DropdownMenu. `flip`/`shift` keep it on-screen at viewport edges.\nfunction useAnchoredPopup(\n open: boolean,\n onOpenChange: (open: boolean) => void,\n placement: Placement = \"bottom-start\",\n) {\n const floatingZ = useFloatingZIndex();\n const { refs, floatingStyles, context } = useFloating({\n open,\n onOpenChange,\n placement,\n whileElementsMounted: autoUpdate,\n middleware: [offset(6), flip({ padding: 8 }), shift({ padding: 8 })],\n });\n const { getReferenceProps, getFloatingProps } = useInteractions([\n useClick(context),\n useDismiss(context, { escapeKey: false }),\n useRole(context, { role: \"dialog\" }),\n ]);\n useEscapeLayer(open, () => {\n onOpenChange(false);\n if (refs.domReference.current instanceof HTMLElement) refs.domReference.current.focus();\n });\n return { refs, floatingStyles, context, floatingZ, getReferenceProps, getFloatingProps };\n}\n\nfunction useMediaQuery(query: string) {\n const [matches, setMatches] = useState(() => {\n if (typeof window === \"undefined\" || !window.matchMedia) return false;\n return window.matchMedia(query).matches;\n });\n\n useEffect(() => {\n if (typeof window === \"undefined\" || !window.matchMedia) return;\n const media = window.matchMedia(query);\n const onChange = () => setMatches(media.matches);\n onChange();\n media.addEventListener?.(\"change\", onChange);\n return () => media.removeEventListener?.(\"change\", onChange);\n }, [query]);\n\n return matches;\n}\n\nfunction useDebouncedTextDraft(value: string, onChange: (value: string) => void) {\n const { autoSubmit } = useContext(FilterBarContext);\n const [draft, setDraft] = useState(value);\n const latestOnChange = useRef(onChange);\n\n useEffect(() => {\n latestOnChange.current = onChange;\n }, [onChange]);\n\n useEffect(() => {\n setDraft(value);\n }, [value]);\n\n useEffect(() => {\n if (draft === value) return;\n\n if (!autoSubmit) {\n latestOnChange.current(draft);\n return;\n }\n\n const timeoutId = window.setTimeout(() => {\n latestOnChange.current(draft);\n }, FILTER_INPUT_DEBOUNCE_MS);\n\n return () => window.clearTimeout(timeoutId);\n }, [autoSubmit, draft, value]);\n\n return [draft, setDraft] as const;\n}\n\nfunction useDebouncedNumberDraft(\n value: FilterBarNumberValue,\n onChange: (value: FilterBarNumberValue) => void,\n) {\n const { autoSubmit } = useContext(FilterBarContext);\n const [draft, setDraft] = useState(value);\n const latestOnChange = useRef(onChange);\n\n useEffect(() => {\n latestOnChange.current = onChange;\n }, [onChange]);\n\n useEffect(() => {\n setDraft(value);\n }, [value.max, value.min]);\n\n useEffect(() => {\n if (sameNumberFilterValue(draft, value)) return;\n\n if (!autoSubmit) {\n latestOnChange.current(draft);\n return;\n }\n\n const timeoutId = window.setTimeout(() => {\n latestOnChange.current(draft);\n }, FILTER_INPUT_DEBOUNCE_MS);\n\n return () => window.clearTimeout(timeoutId);\n }, [autoSubmit, draft, value]);\n\n return [draft, setDraft] as const;\n}\n\nfunction sameNumberFilterValue(left: FilterBarNumberValue, right: FilterBarNumberValue) {\n return (left.min ?? \"\") === (right.min ?? \"\") && (left.max ?? \"\") === (right.max ?? \"\");\n}\n\ntype NumberFilterBounds = {\n min: number;\n max: number;\n step: number;\n};\n\ntype NumberFilterSource = \"min-input\" | \"max-input\";\n\nfunction resolveNumberFilterBounds(filter: FilterBarNumberFilter): NumberFilterBounds {\n const parsedMin = parseFilterNumber(filter.value.min);\n const parsedMax = parseFilterNumber(filter.value.max);\n const fallbackMin = parsedMin ?? 0;\n const fallbackMax = parsedMax ?? Math.max(fallbackMin + 100, 100);\n const min = filter.domainMin ?? Math.min(fallbackMin, fallbackMax);\n const max = filter.domainMax ?? Math.max(fallbackMax, min + 100);\n const step = filter.step && filter.step > 0 ? filter.step : 1;\n\n return {\n min,\n max: max <= min ? min + step : max,\n step,\n };\n}\n\nfunction summarizeNumberFilter(\n filter: FilterBarNumberFilter,\n bounds: NumberFilterBounds,\n value: FilterBarNumberValue,\n) {\n const parsedMin = parseFilterNumber(value.min);\n const parsedMax = parseFilterNumber(value.max);\n const hasMin = String(value.min ?? \"\").trim() !== \"\";\n const hasMax = String(value.max ?? \"\").trim() !== \"\";\n\n if (!hasMin && !hasMax) {\n return filter.label;\n }\n\n const minLabel =\n parsedMin == null\n ? formatNumberValue(bounds.min, filter)\n : formatNumberValue(parsedMin, filter);\n const maxLabel =\n parsedMax == null\n ? formatNumberValue(bounds.max, filter)\n : formatNumberValue(parsedMax, filter);\n\n if (hasMin && hasMax) {\n if (minLabel === maxLabel) {\n return `${filter.label} ${minLabel}`;\n }\n return `${filter.label} ${minLabel}-${maxLabel}`;\n }\n\n if (hasMin) {\n return `${filter.label} >=${minLabel}`;\n }\n\n return `${filter.label} <=${maxLabel}`;\n}\n\nfunction normalizeNumberFilterValue(\n nextValue: FilterBarNumberValue,\n source: NumberFilterSource,\n): FilterBarNumberValue {\n let min = nextValue.min ?? \"\";\n let max = nextValue.max ?? \"\";\n\n const parsedMin = parseFilterNumber(min);\n const parsedMax = parseFilterNumber(max);\n\n if (parsedMin != null && parsedMax != null && parsedMin > parsedMax) {\n if (source.startsWith(\"min\")) {\n max = min;\n } else {\n min = max;\n }\n }\n\n return { min, max };\n}\n\nfunction numberFilterValueFromSlider(\n value: [number, number],\n bounds: NumberFilterBounds,\n): FilterBarNumberValue {\n const [min, max] = value;\n return {\n min: min <= bounds.min ? \"\" : formatRawNumber(clampNumber(min, bounds.min, bounds.max)),\n max: max >= bounds.max ? \"\" : formatRawNumber(clampNumber(max, bounds.min, bounds.max)),\n };\n}\n\nfunction parseFilterNumber(value: string | undefined) {\n if (!value?.trim()) return null;\n const parsed = Number(value);\n return Number.isFinite(parsed) ? parsed : null;\n}\n\nfunction clampNumber(value: number, min: number, max: number) {\n return Math.min(max, Math.max(min, value));\n}\n\nfunction formatNumberValue(value: number, filter: FilterBarNumberFilter) {\n if (filter.formatValue) {\n return filter.formatValue(value);\n }\n\n return formatRawNumber(value);\n}\n\nfunction formatRawNumber(value: number) {\n return Number.isInteger(value) ? String(value) : String(Number(value.toFixed(6)));\n}\n\ntype FilterBarValue =\n | string\n | string[]\n | boolean\n // A tri-state filter's \"off\" position is undefined, so it is a real staged\n // value rather than the absence of one.\n | undefined\n | FilterBarNumberValue\n | Record<string, FilterBarMultiFilterMode>;\n\nfunction createFilterValueMap(filters: FilterBarFilter[]) {\n return Object.fromEntries(filters.map((filter) => [filter.key, filterBarFilterValue(filter)]));\n}\n\n// A date range applies the moment it is applied in its own panel, exactly as\n// the bar's trailing range control does, so it has no value to stage and\n// nothing here ever writes one back to it.\nfunction isStageableFilter(\n filter: FilterBarFilter,\n): filter is Exclude<FilterBarFilter, FilterBarDateRangeFilter> {\n return filter.kind !== \"date-range\";\n}\n\nfunction filterBarFilterValue(filter: FilterBarFilter): FilterBarValue {\n if (!isStageableFilter(filter)) return undefined;\n return filter.value;\n}\n\nfunction filterWithStagedValue(\n filter: FilterBarFilter,\n value: FilterBarValue,\n onChange: (value: FilterBarValue) => void,\n): FilterBarFilter {\n if (!isStageableFilter(filter)) return filter;\n if (filter.kind === \"text\") {\n return {\n ...filter,\n value: String(value ?? \"\"),\n onChange: (next: string) => onChange(next),\n };\n }\n if (filter.kind === \"lookup\") {\n return {\n ...filter,\n value: String(value ?? \"\"),\n onChange: (next: string) => onChange(next),\n };\n }\n if (filter.kind === \"workload\") {\n return {\n ...filter,\n value: String(value ?? \"\"),\n onChange: (next: string) => onChange(next),\n };\n }\n if (filter.kind === \"lookup-multi\") {\n return {\n ...filter,\n value: Array.isArray(value) ? value.map(String) : [],\n onChange: (next: string[]) => onChange(next),\n };\n }\n if (filter.kind === \"multi\") {\n return {\n ...filter,\n value: isMultiFilterValue(value) ? value : {},\n onChange: (next: Record<string, FilterBarMultiFilterMode>) => onChange(next),\n };\n }\n if (filter.kind === \"nested-multi\") {\n return {\n ...filter,\n value: isMultiFilterValue(value) ? value : {},\n onChange: (next: Record<string, FilterBarMultiFilterMode>) => onChange(next),\n };\n }\n if (filter.kind === \"select-multi\") {\n return {\n ...filter,\n value: Array.isArray(value) ? value.map(String) : [],\n onChange: (next: string[]) => onChange(next),\n };\n }\n if (filter.kind === \"number\") {\n return {\n ...filter,\n value: isNumberFilterValue(value) ? value : {},\n onChange: (next: FilterBarNumberValue) => onChange(next),\n };\n }\n if (filter.kind === \"enum\") {\n return {\n ...filter,\n value: String(value ?? \"\"),\n onChange: (next: string) => onChange(next),\n };\n }\n if (filter.kind === \"tristate\") {\n return {\n ...filter,\n value: value === undefined ? undefined : Boolean(value),\n onChange: (next: TriState) => onChange(next),\n };\n }\n return {\n ...filter,\n value: Boolean(value),\n onChange: (next: boolean) => onChange(next),\n };\n}\n\nfunction applyStagedFilterValues(\n filters: FilterBarFilter[],\n stagedValues: Record<string, FilterBarValue>,\n) {\n for (const filter of filters) {\n if (!isStageableFilter(filter)) continue;\n // Key presence, not `??`: undefined is a tri-state filter's \"off\" value and\n // must still be applied over a live true/false.\n const next = Object.hasOwn(stagedValues, filter.key)\n ? stagedValues[filter.key]\n : filterBarFilterValue(filter);\n if (sameFilterBarValue(filterBarFilterValue(filter), next)) continue;\n applyFilterBarValue(filter, next);\n }\n}\n\nfunction applyFilterBarValue(filter: FilterBarFilter, value: FilterBarValue) {\n if (!isStageableFilter(filter)) return;\n if (\n filter.kind === \"text\" ||\n filter.kind === \"lookup\" ||\n filter.kind === \"workload\" ||\n filter.kind === \"enum\"\n ) {\n filter.onChange(String(value ?? \"\"));\n return;\n }\n if (filter.kind === \"lookup-multi\" || filter.kind === \"select-multi\") {\n filter.onChange(Array.isArray(value) ? value.map(String) : []);\n return;\n }\n if (filter.kind === \"number\") {\n filter.onChange(isNumberFilterValue(value) ? value : {});\n return;\n }\n if (filter.kind === \"boolean\") {\n filter.onChange(Boolean(value));\n return;\n }\n if (filter.kind === \"tristate\") {\n filter.onChange(value === undefined ? undefined : Boolean(value));\n return;\n }\n filter.onChange(isMultiFilterValue(value) ? value : {});\n}\n\nfunction sameFilterBarValue(left: FilterBarValue, right: FilterBarValue) {\n return JSON.stringify(left) === JSON.stringify(right);\n}\n\nfunction isNumberFilterValue(value: FilterBarValue): value is FilterBarNumberValue {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction isMultiFilterValue(\n value: FilterBarValue,\n): value is Record<string, FilterBarMultiFilterMode> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction calculateVisibleFilterCount(widths: number[], availableWidth: number) {\n if (widths.length === 0) return 0;\n\n let used = 0;\n let count = 0;\n for (const width of widths) {\n const nextUsed = used + (count > 0 ? FILTER_BAR_GAP_PX : 0) + width;\n if (nextUsed > availableWidth) break;\n used = nextUsed;\n count += 1;\n }\n return count;\n}\n\nfunction sumFilterWidths(widths: number[]) {\n if (widths.length === 0) return 0;\n return (\n widths.reduce((total, width) => total + width, 0) + (widths.length - 1) * FILTER_BAR_GAP_PX\n );\n}\n\nfunction estimateFilterWidth(filter: FilterBarFilter) {\n if (filter.kind === \"boolean\") return Math.max(88, filter.label.length * 8 + 40);\n // Multi renders as a combobox field (min-w-[11rem] ≈ 176px); nested keeps\n // its compact trigger button.\n if (filter.kind === \"multi\") return 176;\n if (filter.kind === \"nested-multi\") return 136;\n if (filter.kind === \"workload\") return 224;\n if (filter.kind === \"number\") return 152;\n return Math.max(144, filter.label.length * 8 + 96);\n}\n"],"names":["_a"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FilterBar.js","sources":["../../src/components/FilterBar.tsx"],"sourcesContent":["import {\n useCallback,\n useContext,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n type ReactNode,\n type Ref,\n type RefObject,\n} from \"react\";\nimport {\n autoUpdate,\n flip,\n FloatingFocusManager,\n FloatingPortal,\n offset,\n shift,\n useClick,\n useDismiss,\n useFloating,\n useInteractions,\n useMergeRefs,\n useRole,\n type Placement,\n} from \"@floating-ui/react\";\nimport { FilterPill } from \"../data/FilterPill\";\nimport {\n FILTER_INPUT_DEBOUNCE_MS,\n FilterBarContext,\n} from \"./filter-bar-context\";\nimport {\n comboboxLabelProps,\n lookupFieldWidthClass,\n multiSelectOptionText,\n nextFilterMode,\n sizedIcon,\n summarizeMultiFilter,\n updateMultiFilterValue,\n useDebouncedMultiDraft,\n type FilterBarMultiFilterMode,\n} from \"./filter-bar-field-utils\";\nimport {\n MultiFilterField,\n MultiFilterPanel,\n type FilterBarMultiFilter,\n} from \"./filter-bar-multi\";\nimport {\n clearFilterBarFilter,\n dateRangeFilterProps,\n isFilterBarFilterActive,\n} from \"./filter-bar-utils\";\n\nexport {\n TriStateMultiSelect,\n type TriStateMultiSelectProps,\n} from \"./filter-bar-multi\";\nexport type { FilterBarMultiFilter, FilterBarMultiFilterMode };\nimport { Icon, LabelIcon, type LabelIconSpec } from \"../data/Icon\";\nimport { formatDateTimeRelative } from \"../data/cells/timestamp-format\";\nimport {\n UiChevronDown,\n UiChevronRight,\n UiChevronUp,\n UiClose,\n UiFilter,\n UiSearch,\n} from \"../icons\";\nimport { cn } from \"../lib/utils\";\nimport { useMediaQuery } from \"../hooks/use-media-query\";\nimport { Modal } from \"../overlay/Modal\";\nimport { useEscapeLayer, useFloatingZIndex } from \"../overlay/modalStack\";\nimport { Button } from \"./button\";\nimport { Combobox, type ComboboxOption } from \"./Combobox\";\nimport { DateTimePicker } from \"./DateTimePicker\";\nimport { MultiSelect, type MultiSelectOption } from \"./MultiSelect\";\nimport { RangeSlider } from \"./RangeSlider\";\nimport { TimeRange, type TimeRangePresetGroup } from \"./TimeRange\";\nimport {\n TriStateToggle,\n type TriState,\n type TriStateLabels,\n} from \"./TriStateToggle\";\nimport { WorkloadPicker } from \"./WorkloadPicker\";\nimport type { WorkloadKind, WorkloadResource } from \"./workload-picker-utils\";\n\nconst FILTER_BAR_GAP_PX = 8;\nconst FILTER_BAR_OVERFLOW_TRIGGER_ESTIMATE_PX = 44;\n\nexport type FilterBarSearchProps = {\n /** Controlled search text. */\n value: string;\n /** Called with the next search text. Debounced when `autoSubmit` is true. */\n onChange: (value: string) => void;\n /** Placeholder shown in the search input. */\n placeholder?: string;\n /** Accessible label for the search input. */\n ariaLabel?: string;\n /** Classes applied to the search input. */\n className?: string;\n};\n\nexport type FilterBarTextFilter = {\n /** Stable filter key used for rendering and overflow measurement. */\n key: string;\n /** Renders a free-text input. */\n kind: \"text\";\n /** Filter label shown on the control. */\n label: string;\n /** Leading glyph shown before the label: a runtime icon name or a node. */\n icon?: LabelIconSpec;\n /** Optional helper text shown in filter popovers. */\n description?: string;\n /** Controlled input value. */\n value: string;\n /** Called with the next input value. */\n onChange: (value: string) => void;\n /** Placeholder shown in the input. */\n placeholder?: string;\n /** Disables this filter. */\n disabled?: boolean;\n /** Classes applied to this filter control. */\n className?: string;\n};\n\nexport type FilterBarLookupOption = {\n /** Option value written to filter state. */\n value: string;\n /** Optional display label; falls back to `value`. */\n label?: string;\n /** Prevents choosing the option. */\n disabled?: boolean;\n /** Optional browser tooltip. */\n title?: string;\n /** Row count behind this option, rendered as a trailing badge. */\n count?: number;\n};\n\nexport type FilterBarLookupInputType = \"text\" | \"number\" | \"date\";\n\nexport type FilterBarLookupFilter = {\n key: string;\n /** Renders an input backed by a datalist-style option set. */\n kind: \"lookup\";\n label: string;\n /** Leading glyph shown before the label: a runtime icon name or a node. */\n icon?: LabelIconSpec;\n description?: string;\n /** Controlled selected or typed value. */\n value: string;\n /** Suggestions for the lookup input. */\n options: FilterBarLookupOption[];\n onChange: (value: string) => void;\n placeholder?: string;\n /** Native input type for the lookup field. */\n inputType?: FilterBarLookupInputType;\n disabled?: boolean;\n className?: string;\n};\n\nexport type FilterBarLookupMultiFilter = {\n key: string;\n /** Renders a multi-value lookup filter. */\n kind: \"lookup-multi\";\n label: string;\n /** Leading glyph shown before the label: a runtime icon name or a node. */\n icon?: LabelIconSpec;\n description?: string;\n /** Controlled selected values. */\n value: string[];\n /** Suggestions for the lookup input. */\n options: FilterBarLookupOption[];\n onChange: (value: string[]) => void;\n placeholder?: string;\n /**\n * Optional async search invoked (debounced) as the user types; the consumer\n * fetches matching options and feeds them back via `options`. When set, the\n * typeahead is server-driven (results replace the list); when absent it\n * filters the static `options` client-side.\n */\n onSearch?: (query: string) => void;\n /** Shows a loading indicator while a search is in flight. */\n loading?: boolean;\n /** True when `options` is a capped head of a larger server-side result set. */\n truncated?: boolean;\n /** Total distinct option count behind a truncated result set. */\n total?: number;\n disabled?: boolean;\n className?: string;\n};\n\nexport type FilterBarNestedMultiGroup = {\n /** Stable group id. */\n groupKey: string;\n /** Optional visible group label. */\n label?: string;\n /** Options in this group. */\n options: MultiSelectOption[];\n};\n\nexport type FilterBarNestedMultiFilter = {\n key: string;\n /** Renders grouped include/exclude chips. */\n kind: \"nested-multi\";\n label: string;\n /** Leading glyph shown before the label: a runtime icon name or a node. */\n icon?: LabelIconSpec;\n description?: string;\n // Same wire shape as FilterBarMultiFilter so consumers can swap kinds\n // without changing their state slot.\n value: Record<string, FilterBarMultiFilterMode>;\n groups: FilterBarNestedMultiGroup[];\n onChange: (value: Record<string, FilterBarMultiFilterMode>) => void;\n disabled?: boolean;\n className?: string;\n};\n\nexport type FilterBarWorkloadFilter = {\n key: string;\n /** Renders the shared Kubernetes workload picker. */\n kind: \"workload\";\n label: string;\n icon?: LabelIconSpec;\n description?: string;\n value: string;\n onChange: (value: string) => void;\n loadWorkloads: (\n kinds: WorkloadKind[],\n namespace?: string,\n ) => Promise<Partial<Record<WorkloadKind, WorkloadResource[]>>>;\n kinds?: WorkloadKind[];\n /**\n * Render the sole loaded workload as plain text rather than a picker. See\n * {@link WorkloadPickerProps.collapseSingleOption}.\n */\n collapseSingleOption?: boolean;\n disabled?: boolean;\n className?: string;\n};\n\nexport type FilterBarSelectMultiFilter = {\n key: string;\n /** Renders a compact multi-select dropdown. */\n kind: \"select-multi\";\n label: string;\n /** Leading glyph shown before the label: a runtime icon name or a node. */\n icon?: LabelIconSpec;\n description?: string;\n /** Controlled selected values. */\n value: string[];\n /** Available dropdown options. */\n options: MultiSelectOption[];\n onChange: (value: string[]) => void;\n placeholder?: string;\n disabled?: boolean;\n className?: string;\n};\n\nexport type FilterBarNumberValue = {\n /** Minimum bound as a string so callers can preserve draft input. */\n min?: string;\n /** Comparison used by the lower edge. Defaults to inclusive. */\n minOperator?: \">\" | \">=\";\n /** Maximum bound as a string so callers can preserve draft input. */\n max?: string;\n /** Comparison used by the upper edge. Defaults to inclusive. */\n maxOperator?: \"<\" | \"<=\";\n};\n\nexport type FilterBarDurationUnit = \"ms\" | \"s\" | \"m\" | \"h\";\n\nexport type FilterBarDurationValue = FilterBarNumberValue & {\n minUnit?: FilterBarDurationUnit;\n maxUnit?: FilterBarDurationUnit;\n};\n\nexport type FilterBarNumberFilter = {\n key: string;\n /** Renders paired min/max numeric controls. */\n kind: \"number\";\n label: string;\n /** Leading glyph shown before the label: a runtime icon name or a node. */\n icon?: LabelIconSpec;\n description?: string;\n /** Controlled min/max value. */\n value: FilterBarNumberValue;\n onChange: (value: FilterBarNumberValue) => void;\n /** Lower bound used by the optional range slider. */\n domainMin?: number;\n /** Upper bound used by the optional range slider. */\n domainMax?: number;\n /** Step size for number inputs and slider movement. */\n step?: number;\n /** Formatter used for slider labels. */\n formatValue?: (value: number) => string;\n /** Fixed display unit; values are never converted by the control. */\n unit?: string;\n minPlaceholder?: string;\n maxPlaceholder?: string;\n disabled?: boolean;\n className?: string;\n};\n\nexport type FilterBarDurationFilter = {\n key: string;\n /** Renders paired duration bounds with an operator and unit per edge. */\n kind: \"duration\";\n label: string;\n icon?: LabelIconSpec;\n description?: string;\n value: FilterBarDurationValue;\n onChange: (value: FilterBarDurationValue) => void;\n /** Storage unit used for bare values and as the default selector value. */\n unit?: FilterBarDurationUnit;\n domainMin?: number;\n domainMax?: number;\n step?: number;\n minPlaceholder?: string;\n maxPlaceholder?: string;\n disabled?: boolean;\n className?: string;\n};\n\nexport type FilterBarEnumFilter = {\n key: string;\n /** Renders a single-select dropdown. */\n kind: \"enum\";\n label: string;\n /** Leading glyph shown before the label: a runtime icon name or a node. */\n icon?: LabelIconSpec;\n description?: string;\n /** Controlled selected value. */\n value: string;\n /** Available enum options. */\n options: Array<{ value: string; label?: string }>;\n onChange: (value: string) => void;\n placeholder?: string;\n disabled?: boolean;\n className?: string;\n};\n\nexport type FilterBarBooleanFilter = {\n key: string;\n /** Renders a boolean toggle. */\n kind: \"boolean\";\n label: string;\n /** Leading glyph shown before the label: a runtime icon name or a node. */\n icon?: LabelIconSpec;\n description?: string;\n /** Controlled checked state. */\n value: boolean;\n onChange: (value: boolean) => void;\n disabled?: boolean;\n className?: string;\n};\n\nexport type FilterBarTriStateFilter = {\n key: string;\n /** Renders a yes/no/any toggle for a nullable boolean field. */\n kind: \"tristate\";\n label: string;\n /** Leading glyph shown before the label: a runtime icon name or a node. */\n icon?: LabelIconSpec;\n description?: string;\n /** Controlled state; undefined means the filter is off. */\n value: TriState;\n onChange: (value: TriState) => void;\n /** Per-state wording, e.g. { on: \"Deductible\", off: \"Not deductible\" }. */\n labels?: TriStateLabels;\n disabled?: boolean;\n className?: string;\n};\n\nexport type FilterBarFilter = (\n | FilterBarTextFilter\n | FilterBarLookupFilter\n | FilterBarLookupMultiFilter\n | FilterBarMultiFilter\n | FilterBarNestedMultiFilter\n | FilterBarWorkloadFilter\n | FilterBarSelectMultiFilter\n | FilterBarNumberFilter\n | FilterBarDurationFilter\n | FilterBarEnumFilter\n | FilterBarBooleanFilter\n | FilterBarTriStateFilter\n | FilterBarDateRangeFilter\n) & {\n /** Keeps a secondary filter in the overflow menu without removing it. */\n placement?: \"auto\" | \"overflow\";\n};\n\nexport type FilterBarRangePreset = {\n /** Visible preset label. */\n label: string;\n /** Start value applied by the preset. */\n from: string;\n /** End value applied by the preset. */\n to: string;\n};\n\nexport type FilterBarRangeProps = {\n /** Current start value. */\n from?: string;\n /** Current end value. */\n to?: string;\n /** Called when the user applies the range. */\n onApply: (from: string, to: string) => void;\n /** Presets or preset groups shown in the range popup. */\n presets?: Array<FilterBarRangePreset | TimeRangePresetGroup>;\n /** Enables time inputs when using date-time values. */\n timeEnabled?: boolean;\n /** Selected timezone. */\n timeZone?: string;\n /** Available timezone options. */\n timeZones?: string[];\n fromPlaceholder?: string;\n toPlaceholder?: string;\n emptyLabel?: string;\n className?: string;\n disabled?: boolean;\n};\n\n/**\n * A date range that lives among the filters rather than in the bar's trailing\n * range slot.\n *\n * The trailing slot holds one range, which is right when a result has one\n * timestamp and the range is the primary way through it. A result with several\n * — `created_at` and `updated_at`, `@timestamp` and `event.ingested` — has no\n * such primary, and each of the others is a filter like any other.\n */\nexport type FilterBarDateRangeFilter = FilterBarRangeProps & {\n key: string;\n kind: \"date-range\";\n label: string;\n /** Leading glyph shown before the label: a runtime icon name or a node. */\n icon?: LabelIconSpec;\n description?: string;\n};\n\n/** The bar's own row. Shared with the overlay so the two cannot drift apart. */\nconst FILTER_BAR_ROW_CLASS =\n \"flex items-center gap-2 overflow-visible bg-background py-1.5\";\n\nexport type FilterBarProps = {\n /** Optional global search control shown first. */\n search?: FilterBarSearchProps;\n /** Structured filters rendered after search. */\n filters?: FilterBarFilter[];\n /** Date-time range control. */\n timeRange?: FilterBarRangeProps;\n /** Date-only range control. */\n dateRange?: FilterBarRangeProps;\n /** Additional content rendered in the filter row. */\n children?: ReactNode;\n /** Content rendered before search and filters. */\n leading?: ReactNode;\n /** Content rendered at the end of the bar. */\n trailing?: ReactNode;\n /** Classes applied to the root bar. */\n className?: string;\n /**\n * When false, debounced fields forward edits immediately and an Apply button\n * is rendered in the trailing slot. Defaults to true.\n */\n autoSubmit?: boolean;\n /** Called by the Apply button when `autoSubmit` is false. */\n onApply?: () => void;\n /** Label for the Apply button. */\n applyLabel?: string;\n /** Shows a pending state on the Apply button. */\n isPending?: boolean;\n /**\n * `responsive` moves hidden filters into an overflow popover; `wrap` lets\n * them wrap. Below the `md` breakpoint both modes collapse every filter into\n * the Filters sheet, so a phone never stacks one filter per row.\n */\n overflowMode?: \"responsive\" | \"wrap\";\n /**\n * Content that takes the bar's place while it is present — a bulk-action bar\n * that owns the row while rows are selected, say.\n *\n * The bar's own controls stay mounted, hidden rather than unmounted, so a\n * half-typed search survives the takeover and the row keeps whichever of the\n * two is taller. Nothing below it moves.\n */\n overlay?: ReactNode;\n};\n\nexport function FilterBar({\n search,\n filters,\n timeRange,\n dateRange,\n children,\n leading,\n trailing,\n className,\n autoSubmit = true,\n onApply,\n applyLabel = \"Apply\",\n isPending = false,\n overflowMode = \"responsive\",\n overlay,\n}: FilterBarProps) {\n const hasRangeControls = Boolean(timeRange || dateRange);\n const showApply = !autoSubmit && !!onApply;\n const allFilters = useMemo(() => {\n const configured = filters ?? [];\n return [\n ...configured.filter((filter) => filter.placement !== \"overflow\"),\n ...configured.filter((filter) => filter.placement === \"overflow\"),\n ];\n }, [filters]);\n const inlineFilterLimit = allFilters.findIndex(\n (filter) => filter.placement === \"overflow\",\n );\n const maximumInlineFilters =\n inlineFilterLimit === -1 ? allFilters.length : inlineFilterLimit;\n const hasForcedOverflow = maximumInlineFilters < allFilters.length;\n const mobileFilterOverflow = useMediaQuery(\"(max-width: 767px)\");\n const mobilePageOverflow = useMediaQuery(\"(max-width: 639px)\");\n const contextValue = useMemo(\n () => ({ autoSubmit, compact: mobileFilterOverflow }),\n [autoSubmit, mobileFilterOverflow],\n );\n // `wrap` describes how a crowded bar behaves on a desktop: it wraps instead\n // of hiding filters behind a trigger. At phone widths wrapping stacks every\n // filter into its own row and pushes the table off the screen, so below the\n // sheet breakpoint both modes collapse into the Filters sheet. Between the\n // sheet and `md` breakpoints wrap mode keeps wrapping: collapsing there would\n // hide filters a tablet has room for behind a popover.\n const mobileCollapse =\n overflowMode === \"responsive\" ? mobileFilterOverflow : mobilePageOverflow;\n const responsiveOverflow =\n allFilters.length > 0 &&\n (overflowMode === \"responsive\" || mobileCollapse || hasForcedOverflow);\n const filterListRef = useRef<HTMLDivElement>(null);\n const overflowTriggerRef = useRef<HTMLButtonElement>(null);\n const filterNodeRefs = useRef(new Map<string, HTMLDivElement>());\n const filterWidthCache = useRef(new Map<string, number>());\n const filterKeys = useMemo(\n () =>\n allFilters\n .map((filter) => `${filter.key}:${filter.placement ?? \"auto\"}`)\n .join(\"\\u0000\"),\n [allFilters],\n );\n const [visibleFilterCount, setVisibleFilterCount] =\n useState(maximumInlineFilters);\n\n // Latest-value refs so measureOverflow can be a stable useCallback. Reading\n // the current values through refs sidesteps the closure-staleness problem\n // without putting array references in the dep list — which is what caused\n // the \"Maximum update depth exceeded\" cascade (allFilters in the deps made\n // measureOverflow change on every render → ResizeObserver effect re-ran →\n // setVisibleFilterCount fired → repeat).\n const allFiltersRef = useRef(allFilters);\n const responsiveOverflowRef = useRef(responsiveOverflow);\n const mobileCollapseRef = useRef(mobileCollapse);\n const maximumInlineFiltersRef = useRef(maximumInlineFilters);\n allFiltersRef.current = allFilters;\n responsiveOverflowRef.current = responsiveOverflow;\n mobileCollapseRef.current = mobileCollapse;\n maximumInlineFiltersRef.current = maximumInlineFilters;\n\n useLayoutEffect(() => {\n setVisibleFilterCount(\n responsiveOverflowRef.current && mobileCollapseRef.current\n ? 0\n : maximumInlineFiltersRef.current,\n );\n }, [filterKeys, mobileCollapse]);\n\n const measureOverflow = useCallback(() => {\n const current = allFiltersRef.current;\n const maximumInline = maximumInlineFiltersRef.current;\n if (!responsiveOverflowRef.current) {\n setVisibleFilterCount(current.length);\n return;\n }\n if (mobileCollapseRef.current) {\n setVisibleFilterCount(0);\n return;\n }\n\n const filterList = filterListRef.current;\n if (!filterList) return;\n\n const availableWidth = Math.floor(filterList.getBoundingClientRect().width);\n if (availableWidth <= 0) return;\n\n const widths = current.slice(0, maximumInline).map((filter) => {\n const node = filterNodeRefs.current.get(filter.key);\n const measured = node?.getBoundingClientRect().width ?? 0;\n if (measured > 0) {\n const width = Math.ceil(measured);\n filterWidthCache.current.set(filter.key, width);\n return width;\n }\n return (\n filterWidthCache.current.get(filter.key) ?? estimateFilterWidth(filter)\n );\n });\n\n const triggerWidth = Math.ceil(\n overflowTriggerRef.current?.getBoundingClientRect().width ??\n FILTER_BAR_OVERFLOW_TRIGGER_ESTIMATE_PX,\n );\n const triggerGap = triggerWidth > 0 ? FILTER_BAR_GAP_PX : 0;\n const allInlineWidth = sumFilterWidths(widths);\n const forcedOverflow = maximumInline < current.length;\n const nextVisible =\n !forcedOverflow && allInlineWidth <= availableWidth\n ? maximumInline\n : calculateVisibleFilterCount(\n widths,\n Math.max(0, availableWidth - triggerWidth - triggerGap),\n );\n setVisibleFilterCount((prev) =>\n prev === nextVisible ? prev : nextVisible,\n );\n }, []);\n\n useLayoutEffect(() => {\n measureOverflow();\n }, [measureOverflow]);\n\n useEffect(() => {\n if (!responsiveOverflow) return;\n\n const filterList = filterListRef.current;\n const trigger = overflowTriggerRef.current;\n const ResizeObserverCtor =\n typeof ResizeObserver === \"undefined\" ? null : ResizeObserver;\n\n if (!ResizeObserverCtor) {\n window.addEventListener(\"resize\", measureOverflow);\n measureOverflow();\n return () => window.removeEventListener(\"resize\", measureOverflow);\n }\n\n const observer = new ResizeObserverCtor(() => measureOverflow());\n if (filterList) observer.observe(filterList);\n if (trigger) observer.observe(trigger);\n window.addEventListener(\"resize\", measureOverflow);\n measureOverflow();\n\n return () => {\n observer.disconnect();\n window.removeEventListener(\"resize\", measureOverflow);\n };\n }, [measureOverflow, responsiveOverflow, mobileCollapse]);\n\n const inlineEnd = Math.min(visibleFilterCount, maximumInlineFilters);\n const inlineFilters = responsiveOverflow\n ? allFilters.slice(0, inlineEnd)\n : allFilters;\n const overflowFilters = responsiveOverflow ? allFilters.slice(inlineEnd) : [];\n const activeOverflowCount = overflowFilters.filter(\n isFilterBarFilterActive,\n ).length;\n\n const setFilterNode = useCallback(\n (key: string, node: HTMLDivElement | null) => {\n if (!node) {\n filterNodeRefs.current.delete(key);\n return;\n }\n filterNodeRefs.current.set(key, node);\n },\n [],\n );\n\n const row = (\n <FilterBarContext.Provider value={contextValue}>\n <div\n data-slot=\"filter-bar\"\n className={cn(\n FILTER_BAR_ROW_CLASS,\n // `wrap` has to drop the md:flex-nowrap entirely rather than add a\n // plain flex-wrap beside it: the two live in different variant groups,\n // so twMerge keeps both and the breakpoint variant still wins above\n // md — which made the documented escape hatch do nothing on exactly\n // the desktop widths where a crowded bar overflows the viewport.\n // Below `sm` the row only ever holds search, the Filters trigger\n // and the trailing group, so it never needs a second line.\n overflowMode === \"wrap\"\n ? \"flex-wrap max-sm:flex-nowrap\"\n : \"flex-wrap max-sm:flex-nowrap md:flex-nowrap\",\n className,\n // Hidden rather than unmounted, so a half-typed search survives the\n // takeover. `visibility: hidden` is not focusable per spec, so this\n // leaves the tab order without needing `inert`.\n overlay && \"invisible pointer-events-none\",\n )}\n {...(overlay ? { \"aria-hidden\": true } : {})}\n >\n {leading && (\n <div className=\"flex shrink-0 items-center gap-2\">{leading}</div>\n )}\n\n {search && <SearchField search={search} />}\n\n {children}\n\n {allFilters.length > 0 && (\n <div\n ref={filterListRef}\n data-filter-bar-list\n className={cn(\n \"flex min-w-0 items-center gap-2\",\n overflowMode === \"wrap\" ? \"flex-wrap\" : \"flex-1\",\n )}\n >\n {inlineFilters.map((filter, index) => (\n <div\n key={filter.key}\n ref={(node) => setFilterNode(filter.key, node)}\n data-filter-bar-item={filter.key}\n className=\"min-w-0 shrink-0\"\n >\n {renderFilterField(filter, !search && index === 0)}\n </div>\n ))}\n </div>\n )}\n\n {responsiveOverflow && overflowFilters.length > 0 && (\n <OverflowFiltersMenu\n triggerRef={overflowTriggerRef}\n filters={overflowFilters}\n activeHidden={activeOverflowCount}\n allHidden={inlineFilters.length === 0}\n mobilePage={mobilePageOverflow}\n {...(onApply ? { onApply } : {})}\n />\n )}\n\n {(hasRangeControls || trailing || showApply) && (\n <div className=\"ml-auto flex min-w-0 items-center justify-end gap-2 max-md:flex-nowrap md:shrink-0 md:flex-wrap\">\n {dateRange && (\n <RangeControlButton\n kind=\"date\"\n label=\"Date range\"\n {...dateRange}\n />\n )}\n {timeRange && (\n <RangeControlButton\n kind={timeRange.timeEnabled === false ? \"date\" : \"time\"}\n label={\n timeRange.timeEnabled === false ? \"Date range\" : \"Time range\"\n }\n {...timeRange}\n />\n )}\n {trailing}\n {showApply && (\n <Button\n type=\"button\"\n variant=\"default\"\n size=\"sm\"\n disabled={isPending}\n onClick={onApply}\n >\n {isPending ? \"Loading…\" : applyLabel}\n </Button>\n )}\n </div>\n )}\n </div>\n </FilterBarContext.Provider>\n );\n\n if (!overlay) return row;\n\n // Both rows share one grid cell, so the cell is as tall as the taller of the\n // two and neither can move the table underneath it. A min-height guess would\n // not do: the bar's height depends on which controls a caller supplied, so\n // there is no constant to guess.\n return (\n <div className=\"grid\">\n <div className=\"col-start-1 row-start-1 min-w-0\">{row}</div>\n <div\n data-slot=\"filter-bar-overlay\"\n className={cn(\n FILTER_BAR_ROW_CLASS,\n \"col-start-1 row-start-1 min-w-0 flex-wrap\",\n )}\n >\n {overlay}\n </div>\n </div>\n );\n}\n\ntype FilterBarFilterPanelChrome = \"full\" | \"embedded\";\n\nexport function FilterBarFilterPanel({\n filter,\n chrome = \"full\",\n autoSubmit = true,\n}: {\n filter: FilterBarFilter;\n chrome?: FilterBarFilterPanelChrome;\n autoSubmit?: boolean;\n}) {\n const contextValue = useMemo(\n () => ({ autoSubmit, compact: false }),\n [autoSubmit],\n );\n\n return (\n <FilterBarContext.Provider value={contextValue}>\n <FilterBarFilterPanelContent filter={filter} chrome={chrome} />\n </FilterBarContext.Provider>\n );\n}\n\nfunction FilterBarFilterPanelContent({\n filter,\n chrome = \"full\",\n}: {\n filter: FilterBarFilter;\n chrome?: FilterBarFilterPanelChrome;\n}) {\n return (\n <>\n {filter.kind === \"lookup\" && <LookupFilterField filter={filter} grow />}\n {filter.kind === \"lookup-multi\" && (\n <LookupMultiFilterField filter={filter} grow />\n )}\n {filter.kind === \"multi\" && (\n <MultiFilterPanel filter={filter} chrome={chrome} />\n )}\n {filter.kind === \"nested-multi\" && (\n <NestedMultiFilterPanel filter={filter} chrome={chrome} />\n )}\n {filter.kind === \"workload\" && (\n <WorkloadFilterField filter={filter} grow />\n )}\n {filter.kind === \"select-multi\" && (\n <SelectMultiFilterField filter={filter} grow />\n )}\n {(filter.kind === \"number\" || filter.kind === \"duration\") && (\n <NumberFilterPanel filter={filter} chrome={chrome} />\n )}\n {filter.kind === \"enum\" && <EnumFilterField filter={filter} grow />}\n {filter.kind === \"boolean\" && <BooleanFilterField filter={filter} />}\n {filter.kind === \"tristate\" && <TriStateFilterField filter={filter} />}\n {filter.kind === \"date-range\" && (\n <FilterBarRangePanel\n kind={filter.timeEnabled === false ? \"date\" : \"time\"}\n label={filter.label}\n {...dateRangeFilterProps(filter)}\n />\n )}\n {filter.kind === \"text\" && <TextFilterField filter={filter} grow />}\n </>\n );\n}\n\nfunction renderFilterField(filter: FilterBarFilter, grow: boolean) {\n if (filter.kind === \"lookup\") {\n return <LookupFilterField filter={filter} grow={grow} />;\n }\n\n if (filter.kind === \"lookup-multi\") {\n return <LookupMultiFilterField filter={filter} grow={grow} />;\n }\n\n if (filter.kind === \"multi\") {\n return <MultiFilterField filter={filter} grow={grow} />;\n }\n\n if (filter.kind === \"nested-multi\") {\n return <NestedMultiFilterField filter={filter} grow={grow} />;\n }\n\n if (filter.kind === \"workload\") {\n return <WorkloadFilterField filter={filter} grow={grow} />;\n }\n\n if (filter.kind === \"select-multi\") {\n return <SelectMultiFilterField filter={filter} grow={grow} />;\n }\n\n if (filter.kind === \"number\" || filter.kind === \"duration\") {\n return <NumberFilterField filter={filter} grow={grow} />;\n }\n\n if (filter.kind === \"enum\") {\n return <EnumFilterField filter={filter} grow={grow} />;\n }\n\n if (filter.kind === \"boolean\") {\n return <BooleanFilterField filter={filter} />;\n }\n\n if (filter.kind === \"tristate\") {\n return <TriStateFilterField filter={filter} />;\n }\n\n if (filter.kind === \"date-range\") {\n return (\n <RangeControlButton\n kind={filter.timeEnabled === false ? \"date\" : \"time\"}\n label={filter.label}\n {...dateRangeFilterProps(filter)}\n />\n );\n }\n\n return <TextFilterField filter={filter} grow={grow} />;\n}\n\nfunction OverflowFiltersMenu({\n triggerRef,\n filters,\n activeHidden,\n allHidden,\n mobilePage,\n onApply,\n}: {\n triggerRef: RefObject<HTMLButtonElement | null>;\n filters: FilterBarFilter[];\n activeHidden: number;\n /**\n * No filter is inline, so this trigger is the only way in. It then carries a\n * visible \"Filters\" label: a bare glyph beside a search box gives a phone\n * user nothing to say that filters exist at all.\n */\n allHidden: boolean;\n mobilePage: boolean;\n onApply?: () => void;\n}) {\n const [open, setOpen] = useState(false);\n const [stagedValues, setStagedValues] = useState<\n Record<string, FilterBarValue>\n >({});\n const hasHidden = filters.length > 0;\n const hiddenFilterKeys = useMemo(\n () => filters.map((filter) => filter.key).join(\"\\u0000\"),\n [filters],\n );\n // Re-stage from the live filters on every open/close so an un-applied edit is\n // discarded, preserving the prior close behaviour.\n const {\n refs,\n floatingStyles,\n context,\n floatingZ,\n getReferenceProps,\n getFloatingProps,\n } = useAnchoredPopup(\n open && !mobilePage,\n (next) => {\n setStagedValues(createFilterValueMap(filters));\n setOpen(next);\n },\n \"bottom-end\",\n );\n const closeOverflowMenu = useCallback(() => {\n setStagedValues(createFilterValueMap(filters));\n setOpen(false);\n }, [filters]);\n // Merge floating-ui's reference ref with the caller's triggerRef (the parent\n // measures the trigger width through it for overflow layout).\n const setTriggerRef = useMergeRefs([refs.setReference, triggerRef]);\n\n useEffect(() => {\n if (!hasHidden) closeOverflowMenu();\n }, [closeOverflowMenu, hasHidden]);\n\n useEffect(() => {\n if (!open) return;\n setStagedValues(createFilterValueMap(filters));\n }, [hiddenFilterKeys, open]);\n\n const stagedFilters = filters.map((filter) =>\n filterWithStagedValue(\n filter,\n // Key presence, not `??`: a tri-state cycled to unset stages `undefined`,\n // which must render as unset instead of falling back to the live value.\n Object.hasOwn(stagedValues, filter.key)\n ? stagedValues[filter.key]\n : filterBarFilterValue(filter),\n (next) =>\n setStagedValues((current) => ({\n ...current,\n [filter.key]: next,\n })),\n ),\n );\n const applyOverflowFilters = () => {\n applyStagedFilterValues(filters, stagedValues);\n onApply?.();\n setOpen(false);\n };\n const clearAll = (\n <button\n type=\"button\"\n className={cn(\n \"rounded text-primary transition-colors hover:bg-accent focus:bg-accent focus:outline-none disabled:text-muted-foreground\",\n // The sheet is a touch surface: its controls need finger-sized targets.\n mobilePage ? \"h-10 px-3 text-sm\" : \"px-1.5 py-0.5 text-xs\",\n )}\n onClick={() => stagedFilters.forEach(clearFilterBarFilter)}\n disabled={stagedFilters.every(\n (filter) => !isFilterBarFilterActive(filter),\n )}\n >\n Clear all\n </button>\n );\n const actions = (\n <OverflowFilterActions\n onClose={closeOverflowMenu}\n onApply={applyOverflowFilters}\n mobilePage={mobilePage}\n />\n );\n const triggerLabel = allHidden ? \"Filters\" : \"More filters\";\n\n return (\n <div\n className={cn(\n \"inline-flex shrink-0\",\n !hasHidden && \"invisible pointer-events-none\",\n )}\n aria-hidden={!hasHidden || undefined}\n >\n <Button\n ref={setTriggerRef}\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n aria-label={triggerLabel}\n tabIndex={hasHidden ? 0 : -1}\n title={hasHidden ? triggerLabel : undefined}\n className={cn(\n \"h-8 min-w-0 gap-1.5 px-2 text-xs font-normal max-md:h-9\",\n activeHidden > 0 && \"border-primary/40 text-primary\",\n )}\n {...getReferenceProps()}\n aria-expanded={open}\n >\n <Icon icon={UiFilter} className=\"text-[14px]\" />\n {allHidden && <span>Filters</span>}\n {activeHidden > 0 && (\n <span className=\"rounded-full bg-muted px-1.5 text-[10px] font-medium text-muted-foreground\">\n {activeHidden}\n </span>\n )}\n </Button>\n\n {mobilePage && (\n <Modal\n open={hasHidden && open}\n onClose={closeOverflowMenu}\n title=\"Filters\"\n headerSlot={clearAll}\n footer={actions}\n scrollBody={false}\n >\n <OverflowFilterRows filters={stagedFilters} mobilePage />\n </Modal>\n )}\n\n {!mobilePage && hasHidden && open && (\n <FloatingPortal>\n <FloatingFocusManager context={context} modal={false}>\n <div\n ref={refs.setFloating}\n role=\"dialog\"\n aria-label=\"Overflow filters\"\n style={{ ...floatingStyles, zIndex: floatingZ }}\n className=\"flex max-h-[min(34rem,calc(100vh-2rem))] w-[min(34rem,calc(100vw-2rem))] flex-col overflow-hidden rounded-md border border-border bg-popover p-2 text-popover-foreground shadow-lg shadow-black/10\"\n {...getFloatingProps()}\n >\n <div className=\"mb-2 flex items-center justify-between gap-2 px-1\">\n <div className=\"text-[10px] font-medium uppercase tracking-wide text-muted-foreground\">\n Filters\n </div>\n <div className=\"flex items-center gap-1\">\n {clearAll}\n <button\n type=\"button\"\n aria-label=\"Close overflow filters\"\n title=\"Close\"\n className=\"inline-flex h-6 w-6 items-center justify-center rounded text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:outline-none\"\n onClick={closeOverflowMenu}\n >\n <Icon icon={UiClose} className=\"text-sm\" />\n </button>\n </div>\n </div>\n <OverflowFilterRows filters={stagedFilters} />\n <div className=\"mt-3\">{actions}</div>\n </div>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </div>\n );\n}\n\nfunction OverflowFilterRows({\n filters,\n mobilePage = false,\n}: {\n filters: FilterBarFilter[];\n mobilePage?: boolean;\n}) {\n return (\n <div\n className={cn(\n \"min-h-0 flex-1 divide-y divide-border/70 overflow-y-auto\",\n mobilePage ? \"bg-background\" : \"rounded-md border border-border/70\",\n )}\n >\n {filters.map((filter) => {\n const active = isFilterBarFilterActive(filter);\n return (\n <div\n key={filter.key}\n data-overflow-filter-row={filter.key}\n className=\"grid grid-cols-[minmax(0,1fr)_auto] items-start gap-2 overflow-visible p-4 md:h-12 md:grid-cols-[minmax(7rem,10rem)_auto_minmax(0,1fr)_auto] md:items-center md:p-2\"\n >\n <label\n htmlFor={filterInputId(filter)}\n className=\"col-span-2 flex min-w-0 items-center gap-1 truncate text-[10px] font-medium uppercase tracking-wide text-muted-foreground md:col-span-1\"\n title={filter.description ?? filter.label}\n >\n <LabelIcon\n icon={sizedIcon(filter.icon, 12)}\n className=\"text-[12px] normal-case\"\n />\n <span className=\"truncate\">{filter.label}</span>\n </label>\n <span className=\"hidden text-sm text-muted-foreground md:block\">\n =\n </span>\n <div className=\"min-w-0 overflow-visible\">\n <FilterBarContext.Provider\n value={{ autoSubmit: false, compact: false }}\n >\n <FilterBarKeyValueControl filter={filter} />\n </FilterBarContext.Provider>\n </div>\n <button\n type=\"button\"\n aria-label={`Clear ${filter.label}`}\n title={`Clear ${filter.label}`}\n className={cn(\n \"inline-flex self-center items-center justify-center rounded text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:outline-none disabled:text-muted-foreground/40\",\n mobilePage ? \"h-10 w-10\" : \"h-6 w-6\",\n )}\n onClick={() => clearFilterBarFilter(filter)}\n disabled={!active}\n >\n <Icon icon={UiClose} className=\"text-sm\" />\n </button>\n </div>\n );\n })}\n </div>\n );\n}\n\nfunction OverflowFilterActions({\n onClose,\n onApply,\n mobilePage = false,\n}: {\n onClose: () => void;\n onApply: () => void;\n mobilePage?: boolean;\n}) {\n const size = mobilePage ? \"h-10 px-4 text-sm\" : \"h-8 px-3 text-xs\";\n return (\n <div className=\"flex justify-end gap-2\">\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n className={size}\n onClick={onClose}\n >\n Close\n </Button>\n <Button\n type=\"button\"\n variant=\"default\"\n size=\"sm\"\n className={size}\n onClick={onApply}\n >\n Apply\n </Button>\n </div>\n );\n}\n\nfunction FilterBarKeyValueControl({ filter }: { filter: FilterBarFilter }) {\n if (filter.kind === \"date-range\") {\n return (\n <RangeControlButton\n kind={filter.timeEnabled === false ? \"date\" : \"time\"}\n label={filter.label}\n {...dateRangeFilterProps(filter)}\n />\n );\n }\n if (filter.kind === \"text\") {\n return <TextFilterValueControl filter={filter} />;\n }\n if (filter.kind === \"lookup\") {\n return <LookupFilterValueControl filter={filter} />;\n }\n if (filter.kind === \"lookup-multi\") {\n return <LookupMultiFilterValueControl filter={filter} />;\n }\n if (filter.kind === \"enum\") {\n return <EnumFilterValueControl filter={filter} />;\n }\n if (filter.kind === \"boolean\") {\n return <BooleanFilterValueControl filter={filter} />;\n }\n if (filter.kind === \"select-multi\") {\n return <SelectMultiFilterValueControl filter={filter} />;\n }\n if (filter.kind === \"multi\") {\n return <MultiFilterField filter={filter} grow />;\n }\n if (filter.kind === \"nested-multi\") {\n return <NestedMultiFilterField filter={filter} grow />;\n }\n if (filter.kind === \"workload\") {\n return <WorkloadFilterField filter={filter} grow />;\n }\n if (filter.kind === \"tristate\") {\n return <TriStateFilterValueControl filter={filter} />;\n }\n return <NumberFilterField filter={filter} grow />;\n}\n\nfunction filterInputId(filter: FilterBarFilter) {\n return `filterbar-overflow-${filter.key}`;\n}\n\nfunction lookupOptionsToCombobox(\n options: FilterBarLookupOption[],\n): ComboboxOption[] {\n return options.map((option) => ({\n value: option.value,\n label: option.label ?? option.value,\n ...(option.disabled !== undefined ? { disabled: option.disabled } : {}),\n // Neither \"lookup\" nor \"lookup-multi\" renders tristate, so the count\n // reaches the row through `trailing`, not the tristate pill's badge.\n ...(option.count !== undefined\n ? { trailing: <span>{option.count.toLocaleString()}</span> }\n : {}),\n }));\n}\n\nfunction WorkloadFilterField({\n filter,\n grow,\n}: {\n filter: FilterBarWorkloadFilter;\n grow: boolean;\n}) {\n return (\n <div className={cn(\"min-w-[14rem]\", grow && \"flex-1\", filter.className)}>\n <WorkloadPicker\n value={filter.value}\n onChange={filter.onChange}\n loadWorkloads={filter.loadWorkloads}\n {...(filter.kinds ? { kinds: filter.kinds } : {})}\n {...(filter.collapseSingleOption ? { collapseSingleOption: true } : {})}\n allowCustomValue={false}\n strict\n {...(filter.disabled !== undefined\n ? { disabled: filter.disabled }\n : {})}\n placeholder={`Select ${filter.label.toLowerCase()}…`}\n />\n </div>\n );\n}\n\nfunction valueInputClassName(disabled?: boolean) {\n return cn(\n \"h-8 w-full rounded-md border border-input bg-background px-2 text-sm text-foreground outline-none placeholder:text-placeholder focus-visible:ring-2 focus-visible:ring-ring\",\n disabled && \"cursor-not-allowed opacity-60\",\n );\n}\n\nfunction TextFilterValueControl({ filter }: { filter: FilterBarTextFilter }) {\n const [draft, setDraft] = useDebouncedTextDraft(\n filter.value,\n filter.onChange,\n );\n\n return (\n <input\n id={filterInputId(filter)}\n type=\"text\"\n aria-label={filter.label}\n className={valueInputClassName(filter.disabled)}\n {...(filter.placeholder !== undefined\n ? { placeholder: filter.placeholder }\n : {})}\n value={draft}\n disabled={filter.disabled}\n onChange={(event) => setDraft(event.target.value)}\n />\n );\n}\n\nfunction LookupFilterValueControl({\n filter,\n}: {\n filter: FilterBarLookupFilter;\n}) {\n const [draft, setDraft] = useDebouncedTextDraft(\n filter.value,\n filter.onChange,\n );\n\n if (filter.inputType === \"date\") {\n return (\n <DateTimePicker\n id={filterInputId(filter)}\n aria-label={filter.label}\n className=\"w-full\"\n inputClassName={valueInputClassName(filter.disabled)}\n buttonClassName=\"right-1\"\n placeholder={filter.placeholder}\n value={draft}\n disabled={filter.disabled}\n onChange={setDraft}\n />\n );\n }\n\n if (filter.inputType === \"number\") {\n return (\n <input\n id={filterInputId(filter)}\n type=\"number\"\n aria-label={filter.label}\n className={valueInputClassName(filter.disabled)}\n placeholder={filter.placeholder}\n value={draft}\n disabled={filter.disabled}\n onChange={(event) => setDraft(event.target.value)}\n />\n );\n }\n\n // The overflow panel renders the filter label as a separate row header, so\n // the Combobox here omits its own inline label to avoid duplication.\n return (\n <Combobox\n id={filterInputId(filter)}\n options={lookupOptionsToCombobox(filter.options)}\n value={filter.value}\n onChange={filter.onChange}\n allowCustomValue={false}\n size=\"sm\"\n className=\"w-full\"\n {...(filter.placeholder !== undefined\n ? { placeholder: filter.placeholder }\n : {})}\n {...(filter.disabled !== undefined ? { disabled: filter.disabled } : {})}\n />\n );\n}\n\nfunction LookupMultiFilterValueControl({\n filter,\n}: {\n filter: FilterBarLookupMultiFilter;\n}) {\n return (\n <Combobox\n multiple\n id={filterInputId(filter)}\n options={lookupOptionsToCombobox(filter.options)}\n value={filter.value}\n onChange={filter.onChange}\n allowCustomValue={false}\n footer={lookupMultiFilterFooter(filter)}\n size=\"sm\"\n className=\"w-full\"\n {...(filter.placeholder !== undefined\n ? { placeholder: filter.placeholder }\n : {})}\n {...(filter.disabled !== undefined ? { disabled: filter.disabled } : {})}\n />\n );\n}\n\nfunction enumOptionsToCombobox(\n options: FilterBarEnumFilter[\"options\"],\n): ComboboxOption[] {\n return options.map((option) => ({\n value: option.value,\n label: option.label ?? option.value,\n }));\n}\n\nfunction EnumFilterValueControl({ filter }: { filter: FilterBarEnumFilter }) {\n return (\n <Combobox\n id={filterInputId(filter)}\n options={enumOptionsToCombobox(filter.options)}\n value={filter.value}\n onChange={filter.onChange}\n allowCustomValue={false}\n size=\"sm\"\n {...(filter.placeholder !== undefined\n ? { placeholder: filter.placeholder }\n : {})}\n className=\"w-full\"\n {...(filter.disabled !== undefined ? { disabled: filter.disabled } : {})}\n />\n );\n}\n\nfunction BooleanFilterValueControl({\n filter,\n}: {\n filter: FilterBarBooleanFilter;\n}) {\n return (\n <div className=\"flex h-8 items-center\">\n <input\n id={filterInputId(filter)}\n type=\"checkbox\"\n aria-label={filter.label}\n className=\"h-4 w-4 accent-primary\"\n checked={filter.value}\n disabled={filter.disabled}\n onChange={(event) => filter.onChange(event.target.checked)}\n />\n </div>\n );\n}\n\nfunction TriStateFilterValueControl({\n filter,\n}: {\n filter: FilterBarTriStateFilter;\n}) {\n return (\n <div className=\"flex h-8 items-center\">\n <TriStateToggle\n id={filterInputId(filter)}\n value={filter.value}\n onChange={filter.onChange}\n label={filter.label}\n size=\"md\"\n {...(filter.labels ? { labels: filter.labels } : {})}\n {...(filter.disabled ? { disabled: filter.disabled } : {})}\n />\n </div>\n );\n}\n\nfunction SelectMultiFilterValueControl({\n filter,\n}: {\n filter: FilterBarSelectMultiFilter;\n}) {\n return (\n <MultiSelect\n options={filter.options}\n value={filter.value}\n onChange={filter.onChange}\n ariaLabel={`${filter.label} filter`}\n {...(filter.placeholder !== undefined\n ? { placeholder: filter.placeholder }\n : {})}\n {...(filter.disabled !== undefined ? { disabled: filter.disabled } : {})}\n triggerClassName=\"h-8 w-full rounded-md border border-input bg-background px-2 text-sm shadow-none\"\n menuClassName=\"left-auto right-0\"\n />\n );\n}\n\nexport function FilterBarRangePanel({\n kind,\n label,\n from = \"\",\n to = \"\",\n onApply,\n presets,\n timeEnabled,\n timeZone,\n timeZones,\n fromPlaceholder,\n toPlaceholder,\n emptyLabel,\n disabled,\n}: FilterBarRangeProps & { kind: \"date\" | \"time\"; label: string }) {\n return (\n <div className=\"w-72 p-3 text-popover-foreground\">\n <TimeRange\n kind={kind}\n label={label}\n align=\"left\"\n from={from}\n to={to}\n onApply={onApply}\n {...(disabled !== undefined ? { disabled } : {})}\n {...(presets ? { presets } : {})}\n {...(timeEnabled !== undefined ? { timeEnabled } : {})}\n {...(timeZone ? { timeZone } : {})}\n {...(timeZones ? { timeZones } : {})}\n {...(fromPlaceholder ? { fromPlaceholder } : {})}\n {...(toPlaceholder ? { toPlaceholder } : {})}\n {...(emptyLabel ? { emptyLabel } : {})}\n panelClassName=\"left-0 right-auto\"\n />\n </div>\n );\n}\n\nfunction EnumFilterField({\n filter,\n grow,\n}: {\n filter: FilterBarEnumFilter;\n grow: boolean;\n}) {\n return (\n <Combobox\n {...comboboxLabelProps(filter)}\n options={enumOptionsToCombobox(filter.options)}\n value={filter.value}\n onChange={filter.onChange}\n allowCustomValue={false}\n size=\"sm\"\n {...(filter.placeholder !== undefined\n ? { placeholder: filter.placeholder }\n : {})}\n className={cn(lookupFieldWidthClass(grow), filter.className)}\n {...(filter.disabled !== undefined ? { disabled: filter.disabled } : {})}\n />\n );\n}\n\nfunction TriStateFilterField({ filter }: { filter: FilterBarTriStateFilter }) {\n return (\n <div\n title={filter.description}\n className={cn(\n \"flex h-8 shrink-0 items-center gap-2 rounded-md border border-input bg-muted/30 px-2 text-xs\",\n filter.disabled && \"opacity-60\",\n filter.className,\n )}\n >\n <TriStateToggle\n value={filter.value}\n onChange={filter.onChange}\n label={filter.label}\n {...(filter.labels ? { labels: filter.labels } : {})}\n {...(filter.disabled ? { disabled: filter.disabled } : {})}\n />\n <FilterFieldLabel icon={filter.icon} label={filter.label} />\n </div>\n );\n}\n\nfunction BooleanFilterField({ filter }: { filter: FilterBarBooleanFilter }) {\n return (\n <label\n title={filter.description}\n className={cn(\n \"flex h-8 shrink-0 items-center gap-2 rounded-md border border-input bg-muted/30 px-2 text-xs\",\n filter.disabled && \"opacity-60\",\n filter.className,\n )}\n >\n <input\n type=\"checkbox\"\n aria-label={filter.label}\n className=\"h-3.5 w-3.5 accent-primary\"\n checked={filter.value}\n disabled={filter.disabled}\n onChange={(event) => filter.onChange(event.target.checked)}\n />\n <FilterFieldLabel icon={filter.icon} label={filter.label} />\n </label>\n );\n}\n\nfunction SearchField({ search }: { search: FilterBarSearchProps }) {\n const [draft, setDraft] = useDebouncedTextDraft(\n search.value,\n search.onChange,\n );\n\n return (\n <div className=\"flex min-w-0 flex-1 items-center gap-2 md:flex-[1_1_14rem] md:min-w-[14rem] md:max-w-[24rem]\">\n <label\n className={cn(\n \"flex h-8 min-w-0 flex-1 items-center rounded-md border border-input bg-background px-3 text-sm\",\n search.className,\n )}\n >\n {draft.trim() ? (\n <span className=\"mr-2 whitespace-nowrap text-[10px] font-medium uppercase tracking-wide text-muted-foreground\">\n {search.ariaLabel ?? \"Search\"}\n </span>\n ) : (\n <Icon\n icon={UiSearch}\n className=\"mr-2 shrink-0 text-muted-foreground\"\n />\n )}\n <input\n type=\"search\"\n aria-label={search.ariaLabel ?? search.placeholder ?? \"Search\"}\n className=\"w-full min-w-0 bg-transparent outline-none placeholder:text-placeholder\"\n placeholder={search.placeholder ?? \"Search…\"}\n value={draft}\n onChange={(event) => setDraft(event.target.value)}\n />\n </label>\n </div>\n );\n}\n\nfunction TextFilterField({\n filter,\n grow,\n}: {\n filter: FilterBarTextFilter;\n grow: boolean;\n}) {\n const [draft, setDraft] = useDebouncedTextDraft(\n filter.value,\n filter.onChange,\n );\n\n return (\n <label\n title={filter.description}\n className={cn(\n \"flex h-8 items-center gap-2 rounded-md border border-input bg-muted/30 pl-2 pr-2 text-xs\",\n grow\n ? \"min-w-[12rem] max-w-[18rem] flex-1\"\n : \"min-w-[11rem] max-w-[15rem] shrink-0\",\n filter.disabled && \"opacity-60\",\n filter.className,\n )}\n >\n <FilterFieldLabel icon={filter.icon} label={filter.label} />\n <input\n type=\"text\"\n aria-label={filter.label}\n className=\"w-full min-w-0 bg-transparent text-sm text-foreground outline-none placeholder:text-placeholder disabled:cursor-not-allowed\"\n {...(filter.placeholder !== undefined\n ? { placeholder: filter.placeholder }\n : {})}\n value={draft}\n disabled={filter.disabled}\n onChange={(event) => setDraft(event.target.value)}\n />\n </label>\n );\n}\n\n// FilterFieldLabel is the uppercase label shown inside inline filter shells,\n// with an optional leading glyph from the filter's `icon`.\nfunction FilterFieldLabel({\n icon,\n label,\n}: {\n icon?: LabelIconSpec;\n label: string;\n}) {\n return (\n <span className=\"flex items-center gap-1 whitespace-nowrap font-medium uppercase tracking-wide text-muted-foreground\">\n <LabelIcon icon={icon} className=\"text-[13px] normal-case\" />\n {label}\n </span>\n );\n}\n\nfunction LookupFilterField({\n filter,\n grow,\n}: {\n filter: FilterBarLookupFilter;\n grow: boolean;\n}) {\n const [draft, setDraft] = useDebouncedTextDraft(\n filter.value,\n filter.onChange,\n );\n\n // Date and number lookups keep their specialized inputs in the label shell;\n // text lookups use the Combobox with its own inline label.\n if (filter.inputType === \"date\" || filter.inputType === \"number\") {\n // For a date lookup with a value, surface the human-readable absolute +\n // relative form (e.g. \"Apr 15, 2026, 12:00 PM (2h ago)\") as the hover title.\n const dateTitle =\n filter.inputType === \"date\" && draft\n ? formatDateTimeRelative(draft)\n : undefined;\n return (\n <label\n title={dateTitle ?? filter.description}\n className={cn(\n \"flex h-8 items-center gap-2 rounded-md border border-input bg-muted/30 pl-2 pr-2 text-xs\",\n lookupFieldWidthClass(grow),\n filter.disabled && \"opacity-60\",\n filter.className,\n )}\n >\n <FilterFieldLabel icon={filter.icon} label={filter.label} />\n {filter.inputType === \"date\" ? (\n <DateTimePicker\n aria-label={filter.label}\n className=\"w-full\"\n inputClassName=\"w-full min-w-0 border-0 bg-transparent px-0 pr-6 text-sm text-foreground shadow-none focus-visible:ring-0\"\n buttonClassName=\"right-0\"\n placeholder={filter.placeholder}\n value={draft}\n disabled={filter.disabled}\n onChange={setDraft}\n />\n ) : (\n <input\n type=\"number\"\n aria-label={filter.label}\n className=\"w-full min-w-0 bg-transparent text-sm text-foreground outline-none placeholder:text-placeholder disabled:cursor-not-allowed\"\n placeholder={filter.placeholder}\n value={draft}\n disabled={filter.disabled}\n onChange={(event) => setDraft(event.target.value)}\n />\n )}\n </label>\n );\n }\n\n return (\n <Combobox\n {...comboboxLabelProps(filter)}\n options={lookupOptionsToCombobox(filter.options)}\n value={filter.value}\n onChange={filter.onChange}\n allowCustomValue={false}\n size=\"sm\"\n className={cn(lookupFieldWidthClass(grow), filter.className)}\n {...(filter.placeholder !== undefined\n ? { placeholder: filter.placeholder }\n : {})}\n {...(filter.disabled !== undefined ? { disabled: filter.disabled } : {})}\n />\n );\n}\n\nfunction LookupMultiFilterField({\n filter,\n grow,\n}: {\n filter: FilterBarLookupMultiFilter;\n grow: boolean;\n}) {\n return (\n <Combobox\n multiple\n {...comboboxLabelProps(filter)}\n options={lookupOptionsToCombobox(filter.options)}\n value={filter.value}\n onChange={filter.onChange}\n allowCustomValue={false}\n footer={lookupMultiFilterFooter(filter)}\n size=\"sm\"\n className={cn(lookupFieldWidthClass(grow), filter.className)}\n {...(filter.placeholder !== undefined\n ? { placeholder: filter.placeholder }\n : {})}\n {...(filter.onSearch !== undefined ? { onSearch: filter.onSearch } : {})}\n {...(filter.loading !== undefined ? { loading: filter.loading } : {})}\n {...(filter.disabled !== undefined ? { disabled: filter.disabled } : {})}\n />\n );\n}\n\nfunction lookupMultiFilterFooter(filter: FilterBarLookupMultiFilter) {\n const moreCount =\n filter.truncated && filter.total\n ? Math.max(filter.total - filter.options.length, 0)\n : 0;\n if (moreCount === 0) return undefined;\n return (\n <>\n … and {moreCount.toLocaleString()} more\n {filter.onSearch ? \" — type to search all\" : \"\"}\n </>\n );\n}\n\ntype FilterBarBoundedFilter = FilterBarNumberFilter | FilterBarDurationFilter;\n\nfunction NumberFilterField({\n filter,\n grow,\n}: {\n filter: FilterBarBoundedFilter;\n grow: boolean;\n}) {\n const [open, setOpen] = useState(false);\n const popup = useAnchoredPopup(open, setOpen);\n\n const bounds = resolveNumberFilterBounds(filter);\n const [draft, setDraft] = useDebouncedNumberDraft(filter.value, (next) =>\n applyBoundedFilterValue(filter, next),\n );\n const sliderMin = clampNumber(\n parseFilterNumber(draft.min) ?? bounds.min,\n bounds.min,\n bounds.max,\n );\n const sliderMax = clampNumber(\n parseFilterNumber(draft.max) ?? bounds.max,\n bounds.min,\n bounds.max,\n );\n const activeMin = Math.min(sliderMin, sliderMax);\n const activeMax = Math.max(sliderMin, sliderMax);\n const summary = summarizeNumberFilter(filter, bounds, draft);\n const showSlider =\n filter.domainMin !== undefined && filter.domainMax !== undefined;\n\n return (\n <div\n title={filter.description}\n className={cn(\n \"inline-flex min-w-0\",\n grow ? \"min-w-[8rem] max-w-[12rem] flex-1\" : \"shrink-0\",\n filter.disabled && \"opacity-60\",\n filter.className,\n )}\n >\n <Button\n ref={popup.refs.setReference as Ref<HTMLButtonElement>}\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n aria-label={`${filter.label} filter`}\n disabled={filter.disabled}\n className={cn(\n \"min-w-0 gap-2 font-normal\",\n grow\n ? \"w-full max-w-[12rem] justify-between\"\n : \"w-auto max-w-[9.5rem] px-2.5\",\n summary === filter.label && \"text-muted-foreground\",\n )}\n {...popup.getReferenceProps()}\n >\n <LabelIcon\n icon={filter.icon}\n className=\"text-[14px] text-muted-foreground\"\n />\n <span className=\"truncate\">{summary}</span>\n <Icon\n icon={open ? UiChevronUp : UiChevronDown}\n className=\"text-muted-foreground\"\n />\n </Button>\n\n {open && (\n <FloatingPortal>\n <FloatingFocusManager context={popup.context} modal={false}>\n <div\n ref={popup.refs.setFloating}\n role=\"dialog\"\n aria-label={filter.label}\n style={{ ...popup.floatingStyles, zIndex: popup.floatingZ }}\n className=\"min-w-[18rem] max-w-[22rem] rounded-md border border-border bg-popover p-3 text-popover-foreground shadow-lg shadow-black/5\"\n {...popup.getFloatingProps()}\n >\n <div className=\"mb-3 flex items-center justify-between gap-2\">\n <div className=\"text-[10px] font-medium uppercase tracking-wide text-muted-foreground\">\n {filter.label}\n </div>\n <button\n type=\"button\"\n className=\"text-[10px] text-primary disabled:text-muted-foreground\"\n onClick={() => {\n setDraft({});\n applyBoundedFilterValue(filter, {});\n }}\n disabled={\n !String(draft.min ?? \"\").trim() &&\n !String(draft.max ?? \"\").trim()\n }\n >\n Clear all\n </button>\n </div>\n\n <div className=\"space-y-3\">\n {showSlider && (\n <div className=\"space-y-2\">\n <div className=\"flex items-center justify-between text-[11px] text-muted-foreground\">\n <span>{formatNumberValue(bounds.min, filter)}</span>\n <span>{formatNumberValue(bounds.max, filter)}</span>\n </div>\n <div className=\"relative h-6\">\n <RangeSlider\n min={bounds.min}\n max={bounds.max}\n step={bounds.step}\n value={[activeMin, activeMax]}\n ariaLabelMin={`${filter.label} minimum slider`}\n ariaLabelMax={`${filter.label} maximum slider`}\n onChange={([nextMin, nextMax]) =>\n setDraft(\n numberFilterValueFromSlider(\n [nextMin, nextMax],\n bounds,\n filter,\n ),\n )\n }\n />\n </div>\n </div>\n )}\n\n <NumberFilterInputs\n filter={filter}\n value={draft}\n onChange={setDraft}\n bounds={bounds}\n />\n </div>\n </div>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </div>\n );\n}\n\nfunction NumberFilterPanel({\n filter,\n chrome = \"full\",\n}: {\n filter: FilterBarBoundedFilter;\n chrome?: FilterBarFilterPanelChrome;\n}) {\n const bounds = resolveNumberFilterBounds(filter);\n const [draft, setDraft] = useDebouncedNumberDraft(filter.value, (next) =>\n applyBoundedFilterValue(filter, next),\n );\n const sliderMin = clampNumber(\n parseFilterNumber(draft.min) ?? bounds.min,\n bounds.min,\n bounds.max,\n );\n const sliderMax = clampNumber(\n parseFilterNumber(draft.max) ?? bounds.max,\n bounds.min,\n bounds.max,\n );\n const activeMin = Math.min(sliderMin, sliderMax);\n const activeMax = Math.max(sliderMin, sliderMax);\n const embedded = chrome === \"embedded\";\n const showSlider =\n filter.domainMin !== undefined && filter.domainMax !== undefined;\n\n return (\n <div\n data-filter-panel-chrome={chrome}\n className={cn(\n \"min-w-[18rem] max-w-[22rem] text-popover-foreground\",\n embedded\n ? \"p-0\"\n : \"rounded-md border border-border bg-popover p-3 shadow-sm shadow-black/5\",\n )}\n >\n {!embedded && (\n <div className=\"mb-3 flex items-center justify-between gap-2\">\n <div className=\"text-[10px] font-medium uppercase tracking-wide text-muted-foreground\">\n {filter.label}\n </div>\n <button\n type=\"button\"\n className=\"text-[10px] text-primary disabled:text-muted-foreground\"\n onClick={() => {\n setDraft({});\n applyBoundedFilterValue(filter, {});\n }}\n disabled={\n !String(draft.min ?? \"\").trim() && !String(draft.max ?? \"\").trim()\n }\n >\n Clear all\n </button>\n </div>\n )}\n\n <div className=\"space-y-3\">\n {showSlider && (\n <div className=\"space-y-2\">\n <div className=\"flex items-center justify-between text-[11px] text-muted-foreground\">\n <span>{formatNumberValue(bounds.min, filter)}</span>\n <span>{formatNumberValue(bounds.max, filter)}</span>\n </div>\n <div className=\"relative h-6\">\n <RangeSlider\n min={bounds.min}\n max={bounds.max}\n step={bounds.step}\n value={[activeMin, activeMax]}\n ariaLabelMin={`${filter.label} minimum slider`}\n ariaLabelMax={`${filter.label} maximum slider`}\n onChange={([nextMin, nextMax]) =>\n setDraft(\n numberFilterValueFromSlider(\n [nextMin, nextMax],\n bounds,\n filter,\n ),\n )\n }\n />\n </div>\n </div>\n )}\n\n <NumberFilterInputs\n filter={filter}\n value={draft}\n onChange={setDraft}\n bounds={bounds}\n />\n </div>\n </div>\n );\n}\n\nfunction NumberFilterInputs({\n filter,\n value,\n onChange,\n bounds,\n}: {\n filter: FilterBarBoundedFilter;\n value: FilterBarNumberValue;\n onChange: (value: FilterBarNumberValue) => void;\n bounds: NumberFilterBounds;\n}) {\n return (\n <div className=\"space-y-2\">\n <NumberFilterEdge\n filter={filter}\n value={value}\n onChange={onChange}\n bounds={bounds}\n edge=\"min\"\n />\n <NumberFilterEdge\n filter={filter}\n value={value}\n onChange={onChange}\n bounds={bounds}\n edge=\"max\"\n />\n </div>\n );\n}\n\nfunction NumberFilterEdge({\n filter,\n value,\n onChange,\n bounds,\n edge,\n}: {\n filter: FilterBarBoundedFilter;\n value: FilterBarNumberValue;\n onChange: (value: FilterBarNumberValue) => void;\n bounds: NumberFilterBounds;\n edge: \"min\" | \"max\";\n}) {\n const minimum = edge === \"min\";\n const label = minimum ? \"minimum\" : \"maximum\";\n const operator = minimum\n ? (value.minOperator ?? \">=\")\n : (value.maxOperator ?? \"<=\");\n const operand = minimum ? (value.min ?? \"\") : (value.max ?? \"\");\n const duration =\n filter.kind === \"duration\" ? (value as FilterBarDurationValue) : undefined;\n const unit = minimum ? duration?.minUnit : duration?.maxUnit;\n const setOperand = (next: string) => {\n const nextValue = minimum\n ? { ...value, min: next }\n : { ...value, max: next };\n onChange(\n filter.kind === \"duration\"\n ? nextValue\n : normalizeNumberFilterValue(\n nextValue,\n minimum ? \"min-input\" : \"max-input\",\n ),\n );\n };\n const setOperator = (next: string) =>\n onChange(\n minimum\n ? { ...value, minOperator: next as \">\" | \">=\" }\n : { ...value, maxOperator: next as \"<\" | \"<=\" },\n );\n\n return (\n <div className=\"grid grid-cols-[2.5rem_3.5rem_minmax(0,1fr)_auto] items-center gap-1.5\">\n <span className=\"text-[10px] text-muted-foreground\">\n {minimum ? \"Min\" : \"Max\"}\n </span>\n <select\n aria-label={`${filter.label} ${label} operator`}\n className=\"h-8 rounded-md border border-input bg-background px-1 text-xs outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n value={operator}\n disabled={filter.disabled}\n onChange={(event) => setOperator(event.target.value)}\n >\n {(minimum ? [\">=\", \">\"] : [\"<=\", \"<\"]).map((option) => (\n <option key={option} value={option}>\n {option}\n </option>\n ))}\n </select>\n <input\n type=\"number\"\n inputMode=\"decimal\"\n step={bounds.step}\n aria-label={`${filter.label} ${label}`}\n className=\"h-8 min-w-0 rounded-md border border-input bg-background px-2 text-xs outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n {...((minimum ? filter.minPlaceholder : filter.maxPlaceholder) !==\n undefined\n ? {\n placeholder: minimum\n ? filter.minPlaceholder\n : filter.maxPlaceholder,\n }\n : {})}\n value={operand}\n disabled={filter.disabled}\n onChange={(event) => setOperand(event.target.value)}\n />\n <NumberFilterUnit\n filter={filter}\n value={value}\n edge={edge}\n {...(unit ? { unit } : {})}\n onChange={onChange}\n />\n </div>\n );\n}\n\nfunction NumberFilterUnit({\n filter,\n value,\n edge,\n unit,\n onChange,\n}: {\n filter: FilterBarBoundedFilter;\n value: FilterBarNumberValue;\n edge: \"min\" | \"max\";\n unit?: FilterBarDurationUnit;\n onChange: (value: FilterBarNumberValue) => void;\n}) {\n if (filter.kind === \"number\") {\n return filter.unit ? (\n <span className=\"min-w-8 text-xs text-muted-foreground\">\n {filter.unit}\n </span>\n ) : null;\n }\n const selected = unit ?? filter.unit ?? \"ms\";\n return (\n <select\n aria-label={`${filter.label} ${edge === \"min\" ? \"minimum\" : \"maximum\"} unit`}\n className=\"h-8 rounded-md border border-input bg-background px-1 text-xs outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n value={selected}\n disabled={filter.disabled}\n onChange={(event) => {\n const next: FilterBarDurationValue =\n edge === \"min\"\n ? { ...value, minUnit: event.target.value as FilterBarDurationUnit }\n : {\n ...value,\n maxUnit: event.target.value as FilterBarDurationUnit,\n };\n onChange(next);\n }}\n >\n {([\"ms\", \"s\", \"m\", \"h\"] as FilterBarDurationUnit[]).map((option) => (\n <option key={option} value={option}>\n {option}\n </option>\n ))}\n </select>\n );\n}\n\nfunction NestedMultiFilterPanel({\n filter,\n chrome = \"full\",\n}: {\n filter: FilterBarNestedMultiFilter;\n chrome?: FilterBarFilterPanelChrome;\n}) {\n const [activeGroup, setActiveGroup] = useState<string | null>(\n filter.groups[0]?.groupKey ?? null,\n );\n const [draft, setDraft] = useDebouncedMultiDraft(\n filter.value,\n filter.onChange,\n );\n const groups = filter.groups;\n const embedded = chrome === \"embedded\";\n const activeGroupData = useMemo(\n () =>\n groups.find((group) => group.groupKey === activeGroup) ??\n groups[0] ??\n null,\n [groups, activeGroup],\n );\n\n const selectedByGroup = useMemo(() => {\n const counts: Record<string, number> = {};\n for (const group of groups) {\n let n = 0;\n for (const option of group.options) {\n if (draft[option.value]) n += 1;\n }\n counts[group.groupKey] = n;\n }\n return counts;\n }, [groups, draft]);\n\n const sortedGroups = useMemo(() => {\n const selected: typeof groups = [];\n const rest: typeof groups = [];\n for (const group of groups) {\n if ((selectedByGroup[group.groupKey] ?? 0) > 0) selected.push(group);\n else rest.push(group);\n }\n return [...selected, ...rest];\n }, [groups, selectedByGroup]);\n\n const clearGroup = (groupKey: string) => {\n const group = groups.find((g) => g.groupKey === groupKey);\n if (!group) return;\n const next = { ...draft };\n for (const option of group.options) {\n delete next[option.value];\n }\n setDraft(next);\n };\n\n return (\n <div role=\"dialog\" className=\"flex\">\n <div\n data-filter-panel-chrome={chrome}\n className={cn(\n \"min-w-[14rem] max-w-[16rem] text-popover-foreground\",\n embedded\n ? \"p-0\"\n : \"rounded-md border border-border bg-popover p-2 shadow-sm shadow-black/5\",\n )}\n >\n {!embedded && (\n <div className=\"mb-2 flex items-center justify-between gap-2\">\n <div className=\"text-[10px] font-medium uppercase tracking-wide text-muted-foreground\">\n {filter.label}\n </div>\n <button\n type=\"button\"\n className=\"text-[10px] text-primary disabled:text-muted-foreground\"\n onClick={() => setDraft({})}\n disabled={Object.keys(draft).length === 0}\n >\n Clear all\n </button>\n </div>\n )}\n\n <div className=\"max-h-72 space-y-0.5 overflow-auto\">\n {sortedGroups.map((group) => {\n const selected = selectedByGroup[group.groupKey] ?? 0;\n const isActive = group.groupKey === activeGroup;\n return (\n <div\n key={group.groupKey}\n role=\"button\"\n tabIndex={0}\n onMouseEnter={() => setActiveGroup(group.groupKey)}\n onFocus={() => setActiveGroup(group.groupKey)}\n onClick={() => setActiveGroup(group.groupKey)}\n onKeyDown={(event) => {\n if (\n event.key === \"Enter\" ||\n event.key === \" \" ||\n event.key === \"ArrowRight\"\n ) {\n event.preventDefault();\n setActiveGroup(group.groupKey);\n }\n }}\n className={cn(\n \"flex cursor-pointer items-center justify-between gap-2 rounded-md px-1.5 py-0.5 text-sm\",\n \"hover:bg-accent/50 focus-visible:bg-accent/50 focus-visible:outline-none\",\n isActive && \"bg-accent/60\",\n )}\n >\n <span className=\"min-w-0 flex-1 truncate\">\n {group.label ?? group.groupKey}\n </span>\n {selected > 0 && (\n <span className=\"rounded-full bg-primary/15 px-1.5 text-[10px] font-medium text-primary\">\n {selected}/{group.options.length}\n </span>\n )}\n <Icon\n icon={UiChevronRight}\n className=\"shrink-0 text-muted-foreground\"\n />\n </div>\n );\n })}\n {groups.length === 0 && (\n <div className=\"px-2 py-3 text-sm text-muted-foreground\">\n No groups\n </div>\n )}\n </div>\n </div>\n\n {activeGroupData && (\n <div\n onMouseEnter={() => setActiveGroup(activeGroupData.groupKey)}\n className=\"ml-1.5 min-w-[16rem] max-w-[20rem] rounded-md border border-border bg-popover p-2 text-popover-foreground shadow-sm shadow-black/5\"\n >\n <div className=\"mb-2 flex items-center justify-between gap-2\">\n <div className=\"text-[10px] font-medium uppercase tracking-wide text-muted-foreground\">\n {activeGroupData.label ?? activeGroupData.groupKey}\n </div>\n <button\n type=\"button\"\n className=\"text-[10px] text-primary disabled:text-muted-foreground\"\n onClick={() => clearGroup(activeGroupData.groupKey)}\n disabled={(selectedByGroup[activeGroupData.groupKey] ?? 0) === 0}\n >\n Clear\n </button>\n </div>\n\n <div className=\"max-h-72 space-y-0.5 overflow-auto\">\n {activeGroupData.options.map((option) => {\n const mode = draft[option.value] ?? \"neutral\";\n const title = option.title ?? multiSelectOptionText(option);\n return (\n <div\n key={option.value}\n role=\"button\"\n tabIndex={0}\n data-filter-option={option.value}\n className=\"rounded-md px-1.5 py-0.5 hover:bg-accent/50 focus-visible:bg-accent/50 focus-visible:outline-none\"\n onClick={() =>\n setDraft(\n updateMultiFilterValue(\n draft,\n option.value,\n nextFilterMode(mode),\n ),\n )\n }\n onKeyDown={(event) => {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n setDraft(\n updateMultiFilterValue(\n draft,\n option.value,\n nextFilterMode(mode),\n ),\n );\n } else if (event.key === \"ArrowLeft\") {\n event.preventDefault();\n setActiveGroup(null);\n }\n }}\n >\n <FilterPill\n className=\"w-full justify-between\"\n label={renderNestedOptionLabel(\n option,\n activeGroupData.groupKey,\n )}\n mode={mode}\n title={title}\n togglePosition=\"right\"\n onModeChange={(next) =>\n setDraft(\n updateMultiFilterValue(draft, option.value, next),\n )\n }\n />\n </div>\n );\n })}\n {activeGroupData.options.length === 0 && (\n <div className=\"px-2 py-3 text-sm text-muted-foreground\">\n No values\n </div>\n )}\n </div>\n </div>\n )}\n </div>\n );\n}\n\nfunction NestedMultiFilterField({\n filter,\n grow,\n}: {\n filter: FilterBarNestedMultiFilter;\n grow: boolean;\n}) {\n const [open, setOpen] = useState(false);\n const [activeGroup, setActiveGroup] = useState<string | null>(null);\n const [draft, setDraft] = useDebouncedMultiDraft(\n filter.value,\n filter.onChange,\n );\n\n const popup = useAnchoredPopup(open, (next) => {\n setOpen(next);\n if (!next) setActiveGroup(null);\n });\n\n const summary = summarizeMultiFilter(filter.label, draft);\n const groups = filter.groups;\n const activeGroupData = useMemo(\n () => groups.find((group) => group.groupKey === activeGroup) ?? null,\n [groups, activeGroup],\n );\n\n // Selected count per group, used in the outer list.\n const selectedByGroup = useMemo(() => {\n const counts: Record<string, number> = {};\n for (const group of groups) {\n let n = 0;\n for (const option of group.options) {\n if (draft[option.value]) n += 1;\n }\n counts[group.groupKey] = n;\n }\n return counts;\n }, [groups, draft]);\n\n // Groups with active selections sort to the top so the user always sees\n // what's filtered without scrolling. Within each partition, the original\n // order from the consumer is preserved.\n const sortedGroups = useMemo(() => {\n const selected: typeof groups = [];\n const rest: typeof groups = [];\n for (const group of groups) {\n if ((selectedByGroup[group.groupKey] ?? 0) > 0) selected.push(group);\n else rest.push(group);\n }\n return [...selected, ...rest];\n }, [groups, selectedByGroup]);\n\n const clearGroup = (groupKey: string) => {\n const group = groups.find((g) => g.groupKey === groupKey);\n if (!group) return;\n const next = { ...draft };\n for (const option of group.options) {\n delete next[option.value];\n }\n setDraft(next);\n };\n\n return (\n <div\n title={filter.description}\n className={cn(\n \"inline-flex min-w-0\",\n grow ? \"min-w-[8rem] max-w-[12rem] flex-1\" : \"shrink-0\",\n filter.disabled && \"opacity-60\",\n filter.className,\n )}\n >\n <Button\n ref={popup.refs.setReference as Ref<HTMLButtonElement>}\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n aria-label={`${filter.label} filter`}\n disabled={filter.disabled}\n className={cn(\n \"min-w-0 gap-2 font-normal\",\n grow\n ? \"w-full max-w-[12rem] justify-between\"\n : \"w-auto max-w-[8.5rem] px-2.5\",\n summary === filter.label && \"text-muted-foreground\",\n )}\n {...popup.getReferenceProps()}\n >\n <span className=\"truncate\">{summary}</span>\n <Icon\n icon={open ? UiChevronUp : UiChevronDown}\n className=\"text-muted-foreground\"\n />\n </Button>\n\n {open && (\n <FloatingPortal>\n <FloatingFocusManager context={popup.context} modal={false}>\n <div\n ref={popup.refs.setFloating}\n role=\"dialog\"\n aria-label={filter.label}\n style={{ ...popup.floatingStyles, zIndex: popup.floatingZ }}\n className=\"flex\"\n {...popup.getFloatingProps()}\n >\n <div className=\"min-w-[14rem] max-w-[16rem] rounded-md border border-border bg-popover p-2 text-popover-foreground shadow-lg shadow-black/5\">\n <div className=\"mb-2 flex items-center justify-between gap-2\">\n <div className=\"text-[10px] font-medium uppercase tracking-wide text-muted-foreground\">\n {filter.label}\n </div>\n <button\n type=\"button\"\n className=\"text-[10px] text-primary disabled:text-muted-foreground\"\n onClick={() => setDraft({})}\n disabled={Object.keys(draft).length === 0}\n >\n Clear all\n </button>\n </div>\n\n <div className=\"max-h-72 space-y-0.5 overflow-auto\">\n {sortedGroups.map((group) => {\n const selected = selectedByGroup[group.groupKey] ?? 0;\n const isActive = group.groupKey === activeGroup;\n return (\n <div\n key={group.groupKey}\n role=\"button\"\n tabIndex={0}\n onMouseEnter={() => setActiveGroup(group.groupKey)}\n onFocus={() => setActiveGroup(group.groupKey)}\n onClick={() => setActiveGroup(group.groupKey)}\n onKeyDown={(event) => {\n if (\n event.key === \"Enter\" ||\n event.key === \" \" ||\n event.key === \"ArrowRight\"\n ) {\n event.preventDefault();\n setActiveGroup(group.groupKey);\n }\n }}\n className={cn(\n \"flex cursor-pointer items-center justify-between gap-2 rounded-md px-1.5 py-0.5 text-sm\",\n \"hover:bg-accent/50 focus-visible:bg-accent/50 focus-visible:outline-none\",\n isActive && \"bg-accent/60\",\n )}\n >\n <span className=\"min-w-0 flex-1 truncate\">\n {group.label ?? group.groupKey}\n </span>\n {selected > 0 && (\n <span className=\"rounded-full bg-primary/15 px-1.5 text-[10px] font-medium text-primary\">\n {selected}/{group.options.length}\n </span>\n )}\n <Icon\n icon={UiChevronRight}\n className=\"shrink-0 text-muted-foreground\"\n />\n </div>\n );\n })}\n {groups.length === 0 && (\n <div className=\"px-2 py-3 text-sm text-muted-foreground\">\n No groups\n </div>\n )}\n </div>\n </div>\n\n {activeGroupData && (\n <div\n onMouseEnter={() => setActiveGroup(activeGroupData.groupKey)}\n className=\"ml-1.5 min-w-[16rem] max-w-[20rem] rounded-md border border-border bg-popover p-2 text-popover-foreground shadow-lg shadow-black/5\"\n >\n <div className=\"mb-2 flex items-center justify-between gap-2\">\n <div className=\"text-[10px] font-medium uppercase tracking-wide text-muted-foreground\">\n {activeGroupData.label ?? activeGroupData.groupKey}\n </div>\n <button\n type=\"button\"\n className=\"text-[10px] text-primary disabled:text-muted-foreground\"\n onClick={() => clearGroup(activeGroupData.groupKey)}\n disabled={\n (selectedByGroup[activeGroupData.groupKey] ?? 0) === 0\n }\n >\n Clear\n </button>\n </div>\n\n <div className=\"max-h-72 space-y-0.5 overflow-auto\">\n {activeGroupData.options.map((option) => {\n const mode = draft[option.value] ?? \"neutral\";\n const title =\n option.title ?? multiSelectOptionText(option);\n return (\n <div\n key={option.value}\n role=\"button\"\n tabIndex={0}\n data-filter-option={option.value}\n className=\"rounded-md px-1.5 py-0.5 hover:bg-accent/50 focus-visible:bg-accent/50 focus-visible:outline-none\"\n onClick={() =>\n setDraft(\n updateMultiFilterValue(\n draft,\n option.value,\n nextFilterMode(mode),\n ),\n )\n }\n onKeyDown={(event) => {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n setDraft(\n updateMultiFilterValue(\n draft,\n option.value,\n nextFilterMode(mode),\n ),\n );\n } else if (event.key === \"ArrowLeft\") {\n event.preventDefault();\n setActiveGroup(null);\n }\n }}\n >\n <FilterPill\n className=\"w-full justify-between\"\n // Show only the value side here — the key is already\n // implied by the parent group panel.\n label={renderNestedOptionLabel(\n option,\n activeGroupData.groupKey,\n )}\n mode={mode}\n title={title}\n togglePosition=\"right\"\n onModeChange={(next) =>\n setDraft(\n updateMultiFilterValue(\n draft,\n option.value,\n next,\n ),\n )\n }\n />\n </div>\n );\n })}\n {activeGroupData.options.length === 0 && (\n <div className=\"px-2 py-3 text-sm text-muted-foreground\">\n No values\n </div>\n )}\n </div>\n </div>\n )}\n </div>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </div>\n );\n}\n\nfunction renderNestedOptionLabel(\n option: MultiSelectOption,\n groupKey: string,\n): ReactNode {\n // If the option label already strips the key prefix, use it. Otherwise\n // strip it here so the inner panel doesn't repeat the key on every row.\n if (typeof option.label === \"string\") {\n const prefix = `${groupKey}=`;\n if (option.label.startsWith(prefix))\n return option.label.slice(prefix.length);\n return option.label;\n }\n return option.label ?? option.value;\n}\n\nfunction SelectMultiFilterField({\n filter,\n grow,\n}: {\n filter: FilterBarSelectMultiFilter;\n grow: boolean;\n}) {\n return (\n <label\n title={filter.description}\n className={cn(\n \"flex h-8 items-center gap-2 rounded-md border border-input bg-muted/30 pl-2 pr-1 text-xs\",\n grow\n ? \"min-w-[12rem] max-w-[18rem] flex-1\"\n : \"min-w-[11rem] max-w-[15rem] shrink-0\",\n filter.disabled && \"opacity-60\",\n filter.className,\n )}\n >\n <span className=\"whitespace-nowrap font-medium uppercase tracking-wide text-muted-foreground\">\n {filter.label}\n </span>\n <MultiSelect\n options={filter.options}\n value={filter.value}\n onChange={filter.onChange}\n ariaLabel={`${filter.label} filter`}\n {...(filter.placeholder !== undefined\n ? { placeholder: filter.placeholder }\n : {})}\n {...(filter.disabled !== undefined\n ? { disabled: filter.disabled }\n : {})}\n triggerClassName=\"h-6 min-w-0 border-0 bg-transparent px-1 text-xs shadow-none focus-visible:ring-0\"\n menuClassName=\"left-auto right-0\"\n />\n </label>\n );\n}\n\nfunction RangeControlButton({\n kind,\n label,\n from = \"\",\n to = \"\",\n onApply,\n presets,\n timeEnabled,\n timeZone,\n timeZones,\n fromPlaceholder,\n toPlaceholder,\n emptyLabel,\n className,\n disabled,\n}: FilterBarRangeProps & { kind: \"date\" | \"time\"; label: string }) {\n const { compact } = useContext(FilterBarContext);\n return (\n <TimeRange\n kind={kind}\n label={label}\n from={from}\n to={to}\n onApply={onApply}\n compact={compact}\n {...(disabled !== undefined ? { disabled } : {})}\n {...(presets ? { presets } : {})}\n {...(timeEnabled !== undefined ? { timeEnabled } : {})}\n {...(timeZone ? { timeZone } : {})}\n {...(timeZones ? { timeZones } : {})}\n {...(fromPlaceholder ? { fromPlaceholder } : {})}\n {...(toPlaceholder ? { toPlaceholder } : {})}\n {...(emptyLabel ? { emptyLabel } : {})}\n {...(className ? { className } : {})}\n />\n );\n}\n\n// Anchored popup wired through floating-ui's portal so it escapes `overflow`\n// clipping from scroll-container ancestors (e.g. AppLayout's `<main>`), matching\n// Combobox/DropdownMenu. `flip`/`shift` keep it on-screen at viewport edges.\nfunction useAnchoredPopup(\n open: boolean,\n onOpenChange: (open: boolean) => void,\n placement: Placement = \"bottom-start\",\n) {\n const floatingZ = useFloatingZIndex();\n const { refs, floatingStyles, context } = useFloating({\n open,\n onOpenChange,\n placement,\n whileElementsMounted: autoUpdate,\n middleware: [offset(6), flip({ padding: 8 }), shift({ padding: 8 })],\n });\n const { getReferenceProps, getFloatingProps } = useInteractions([\n useClick(context),\n useDismiss(context, { escapeKey: false }),\n useRole(context, { role: \"dialog\" }),\n ]);\n useEscapeLayer(open, () => {\n onOpenChange(false);\n if (refs.domReference.current instanceof HTMLElement)\n refs.domReference.current.focus();\n });\n return {\n refs,\n floatingStyles,\n context,\n floatingZ,\n getReferenceProps,\n getFloatingProps,\n };\n}\n\nfunction useDebouncedTextDraft(\n value: string,\n onChange: (value: string) => void,\n) {\n const { autoSubmit } = useContext(FilterBarContext);\n const [draft, setDraft] = useState(value);\n const latestOnChange = useRef(onChange);\n const lastValue = useRef(value);\n const skipDraftChange = useRef(false);\n\n useEffect(() => {\n latestOnChange.current = onChange;\n }, [onChange]);\n\n useEffect(() => {\n if (lastValue.current === value) return;\n lastValue.current = value;\n skipDraftChange.current = true;\n setDraft(value);\n }, [value]);\n\n useEffect(() => {\n if (skipDraftChange.current) {\n skipDraftChange.current = false;\n return;\n }\n if (draft === value) return;\n\n if (!autoSubmit || draft === \"\") {\n latestOnChange.current(draft);\n return;\n }\n\n const timeoutId = window.setTimeout(() => {\n latestOnChange.current(draft);\n }, FILTER_INPUT_DEBOUNCE_MS);\n\n return () => window.clearTimeout(timeoutId);\n }, [autoSubmit, draft, value]);\n\n return [draft, setDraft] as const;\n}\n\nfunction useDebouncedNumberDraft(\n value: FilterBarNumberValue,\n onChange: (value: FilterBarNumberValue) => void,\n) {\n const { autoSubmit } = useContext(FilterBarContext);\n const [draft, setDraft] = useState(value);\n const latestOnChange = useRef(onChange);\n\n useEffect(() => {\n latestOnChange.current = onChange;\n }, [onChange]);\n\n useEffect(() => {\n setDraft(value);\n }, [\n value.max,\n value.maxOperator,\n (value as FilterBarDurationValue).maxUnit,\n value.min,\n value.minOperator,\n (value as FilterBarDurationValue).minUnit,\n ]);\n\n useEffect(() => {\n if (sameNumberFilterValue(draft, value)) return;\n\n if (!autoSubmit) {\n latestOnChange.current(draft);\n return;\n }\n\n const timeoutId = window.setTimeout(() => {\n latestOnChange.current(draft);\n }, FILTER_INPUT_DEBOUNCE_MS);\n\n return () => window.clearTimeout(timeoutId);\n }, [autoSubmit, draft, value]);\n\n return [draft, setDraft] as const;\n}\n\nfunction sameNumberFilterValue(\n left: FilterBarNumberValue,\n right: FilterBarNumberValue,\n) {\n const leftDuration = left as FilterBarDurationValue;\n const rightDuration = right as FilterBarDurationValue;\n return (\n (left.min ?? \"\") === (right.min ?? \"\") &&\n (left.minOperator ?? \">=\") === (right.minOperator ?? \">=\") &&\n (leftDuration.minUnit ?? \"\") === (rightDuration.minUnit ?? \"\") &&\n (left.max ?? \"\") === (right.max ?? \"\") &&\n (left.maxOperator ?? \"<=\") === (right.maxOperator ?? \"<=\") &&\n (leftDuration.maxUnit ?? \"\") === (rightDuration.maxUnit ?? \"\")\n );\n}\n\ntype NumberFilterBounds = {\n min: number;\n max: number;\n step: number;\n};\n\ntype NumberFilterSource = \"min-input\" | \"max-input\";\n\nfunction resolveNumberFilterBounds(\n filter: FilterBarBoundedFilter,\n): NumberFilterBounds {\n const parsedMin = parseFilterNumber(filter.value.min);\n const parsedMax = parseFilterNumber(filter.value.max);\n const fallbackMin = parsedMin ?? 0;\n const fallbackMax = parsedMax ?? Math.max(fallbackMin + 100, 100);\n const min = filter.domainMin ?? Math.min(fallbackMin, fallbackMax);\n const max = filter.domainMax ?? Math.max(fallbackMax, min + 100);\n const step = filter.step && filter.step > 0 ? filter.step : 1;\n\n return {\n min,\n max: max <= min ? min + step : max,\n step,\n };\n}\n\nfunction summarizeNumberFilter(\n filter: FilterBarBoundedFilter,\n bounds: NumberFilterBounds,\n value: FilterBarNumberValue,\n) {\n const parsedMin = parseFilterNumber(value.min);\n const parsedMax = parseFilterNumber(value.max);\n const hasMin = String(value.min ?? \"\").trim() !== \"\";\n const hasMax = String(value.max ?? \"\").trim() !== \"\";\n\n if (!hasMin && !hasMax) {\n return filter.label;\n }\n\n const minLabel = formatNumberOperand(\n parsedMin ?? bounds.min,\n filter,\n value,\n \"min\",\n );\n const maxLabel = formatNumberOperand(\n parsedMax ?? bounds.max,\n filter,\n value,\n \"max\",\n );\n\n if (hasMin && hasMax) {\n return `${filter.label} ${value.minOperator ?? \">=\"}${minLabel}, ${value.maxOperator ?? \"<=\"}${maxLabel}`;\n }\n\n if (hasMin) {\n return `${filter.label} ${value.minOperator ?? \">=\"}${minLabel}`;\n }\n\n return `${filter.label} ${value.maxOperator ?? \"<=\"}${maxLabel}`;\n}\n\nfunction normalizeNumberFilterValue(\n nextValue: FilterBarNumberValue,\n source: NumberFilterSource,\n): FilterBarNumberValue {\n let min = nextValue.min ?? \"\";\n let max = nextValue.max ?? \"\";\n\n const parsedMin = parseFilterNumber(min);\n const parsedMax = parseFilterNumber(max);\n\n if (parsedMin != null && parsedMax != null && parsedMin > parsedMax) {\n if (source.startsWith(\"min\")) {\n max = min;\n } else {\n min = max;\n }\n }\n\n return { ...nextValue, min, max };\n}\n\nfunction numberFilterValueFromSlider(\n value: [number, number],\n bounds: NumberFilterBounds,\n filter: FilterBarBoundedFilter,\n): FilterBarNumberValue {\n const [min, max] = value;\n const next: FilterBarDurationValue = {\n min:\n min <= bounds.min\n ? \"\"\n : formatRawNumber(clampNumber(min, bounds.min, bounds.max)),\n minOperator: \">=\",\n max:\n max >= bounds.max\n ? \"\"\n : formatRawNumber(clampNumber(max, bounds.min, bounds.max)),\n maxOperator: \"<=\",\n };\n if (filter.kind === \"duration\") {\n next.minUnit = filter.unit ?? \"ms\";\n next.maxUnit = filter.unit ?? \"ms\";\n }\n return next;\n}\n\nfunction parseFilterNumber(value: string | undefined) {\n if (!value?.trim()) return null;\n const parsed = Number(value);\n return Number.isFinite(parsed) ? parsed : null;\n}\n\nfunction clampNumber(value: number, min: number, max: number) {\n return Math.min(max, Math.max(min, value));\n}\n\nfunction formatNumberValue(value: number, filter: FilterBarBoundedFilter) {\n if (filter.kind === \"number\" && filter.formatValue) {\n return filter.formatValue(value);\n }\n if (filter.kind === \"duration\") {\n return `${formatRawNumber(value)} ${filter.unit ?? \"ms\"}`;\n }\n return filter.unit\n ? `${formatRawNumber(value)} ${filter.unit}`\n : formatRawNumber(value);\n}\n\nfunction formatNumberOperand(\n value: number,\n filter: FilterBarBoundedFilter,\n bounds: FilterBarNumberValue,\n edge: \"min\" | \"max\",\n) {\n if (filter.kind !== \"duration\") return formatNumberValue(value, filter);\n const duration = bounds as FilterBarDurationValue;\n const unit = edge === \"min\" ? duration.minUnit : duration.maxUnit;\n return `${formatRawNumber(value)} ${unit ?? filter.unit ?? \"ms\"}`;\n}\n\nfunction applyBoundedFilterValue(\n filter: FilterBarBoundedFilter,\n value: FilterBarDurationValue,\n) {\n filter.onChange(value);\n}\n\nfunction formatRawNumber(value: number) {\n return Number.isInteger(value)\n ? String(value)\n : String(Number(value.toFixed(6)));\n}\n\ntype FilterBarValue =\n | string\n | string[]\n | boolean\n // A tri-state filter's \"off\" position is undefined, so it is a real staged\n // value rather than the absence of one.\n | undefined\n | FilterBarNumberValue\n | Record<string, FilterBarMultiFilterMode>;\n\nfunction createFilterValueMap(filters: FilterBarFilter[]) {\n return Object.fromEntries(\n filters.map((filter) => [filter.key, filterBarFilterValue(filter)]),\n );\n}\n\n// A date range applies the moment it is applied in its own panel, exactly as\n// the bar's trailing range control does, so it has no value to stage and\n// nothing here ever writes one back to it.\nfunction isStageableFilter(\n filter: FilterBarFilter,\n): filter is Exclude<FilterBarFilter, FilterBarDateRangeFilter> {\n return filter.kind !== \"date-range\";\n}\n\nfunction filterBarFilterValue(filter: FilterBarFilter): FilterBarValue {\n if (!isStageableFilter(filter)) return undefined;\n return filter.value;\n}\n\nfunction filterWithStagedValue(\n filter: FilterBarFilter,\n value: FilterBarValue,\n onChange: (value: FilterBarValue) => void,\n): FilterBarFilter {\n if (!isStageableFilter(filter)) return filter;\n if (filter.kind === \"text\") {\n return {\n ...filter,\n value: String(value ?? \"\"),\n onChange: (next: string) => onChange(next),\n };\n }\n if (filter.kind === \"lookup\") {\n return {\n ...filter,\n value: String(value ?? \"\"),\n onChange: (next: string) => onChange(next),\n };\n }\n if (filter.kind === \"workload\") {\n return {\n ...filter,\n value: String(value ?? \"\"),\n onChange: (next: string) => onChange(next),\n };\n }\n if (filter.kind === \"lookup-multi\") {\n return {\n ...filter,\n value: Array.isArray(value) ? value.map(String) : [],\n onChange: (next: string[]) => onChange(next),\n };\n }\n if (filter.kind === \"multi\") {\n return {\n ...filter,\n value: isMultiFilterValue(value) ? value : {},\n onChange: (next: Record<string, FilterBarMultiFilterMode>) =>\n onChange(next),\n };\n }\n if (filter.kind === \"nested-multi\") {\n return {\n ...filter,\n value: isMultiFilterValue(value) ? value : {},\n onChange: (next: Record<string, FilterBarMultiFilterMode>) =>\n onChange(next),\n };\n }\n if (filter.kind === \"select-multi\") {\n return {\n ...filter,\n value: Array.isArray(value) ? value.map(String) : [],\n onChange: (next: string[]) => onChange(next),\n };\n }\n if (filter.kind === \"number\" || filter.kind === \"duration\") {\n return {\n ...filter,\n value: isNumberFilterValue(value) ? value : {},\n onChange: (next: FilterBarNumberValue) => onChange(next),\n } as FilterBarFilter;\n }\n if (filter.kind === \"enum\") {\n return {\n ...filter,\n value: String(value ?? \"\"),\n onChange: (next: string) => onChange(next),\n };\n }\n if (filter.kind === \"tristate\") {\n return {\n ...filter,\n value: value === undefined ? undefined : Boolean(value),\n onChange: (next: TriState) => onChange(next),\n };\n }\n return {\n ...filter,\n value: Boolean(value),\n onChange: (next: boolean) => onChange(next),\n };\n}\n\nfunction applyStagedFilterValues(\n filters: FilterBarFilter[],\n stagedValues: Record<string, FilterBarValue>,\n) {\n for (const filter of filters) {\n if (!isStageableFilter(filter)) continue;\n // Key presence, not `??`: undefined is a tri-state filter's \"off\" value and\n // must still be applied over a live true/false.\n const next = Object.hasOwn(stagedValues, filter.key)\n ? stagedValues[filter.key]\n : filterBarFilterValue(filter);\n if (sameFilterBarValue(filterBarFilterValue(filter), next)) continue;\n applyFilterBarValue(filter, next);\n }\n}\n\nfunction applyFilterBarValue(filter: FilterBarFilter, value: FilterBarValue) {\n if (!isStageableFilter(filter)) return;\n if (\n filter.kind === \"text\" ||\n filter.kind === \"lookup\" ||\n filter.kind === \"workload\" ||\n filter.kind === \"enum\"\n ) {\n filter.onChange(String(value ?? \"\"));\n return;\n }\n if (filter.kind === \"lookup-multi\" || filter.kind === \"select-multi\") {\n filter.onChange(Array.isArray(value) ? value.map(String) : []);\n return;\n }\n if (filter.kind === \"number\" || filter.kind === \"duration\") {\n const next = isNumberFilterValue(value) ? value : {};\n applyBoundedFilterValue(filter, next);\n return;\n }\n if (filter.kind === \"boolean\") {\n filter.onChange(Boolean(value));\n return;\n }\n if (filter.kind === \"tristate\") {\n filter.onChange(value === undefined ? undefined : Boolean(value));\n return;\n }\n filter.onChange(isMultiFilterValue(value) ? value : {});\n}\n\nfunction sameFilterBarValue(left: FilterBarValue, right: FilterBarValue) {\n return JSON.stringify(left) === JSON.stringify(right);\n}\n\nfunction isNumberFilterValue(\n value: FilterBarValue,\n): value is FilterBarNumberValue {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction isMultiFilterValue(\n value: FilterBarValue,\n): value is Record<string, FilterBarMultiFilterMode> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction calculateVisibleFilterCount(widths: number[], availableWidth: number) {\n if (widths.length === 0) return 0;\n\n let used = 0;\n let count = 0;\n for (const width of widths) {\n const nextUsed = used + (count > 0 ? FILTER_BAR_GAP_PX : 0) + width;\n if (nextUsed > availableWidth) break;\n used = nextUsed;\n count += 1;\n }\n return count;\n}\n\nfunction sumFilterWidths(widths: number[]) {\n if (widths.length === 0) return 0;\n return (\n widths.reduce((total, width) => total + width, 0) +\n (widths.length - 1) * FILTER_BAR_GAP_PX\n );\n}\n\nfunction estimateFilterWidth(filter: FilterBarFilter) {\n if (filter.kind === \"boolean\")\n return Math.max(88, filter.label.length * 8 + 40);\n // Multi renders as a combobox field (min-w-[11rem] ≈ 176px); nested keeps\n // its compact trigger button.\n if (filter.kind === \"multi\") return 176;\n if (filter.kind === \"nested-multi\") return 136;\n if (filter.kind === \"workload\") return 224;\n if (filter.kind === \"number\" || filter.kind === \"duration\") return 152;\n return Math.max(144, filter.label.length * 8 + 96);\n}\n"],"names":[],"mappings":"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"}
|