windmill-components 1.542.5 → 1.555.0
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/package/aiStore.d.ts +13 -0
- package/package/aiStore.js +70 -0
- package/package/common.d.ts +6 -2
- package/package/components/AIAgentLogViewer.svelte +1 -1
- package/package/components/AIProviderPicker.svelte +25 -8
- package/package/components/ArgEnum.svelte +17 -7
- package/package/components/ArgEnum.svelte.d.ts +1 -0
- package/package/components/ArgInput.svelte +257 -188
- package/package/components/ArgInput.svelte.d.ts +4 -1
- package/package/components/ArrayTypeNarrowing.svelte +38 -32
- package/package/components/AutoscalingEvents.svelte +21 -5
- package/package/components/AutoscalingEvents.svelte.d.ts +4 -18
- package/package/components/ChannelSelector.svelte +92 -18
- package/package/components/ChannelSelector.svelte.d.ts +2 -0
- package/package/components/ConnectionSection.svelte +12 -1
- package/package/components/DateTimeInput.svelte +8 -6
- package/package/components/DeployButton.svelte +1 -1
- package/package/components/Dev.svelte +24 -9
- package/package/components/Dev.svelte.d.ts +23 -1
- package/package/components/DisplayResult.svelte +36 -23
- package/package/components/DropdownV2.svelte +8 -2
- package/package/components/DropdownV2.svelte.d.ts +1 -0
- package/package/components/DynamicInput.svelte +10 -10
- package/package/components/EditableSchemaForm.svelte +28 -13
- package/package/components/Editor.svelte +2 -1
- package/package/components/EditorSettings.svelte +5 -5
- package/package/components/EditorSettings.svelte.d.ts +4 -18
- package/package/components/ErrorOrRecoveryHandler.svelte +14 -20
- package/package/components/FakeMonacoPlaceHolder.svelte +4 -2
- package/package/components/FakeMonacoPlaceHolder.svelte.d.ts +1 -0
- package/package/components/FieldHeader.svelte +5 -7
- package/package/components/FirstStepInputs.svelte +1 -1
- package/package/components/FlowHistoryJobPicker.svelte +3 -0
- package/package/components/FlowHistoryJobPicker.svelte.d.ts +1 -0
- package/package/components/FlowJobResult.svelte +5 -5
- package/package/components/FlowLogRow.svelte +2 -2
- package/package/components/FlowLogViewer.svelte +228 -57
- package/package/components/FlowLogViewer.svelte.d.ts +16 -5
- package/package/components/FlowLogViewerWrapper.svelte +56 -3
- package/package/components/FlowLogViewerWrapper.svelte.d.ts +4 -3
- package/package/components/FlowLoopIterationPreview.svelte +4 -4
- package/package/components/FlowLoopIterationPreview.svelte.d.ts +1 -1
- package/package/components/FlowMetadata.svelte +3 -4
- package/package/components/FlowMetadata.svelte.d.ts +4 -18
- package/package/components/FlowPlugConnect.svelte +8 -2
- package/package/components/FlowPlugConnect.svelte.d.ts +1 -0
- package/package/components/FlowPreviewContent.svelte +121 -94
- package/package/components/FlowPreviewContent.svelte.d.ts +3 -3
- package/package/components/FlowStatusViewer.svelte +63 -59
- package/package/components/FlowStatusViewer.svelte.d.ts +2 -2
- package/package/components/FlowStatusViewerInner.svelte +186 -94
- package/package/components/FlowStatusViewerInner.svelte.d.ts +10 -3
- package/package/components/FlowTimeline.svelte +110 -131
- package/package/components/FlowTimeline.svelte.d.ts +13 -4
- package/package/components/FlowTimelineBar.svelte +227 -0
- package/package/components/FlowTimelineBar.svelte.d.ts +24 -0
- package/package/components/FolderEditor.svelte +6 -7
- package/package/components/GroupEditor.svelte +148 -141
- package/package/components/GroupEditor.svelte.d.ts +5 -4
- package/package/components/InputTransformForm.svelte +193 -71
- package/package/components/InputTransformForm.svelte.d.ts +3 -0
- package/package/components/InputTransformSchemaForm.svelte +10 -5
- package/package/components/InputTransformSchemaForm.svelte.d.ts +2 -0
- package/package/components/InstanceSetting.svelte +34 -51
- package/package/components/InstanceSettings.svelte +12 -21
- package/package/components/JobArgs.svelte +15 -16
- package/package/components/JobArgs.svelte.d.ts +4 -18
- package/package/components/JobLoader.svelte +23 -42
- package/package/components/JobLoader.svelte.d.ts +2 -0
- package/package/components/JobStatus.svelte +1 -1
- package/package/components/JobStatus.svelte.d.ts +4 -18
- package/package/components/JsonEditor.svelte +18 -9
- package/package/components/JsonEditor.svelte.d.ts +1 -1
- package/package/components/JsonInputs.svelte +1 -1
- package/package/components/ModulePreviewForm.svelte +23 -19
- package/package/components/ModulePreviewResultViewer.svelte +1 -7
- package/package/components/NextcloudSetting.svelte +6 -1
- package/package/components/NumberTypeNarrowing.svelte +32 -16
- package/package/components/ObjectStoreConfigSettings.svelte +27 -19
- package/package/components/Password.svelte +7 -11
- package/package/components/Password.svelte.d.ts +5 -20
- package/package/components/PasswordArgInput.svelte +35 -15
- package/package/components/PasswordArgInput.svelte.d.ts +4 -18
- package/package/components/Path.svelte +2 -8
- package/package/components/Path.svelte.d.ts +1 -1
- package/package/components/QueuePosition.svelte +6 -2
- package/package/components/ResourceEditor.svelte +3 -10
- package/package/components/ResourcePicker.svelte +85 -72
- package/package/components/ResourcePicker.svelte.d.ts +2 -0
- package/package/components/RunChart.svelte +1 -1
- package/package/components/RunForm.svelte +16 -21
- package/package/components/S3ArrayHelperButton.svelte +18 -0
- package/package/components/S3ArrayHelperButton.svelte.d.ts +9 -0
- package/package/components/S3FilePicker.svelte +1 -1
- package/package/components/SchemaForm.svelte +18 -10
- package/package/components/SchemaForm.svelte.d.ts +7 -1
- package/package/components/SchemaFormWithArgPicker.svelte +1 -1
- package/package/components/ScriptBuilder.svelte +2 -2
- package/package/components/ScriptEditor.svelte +9 -9
- package/package/components/ScriptEditor.svelte.d.ts +1 -1
- package/package/components/ShareModal.svelte +4 -4
- package/package/components/SimpleEditor.svelte +6 -2
- package/package/components/SimpleEditor.svelte.d.ts +3 -0
- package/package/components/StringTypeNarrowing.svelte +44 -25
- package/package/components/StringTypeNarrowing.svelte.d.ts +1 -1
- package/package/components/SuperadminSettingsInner.svelte +3 -3
- package/package/components/TeamSelector.svelte +83 -37
- package/package/components/TeamSelector.svelte.d.ts +0 -1
- package/package/components/TemplateEditor.svelte +18 -9
- package/package/components/Toast.svelte +2 -7
- package/package/components/Toast.svelte.d.ts +4 -18
- package/package/components/Toggle.svelte +17 -7
- package/package/components/ToggleHubWorkspaceQuick.svelte +3 -3
- package/package/components/WorkerGroup.svelte +2 -14
- package/package/components/apps/components/buttons/AppButton.svelte +66 -38
- package/package/components/apps/components/display/dbtable/InsertRow.svelte +32 -2
- package/package/components/apps/components/display/dbtable/queries/insert.js +2 -1
- package/package/components/apps/components/display/dbtable/utils.d.ts +8 -8
- package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +13 -4
- package/package/components/apps/components/display/table/SyncColumnDefs.svelte +2 -2
- package/package/components/apps/components/display/table/utils.js +14 -4
- package/package/components/apps/components/helpers/RefreshButton.svelte +5 -1
- package/package/components/apps/components/helpers/RunnableComponent.svelte +3 -5
- package/package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +1 -0
- package/package/components/apps/components/inputs/currency/CurrencyInput.svelte +2 -1
- package/package/components/apps/components/layout/AppTabs.svelte +116 -71
- package/package/components/apps/components/layout/AppTabs.svelte.d.ts +1 -0
- package/package/components/apps/editor/AppEditorHeader.svelte +33 -271
- package/package/components/apps/editor/AppEditorHeaderDeploy.svelte +233 -0
- package/package/components/apps/editor/AppEditorHeaderDeploy.svelte.d.ts +18 -0
- package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte +47 -0
- package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte.d.ts +8 -0
- package/package/components/apps/editor/GridEditor.svelte +7 -2
- package/package/components/apps/editor/appDeploy.svelte.d.ts +1 -0
- package/package/components/apps/editor/appDeploy.svelte.js +6 -0
- package/package/components/apps/editor/appUtils.d.ts +1 -0
- package/package/components/apps/editor/appUtils.js +30 -1
- package/package/components/apps/editor/component/ComponentInner.svelte +1 -0
- package/package/components/apps/editor/component/ComponentNavigation.svelte +3 -1
- package/package/components/apps/editor/component/components.d.ts +19 -4
- package/package/components/apps/editor/component/components.js +23 -3
- package/package/components/apps/editor/contextPanel/ComponentOutputViewer.svelte +1 -1
- package/package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte +6 -4
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +1 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte.d.ts +1 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +1 -1
- package/package/components/apps/editor/settingsPanel/ComponentPanel.svelte +2 -0
- package/package/components/apps/editor/settingsPanel/GridTab.svelte +19 -1
- package/package/components/apps/editor/settingsPanel/GridTab.svelte.d.ts +3 -1
- package/package/components/apps/editor/settingsPanel/GridTabHidden.svelte +52 -0
- package/package/components/apps/editor/settingsPanel/GridTabHidden.svelte.d.ts +9 -0
- package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +58 -8
- package/package/components/auditLogs/AuditLogsFilters.svelte +7 -1
- package/package/components/auditLogs/AuditLogsTable.svelte +17 -7
- package/package/components/auditLogs/AuditLogsTable.svelte.d.ts +1 -0
- package/package/components/common/CloseButton.svelte +2 -2
- package/package/components/common/CloseButton.svelte.d.ts +1 -0
- package/package/components/common/ResizeTransitionWrapper.svelte +39 -0
- package/package/components/common/ResizeTransitionWrapper.svelte.d.ts +12 -0
- package/package/components/common/badge/CountBadge.svelte +29 -0
- package/package/components/common/badge/CountBadge.svelte.d.ts +8 -0
- package/package/components/common/button/Button.svelte +1 -0
- package/package/components/common/button/ConnectionButton.svelte +6 -1
- package/package/components/common/button/ConnectionButton.svelte.d.ts +2 -0
- package/package/components/common/button/RefreshButton.svelte +8 -4
- package/package/components/common/button/RefreshButton.svelte.d.ts +3 -0
- package/package/components/common/calendarPicker/CalendarPicker.svelte +1 -1
- package/package/components/common/fileInput/FileInput.svelte +7 -6
- package/package/components/common/fileUpload/S3ArgInput.svelte +11 -9
- package/package/components/common/fileUpload/S3ArgInput.svelte.d.ts +1 -0
- package/package/components/common/layout/List.svelte +3 -7
- package/package/components/common/layout/List.svelte.d.ts +7 -29
- package/package/components/common/popup/PopupV2.svelte +14 -25
- package/package/components/common/popup/PopupV2.svelte.d.ts +4 -2
- package/package/components/common/table/ScriptRow.svelte +22 -2
- package/package/components/common/toggleButton-v2/ToggleButton.svelte +17 -26
- package/package/components/common/toggleButton-v2/ToggleButton.svelte.d.ts +16 -30
- package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte +1 -1
- package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte +3 -3
- package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte.d.ts +1 -0
- package/package/components/copilot/CodeCompletionStatus.svelte +2 -1
- package/package/components/copilot/CronGen.svelte +1 -1
- package/package/components/copilot/FlowCopilotInputsModal.svelte +26 -23
- package/package/components/copilot/FlowInlineScriptAIButton.svelte +2 -2
- package/package/components/copilot/IteratorGen.svelte +30 -25
- package/package/components/copilot/IteratorGen.svelte.d.ts +8 -7
- package/package/components/copilot/MetadataGen.svelte +4 -3
- package/package/components/copilot/PredicateGen.svelte +15 -12
- package/package/components/copilot/PredicateGen.svelte.d.ts +5 -4
- package/package/components/copilot/RegexGen.svelte +1 -1
- package/package/components/copilot/ScriptFix.svelte +1 -1
- package/package/components/copilot/ScriptGen.svelte +2 -1
- package/package/components/copilot/StepGenQuick.svelte +15 -16
- package/package/components/copilot/StepGenQuick.svelte.d.ts +14 -13
- package/package/components/copilot/StepInputGen.svelte +50 -36
- package/package/components/copilot/StepInputGen.svelte.d.ts +13 -10
- package/package/components/copilot/StepInputsGen.svelte +18 -19
- package/package/components/copilot/StepInputsGen.svelte.d.ts +4 -18
- package/package/components/copilot/autocomplete/Autocompletor.js +1 -1
- package/package/components/copilot/autocomplete/request.js +1 -1
- package/package/components/copilot/chat/AIChat.svelte +2 -1
- package/package/components/copilot/chat/AIChatManager.svelte.js +5 -3
- package/package/components/copilot/chat/AiChatLayout.svelte +2 -1
- package/package/components/copilot/chat/ProviderModelSelector.svelte +11 -10
- package/package/components/copilot/chat/ProviderModelSelector.svelte.d.ts +2 -17
- package/package/components/copilot/chat/flow/FlowAIButton.svelte +1 -1
- package/package/components/copilot/chat/flow/FlowAIChat.svelte +4 -2
- package/package/components/copilot/chat/script/core.d.ts +4 -4
- package/package/components/copilot/chat/script/core.js +95 -35
- package/package/components/copilot/chat/shared.js +2 -1
- package/package/components/copilot/lib.d.ts +1 -0
- package/package/components/copilot/lib.js +7 -3
- package/package/components/custom_ui.d.ts +1 -0
- package/package/components/details/DetailPageLayout.svelte +3 -2
- package/package/components/details/DetailPageLayout.svelte.d.ts +1 -0
- package/package/components/flows/CreateActionsFlow.svelte +1 -1
- package/package/components/flows/FlowChatInterface.svelte +404 -0
- package/package/components/flows/FlowChatInterface.svelte.d.ts +19 -0
- package/package/components/flows/FlowChatMessage.svelte +41 -0
- package/package/components/flows/FlowChatMessage.svelte.d.ts +9 -0
- package/package/components/flows/FlowConversationsSidebar.svelte +213 -0
- package/package/components/flows/FlowConversationsSidebar.svelte.d.ts +15 -0
- package/package/components/flows/FlowEditor.svelte.d.ts +1 -1
- package/package/components/flows/FlowModuleIcon.svelte +10 -10
- package/package/components/flows/FlowProgressBar.svelte +16 -16
- package/package/components/flows/FlowProgressBar.svelte.d.ts +7 -22
- package/package/components/flows/common/FlowCard.svelte +10 -2
- package/package/components/flows/common/FlowCard.svelte.d.ts +1 -0
- package/package/components/flows/common/FlowCardHeader.svelte +2 -1
- package/package/components/flows/common/FlowCardHeader.svelte.d.ts +1 -0
- package/package/components/flows/content/DynamicInputHelpBox.svelte +4 -4
- package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +1 -1
- package/package/components/flows/content/FlowInput.svelte +381 -259
- package/package/components/flows/content/FlowInput.svelte.d.ts +1 -1
- package/package/components/flows/content/FlowInputsQuick.svelte +56 -34
- package/package/components/flows/content/FlowInputsQuick.svelte.d.ts +3 -2
- package/package/components/flows/content/FlowModuleComponent.svelte +29 -11
- package/package/components/flows/flowInfers.d.ts +60 -0
- package/package/components/flows/flowInfers.js +72 -40
- package/package/components/flows/{flowStore.d.ts → flowStore.svelte.d.ts} +5 -1
- package/package/components/flows/header/FlowPreviewButtons.svelte +1 -1
- package/package/components/flows/map/FlowErrorHandlerItem.svelte +4 -2
- package/package/components/flows/map/FlowErrorHandlerItem.svelte.d.ts +1 -0
- package/package/components/flows/map/FlowJobsMenu.svelte +3 -3
- package/package/components/flows/map/FlowJobsMenu.svelte.d.ts +1 -1
- package/package/components/flows/map/FlowModuleSchemaItem.svelte +1 -1
- package/package/components/flows/map/FlowModuleSchemaMap.svelte +5 -2
- package/package/components/flows/map/FlowStickyNode.svelte +2 -2
- package/package/components/flows/map/FlowStickyNode.svelte.d.ts +1 -0
- package/package/components/flows/map/InsertModuleButton.svelte +8 -15
- package/package/components/flows/map/InsertModuleButton.svelte.d.ts +4 -4
- package/package/components/flows/map/InsertModuleInner.svelte +19 -20
- package/package/components/flows/map/InsertModuleInner.svelte.d.ts +2 -2
- package/package/components/flows/map/MapItem.svelte +1 -1
- package/package/components/flows/map/VirtualItem.svelte +1 -2
- package/package/components/flows/pickers/PickHubScriptQuick.svelte +43 -52
- package/package/components/flows/pickers/PickHubScriptQuick.svelte.d.ts +2 -1
- package/package/components/flows/pickers/WorkspaceScriptPickerQuick.svelte +41 -26
- package/package/components/flows/pickers/WorkspaceScriptPickerQuick.svelte.d.ts +1 -0
- package/package/components/flows/propPicker/OutputPicker.svelte +2 -0
- package/package/components/flows/propPicker/PropPickerWrapper.svelte +1 -15
- package/package/components/git_sync/DetectionFlow.svelte +33 -44
- package/package/components/git_sync/DetectionFlow.svelte.d.ts +1 -0
- package/package/components/git_sync/GitSyncContext.svelte.d.ts +22 -0
- package/package/components/git_sync/GitSyncContext.svelte.js +145 -5
- package/package/components/git_sync/GitSyncModeDisplay.svelte +14 -0
- package/package/components/git_sync/GitSyncModeDisplay.svelte.d.ts +9 -0
- package/package/components/git_sync/GitSyncRepositoryCard.svelte +365 -253
- package/package/components/git_sync/GitSyncRepositoryCard.svelte.d.ts +10 -1
- package/package/components/git_sync/GitSyncSection.svelte +134 -14
- package/package/components/git_sync/PullWorkspaceModal.svelte +24 -32
- package/package/components/git_sync/PushWorkspaceModal.svelte +24 -32
- package/package/components/graph/FlowGraphV2.svelte +2 -1
- package/package/components/graph/FlowGraphV2.svelte.d.ts +1 -0
- package/package/components/graph/graphBuilder.svelte.d.ts +2 -0
- package/package/components/graph/graphBuilder.svelte.js +1 -0
- package/package/components/graph/model.d.ts +5 -5
- package/package/components/graph/renderers/edges/BaseEdge.svelte +1 -0
- package/package/components/graph/renderers/edges/EmptyEdge.svelte +3 -10
- package/package/components/graph/renderers/edges/EmptyEdge.svelte.d.ts +4 -18
- package/package/components/graph/renderers/nodes/AIToolNode.svelte +2 -2
- package/package/components/graph/renderers/nodes/InputNode.svelte +13 -2
- package/package/components/graph/renderers/nodes/NewAIToolNode.svelte +5 -10
- package/package/components/graph/renderers/triggers/TriggersBadge.svelte +2 -27
- package/package/components/home/ItemsList.svelte +1 -1
- package/package/components/instanceSettings.js +17 -0
- package/package/components/jobs/JobProgressBar.svelte +27 -21
- package/package/components/jobs/JobProgressBar.svelte.d.ts +9 -24
- package/package/components/meltComponents/MenuSingleItem.svelte +3 -8
- package/package/components/meltComponents/MenuSingleItem.svelte.d.ts +0 -3
- package/package/components/meltComponents/Popover.svelte +3 -2
- package/package/components/meltComponents/Popover.svelte.d.ts +1 -0
- package/package/components/meltComponents/Tooltip.svelte +1 -1
- package/package/components/progressBar/ProgressBar.svelte +39 -53
- package/package/components/progressBar/ProgressBar.svelte.d.ts +11 -26
- package/package/components/raw_apps/FileEditorIcon.svelte +1 -1
- package/package/components/raw_apps/FileEditorIcon.svelte.d.ts +4 -18
- package/package/components/raw_apps/RawAppBackgroundRunner.svelte +2 -8
- package/package/components/raw_apps/RawAppBackgroundRunner.svelte.d.ts +4 -18
- package/package/components/raw_apps/RawAppEditor.svelte +6 -7
- package/package/components/raw_apps/RawAppEditorHeader.svelte +48 -301
- package/package/components/raw_apps/RawAppEditorHeader.svelte.d.ts +18 -19
- package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +10 -16
- package/package/components/raw_apps/RawAppInlineScriptEditor.svelte.d.ts +13 -13
- package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte +8 -11
- package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte.d.ts +1 -2
- package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +0 -1
- package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte +7 -13
- package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte.d.ts +8 -8
- package/package/components/raw_apps/RawAppPreview.svelte +3 -7
- package/package/components/raw_apps/RawAppPreview.svelte.d.ts +5 -19
- package/package/components/raw_apps/utils.d.ts +1 -1
- package/package/components/raw_apps/utils.js +3 -3
- package/package/components/runs/JobsLoader.svelte +1 -1
- package/package/components/runs/NoWorkerWithTagWarning.svelte +3 -3
- package/package/components/runs/NoWorkerWithTagWarning.svelte.d.ts +1 -1
- package/package/components/runs/RunOption.svelte +2 -2
- package/package/components/runs/RunsFilter.svelte +15 -12
- package/package/components/runs/RunsFilter.svelte.d.ts +1 -1
- package/package/components/schema/AddPropertyV2.svelte +7 -4
- package/package/components/schema/EditableSchemaDrawer.svelte +19 -18
- package/package/components/schema/FlowPropertyEditor.svelte +9 -2
- package/package/components/schema/FlowPropertyEditor.svelte.d.ts +1 -1
- package/package/components/schema/PropertyEditor.svelte +22 -26
- package/package/components/schema/PropertyEditor.svelte.d.ts +1 -1
- package/package/components/schema/SchemaFormDND.svelte +3 -2
- package/package/components/schema/SchemaFormDND.svelte.d.ts +1 -0
- package/package/components/select/DraggableTags.svelte +2 -2
- package/package/components/select/MultiSelect.svelte +15 -9
- package/package/components/select/MultiSelect.svelte.d.ts +1 -0
- package/package/components/select/Select.svelte +12 -5
- package/package/components/select/Select.svelte.d.ts +11 -0
- package/package/components/select/SelectDropdown.svelte +98 -46
- package/package/components/select/SelectDropdown.svelte.d.ts +10 -0
- package/package/components/select/utils.svelte.js +2 -0
- package/package/components/settings/CreateToken.svelte +76 -49
- package/package/components/settings/WorkspaceUserSettings.svelte +111 -17
- package/package/components/sidebar/CriticalAlertTable.svelte +2 -1
- package/package/components/sidebar/Linkify.svelte +14 -0
- package/package/components/sidebar/Linkify.svelte.d.ts +5 -0
- package/package/components/sidebar/MenuLink.svelte +2 -1
- package/package/components/sidebar/MenuLink.svelte.d.ts +1 -0
- package/package/components/sidebar/SidebarContent.svelte +27 -27
- package/package/components/sidebar/WorkspaceMenu.svelte +8 -3
- package/package/components/table/Cell.svelte +7 -14
- package/package/components/table/Cell.svelte.d.ts +13 -35
- package/package/components/table/tableUtils.js +1 -1
- package/package/components/text_input/TextInput.svelte +30 -0
- package/package/components/text_input/TextInput.svelte.d.ts +17 -0
- package/package/components/triggers/AddTriggersButton.svelte +1 -0
- package/package/components/triggers/TriggersEditor.svelte +11 -1
- package/package/components/triggers/gcp/GcpTriggerEditorConfigSection.svelte +1 -1
- package/package/components/triggers/gcp/GcpTriggerEditorConfigSection.svelte.d.ts +2 -1
- package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +28 -5
- package/package/components/triggers/gcp/utils.js +1 -0
- package/package/components/triggers/schedules/ScheduleEditorInner.svelte +1 -0
- package/package/components/triggers/triggers.svelte.d.ts +1 -1
- package/package/components/triggers/triggers.svelte.js +8 -4
- package/package/components/triggers/webhook/WebhooksConfigSection.svelte +143 -63
- package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +22 -0
- package/package/components/triggers/websocket/utils.js +1 -0
- package/package/components/tutorials/FlowBuilderTutorialErrorHandler.svelte +2 -2
- package/package/components/tutorials/FlowBuilderTutorialForLoop.svelte +3 -0
- package/package/components/tutorials/FlowBuilderTutorialSimpleFlow.svelte +49 -17
- package/package/components/tutorials/Tutorial.svelte +9 -0
- package/package/components/tutorials/Tutorial.svelte.d.ts +1 -0
- package/package/components/tutorials/app/AppTutorial.svelte +41 -57
- package/package/components/tutorials/app/BackgroundRunnablesTutorial.svelte +3 -5
- package/package/components/tutorials/app/ConnectionTutorial.svelte +2 -2
- package/package/components/tutorials/utils.js +2 -154
- package/package/components/vscode.js +16 -8
- package/package/components/workspaceSettings/AISettings.svelte +12 -5
- package/package/components/workspaceSettings/AISettings.svelte.d.ts +2 -1
- package/package/components/workspaceSettings/CreateWorkspace.svelte +2 -2
- package/package/components/workspaceSettings/DucklakeSettings.svelte +64 -7
- package/package/components/workspaceSettings/ModelTokenLimits.svelte +165 -0
- package/package/components/workspaceSettings/ModelTokenLimits.svelte.d.ts +8 -0
- package/package/components/workspaceSettings/StorageSettings.svelte +147 -77
- package/package/editorUtils.d.ts +1 -1
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +223 -17
- package/package/gen/schemas.gen.js +226 -17
- package/package/gen/services.gen.d.ts +221 -27
- package/package/gen/services.gen.js +440 -48
- package/package/gen/types.gen.d.ts +1067 -218
- package/package/hubPaths.json +2 -1
- package/package/script_helpers.js +5 -5
- package/package/services/JobManager.js +14 -9
- package/package/stores.d.ts +4 -12
- package/package/stores.js +5 -65
- package/package/timelineCompute.svelte.d.ts +21 -0
- package/package/timelineCompute.svelte.js +113 -0
- package/package/toast.js +2 -1
- package/package/utils.d.ts +16 -8
- package/package/utils.js +65 -12
- package/package/workspace_settings.d.ts +13 -8
- package/package/workspace_settings.js +46 -11
- package/package.json +4 -4
- /package/package/components/flows/{flowStore.js → flowStore.svelte.js} +0 -0
|
@@ -39,8 +39,8 @@ let selectedNewInstanceGroup = $state(undefined);
|
|
|
39
39
|
let selectedNewRole = $state('developer');
|
|
40
40
|
// Available groups for dropdowns - filter out already configured groups
|
|
41
41
|
let availableGroupItems = $derived(instanceGroups
|
|
42
|
-
.filter(group => !autoAddInstanceGroups.includes(group.name))
|
|
43
|
-
.map(group => ({
|
|
42
|
+
.filter((group) => !autoAddInstanceGroups.includes(group.name))
|
|
43
|
+
.map((group) => ({
|
|
44
44
|
value: group.name,
|
|
45
45
|
label: group.name + (group.summary ? ` - ${group.summary}` : '')
|
|
46
46
|
})));
|
|
@@ -54,6 +54,22 @@ let sortedUsers = $derived(() => {
|
|
|
54
54
|
});
|
|
55
55
|
});
|
|
56
56
|
let hasNonManualUsers = $derived((filteredUsers || users || []).some((user) => user.added_via?.source === 'instance_group' || user.added_via?.source === 'domain'));
|
|
57
|
+
// Function to check if a manual user can be converted to a group user
|
|
58
|
+
function canConvertToGroup(user) {
|
|
59
|
+
// User must be manually added (not via instance group or domain)
|
|
60
|
+
if (user.added_via?.source === 'instance_group' || user.added_via?.source === 'domain') {
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
// Check if user's email is in any configured instance group
|
|
64
|
+
const userEmail = user.email;
|
|
65
|
+
for (const groupName of autoAddInstanceGroups) {
|
|
66
|
+
const group = instanceGroups.find((g) => g.name === groupName);
|
|
67
|
+
if (group && group.emails && group.emails.includes(userEmail)) {
|
|
68
|
+
return true;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
57
73
|
async function loadSettings() {
|
|
58
74
|
const settings = await WorkspaceService.getSettings({ workspace: $workspaceStore });
|
|
59
75
|
auto_invite_domain = settings.auto_invite_domain;
|
|
@@ -131,7 +147,7 @@ async function addInstanceGroup() {
|
|
|
131
147
|
}
|
|
132
148
|
catch (e) {
|
|
133
149
|
// Rollback on error
|
|
134
|
-
autoAddInstanceGroups = autoAddInstanceGroups.filter(g => g !== groupToAdd);
|
|
150
|
+
autoAddInstanceGroups = autoAddInstanceGroups.filter((g) => g !== groupToAdd);
|
|
135
151
|
delete autoAddInstanceGroupsRoles[groupToAdd];
|
|
136
152
|
sendUserToast('Failed to add instance group', true);
|
|
137
153
|
}
|
|
@@ -140,7 +156,7 @@ async function removeInstanceGroup(groupName) {
|
|
|
140
156
|
const previousGroups = [...autoAddInstanceGroups];
|
|
141
157
|
const previousRole = autoAddInstanceGroupsRoles[groupName];
|
|
142
158
|
try {
|
|
143
|
-
autoAddInstanceGroups = autoAddInstanceGroups.filter(g => g !== groupName);
|
|
159
|
+
autoAddInstanceGroups = autoAddInstanceGroups.filter((g) => g !== groupName);
|
|
144
160
|
delete autoAddInstanceGroupsRoles[groupName];
|
|
145
161
|
await saveInstanceGroupSettings();
|
|
146
162
|
}
|
|
@@ -165,6 +181,20 @@ async function updateGroupRole(groupName, role) {
|
|
|
165
181
|
sendUserToast('Failed to update role', true);
|
|
166
182
|
}
|
|
167
183
|
}
|
|
184
|
+
async function convertUserToGroup(username) {
|
|
185
|
+
try {
|
|
186
|
+
await UserService.convertUserToGroup({
|
|
187
|
+
workspace: $workspaceStore ?? '',
|
|
188
|
+
username
|
|
189
|
+
});
|
|
190
|
+
sendUserToast('User converted to group user');
|
|
191
|
+
listUsers();
|
|
192
|
+
}
|
|
193
|
+
catch (e) {
|
|
194
|
+
console.error('Failed to convert user:', e);
|
|
195
|
+
sendUserToast('Failed to convert user', true);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
168
198
|
let domain = $derived($userStore?.email.split('@')[1]);
|
|
169
199
|
$effect(() => {
|
|
170
200
|
if ($workspaceStore) {
|
|
@@ -188,6 +218,7 @@ onDestroy(() => {
|
|
|
188
218
|
});
|
|
189
219
|
let deleteConfirmedCallback = $state(undefined);
|
|
190
220
|
let removeInstanceGroupConfirmedCallback = $state(undefined);
|
|
221
|
+
let convertConfirmedCallback = $state(undefined);
|
|
191
222
|
async function removeAllInvitesFromDomain() {
|
|
192
223
|
await Promise.all(invites
|
|
193
224
|
.filter((x) => isCloudHosted() ? x.email.endsWith('@' + (auto_invite_domain ?? '')) : true)
|
|
@@ -293,8 +324,8 @@ $effect(() => {
|
|
|
293
324
|
}}
|
|
294
325
|
>
|
|
295
326
|
{#snippet children({ item })}
|
|
296
|
-
<ToggleButton value="invite"
|
|
297
|
-
<ToggleButton value="add"
|
|
327
|
+
<ToggleButton value="invite" small label="Auto-invite" {item} />
|
|
328
|
+
<ToggleButton value="add" small label="Auto-add" {item} />
|
|
298
329
|
{/snippet}
|
|
299
330
|
</ToggleButtonGroup>
|
|
300
331
|
{/if}
|
|
@@ -394,9 +425,7 @@ $effect(() => {
|
|
|
394
425
|
{#snippet content()}
|
|
395
426
|
<div class="flex flex-col p-4 min-w-[500px]">
|
|
396
427
|
<div class="flex flex-col gap-4">
|
|
397
|
-
<span class="text-sm leading-6 font-semibold">
|
|
398
|
-
Auto-add instance groups
|
|
399
|
-
</span>
|
|
428
|
+
<span class="text-sm leading-6 font-semibold"> Auto-add instance groups </span>
|
|
400
429
|
|
|
401
430
|
<!-- Add new instance group form -->
|
|
402
431
|
{#if availableGroupItems.length > 0}
|
|
@@ -472,7 +501,7 @@ $effect(() => {
|
|
|
472
501
|
</thead>
|
|
473
502
|
<tbody>
|
|
474
503
|
{#each autoAddInstanceGroups as groupName (groupName)}
|
|
475
|
-
{@const group = instanceGroups.find(g => g.name === groupName)}
|
|
504
|
+
{@const group = instanceGroups.find((g) => g.name === groupName)}
|
|
476
505
|
<tr class="border-t border-gray-200 dark:border-gray-700">
|
|
477
506
|
<td class="py-2">
|
|
478
507
|
<div class="font-medium">{groupName}</div>
|
|
@@ -572,7 +601,8 @@ $effect(() => {
|
|
|
572
601
|
<Cell head>
|
|
573
602
|
Added via
|
|
574
603
|
<Tooltip>
|
|
575
|
-
Shows how the user was added to the workspace: manually, via domain auto-invite, or
|
|
604
|
+
Shows how the user was added to the workspace: manually, via domain auto-invite, or
|
|
605
|
+
through an instance group.
|
|
576
606
|
</Tooltip>
|
|
577
607
|
</Cell>
|
|
578
608
|
{/if}
|
|
@@ -593,14 +623,13 @@ $effect(() => {
|
|
|
593
623
|
</Head>
|
|
594
624
|
<tbody class="divide-y bg-surface">
|
|
595
625
|
{#if filteredUsers}
|
|
596
|
-
{#each sortedUsers().slice(0, nbDisplayed) as
|
|
626
|
+
{#each sortedUsers().slice(0, nbDisplayed) as user, index (user.email)}
|
|
627
|
+
{@const { email, username, is_admin, operator, disabled, added_via } = user}
|
|
597
628
|
<!-- Add separator between manual users and instance group users -->
|
|
598
629
|
{#if hasNonManualUsers && index > 0 && sortedUsers()[index - 1]?.added_via?.source !== 'instance_group' && added_via?.source === 'instance_group'}
|
|
599
630
|
<tr class="bg-surface-secondary">
|
|
600
631
|
<td colspan={hasNonManualUsers ? 8 : 7} class="px-4 py-2">
|
|
601
|
-
<div class="text-xs text-tertiary font-bold">
|
|
602
|
-
Instance group users
|
|
603
|
-
</div>
|
|
632
|
+
<div class="text-xs text-tertiary font-bold"> Instance group users </div>
|
|
604
633
|
</td>
|
|
605
634
|
</tr>
|
|
606
635
|
{/if}
|
|
@@ -731,8 +760,45 @@ $effect(() => {
|
|
|
731
760
|
>
|
|
732
761
|
Remove
|
|
733
762
|
</Button>
|
|
734
|
-
<Tooltip
|
|
763
|
+
<Tooltip
|
|
764
|
+
>Cannot remove users synced from instance groups. Either disable the user or
|
|
765
|
+
remove them from the SCIM group.</Tooltip
|
|
766
|
+
>
|
|
735
767
|
</div>
|
|
768
|
+
{:else if canConvertToGroup(user)}
|
|
769
|
+
<Button
|
|
770
|
+
color="light"
|
|
771
|
+
variant="contained"
|
|
772
|
+
btnClasses="text-blue-500"
|
|
773
|
+
size="xs"
|
|
774
|
+
spacingSize="xs2"
|
|
775
|
+
on:click={() => {
|
|
776
|
+
convertConfirmedCallback = async () => {
|
|
777
|
+
await convertUserToGroup(username)
|
|
778
|
+
}
|
|
779
|
+
}}
|
|
780
|
+
>
|
|
781
|
+
Convert
|
|
782
|
+
</Button>
|
|
783
|
+
<Button
|
|
784
|
+
color="light"
|
|
785
|
+
variant="contained"
|
|
786
|
+
btnClasses="text-red-500"
|
|
787
|
+
size="xs"
|
|
788
|
+
spacingSize="xs2"
|
|
789
|
+
on:click={() => {
|
|
790
|
+
deleteConfirmedCallback = async () => {
|
|
791
|
+
await UserService.deleteUser({
|
|
792
|
+
workspace: $workspaceStore ?? '',
|
|
793
|
+
username
|
|
794
|
+
})
|
|
795
|
+
sendUserToast('User removed')
|
|
796
|
+
listUsers()
|
|
797
|
+
}
|
|
798
|
+
}}
|
|
799
|
+
>
|
|
800
|
+
Remove
|
|
801
|
+
</Button>
|
|
736
802
|
{:else}
|
|
737
803
|
<Button
|
|
738
804
|
color="light"
|
|
@@ -918,7 +984,35 @@ $effect(() => {
|
|
|
918
984
|
}}
|
|
919
985
|
>
|
|
920
986
|
<div class="flex flex-col w-full space-y-4">
|
|
921
|
-
<span
|
|
987
|
+
<span
|
|
988
|
+
>Are you sure you want to remove this instance group from auto-add? This will not remove
|
|
989
|
+
users already added from this group.</span
|
|
990
|
+
>
|
|
922
991
|
</div>
|
|
923
992
|
</ConfirmationModal>
|
|
924
993
|
</div>
|
|
994
|
+
|
|
995
|
+
<ConfirmationModal
|
|
996
|
+
open={Boolean(convertConfirmedCallback)}
|
|
997
|
+
title="Convert to Group User"
|
|
998
|
+
confirmationText="Convert"
|
|
999
|
+
on:canceled={() => {
|
|
1000
|
+
convertConfirmedCallback = undefined
|
|
1001
|
+
}}
|
|
1002
|
+
on:confirmed={() => {
|
|
1003
|
+
if (convertConfirmedCallback) {
|
|
1004
|
+
convertConfirmedCallback()
|
|
1005
|
+
}
|
|
1006
|
+
convertConfirmedCallback = undefined
|
|
1007
|
+
}}
|
|
1008
|
+
>
|
|
1009
|
+
<div class="flex flex-col w-full space-y-4">
|
|
1010
|
+
<span>Are you sure you want to convert this user to a group user?</span>
|
|
1011
|
+
<span class="text-sm text-secondary">This will:</span>
|
|
1012
|
+
<ul class="text-sm text-secondary list-disc ml-4 space-y-1">
|
|
1013
|
+
<li>Change the user's role based on their instance group configuration</li>
|
|
1014
|
+
<li>Make their role managed through the instance group settings</li>
|
|
1015
|
+
<li>Prevent manual role changes for this user</li>
|
|
1016
|
+
</ul>
|
|
1017
|
+
</div>
|
|
1018
|
+
</ConfirmationModal>
|
|
@@ -7,6 +7,7 @@ import { AlertCircle, CheckCircle2 } from 'lucide-svelte';
|
|
|
7
7
|
import { devopsRole } from '../../stores';
|
|
8
8
|
import List from '../common/layout/List.svelte';
|
|
9
9
|
import { Skeleton } from '../common';
|
|
10
|
+
import Linkify from './Linkify.svelte';
|
|
10
11
|
export let alerts;
|
|
11
12
|
export let hideAcknowledged = false;
|
|
12
13
|
export let goToNextPage;
|
|
@@ -107,7 +108,7 @@ $: availableHeight = (contentHeight - headerHeight - pageSize - 1) / pageSize;
|
|
|
107
108
|
</Cell>
|
|
108
109
|
|
|
109
110
|
<Cell wrap>
|
|
110
|
-
<div class="flex-shrink min-w-0 break-words"
|
|
111
|
+
<div class="flex-shrink min-w-0 break-words"><Linkify text={message} /></div>
|
|
111
112
|
</Cell>
|
|
112
113
|
<!-- Flexible width -->
|
|
113
114
|
<Cell wrap>{formatDate(created_at)}</Cell>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<script lang="ts">"use strict";
|
|
2
|
+
let { text } = $props();
|
|
3
|
+
// Function to convert text with URLs to HTML
|
|
4
|
+
function linkifyText(text) {
|
|
5
|
+
// Regex to match URLs starting with http/https and ending with )
|
|
6
|
+
const urlRegex = /\(((https?:\/\/[^\s)]+))\)/g;
|
|
7
|
+
// Replace matched patterns with anchor tags
|
|
8
|
+
return text.replace(urlRegex, '(<a href="$1" target="_blank" rel="noopener noreferrer">$1</a>)');
|
|
9
|
+
}
|
|
10
|
+
let processedText = $derived(linkifyText(text));
|
|
11
|
+
</script>
|
|
12
|
+
|
|
13
|
+
<!-- Use @html to render the HTML -->
|
|
14
|
+
{@html processedText}
|
|
@@ -5,7 +5,7 @@ import { base } from '$app/paths';
|
|
|
5
5
|
import { triggerableByAI } from '../../actions/triggerableByAI.svelte';
|
|
6
6
|
import { goto } from '$app/navigation';
|
|
7
7
|
import { twMerge } from 'tailwind-merge';
|
|
8
|
-
let { aiId = undefined, aiDescription = undefined, label, href, icon = undefined, isCollapsed, disabled = false, lightMode = false, item = undefined, class: classNames = '' } = $props();
|
|
8
|
+
let { aiId = undefined, aiDescription = undefined, label, href, icon = undefined, isCollapsed, disabled = false, lightMode = false, item = undefined, class: classNames = '', onclick = undefined } = $props();
|
|
9
9
|
let isSelected = $state(false);
|
|
10
10
|
navigating.subscribe(() => {
|
|
11
11
|
if (href === `${base}/`) {
|
|
@@ -28,6 +28,7 @@ navigating.subscribe(() => {
|
|
|
28
28
|
goto(href)
|
|
29
29
|
}
|
|
30
30
|
}}
|
|
31
|
+
{onclick}
|
|
31
32
|
class={twMerge(
|
|
32
33
|
'group flex items-center px-2 py-2 text-sm font-light rounded-md h-8 gap-3',
|
|
33
34
|
isSelected
|
|
@@ -10,6 +10,7 @@ interface Props {
|
|
|
10
10
|
lightMode?: boolean;
|
|
11
11
|
item?: MenubarMenuElements['item'] | undefined;
|
|
12
12
|
class?: string;
|
|
13
|
+
onclick?: (ev: MouseEvent) => any;
|
|
13
14
|
}
|
|
14
15
|
declare const MenuLink: import("svelte").Component<Props, {}, "">;
|
|
15
16
|
type MenuLink = ReturnType<typeof MenuLink>;
|
|
@@ -113,7 +113,12 @@ let mainMenuLinks = $derived([
|
|
|
113
113
|
href: `${base}/runs`,
|
|
114
114
|
icon: Play,
|
|
115
115
|
aiId: 'sidebar-menu-link-runs',
|
|
116
|
-
aiDescription: 'Button to navigate to runs'
|
|
116
|
+
aiDescription: 'Button to navigate to runs',
|
|
117
|
+
onclick: () => {
|
|
118
|
+
setTimeout(() => {
|
|
119
|
+
window.dispatchEvent(new Event('popstate'));
|
|
120
|
+
}, 100);
|
|
121
|
+
}
|
|
117
122
|
},
|
|
118
123
|
{
|
|
119
124
|
label: 'Variables',
|
|
@@ -295,7 +300,7 @@ let secondaryMenuLinks = $derived([
|
|
|
295
300
|
}
|
|
296
301
|
]
|
|
297
302
|
: []),
|
|
298
|
-
...($workspaceStore?.startsWith(
|
|
303
|
+
...($workspaceStore?.startsWith('wm-fork')
|
|
299
304
|
? [
|
|
300
305
|
{
|
|
301
306
|
label: 'Delete Forked Workspace',
|
|
@@ -306,7 +311,7 @@ let secondaryMenuLinks = $derived([
|
|
|
306
311
|
faIcon: undefined
|
|
307
312
|
}
|
|
308
313
|
]
|
|
309
|
-
: [])
|
|
314
|
+
: [])
|
|
310
315
|
],
|
|
311
316
|
disabled: $userStore?.operator
|
|
312
317
|
},
|
|
@@ -508,14 +513,9 @@ let secondaryMenuLinks = $derived([
|
|
|
508
513
|
{/snippet}
|
|
509
514
|
</Menu>
|
|
510
515
|
{:else}
|
|
511
|
-
<MenuSingleItem
|
|
512
|
-
{#snippet
|
|
513
|
-
<
|
|
514
|
-
<MenuButton class="!text-2xs" {...menuLink} {isCollapsed} {trigger} />
|
|
515
|
-
</div>
|
|
516
|
-
{/snippet}
|
|
517
|
-
{#snippet children({ item })}
|
|
518
|
-
<MenuLink class="!text-2xs" {...menuLink} {isCollapsed} {item} />
|
|
516
|
+
<MenuSingleItem>
|
|
517
|
+
{#snippet children({})}
|
|
518
|
+
<MenuLink class="!text-2xs" {...menuLink} {isCollapsed} />
|
|
519
519
|
{/snippet}
|
|
520
520
|
</MenuSingleItem>
|
|
521
521
|
{/if}
|
|
@@ -601,20 +601,20 @@ let secondaryMenuLinks = $derived([
|
|
|
601
601
|
</div>
|
|
602
602
|
</ConfirmationModal>
|
|
603
603
|
|
|
604
|
-
{#if $workspaceStore?.startsWith(
|
|
605
|
-
<ConfirmationModal
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
>
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
</ConfirmationModal>
|
|
604
|
+
{#if $workspaceStore?.startsWith('wm-fork-')}
|
|
605
|
+
<ConfirmationModal
|
|
606
|
+
open={deleteWorkspaceForkModal}
|
|
607
|
+
title="Delete forked workspace"
|
|
608
|
+
confirmationText="Remove"
|
|
609
|
+
on:canceled={() => {
|
|
610
|
+
deleteWorkspaceForkModal = false
|
|
611
|
+
}}
|
|
612
|
+
on:confirmed={() => {
|
|
613
|
+
deleteFork()
|
|
614
|
+
}}
|
|
615
|
+
>
|
|
616
|
+
<div class="flex flex-col w-full space-y-4">
|
|
617
|
+
<span>Are you sure you want to delete this workspace fork? (deleting {$workspaceStore})</span>
|
|
618
|
+
</div>
|
|
619
|
+
</ConfirmationModal>
|
|
620
620
|
{/if}
|
|
@@ -120,12 +120,17 @@ const groupedWorkspaces = $derived(() => {
|
|
|
120
120
|
<MenuItem
|
|
121
121
|
class={twMerge(
|
|
122
122
|
'text-xs min-w-0 w-full overflow-hidden flex flex-col py-1.5',
|
|
123
|
+
workspace.disabled && 'opacity-50 cursor-not-allowed',
|
|
123
124
|
$workspaceStore === workspace.id
|
|
124
125
|
? 'cursor-default bg-surface-selected'
|
|
125
|
-
:
|
|
126
|
+
: workspace.disabled
|
|
127
|
+
? ''
|
|
128
|
+
: 'cursor-pointer hover:bg-surface-hover data-[highlighted]:bg-surface-hover'
|
|
126
129
|
)}
|
|
127
130
|
onClick={async () => {
|
|
128
|
-
|
|
131
|
+
if (!workspace.disabled) {
|
|
132
|
+
await toggleSwitchWorkspace(workspace.id)
|
|
133
|
+
}
|
|
129
134
|
}}
|
|
130
135
|
{item}
|
|
131
136
|
>
|
|
@@ -146,7 +151,7 @@ const groupedWorkspaces = $derived(() => {
|
|
|
146
151
|
isForked ? 'text-secondary' : 'text-primary'
|
|
147
152
|
)}
|
|
148
153
|
>
|
|
149
|
-
{workspace.name}
|
|
154
|
+
{workspace.name}{workspace.disabled ? ' (user disabled)' : ''}
|
|
150
155
|
</div>
|
|
151
156
|
<div
|
|
152
157
|
class={twMerge(
|
|
@@ -1,22 +1,15 @@
|
|
|
1
1
|
<script lang="ts">import { getContext } from 'svelte';
|
|
2
2
|
import { twMerge } from 'tailwind-merge';
|
|
3
|
-
|
|
4
|
-
export let last = false;
|
|
5
|
-
export let numeric = false;
|
|
6
|
-
export let head = false;
|
|
7
|
-
export let shouldStopPropagation = false;
|
|
8
|
-
export let selected = false;
|
|
9
|
-
export let sticky = false;
|
|
10
|
-
export let wrap = false;
|
|
3
|
+
let { first = false, last = false, numeric = false, head = false, shouldStopPropagation = false, selected = false, sticky = false, wrap = false, children, ...rest } = $props();
|
|
11
4
|
let Tag = head ? 'th' : 'td';
|
|
12
5
|
const { size } = getContext('datatable');
|
|
13
6
|
</script>
|
|
14
7
|
|
|
15
|
-
<!-- svelte-ignore
|
|
8
|
+
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
16
9
|
<svelte:element
|
|
17
10
|
this={Tag}
|
|
18
|
-
{
|
|
19
|
-
|
|
11
|
+
{...rest}
|
|
12
|
+
onclick={(e) => {
|
|
20
13
|
if (shouldStopPropagation) e.stopPropagation()
|
|
21
14
|
}}
|
|
22
15
|
class={twMerge(
|
|
@@ -36,14 +29,14 @@ const { size } = getContext('datatable');
|
|
|
36
29
|
size === 'xs' ? 'px-1 py-1.5' : '',
|
|
37
30
|
selected ? 'bg-blue-50 dark:bg-blue-900/50' : '',
|
|
38
31
|
'transition-all',
|
|
39
|
-
|
|
32
|
+
rest.class
|
|
40
33
|
)}
|
|
41
34
|
>
|
|
42
35
|
{#if sticky}
|
|
43
36
|
<div class={twMerge(first ? 'border-r' : ' border-l ')}>
|
|
44
|
-
|
|
37
|
+
{@render children?.()}
|
|
45
38
|
</div>
|
|
46
39
|
{:else}
|
|
47
|
-
|
|
40
|
+
{@render children?.()}
|
|
48
41
|
{/if}
|
|
49
42
|
</svelte:element>
|
|
@@ -1,37 +1,15 @@
|
|
|
1
|
-
interface
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
z_$$bindings?: Bindings;
|
|
1
|
+
interface Props {
|
|
2
|
+
first?: boolean;
|
|
3
|
+
last?: boolean;
|
|
4
|
+
numeric?: boolean;
|
|
5
|
+
head?: boolean;
|
|
6
|
+
shouldStopPropagation?: boolean;
|
|
7
|
+
selected?: boolean;
|
|
8
|
+
sticky?: boolean;
|
|
9
|
+
wrap?: boolean;
|
|
10
|
+
children?: import('svelte').Snippet;
|
|
11
|
+
[key: string]: any;
|
|
13
12
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
} ? Props extends Record<string, never> ? any : {
|
|
17
|
-
children?: any;
|
|
18
|
-
} : {});
|
|
19
|
-
declare const Cell: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
|
|
20
|
-
[x: string]: any;
|
|
21
|
-
first?: boolean | undefined;
|
|
22
|
-
last?: boolean | undefined;
|
|
23
|
-
numeric?: boolean | undefined;
|
|
24
|
-
head?: boolean | undefined;
|
|
25
|
-
shouldStopPropagation?: boolean | undefined;
|
|
26
|
-
selected?: boolean | undefined;
|
|
27
|
-
sticky?: boolean | undefined;
|
|
28
|
-
wrap?: boolean | undefined;
|
|
29
|
-
}, {
|
|
30
|
-
default: {};
|
|
31
|
-
}>, {
|
|
32
|
-
[evt: string]: CustomEvent<any>;
|
|
33
|
-
}, {
|
|
34
|
-
default: {};
|
|
35
|
-
}, {}, string>;
|
|
36
|
-
type Cell = InstanceType<typeof Cell>;
|
|
13
|
+
declare const Cell: import("svelte").Component<Props, {}, "">;
|
|
14
|
+
type Cell = ReturnType<typeof Cell>;
|
|
37
15
|
export default Cell;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<script module lang="ts">export function inputBorderClass({ error, forceFocus } = {}) {
|
|
2
|
+
return twMerge('transition-colors border', forceFocus
|
|
3
|
+
? '!border-nord-900 dark:!border-nord-900'
|
|
4
|
+
: '!border-nord-400 dark:!border-nord-300 hover:!border-nord-900/50 hover:dark:!border-nord-900/50 focus:!border-nord-900 dark:focus:!border-nord-900', error
|
|
5
|
+
? '!border-red-300 focus:!border-red-400 hover:!border-red-500 dark:!border-red-400/40 dark:hover:!border-red-600/40'
|
|
6
|
+
: '');
|
|
7
|
+
}
|
|
8
|
+
export const inputBaseClass = 'rounded-md focus:ring-0 no-default-style text-sm text-tertiary dark:text-secondary !bg-surface-secondary disabled:!bg-surface-disabled disabled:!border-none disabled:!text-hint disabled:cursor-not-allowed shadow-none py-2 px-3 placeholder-hint';
|
|
9
|
+
</script>
|
|
10
|
+
|
|
11
|
+
<script lang="ts">import { twMerge } from 'tailwind-merge';
|
|
12
|
+
export function focus() {
|
|
13
|
+
inputEl?.focus();
|
|
14
|
+
}
|
|
15
|
+
let inputEl = $state();
|
|
16
|
+
let { inputProps, value = $bindable(), class: className = '', error } = $props();
|
|
17
|
+
</script>
|
|
18
|
+
|
|
19
|
+
<input
|
|
20
|
+
{...inputProps}
|
|
21
|
+
class={twMerge(
|
|
22
|
+
inputBaseClass,
|
|
23
|
+
'w-full',
|
|
24
|
+
'[appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none',
|
|
25
|
+
inputBorderClass({ error: !!error }),
|
|
26
|
+
className
|
|
27
|
+
)}
|
|
28
|
+
bind:this={inputEl}
|
|
29
|
+
bind:value
|
|
30
|
+
/>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare function inputBorderClass({ error, forceFocus }?: {
|
|
2
|
+
error?: boolean;
|
|
3
|
+
forceFocus?: boolean;
|
|
4
|
+
}): string;
|
|
5
|
+
export declare const inputBaseClass = "rounded-md focus:ring-0 no-default-style text-sm text-tertiary dark:text-secondary !bg-surface-secondary disabled:!bg-surface-disabled disabled:!border-none disabled:!text-hint disabled:cursor-not-allowed shadow-none py-2 px-3 placeholder-hint";
|
|
6
|
+
import type { HTMLInputAttributes } from 'svelte/elements';
|
|
7
|
+
type Props = {
|
|
8
|
+
inputProps?: HTMLInputAttributes;
|
|
9
|
+
value?: string;
|
|
10
|
+
class?: string;
|
|
11
|
+
error?: string;
|
|
12
|
+
};
|
|
13
|
+
declare const TextInput: import("svelte").Component<Props, {
|
|
14
|
+
focus: () => void;
|
|
15
|
+
}, "value">;
|
|
16
|
+
type TextInput = ReturnType<typeof TextInput>;
|
|
17
|
+
export default TextInput;
|
|
@@ -15,6 +15,7 @@ import { triggerTypeToCaptureKind, CLOUD_DISABLED_TRIGGER_TYPES } from './utils'
|
|
|
15
15
|
import { isCloudHosted } from '../../cloud';
|
|
16
16
|
import { ScheduleService, WebsocketTriggerService, PostgresTriggerService, KafkaTriggerService, NatsTriggerService, MqttTriggerService, HttpTriggerService, GcpTriggerService, SqsTriggerService, EmailTriggerService } from '../../gen';
|
|
17
17
|
import { sendUserToast } from '../../toast';
|
|
18
|
+
import Alert from '../common/alert/Alert.svelte';
|
|
18
19
|
let { noEditor, newItem = false, currentPath, fakeInitialPath = '', hash = undefined, args = {}, initialPath, isFlow, canHavePreprocessor = false, hasPreprocessor = false, isDeployed = false, schema = undefined, noCapture = false, isEditor = true, onDeployTrigger } = $props();
|
|
19
20
|
let config = $state({});
|
|
20
21
|
let width = $state(0);
|
|
@@ -24,6 +25,8 @@ let renderCount = $state(0);
|
|
|
24
25
|
let loading = $state(false);
|
|
25
26
|
const useVerticalTriggerBar = $derived(width < 1000);
|
|
26
27
|
const { triggersState, triggersCount } = getContext('TriggerContext');
|
|
28
|
+
const flowEditorContext = getContext('FlowEditorContext');
|
|
29
|
+
const chatInputEnabled = $derived(Boolean(flowEditorContext?.flowStore?.val?.value?.chat_input_enabled));
|
|
27
30
|
const dispatch = createEventDispatcher();
|
|
28
31
|
onDestroy(() => {
|
|
29
32
|
dispatch('exitTriggers');
|
|
@@ -143,6 +146,13 @@ const cloudDisabled = $derived(CLOUD_DISABLED_TRIGGER_TYPES.includes(triggersSta
|
|
|
143
146
|
</script>
|
|
144
147
|
|
|
145
148
|
<div bind:clientWidth={width} class="h-full w-full">
|
|
149
|
+
{#if chatInputEnabled}
|
|
150
|
+
<div class="p-2 pb-0">
|
|
151
|
+
<Alert type="warning" title="Chat Input Mode Enabled" size="xs">
|
|
152
|
+
This flow will only accept <span class="font-mono text-xs bg-surface-secondary px-1 rounded">user_message</span> as input parameter.
|
|
153
|
+
</Alert>
|
|
154
|
+
</div>
|
|
155
|
+
{/if}
|
|
146
156
|
<FlowCard {noEditor} noHeader>
|
|
147
157
|
<Splitpanes horizontal>
|
|
148
158
|
<Pane>
|
|
@@ -241,7 +251,7 @@ const cloudDisabled = $derived(CLOUD_DISABLED_TRIGGER_TYPES.includes(triggersSta
|
|
|
241
251
|
{/key}
|
|
242
252
|
{:else}
|
|
243
253
|
<span class="text-sm text-tertiary text-center mx-auto mt-2"
|
|
244
|
-
>{`Select a trigger from the ${useVerticalTriggerBar ? 'left toolbar' : 'table'} or
|
|
254
|
+
>{`Select a trigger from the ${useVerticalTriggerBar ? 'left toolbar' : 'table'} or create a new one`}</span
|
|
245
255
|
>
|
|
246
256
|
{/if}
|
|
247
257
|
</div>
|
|
@@ -57,7 +57,7 @@ async function loadAllSubscriptionFromGooglePubSubTopic() {
|
|
|
57
57
|
loadingSubscription = false;
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
|
-
let { can_write = false, headless = false, isValid = $bindable(false), gcp_resource_path = $bindable(''), subscription_id = $bindable(''), topic_id = $bindable(''), delivery_type = $bindable('pull'), delivery_config = $bindable(), subscription_mode = $bindable('create_update'), base_endpoint = $bindable(getBaseUrl()), auto_acknowledge_msg = $bindable(true), path = '', showTestingBadge = false, cloud_subscription_id = $bindable(''), create_update_subscription_id = $bindable('') } = $props();
|
|
60
|
+
let { can_write = false, headless = false, isValid = $bindable(false), gcp_resource_path = $bindable(''), subscription_id = $bindable(''), topic_id = $bindable(''), delivery_type = $bindable('pull'), delivery_config = $bindable(), subscription_mode = $bindable('create_update'), base_endpoint = $bindable(getBaseUrl()), auto_acknowledge_msg = $bindable(true), ack_deadline = $bindable(), path = '', showTestingBadge = false, cloud_subscription_id = $bindable(''), create_update_subscription_id = $bindable('') } = $props();
|
|
61
61
|
if (gcp_resource_path) {
|
|
62
62
|
loadAllPubSubTopicsFromProject();
|
|
63
63
|
}
|
|
@@ -15,7 +15,8 @@ interface Props {
|
|
|
15
15
|
cloud_subscription_id?: string;
|
|
16
16
|
create_update_subscription_id?: string;
|
|
17
17
|
auto_acknowledge_msg: boolean;
|
|
18
|
+
ack_deadline?: number;
|
|
18
19
|
}
|
|
19
|
-
declare const GcpTriggerEditorConfigSection: import("svelte").Component<Props, {}, "base_endpoint" | "gcp_resource_path" | "topic_id" | "subscription_id" | "delivery_type" | "subscription_mode" | "delivery_config" | "auto_acknowledge_msg" | "isValid" | "cloud_subscription_id" | "create_update_subscription_id">;
|
|
20
|
+
declare const GcpTriggerEditorConfigSection: import("svelte").Component<Props, {}, "base_endpoint" | "gcp_resource_path" | "topic_id" | "subscription_id" | "delivery_type" | "subscription_mode" | "delivery_config" | "auto_acknowledge_msg" | "ack_deadline" | "isValid" | "cloud_subscription_id" | "create_update_subscription_id">;
|
|
20
21
|
type GcpTriggerEditorConfigSection = ReturnType<typeof GcpTriggerEditorConfigSection>;
|
|
21
22
|
export default GcpTriggerEditorConfigSection;
|