windmill-components 1.613.4 → 1.623.1
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/assets/tokens/tokens.json +1 -11
- package/package/ata/apis.js +5 -78
- package/package/components/AddUser.svelte +1 -1
- package/package/components/CenteredModal.svelte +24 -32
- package/package/components/CenteredModal.svelte.d.ts +27 -7
- package/package/components/CenteredPage.svelte +2 -5
- package/package/components/CenteredPage.svelte.d.ts +0 -2
- package/package/components/ConcurrentJobsChart.svelte +2 -3
- package/package/components/ConcurrentJobsChart.svelte.d.ts +2 -2
- package/package/components/CustomPopover.svelte +23 -20
- package/package/components/CustomPopover.svelte.d.ts +39 -14
- package/package/components/DBManager.svelte +17 -105
- package/package/components/DBManager.svelte.d.ts +1 -2
- package/package/components/DBManagerContent.svelte +3 -4
- package/package/components/DBManagerContent.svelte.d.ts +1 -1
- package/package/components/DBTableEditor.svelte +171 -210
- package/package/components/DBTableEditor.svelte.d.ts +3 -22
- package/package/components/Description.svelte +2 -3
- package/package/components/Dev.svelte +2 -36
- package/package/components/DiffDrawer.svelte +29 -8
- package/package/components/DiffEditor.svelte +2 -32
- package/package/components/DisplayResult.svelte +24 -32
- package/package/components/Editor.svelte +16 -70
- package/package/components/Editor.svelte.d.ts +0 -3
- package/package/components/EditorBar.svelte +1 -1
- package/package/components/FakeMonacoPlaceHolder.svelte +1 -1
- package/package/components/FlowBuilder.svelte +11 -17
- package/package/components/FlowPreviewContent.svelte +2 -3
- package/package/components/FlowPreviewResult.svelte +4 -0
- package/package/components/FlowRestartButton.svelte +3 -2
- package/package/components/FlowRestartButton.svelte.d.ts +0 -3
- package/package/components/FlowStatusViewerInner.svelte +33 -50
- package/package/components/FlowStatusViewerInner.svelte.d.ts +1 -1
- package/package/components/FlowStatusWaitingForEvents.svelte +23 -27
- package/package/components/FlowStatusWaitingForEvents.svelte.d.ts +18 -4
- package/package/components/FlowViewer.svelte +2 -103
- package/package/components/FlowViewer.svelte.d.ts +3 -9
- package/package/components/ForkWorkspaceBanner.svelte +13 -16
- package/package/components/GraphqlSchemaViewer.svelte +1 -8
- package/package/components/HistoricInputs.svelte +27 -25
- package/package/components/HistoricInputs.svelte.d.ts +2 -2
- package/package/components/InstanceSetting.svelte +0 -38
- package/package/components/InviteUser.svelte +42 -16
- package/package/components/InviteUser.svelte.d.ts +18 -4
- package/package/components/JsonInputs.svelte +8 -6
- package/package/components/JsonInputs.svelte.d.ts +8 -7
- package/package/components/LogViewer.svelte +33 -91
- package/package/components/Login.svelte +0 -21
- package/package/components/ManualPopover.svelte +6 -5
- package/package/components/ManualPopover.svelte.d.ts +35 -9
- package/package/components/MemoryFootprintViewer.svelte +6 -2
- package/package/components/ModulePreview.svelte +21 -23
- package/package/components/ModulePreview.svelte.d.ts +0 -1
- package/package/components/Path.svelte +2 -2
- package/package/components/Path.svelte.d.ts +1 -1
- package/package/components/ResourcePicker.svelte +0 -3
- package/package/components/ResourcePicker.svelte.d.ts +0 -1
- package/package/components/RunButton.svelte +15 -5
- package/package/components/RunButton.svelte.d.ts +19 -7
- package/package/components/RunChart.svelte +4 -8
- package/package/components/RunChart.svelte.d.ts +2 -2
- package/package/components/RunFormAdvancedPopup.svelte +1 -1
- package/package/components/RunsPage.svelte +539 -170
- package/package/components/RunsPage.svelte.d.ts +5 -5
- package/package/components/S3FilePicker.svelte +11 -7
- package/package/components/S3FilePickerInner.svelte +3 -2
- package/package/components/S3FilePickerInner.svelte.d.ts +2 -2
- package/package/components/SavedInputs.svelte +416 -0
- package/package/components/{tutorials/workspace/WorkspaceOnboardingOperatorTutorial.svelte.d.ts → SavedInputs.svelte.d.ts} +11 -8
- package/package/components/SchemaForm.svelte +19 -26
- package/package/components/SchemaFormWithArgPicker.svelte +3 -4
- package/package/components/ScriptBuilder.svelte +1 -1
- package/package/components/ScriptEditor.svelte +101 -575
- package/package/components/Section.svelte +1 -3
- package/package/components/ServiceLogsInner.svelte +4 -4
- package/package/components/SimpleEditor.svelte +2 -46
- package/package/components/SuperadminSettingsInner.svelte +1 -1
- package/package/components/TemplateEditor.svelte +29 -54
- package/package/components/TemplateEditor.svelte.d.ts +102 -13
- package/package/components/UserSettings.svelte +1 -1
- package/package/components/WorkerTagPicker.svelte +1 -1
- package/package/components/WorkerTagSelect.svelte +2 -5
- package/package/components/WorkspaceTutorials.svelte +0 -5
- package/package/components/apps/components/buttons/AppButton.svelte +6 -21
- package/package/components/apps/components/buttons/AppForm.svelte +1 -2
- package/package/components/apps/components/buttons/AppFormButton.svelte +1 -2
- package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +4 -0
- package/package/components/apps/components/display/dbtable/metadata.js +30 -69
- package/package/components/apps/components/display/dbtable/queries/createTable.d.ts +24 -2
- package/package/components/apps/components/display/dbtable/queries/createTable.js +25 -11
- package/package/components/apps/components/display/dbtable/queries/select.d.ts +0 -2
- package/package/components/apps/components/display/dbtable/queries/select.js +6 -37
- package/package/components/apps/components/display/dbtable/utils.d.ts +1 -10
- package/package/components/apps/components/display/dbtable/utils.js +20 -52
- package/package/components/apps/components/helpers/HiddenComponent.svelte +1 -1
- package/package/components/apps/components/helpers/InputValue.svelte +1 -1
- package/package/components/apps/components/helpers/ResolveConfig.svelte +1 -1
- package/package/components/apps/components/helpers/RunnableComponent.svelte +2 -3
- package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +1 -1
- package/package/components/apps/components/helpers/RunnableWrapper.svelte +2 -2
- package/package/components/apps/editor/AppEditorHeader.svelte +1 -8
- package/package/components/apps/editor/AppEditorHeaderDeploy.svelte +29 -32
- package/package/components/apps/editor/AppEditorHeaderDeploy.svelte.d.ts +2 -2
- package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte +4 -4
- package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte.d.ts +3 -3
- package/package/components/apps/editor/PublicApp.svelte +30 -49
- package/package/components/apps/editor/PublicApp.svelte.d.ts +0 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +7 -77
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +2 -2
- package/package/components/apps/editor/inlineScriptsPanel/utils.d.ts +2 -2
- package/package/components/apps/editor/inlineScriptsPanel/utils.js +1 -10
- package/package/components/apps/inputType.d.ts +1 -6
- package/package/components/auditLogs/AuditLogsFilters.svelte +17 -9
- package/package/components/auditLogs/AuditLogsFilters.svelte.d.ts +1 -1
- package/package/components/common/button/model.js +1 -1
- package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +1 -1
- package/package/components/common/languageIcons/TypeScript.svelte +3 -5
- package/package/components/common/languageIcons/TypeScript.svelte.d.ts +0 -1
- package/package/components/common/modal/Modal.svelte +3 -3
- package/package/components/copilot/autocomplete/Autocompletor.js +2 -3
- package/package/components/copilot/chat/AIButtonStyle.d.ts +1 -1
- package/package/components/copilot/chat/AIButtonStyle.js +1 -2
- package/package/components/copilot/chat/AIChat.svelte +1 -3
- package/package/components/copilot/chat/AIChatDisplay.svelte +4 -89
- package/package/components/copilot/chat/AIChatInput.svelte +0 -275
- package/package/components/copilot/chat/AIChatManager.svelte.js +1 -107
- package/package/components/copilot/chat/AiChatLayout.svelte +30 -15
- package/package/components/copilot/chat/ContextElementBadge.svelte +0 -44
- package/package/components/copilot/chat/DatatableCreationPolicy.svelte +33 -32
- package/package/components/copilot/chat/ProviderModelSelector.svelte +1 -1
- package/package/components/copilot/chat/__tests__/app/appEvalHelpers.js +0 -3
- package/package/components/copilot/chat/__tests__/flow/flowEvalHelpers.js +0 -4
- package/package/components/copilot/chat/app/core.d.ts +15 -56
- package/package/components/copilot/chat/app/core.js +22 -141
- package/package/components/copilot/chat/context.d.ts +2 -59
- package/package/components/copilot/chat/context.js +2 -6
- package/package/components/copilot/chat/flow/FlowAIChat.svelte +0 -22
- package/package/components/copilot/chat/flow/core.d.ts +1 -3
- package/package/components/copilot/chat/flow/core.js +2 -29
- package/package/components/copilot/chat/flow/openFlow.json +1 -1
- package/package/components/copilot/chat/flow/openFlowZod.d.ts +0 -1
- package/package/components/copilot/chat/flow/openFlowZod.js +2 -14
- package/package/components/copilot/chat/script/core.d.ts +1 -4
- package/package/components/copilot/chat/script/core.js +2 -38
- package/package/components/copilot/chat/shared.d.ts +0 -10
- package/package/components/copilot/chat/shared.js +0 -24
- package/package/components/copilot/lib.d.ts +1 -1
- package/package/components/custom_ui.d.ts +0 -2
- package/package/components/dbOps.d.ts +4 -18
- package/package/components/dbOps.js +3 -25
- package/package/components/flows/CreateActionsApp.svelte +4 -6
- package/package/components/flows/DebounceLimit.svelte.d.ts +1 -1
- package/package/components/flows/FlowHistoryInner.svelte +4 -15
- package/package/components/flows/content/AgentToolWrapper.svelte +1 -1
- package/package/components/flows/content/FlowInput.svelte +37 -211
- package/package/components/flows/content/FlowModuleComponent.svelte +67 -553
- package/package/components/flows/content/FlowModuleEarlyStop.svelte +10 -8
- package/package/components/flows/content/FlowModuleHeader.svelte +4 -7
- package/package/components/flows/content/FlowModuleWorkerTagSelect.svelte +1 -1
- package/package/components/flows/content/McpToolEditor.svelte +37 -50
- package/package/components/flows/content/McpToolEditor.svelte.d.ts +1 -0
- package/package/components/flows/conversations/FlowChat.svelte +2 -16
- package/package/components/flows/conversations/FlowChat.svelte.d.ts +1 -2
- package/package/components/flows/conversations/FlowChatInterface.svelte +6 -103
- package/package/components/flows/conversations/FlowChatInterface.svelte.d.ts +0 -2
- package/package/components/flows/conversations/FlowChatManager.svelte.js +21 -53
- package/package/components/flows/header/FlowImportExportMenu.svelte +1 -1
- package/package/components/flows/propPicker/PropPickerWrapper.svelte +1 -3
- package/package/components/flows/types.d.ts +0 -2
- package/package/components/git_sync/GitSyncRepositoryCard.svelte +8 -16
- package/package/components/home/ItemsList.svelte +5 -5
- package/package/components/home/TutorialBanner.svelte +18 -34
- package/package/components/icons/CssIcon.svelte +0 -20
- package/package/components/icons/CssIcon.svelte.d.ts +25 -7
- package/package/components/icons/JavaScriptIcon.svelte +2 -10
- package/package/components/icons/JavaScriptIcon.svelte.d.ts +0 -1
- package/package/components/icons/JsonIcon.svelte +2 -8
- package/package/components/icons/JsonIcon.svelte.d.ts +0 -1
- package/package/components/icons/ReactIcon.svelte +2 -10
- package/package/components/icons/ReactIcon.svelte.d.ts +0 -1
- package/package/components/icons/SvelteIcon.svelte +2 -10
- package/package/components/icons/SvelteIcon.svelte.d.ts +0 -1
- package/package/components/icons/VueIcon.svelte +2 -10
- package/package/components/icons/VueIcon.svelte.d.ts +0 -1
- package/package/components/instanceSettings.d.ts +1 -2
- package/package/components/instanceSettings.js +1 -32
- package/package/components/jobs/JobPreview.svelte +39 -46
- package/package/components/jobs/JobPreview.svelte.d.ts +0 -1
- package/package/components/monacoLanguagesOptions.js +15 -16
- package/package/components/propertyPicker/PropPicker.svelte +2 -16
- package/package/components/propertyPicker/PropPicker.svelte.d.ts +0 -2
- package/package/components/raw_apps/DefaultDatabaseSelector.svelte +5 -9
- package/package/components/raw_apps/FileEditorIcon.svelte +7 -12
- package/package/components/raw_apps/FileEditorIcon.svelte.d.ts +0 -2
- package/package/components/raw_apps/FileTreeNode.svelte +83 -119
- package/package/components/raw_apps/RawAppBackgroundRunner.svelte +8 -88
- package/package/components/raw_apps/RawAppDataTableList.svelte +9 -12
- package/package/components/raw_apps/RawAppEditor.svelte +68 -218
- package/package/components/raw_apps/RawAppEditorHeader.svelte +16 -33
- package/package/components/raw_apps/RawAppHistoryList.svelte +80 -264
- package/package/components/raw_apps/RawAppHistoryList.svelte.d.ts +0 -1
- package/package/components/raw_apps/RawAppHistoryManager.svelte.d.ts +1 -15
- package/package/components/raw_apps/RawAppHistoryManager.svelte.js +12 -46
- package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +47 -549
- package/package/components/raw_apps/RawAppInlineScriptEditor.svelte.d.ts +5 -31
- package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte +18 -25
- package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte.d.ts +0 -1
- package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +10 -141
- package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte.d.ts +0 -8
- package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte +1 -2
- package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte.d.ts +1 -9
- package/package/components/raw_apps/RawAppInputsSpecEditor.svelte +3 -47
- package/package/components/raw_apps/RawAppInputsSpecEditor.svelte.d.ts +2 -2
- package/package/components/raw_apps/RawAppModules.svelte +7 -13
- package/package/components/raw_apps/RawAppPreview.svelte +6 -48
- package/package/components/raw_apps/RawAppSidebar.svelte +125 -194
- package/package/components/raw_apps/RawAppSidebar.svelte.d.ts +0 -1
- package/package/components/raw_apps/utils.d.ts +1 -1
- package/package/components/raw_apps/utils.js +18 -76
- package/package/components/runs/JobsLoader.svelte +468 -0
- package/package/components/runs/JobsLoader.svelte.d.ts +49 -0
- package/package/components/runs/ManuelDatePicker.svelte +3 -3
- package/package/components/runs/ManuelDatePicker.svelte.d.ts +3 -3
- package/package/components/runs/NoWorkerWithTagWarning.svelte +1 -5
- package/package/components/runs/RunsFilter.svelte +63 -75
- package/package/components/runs/RunsFilter.svelte.d.ts +4 -35
- package/package/components/runs/RunsQueue.svelte.d.ts +1 -1
- package/package/components/runs/RunsTable.svelte +1 -1
- package/package/components/runs/RunsTable.svelte.d.ts +1 -1
- package/package/components/schema/SchemaPicker.svelte +92 -0
- package/package/components/{tutorials/RunsTutorial.svelte.d.ts → schema/SchemaPicker.svelte.d.ts} +12 -11
- package/package/components/scriptEditor/LogPanel.svelte +2 -17
- package/package/components/scriptEditor/LogPanel.svelte.d.ts +0 -2
- package/package/components/select/SelectDropdown.svelte +2 -2
- package/package/components/settings/ChangeWorkspaceColor.svelte +3 -4
- package/package/components/settings/ChangeWorkspaceId.svelte +10 -14
- package/package/components/settings/ChangeWorkspaceName.svelte +6 -7
- package/package/components/settings/CreateToken.svelte +1 -1
- package/package/components/settings/UserAIPromptsSettings.svelte +15 -56
- package/package/components/settings/WorkspaceOperatorSettings.svelte +85 -68
- package/package/components/settings/WorkspaceUserSettings.svelte +406 -531
- package/package/components/sidebar/MenuButton.svelte +24 -46
- package/package/components/sidebar/MenuButton.svelte.d.ts +0 -2
- package/package/components/sidebar/MultiplayerMenu.svelte +3 -3
- package/package/components/sidebar/OperatorMenu.svelte +88 -63
- package/package/components/sidebar/SidebarContent.svelte +2 -7
- package/package/components/sidebar/UserMenu.svelte +1 -1
- package/package/components/sidebar/WorkspaceMenu.svelte +85 -35
- package/package/components/sqlTypeService.js +3 -4
- package/package/components/table/DataTable.svelte +2 -3
- package/package/components/table/DataTable.svelte.d.ts +0 -1
- package/package/components/text_input/TextInput.svelte +0 -3
- package/package/components/text_input/TextInput.svelte.d.ts +0 -2
- package/package/components/triggers/utils.js +1 -0
- package/package/components/tutorials/FlowBuilderLiveTutorial.svelte +35 -6
- package/package/components/tutorials/TroubleshootFlowTutorial.svelte +20 -5
- package/package/components/tutorials/utils.d.ts +0 -16
- package/package/components/tutorials/utils.js +0 -96
- package/package/components/vscode.js +6 -6
- package/package/components/workspaceSettings/AISettings.svelte +108 -146
- package/package/components/workspaceSettings/CreateWorkspace.svelte +12 -26
- package/package/components/workspaceSettings/DucklakeSettings.svelte +23 -46
- package/package/components/workspaceSettings/DucklakeSettings.svelte.d.ts +1 -2
- package/package/components/workspaceSettings/ModelTokenLimits.svelte +18 -14
- package/package/components/workspaceSettings/StorageSettings.svelte +241 -280
- package/package/components/workspaceSettings/StorageSettings.svelte.d.ts +0 -1
- package/package/consts.js +1 -4
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +0 -126
- package/package/gen/schemas.gen.js +0 -126
- package/package/gen/services.gen.d.ts +2 -151
- package/package/gen/services.gen.js +4 -301
- package/package/gen/types.gen.d.ts +2 -584
- package/package/hubPaths.json +2 -3
- package/package/infer.js +0 -2
- package/package/logout.d.ts +2 -0
- package/package/logout.js +23 -2
- package/package/monaco_workers/graphql.worker.bundle.js +121 -121
- package/package/navigation.d.ts +1 -1
- package/package/rawAppWmillTs.d.ts +0 -11
- package/package/rawAppWmillTs.js +1 -38
- package/package/svelte5Utils.svelte.d.ts +1 -7
- package/package/svelte5Utils.svelte.js +2 -23
- package/package/tutorialUtils.js +4 -0
- package/package/tutorials/config.js +3 -31
- package/package/tutorials/roleUtils.d.ts +1 -1
- package/package/tutorials/roleUtils.js +2 -6
- package/package/utils.js +1 -159
- package/package.json +14 -16
- package/dist/sharedUtils/assets/tokens/colorTokensConfig.d.ts +0 -2
- package/dist/sharedUtils/base.d.ts +0 -1
- package/dist/sharedUtils/cloud.d.ts +0 -1
- package/dist/sharedUtils/common.d.ts +0 -111
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/count.d.ts +0 -5
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/delete.d.ts +0 -5
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/insert.d.ts +0 -5
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/select.d.ts +0 -13
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/update.d.ts +0 -11
- package/dist/sharedUtils/components/apps/components/display/dbtable/utils.d.ts +0 -95
- package/dist/sharedUtils/components/apps/editor/appPolicy.d.ts +0 -6
- package/dist/sharedUtils/components/apps/editor/appUtilsCore.d.ts +0 -7
- package/dist/sharedUtils/components/apps/editor/appUtilsS3.d.ts +0 -33
- package/dist/sharedUtils/components/apps/editor/commonAppUtils.d.ts +0 -10
- package/dist/sharedUtils/components/apps/editor/component/components.d.ts +0 -5371
- package/dist/sharedUtils/components/apps/editor/component/default-codes.d.ts +0 -3
- package/dist/sharedUtils/components/apps/editor/component/index.d.ts +0 -3
- package/dist/sharedUtils/components/apps/editor/component/sets.d.ts +0 -7
- package/dist/sharedUtils/components/apps/editor/componentsPanel/componentDefaultProps.d.ts +0 -3
- package/dist/sharedUtils/components/apps/gridUtils.d.ts +0 -14
- package/dist/sharedUtils/components/apps/inputType.d.ts +0 -178
- package/dist/sharedUtils/components/apps/rx.d.ts +0 -29
- package/dist/sharedUtils/components/apps/sharedTypes.d.ts +0 -21
- package/dist/sharedUtils/components/apps/types.d.ts +0 -274
- package/dist/sharedUtils/components/assets/lib.d.ts +0 -25
- package/dist/sharedUtils/components/common/alert/model.d.ts +0 -2
- package/dist/sharedUtils/components/common/badge/model.d.ts +0 -8
- package/dist/sharedUtils/components/common/button/model.d.ts +0 -45
- package/dist/sharedUtils/components/common/fileInput/model.d.ts +0 -1
- package/dist/sharedUtils/components/common/index.d.ts +0 -24
- package/dist/sharedUtils/components/common/skeleton/model.d.ts +0 -21
- package/dist/sharedUtils/components/dbTypes.d.ts +0 -14
- package/dist/sharedUtils/components/diff_drawer.d.ts +0 -26
- package/dist/sharedUtils/components/ducklake.d.ts +0 -1
- package/dist/sharedUtils/components/flows/scheduleUtils.d.ts +0 -7
- package/dist/sharedUtils/components/icons/index.d.ts +0 -101
- package/dist/sharedUtils/components/random_positive_adjetive.d.ts +0 -1
- package/dist/sharedUtils/components/raw_apps/rawAppPolicy.d.ts +0 -10
- package/dist/sharedUtils/components/raw_apps/utils.d.ts +0 -15
- package/dist/sharedUtils/components/triggers/email/utils.d.ts +0 -4
- package/dist/sharedUtils/components/triggers/gcp/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers/http/utils.d.ts +0 -11
- package/dist/sharedUtils/components/triggers/kafka/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers/mqtt/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers/nats/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers/postgres/utils.d.ts +0 -8
- package/dist/sharedUtils/components/triggers/sqs/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers/triggers.svelte.d.ts +0 -32
- package/dist/sharedUtils/components/triggers/utils.d.ts +0 -80
- package/dist/sharedUtils/components/triggers/websocket/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers.d.ts +0 -20
- package/dist/sharedUtils/gen/core/ApiError.d.ts +0 -10
- package/dist/sharedUtils/gen/core/ApiRequestOptions.d.ts +0 -13
- package/dist/sharedUtils/gen/core/ApiResult.d.ts +0 -7
- package/dist/sharedUtils/gen/core/CancelablePromise.d.ts +0 -26
- package/dist/sharedUtils/gen/core/OpenAPI.d.ts +0 -27
- package/dist/sharedUtils/gen/core/request.d.ts +0 -29
- package/dist/sharedUtils/gen/index.d.ts +0 -6
- package/dist/sharedUtils/gen/schemas.gen.d.ts +0 -7036
- package/dist/sharedUtils/gen/services.gen.d.ts +0 -6047
- package/dist/sharedUtils/gen/types.gen.d.ts +0 -21881
- package/dist/sharedUtils/history.svelte.d.ts +0 -9
- package/dist/sharedUtils/hub.d.ts +0 -49
- package/dist/sharedUtils/jsr.json +0 -6
- package/dist/sharedUtils/lib.d.ts +0 -5
- package/dist/sharedUtils/lib.es.js +0 -1588
- package/dist/sharedUtils/package.json +0 -12
- package/dist/sharedUtils/schema.d.ts +0 -3
- package/dist/sharedUtils/stores.d.ts +0 -97
- package/dist/sharedUtils/svelte5Utils.svelte.d.ts +0 -80
- package/dist/sharedUtils/toast.d.ts +0 -8
- package/dist/sharedUtils/utils.d.ts +0 -265
- package/package/components/FlowDiffViewer.svelte +0 -37
- package/package/components/FlowDiffViewer.svelte.d.ts +0 -7
- package/package/components/JobOtelTraces.svelte +0 -287
- package/package/components/JobOtelTraces.svelte.d.ts +0 -6
- package/package/components/apps/components/display/dbtable/queries/alterTable.d.ts +0 -46
- package/package/components/apps/components/display/dbtable/queries/alterTable.js +0 -314
- package/package/components/apps/components/display/dbtable/queries/alterTable.test.d.ts +0 -1
- package/package/components/apps/components/display/dbtable/queries/alterTable.test.js +0 -867
- package/package/components/apps/components/display/dbtable/queries/dbQueriesUtils.d.ts +0 -9
- package/package/components/apps/components/display/dbtable/queries/dbQueriesUtils.js +0 -45
- package/package/components/apps/components/display/dbtable/queries/relationalKeys.d.ts +0 -47
- package/package/components/apps/components/display/dbtable/queries/relationalKeys.js +0 -402
- package/package/components/apps/components/display/dbtable/tableEditor.d.ts +0 -35
- package/package/components/apps/components/display/dbtable/tableEditor.js +0 -49
- package/package/components/copilot/chat/AppAvailableContextList.svelte +0 -263
- package/package/components/copilot/chat/AppAvailableContextList.svelte.d.ts +0 -13
- package/package/components/debug/DebugConsole.svelte +0 -277
- package/package/components/debug/DebugConsole.svelte.d.ts +0 -13
- package/package/components/debug/DebugPanel.svelte +0 -97
- package/package/components/debug/DebugPanel.svelte.d.ts +0 -11
- package/package/components/debug/DebugToolbar.svelte +0 -148
- package/package/components/debug/DebugToolbar.svelte.d.ts +0 -17
- package/package/components/debug/DebugVariableViewer.svelte +0 -115
- package/package/components/debug/DebugVariableViewer.svelte.d.ts +0 -11
- package/package/components/debug/MonacoDebugger.svelte +0 -384
- package/package/components/debug/MonacoDebugger.svelte.d.ts +0 -15
- package/package/components/debug/dapClient.d.ts +0 -192
- package/package/components/debug/dapClient.js +0 -426
- package/package/components/debug/debugUtils.d.ts +0 -30
- package/package/components/debug/debugUtils.js +0 -131
- package/package/components/debug/index.d.ts +0 -75
- package/package/components/debug/index.js +0 -82
- package/package/components/flows/content/FlowEditorDrawer.svelte +0 -124
- package/package/components/flows/content/FlowEditorDrawer.svelte.d.ts +0 -22
- package/package/components/flows/content/McpOAuthConnect.svelte +0 -217
- package/package/components/flows/content/McpOAuthConnect.svelte.d.ts +0 -7
- package/package/components/icons/HtmlIcon.svelte +0 -20
- package/package/components/icons/HtmlIcon.svelte.d.ts +0 -8
- package/package/components/icons/LessIcon.svelte +0 -16
- package/package/components/icons/LessIcon.svelte.d.ts +0 -8
- package/package/components/icons/MarkdownIcon.svelte +0 -20
- package/package/components/icons/MarkdownIcon.svelte.d.ts +0 -8
- package/package/components/icons/SassIcon.svelte +0 -28
- package/package/components/icons/SassIcon.svelte.d.ts +0 -8
- package/package/components/icons/YamlIcon.svelte +0 -20
- package/package/components/icons/YamlIcon.svelte.d.ts +0 -8
- package/package/components/instanceSettings/SecretBackendConfig.svelte +0 -514
- package/package/components/instanceSettings/SecretBackendConfig.svelte.d.ts +0 -8
- package/package/components/raw_apps/RunnableRow.svelte +0 -41
- package/package/components/raw_apps/RunnableRow.svelte.d.ts +0 -11
- package/package/components/runs/useJobsLoader.svelte.d.ts +0 -34
- package/package/components/runs/useJobsLoader.svelte.js +0 -507
- package/package/components/settings/AIPromptsModal.svelte +0 -88
- package/package/components/settings/AIPromptsModal.svelte.d.ts +0 -11
- package/package/components/tutorials/RunsTutorial.svelte +0 -399
- package/package/components/tutorials/workspace/WorkspaceOnboardingOperatorTutorial.svelte +0 -133
- package/package/components/workspace/WorkspaceCard.svelte +0 -184
- package/package/components/workspace/WorkspaceCard.svelte.d.ts +0 -24
- package/package/components/workspace/WorkspaceIcon.svelte +0 -21
- package/package/components/workspace/WorkspaceIcon.svelte.d.ts +0 -9
- package/package/components/workspace/WorkspaceTreeView.svelte +0 -331
- package/package/components/workspace/WorkspaceTreeView.svelte.d.ts +0 -15
- package/package/logoutKit.d.ts +0 -2
- package/package/logoutKit.js +0 -26
- package/package/svelte5UtilsKit.svelte.d.ts +0 -3
- package/package/svelte5UtilsKit.svelte.js +0 -30
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
<script lang="ts">import { GitFork, ChevronUp, ArchiveRestore } from 'lucide-svelte';
|
|
2
|
-
import { slide } from 'svelte/transition';
|
|
3
|
-
import { Badge, Button } from '../common';
|
|
4
|
-
import { superadmin } from '../../stores';
|
|
5
|
-
import { WorkspaceService } from '../../gen';
|
|
6
|
-
import { pluralize } from '../../utils';
|
|
7
|
-
import WorkspaceIcon from './WorkspaceIcon.svelte';
|
|
8
|
-
import WorkspaceCard from './WorkspaceCard.svelte';
|
|
9
|
-
import { twMerge } from 'tailwind-merge';
|
|
10
|
-
let { workspace, isForked = false, depth = 0, children = [], isExpanded = false, expansionStates = {}, onEnterWorkspace, onUnarchive, onToggleExpand, selectedWorkspaceId, onMouseEnter, onMouseClick, onKeyboardNavigation } = $props();
|
|
11
|
-
const paddingLeft = depth * 24;
|
|
12
|
-
const isSelected = $derived(selectedWorkspaceId === workspace.id);
|
|
13
|
-
// Helper functions
|
|
14
|
-
function isWorkspaceArchived(workspace) {
|
|
15
|
-
return workspace['deleted'] === true;
|
|
16
|
-
}
|
|
17
|
-
function isWorkspaceDisabled(workspace) {
|
|
18
|
-
return workspace.disabled === true;
|
|
19
|
-
}
|
|
20
|
-
async function handleUnarchive() {
|
|
21
|
-
if (onUnarchive) {
|
|
22
|
-
await WorkspaceService.unarchiveWorkspace({ workspace: workspace.id });
|
|
23
|
-
await onUnarchive(workspace.id);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
</script>
|
|
27
|
-
|
|
28
|
-
<div class="block pb-2" style:padding-left={`${paddingLeft}px`}>
|
|
29
|
-
<div
|
|
30
|
-
class={twMerge(
|
|
31
|
-
'border border-border-light rounded-md overflow-hidden transition-all duration-150',
|
|
32
|
-
isSelected ? 'bg-surface-hover' : 'bg-surface-tertiary'
|
|
33
|
-
)}
|
|
34
|
-
data-workspace-id={workspace.id}
|
|
35
|
-
>
|
|
36
|
-
<!-- Main workspace card - clickable to enter workspace -->
|
|
37
|
-
<div
|
|
38
|
-
class="px-4 py-2 hover:bg-surface-hover transition-colors w-full"
|
|
39
|
-
class:rounded-lg={children.length === 0}
|
|
40
|
-
class:rounded-b-none={children.length > 0}
|
|
41
|
-
class:opacity-60={isWorkspaceDisabled(workspace)}
|
|
42
|
-
class:cursor-not-allowed={isWorkspaceDisabled(workspace)}
|
|
43
|
-
class:cursor-pointer={!isWorkspaceDisabled(workspace)}
|
|
44
|
-
role="button"
|
|
45
|
-
tabindex="0"
|
|
46
|
-
onclick={async () => {
|
|
47
|
-
onMouseClick?.()
|
|
48
|
-
if (!isWorkspaceDisabled(workspace)) {
|
|
49
|
-
await onEnterWorkspace(workspace.id)
|
|
50
|
-
}
|
|
51
|
-
}}
|
|
52
|
-
onkeydown={(e) => {
|
|
53
|
-
if ((e.key === 'Enter' || e.key === ' ') && !isWorkspaceDisabled(workspace)) {
|
|
54
|
-
e.preventDefault()
|
|
55
|
-
onKeyboardNavigation?.()
|
|
56
|
-
onEnterWorkspace(workspace.id)
|
|
57
|
-
}
|
|
58
|
-
}}
|
|
59
|
-
onmouseenter={() => onMouseEnter?.(workspace.id)}
|
|
60
|
-
>
|
|
61
|
-
<div class="flex flex-row items-center justify-between">
|
|
62
|
-
<div class="flex flex-row items-center gap-3 flex-1 min-w-0">
|
|
63
|
-
<div class="flex flex-row items-center gap-2 flex-1 min-w-0">
|
|
64
|
-
<div class="flex-shrink-0">
|
|
65
|
-
<WorkspaceIcon
|
|
66
|
-
workspaceColor={workspace.color}
|
|
67
|
-
{isForked}
|
|
68
|
-
parentName={workspace.parent_workspace_id ?? undefined}
|
|
69
|
-
size={12}
|
|
70
|
-
/>
|
|
71
|
-
</div>
|
|
72
|
-
|
|
73
|
-
<div class="min-w-0 flex-1">
|
|
74
|
-
<div class="flex flex-row items-center gap-2 flex-wrap">
|
|
75
|
-
<span class="text-xs font-semibold text-primary truncate">
|
|
76
|
-
{#if workspace.marked}
|
|
77
|
-
{@html workspace.marked}
|
|
78
|
-
{:else}
|
|
79
|
-
{workspace.name}
|
|
80
|
-
{/if}
|
|
81
|
-
</span>
|
|
82
|
-
<span class="text-secondary text-xs">-</span>
|
|
83
|
-
{#if workspace.id === 'admins'}
|
|
84
|
-
<Badge color="blue">{workspace.id}</Badge>
|
|
85
|
-
{:else}
|
|
86
|
-
<span class="font-mono text-2xs text-secondary truncate">
|
|
87
|
-
{workspace.id}
|
|
88
|
-
</span>
|
|
89
|
-
{/if}
|
|
90
|
-
</div>
|
|
91
|
-
|
|
92
|
-
<div class="text-xs text-secondary">
|
|
93
|
-
as <span class="font-mono">{workspace.username}</span>
|
|
94
|
-
{#if isWorkspaceArchived(workspace)}
|
|
95
|
-
<span class="text-red-500 ml-1">(archived)</span>
|
|
96
|
-
{#if $superadmin && onUnarchive}
|
|
97
|
-
<Button
|
|
98
|
-
size="xs2"
|
|
99
|
-
variant="default"
|
|
100
|
-
btnClasses="ml-1"
|
|
101
|
-
propagateEvent={false}
|
|
102
|
-
onClick={handleUnarchive}
|
|
103
|
-
startIcon={{ icon: ArchiveRestore }}
|
|
104
|
-
>
|
|
105
|
-
Unarchive
|
|
106
|
-
</Button>
|
|
107
|
-
{/if}
|
|
108
|
-
{/if}
|
|
109
|
-
{#if isWorkspaceDisabled(workspace)}
|
|
110
|
-
<span class="text-red-500 ml-1">(user disabled in this workspace)</span>
|
|
111
|
-
{/if}
|
|
112
|
-
{#if workspace.id === 'admins'}
|
|
113
|
-
<span class="text-accent ml-1">Used to manage your Windmill instance</span>
|
|
114
|
-
{/if}
|
|
115
|
-
</div>
|
|
116
|
-
</div>
|
|
117
|
-
</div>
|
|
118
|
-
</div>
|
|
119
|
-
</div>
|
|
120
|
-
</div>
|
|
121
|
-
|
|
122
|
-
<!-- Forks section - clickable to expand -->
|
|
123
|
-
{#if children.length > 0}
|
|
124
|
-
<div
|
|
125
|
-
class="border-t border-border-light px-4 py-1.5 hover:bg-surface-hover transition-colors cursor-pointer"
|
|
126
|
-
role="button"
|
|
127
|
-
tabindex="0"
|
|
128
|
-
onclick={() => {
|
|
129
|
-
onMouseClick?.()
|
|
130
|
-
onToggleExpand?.(workspace.id)
|
|
131
|
-
}}
|
|
132
|
-
onkeydown={(e) => {
|
|
133
|
-
if (e.key === 'Enter' || e.key === ' ') {
|
|
134
|
-
e.preventDefault()
|
|
135
|
-
onKeyboardNavigation?.()
|
|
136
|
-
onToggleExpand?.(workspace.id)
|
|
137
|
-
}
|
|
138
|
-
}}
|
|
139
|
-
onmouseenter={() => onMouseEnter?.(workspace.id)}
|
|
140
|
-
>
|
|
141
|
-
<div class="flex flex-row items-center justify-between">
|
|
142
|
-
<div class="flex flex-row items-center gap-2 pl-2">
|
|
143
|
-
<GitFork size={10} class="text-primary" />
|
|
144
|
-
<span class="text-2xs text-primary">
|
|
145
|
-
{pluralize(children.length, 'fork', 'forks')}
|
|
146
|
-
</span>
|
|
147
|
-
</div>
|
|
148
|
-
<div class="flex items-center">
|
|
149
|
-
<ChevronUp
|
|
150
|
-
size={16}
|
|
151
|
-
class={twMerge(
|
|
152
|
-
'text-secondary transition-transform duration-150',
|
|
153
|
-
isExpanded ? 'transform rotate-180' : ''
|
|
154
|
-
)}
|
|
155
|
-
/>
|
|
156
|
-
</div>
|
|
157
|
-
</div>
|
|
158
|
-
</div>
|
|
159
|
-
{/if}
|
|
160
|
-
</div>
|
|
161
|
-
|
|
162
|
-
<!-- Expanded forks -->
|
|
163
|
-
{#if children.length > 0 && isExpanded}
|
|
164
|
-
<div class="mt-2 ml-6" transition:slide={{ duration: 150 }}>
|
|
165
|
-
{#each children as child (child.id)}
|
|
166
|
-
<WorkspaceCard
|
|
167
|
-
workspace={child}
|
|
168
|
-
isForked={true}
|
|
169
|
-
depth={depth + 1}
|
|
170
|
-
children={child._children || []}
|
|
171
|
-
isExpanded={expansionStates[child.id] ?? false}
|
|
172
|
-
{expansionStates}
|
|
173
|
-
{onEnterWorkspace}
|
|
174
|
-
{onUnarchive}
|
|
175
|
-
{onToggleExpand}
|
|
176
|
-
{selectedWorkspaceId}
|
|
177
|
-
{onMouseEnter}
|
|
178
|
-
{onMouseClick}
|
|
179
|
-
{onKeyboardNavigation}
|
|
180
|
-
/>
|
|
181
|
-
{/each}
|
|
182
|
-
</div>
|
|
183
|
-
{/if}
|
|
184
|
-
</div>
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type { UserWorkspace } from '../../stores';
|
|
2
|
-
import WorkspaceCard from './WorkspaceCard.svelte';
|
|
3
|
-
declare const WorkspaceCard: import("svelte").Component<{
|
|
4
|
-
workspace: UserWorkspace & {
|
|
5
|
-
marked?: string;
|
|
6
|
-
};
|
|
7
|
-
isForked?: boolean;
|
|
8
|
-
depth?: number;
|
|
9
|
-
children?: (UserWorkspace & {
|
|
10
|
-
_children?: (UserWorkspace & /*elided*/ any)[];
|
|
11
|
-
marked?: string;
|
|
12
|
-
})[];
|
|
13
|
-
isExpanded?: boolean;
|
|
14
|
-
expansionStates?: Record<string, boolean>;
|
|
15
|
-
onEnterWorkspace: (workspaceId: string) => Promise<void>;
|
|
16
|
-
onUnarchive?: (workspaceId: string) => Promise<void>;
|
|
17
|
-
onToggleExpand?: (workspaceId: string) => void;
|
|
18
|
-
selectedWorkspaceId?: string | null;
|
|
19
|
-
onMouseEnter?: (workspaceId: string) => void;
|
|
20
|
-
onMouseClick?: () => void;
|
|
21
|
-
onKeyboardNavigation?: () => void;
|
|
22
|
-
}, {}, "">;
|
|
23
|
-
type WorkspaceCard = ReturnType<typeof WorkspaceCard>;
|
|
24
|
-
export default WorkspaceCard;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
<script lang="ts">import { Building, GitFork } from 'lucide-svelte';
|
|
2
|
-
import { Tooltip } from '../meltComponents';
|
|
3
|
-
import { getContrastTextColor } from '../../utils';
|
|
4
|
-
let { workspaceColor, isForked = false, parentName, size = 14 } = $props();
|
|
5
|
-
const iconColor = $derived(getContrastTextColor(workspaceColor));
|
|
6
|
-
</script>
|
|
7
|
-
|
|
8
|
-
<div style="background-color: {workspaceColor}" class="rounded-full p-1.5 center-center">
|
|
9
|
-
{#if isForked}
|
|
10
|
-
<Tooltip>
|
|
11
|
-
{#snippet text()}
|
|
12
|
-
{#if isForked && parentName}
|
|
13
|
-
Fork of {parentName}
|
|
14
|
-
{/if}
|
|
15
|
-
{/snippet}
|
|
16
|
-
<GitFork {size} class="flex-shrink-0" style="color: {iconColor}" />
|
|
17
|
-
</Tooltip>
|
|
18
|
-
{:else}
|
|
19
|
-
<Building {size} style="color: {iconColor}" />
|
|
20
|
-
{/if}
|
|
21
|
-
</div>
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
interface Props {
|
|
2
|
-
workspaceColor?: string;
|
|
3
|
-
isForked?: boolean;
|
|
4
|
-
parentName?: string;
|
|
5
|
-
size?: number;
|
|
6
|
-
}
|
|
7
|
-
declare const WorkspaceIcon: import("svelte").Component<Props, {}, "">;
|
|
8
|
-
type WorkspaceIcon = ReturnType<typeof WorkspaceIcon>;
|
|
9
|
-
export default WorkspaceIcon;
|
|
@@ -1,331 +0,0 @@
|
|
|
1
|
-
<script lang="ts">import { Building2 } from 'lucide-svelte';
|
|
2
|
-
import { SvelteMap } from 'svelte/reactivity';
|
|
3
|
-
import WorkspaceCard from './WorkspaceCard.svelte';
|
|
4
|
-
import SearchItems from '../SearchItems.svelte';
|
|
5
|
-
let { workspaces, onEnterWorkspace, onUnarchive, searchFilter = $bindable(''), onExpandCollapseAll = $bindable(), allExpanded = $bindable(false), hasForks = $bindable(false) } = $props();
|
|
6
|
-
// State for manually toggled expansion status
|
|
7
|
-
let manualExpansionStates = $state({});
|
|
8
|
-
let filteredWorkspaces = $state();
|
|
9
|
-
// Keyboard navigation state
|
|
10
|
-
let selectedWorkspaceId = $state(null);
|
|
11
|
-
let isKeyboardNavigation = $state(false);
|
|
12
|
-
let scrollContainer;
|
|
13
|
-
// Computed expansion states that include auto-expansion for search results
|
|
14
|
-
let expansionStates = $derived.by(() => {
|
|
15
|
-
if (!searchFilter || !filteredWorkspaces || !workspaces) {
|
|
16
|
-
return manualExpansionStates;
|
|
17
|
-
}
|
|
18
|
-
const matchedWorkspaceIds = new Set(filteredWorkspaces.map((w) => w.id));
|
|
19
|
-
const autoExpanded = {};
|
|
20
|
-
// Build children map for descendant checking
|
|
21
|
-
const childrenMap = new Map();
|
|
22
|
-
workspaces.forEach((workspace) => {
|
|
23
|
-
if (workspace.parent_workspace_id) {
|
|
24
|
-
if (!childrenMap.has(workspace.parent_workspace_id)) {
|
|
25
|
-
childrenMap.set(workspace.parent_workspace_id, []);
|
|
26
|
-
}
|
|
27
|
-
childrenMap.get(workspace.parent_workspace_id).push(workspace.id);
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
// Function to check if workspace has matching descendants (not itself)
|
|
31
|
-
function hasMatchingDescendant(workspaceId) {
|
|
32
|
-
const children = childrenMap.get(workspaceId) || [];
|
|
33
|
-
return children.some((childId) => matchedWorkspaceIds.has(childId) || hasMatchingDescendant(childId));
|
|
34
|
-
}
|
|
35
|
-
// Auto-expand workspaces only if they have matching descendants
|
|
36
|
-
// (not if the workspace itself matches - user can manually expand to see children)
|
|
37
|
-
workspaces.forEach((workspace) => {
|
|
38
|
-
if (hasMatchingDescendant(workspace.id)) {
|
|
39
|
-
autoExpanded[workspace.id] = true;
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
// Combine manual and auto-expanded states
|
|
43
|
-
return { ...manualExpansionStates, ...autoExpanded };
|
|
44
|
-
});
|
|
45
|
-
// Build nested hierarchy correctly - always use full workspace list for hierarchy
|
|
46
|
-
let rootWorkspaces = $derived.by(() => {
|
|
47
|
-
if (!workspaces)
|
|
48
|
-
return [];
|
|
49
|
-
// Create a map of children for each parent workspace using ALL workspaces
|
|
50
|
-
const childrenMap = new SvelteMap();
|
|
51
|
-
// Build children mapping - this correctly handles nested relationships
|
|
52
|
-
workspaces.forEach((workspace) => {
|
|
53
|
-
if (workspace.parent_workspace_id) {
|
|
54
|
-
if (!childrenMap.has(workspace.parent_workspace_id)) {
|
|
55
|
-
childrenMap.set(workspace.parent_workspace_id, []);
|
|
56
|
-
}
|
|
57
|
-
// Find marked version from filtered results if available
|
|
58
|
-
const filteredWorkspace = filteredWorkspaces?.find((fw) => fw.id === workspace.id);
|
|
59
|
-
const extendedWorkspace = {
|
|
60
|
-
...workspace,
|
|
61
|
-
marked: filteredWorkspace?.marked
|
|
62
|
-
};
|
|
63
|
-
childrenMap.get(workspace.parent_workspace_id).push(extendedWorkspace);
|
|
64
|
-
}
|
|
65
|
-
});
|
|
66
|
-
// Get IDs of workspaces that match the search
|
|
67
|
-
const matchedWorkspaceIds = new Set(filteredWorkspaces?.map((w) => w.id) || []);
|
|
68
|
-
// Function to check if a workspace or its descendants match the search
|
|
69
|
-
function hasMatchingDescendant(workspaceId) {
|
|
70
|
-
if (matchedWorkspaceIds.has(workspaceId))
|
|
71
|
-
return true;
|
|
72
|
-
const children = childrenMap.get(workspaceId) || [];
|
|
73
|
-
return children.some((child) => hasMatchingDescendant(child.id));
|
|
74
|
-
}
|
|
75
|
-
// Recursive function to build full nested hierarchy
|
|
76
|
-
// parentMatched: if true, include all children regardless of search match
|
|
77
|
-
function buildWorkspaceWithChildren(workspace, parentMatched = false) {
|
|
78
|
-
const directChildren = childrenMap.get(workspace.id) || [];
|
|
79
|
-
const thisWorkspaceMatches = matchedWorkspaceIds.has(workspace.id);
|
|
80
|
-
// If this workspace or a parent matches, show all children
|
|
81
|
-
// Otherwise, only show children that match or have matching descendants
|
|
82
|
-
const visibleChildren = searchFilter && !parentMatched && !thisWorkspaceMatches
|
|
83
|
-
? directChildren.filter((child) => hasMatchingDescendant(child.id))
|
|
84
|
-
: directChildren;
|
|
85
|
-
const childrenWithNestedStructure = visibleChildren.map((child) => buildWorkspaceWithChildren(child, parentMatched || thisWorkspaceMatches));
|
|
86
|
-
// Find marked version from filtered results if available
|
|
87
|
-
const filteredWorkspace = filteredWorkspaces?.find((fw) => fw.id === workspace.id);
|
|
88
|
-
return {
|
|
89
|
-
...workspace,
|
|
90
|
-
marked: filteredWorkspace?.marked,
|
|
91
|
-
_children: childrenWithNestedStructure
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
// Return only root workspaces - filter based on search if active
|
|
95
|
-
const rootCandidates = workspaces.filter((workspace) => !workspace.parent_workspace_id ||
|
|
96
|
-
!workspaces.find((w) => w.id === workspace.parent_workspace_id));
|
|
97
|
-
const visibleRoots = searchFilter
|
|
98
|
-
? rootCandidates.filter((workspace) => hasMatchingDescendant(workspace.id))
|
|
99
|
-
: rootCandidates;
|
|
100
|
-
return visibleRoots
|
|
101
|
-
.map((workspace) => buildWorkspaceWithChildren(workspace))
|
|
102
|
-
.sort((a, b) => {
|
|
103
|
-
// Admin workspace always goes first
|
|
104
|
-
if (a.id === 'admins')
|
|
105
|
-
return -1;
|
|
106
|
-
if (b.id === 'admins')
|
|
107
|
-
return 1;
|
|
108
|
-
// Then sort alphabetically by name
|
|
109
|
-
return a.name.localeCompare(b.name);
|
|
110
|
-
});
|
|
111
|
-
});
|
|
112
|
-
function handleToggleExpand(workspaceId) {
|
|
113
|
-
const currentState = expansionStates[workspaceId] ?? false;
|
|
114
|
-
manualExpansionStates = { ...manualExpansionStates, [workspaceId]: !currentState };
|
|
115
|
-
}
|
|
116
|
-
// Get IDs of workspaces that have children (can be expanded)
|
|
117
|
-
let workspacesWithChildren = $derived.by(() => {
|
|
118
|
-
if (!workspaces)
|
|
119
|
-
return [];
|
|
120
|
-
const parentIds = new Set(workspaces.filter((w) => w.parent_workspace_id).map((w) => w.parent_workspace_id));
|
|
121
|
-
return workspaces.filter((w) => parentIds.has(w.id)).map((w) => w.id);
|
|
122
|
-
});
|
|
123
|
-
// Check if all expandable workspaces are currently expanded
|
|
124
|
-
let allExpandedInternal = $derived(workspacesWithChildren.length > 0 &&
|
|
125
|
-
workspacesWithChildren.every((id) => expansionStates[id] === true));
|
|
126
|
-
// Sync internal state to bindable props
|
|
127
|
-
$effect(() => {
|
|
128
|
-
allExpanded = allExpandedInternal;
|
|
129
|
-
});
|
|
130
|
-
$effect(() => {
|
|
131
|
-
hasForks = workspacesWithChildren.length > 0;
|
|
132
|
-
});
|
|
133
|
-
export function handleExpandCollapseAll() {
|
|
134
|
-
const newState = !allExpandedInternal;
|
|
135
|
-
const newExpansionStates = {};
|
|
136
|
-
workspacesWithChildren.forEach((id) => {
|
|
137
|
-
newExpansionStates[id] = newState;
|
|
138
|
-
});
|
|
139
|
-
manualExpansionStates = newExpansionStates;
|
|
140
|
-
}
|
|
141
|
-
// Generate flattened navigation order for keyboard navigation
|
|
142
|
-
const flatNavigationOrder = $derived.by(() => {
|
|
143
|
-
const result = [];
|
|
144
|
-
function addWorkspaceAndChildren(workspace) {
|
|
145
|
-
result.push(workspace.id);
|
|
146
|
-
if (workspace._children && expansionStates[workspace.id]) {
|
|
147
|
-
workspace._children.forEach((child) => addWorkspaceAndChildren(child));
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
rootWorkspaces.forEach((workspace) => addWorkspaceAndChildren(workspace));
|
|
151
|
-
return result;
|
|
152
|
-
});
|
|
153
|
-
// Keyboard navigation handlers
|
|
154
|
-
function handleKeyDown(event) {
|
|
155
|
-
// Allow navigation keys even when search input has focus
|
|
156
|
-
const navigationKeys = [
|
|
157
|
-
'ArrowDown',
|
|
158
|
-
'ArrowUp',
|
|
159
|
-
'Home',
|
|
160
|
-
'End',
|
|
161
|
-
'ArrowLeft',
|
|
162
|
-
'ArrowRight',
|
|
163
|
-
'Enter',
|
|
164
|
-
' ',
|
|
165
|
-
'Escape'
|
|
166
|
-
];
|
|
167
|
-
const activeElement = document.activeElement;
|
|
168
|
-
// Skip navigation only if user is typing in textarea or non-search inputs
|
|
169
|
-
if (activeElement?.tagName === 'TEXTAREA' ||
|
|
170
|
-
(activeElement?.tagName === 'INPUT' && !navigationKeys.includes(event.key))) {
|
|
171
|
-
return;
|
|
172
|
-
}
|
|
173
|
-
// Enable keyboard navigation on arrow keys
|
|
174
|
-
if (['ArrowDown', 'ArrowUp', 'Home', 'End', 'ArrowLeft', 'ArrowRight'].includes(event.key)) {
|
|
175
|
-
enableKeyboardNavigation();
|
|
176
|
-
}
|
|
177
|
-
// Only handle navigation if keyboard navigation is active
|
|
178
|
-
if (!isKeyboardNavigation) {
|
|
179
|
-
return;
|
|
180
|
-
}
|
|
181
|
-
if (flatNavigationOrder.length === 0)
|
|
182
|
-
return;
|
|
183
|
-
const currentIndex = selectedWorkspaceId ? flatNavigationOrder.indexOf(selectedWorkspaceId) : -1;
|
|
184
|
-
switch (event.key) {
|
|
185
|
-
case 'ArrowDown': {
|
|
186
|
-
event.preventDefault();
|
|
187
|
-
const nextIndex = currentIndex < flatNavigationOrder.length - 1 ? currentIndex + 1 : 0;
|
|
188
|
-
selectedWorkspaceId = flatNavigationOrder[nextIndex];
|
|
189
|
-
break;
|
|
190
|
-
}
|
|
191
|
-
case 'ArrowUp': {
|
|
192
|
-
event.preventDefault();
|
|
193
|
-
const prevIndex = currentIndex > 0 ? currentIndex - 1 : flatNavigationOrder.length - 1;
|
|
194
|
-
selectedWorkspaceId = flatNavigationOrder[prevIndex];
|
|
195
|
-
break;
|
|
196
|
-
}
|
|
197
|
-
case 'Home': {
|
|
198
|
-
event.preventDefault();
|
|
199
|
-
selectedWorkspaceId = flatNavigationOrder[0];
|
|
200
|
-
break;
|
|
201
|
-
}
|
|
202
|
-
case 'End': {
|
|
203
|
-
event.preventDefault();
|
|
204
|
-
selectedWorkspaceId = flatNavigationOrder[flatNavigationOrder.length - 1];
|
|
205
|
-
break;
|
|
206
|
-
}
|
|
207
|
-
case 'ArrowRight': {
|
|
208
|
-
if (selectedWorkspaceId && workspacesWithChildren.includes(selectedWorkspaceId)) {
|
|
209
|
-
event.preventDefault();
|
|
210
|
-
if (!expansionStates[selectedWorkspaceId]) {
|
|
211
|
-
handleToggleExpand(selectedWorkspaceId);
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
break;
|
|
215
|
-
}
|
|
216
|
-
case 'ArrowLeft': {
|
|
217
|
-
if (selectedWorkspaceId && workspacesWithChildren.includes(selectedWorkspaceId)) {
|
|
218
|
-
event.preventDefault();
|
|
219
|
-
if (expansionStates[selectedWorkspaceId]) {
|
|
220
|
-
handleToggleExpand(selectedWorkspaceId);
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
break;
|
|
224
|
-
}
|
|
225
|
-
case 'Enter':
|
|
226
|
-
case ' ': {
|
|
227
|
-
if (selectedWorkspaceId) {
|
|
228
|
-
event.preventDefault();
|
|
229
|
-
const workspace = workspaces.find((w) => w.id === selectedWorkspaceId);
|
|
230
|
-
if (workspace && !workspace.disabled) {
|
|
231
|
-
onEnterWorkspace(selectedWorkspaceId);
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
break;
|
|
235
|
-
}
|
|
236
|
-
case 'Escape': {
|
|
237
|
-
selectedWorkspaceId = null;
|
|
238
|
-
isKeyboardNavigation = false;
|
|
239
|
-
break;
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
// Reset selection when workspaces change or search filter changes
|
|
244
|
-
$effect(() => {
|
|
245
|
-
if (rootWorkspaces.length === 0) {
|
|
246
|
-
selectedWorkspaceId = null;
|
|
247
|
-
}
|
|
248
|
-
else if (selectedWorkspaceId && !flatNavigationOrder.includes(selectedWorkspaceId)) {
|
|
249
|
-
// If currently selected workspace is no longer visible, reset to first visible
|
|
250
|
-
selectedWorkspaceId = flatNavigationOrder[0] || null;
|
|
251
|
-
}
|
|
252
|
-
});
|
|
253
|
-
// Enable keyboard navigation when user starts navigating
|
|
254
|
-
function enableKeyboardNavigation() {
|
|
255
|
-
if (!isKeyboardNavigation && rootWorkspaces.length > 0) {
|
|
256
|
-
isKeyboardNavigation = true;
|
|
257
|
-
if (!selectedWorkspaceId) {
|
|
258
|
-
selectedWorkspaceId = flatNavigationOrder[0] || null;
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
// Handle mouse interactions - disable keyboard mode when mouse is used
|
|
263
|
-
function handleMouseEnter(workspaceId) {
|
|
264
|
-
if (isKeyboardNavigation) {
|
|
265
|
-
selectedWorkspaceId = workspaceId;
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
function handleMouseClick() {
|
|
269
|
-
isKeyboardNavigation = false;
|
|
270
|
-
selectedWorkspaceId = null;
|
|
271
|
-
}
|
|
272
|
-
// Scroll selected workspace into view
|
|
273
|
-
function scrollToSelectedWorkspace() {
|
|
274
|
-
if (!selectedWorkspaceId || !scrollContainer)
|
|
275
|
-
return;
|
|
276
|
-
// Find the workspace card element by data attribute
|
|
277
|
-
const selectedElement = scrollContainer.querySelector(`[data-workspace-id="${selectedWorkspaceId}"]`);
|
|
278
|
-
if (selectedElement) {
|
|
279
|
-
selectedElement.scrollIntoView({
|
|
280
|
-
behavior: 'smooth',
|
|
281
|
-
block: 'nearest'
|
|
282
|
-
});
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
// Auto-scroll when selection changes
|
|
286
|
-
$effect(() => {
|
|
287
|
-
if (selectedWorkspaceId && isKeyboardNavigation) {
|
|
288
|
-
scrollToSelectedWorkspace();
|
|
289
|
-
}
|
|
290
|
-
});
|
|
291
|
-
</script>
|
|
292
|
-
|
|
293
|
-
<svelte:window onkeydown={handleKeyDown} />
|
|
294
|
-
|
|
295
|
-
<!-- Search Items Component for fuzzy search with highlighting -->
|
|
296
|
-
<SearchItems
|
|
297
|
-
filter={searchFilter}
|
|
298
|
-
items={workspaces}
|
|
299
|
-
bind:filteredItems={filteredWorkspaces}
|
|
300
|
-
f={(workspace) => workspace.name + ' (' + workspace.id + ')'}
|
|
301
|
-
/>
|
|
302
|
-
|
|
303
|
-
<div class="space-y-4 max-h-[50vh] overflow-auto" bind:this={scrollContainer}>
|
|
304
|
-
<!-- Workspace Tree -->
|
|
305
|
-
<div class="space-y-2">
|
|
306
|
-
{#each rootWorkspaces as workspace (workspace.id)}
|
|
307
|
-
<WorkspaceCard
|
|
308
|
-
{workspace}
|
|
309
|
-
children={workspace._children || []}
|
|
310
|
-
isExpanded={expansionStates[workspace.id] ?? false}
|
|
311
|
-
{expansionStates}
|
|
312
|
-
{onEnterWorkspace}
|
|
313
|
-
{onUnarchive}
|
|
314
|
-
onToggleExpand={handleToggleExpand}
|
|
315
|
-
{selectedWorkspaceId}
|
|
316
|
-
onMouseEnter={handleMouseEnter}
|
|
317
|
-
onMouseClick={handleMouseClick}
|
|
318
|
-
onKeyboardNavigation={enableKeyboardNavigation}
|
|
319
|
-
/>
|
|
320
|
-
{/each}
|
|
321
|
-
|
|
322
|
-
{#if rootWorkspaces.length === 0}
|
|
323
|
-
<div class="text-center py-8">
|
|
324
|
-
<Building2 size={48} class="text-secondary mx-auto mb-3" />
|
|
325
|
-
<p class="text-sm text-secondary">
|
|
326
|
-
{searchFilter ? 'No workspaces match your search' : 'No workspaces available'}
|
|
327
|
-
</p>
|
|
328
|
-
</div>
|
|
329
|
-
{/if}
|
|
330
|
-
</div>
|
|
331
|
-
</div>
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { UserWorkspace } from '../../stores';
|
|
2
|
-
interface Props {
|
|
3
|
-
workspaces: UserWorkspace[];
|
|
4
|
-
onEnterWorkspace: (workspaceId: string) => Promise<void>;
|
|
5
|
-
onUnarchive?: (workspaceId: string) => Promise<void>;
|
|
6
|
-
searchFilter?: string;
|
|
7
|
-
onExpandCollapseAll?: () => void;
|
|
8
|
-
allExpanded?: boolean;
|
|
9
|
-
hasForks?: boolean;
|
|
10
|
-
}
|
|
11
|
-
declare const WorkspaceTreeView: import("svelte").Component<Props, {
|
|
12
|
-
handleExpandCollapseAll: () => void;
|
|
13
|
-
}, "allExpanded" | "searchFilter" | "onExpandCollapseAll" | "hasForks">;
|
|
14
|
-
type WorkspaceTreeView = ReturnType<typeof WorkspaceTreeView>;
|
|
15
|
-
export default WorkspaceTreeView;
|
package/package/logoutKit.d.ts
DELETED
package/package/logoutKit.js
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
// SvelteKit-specific logout utilities
|
|
2
|
-
// These functions depend on $lib/navigation which requires SvelteKit
|
|
3
|
-
import { goto } from './navigation';
|
|
4
|
-
import { clearUser } from './logout';
|
|
5
|
-
import { sendUserToast } from './toast';
|
|
6
|
-
export async function logoutWithRedirect(rd) {
|
|
7
|
-
console.log('logoutWithRedirect', rd);
|
|
8
|
-
await clearUser();
|
|
9
|
-
const splitted = rd?.split('?')[0];
|
|
10
|
-
if (rd && rd != '/' && splitted != '/user/login' && splitted != '/user/logout') {
|
|
11
|
-
const error = document.cookie.includes('token')
|
|
12
|
-
? `error=${encodeURIComponent('You have been logged out because your session has expired.')}&`
|
|
13
|
-
: '';
|
|
14
|
-
console.log('login redirect with error', error, rd);
|
|
15
|
-
goto(`/user/login?${error}${rd ? 'rd=' + encodeURIComponent(rd) : ''}`, { replaceState: true });
|
|
16
|
-
}
|
|
17
|
-
else {
|
|
18
|
-
console.log('login redirect vanilla');
|
|
19
|
-
goto('/user/login', { replaceState: true });
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
export async function logout() {
|
|
23
|
-
await clearUser();
|
|
24
|
-
goto(`/user/login`);
|
|
25
|
-
sendUserToast('you have been logged out');
|
|
26
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
// SvelteKit-specific utilities
|
|
2
|
-
// This file should only be imported in SvelteKit apps as it depends on $app/environment
|
|
3
|
-
import * as runed from 'runed/kit';
|
|
4
|
-
// The original from runed has a weird behavior with dedup reads causing duplicate effect runs
|
|
5
|
-
// (Every field has to be derived to avoid it : https://runed.dev/docs/utilities/use-search-params)
|
|
6
|
-
export function useSearchParams(schema, options) {
|
|
7
|
-
let params = runed.useSearchParams(schema, options);
|
|
8
|
-
let keys = Object.keys(schema.shape ?? {});
|
|
9
|
-
let obj = { ...params };
|
|
10
|
-
for (const key of keys) {
|
|
11
|
-
// Somehow using $derived does not trigger reactivity sometimes ...
|
|
12
|
-
// (e.g: filters.arg in RunsPage.svelte updates in the URL but does not trigger reactivity)
|
|
13
|
-
let derivedVal = $state(params[key]);
|
|
14
|
-
Object.defineProperty(obj, key, {
|
|
15
|
-
get: () => {
|
|
16
|
-
if (typeof derivedVal === 'string')
|
|
17
|
-
return decodeURIComponent(derivedVal);
|
|
18
|
-
return derivedVal;
|
|
19
|
-
},
|
|
20
|
-
set: (v) => {
|
|
21
|
-
const val = typeof v === 'string' ? encodeURIComponent(v) : v;
|
|
22
|
-
params[key] = val;
|
|
23
|
-
derivedVal = val;
|
|
24
|
-
},
|
|
25
|
-
enumerable: true,
|
|
26
|
-
configurable: true
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
return obj;
|
|
30
|
-
}
|