@flanksource/clicky-ui 0.3.17 → 0.3.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai.cjs +12 -6
- package/dist/ai.cjs.map +1 -1
- package/dist/ai.js +10 -4
- package/dist/ai.js.map +1 -1
- package/dist/chat.cjs +36 -0
- package/dist/chat.cjs.map +1 -1
- package/dist/chat.js +37 -1
- package/dist/chat.js.map +1 -1
- package/dist/components/Combobox.cjs +122 -153
- package/dist/components/Combobox.cjs.map +1 -1
- package/dist/components/Combobox.d.ts.map +1 -1
- package/dist/components/Combobox.js +124 -155
- package/dist/components/Combobox.js.map +1 -1
- package/dist/components/ComboboxControl.cjs +145 -0
- package/dist/components/ComboboxControl.cjs.map +1 -0
- package/dist/components/ComboboxControl.d.ts +37 -0
- package/dist/components/ComboboxControl.d.ts.map +1 -0
- package/dist/components/ComboboxControl.js +145 -0
- package/dist/components/ComboboxControl.js.map +1 -0
- package/dist/components/ComboboxMenu.cjs +35 -14
- package/dist/components/ComboboxMenu.cjs.map +1 -1
- package/dist/components/ComboboxMenu.d.ts.map +1 -1
- package/dist/components/ComboboxMenu.js +35 -14
- package/dist/components/ComboboxMenu.js.map +1 -1
- package/dist/components/ComboboxTags.cjs +40 -0
- package/dist/components/ComboboxTags.cjs.map +1 -0
- package/dist/components/ComboboxTags.d.ts +8 -0
- package/dist/components/ComboboxTags.d.ts.map +1 -0
- package/dist/components/ComboboxTags.js +40 -0
- package/dist/components/ComboboxTags.js.map +1 -0
- package/dist/components/EndpointSelector.model.cjs +96 -0
- package/dist/components/EndpointSelector.model.cjs.map +1 -0
- package/dist/components/EndpointSelector.model.d.ts +2 -0
- package/dist/components/EndpointSelector.model.d.ts.map +1 -1
- package/dist/components/EndpointSelector.model.js +96 -0
- package/dist/components/EndpointSelector.model.js.map +1 -0
- package/dist/components/ErrorWrapper.cjs +168 -0
- package/dist/components/ErrorWrapper.cjs.map +1 -0
- package/dist/components/ErrorWrapper.d.ts +19 -0
- package/dist/components/ErrorWrapper.d.ts.map +1 -0
- package/dist/components/ErrorWrapper.js +168 -0
- package/dist/components/ErrorWrapper.js.map +1 -0
- package/dist/components/FilterBar.cjs +116 -4
- package/dist/components/FilterBar.cjs.map +1 -1
- package/dist/components/FilterBar.d.ts +37 -2
- package/dist/components/FilterBar.d.ts.map +1 -1
- package/dist/components/FilterBar.js +116 -4
- package/dist/components/FilterBar.js.map +1 -1
- package/dist/components/JSONPathField.cjs +112 -0
- package/dist/components/JSONPathField.cjs.map +1 -0
- package/dist/components/JSONPathField.d.ts +36 -0
- package/dist/components/JSONPathField.d.ts.map +1 -0
- package/dist/components/JSONPathField.js +112 -0
- package/dist/components/JSONPathField.js.map +1 -0
- package/dist/components/JSONPathPlayground.cjs +225 -0
- package/dist/components/JSONPathPlayground.cjs.map +1 -0
- package/dist/components/JSONPathPlayground.d.ts +59 -0
- package/dist/components/JSONPathPlayground.d.ts.map +1 -0
- package/dist/components/JSONPathPlayground.js +225 -0
- package/dist/components/JSONPathPlayground.js.map +1 -0
- package/dist/components/JsonSchemaForm.cjs +8 -4
- package/dist/components/JsonSchemaForm.cjs.map +1 -1
- package/dist/components/JsonSchemaForm.d.ts.map +1 -1
- package/dist/components/JsonSchemaForm.js +8 -4
- package/dist/components/JsonSchemaForm.js.map +1 -1
- package/dist/components/OnePasswordSelector.cjs +178 -0
- package/dist/components/OnePasswordSelector.cjs.map +1 -0
- package/dist/components/OnePasswordSelector.d.ts +8 -0
- package/dist/components/OnePasswordSelector.d.ts.map +1 -0
- package/dist/components/OnePasswordSelector.js +178 -0
- package/dist/components/OnePasswordSelector.js.map +1 -0
- package/dist/components/OnePasswordSelector.model.cjs +31 -0
- package/dist/components/OnePasswordSelector.model.cjs.map +1 -0
- package/dist/components/OnePasswordSelector.model.d.ts +27 -0
- package/dist/components/OnePasswordSelector.model.d.ts.map +1 -0
- package/dist/components/OnePasswordSelector.model.js +31 -0
- package/dist/components/OnePasswordSelector.model.js.map +1 -0
- package/dist/components/SecretFormField.cjs +142 -0
- package/dist/components/SecretFormField.cjs.map +1 -0
- package/dist/components/SecretFormField.d.ts +9 -0
- package/dist/components/SecretFormField.d.ts.map +1 -0
- package/dist/components/SecretFormField.js +142 -0
- package/dist/components/SecretFormField.js.map +1 -0
- package/dist/components/SecretKeySelector.cjs +20 -14
- package/dist/components/SecretKeySelector.cjs.map +1 -1
- package/dist/components/SecretKeySelector.d.ts +4 -1
- package/dist/components/SecretKeySelector.d.ts.map +1 -1
- package/dist/components/SecretKeySelector.js +20 -14
- package/dist/components/SecretKeySelector.js.map +1 -1
- package/dist/components/TreePickerField.cjs +71 -27
- package/dist/components/TreePickerField.cjs.map +1 -1
- package/dist/components/TreePickerField.d.ts +31 -2
- package/dist/components/TreePickerField.d.ts.map +1 -1
- package/dist/components/TreePickerField.js +72 -28
- package/dist/components/TreePickerField.js.map +1 -1
- package/dist/components/TriStateToggle.cjs +53 -0
- package/dist/components/TriStateToggle.cjs.map +1 -0
- package/dist/components/TriStateToggle.d.ts +27 -0
- package/dist/components/TriStateToggle.d.ts.map +1 -0
- package/dist/components/TriStateToggle.js +53 -0
- package/dist/components/TriStateToggle.js.map +1 -0
- package/dist/components/combobox-types.d.ts +25 -1
- package/dist/components/combobox-types.d.ts.map +1 -1
- package/dist/components/combobox-utils.cjs +26 -0
- package/dist/components/combobox-utils.cjs.map +1 -1
- package/dist/components/combobox-utils.d.ts +10 -0
- package/dist/components/combobox-utils.d.ts.map +1 -1
- package/dist/components/combobox-utils.js +26 -0
- package/dist/components/combobox-utils.js.map +1 -1
- package/dist/components/filter-bar-utils.cjs +12 -0
- 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 +12 -0
- package/dist/components/filter-bar-utils.js.map +1 -1
- package/dist/components/jotai-bindings-core.cjs.map +1 -1
- package/dist/components/jotai-bindings-core.d.ts +4 -1
- package/dist/components/jotai-bindings-core.d.ts.map +1 -1
- package/dist/components/jotai-bindings-core.js.map +1 -1
- package/dist/components/json-schema-form-accordion-array.cjs +290 -0
- package/dist/components/json-schema-form-accordion-array.cjs.map +1 -0
- package/dist/components/json-schema-form-accordion-array.d.ts +7 -0
- package/dist/components/json-schema-form-accordion-array.d.ts.map +1 -0
- package/dist/components/json-schema-form-accordion-array.js +290 -0
- package/dist/components/json-schema-form-accordion-array.js.map +1 -0
- package/dist/components/json-schema-form-array.cjs +99 -110
- package/dist/components/json-schema-form-array.cjs.map +1 -1
- package/dist/components/json-schema-form-array.d.ts +1 -1
- package/dist/components/json-schema-form-array.d.ts.map +1 -1
- package/dist/components/json-schema-form-array.js +98 -109
- package/dist/components/json-schema-form-array.js.map +1 -1
- package/dist/components/json-schema-form-error-display.cjs +4 -2
- package/dist/components/json-schema-form-error-display.cjs.map +1 -1
- package/dist/components/json-schema-form-error-display.d.ts +4 -2
- package/dist/components/json-schema-form-error-display.d.ts.map +1 -1
- package/dist/components/json-schema-form-error-display.js +4 -2
- package/dist/components/json-schema-form-error-display.js.map +1 -1
- package/dist/components/json-schema-form-extensions.cjs +10 -0
- package/dist/components/json-schema-form-extensions.cjs.map +1 -0
- package/dist/components/json-schema-form-extensions.d.ts +8 -0
- package/dist/components/json-schema-form-extensions.d.ts.map +1 -0
- package/dist/components/json-schema-form-extensions.js +10 -0
- package/dist/components/json-schema-form-extensions.js.map +1 -0
- package/dist/components/json-schema-form-fields.cjs +25 -101
- package/dist/components/json-schema-form-fields.cjs.map +1 -1
- package/dist/components/json-schema-form-fields.d.ts +1 -32
- package/dist/components/json-schema-form-fields.d.ts.map +1 -1
- package/dist/components/json-schema-form-fields.js +28 -104
- package/dist/components/json-schema-form-fields.js.map +1 -1
- package/dist/components/json-schema-form-item-summary.cjs +131 -0
- package/dist/components/json-schema-form-item-summary.cjs.map +1 -0
- package/dist/components/json-schema-form-item-summary.d.ts +13 -0
- package/dist/components/json-schema-form-item-summary.d.ts.map +1 -0
- package/dist/components/json-schema-form-item-summary.js +131 -0
- package/dist/components/json-schema-form-item-summary.js.map +1 -0
- package/dist/components/json-schema-form-layout.cjs +156 -0
- package/dist/components/json-schema-form-layout.cjs.map +1 -0
- package/dist/components/json-schema-form-layout.d.ts +43 -0
- package/dist/components/json-schema-form-layout.d.ts.map +1 -0
- package/dist/components/json-schema-form-layout.js +156 -0
- package/dist/components/json-schema-form-layout.js.map +1 -0
- package/dist/components/json-schema-form-lookup-tree.cjs +149 -0
- package/dist/components/json-schema-form-lookup-tree.cjs.map +1 -0
- package/dist/components/json-schema-form-lookup-tree.d.ts +22 -0
- package/dist/components/json-schema-form-lookup-tree.d.ts.map +1 -0
- package/dist/components/json-schema-form-lookup-tree.js +149 -0
- package/dist/components/json-schema-form-lookup-tree.js.map +1 -0
- package/dist/components/json-schema-form-object.cjs +11 -4
- package/dist/components/json-schema-form-object.cjs.map +1 -1
- package/dist/components/json-schema-form-object.d.ts.map +1 -1
- package/dist/components/json-schema-form-object.js +11 -4
- package/dist/components/json-schema-form-object.js.map +1 -1
- package/dist/components/json-schema-form-render.cjs +53 -29
- 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 +53 -29
- package/dist/components/json-schema-form-render.js.map +1 -1
- package/dist/components/json-schema-form-resolve.cjs +62 -13
- package/dist/components/json-schema-form-resolve.cjs.map +1 -1
- package/dist/components/json-schema-form-resolve.d.ts +1 -0
- package/dist/components/json-schema-form-resolve.d.ts.map +1 -1
- package/dist/components/json-schema-form-resolve.js +62 -13
- package/dist/components/json-schema-form-resolve.js.map +1 -1
- package/dist/components/json-schema-form-table-array.cjs +123 -0
- package/dist/components/json-schema-form-table-array.cjs.map +1 -0
- package/dist/components/json-schema-form-table-array.d.ts +7 -0
- package/dist/components/json-schema-form-table-array.d.ts.map +1 -0
- package/dist/components/json-schema-form-table-array.js +123 -0
- package/dist/components/json-schema-form-table-array.js.map +1 -0
- package/dist/components/json-schema-form-tone.cjs +34 -0
- package/dist/components/json-schema-form-tone.cjs.map +1 -0
- package/dist/components/json-schema-form-tone.d.ts +8 -0
- package/dist/components/json-schema-form-tone.d.ts.map +1 -0
- package/dist/components/json-schema-form-tone.js +34 -0
- package/dist/components/json-schema-form-tone.js.map +1 -0
- package/dist/components/json-schema-form-types.d.ts +88 -10
- package/dist/components/json-schema-form-types.d.ts.map +1 -1
- package/dist/components/json-schema-form-utils.cjs +47 -4
- package/dist/components/json-schema-form-utils.cjs.map +1 -1
- package/dist/components/json-schema-form-utils.d.ts +19 -4
- package/dist/components/json-schema-form-utils.d.ts.map +1 -1
- package/dist/components/json-schema-form-utils.js +47 -4
- package/dist/components/json-schema-form-utils.js.map +1 -1
- package/dist/components/jsonPathTree.cjs +189 -0
- package/dist/components/jsonPathTree.cjs.map +1 -0
- package/dist/components/jsonPathTree.d.ts +92 -0
- package/dist/components/jsonPathTree.d.ts.map +1 -0
- package/dist/components/jsonPathTree.js +189 -0
- package/dist/components/jsonPathTree.js.map +1 -0
- package/dist/components/secret-form-extension.cjs +30 -0
- package/dist/components/secret-form-extension.cjs.map +1 -0
- package/dist/components/secret-form-extension.d.ts +23 -0
- package/dist/components/secret-form-extension.d.ts.map +1 -0
- package/dist/components/secret-form-extension.js +30 -0
- package/dist/components/secret-form-extension.js.map +1 -0
- package/dist/components/tri-state.cjs +8 -0
- package/dist/components/tri-state.cjs.map +1 -0
- package/dist/components/tri-state.d.ts +5 -0
- package/dist/components/tri-state.d.ts.map +1 -0
- package/dist/components/tri-state.js +8 -0
- package/dist/components/tri-state.js.map +1 -0
- package/dist/components/useComboboxLayout.cjs +59 -0
- package/dist/components/useComboboxLayout.cjs.map +1 -0
- package/dist/components/useComboboxLayout.d.ts +5 -0
- package/dist/components/useComboboxLayout.d.ts.map +1 -0
- package/dist/components/useComboboxLayout.js +59 -0
- package/dist/components/useComboboxLayout.js.map +1 -0
- package/dist/components.cjs +37 -0
- package/dist/components.cjs.map +1 -1
- package/dist/components.d.ts +20 -4
- package/dist/components.d.ts.map +1 -1
- package/dist/components.js +38 -1
- package/dist/components.js.map +1 -1
- package/dist/data/Clicky.cjs +51 -2
- package/dist/data/Clicky.cjs.map +1 -1
- package/dist/data/Clicky.d.ts +10 -1
- package/dist/data/Clicky.d.ts.map +1 -1
- package/dist/data/Clicky.js +51 -2
- package/dist/data/Clicky.js.map +1 -1
- package/dist/data/DataTable.cjs +185 -53
- package/dist/data/DataTable.cjs.map +1 -1
- package/dist/data/DataTable.d.ts +63 -3
- package/dist/data/DataTable.d.ts.map +1 -1
- package/dist/data/DataTable.js +185 -53
- package/dist/data/DataTable.js.map +1 -1
- package/dist/data/LogsTable.cjs +10 -1
- package/dist/data/LogsTable.cjs.map +1 -1
- package/dist/data/LogsTable.d.ts +3 -1
- package/dist/data/LogsTable.d.ts.map +1 -1
- package/dist/data/LogsTable.js +10 -1
- package/dist/data/LogsTable.js.map +1 -1
- package/dist/data/TaskExecDetails.cjs +40 -0
- package/dist/data/TaskExecDetails.cjs.map +1 -0
- package/dist/data/TaskExecDetails.d.ts +5 -0
- package/dist/data/TaskExecDetails.d.ts.map +1 -0
- package/dist/data/TaskExecDetails.js +40 -0
- package/dist/data/TaskExecDetails.js.map +1 -0
- package/dist/data/TaskManager.cjs +99 -14
- package/dist/data/TaskManager.cjs.map +1 -1
- package/dist/data/TaskManager.d.ts.map +1 -1
- package/dist/data/TaskManager.js +100 -15
- package/dist/data/TaskManager.js.map +1 -1
- package/dist/data/TaskProgress.cjs +59 -14
- package/dist/data/TaskProgress.cjs.map +1 -1
- package/dist/data/TaskProgress.d.ts +2 -1
- package/dist/data/TaskProgress.d.ts.map +1 -1
- package/dist/data/TaskProgress.js +59 -14
- package/dist/data/TaskProgress.js.map +1 -1
- package/dist/data/TaskSnapshot.cjs.map +1 -1
- package/dist/data/TaskSnapshot.d.ts +12 -1
- package/dist/data/TaskSnapshot.d.ts.map +1 -1
- package/dist/data/TaskSnapshot.js.map +1 -1
- package/dist/data/TreeNode.cjs +3 -0
- package/dist/data/TreeNode.cjs.map +1 -1
- package/dist/data/TreeNode.d.ts.map +1 -1
- package/dist/data/TreeNode.js +3 -0
- package/dist/data/TreeNode.js.map +1 -1
- package/dist/data/ai/AdvancedChatConfig.cjs +289 -0
- package/dist/data/ai/AdvancedChatConfig.cjs.map +1 -0
- package/dist/data/ai/AdvancedChatConfig.d.ts +21 -0
- package/dist/data/ai/AdvancedChatConfig.d.ts.map +1 -0
- package/dist/data/ai/AdvancedChatConfig.js +289 -0
- package/dist/data/ai/AdvancedChatConfig.js.map +1 -0
- package/dist/data/ai/AdvancedCostsPanel.cjs +120 -0
- package/dist/data/ai/AdvancedCostsPanel.cjs.map +1 -0
- package/dist/data/ai/AdvancedCostsPanel.d.ts +16 -0
- package/dist/data/ai/AdvancedCostsPanel.d.ts.map +1 -0
- package/dist/data/ai/AdvancedCostsPanel.js +120 -0
- package/dist/data/ai/AdvancedCostsPanel.js.map +1 -0
- package/dist/data/ai/ChatWindow.catalogs.cjs +74 -0
- package/dist/data/ai/ChatWindow.catalogs.cjs.map +1 -0
- package/dist/data/ai/ChatWindow.catalogs.d.ts +16 -0
- package/dist/data/ai/ChatWindow.catalogs.d.ts.map +1 -0
- package/dist/data/ai/ChatWindow.catalogs.js +74 -0
- package/dist/data/ai/ChatWindow.catalogs.js.map +1 -0
- package/dist/data/ai/ChatWindow.cjs +78 -100
- package/dist/data/ai/ChatWindow.cjs.map +1 -1
- package/dist/data/ai/ChatWindow.d.ts +1 -1
- package/dist/data/ai/ChatWindow.d.ts.map +1 -1
- package/dist/data/ai/ChatWindow.js +80 -102
- package/dist/data/ai/ChatWindow.js.map +1 -1
- package/dist/data/ai/ChatWindow.preferences.cjs.map +1 -1
- package/dist/data/ai/ChatWindow.preferences.d.ts +2 -4
- package/dist/data/ai/ChatWindow.preferences.d.ts.map +1 -1
- package/dist/data/ai/ChatWindow.preferences.js.map +1 -1
- package/dist/data/ai/ChatWindow.runtime.cjs +120 -0
- package/dist/data/ai/ChatWindow.runtime.cjs.map +1 -0
- package/dist/data/ai/ChatWindow.runtime.d.ts +20 -0
- package/dist/data/ai/ChatWindow.runtime.d.ts.map +1 -0
- package/dist/data/ai/ChatWindow.runtime.js +120 -0
- package/dist/data/ai/ChatWindow.runtime.js.map +1 -0
- package/dist/data/ai/ChatWindow.thread.cjs +1 -1
- package/dist/data/ai/ChatWindow.thread.cjs.map +1 -1
- package/dist/data/ai/ChatWindow.thread.js +1 -1
- package/dist/data/ai/ChatWindow.thread.js.map +1 -1
- package/dist/data/ai/ChatWindow.tool-catalog.cjs +20 -0
- package/dist/data/ai/ChatWindow.tool-catalog.cjs.map +1 -1
- package/dist/data/ai/ChatWindow.tool-catalog.d.ts +17 -1
- package/dist/data/ai/ChatWindow.tool-catalog.d.ts.map +1 -1
- package/dist/data/ai/ChatWindow.tool-catalog.js +20 -0
- package/dist/data/ai/ChatWindow.tool-catalog.js.map +1 -1
- package/dist/data/ai/ChatWindow.types.d.ts +13 -5
- package/dist/data/ai/ChatWindow.types.d.ts.map +1 -1
- package/dist/data/ai/ChatWindowManager.cjs +3 -1
- 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 -1
- package/dist/data/ai/ChatWindowManager.js.map +1 -1
- package/dist/data/ai/PromptPicker/PromptPicker.cjs +1 -1
- package/dist/data/ai/PromptPicker/PromptPicker.cjs.map +1 -1
- package/dist/data/ai/PromptPicker/PromptPicker.d.ts +1 -1
- package/dist/data/ai/PromptPicker/PromptPicker.d.ts.map +1 -1
- package/dist/data/ai/PromptPicker/PromptPicker.js +1 -1
- package/dist/data/ai/PromptPicker/PromptPicker.js.map +1 -1
- package/dist/data/ai/PromptRunEditor/index.cjs +2 -2
- package/dist/data/ai/PromptRunEditor/index.cjs.map +1 -1
- package/dist/data/ai/PromptRunEditor/index.d.ts +1 -1
- package/dist/data/ai/PromptRunEditor/index.d.ts.map +1 -1
- package/dist/data/ai/PromptRunEditor/index.js +2 -2
- package/dist/data/ai/PromptRunEditor/index.js.map +1 -1
- package/dist/data/ai/RuntimeModePicker.cjs +1 -1
- package/dist/data/ai/RuntimeModePicker.cjs.map +1 -1
- package/dist/data/ai/RuntimeModePicker.d.ts +1 -1
- package/dist/data/ai/RuntimeModePicker.d.ts.map +1 -1
- package/dist/data/ai/RuntimeModePicker.js +1 -1
- package/dist/data/ai/RuntimeModePicker.js.map +1 -1
- package/dist/data/ai/SessionInspector.files.cjs +26 -43
- package/dist/data/ai/SessionInspector.files.cjs.map +1 -1
- package/dist/data/ai/SessionInspector.files.d.ts.map +1 -1
- package/dist/data/ai/SessionInspector.files.js +26 -43
- package/dist/data/ai/SessionInspector.files.js.map +1 -1
- package/dist/data/ai/SessionInspector.hierarchy.cjs +1 -1
- package/dist/data/ai/SessionInspector.hierarchy.cjs.map +1 -1
- package/dist/data/ai/SessionInspector.hierarchy.js +1 -1
- package/dist/data/ai/SessionInspector.hierarchy.js.map +1 -1
- package/dist/data/ai/SessionInspector.model.cjs +1 -1
- package/dist/data/ai/SessionInspector.model.cjs.map +1 -1
- package/dist/data/ai/SessionInspector.model.js +1 -1
- package/dist/data/ai/SessionInspector.model.js.map +1 -1
- package/dist/data/ai/SessionViewer.rows.cjs +4 -16
- 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 +4 -16
- package/dist/data/ai/SessionViewer.rows.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/ModelSection.cjs +12 -3
- package/dist/data/ai/SpecRuntimeEditor/ModelSection.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/ModelSection.d.ts +1 -1
- package/dist/data/ai/SpecRuntimeEditor/ModelSection.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/ModelSection.js +12 -3
- package/dist/data/ai/SpecRuntimeEditor/ModelSection.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/VerifySection.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/VerifySection.d.ts +1 -1
- package/dist/data/ai/SpecRuntimeEditor/VerifySection.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/VerifySection.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/fields.js +1 -1
- package/dist/data/ai/SpecRuntimeEditor/index.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/index.d.ts +2 -2
- package/dist/data/ai/SpecRuntimeEditor/index.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/index.js.map +1 -1
- package/dist/data/ai/ThreadPicker.cjs +65 -3
- package/dist/data/ai/ThreadPicker.cjs.map +1 -1
- package/dist/data/ai/ThreadPicker.d.ts +11 -5
- package/dist/data/ai/ThreadPicker.d.ts.map +1 -1
- package/dist/data/ai/ThreadPicker.js +65 -3
- package/dist/data/ai/ThreadPicker.js.map +1 -1
- package/dist/data/ai/ToolPreferences.cjs +65 -685
- package/dist/data/ai/ToolPreferences.cjs.map +1 -1
- package/dist/data/ai/ToolPreferences.d.ts +15 -17
- package/dist/data/ai/ToolPreferences.d.ts.map +1 -1
- package/dist/data/ai/ToolPreferences.js +64 -683
- package/dist/data/ai/ToolPreferences.js.map +1 -1
- package/dist/data/ai/ToolPreferences.model.cjs +148 -0
- package/dist/data/ai/ToolPreferences.model.cjs.map +1 -0
- package/dist/data/ai/ToolPreferences.model.d.ts +31 -0
- package/dist/data/ai/ToolPreferences.model.d.ts.map +1 -0
- package/dist/data/ai/ToolPreferences.model.js +148 -0
- package/dist/data/ai/ToolPreferences.model.js.map +1 -0
- package/dist/data/ai/ToolPreferencesList.cjs +270 -0
- package/dist/data/ai/ToolPreferencesList.cjs.map +1 -0
- package/dist/data/ai/ToolPreferencesList.d.ts +18 -0
- package/dist/data/ai/ToolPreferencesList.d.ts.map +1 -0
- package/dist/data/ai/ToolPreferencesList.js +270 -0
- package/dist/data/ai/ToolPreferencesList.js.map +1 -0
- package/dist/data/ai/agent-action-icons.cjs.map +1 -1
- package/dist/data/ai/agent-action-icons.js.map +1 -1
- package/dist/data/ai/chat-window-context.cjs +4 -1
- package/dist/data/ai/chat-window-context.cjs.map +1 -1
- package/dist/data/ai/chat-window-context.d.ts +7 -0
- package/dist/data/ai/chat-window-context.d.ts.map +1 -1
- package/dist/data/ai/chat-window-context.js +4 -1
- package/dist/data/ai/chat-window-context.js.map +1 -1
- package/dist/data/ai/index.d.ts +6 -3
- package/dist/data/ai/index.d.ts.map +1 -1
- package/dist/data/ai/session-tones.cjs +67 -0
- package/dist/data/ai/session-tones.cjs.map +1 -0
- package/dist/data/ai/session-tones.d.ts +34 -0
- package/dist/data/ai/session-tones.d.ts.map +1 -0
- package/dist/data/ai/session-tones.js +67 -0
- package/dist/data/ai/session-tones.js.map +1 -0
- package/dist/data/ai/thread-costs.cjs +39 -0
- package/dist/data/ai/thread-costs.cjs.map +1 -0
- package/dist/data/ai/thread-costs.d.ts +62 -0
- package/dist/data/ai/thread-costs.d.ts.map +1 -0
- package/dist/data/ai/thread-costs.js +39 -0
- package/dist/data/ai/thread-costs.js.map +1 -0
- package/dist/data/cells/CellFilterActions.cjs +68 -0
- package/dist/data/cells/CellFilterActions.cjs.map +1 -0
- package/dist/data/cells/CellFilterActions.d.ts +15 -0
- package/dist/data/cells/CellFilterActions.d.ts.map +1 -0
- package/dist/data/cells/CellFilterActions.js +68 -0
- package/dist/data/cells/CellFilterActions.js.map +1 -0
- package/dist/data/chat/Chat.cjs +156 -113
- package/dist/data/chat/Chat.cjs.map +1 -1
- package/dist/data/chat/Chat.d.ts +24 -7
- package/dist/data/chat/Chat.d.ts.map +1 -1
- package/dist/data/chat/Chat.fixtures.cjs +48 -3
- package/dist/data/chat/Chat.fixtures.cjs.map +1 -1
- package/dist/data/chat/Chat.fixtures.d.ts +1 -1
- package/dist/data/chat/Chat.fixtures.d.ts.map +1 -1
- package/dist/data/chat/Chat.fixtures.js +48 -3
- package/dist/data/chat/Chat.fixtures.js.map +1 -1
- package/dist/data/chat/Chat.js +160 -117
- package/dist/data/chat/Chat.js.map +1 -1
- package/dist/data/chat/Chat.runtime.cjs +63 -0
- package/dist/data/chat/Chat.runtime.cjs.map +1 -0
- package/dist/data/chat/Chat.runtime.d.ts +16 -0
- package/dist/data/chat/Chat.runtime.d.ts.map +1 -0
- package/dist/data/chat/Chat.runtime.js +63 -0
- package/dist/data/chat/Chat.runtime.js.map +1 -0
- package/dist/data/chat/ChatRuntimeToolbar.cjs +62 -0
- package/dist/data/chat/ChatRuntimeToolbar.cjs.map +1 -0
- package/dist/data/chat/ChatRuntimeToolbar.d.ts +14 -0
- package/dist/data/chat/ChatRuntimeToolbar.d.ts.map +1 -0
- package/dist/data/chat/ChatRuntimeToolbar.js +62 -0
- package/dist/data/chat/ChatRuntimeToolbar.js.map +1 -0
- package/dist/data/chat/ToolCall.cjs +86 -24
- package/dist/data/chat/ToolCall.cjs.map +1 -1
- package/dist/data/chat/ToolCall.d.ts +12 -5
- package/dist/data/chat/ToolCall.d.ts.map +1 -1
- package/dist/data/chat/ToolCall.js +86 -24
- package/dist/data/chat/ToolCall.js.map +1 -1
- package/dist/data/chat/approval.cjs +49 -6
- package/dist/data/chat/approval.cjs.map +1 -1
- package/dist/data/chat/approval.d.ts +11 -4
- package/dist/data/chat/approval.d.ts.map +1 -1
- package/dist/data/chat/approval.js +49 -6
- package/dist/data/chat/approval.js.map +1 -1
- package/dist/data/chat/index.d.ts +5 -3
- package/dist/data/chat/index.d.ts.map +1 -1
- package/dist/data/chat/tool-render/ToolArgs.cjs +50 -0
- package/dist/data/chat/tool-render/ToolArgs.cjs.map +1 -0
- package/dist/data/chat/tool-render/ToolArgs.d.ts +7 -0
- package/dist/data/chat/tool-render/ToolArgs.d.ts.map +1 -0
- package/dist/data/chat/tool-render/ToolArgs.js +50 -0
- package/dist/data/chat/tool-render/ToolArgs.js.map +1 -0
- package/dist/data/chat/tool-render/ToolParams.cjs +155 -0
- package/dist/data/chat/tool-render/ToolParams.cjs.map +1 -0
- package/dist/data/chat/tool-render/ToolParams.d.ts +20 -0
- package/dist/data/chat/tool-render/ToolParams.d.ts.map +1 -0
- package/dist/data/chat/tool-render/ToolParams.js +155 -0
- package/dist/data/chat/tool-render/ToolParams.js.map +1 -0
- package/dist/data/chat/tool-render/ToolValue.cjs +140 -0
- package/dist/data/chat/tool-render/ToolValue.cjs.map +1 -0
- package/dist/data/chat/tool-render/ToolValue.d.ts +16 -0
- package/dist/data/chat/tool-render/ToolValue.d.ts.map +1 -0
- package/dist/data/chat/tool-render/ToolValue.js +140 -0
- package/dist/data/chat/tool-render/ToolValue.js.map +1 -0
- package/dist/data/chat/tool-render/adapter.cjs +48 -0
- package/dist/data/chat/tool-render/adapter.cjs.map +1 -0
- package/dist/data/chat/tool-render/adapter.d.ts +57 -0
- package/dist/data/chat/tool-render/adapter.d.ts.map +1 -0
- package/dist/data/chat/tool-render/adapter.js +48 -0
- package/dist/data/chat/tool-render/adapter.js.map +1 -0
- package/dist/data/chat/tool-render/context.cjs +16 -0
- package/dist/data/chat/tool-render/context.cjs.map +1 -0
- package/dist/data/chat/tool-render/context.d.ts +6 -0
- package/dist/data/chat/tool-render/context.d.ts.map +1 -0
- package/dist/data/chat/tool-render/context.js +16 -0
- package/dist/data/chat/tool-render/context.js.map +1 -0
- package/dist/data/chat/tool-render/defaults.cjs +45 -0
- package/dist/data/chat/tool-render/defaults.cjs.map +1 -0
- package/dist/data/chat/tool-render/defaults.d.ts +11 -0
- package/dist/data/chat/tool-render/defaults.d.ts.map +1 -0
- package/dist/data/chat/tool-render/defaults.js +45 -0
- package/dist/data/chat/tool-render/defaults.js.map +1 -0
- package/dist/data/chat/tool-render/index.d.ts +13 -0
- package/dist/data/chat/tool-render/index.d.ts.map +1 -0
- package/dist/data/chat/tool-render/known-tool-views.cjs +208 -0
- package/dist/data/chat/tool-render/known-tool-views.cjs.map +1 -0
- package/dist/data/chat/tool-render/known-tool-views.d.ts +10 -0
- package/dist/data/chat/tool-render/known-tool-views.d.ts.map +1 -0
- package/dist/data/chat/tool-render/known-tool-views.js +208 -0
- package/dist/data/chat/tool-render/known-tool-views.js.map +1 -0
- package/dist/data/chat/tool-render/known-tools.cjs +58 -0
- package/dist/data/chat/tool-render/known-tools.cjs.map +1 -0
- package/dist/data/chat/tool-render/known-tools.d.ts +4 -0
- package/dist/data/chat/tool-render/known-tools.d.ts.map +1 -0
- package/dist/data/chat/tool-render/known-tools.js +58 -0
- package/dist/data/chat/tool-render/known-tools.js.map +1 -0
- package/dist/data/chat/tool-render/normalize.cjs +42 -0
- package/dist/data/chat/tool-render/normalize.cjs.map +1 -0
- package/dist/data/chat/tool-render/normalize.d.ts +13 -0
- package/dist/data/chat/tool-render/normalize.d.ts.map +1 -0
- package/dist/data/chat/tool-render/normalize.js +42 -0
- package/dist/data/chat/tool-render/normalize.js.map +1 -0
- package/dist/data/chat/tool-render/registry.cjs +14 -0
- package/dist/data/chat/tool-render/registry.cjs.map +1 -0
- package/dist/data/chat/tool-render/registry.d.ts +7 -0
- package/dist/data/chat/tool-render/registry.d.ts.map +1 -0
- package/dist/data/chat/tool-render/registry.js +14 -0
- package/dist/data/chat/tool-render/registry.js.map +1 -0
- package/dist/data/chat/tool-render/schema.cjs +57 -0
- package/dist/data/chat/tool-render/schema.cjs.map +1 -0
- package/dist/data/chat/tool-render/schema.d.ts +28 -0
- package/dist/data/chat/tool-render/schema.d.ts.map +1 -0
- package/dist/data/chat/tool-render/schema.js +57 -0
- package/dist/data/chat/tool-render/schema.js.map +1 -0
- package/dist/data/chat/tool-render/shape.cjs +94 -0
- package/dist/data/chat/tool-render/shape.cjs.map +1 -0
- package/dist/data/chat/tool-render/shape.d.ts +39 -0
- package/dist/data/chat/tool-render/shape.d.ts.map +1 -0
- package/dist/data/chat/tool-render/shape.js +94 -0
- package/dist/data/chat/tool-render/shape.js.map +1 -0
- package/dist/data/chat/tool-render/summary.cjs +34 -0
- package/dist/data/chat/tool-render/summary.cjs.map +1 -0
- package/dist/data/chat/tool-render/summary.d.ts +8 -0
- package/dist/data/chat/tool-render/summary.d.ts.map +1 -0
- package/dist/data/chat/tool-render/summary.js +34 -0
- package/dist/data/chat/tool-render/summary.js.map +1 -0
- package/dist/data/chat/types.cjs.map +1 -1
- package/dist/data/chat/types.d.ts +7 -0
- package/dist/data/chat/types.d.ts.map +1 -1
- package/dist/data/chat/types.js.map +1 -1
- package/dist/data/chat/usage-snapshot.cjs +17 -0
- package/dist/data/chat/usage-snapshot.cjs.map +1 -0
- package/dist/data/chat/usage-snapshot.d.ts +21 -0
- package/dist/data/chat/usage-snapshot.d.ts.map +1 -0
- package/dist/data/chat/usage-snapshot.js +17 -0
- package/dist/data/chat/usage-snapshot.js.map +1 -0
- package/dist/data/data-table-filter-values.cjs +103 -0
- package/dist/data/data-table-filter-values.cjs.map +1 -0
- package/dist/data/data-table-filter-values.d.ts +34 -0
- package/dist/data/data-table-filter-values.d.ts.map +1 -0
- package/dist/data/data-table-filter-values.js +103 -0
- package/dist/data/data-table-filter-values.js.map +1 -0
- package/dist/data/data-table-server-filters.cjs +165 -0
- package/dist/data/data-table-server-filters.cjs.map +1 -0
- package/dist/data/data-table-server-filters.d.ts +128 -0
- package/dist/data/data-table-server-filters.d.ts.map +1 -0
- package/dist/data/data-table-server-filters.js +165 -0
- package/dist/data/data-table-server-filters.js.map +1 -0
- package/dist/data/query-browser/QueryBrowser.cjs +204 -155
- package/dist/data/query-browser/QueryBrowser.cjs.map +1 -1
- package/dist/data/query-browser/QueryBrowser.d.ts +2 -41
- package/dist/data/query-browser/QueryBrowser.d.ts.map +1 -1
- package/dist/data/query-browser/QueryBrowser.editor.cjs +88 -0
- package/dist/data/query-browser/QueryBrowser.editor.cjs.map +1 -0
- package/dist/data/query-browser/QueryBrowser.editor.d.ts +12 -0
- package/dist/data/query-browser/QueryBrowser.editor.d.ts.map +1 -0
- package/dist/data/query-browser/QueryBrowser.editor.js +88 -0
- package/dist/data/query-browser/QueryBrowser.editor.js.map +1 -0
- package/dist/data/query-browser/QueryBrowser.js +205 -156
- package/dist/data/query-browser/QueryBrowser.js.map +1 -1
- package/dist/data/query-browser/QueryBrowser.types.cjs +11 -0
- package/dist/data/query-browser/QueryBrowser.types.cjs.map +1 -0
- package/dist/data/query-browser/QueryBrowser.types.d.ts +92 -0
- package/dist/data/query-browser/QueryBrowser.types.d.ts.map +1 -0
- package/dist/data/query-browser/QueryBrowser.types.js +11 -0
- package/dist/data/query-browser/QueryBrowser.types.js.map +1 -0
- package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.cjs +56 -0
- package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.cjs.map +1 -0
- package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.d.ts +5 -0
- package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.d.ts.map +1 -0
- package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.js +56 -0
- package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.js.map +1 -0
- package/dist/data/query-browser/QueryBrowserResults.cjs +80 -0
- package/dist/data/query-browser/QueryBrowserResults.cjs.map +1 -0
- package/dist/data/query-browser/QueryBrowserResults.d.ts +16 -0
- package/dist/data/query-browser/QueryBrowserResults.d.ts.map +1 -0
- package/dist/data/query-browser/QueryBrowserResults.js +80 -0
- package/dist/data/query-browser/QueryBrowserResults.js.map +1 -0
- package/dist/data/query-browser/index.d.ts +2 -1
- package/dist/data/query-browser/index.d.ts.map +1 -1
- package/dist/data/runtime/ProviderStatusPanel.cjs +187 -0
- package/dist/data/runtime/ProviderStatusPanel.cjs.map +1 -0
- package/dist/data/runtime/ProviderStatusPanel.d.ts +10 -0
- package/dist/data/runtime/ProviderStatusPanel.d.ts.map +1 -0
- package/dist/data/runtime/ProviderStatusPanel.js +187 -0
- package/dist/data/runtime/ProviderStatusPanel.js.map +1 -0
- package/dist/data/runtime/RuntimeBar.cjs +147 -0
- package/dist/data/runtime/RuntimeBar.cjs.map +1 -0
- package/dist/data/{ai → runtime}/RuntimeBar.d.ts +8 -6
- package/dist/data/runtime/RuntimeBar.d.ts.map +1 -0
- package/dist/data/runtime/RuntimeBar.js +147 -0
- package/dist/data/runtime/RuntimeBar.js.map +1 -0
- package/dist/data/runtime/RuntimeBar.model.cjs.map +1 -0
- package/dist/data/{ai → runtime}/RuntimeBar.model.d.ts +2 -2
- package/dist/data/runtime/RuntimeBar.model.d.ts.map +1 -0
- package/dist/data/runtime/RuntimeBar.model.js.map +1 -0
- package/dist/data/{ai → runtime}/RuntimeBarCombo.cjs +25 -30
- package/dist/data/runtime/RuntimeBarCombo.cjs.map +1 -0
- package/dist/data/{ai → runtime}/RuntimeBarCombo.d.ts +4 -3
- package/dist/data/runtime/RuntimeBarCombo.d.ts.map +1 -0
- package/dist/data/{ai → runtime}/RuntimeBarCombo.js +25 -30
- package/dist/data/runtime/RuntimeBarCombo.js.map +1 -0
- package/dist/data/{ai/RuntimeBar.cjs → runtime/RuntimeBarSegments.cjs} +54 -120
- package/dist/data/runtime/RuntimeBarSegments.cjs.map +1 -0
- package/dist/data/runtime/RuntimeBarSegments.d.ts +25 -0
- package/dist/data/runtime/RuntimeBarSegments.d.ts.map +1 -0
- package/dist/data/{ai/RuntimeBar.js → runtime/RuntimeBarSegments.js} +58 -124
- package/dist/data/runtime/RuntimeBarSegments.js.map +1 -0
- package/dist/data/runtime/availability.cjs +11 -0
- package/dist/data/runtime/availability.cjs.map +1 -0
- package/dist/data/runtime/availability.d.ts +6 -0
- package/dist/data/runtime/availability.d.ts.map +1 -0
- package/dist/data/runtime/availability.js +11 -0
- package/dist/data/runtime/availability.js.map +1 -0
- package/dist/data/runtime/model-capabilities.cjs.map +1 -0
- package/dist/data/runtime/model-capabilities.d.ts.map +1 -0
- package/dist/data/runtime/model-capabilities.js.map +1 -0
- package/dist/data/runtime/provider-status.cjs +106 -0
- package/dist/data/runtime/provider-status.cjs.map +1 -0
- package/dist/data/runtime/provider-status.d.ts +24 -0
- package/dist/data/runtime/provider-status.d.ts.map +1 -0
- package/dist/data/runtime/provider-status.js +106 -0
- package/dist/data/runtime/provider-status.js.map +1 -0
- package/dist/data/{ai → runtime}/runtime-mode.cjs +119 -27
- package/dist/data/runtime/runtime-mode.cjs.map +1 -0
- package/dist/data/{ai → runtime}/runtime-mode.d.ts +7 -1
- package/dist/data/runtime/runtime-mode.d.ts.map +1 -0
- package/dist/data/{ai → runtime}/runtime-mode.js +120 -28
- package/dist/data/runtime/runtime-mode.js.map +1 -0
- package/dist/data/task-exec-details.cjs +9 -0
- package/dist/data/task-exec-details.cjs.map +1 -0
- package/dist/data/task-exec-details.d.ts +3 -0
- package/dist/data/task-exec-details.d.ts.map +1 -0
- package/dist/data/task-exec-details.js +9 -0
- package/dist/data/task-exec-details.js.map +1 -0
- package/dist/data/task-query-keys.cjs +26 -0
- package/dist/data/task-query-keys.cjs.map +1 -0
- package/dist/data/task-query-keys.d.ts +27 -0
- package/dist/data/task-query-keys.d.ts.map +1 -0
- package/dist/data/task-query-keys.js +26 -0
- package/dist/data/task-query-keys.js.map +1 -0
- package/dist/data/version-info.cjs +3 -3
- package/dist/data/version-info.js +3 -3
- package/dist/data.cjs +18 -0
- package/dist/data.cjs.map +1 -1
- package/dist/data.d.ts +6 -2
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +18 -0
- package/dist/data.js.map +1 -1
- package/dist/hooks/use-hotkey.cjs +6 -1
- package/dist/hooks/use-hotkey.cjs.map +1 -1
- package/dist/hooks/use-hotkey.d.ts.map +1 -1
- package/dist/hooks/use-hotkey.js +6 -1
- package/dist/hooks/use-hotkey.js.map +1 -1
- package/dist/hooks/use-task-run.cjs +7 -4
- package/dist/hooks/use-task-run.cjs.map +1 -1
- package/dist/hooks/use-task-run.d.ts +12 -0
- package/dist/hooks/use-task-run.d.ts.map +1 -1
- package/dist/hooks/use-task-run.js +7 -4
- package/dist/hooks/use-task-run.js.map +1 -1
- package/dist/icons/index.d.ts +1 -0
- package/dist/icons/index.d.ts.map +1 -1
- package/dist/icons/registry.cjs +692 -0
- package/dist/icons/registry.cjs.map +1 -0
- package/dist/icons/registry.d.ts +21 -0
- package/dist/icons/registry.d.ts.map +1 -0
- package/dist/icons/registry.js +692 -0
- package/dist/icons/registry.js.map +1 -0
- package/dist/icons.cjs +3 -0
- package/dist/icons.cjs.map +1 -1
- package/dist/icons.js +4 -1
- package/dist/icons.js.map +1 -1
- package/dist/index.cjs +65 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +67 -2
- package/dist/index.js.map +1 -1
- package/dist/layout/AppShell.cjs +92 -56
- package/dist/layout/AppShell.cjs.map +1 -1
- package/dist/layout/AppShell.d.ts +49 -1
- package/dist/layout/AppShell.d.ts.map +1 -1
- package/dist/layout/AppShell.js +92 -56
- package/dist/layout/AppShell.js.map +1 -1
- package/dist/layout/AppShell.nav.cjs +144 -19
- package/dist/layout/AppShell.nav.cjs.map +1 -1
- package/dist/layout/AppShell.nav.d.ts +6 -1
- package/dist/layout/AppShell.nav.d.ts.map +1 -1
- package/dist/layout/AppShell.nav.js +144 -19
- package/dist/layout/AppShell.nav.js.map +1 -1
- package/dist/layout/SplitPane.cjs +23 -7
- package/dist/layout/SplitPane.cjs.map +1 -1
- package/dist/layout/SplitPane.d.ts +3 -1
- package/dist/layout/SplitPane.d.ts.map +1 -1
- package/dist/layout/SplitPane.js +23 -7
- package/dist/layout/SplitPane.js.map +1 -1
- package/dist/lib/format.cjs +86 -4
- package/dist/lib/format.cjs.map +1 -1
- package/dist/lib/format.d.ts +69 -0
- package/dist/lib/format.d.ts.map +1 -1
- package/dist/lib/format.js +86 -4
- package/dist/lib/format.js.map +1 -1
- package/dist/lib/path-tree.cjs +69 -0
- package/dist/lib/path-tree.cjs.map +1 -0
- package/dist/lib/path-tree.d.ts +54 -0
- package/dist/lib/path-tree.d.ts.map +1 -0
- package/dist/lib/path-tree.js +69 -0
- package/dist/lib/path-tree.js.map +1 -0
- package/dist/monaco.d.ts +1 -0
- package/dist/monaco.d.ts.map +1 -1
- package/dist/overlay/DropdownMenuSubmenu.cjs +13 -7
- package/dist/overlay/DropdownMenuSubmenu.cjs.map +1 -1
- package/dist/overlay/DropdownMenuSubmenu.d.ts.map +1 -1
- package/dist/overlay/DropdownMenuSubmenu.js +13 -7
- package/dist/overlay/DropdownMenuSubmenu.js.map +1 -1
- package/dist/overlay/Tour.cjs +173 -0
- package/dist/overlay/Tour.cjs.map +1 -0
- package/dist/overlay/Tour.d.ts +61 -0
- package/dist/overlay/Tour.d.ts.map +1 -0
- package/dist/overlay/Tour.js +173 -0
- package/dist/overlay/Tour.js.map +1 -0
- package/dist/overlay/TourCard.cjs +108 -0
- package/dist/overlay/TourCard.cjs.map +1 -0
- package/dist/overlay/TourCard.d.ts +23 -0
- package/dist/overlay/TourCard.d.ts.map +1 -0
- package/dist/overlay/TourCard.js +108 -0
- package/dist/overlay/TourCard.js.map +1 -0
- package/dist/overlay/TourProvider.cjs +160 -0
- package/dist/overlay/TourProvider.cjs.map +1 -0
- package/dist/overlay/TourProvider.d.ts +31 -0
- package/dist/overlay/TourProvider.d.ts.map +1 -0
- package/dist/overlay/TourProvider.js +160 -0
- package/dist/overlay/TourProvider.js.map +1 -0
- package/dist/overlay/TourSpotlight.cjs +47 -0
- package/dist/overlay/TourSpotlight.cjs.map +1 -0
- package/dist/overlay/TourSpotlight.d.ts +12 -0
- package/dist/overlay/TourSpotlight.d.ts.map +1 -0
- package/dist/overlay/TourSpotlight.js +47 -0
- package/dist/overlay/TourSpotlight.js.map +1 -0
- package/dist/overlay/modalStack.cjs +18 -4
- package/dist/overlay/modalStack.cjs.map +1 -1
- package/dist/overlay/modalStack.d.ts +10 -2
- package/dist/overlay/modalStack.d.ts.map +1 -1
- package/dist/overlay/modalStack.js +19 -5
- package/dist/overlay/modalStack.js.map +1 -1
- package/dist/overlay/tour-anchor.cjs +114 -0
- package/dist/overlay/tour-anchor.cjs.map +1 -0
- package/dist/overlay/tour-anchor.d.ts +30 -0
- package/dist/overlay/tour-anchor.d.ts.map +1 -0
- package/dist/overlay/tour-anchor.js +114 -0
- package/dist/overlay/tour-anchor.js.map +1 -0
- package/dist/overlay/tour-context.cjs +12 -0
- package/dist/overlay/tour-context.cjs.map +1 -0
- package/dist/overlay/tour-context.d.ts +40 -0
- package/dist/overlay/tour-context.d.ts.map +1 -0
- package/dist/overlay/tour-context.js +12 -0
- package/dist/overlay/tour-context.js.map +1 -0
- package/dist/overlay/tour-geometry.cjs +65 -0
- package/dist/overlay/tour-geometry.cjs.map +1 -0
- package/dist/overlay/tour-geometry.d.ts +47 -0
- package/dist/overlay/tour-geometry.d.ts.map +1 -0
- package/dist/overlay/tour-geometry.js +65 -0
- package/dist/overlay/tour-geometry.js.map +1 -0
- package/dist/overlay/tour-model.cjs +79 -0
- package/dist/overlay/tour-model.cjs.map +1 -0
- package/dist/overlay/tour-model.d.ts +29 -0
- package/dist/overlay/tour-model.d.ts.map +1 -0
- package/dist/overlay/tour-model.js +79 -0
- package/dist/overlay/tour-model.js.map +1 -0
- package/dist/overlay/tour-progress.cjs +54 -0
- package/dist/overlay/tour-progress.cjs.map +1 -0
- package/dist/overlay/tour-progress.d.ts +40 -0
- package/dist/overlay/tour-progress.d.ts.map +1 -0
- package/dist/overlay/tour-progress.js +54 -0
- package/dist/overlay/tour-progress.js.map +1 -0
- package/dist/overlay/tour-types.d.ts +144 -0
- package/dist/overlay/tour-types.d.ts.map +1 -0
- package/dist/overlay/use-tour-anchor.cjs +43 -0
- package/dist/overlay/use-tour-anchor.cjs.map +1 -0
- package/dist/overlay/use-tour-anchor.d.ts +23 -0
- package/dist/overlay/use-tour-anchor.d.ts.map +1 -0
- package/dist/overlay/use-tour-anchor.js +43 -0
- package/dist/overlay/use-tour-anchor.js.map +1 -0
- package/dist/overlay/use-tour-rect.cjs +33 -0
- package/dist/overlay/use-tour-rect.cjs.map +1 -0
- package/dist/overlay/use-tour-rect.d.ts +12 -0
- package/dist/overlay/use-tour-rect.d.ts.map +1 -0
- package/dist/overlay/use-tour-rect.js +33 -0
- package/dist/overlay/use-tour-rect.js.map +1 -0
- package/dist/overlay/use-tour-step.cjs +66 -0
- package/dist/overlay/use-tour-step.cjs.map +1 -0
- package/dist/overlay/use-tour-step.d.ts +45 -0
- package/dist/overlay/use-tour-step.d.ts.map +1 -0
- package/dist/overlay/use-tour-step.js +66 -0
- package/dist/overlay/use-tour-step.js.map +1 -0
- package/dist/overlay/zIndex.cjs +8 -0
- package/dist/overlay/zIndex.cjs.map +1 -1
- package/dist/overlay/zIndex.d.ts +8 -0
- package/dist/overlay/zIndex.d.ts.map +1 -1
- package/dist/overlay/zIndex.js +8 -0
- package/dist/overlay/zIndex.js.map +1 -1
- package/dist/rpc/CommandOutput.cjs +8 -0
- package/dist/rpc/CommandOutput.cjs.map +1 -1
- package/dist/rpc/CommandOutput.d.ts +4 -1
- package/dist/rpc/CommandOutput.d.ts.map +1 -1
- package/dist/rpc/CommandOutput.js +8 -0
- package/dist/rpc/CommandOutput.js.map +1 -1
- package/dist/rpc/EntityExplorerApp.cjs +10 -16
- package/dist/rpc/EntityExplorerApp.cjs.map +1 -1
- package/dist/rpc/EntityExplorerApp.d.ts.map +1 -1
- package/dist/rpc/EntityExplorerApp.js +10 -16
- package/dist/rpc/EntityExplorerApp.js.map +1 -1
- package/dist/rpc/FilterForm.cjs +20 -0
- package/dist/rpc/FilterForm.cjs.map +1 -1
- package/dist/rpc/FilterForm.js +20 -0
- package/dist/rpc/FilterForm.js.map +1 -1
- package/dist/rpc/OperationActionBar.cjs +1 -1
- package/dist/rpc/OperationActionBar.cjs.map +1 -1
- package/dist/rpc/OperationActionBar.js +1 -1
- package/dist/rpc/OperationActionBar.js.map +1 -1
- package/dist/rpc/OperationCatalog.cjs +83 -7
- package/dist/rpc/OperationCatalog.cjs.map +1 -1
- package/dist/rpc/OperationCatalog.d.ts.map +1 -1
- package/dist/rpc/OperationCatalog.js +84 -8
- package/dist/rpc/OperationCatalog.js.map +1 -1
- package/dist/rpc/OperationResultView.cjs +2 -0
- package/dist/rpc/OperationResultView.cjs.map +1 -1
- package/dist/rpc/OperationResultView.d.ts +6 -0
- package/dist/rpc/OperationResultView.d.ts.map +1 -1
- package/dist/rpc/OperationResultView.js +2 -0
- package/dist/rpc/OperationResultView.js.map +1 -1
- package/dist/rpc/SchemaActionForm.cjs +2 -21
- package/dist/rpc/SchemaActionForm.cjs.map +1 -1
- package/dist/rpc/SchemaActionForm.d.ts.map +1 -1
- package/dist/rpc/SchemaActionForm.js +3 -22
- package/dist/rpc/SchemaActionForm.js.map +1 -1
- package/dist/rpc/apiClient.cjs +16 -2
- package/dist/rpc/apiClient.cjs.map +1 -1
- package/dist/rpc/apiClient.d.ts.map +1 -1
- package/dist/rpc/apiClient.js +16 -2
- package/dist/rpc/apiClient.js.map +1 -1
- package/dist/rpc/formMetadata.cjs +123 -49
- package/dist/rpc/formMetadata.cjs.map +1 -1
- package/dist/rpc/formMetadata.d.ts +14 -6
- package/dist/rpc/formMetadata.d.ts.map +1 -1
- package/dist/rpc/formMetadata.js +121 -47
- package/dist/rpc/formMetadata.js.map +1 -1
- package/dist/rpc/operationFilterSearch.cjs +23 -0
- package/dist/rpc/operationFilterSearch.cjs.map +1 -0
- package/dist/rpc/operationFilterSearch.d.ts +22 -0
- package/dist/rpc/operationFilterSearch.d.ts.map +1 -0
- package/dist/rpc/operationFilterSearch.js +23 -0
- package/dist/rpc/operationFilterSearch.js.map +1 -0
- package/dist/rpc/operationLookupFetcher.cjs +28 -0
- package/dist/rpc/operationLookupFetcher.cjs.map +1 -0
- package/dist/rpc/operationLookupFetcher.d.ts +17 -0
- package/dist/rpc/operationLookupFetcher.d.ts.map +1 -0
- package/dist/rpc/operationLookupFetcher.js +28 -0
- package/dist/rpc/operationLookupFetcher.js.map +1 -0
- package/dist/rpc/surfaceNav.cjs +77 -0
- package/dist/rpc/surfaceNav.cjs.map +1 -0
- package/dist/rpc/surfaceNav.d.ts +19 -0
- package/dist/rpc/surfaceNav.d.ts.map +1 -0
- package/dist/rpc/surfaceNav.js +77 -0
- package/dist/rpc/surfaceNav.js.map +1 -0
- package/dist/rpc/types.cjs.map +1 -1
- package/dist/rpc/types.d.ts +21 -2
- package/dist/rpc/types.d.ts.map +1 -1
- package/dist/rpc/types.js.map +1 -1
- package/dist/rpc.cjs +2 -0
- package/dist/rpc.cjs.map +1 -1
- package/dist/rpc.d.ts +1 -0
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +2 -0
- package/dist/rpc.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utils.cjs +8 -0
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.ts +2 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +10 -2
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
- package/dist/data/ai/RuntimeBar.cjs.map +0 -1
- package/dist/data/ai/RuntimeBar.d.ts.map +0 -1
- package/dist/data/ai/RuntimeBar.js.map +0 -1
- package/dist/data/ai/RuntimeBar.model.cjs.map +0 -1
- package/dist/data/ai/RuntimeBar.model.d.ts.map +0 -1
- package/dist/data/ai/RuntimeBar.model.js.map +0 -1
- package/dist/data/ai/RuntimeBarCombo.cjs.map +0 -1
- package/dist/data/ai/RuntimeBarCombo.d.ts.map +0 -1
- package/dist/data/ai/RuntimeBarCombo.js.map +0 -1
- package/dist/data/ai/model-capabilities.cjs.map +0 -1
- package/dist/data/ai/model-capabilities.d.ts.map +0 -1
- package/dist/data/ai/model-capabilities.js.map +0 -1
- package/dist/data/ai/runtime-mode.cjs.map +0 -1
- package/dist/data/ai/runtime-mode.d.ts.map +0 -1
- package/dist/data/ai/runtime-mode.js.map +0 -1
- /package/dist/data/{ai → runtime}/RuntimeBar.model.cjs +0 -0
- /package/dist/data/{ai → runtime}/RuntimeBar.model.js +0 -0
- /package/dist/data/{ai → runtime}/model-capabilities.cjs +0 -0
- /package/dist/data/{ai → runtime}/model-capabilities.d.ts +0 -0
- /package/dist/data/{ai → runtime}/model-capabilities.js +0 -0
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
-
const commands = require("@codemirror/commands");
|
|
5
|
-
const autocomplete = require("@codemirror/autocomplete");
|
|
6
|
-
const langJson = require("@codemirror/lang-json");
|
|
7
|
-
const langSql = require("@codemirror/lang-sql");
|
|
8
4
|
const state = require("@codemirror/state");
|
|
9
5
|
const view = require("@codemirror/view");
|
|
10
6
|
const react = require("react");
|
|
@@ -13,85 +9,15 @@ const JsonSchemaForm = require("../../components/JsonSchemaForm.cjs");
|
|
|
13
9
|
const utils = require("../../lib/utils.cjs");
|
|
14
10
|
const SplitPane = require("../../layout/SplitPane.cjs");
|
|
15
11
|
const Icon = require("../Icon.cjs");
|
|
16
|
-
const DataTable = require("../DataTable.cjs");
|
|
17
12
|
const dataTableUtils = require("../data-table-utils.cjs");
|
|
13
|
+
const dataTableServerFilters = require("../data-table-server-filters.cjs");
|
|
18
14
|
const ErrorDetails = require("../diagnostics/ErrorDetails.cjs");
|
|
19
|
-
const
|
|
20
|
-
const
|
|
15
|
+
const QueryBrowser_editor = require("./QueryBrowser.editor.cjs");
|
|
16
|
+
const QueryBrowserDiagnosticsPanel = require("./QueryBrowserDiagnosticsPanel.cjs");
|
|
17
|
+
const QueryBrowserResults = require("./QueryBrowserResults.cjs");
|
|
18
|
+
const QueryBrowser_types = require("./QueryBrowser.types.cjs");
|
|
19
|
+
const UiDebug = require("../../icons/components/UiDebug.cjs");
|
|
21
20
|
const UiPlay = require("../../icons/components/UiPlay.cjs");
|
|
22
|
-
const MAX_HISTORY = 50;
|
|
23
|
-
function historyKey(id) {
|
|
24
|
-
return `clicky-ui:query-browser:${id}:history`;
|
|
25
|
-
}
|
|
26
|
-
function readHistory(id) {
|
|
27
|
-
if (typeof window === "undefined") return [];
|
|
28
|
-
try {
|
|
29
|
-
const value = JSON.parse(
|
|
30
|
-
window.localStorage.getItem(historyKey(id)) ?? "[]"
|
|
31
|
-
);
|
|
32
|
-
return Array.isArray(value) ? value.slice(0, MAX_HISTORY) : [];
|
|
33
|
-
} catch {
|
|
34
|
-
return [];
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
function rememberQuery(id, query) {
|
|
38
|
-
const entries = readHistory(id).filter((entry) => entry.query !== query);
|
|
39
|
-
const next = [{ query, at: Date.now() }, ...entries].slice(0, MAX_HISTORY);
|
|
40
|
-
if (typeof window !== "undefined") {
|
|
41
|
-
window.localStorage.setItem(historyKey(id), JSON.stringify(next));
|
|
42
|
-
}
|
|
43
|
-
return next;
|
|
44
|
-
}
|
|
45
|
-
function editorExtensions(execute, onQueryChange, languageExtension2) {
|
|
46
|
-
return [
|
|
47
|
-
commands.history(),
|
|
48
|
-
view.keymap.of([
|
|
49
|
-
{
|
|
50
|
-
key: "Mod-Enter",
|
|
51
|
-
run: () => {
|
|
52
|
-
execute();
|
|
53
|
-
return true;
|
|
54
|
-
}
|
|
55
|
-
},
|
|
56
|
-
...commands.historyKeymap
|
|
57
|
-
]),
|
|
58
|
-
view.EditorView.lineWrapping,
|
|
59
|
-
view.EditorView.updateListener.of((update) => {
|
|
60
|
-
if (update.docChanged) onQueryChange(update.state.doc.toString());
|
|
61
|
-
}),
|
|
62
|
-
view.EditorView.theme({
|
|
63
|
-
"&": { height: "100%", fontSize: "13px", background: "transparent" },
|
|
64
|
-
".cm-scroller": {
|
|
65
|
-
fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace"
|
|
66
|
-
},
|
|
67
|
-
".cm-content": { padding: "12px 0" },
|
|
68
|
-
".cm-gutters": { background: "transparent", border: "none" },
|
|
69
|
-
"&.cm-focused": { outline: "none" }
|
|
70
|
-
}),
|
|
71
|
-
languageExtension2
|
|
72
|
-
];
|
|
73
|
-
}
|
|
74
|
-
function languageExtension(language, completion) {
|
|
75
|
-
if (language === "sql") {
|
|
76
|
-
if ((completion == null ? void 0 : completion.kind) !== "sql") return langSql.sql();
|
|
77
|
-
return langSql.sql({
|
|
78
|
-
dialect: QueryBrowser_completion.dialectFor(completion.dialect),
|
|
79
|
-
schema: QueryBrowser_completion.sqlCompletionNamespace(completion.schemas),
|
|
80
|
-
upperCaseKeywords: true,
|
|
81
|
-
...completion.defaultSchema ? { defaultSchema: completion.defaultSchema } : {}
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
if (language === "json") {
|
|
85
|
-
if ((completion == null ? void 0 : completion.kind) !== "json-fields") return langJson.json();
|
|
86
|
-
return [
|
|
87
|
-
langJson.json(),
|
|
88
|
-
autocomplete.autocompletion({
|
|
89
|
-
override: [QueryBrowser_completion.openSearchJSONCompletionSource(completion.fields)]
|
|
90
|
-
})
|
|
91
|
-
];
|
|
92
|
-
}
|
|
93
|
-
return [];
|
|
94
|
-
}
|
|
95
21
|
function QueryBrowser({
|
|
96
22
|
id,
|
|
97
23
|
title,
|
|
@@ -105,6 +31,7 @@ function QueryBrowser({
|
|
|
105
31
|
onOptionsChange,
|
|
106
32
|
navigator,
|
|
107
33
|
execute,
|
|
34
|
+
lookupFilterValues,
|
|
108
35
|
renderResults,
|
|
109
36
|
className
|
|
110
37
|
}) {
|
|
@@ -119,7 +46,42 @@ function QueryBrowser({
|
|
|
119
46
|
const [result, setResult] = react.useState(null);
|
|
120
47
|
const [error, setError] = react.useState(null);
|
|
121
48
|
const [pending, setPending] = react.useState(false);
|
|
122
|
-
const [
|
|
49
|
+
const [debug, setDebug] = react.useState(false);
|
|
50
|
+
const [entries, setEntries] = react.useState(
|
|
51
|
+
() => QueryBrowser_editor.readQueryBrowserHistory(id)
|
|
52
|
+
);
|
|
53
|
+
const [filters, setFilters] = react.useState({});
|
|
54
|
+
const lastRun = react.useRef(null);
|
|
55
|
+
const executedFilters = react.useRef({});
|
|
56
|
+
const runRequest = react.useCallback(
|
|
57
|
+
async (request) => {
|
|
58
|
+
setPending(true);
|
|
59
|
+
setError(null);
|
|
60
|
+
const started = performance.now();
|
|
61
|
+
try {
|
|
62
|
+
const next = await execute(request);
|
|
63
|
+
setResult({
|
|
64
|
+
...next,
|
|
65
|
+
durationMs: next.durationMs ?? performance.now() - started
|
|
66
|
+
});
|
|
67
|
+
lastRun.current = {
|
|
68
|
+
query: request.query,
|
|
69
|
+
options: request.options,
|
|
70
|
+
...request.filters ? { filters: request.filters } : {},
|
|
71
|
+
...next.columns ? { columns: next.columns } : {}
|
|
72
|
+
};
|
|
73
|
+
} catch (err) {
|
|
74
|
+
setError({
|
|
75
|
+
message: err instanceof Error ? err.message : String(err),
|
|
76
|
+
query: request.query,
|
|
77
|
+
...err instanceof QueryBrowser_types.QueryBrowserExecutionError && err.diagnostics ? { diagnostics: err.diagnostics } : {}
|
|
78
|
+
});
|
|
79
|
+
} finally {
|
|
80
|
+
setPending(false);
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
[execute]
|
|
84
|
+
);
|
|
123
85
|
const currentQuery = react.useCallback(() => {
|
|
124
86
|
const view2 = editor.current;
|
|
125
87
|
if (!view2) return initialQuery;
|
|
@@ -129,24 +91,62 @@ function QueryBrowser({
|
|
|
129
91
|
return view2.state.doc.toString();
|
|
130
92
|
}, [initialQuery]);
|
|
131
93
|
const run = react.useCallback(async () => {
|
|
94
|
+
var _a;
|
|
132
95
|
const query = currentQuery().trim();
|
|
133
96
|
if (!query || pending) return;
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
97
|
+
setEntries(QueryBrowser_editor.rememberQueryBrowserQuery(id, query));
|
|
98
|
+
const repeat = ((_a = lastRun.current) == null ? void 0 : _a.query) === query ? lastRun.current : null;
|
|
99
|
+
const carried = repeat ? filters : {};
|
|
100
|
+
if (carried !== filters) setFilters(carried);
|
|
101
|
+
lastRun.current = { query, options };
|
|
102
|
+
executedFilters.current = carried;
|
|
103
|
+
await runRequest({
|
|
104
|
+
query,
|
|
105
|
+
options,
|
|
106
|
+
...Object.keys(carried).length > 0 ? { filters: carried } : {},
|
|
107
|
+
...(repeat == null ? void 0 : repeat.columns) ? { columns: repeat.columns } : {},
|
|
108
|
+
...debug ? { debug: true } : {}
|
|
109
|
+
});
|
|
110
|
+
}, [currentQuery, debug, filters, id, options, pending, runRequest]);
|
|
111
|
+
const rerunWithFilters = react.useCallback(
|
|
112
|
+
async (selection) => {
|
|
113
|
+
const previous = lastRun.current;
|
|
114
|
+
if (!previous) {
|
|
115
|
+
throw new Error(
|
|
116
|
+
"QueryBrowser: a filter changed before any query had run"
|
|
117
|
+
);
|
|
118
|
+
}
|
|
119
|
+
await runRequest({
|
|
120
|
+
...previous,
|
|
121
|
+
filters: selection,
|
|
122
|
+
...(result == null ? void 0 : result.pagination) ? { pagination: { limit: result.pagination.limit } } : {},
|
|
123
|
+
...debug ? { debug: true } : {}
|
|
143
124
|
});
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
125
|
+
},
|
|
126
|
+
[debug, result == null ? void 0 : result.pagination, runRequest]
|
|
127
|
+
);
|
|
128
|
+
const rerunAt = react.useCallback(
|
|
129
|
+
async (pagination) => {
|
|
130
|
+
const previous = lastRun.current;
|
|
131
|
+
if (!previous) {
|
|
132
|
+
throw new Error(
|
|
133
|
+
"QueryBrowser: pagination changed before any query had run"
|
|
134
|
+
);
|
|
135
|
+
}
|
|
136
|
+
await runRequest({
|
|
137
|
+
...previous,
|
|
138
|
+
pagination,
|
|
139
|
+
...debug ? { debug: true } : {}
|
|
140
|
+
});
|
|
141
|
+
},
|
|
142
|
+
[debug, runRequest]
|
|
143
|
+
);
|
|
144
|
+
react.useEffect(() => {
|
|
145
|
+
if (!lastRun.current) return;
|
|
146
|
+
if (filters === executedFilters.current) return;
|
|
147
|
+
executedFilters.current = filters;
|
|
148
|
+
void rerunWithFilters(filters);
|
|
149
|
+
}, [filters, rerunWithFilters]);
|
|
150
150
|
executeRef.current = () => void run();
|
|
151
151
|
onQueryChangeRef.current = onQueryChange;
|
|
152
152
|
react.useEffect(() => {
|
|
@@ -155,13 +155,15 @@ function QueryBrowser({
|
|
|
155
155
|
parent: editorHost.current,
|
|
156
156
|
state: state.EditorState.create({
|
|
157
157
|
doc: initialQuery,
|
|
158
|
-
extensions:
|
|
158
|
+
extensions: QueryBrowser_editor.queryBrowserEditorExtensions(
|
|
159
159
|
() => executeRef.current(),
|
|
160
160
|
(query) => {
|
|
161
161
|
var _a;
|
|
162
162
|
return (_a = onQueryChangeRef.current) == null ? void 0 : _a.call(onQueryChangeRef, query);
|
|
163
163
|
},
|
|
164
|
-
languageConfig.current.of(
|
|
164
|
+
languageConfig.current.of(
|
|
165
|
+
QueryBrowser_editor.queryBrowserLanguageExtension(language, completion)
|
|
166
|
+
)
|
|
165
167
|
)
|
|
166
168
|
})
|
|
167
169
|
});
|
|
@@ -176,7 +178,7 @@ function QueryBrowser({
|
|
|
176
178
|
if (!view2) return;
|
|
177
179
|
view2.dispatch({
|
|
178
180
|
effects: languageConfig.current.reconfigure(
|
|
179
|
-
|
|
181
|
+
QueryBrowser_editor.queryBrowserLanguageExtension(language, completion)
|
|
180
182
|
)
|
|
181
183
|
});
|
|
182
184
|
}, [completion, language]);
|
|
@@ -198,58 +200,89 @@ function QueryBrowser({
|
|
|
198
200
|
[onOptionsChange]
|
|
199
201
|
);
|
|
200
202
|
react.useEffect(() => {
|
|
201
|
-
setEntries(
|
|
203
|
+
setEntries(QueryBrowser_editor.readQueryBrowserHistory(id));
|
|
202
204
|
setResult(null);
|
|
203
205
|
setError(null);
|
|
206
|
+
setFilters({});
|
|
207
|
+
setDebug(false);
|
|
208
|
+
lastRun.current = null;
|
|
209
|
+
executedFilters.current = {};
|
|
204
210
|
}, [id]);
|
|
205
211
|
const rows = (result == null ? void 0 : result.rows) ?? [];
|
|
212
|
+
const described = (result == null ? void 0 : result.columns) ?? [];
|
|
206
213
|
const columns = react.useMemo(
|
|
207
|
-
() => dataTableUtils.inferColumns(rows, { literalKeys: true }),
|
|
208
|
-
[rows]
|
|
214
|
+
() => described.length > 0 ? dataTableServerFilters.serverColumnsToDataTableColumns(described) : dataTableUtils.inferColumns(rows, { literalKeys: true }),
|
|
215
|
+
[described, rows]
|
|
209
216
|
);
|
|
210
|
-
const
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
result.affectedRows.toLocaleString(),
|
|
219
|
-
" affected"
|
|
220
|
-
] }),
|
|
221
|
-
result.durationMs !== void 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
|
|
222
|
-
Math.round(result.durationMs),
|
|
223
|
-
" ms"
|
|
224
|
-
] }),
|
|
225
|
-
result.message && /* @__PURE__ */ jsxRuntime.jsx("span", { children: result.message })
|
|
226
|
-
] }),
|
|
227
|
-
rows.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
228
|
-
DataTable.DataTable,
|
|
229
|
-
{
|
|
230
|
-
data: rows,
|
|
231
|
-
columns,
|
|
232
|
-
autoFilter: false,
|
|
233
|
-
showGlobalFilter: true,
|
|
234
|
-
showFullscreenControl: true,
|
|
235
|
-
fullscreenTitle: title ?? queryLabel,
|
|
236
|
-
detailStyle: "dialog",
|
|
237
|
-
detailDialogTitle: "Row details",
|
|
238
|
-
renderExpandedRow: (row) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
239
|
-
Properties.Properties,
|
|
240
|
-
{
|
|
241
|
-
items: Object.entries(row).map(([key, value]) => ({
|
|
242
|
-
key,
|
|
243
|
-
value
|
|
244
|
-
})),
|
|
245
|
-
renderLabel: (key) => key,
|
|
246
|
-
density: "compact"
|
|
247
|
-
}
|
|
248
|
-
),
|
|
249
|
-
className: "min-h-0 flex-1"
|
|
217
|
+
const lookupValues = react.useMemo(() => {
|
|
218
|
+
if (!lookupFilterValues) return void 0;
|
|
219
|
+
return (request) => {
|
|
220
|
+
const previous = lastRun.current;
|
|
221
|
+
if (!previous) {
|
|
222
|
+
throw new Error(
|
|
223
|
+
"QueryBrowser: a filter lookup ran before any query had"
|
|
224
|
+
);
|
|
250
225
|
}
|
|
251
|
-
|
|
252
|
-
|
|
226
|
+
return lookupFilterValues({ ...request, ...previous, filters });
|
|
227
|
+
};
|
|
228
|
+
}, [filters, lookupFilterValues]);
|
|
229
|
+
const filterConfig = react.useMemo(
|
|
230
|
+
() => dataTableServerFilters.serverFiltersToFilterBar(
|
|
231
|
+
described,
|
|
232
|
+
filters,
|
|
233
|
+
setFilters,
|
|
234
|
+
lookupValues ? { lookupValues } : {}
|
|
235
|
+
),
|
|
236
|
+
[described, filters, lookupValues]
|
|
237
|
+
);
|
|
238
|
+
const serverFiltered = filterConfig.filters.length > 0 || filterConfig.timeRange !== void 0;
|
|
239
|
+
const tablePagination = react.useMemo(() => {
|
|
240
|
+
const pagination = result == null ? void 0 : result.pagination;
|
|
241
|
+
if (!pagination) return void 0;
|
|
242
|
+
const shared = {
|
|
243
|
+
pageSize: pagination.limit,
|
|
244
|
+
...pagination.total !== void 0 ? { total: pagination.total } : {},
|
|
245
|
+
...pagination.totalRelation === "eq" || pagination.totalRelation === "gte" ? { totalRelation: pagination.totalRelation } : {},
|
|
246
|
+
hasMore: pagination.hasMore,
|
|
247
|
+
onPageSizeChange: (limit) => void rerunAt({ limit })
|
|
248
|
+
};
|
|
249
|
+
if (pagination.mode === "cursor") {
|
|
250
|
+
return {
|
|
251
|
+
...shared,
|
|
252
|
+
page: 0,
|
|
253
|
+
cursor: {
|
|
254
|
+
...pagination.cursor ? { current: pagination.cursor } : {},
|
|
255
|
+
...pagination.nextCursor ? { next: pagination.nextCursor } : {},
|
|
256
|
+
onCursorChange: (cursor) => void rerunAt({
|
|
257
|
+
limit: pagination.limit,
|
|
258
|
+
...cursor ? { cursor } : {}
|
|
259
|
+
})
|
|
260
|
+
}
|
|
261
|
+
};
|
|
262
|
+
}
|
|
263
|
+
const page = Math.floor((pagination.offset ?? 0) / pagination.limit);
|
|
264
|
+
return {
|
|
265
|
+
...shared,
|
|
266
|
+
page,
|
|
267
|
+
onPageChange: (nextPage) => void rerunAt({
|
|
268
|
+
limit: pagination.limit,
|
|
269
|
+
offset: nextPage * pagination.limit
|
|
270
|
+
})
|
|
271
|
+
};
|
|
272
|
+
}, [rerunAt, result == null ? void 0 : result.pagination]);
|
|
273
|
+
const defaultResults = /* @__PURE__ */ jsxRuntime.jsx(
|
|
274
|
+
QueryBrowserResults.QueryBrowserResults,
|
|
275
|
+
{
|
|
276
|
+
result,
|
|
277
|
+
pending,
|
|
278
|
+
...title ? { title } : {},
|
|
279
|
+
queryLabel,
|
|
280
|
+
columns,
|
|
281
|
+
filterConfig,
|
|
282
|
+
serverFiltered,
|
|
283
|
+
...tablePagination ? { pagination: tablePagination } : {}
|
|
284
|
+
}
|
|
285
|
+
);
|
|
253
286
|
const workspace = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full min-h-0 flex-col overflow-hidden rounded-xl border bg-card", children: [
|
|
254
287
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-2 border-b px-3 py-2", children: [
|
|
255
288
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
@@ -277,6 +310,19 @@ function QueryBrowser({
|
|
|
277
310
|
]
|
|
278
311
|
}
|
|
279
312
|
),
|
|
313
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
314
|
+
button.Button,
|
|
315
|
+
{
|
|
316
|
+
size: "sm",
|
|
317
|
+
variant: debug ? "secondary" : "outline",
|
|
318
|
+
"aria-pressed": debug,
|
|
319
|
+
onClick: () => setDebug((enabled) => !enabled),
|
|
320
|
+
children: [
|
|
321
|
+
/* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon: UiDebug.UiDebug, className: "size-4" }),
|
|
322
|
+
"Debug"
|
|
323
|
+
]
|
|
324
|
+
}
|
|
325
|
+
),
|
|
280
326
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
281
327
|
button.Button,
|
|
282
328
|
{
|
|
@@ -304,18 +350,21 @@ function QueryBrowser({
|
|
|
304
350
|
}
|
|
305
351
|
) }),
|
|
306
352
|
/* @__PURE__ */ jsxRuntime.jsx("div", { ref: editorHost, className: "h-[34%] min-h-44 border-b" }),
|
|
307
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex min-h-0 flex-1 flex-col overflow-auto p-3", children: error ? /* @__PURE__ */ jsxRuntime.
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
[
|
|
314
|
-
|
|
315
|
-
|
|
353
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex min-h-0 flex-1 flex-col overflow-auto p-3", children: error ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
|
|
354
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
355
|
+
ErrorDetails.ErrorDetails,
|
|
356
|
+
{
|
|
357
|
+
diagnostics: {
|
|
358
|
+
message: error.message,
|
|
359
|
+
context: [
|
|
360
|
+
["Query", error.query],
|
|
361
|
+
["Language", language]
|
|
362
|
+
]
|
|
363
|
+
}
|
|
316
364
|
}
|
|
317
|
-
|
|
318
|
-
|
|
365
|
+
),
|
|
366
|
+
error.diagnostics && /* @__PURE__ */ jsxRuntime.jsx(QueryBrowserDiagnosticsPanel.QueryBrowserDiagnosticsPanel, { diagnostics: error.diagnostics })
|
|
367
|
+
] }) : result && renderResults ? renderResults({ result, defaultView: defaultResults }) : defaultResults })
|
|
319
368
|
] });
|
|
320
369
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: utils.cn("h-[calc(100vh-15rem)] min-h-[32rem]", className), children: navigator ? /* @__PURE__ */ jsxRuntime.jsx(SplitPane.SplitPane, { defaultSplit: 28, left: navigator, right: workspace }) : workspace });
|
|
321
370
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryBrowser.cjs","sources":["../../../src/data/query-browser/QueryBrowser.tsx"],"sourcesContent":["import { history, historyKeymap } from \"@codemirror/commands\";\nimport { autocompletion } from \"@codemirror/autocomplete\";\nimport { json } from \"@codemirror/lang-json\";\nimport { sql } from \"@codemirror/lang-sql\";\nimport { Compartment, EditorState, type Extension } from \"@codemirror/state\";\nimport { EditorView, keymap } from \"@codemirror/view\";\nimport {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n type ReactNode,\n} from \"react\";\nimport { Button } from \"../../components/button\";\nimport { JsonSchemaForm } from \"../../components/JsonSchemaForm\";\nimport type { JsonSchemaObject } from \"../../components/json-schema-form-types\";\nimport { cn } from \"../../lib/utils\";\nimport { SplitPane } from \"../../layout/SplitPane\";\nimport { Icon } from \"../Icon\";\nimport { UiPlay } from \"../../icons\";\nimport { DataTable } from \"../DataTable\";\nimport { inferColumns } from \"../data-table-utils\";\nimport { ErrorDetails } from \"../diagnostics/ErrorDetails\";\nimport { Properties } from \"../Properties\";\nimport {\n dialectFor,\n openSearchJSONCompletionSource,\n sqlCompletionNamespace,\n type QueryBrowserCompletion,\n} from \"./QueryBrowser.completion\";\n\nexport type QueryBrowserColumn = {\n name: string;\n databaseType?: string;\n};\n\nexport type QueryBrowserResult = {\n rows?: Record<string, unknown>[];\n columns?: QueryBrowserColumn[];\n affectedRows?: number;\n durationMs?: number;\n message?: string;\n truncated?: boolean;\n metadata?: Record<string, unknown>;\n};\n\nexport type QueryBrowserRequest = {\n query: string;\n options: Record<string, unknown>;\n};\n\nexport type QueryBrowserResultContext = {\n result: QueryBrowserResult;\n defaultView: ReactNode;\n};\n\nexport type QueryBrowserProps = {\n id: string;\n title?: string;\n language?: \"sql\" | \"json\" | \"text\";\n initialQuery?: string;\n queryLabel?: string;\n optionsSchema?: JsonSchemaObject;\n initialOptions?: Record<string, unknown>;\n completion?: QueryBrowserCompletion;\n onQueryChange?: (query: string) => void;\n onOptionsChange?: (options: Record<string, unknown>) => void;\n navigator?: ReactNode;\n execute: (request: QueryBrowserRequest) => Promise<QueryBrowserResult>;\n renderResults?: (context: QueryBrowserResultContext) => ReactNode;\n className?: string;\n};\n\ntype HistoryEntry = { query: string; at: number };\n\nconst MAX_HISTORY = 50;\n\nfunction historyKey(id: string) {\n return `clicky-ui:query-browser:${id}:history`;\n}\n\nfunction readHistory(id: string): HistoryEntry[] {\n if (typeof window === \"undefined\") return [];\n try {\n const value = JSON.parse(\n window.localStorage.getItem(historyKey(id)) ?? \"[]\",\n );\n return Array.isArray(value) ? value.slice(0, MAX_HISTORY) : [];\n } catch {\n return [];\n }\n}\n\nfunction rememberQuery(id: string, query: string): HistoryEntry[] {\n const entries = readHistory(id).filter((entry) => entry.query !== query);\n const next = [{ query, at: Date.now() }, ...entries].slice(0, MAX_HISTORY);\n if (typeof window !== \"undefined\") {\n window.localStorage.setItem(historyKey(id), JSON.stringify(next));\n }\n return next;\n}\n\nfunction editorExtensions(\n execute: () => void,\n onQueryChange: (query: string) => void,\n languageExtension: Extension,\n) {\n return [\n history(),\n keymap.of([\n {\n key: \"Mod-Enter\",\n run: () => {\n execute();\n return true;\n },\n },\n ...historyKeymap,\n ]),\n EditorView.lineWrapping,\n EditorView.updateListener.of((update) => {\n if (update.docChanged) onQueryChange(update.state.doc.toString());\n }),\n EditorView.theme({\n \"&\": { height: \"100%\", fontSize: \"13px\", background: \"transparent\" },\n \".cm-scroller\": {\n fontFamily: \"ui-monospace, SFMono-Regular, Menlo, monospace\",\n },\n \".cm-content\": { padding: \"12px 0\" },\n \".cm-gutters\": { background: \"transparent\", border: \"none\" },\n \"&.cm-focused\": { outline: \"none\" },\n }),\n languageExtension,\n ];\n}\n\nfunction languageExtension(\n language: QueryBrowserProps[\"language\"],\n completion?: QueryBrowserCompletion,\n): Extension {\n if (language === \"sql\") {\n if (completion?.kind !== \"sql\") return sql();\n return sql({\n dialect: dialectFor(completion.dialect),\n schema: sqlCompletionNamespace(completion.schemas),\n upperCaseKeywords: true,\n ...(completion.defaultSchema\n ? { defaultSchema: completion.defaultSchema }\n : {}),\n });\n }\n if (language === \"json\") {\n if (completion?.kind !== \"json-fields\") return json();\n return [\n json(),\n autocompletion({\n override: [openSearchJSONCompletionSource(completion.fields)],\n }),\n ];\n }\n return [];\n}\n\nexport function QueryBrowser({\n id,\n title,\n language = \"text\",\n initialQuery = \"\",\n queryLabel = \"Query\",\n optionsSchema,\n initialOptions,\n completion,\n onQueryChange,\n onOptionsChange,\n navigator,\n execute,\n renderResults,\n className,\n}: QueryBrowserProps) {\n const editorHost = useRef<HTMLDivElement | null>(null);\n const editor = useRef<EditorView | null>(null);\n const languageConfig = useRef(new Compartment());\n const executeRef = useRef<() => void>(() => undefined);\n const onQueryChangeRef = useRef(onQueryChange);\n const [options, setOptions] = useState<Record<string, unknown>>(\n initialOptions ?? {},\n );\n const [result, setResult] = useState<QueryBrowserResult | null>(null);\n const [error, setError] = useState<string | null>(null);\n const [pending, setPending] = useState(false);\n const [entries, setEntries] = useState<HistoryEntry[]>(() => readHistory(id));\n\n const currentQuery = useCallback(() => {\n const view = editor.current;\n if (!view) return initialQuery;\n const selection = view.state.selection.main;\n if (!selection.empty)\n return view.state.sliceDoc(selection.from, selection.to);\n return view.state.doc.toString();\n }, [initialQuery]);\n\n const run = useCallback(async () => {\n const query = currentQuery().trim();\n if (!query || pending) return;\n setPending(true);\n setError(null);\n setEntries(rememberQuery(id, query));\n const started = performance.now();\n try {\n const next = await execute({ query, options });\n setResult({\n ...next,\n durationMs: next.durationMs ?? performance.now() - started,\n });\n } catch (err) {\n setError(err instanceof Error ? err.message : String(err));\n } finally {\n setPending(false);\n }\n }, [currentQuery, execute, id, options, pending]);\n\n executeRef.current = () => void run();\n onQueryChangeRef.current = onQueryChange;\n\n useEffect(() => {\n if (!editorHost.current) return;\n const view = new EditorView({\n parent: editorHost.current,\n state: EditorState.create({\n doc: initialQuery,\n extensions: editorExtensions(\n () => executeRef.current(),\n (query) => onQueryChangeRef.current?.(query),\n languageConfig.current.of(languageExtension(language, completion)),\n ),\n }),\n });\n editor.current = view;\n return () => {\n editor.current = null;\n view.destroy();\n };\n }, [id, language]);\n\n useEffect(() => {\n const view = editor.current;\n if (!view) return;\n view.dispatch({\n effects: languageConfig.current.reconfigure(\n languageExtension(language, completion),\n ),\n });\n }, [completion, language]);\n\n useEffect(() => {\n const view = editor.current;\n if (!view || view.state.doc.toString() === initialQuery) return;\n view.dispatch({\n changes: { from: 0, to: view.state.doc.length, insert: initialQuery },\n });\n }, [initialQuery]);\n\n useEffect(() => {\n setOptions(initialOptions ?? {});\n }, [initialOptions]);\n\n const updateOptions = useCallback(\n (next: Record<string, unknown>) => {\n setOptions(next);\n onOptionsChange?.(next);\n },\n [onOptionsChange],\n );\n\n useEffect(() => {\n setEntries(readHistory(id));\n setResult(null);\n setError(null);\n }, [id]);\n\n const rows = result?.rows ?? [];\n const columns = useMemo(\n () => inferColumns(rows, { literalKeys: true }),\n [rows],\n );\n const defaultResults = result ? (\n <div className=\"flex min-h-0 flex-1 flex-col gap-2\">\n <div className=\"flex flex-wrap items-center gap-3 text-xs text-muted-foreground\">\n <span>\n {rows.length.toLocaleString()} rows{result.truncated ? \"+\" : \"\"}\n </span>\n {result.affectedRows !== undefined && (\n <span>{result.affectedRows.toLocaleString()} affected</span>\n )}\n {result.durationMs !== undefined && (\n <span>{Math.round(result.durationMs)} ms</span>\n )}\n {result.message && <span>{result.message}</span>}\n </div>\n {rows.length > 0 ? (\n <DataTable\n data={rows}\n columns={columns}\n autoFilter={false}\n showGlobalFilter\n showFullscreenControl\n fullscreenTitle={title ?? queryLabel}\n detailStyle=\"dialog\"\n detailDialogTitle=\"Row details\"\n renderExpandedRow={(row) => (\n <Properties\n items={Object.entries(row).map(([key, value]) => ({\n key,\n value,\n }))}\n renderLabel={(key) => key}\n density=\"compact\"\n />\n )}\n className=\"min-h-0 flex-1\"\n />\n ) : (\n <div className=\"rounded-md border border-dashed p-6 text-sm text-muted-foreground\">\n {result.message ?? \"Statement completed with no rows.\"}\n </div>\n )}\n </div>\n ) : (\n <div className=\"grid min-h-40 place-items-center text-sm text-muted-foreground\">\n Run a query to see results.\n </div>\n );\n\n const workspace = (\n <div className=\"flex h-full min-h-0 flex-col overflow-hidden rounded-xl border bg-card\">\n <div className=\"flex flex-wrap items-center gap-2 border-b px-3 py-2\">\n <div className=\"min-w-0 flex-1\">\n {title && <h2 className=\"truncate text-sm font-semibold\">{title}</h2>}\n <p className=\"text-xs text-muted-foreground\">{queryLabel}</p>\n </div>\n {entries.length > 0 && (\n <select\n aria-label=\"Query history\"\n defaultValue=\"\"\n onChange={(event) => {\n const query = event.target.value;\n const view = editor.current;\n if (!view || !query) return;\n view.dispatch({\n changes: { from: 0, to: view.state.doc.length, insert: query },\n });\n event.target.value = \"\";\n }}\n className=\"h-8 max-w-52 rounded-md border bg-background px-2 text-xs\"\n >\n <option value=\"\">History</option>\n {entries.map((entry) => (\n <option key={`${entry.at}:${entry.query}`} value={entry.query}>\n {entry.query.replace(/\\s+/g, \" \").slice(0, 80)}\n </option>\n ))}\n </select>\n )}\n <Button\n size=\"sm\"\n onClick={() => void run()}\n loading={pending}\n loadingLabel={pending ? \"Running\" : undefined}\n >\n <Icon icon={UiPlay} className=\"size-4\" />\n Run\n </Button>\n </div>\n {optionsSchema &&\n Object.keys(optionsSchema.properties ?? {}).length > 0 && (\n <div className=\"border-b px-3 py-2\">\n <JsonSchemaForm\n schema={optionsSchema}\n value={options}\n onChange={updateOptions}\n size=\"sm\"\n inline\n showPreferencesMenu={false}\n persistPreferences={false}\n />\n </div>\n )}\n <div ref={editorHost} className=\"h-[34%] min-h-44 border-b\" />\n <div className=\"flex min-h-0 flex-1 flex-col overflow-auto p-3\">\n {error ? (\n <ErrorDetails\n diagnostics={{\n message: error,\n context: [\n [\"Query\", currentQuery()],\n [\"Language\", language],\n ],\n }}\n />\n ) : result && renderResults ? (\n renderResults({ result, defaultView: defaultResults })\n ) : (\n defaultResults\n )}\n </div>\n </div>\n );\n\n return (\n <div className={cn(\"h-[calc(100vh-15rem)] min-h-[32rem]\", className)}>\n {navigator ? (\n <SplitPane defaultSplit={28} left={navigator} right={workspace} />\n ) : (\n workspace\n )}\n </div>\n );\n}\n"],"names":["languageExtension","history","keymap","historyKeymap","EditorView","sql","dialectFor","sqlCompletionNamespace","json","autocompletion","openSearchJSONCompletionSource","useRef","Compartment","useState","useCallback","view","useEffect","EditorState","useMemo","inferColumns","jsxs","jsx","DataTable","Properties","Button","Icon","UiPlay","JsonSchemaForm","ErrorDetails","cn","SplitPane"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"QueryBrowser.cjs","sources":["../../../src/data/query-browser/QueryBrowser.tsx"],"sourcesContent":["import { Compartment, EditorState } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { Button } from \"../../components/button\";\nimport { JsonSchemaForm } from \"../../components/JsonSchemaForm\";\nimport { cn } from \"../../lib/utils\";\nimport { SplitPane } from \"../../layout/SplitPane\";\nimport { Icon } from \"../Icon\";\nimport { UiDebug, UiPlay } from \"../../icons\";\nimport type { DataTablePagination } from \"../DataTable\";\nimport { inferColumns } from \"../data-table-utils\";\nimport type { DataTableFilterSelection } from \"../data-table-filter-values\";\nimport {\n serverColumnsToDataTableColumns,\n serverFiltersToFilterBar,\n type DataTableFilterLookup,\n type DataTableServerColumn,\n} from \"../data-table-server-filters\";\nimport { ErrorDetails } from \"../diagnostics/ErrorDetails\";\nimport {\n queryBrowserEditorExtensions,\n queryBrowserLanguageExtension,\n readQueryBrowserHistory,\n rememberQueryBrowserQuery,\n type QueryBrowserHistoryEntry,\n} from \"./QueryBrowser.editor\";\nimport { QueryBrowserDiagnosticsPanel } from \"./QueryBrowserDiagnosticsPanel\";\nimport { QueryBrowserResults } from \"./QueryBrowserResults\";\nimport {\n QueryBrowserExecutionError,\n type QueryBrowserDiagnostics,\n type QueryBrowserProps,\n type QueryBrowserRequest,\n type QueryBrowserResult,\n} from \"./QueryBrowser.types\";\n\nexport function QueryBrowser({\n id,\n title,\n language = \"text\",\n initialQuery = \"\",\n queryLabel = \"Query\",\n optionsSchema,\n initialOptions,\n completion,\n onQueryChange,\n onOptionsChange,\n navigator,\n execute,\n lookupFilterValues,\n renderResults,\n className,\n}: QueryBrowserProps) {\n const editorHost = useRef<HTMLDivElement | null>(null);\n const editor = useRef<EditorView | null>(null);\n const languageConfig = useRef(new Compartment());\n const executeRef = useRef<() => void>(() => undefined);\n const onQueryChangeRef = useRef(onQueryChange);\n const [options, setOptions] = useState<Record<string, unknown>>(\n initialOptions ?? {},\n );\n const [result, setResult] = useState<QueryBrowserResult | null>(null);\n const [error, setError] = useState<{\n message: string;\n query: string;\n diagnostics?: QueryBrowserDiagnostics;\n } | null>(null);\n const [pending, setPending] = useState(false);\n const [debug, setDebug] = useState(false);\n const [entries, setEntries] = useState<QueryBrowserHistoryEntry[]>(() =>\n readQueryBrowserHistory(id),\n );\n const [filters, setFilters] = useState<DataTableFilterSelection>({});\n // What the displayed result came from. A filter re-runs *this*, never the\n // editor's current text — otherwise changing a pill would execute a\n // half-typed edit nobody asked to run.\n const lastRun = useRef<{\n query: string;\n options: Record<string, unknown>;\n filters?: DataTableFilterSelection;\n columns?: DataTableServerColumn[];\n } | null>(null);\n const executedFilters = useRef<DataTableFilterSelection>({});\n\n // Every run goes through here so the record a filter re-runs from is refreshed\n // in one place: the query, its options, and the columns the source described,\n // which are what a subsequent selection binds to.\n const runRequest = useCallback(\n async (request: QueryBrowserRequest) => {\n setPending(true);\n setError(null);\n const started = performance.now();\n try {\n const next = await execute(request);\n setResult({\n ...next,\n durationMs: next.durationMs ?? performance.now() - started,\n });\n lastRun.current = {\n query: request.query,\n options: request.options,\n ...(request.filters ? { filters: request.filters } : {}),\n ...(next.columns ? { columns: next.columns } : {}),\n };\n } catch (err) {\n setError({\n message: err instanceof Error ? err.message : String(err),\n query: request.query,\n ...(err instanceof QueryBrowserExecutionError && err.diagnostics\n ? { diagnostics: err.diagnostics }\n : {}),\n });\n } finally {\n setPending(false);\n }\n },\n [execute],\n );\n\n const currentQuery = useCallback(() => {\n const view = editor.current;\n if (!view) return initialQuery;\n const selection = view.state.selection.main;\n if (!selection.empty)\n return view.state.sliceDoc(selection.from, selection.to);\n return view.state.doc.toString();\n }, [initialQuery]);\n\n const run = useCallback(async () => {\n const query = currentQuery().trim();\n if (!query || pending) return;\n setEntries(rememberQueryBrowserQuery(id, query));\n // A different statement is a different result set, so neither its filters\n // nor the columns they bind to survive: both name columns the new query may\n // not return.\n const repeat = lastRun.current?.query === query ? lastRun.current : null;\n const carried = repeat ? filters : {};\n if (carried !== filters) setFilters(carried);\n lastRun.current = { query, options };\n executedFilters.current = carried;\n await runRequest({\n query,\n options,\n ...(Object.keys(carried).length > 0 ? { filters: carried } : {}),\n ...(repeat?.columns ? { columns: repeat.columns } : {}),\n ...(debug ? { debug: true } : {}),\n });\n }, [currentQuery, debug, filters, id, options, pending, runRequest]);\n\n // A filter pill is not a draft the way query text is: it commits a discrete\n // value on selection, and the bar already debounces its free-text fields. So\n // a change re-runs the last executed query immediately rather than waiting\n // for Run, which is also how the profile catalog behaves.\n const rerunWithFilters = useCallback(\n async (selection: DataTableFilterSelection) => {\n const previous = lastRun.current;\n if (!previous) {\n throw new Error(\n \"QueryBrowser: a filter changed before any query had run\",\n );\n }\n await runRequest({\n ...previous,\n filters: selection,\n ...(result?.pagination\n ? { pagination: { limit: result.pagination.limit } }\n : {}),\n ...(debug ? { debug: true } : {}),\n });\n },\n [debug, result?.pagination, runRequest],\n );\n\n const rerunAt = useCallback(\n async (pagination: NonNullable<QueryBrowserRequest[\"pagination\"]>) => {\n const previous = lastRun.current;\n if (!previous) {\n throw new Error(\n \"QueryBrowser: pagination changed before any query had run\",\n );\n }\n await runRequest({\n ...previous,\n pagination,\n ...(debug ? { debug: true } : {}),\n });\n },\n [debug, runRequest],\n );\n\n useEffect(() => {\n if (!lastRun.current) return;\n if (filters === executedFilters.current) return;\n executedFilters.current = filters;\n void rerunWithFilters(filters);\n }, [filters, rerunWithFilters]);\n\n executeRef.current = () => void run();\n onQueryChangeRef.current = onQueryChange;\n\n useEffect(() => {\n if (!editorHost.current) return;\n const view = new EditorView({\n parent: editorHost.current,\n state: EditorState.create({\n doc: initialQuery,\n extensions: queryBrowserEditorExtensions(\n () => executeRef.current(),\n (query) => onQueryChangeRef.current?.(query),\n languageConfig.current.of(\n queryBrowserLanguageExtension(language, completion),\n ),\n ),\n }),\n });\n editor.current = view;\n return () => {\n editor.current = null;\n view.destroy();\n };\n }, [id, language]);\n\n useEffect(() => {\n const view = editor.current;\n if (!view) return;\n view.dispatch({\n effects: languageConfig.current.reconfigure(\n queryBrowserLanguageExtension(language, completion),\n ),\n });\n }, [completion, language]);\n\n useEffect(() => {\n const view = editor.current;\n if (!view || view.state.doc.toString() === initialQuery) return;\n view.dispatch({\n changes: { from: 0, to: view.state.doc.length, insert: initialQuery },\n });\n }, [initialQuery]);\n\n useEffect(() => {\n setOptions(initialOptions ?? {});\n }, [initialOptions]);\n\n const updateOptions = useCallback(\n (next: Record<string, unknown>) => {\n setOptions(next);\n onOptionsChange?.(next);\n },\n [onOptionsChange],\n );\n\n useEffect(() => {\n setEntries(readQueryBrowserHistory(id));\n setResult(null);\n setError(null);\n setFilters({});\n setDebug(false);\n lastRun.current = null;\n executedFilters.current = {};\n }, [id]);\n\n const rows = result?.rows ?? [];\n const described = result?.columns ?? [];\n const columns = useMemo(\n () =>\n described.length > 0\n ? serverColumnsToDataTableColumns<Record<string, unknown>>(described)\n : inferColumns(rows, { literalKeys: true }),\n [described, rows],\n );\n const lookupValues = useMemo<DataTableFilterLookup | undefined>(() => {\n if (!lookupFilterValues) return undefined;\n return (request) => {\n const previous = lastRun.current;\n if (!previous) {\n throw new Error(\n \"QueryBrowser: a filter lookup ran before any query had\",\n );\n }\n return lookupFilterValues({ ...request, ...previous, filters });\n };\n }, [filters, lookupFilterValues]);\n const filterConfig = useMemo(\n () =>\n serverFiltersToFilterBar(\n described,\n filters,\n setFilters,\n lookupValues ? { lookupValues } : {},\n ),\n [described, filters, lookupValues],\n );\n const serverFiltered =\n filterConfig.filters.length > 0 || filterConfig.timeRange !== undefined;\n const tablePagination = useMemo<DataTablePagination | undefined>(() => {\n const pagination = result?.pagination;\n if (!pagination) return undefined;\n const shared = {\n pageSize: pagination.limit,\n ...(pagination.total !== undefined ? { total: pagination.total } : {}),\n ...(pagination.totalRelation === \"eq\" ||\n pagination.totalRelation === \"gte\"\n ? { totalRelation: pagination.totalRelation }\n : {}),\n hasMore: pagination.hasMore,\n onPageSizeChange: (limit: number) => void rerunAt({ limit }),\n };\n if (pagination.mode === \"cursor\") {\n return {\n ...shared,\n page: 0,\n cursor: {\n ...(pagination.cursor ? { current: pagination.cursor } : {}),\n ...(pagination.nextCursor ? { next: pagination.nextCursor } : {}),\n onCursorChange: (cursor: string | undefined) =>\n void rerunAt({\n limit: pagination.limit,\n ...(cursor ? { cursor } : {}),\n }),\n },\n };\n }\n const page = Math.floor((pagination.offset ?? 0) / pagination.limit);\n return {\n ...shared,\n page,\n onPageChange: (nextPage: number) =>\n void rerunAt({\n limit: pagination.limit,\n offset: nextPage * pagination.limit,\n }),\n };\n }, [rerunAt, result?.pagination]);\n const defaultResults = (\n <QueryBrowserResults\n result={result}\n pending={pending}\n {...(title ? { title } : {})}\n queryLabel={queryLabel}\n columns={columns}\n filterConfig={filterConfig}\n serverFiltered={serverFiltered}\n {...(tablePagination ? { pagination: tablePagination } : {})}\n />\n );\n\n const workspace = (\n <div className=\"flex h-full min-h-0 flex-col overflow-hidden rounded-xl border bg-card\">\n <div className=\"flex flex-wrap items-center gap-2 border-b px-3 py-2\">\n <div className=\"min-w-0 flex-1\">\n {title && <h2 className=\"truncate text-sm font-semibold\">{title}</h2>}\n <p className=\"text-xs text-muted-foreground\">{queryLabel}</p>\n </div>\n {entries.length > 0 && (\n <select\n aria-label=\"Query history\"\n defaultValue=\"\"\n onChange={(event) => {\n const query = event.target.value;\n const view = editor.current;\n if (!view || !query) return;\n view.dispatch({\n changes: { from: 0, to: view.state.doc.length, insert: query },\n });\n event.target.value = \"\";\n }}\n className=\"h-8 max-w-52 rounded-md border bg-background px-2 text-xs\"\n >\n <option value=\"\">History</option>\n {entries.map((entry) => (\n <option key={`${entry.at}:${entry.query}`} value={entry.query}>\n {entry.query.replace(/\\s+/g, \" \").slice(0, 80)}\n </option>\n ))}\n </select>\n )}\n <Button\n size=\"sm\"\n variant={debug ? \"secondary\" : \"outline\"}\n aria-pressed={debug}\n onClick={() => setDebug((enabled) => !enabled)}\n >\n <Icon icon={UiDebug} className=\"size-4\" />\n Debug\n </Button>\n <Button\n size=\"sm\"\n onClick={() => void run()}\n loading={pending}\n loadingLabel={pending ? \"Running\" : undefined}\n >\n <Icon icon={UiPlay} className=\"size-4\" />\n Run\n </Button>\n </div>\n {optionsSchema &&\n Object.keys(optionsSchema.properties ?? {}).length > 0 && (\n <div className=\"border-b px-3 py-2\">\n <JsonSchemaForm\n schema={optionsSchema}\n value={options}\n onChange={updateOptions}\n size=\"sm\"\n inline\n showPreferencesMenu={false}\n persistPreferences={false}\n />\n </div>\n )}\n <div ref={editorHost} className=\"h-[34%] min-h-44 border-b\" />\n <div className=\"flex min-h-0 flex-1 flex-col overflow-auto p-3\">\n {error ? (\n <div className=\"space-y-3\">\n <ErrorDetails\n diagnostics={{\n message: error.message,\n context: [\n [\"Query\", error.query],\n [\"Language\", language],\n ],\n }}\n />\n {error.diagnostics && (\n <QueryBrowserDiagnosticsPanel diagnostics={error.diagnostics} />\n )}\n </div>\n ) : result && renderResults ? (\n renderResults({ result, defaultView: defaultResults })\n ) : (\n defaultResults\n )}\n </div>\n </div>\n );\n\n return (\n <div className={cn(\"h-[calc(100vh-15rem)] min-h-[32rem]\", className)}>\n {navigator ? (\n <SplitPane defaultSplit={28} left={navigator} right={workspace} />\n ) : (\n workspace\n )}\n </div>\n );\n}\n"],"names":["useRef","Compartment","useState","readQueryBrowserHistory","useCallback","QueryBrowserExecutionError","view","rememberQueryBrowserQuery","useEffect","EditorView","EditorState","queryBrowserEditorExtensions","queryBrowserLanguageExtension","useMemo","serverColumnsToDataTableColumns","inferColumns","serverFiltersToFilterBar","jsx","QueryBrowserResults","jsxs","Button","Icon","UiDebug","UiPlay","JsonSchemaForm","ErrorDetails","QueryBrowserDiagnosticsPanel","cn","SplitPane"],"mappings":"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"}
|
|
@@ -1,42 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
import { QueryBrowserCompletion } from './QueryBrowser.completion';
|
|
4
|
-
export type QueryBrowserColumn = {
|
|
5
|
-
name: string;
|
|
6
|
-
databaseType?: string;
|
|
7
|
-
};
|
|
8
|
-
export type QueryBrowserResult = {
|
|
9
|
-
rows?: Record<string, unknown>[];
|
|
10
|
-
columns?: QueryBrowserColumn[];
|
|
11
|
-
affectedRows?: number;
|
|
12
|
-
durationMs?: number;
|
|
13
|
-
message?: string;
|
|
14
|
-
truncated?: boolean;
|
|
15
|
-
metadata?: Record<string, unknown>;
|
|
16
|
-
};
|
|
17
|
-
export type QueryBrowserRequest = {
|
|
18
|
-
query: string;
|
|
19
|
-
options: Record<string, unknown>;
|
|
20
|
-
};
|
|
21
|
-
export type QueryBrowserResultContext = {
|
|
22
|
-
result: QueryBrowserResult;
|
|
23
|
-
defaultView: ReactNode;
|
|
24
|
-
};
|
|
25
|
-
export type QueryBrowserProps = {
|
|
26
|
-
id: string;
|
|
27
|
-
title?: string;
|
|
28
|
-
language?: "sql" | "json" | "text";
|
|
29
|
-
initialQuery?: string;
|
|
30
|
-
queryLabel?: string;
|
|
31
|
-
optionsSchema?: JsonSchemaObject;
|
|
32
|
-
initialOptions?: Record<string, unknown>;
|
|
33
|
-
completion?: QueryBrowserCompletion;
|
|
34
|
-
onQueryChange?: (query: string) => void;
|
|
35
|
-
onOptionsChange?: (options: Record<string, unknown>) => void;
|
|
36
|
-
navigator?: ReactNode;
|
|
37
|
-
execute: (request: QueryBrowserRequest) => Promise<QueryBrowserResult>;
|
|
38
|
-
renderResults?: (context: QueryBrowserResultContext) => ReactNode;
|
|
39
|
-
className?: string;
|
|
40
|
-
};
|
|
41
|
-
export declare function QueryBrowser({ id, title, language, initialQuery, queryLabel, optionsSchema, initialOptions, completion, onQueryChange, onOptionsChange, navigator, execute, renderResults, className, }: QueryBrowserProps): import("react/jsx-runtime").JSX.Element;
|
|
1
|
+
import { QueryBrowserProps } from './QueryBrowser.types';
|
|
2
|
+
export declare function QueryBrowser({ id, title, language, initialQuery, queryLabel, optionsSchema, initialOptions, completion, onQueryChange, onOptionsChange, navigator, execute, lookupFilterValues, renderResults, className, }: QueryBrowserProps): import("react/jsx-runtime").JSX.Element;
|
|
42
3
|
//# sourceMappingURL=QueryBrowser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryBrowser.d.ts","sourceRoot":"","sources":["../../../src/data/query-browser/QueryBrowser.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"QueryBrowser.d.ts","sourceRoot":"","sources":["../../../src/data/query-browser/QueryBrowser.tsx"],"names":[],"mappings":"AA4BA,OAAO,EAGL,KAAK,iBAAiB,EAGvB,MAAM,sBAAsB,CAAC;AAE9B,wBAAgB,YAAY,CAAC,EAC3B,EAAE,EACF,KAAK,EACL,QAAiB,EACjB,YAAiB,EACjB,UAAoB,EACpB,aAAa,EACb,cAAc,EACd,UAAU,EACV,aAAa,EACb,eAAe,EACf,SAAS,EACT,OAAO,EACP,kBAAkB,EAClB,aAAa,EACb,SAAS,GACV,EAAE,iBAAiB,2CAyYnB"}
|