windmill-components 1.596.1 → 1.612.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/appPolicy/myFunction.es.js +1337 -0
- package/dist/sharedUtils/assets/tokens/colorTokensConfig.d.ts +2 -0
- package/dist/sharedUtils/base.d.ts +1 -0
- package/dist/sharedUtils/cloud.d.ts +1 -0
- package/dist/sharedUtils/common.d.ts +108 -0
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/count.d.ts +5 -0
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/delete.d.ts +5 -0
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/insert.d.ts +5 -0
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/select.d.ts +11 -0
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/update.d.ts +11 -0
- package/dist/sharedUtils/components/apps/components/display/dbtable/utils.d.ts +84 -0
- package/dist/sharedUtils/components/apps/editor/appPolicy.d.ts +6 -0
- package/dist/sharedUtils/components/apps/editor/appUtilsCore.d.ts +7 -0
- package/dist/sharedUtils/components/apps/editor/appUtilsS3.d.ts +22 -0
- package/dist/sharedUtils/components/apps/editor/commonAppUtils.d.ts +10 -0
- package/dist/sharedUtils/components/apps/editor/component/components.d.ts +5305 -0
- package/dist/sharedUtils/components/apps/editor/component/default-codes.d.ts +3 -0
- package/dist/sharedUtils/components/apps/editor/component/index.d.ts +3 -0
- package/dist/sharedUtils/components/apps/editor/component/sets.d.ts +7 -0
- package/dist/sharedUtils/components/apps/editor/componentsPanel/componentDefaultProps.d.ts +3 -0
- package/dist/sharedUtils/components/apps/gridUtils.d.ts +14 -0
- package/dist/sharedUtils/components/apps/inputType.d.ts +176 -0
- package/dist/sharedUtils/components/apps/rx.d.ts +29 -0
- package/dist/sharedUtils/components/apps/sharedTypes.d.ts +19 -0
- package/dist/sharedUtils/components/apps/types.d.ts +274 -0
- package/dist/sharedUtils/components/common/alert/model.d.ts +2 -0
- package/dist/sharedUtils/components/common/badge/model.d.ts +8 -0
- package/dist/sharedUtils/components/common/button/model.d.ts +45 -0
- package/dist/sharedUtils/components/common/fileInput/model.d.ts +1 -0
- package/dist/sharedUtils/components/common/index.d.ts +24 -0
- package/dist/sharedUtils/components/common/skeleton/model.d.ts +21 -0
- package/dist/sharedUtils/components/dbTypes.d.ts +11 -0
- package/dist/sharedUtils/components/diff_drawer.d.ts +26 -0
- package/dist/sharedUtils/components/ducklake.d.ts +1 -0
- package/dist/sharedUtils/components/flows/scheduleUtils.d.ts +7 -0
- package/dist/sharedUtils/components/random_positive_adjetive.d.ts +1 -0
- package/dist/sharedUtils/components/raw_apps/rawAppPolicy.d.ts +10 -0
- package/dist/sharedUtils/components/raw_apps/utils.d.ts +15 -0
- package/dist/sharedUtils/components/triggers/email/utils.d.ts +4 -0
- package/dist/sharedUtils/components/triggers/gcp/utils.d.ts +2 -0
- package/dist/sharedUtils/components/triggers/http/utils.d.ts +11 -0
- package/dist/sharedUtils/components/triggers/kafka/utils.d.ts +2 -0
- package/dist/sharedUtils/components/triggers/mqtt/utils.d.ts +2 -0
- package/dist/sharedUtils/components/triggers/nats/utils.d.ts +2 -0
- package/dist/sharedUtils/components/triggers/postgres/utils.d.ts +8 -0
- package/dist/sharedUtils/components/triggers/sqs/utils.d.ts +2 -0
- package/dist/sharedUtils/components/triggers/triggers.svelte.d.ts +32 -0
- package/dist/sharedUtils/components/triggers/utils.d.ts +81 -0
- package/dist/sharedUtils/components/triggers/websocket/utils.d.ts +2 -0
- package/dist/sharedUtils/components/triggers.d.ts +20 -0
- package/dist/sharedUtils/gen/core/ApiError.d.ts +10 -0
- package/dist/sharedUtils/gen/core/ApiRequestOptions.d.ts +13 -0
- package/dist/sharedUtils/gen/core/ApiResult.d.ts +7 -0
- package/dist/sharedUtils/gen/core/CancelablePromise.d.ts +26 -0
- package/dist/sharedUtils/gen/core/OpenAPI.d.ts +27 -0
- package/dist/sharedUtils/gen/core/request.d.ts +29 -0
- package/dist/sharedUtils/gen/index.d.ts +6 -0
- package/dist/sharedUtils/gen/schemas.gen.d.ts +6192 -0
- package/dist/sharedUtils/gen/services.gen.d.ts +5741 -0
- package/dist/sharedUtils/gen/types.gen.d.ts +20152 -0
- package/dist/sharedUtils/history.svelte.d.ts +9 -0
- package/dist/sharedUtils/hub.d.ts +48 -0
- package/dist/sharedUtils/jsr.json +6 -0
- package/dist/sharedUtils/lib.d.ts +5 -0
- package/dist/sharedUtils/lib.es.js +1426 -0
- package/dist/sharedUtils/package.json +12 -0
- package/dist/sharedUtils/schema.d.ts +3 -0
- package/dist/sharedUtils/stores.d.ts +96 -0
- package/dist/sharedUtils/svelte5Utils.svelte.d.ts +49 -0
- package/dist/sharedUtils/toast.d.ts +8 -0
- package/dist/sharedUtils/utils.d.ts +250 -0
- package/package/assets/tokens/tokens.json +11 -1
- package/package/ata/apis.js +78 -5
- package/package/components/AddUser.svelte +1 -1
- package/package/components/CenteredModal.svelte +32 -24
- package/package/components/CenteredModal.svelte.d.ts +7 -27
- package/package/components/CenteredPage.svelte +5 -2
- package/package/components/CenteredPage.svelte.d.ts +2 -0
- package/package/components/ConcurrentJobsChart.svelte +3 -2
- package/package/components/ConcurrentJobsChart.svelte.d.ts +2 -2
- package/package/components/CustomPopover.svelte +20 -23
- package/package/components/CustomPopover.svelte.d.ts +14 -39
- package/package/components/DBManager.svelte +105 -17
- package/package/components/DBManager.svelte.d.ts +2 -1
- package/package/components/DBManagerContent.svelte +4 -3
- package/package/components/DBManagerContent.svelte.d.ts +1 -1
- package/package/components/DBTableEditor.svelte +210 -171
- package/package/components/DBTableEditor.svelte.d.ts +22 -3
- package/package/components/Description.svelte +3 -2
- package/package/components/Dev.svelte +36 -2
- package/package/components/DiffDrawer.svelte +8 -29
- package/package/components/DiffEditor.svelte +32 -2
- package/package/components/DisplayResult.svelte +32 -24
- package/package/components/Editor.svelte +70 -16
- package/package/components/Editor.svelte.d.ts +3 -0
- package/package/components/EditorBar.svelte +1 -1
- package/package/components/FakeMonacoPlaceHolder.svelte +1 -1
- package/package/components/FlowBuilder.svelte +17 -11
- package/package/components/FlowDiffViewer.svelte +37 -0
- package/package/components/FlowDiffViewer.svelte.d.ts +7 -0
- package/package/components/FlowPreviewContent.svelte +3 -2
- package/package/components/FlowPreviewResult.svelte +0 -4
- package/package/components/FlowStatusViewerInner.svelte +50 -33
- package/package/components/FlowStatusViewerInner.svelte.d.ts +1 -1
- package/package/components/FlowStatusWaitingForEvents.svelte +27 -23
- package/package/components/FlowStatusWaitingForEvents.svelte.d.ts +4 -18
- package/package/components/FlowViewer.svelte +103 -2
- package/package/components/FlowViewer.svelte.d.ts +9 -3
- package/package/components/ForkWorkspaceBanner.svelte +16 -13
- package/package/components/GraphqlSchemaViewer.svelte +8 -1
- package/package/components/HistoricInputs.svelte +25 -27
- package/package/components/HistoricInputs.svelte.d.ts +2 -2
- package/package/components/InstanceSetting.svelte +38 -0
- package/package/components/InviteUser.svelte +16 -42
- package/package/components/InviteUser.svelte.d.ts +4 -18
- package/package/components/JobOtelTraces.svelte +287 -0
- package/package/components/JobOtelTraces.svelte.d.ts +6 -0
- package/package/components/JsonInputs.svelte +6 -8
- package/package/components/JsonInputs.svelte.d.ts +7 -8
- package/package/components/LogViewer.svelte +91 -33
- package/package/components/Login.svelte +21 -0
- package/package/components/ManualPopover.svelte +5 -6
- package/package/components/ManualPopover.svelte.d.ts +9 -35
- package/package/components/MemoryFootprintViewer.svelte +2 -6
- package/package/components/ModulePreview.svelte +23 -21
- package/package/components/ModulePreview.svelte.d.ts +1 -0
- package/package/components/Path.svelte +2 -2
- package/package/components/Path.svelte.d.ts +1 -1
- package/package/components/ResourcePicker.svelte +3 -0
- package/package/components/ResourcePicker.svelte.d.ts +1 -0
- package/package/components/RunButton.svelte +5 -15
- package/package/components/RunButton.svelte.d.ts +7 -19
- package/package/components/RunChart.svelte +8 -4
- package/package/components/RunChart.svelte.d.ts +2 -2
- package/package/components/RunFormAdvancedPopup.svelte +1 -1
- package/package/components/RunsPage.svelte +169 -539
- package/package/components/RunsPage.svelte.d.ts +5 -5
- package/package/components/S3FilePicker.svelte +7 -11
- package/package/components/S3FilePickerInner.svelte +2 -3
- package/package/components/S3FilePickerInner.svelte.d.ts +2 -2
- package/package/components/SchemaForm.svelte +26 -19
- package/package/components/SchemaFormWithArgPicker.svelte +4 -3
- package/package/components/ScriptBuilder.svelte +1 -1
- package/package/components/ScriptEditor.svelte +575 -101
- package/package/components/Section.svelte +3 -1
- package/package/components/ServiceLogsInner.svelte +4 -4
- package/package/components/SimpleEditor.svelte +46 -2
- package/package/components/SuperadminSettingsInner.svelte +1 -1
- package/package/components/TemplateEditor.svelte +54 -29
- package/package/components/TemplateEditor.svelte.d.ts +13 -102
- package/package/components/UserSettings.svelte +1 -1
- package/package/components/WorkerTagPicker.svelte +1 -1
- package/package/components/WorkerTagSelect.svelte +5 -2
- package/package/components/WorkspaceTutorials.svelte +5 -0
- package/package/components/apps/components/buttons/AppButton.svelte +21 -6
- package/package/components/apps/components/buttons/AppForm.svelte +2 -1
- package/package/components/apps/components/buttons/AppFormButton.svelte +2 -1
- package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +0 -4
- package/package/components/apps/components/display/dbtable/metadata.js +69 -30
- package/package/components/apps/components/display/dbtable/queries/alterTable.d.ts +46 -0
- package/package/components/apps/components/display/dbtable/queries/alterTable.js +314 -0
- package/package/components/apps/components/display/dbtable/queries/alterTable.test.d.ts +1 -0
- package/package/components/apps/components/display/dbtable/queries/alterTable.test.js +867 -0
- package/package/components/apps/components/display/dbtable/queries/createTable.d.ts +2 -24
- package/package/components/apps/components/display/dbtable/queries/createTable.js +11 -25
- package/package/components/apps/components/display/dbtable/queries/dbQueriesUtils.d.ts +9 -0
- package/package/components/apps/components/display/dbtable/queries/dbQueriesUtils.js +45 -0
- package/package/components/apps/components/display/dbtable/queries/relationalKeys.d.ts +47 -0
- package/package/components/apps/components/display/dbtable/queries/relationalKeys.js +402 -0
- package/package/components/apps/components/display/dbtable/queries/select.d.ts +2 -0
- package/package/components/apps/components/display/dbtable/queries/select.js +37 -6
- package/package/components/apps/components/display/dbtable/tableEditor.d.ts +35 -0
- package/package/components/apps/components/display/dbtable/tableEditor.js +49 -0
- package/package/components/apps/components/display/dbtable/utils.d.ts +10 -1
- package/package/components/apps/components/display/dbtable/utils.js +52 -20
- 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 +3 -2
- 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 +8 -1
- package/package/components/apps/editor/AppEditorHeaderDeploy.svelte +32 -29
- 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 +49 -30
- package/package/components/apps/editor/PublicApp.svelte.d.ts +1 -0
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +77 -7
- 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 +10 -1
- package/package/components/apps/inputType.d.ts +6 -1
- package/package/components/auditLogs/AuditLogsFilters.svelte +9 -17
- 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 +5 -3
- package/package/components/common/languageIcons/TypeScript.svelte.d.ts +1 -0
- package/package/components/common/modal/Modal.svelte +3 -3
- package/package/components/copilot/autocomplete/Autocompletor.js +3 -2
- package/package/components/copilot/chat/AIButtonStyle.d.ts +1 -1
- package/package/components/copilot/chat/AIButtonStyle.js +2 -1
- package/package/components/copilot/chat/AIChat.svelte +3 -1
- package/package/components/copilot/chat/AIChatDisplay.svelte +89 -4
- package/package/components/copilot/chat/AIChatInput.svelte +275 -0
- package/package/components/copilot/chat/AIChatManager.svelte.js +107 -1
- package/package/components/copilot/chat/AiChatLayout.svelte +15 -30
- package/package/components/copilot/chat/AppAvailableContextList.svelte +263 -0
- package/package/components/copilot/chat/AppAvailableContextList.svelte.d.ts +13 -0
- package/package/components/copilot/chat/ContextElementBadge.svelte +44 -0
- package/package/components/copilot/chat/DatatableCreationPolicy.svelte +32 -33
- package/package/components/copilot/chat/ProviderModelSelector.svelte +1 -1
- package/package/components/copilot/chat/__tests__/app/appEvalHelpers.js +3 -0
- package/package/components/copilot/chat/__tests__/flow/flowEvalHelpers.js +4 -0
- package/package/components/copilot/chat/app/core.d.ts +56 -15
- package/package/components/copilot/chat/app/core.js +141 -22
- package/package/components/copilot/chat/context.d.ts +59 -2
- package/package/components/copilot/chat/context.js +6 -2
- package/package/components/copilot/chat/flow/FlowAIChat.svelte +22 -0
- package/package/components/copilot/chat/flow/core.d.ts +3 -1
- package/package/components/copilot/chat/flow/core.js +29 -2
- package/package/components/copilot/chat/flow/openFlow.json +1 -1
- package/package/components/copilot/chat/flow/openFlowZod.d.ts +1 -0
- package/package/components/copilot/chat/flow/openFlowZod.js +14 -2
- package/package/components/copilot/chat/script/core.d.ts +4 -1
- package/package/components/copilot/chat/script/core.js +38 -2
- package/package/components/copilot/chat/shared.d.ts +10 -0
- package/package/components/copilot/chat/shared.js +24 -0
- package/package/components/copilot/lib.d.ts +1 -1
- package/package/components/custom_ui.d.ts +1 -0
- package/package/components/dbOps.d.ts +18 -4
- package/package/components/dbOps.js +25 -3
- package/package/components/debug/DebugConsole.svelte +277 -0
- package/package/components/debug/DebugConsole.svelte.d.ts +13 -0
- package/package/components/debug/DebugPanel.svelte +97 -0
- package/package/components/debug/DebugPanel.svelte.d.ts +11 -0
- package/package/components/debug/DebugToolbar.svelte +148 -0
- package/package/components/debug/DebugToolbar.svelte.d.ts +17 -0
- package/package/components/debug/DebugVariableViewer.svelte +115 -0
- package/package/components/debug/DebugVariableViewer.svelte.d.ts +11 -0
- package/package/components/debug/MonacoDebugger.svelte +384 -0
- package/package/components/debug/MonacoDebugger.svelte.d.ts +15 -0
- package/package/components/debug/dapClient.d.ts +192 -0
- package/package/components/debug/dapClient.js +426 -0
- package/package/components/debug/debugUtils.d.ts +30 -0
- package/package/components/debug/debugUtils.js +131 -0
- package/package/components/debug/index.d.ts +75 -0
- package/package/components/debug/index.js +82 -0
- package/package/components/flows/CreateActionsApp.svelte +6 -4
- package/package/components/flows/DebounceLimit.svelte.d.ts +1 -1
- package/package/components/flows/FlowHistoryInner.svelte +15 -4
- package/package/components/flows/content/AgentToolWrapper.svelte +1 -1
- package/package/components/flows/content/FlowEditorDrawer.svelte +124 -0
- package/package/components/flows/content/FlowEditorDrawer.svelte.d.ts +22 -0
- package/package/components/flows/content/FlowInput.svelte +211 -37
- package/package/components/flows/content/FlowModuleComponent.svelte +553 -67
- package/package/components/flows/content/FlowModuleEarlyStop.svelte +8 -10
- package/package/components/flows/content/FlowModuleHeader.svelte +7 -4
- package/package/components/flows/content/FlowModuleWorkerTagSelect.svelte +1 -1
- package/package/components/flows/content/McpOAuthConnect.svelte +217 -0
- package/package/components/flows/content/McpOAuthConnect.svelte.d.ts +7 -0
- package/package/components/flows/content/McpToolEditor.svelte +50 -37
- package/package/components/flows/content/McpToolEditor.svelte.d.ts +0 -1
- package/package/components/flows/conversations/FlowChat.svelte +16 -2
- package/package/components/flows/conversations/FlowChat.svelte.d.ts +2 -1
- package/package/components/flows/conversations/FlowChatInterface.svelte +103 -6
- package/package/components/flows/conversations/FlowChatInterface.svelte.d.ts +2 -0
- package/package/components/flows/conversations/FlowChatManager.svelte.js +53 -21
- package/package/components/flows/header/FlowImportExportMenu.svelte +1 -1
- package/package/components/flows/propPicker/PropPickerWrapper.svelte +3 -1
- package/package/components/flows/types.d.ts +2 -0
- package/package/components/git_sync/GitSyncRepositoryCard.svelte +16 -8
- package/package/components/home/ItemsList.svelte +5 -5
- package/package/components/home/TutorialBanner.svelte +34 -18
- package/package/components/icons/CssIcon.svelte +20 -0
- package/package/components/icons/CssIcon.svelte.d.ts +7 -25
- package/package/components/icons/HtmlIcon.svelte +20 -0
- package/package/components/icons/HtmlIcon.svelte.d.ts +8 -0
- package/package/components/icons/JavaScriptIcon.svelte +10 -2
- package/package/components/icons/JavaScriptIcon.svelte.d.ts +1 -0
- package/package/components/icons/JsonIcon.svelte +8 -2
- package/package/components/icons/JsonIcon.svelte.d.ts +1 -0
- package/package/components/icons/LessIcon.svelte +16 -0
- package/package/components/icons/LessIcon.svelte.d.ts +8 -0
- package/package/components/icons/MarkdownIcon.svelte +20 -0
- package/package/components/icons/MarkdownIcon.svelte.d.ts +8 -0
- package/package/components/icons/ReactIcon.svelte +10 -2
- package/package/components/icons/ReactIcon.svelte.d.ts +1 -0
- package/package/components/icons/SassIcon.svelte +28 -0
- package/package/components/icons/SassIcon.svelte.d.ts +8 -0
- package/package/components/icons/SvelteIcon.svelte +10 -2
- package/package/components/icons/SvelteIcon.svelte.d.ts +1 -0
- package/package/components/icons/VueIcon.svelte +10 -2
- package/package/components/icons/VueIcon.svelte.d.ts +1 -0
- package/package/components/icons/YamlIcon.svelte +20 -0
- package/package/components/icons/YamlIcon.svelte.d.ts +8 -0
- package/package/components/instanceSettings/SecretBackendConfig.svelte +514 -0
- package/package/components/instanceSettings/SecretBackendConfig.svelte.d.ts +8 -0
- package/package/components/instanceSettings.d.ts +2 -1
- package/package/components/instanceSettings.js +32 -1
- package/package/components/jobs/JobPreview.svelte +46 -39
- package/package/components/jobs/JobPreview.svelte.d.ts +1 -0
- package/package/components/monacoLanguagesOptions.js +16 -15
- package/package/components/propertyPicker/PropPicker.svelte +16 -2
- package/package/components/propertyPicker/PropPicker.svelte.d.ts +2 -0
- package/package/components/raw_apps/DefaultDatabaseSelector.svelte +9 -5
- package/package/components/raw_apps/FileEditorIcon.svelte +12 -7
- package/package/components/raw_apps/FileEditorIcon.svelte.d.ts +2 -0
- package/package/components/raw_apps/FileTreeNode.svelte +119 -83
- package/package/components/raw_apps/RawAppBackgroundRunner.svelte +88 -8
- package/package/components/raw_apps/RawAppDataTableList.svelte +12 -9
- package/package/components/raw_apps/RawAppEditor.svelte +218 -68
- package/package/components/raw_apps/RawAppEditorHeader.svelte +33 -16
- package/package/components/raw_apps/RawAppHistoryList.svelte +264 -80
- package/package/components/raw_apps/RawAppHistoryList.svelte.d.ts +1 -0
- package/package/components/raw_apps/RawAppHistoryManager.svelte.d.ts +15 -1
- package/package/components/raw_apps/RawAppHistoryManager.svelte.js +46 -12
- package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +549 -47
- package/package/components/raw_apps/RawAppInlineScriptEditor.svelte.d.ts +31 -5
- package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte +25 -18
- package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte.d.ts +1 -0
- package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +141 -10
- package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte.d.ts +8 -0
- package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte +2 -1
- package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte.d.ts +9 -1
- package/package/components/raw_apps/RawAppInputsSpecEditor.svelte +47 -3
- package/package/components/raw_apps/RawAppInputsSpecEditor.svelte.d.ts +2 -2
- package/package/components/raw_apps/RawAppModules.svelte +13 -7
- package/package/components/raw_apps/RawAppPreview.svelte +48 -6
- package/package/components/raw_apps/RawAppSidebar.svelte +194 -125
- package/package/components/raw_apps/RawAppSidebar.svelte.d.ts +1 -0
- package/package/components/raw_apps/RunnableRow.svelte +41 -0
- package/package/components/raw_apps/RunnableRow.svelte.d.ts +11 -0
- package/package/components/raw_apps/utils.d.ts +1 -1
- package/package/components/raw_apps/utils.js +76 -18
- package/package/components/runs/ManuelDatePicker.svelte +3 -3
- package/package/components/runs/ManuelDatePicker.svelte.d.ts +3 -3
- package/package/components/runs/NoWorkerWithTagWarning.svelte +5 -1
- package/package/components/runs/RunsFilter.svelte +75 -63
- package/package/components/runs/RunsFilter.svelte.d.ts +35 -4
- 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/runs/useJobsLoader.svelte.d.ts +34 -0
- package/package/components/runs/useJobsLoader.svelte.js +507 -0
- package/package/components/scriptEditor/LogPanel.svelte +17 -2
- package/package/components/scriptEditor/LogPanel.svelte.d.ts +2 -0
- package/package/components/select/SelectDropdown.svelte +2 -2
- package/package/components/settings/AIPromptsModal.svelte +88 -0
- package/package/components/settings/AIPromptsModal.svelte.d.ts +11 -0
- package/package/components/settings/ChangeWorkspaceColor.svelte +4 -3
- package/package/components/settings/ChangeWorkspaceId.svelte +14 -10
- package/package/components/settings/ChangeWorkspaceName.svelte +7 -6
- package/package/components/settings/UserAIPromptsSettings.svelte +56 -15
- package/package/components/settings/WorkspaceOperatorSettings.svelte +68 -85
- package/package/components/settings/WorkspaceUserSettings.svelte +531 -406
- package/package/components/sidebar/MenuButton.svelte +46 -24
- package/package/components/sidebar/MenuButton.svelte.d.ts +2 -0
- package/package/components/sidebar/MultiplayerMenu.svelte +3 -3
- package/package/components/sidebar/OperatorMenu.svelte +62 -87
- package/package/components/sidebar/SidebarContent.svelte +7 -2
- package/package/components/sidebar/WorkspaceMenu.svelte +35 -85
- package/package/components/sqlTypeService.js +4 -3
- package/package/components/table/DataTable.svelte +3 -2
- package/package/components/table/DataTable.svelte.d.ts +1 -0
- package/package/components/text_input/TextInput.svelte +3 -0
- package/package/components/text_input/TextInput.svelte.d.ts +2 -0
- package/package/components/tutorials/FlowBuilderLiveTutorial.svelte +6 -35
- package/package/components/tutorials/RunsTutorial.svelte +399 -0
- package/package/components/{schema/SchemaPicker.svelte.d.ts → tutorials/RunsTutorial.svelte.d.ts} +11 -12
- package/package/components/tutorials/TroubleshootFlowTutorial.svelte +5 -20
- package/package/components/tutorials/utils.d.ts +16 -0
- package/package/components/tutorials/utils.js +96 -0
- package/package/components/tutorials/workspace/WorkspaceOnboardingOperatorTutorial.svelte +133 -0
- package/package/components/{SavedInputs.svelte.d.ts → tutorials/workspace/WorkspaceOnboardingOperatorTutorial.svelte.d.ts} +8 -11
- package/package/components/vscode.js +6 -6
- package/package/components/workspace/WorkspaceCard.svelte +184 -0
- package/package/components/workspace/WorkspaceCard.svelte.d.ts +24 -0
- package/package/components/workspace/WorkspaceIcon.svelte +21 -0
- package/package/components/workspace/WorkspaceIcon.svelte.d.ts +9 -0
- package/package/components/workspace/WorkspaceTreeView.svelte +331 -0
- package/package/components/workspace/WorkspaceTreeView.svelte.d.ts +15 -0
- package/package/components/workspaceSettings/AISettings.svelte +146 -108
- package/package/components/workspaceSettings/CreateWorkspace.svelte +25 -11
- package/package/components/workspaceSettings/DucklakeSettings.svelte +46 -23
- package/package/components/workspaceSettings/DucklakeSettings.svelte.d.ts +2 -1
- package/package/components/workspaceSettings/ModelTokenLimits.svelte +14 -18
- package/package/components/workspaceSettings/StorageSettings.svelte +280 -241
- package/package/components/workspaceSettings/StorageSettings.svelte.d.ts +1 -0
- package/package/consts.js +4 -1
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +126 -0
- package/package/gen/schemas.gen.js +126 -0
- package/package/gen/services.gen.d.ts +160 -2
- package/package/gen/services.gen.js +319 -4
- package/package/gen/types.gen.d.ts +607 -2
- package/package/hubPaths.json +3 -2
- package/package/infer.js +2 -0
- package/package/monaco_workers/graphql.worker.bundle.js +121 -121
- package/package/rawAppWmillTs.d.ts +11 -0
- package/package/rawAppWmillTs.js +38 -1
- package/package/svelte5Utils.svelte.d.ts +9 -0
- package/package/svelte5Utils.svelte.js +51 -1
- package/package/tutorialUtils.js +0 -4
- package/package/tutorials/config.js +31 -3
- package/package/tutorials/roleUtils.d.ts +1 -1
- package/package/tutorials/roleUtils.js +6 -2
- package/package/utils.js +159 -1
- package/package.json +16 -17
- package/package/components/SavedInputs.svelte +0 -416
- package/package/components/runs/JobsLoader.svelte +0 -468
- package/package/components/runs/JobsLoader.svelte.d.ts +0 -49
- package/package/components/schema/SchemaPicker.svelte +0 -92
|
@@ -1,6 +1,12 @@
|
|
|
1
|
-
<script lang="ts">import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
1
|
+
<script lang="ts">import { displayDate } from '../../utils';
|
|
2
|
+
import { Circle, CircleDot, CircleDotDashed, CircleDashed } from 'lucide-svelte';
|
|
3
|
+
import { twMerge } from 'tailwind-merge';
|
|
4
|
+
let { entries, branches, selectedId, onSelect, onSelectCurrent } = $props();
|
|
5
|
+
// Constants for layout
|
|
6
|
+
const LINE_X = 8; // X position of main timeline line (center of dots)
|
|
7
|
+
const BRANCH_OFFSET_X = 45; // How far branches are offset horizontally
|
|
8
|
+
const ENTRY_HEIGHT = 28; // Height of each entry
|
|
9
|
+
const CURRENT_HEIGHT = 32; // Height of current state button
|
|
4
10
|
// Build a map of fork points to their branches for rendering
|
|
5
11
|
const branchesByForkPoint = $derived(branches.reduce((acc, branch) => {
|
|
6
12
|
if (!acc[branch.forkPointId]) {
|
|
@@ -9,98 +15,276 @@ const branchesByForkPoint = $derived(branches.reduce((acc, branch) => {
|
|
|
9
15
|
acc[branch.forkPointId].push(branch);
|
|
10
16
|
return acc;
|
|
11
17
|
}, {}));
|
|
12
|
-
// Entries in reverse order (newest first)
|
|
18
|
+
// Entries in reverse order (newest first) for display
|
|
13
19
|
const reversedEntries = $derived(entries.slice().reverse());
|
|
20
|
+
// Calculate positions for rendering
|
|
21
|
+
const entryPositions = $derived.by(() => {
|
|
22
|
+
const positions = {};
|
|
23
|
+
let currentY = CURRENT_HEIGHT + 12; // Start below current button
|
|
24
|
+
reversedEntries.forEach((entry, index) => {
|
|
25
|
+
// For each entry, calculate space needed for branches above it
|
|
26
|
+
const entryBranches = branchesByForkPoint[entry.id] ?? [];
|
|
27
|
+
const branchSpaceAbove = entryBranches.reduce((total, branch) => {
|
|
28
|
+
return total + branch.entries.length * ENTRY_HEIGHT;
|
|
29
|
+
}, 0);
|
|
30
|
+
// Add space for branches above this entry
|
|
31
|
+
currentY += branchSpaceAbove;
|
|
32
|
+
// Position this entry
|
|
33
|
+
positions[entry.id] = { x: LINE_X, y: currentY, index };
|
|
34
|
+
// Move to next entry position
|
|
35
|
+
currentY += ENTRY_HEIGHT;
|
|
36
|
+
});
|
|
37
|
+
return positions;
|
|
38
|
+
});
|
|
39
|
+
// Calculate total height needed for the container
|
|
40
|
+
const totalHeight = $derived.by(() => {
|
|
41
|
+
const mainTimelineMaxY = Object.values(entryPositions).reduce((max, pos) => Math.max(max, pos.y), 0);
|
|
42
|
+
const branchMaxY = Object.values(branchPositions)
|
|
43
|
+
.flatMap((groups) => Object.values(groups).flatMap((nodes) => nodes.map((node) => node.y)))
|
|
44
|
+
.reduce((max, y) => Math.max(max, y), 0);
|
|
45
|
+
return Math.max(mainTimelineMaxY, branchMaxY, 150) + 20; // Add padding at bottom
|
|
46
|
+
});
|
|
47
|
+
// Calculate branch positions
|
|
48
|
+
const branchPositions = $derived.by(() => {
|
|
49
|
+
const positions = {};
|
|
50
|
+
Object.entries(branchesByForkPoint).forEach(([forkPointId, forkBranches]) => {
|
|
51
|
+
const forkPoint = entryPositions[Number(forkPointId)];
|
|
52
|
+
if (!forkPoint)
|
|
53
|
+
return;
|
|
54
|
+
positions[Number(forkPointId)] = {};
|
|
55
|
+
forkBranches.forEach((branch) => {
|
|
56
|
+
positions[Number(forkPointId)][branch.id] = [];
|
|
57
|
+
// Branch flows from fork point upward (toward newer/current)
|
|
58
|
+
// Start just above the fork point and continue upward
|
|
59
|
+
// Oldest branch entry is closest to fork point, newest is furthest
|
|
60
|
+
let currentY = forkPoint.y - ENTRY_HEIGHT;
|
|
61
|
+
branch.entries.forEach((entry) => {
|
|
62
|
+
positions[Number(forkPointId)][branch.id].push({
|
|
63
|
+
id: entry.id,
|
|
64
|
+
x: LINE_X + BRANCH_OFFSET_X,
|
|
65
|
+
y: currentY
|
|
66
|
+
});
|
|
67
|
+
currentY -= ENTRY_HEIGHT; // Move upward (decreasing Y)
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
return positions;
|
|
72
|
+
});
|
|
73
|
+
// Helper to create SVG path for branch connection
|
|
74
|
+
function createBranchPath(startX, startY, endX, endY) {
|
|
75
|
+
// Control points are vertically offset to create vertical tangents
|
|
76
|
+
const controlOffset = Math.abs(startY - endY) * 0.85; // 85% of vertical distance for very intense curve
|
|
77
|
+
// Both tangents point upward (toward smaller Y values)
|
|
78
|
+
// Start control point: above the start point
|
|
79
|
+
// End control point: above the end point (since endY < startY, we add to go further up)
|
|
80
|
+
return `M ${startX} ${startY} C ${startX} ${startY - controlOffset}, ${endX} ${endY + controlOffset}, ${endX} ${endY}`;
|
|
81
|
+
}
|
|
14
82
|
</script>
|
|
15
83
|
|
|
84
|
+
{#snippet timelineButton(
|
|
85
|
+
label: string,
|
|
86
|
+
timestamp: string | null,
|
|
87
|
+
isSelected: boolean,
|
|
88
|
+
onClick: () => void,
|
|
89
|
+
position: { x: number; y: number },
|
|
90
|
+
type: 'current' | 'main' | 'branch' = 'main'
|
|
91
|
+
)}
|
|
92
|
+
{@const colors = {
|
|
93
|
+
current: {
|
|
94
|
+
selected: 'text-accent',
|
|
95
|
+
default: 'text-primary',
|
|
96
|
+
textSelected: 'text-accent',
|
|
97
|
+
bgSelected: 'bg-surface-accent-selected'
|
|
98
|
+
},
|
|
99
|
+
main: {
|
|
100
|
+
selected: 'text-accent',
|
|
101
|
+
default: 'text-primary',
|
|
102
|
+
textSelected: 'text-accent',
|
|
103
|
+
bgSelected: 'bg-surface-accent-selected'
|
|
104
|
+
},
|
|
105
|
+
branch: {
|
|
106
|
+
selected: 'text-amber-500 dark:text-amber-400',
|
|
107
|
+
default: 'text-secondary',
|
|
108
|
+
textSelected: 'text-amber-600 dark:text-amber-400',
|
|
109
|
+
bgSelected: 'bg-amber-50 dark:bg-amber-900/20'
|
|
110
|
+
}
|
|
111
|
+
}}
|
|
112
|
+
{@const color = colors[type]}
|
|
113
|
+
|
|
114
|
+
<button
|
|
115
|
+
onclick={onClick}
|
|
116
|
+
aria-label={timestamp ? `Snapshot from ${displayDate(timestamp, true, false)}` : label}
|
|
117
|
+
aria-current={isSelected ? 'true' : 'false'}
|
|
118
|
+
class={'absolute flex items-center gap-1 transition-all duration-200 animate-fadeIn'}
|
|
119
|
+
style="left: {position.x - 6}px; top: {position.y - 6}px;"
|
|
120
|
+
>
|
|
121
|
+
{#if isSelected}
|
|
122
|
+
{#if type === 'current'}
|
|
123
|
+
<CircleDotDashed size={12} class="bg-surface {color.selected}" />
|
|
124
|
+
{:else}
|
|
125
|
+
<CircleDot size={12} class="bg-surface {color.selected}" />
|
|
126
|
+
{/if}
|
|
127
|
+
{:else if type === 'current'}
|
|
128
|
+
<CircleDashed size={12} class="bg-surface {color.default}" />
|
|
129
|
+
{:else}
|
|
130
|
+
<Circle size={12} class="bg-surface {color.default}" />
|
|
131
|
+
{/if}
|
|
132
|
+
<span
|
|
133
|
+
class={twMerge(
|
|
134
|
+
'text-2xs truncate px-2 py-1 rounded-md',
|
|
135
|
+
type === 'current' ? 'font-semibold text-emphasis' : 'font-normal',
|
|
136
|
+
isSelected ? color.textSelected : 'text-tertiary',
|
|
137
|
+
isSelected ? color.bgSelected : 'hover:bg-surface-hover'
|
|
138
|
+
)}
|
|
139
|
+
>
|
|
140
|
+
{timestamp ? displayDate(timestamp, true, false) : label}
|
|
141
|
+
</span>
|
|
142
|
+
</button>
|
|
143
|
+
{/snippet}
|
|
144
|
+
|
|
16
145
|
{#if entries.length === 0}
|
|
17
146
|
<div class="text-tertiary py-2 text-center text-2xs">
|
|
18
147
|
No snapshots yet. Auto-saved every 5 min.
|
|
19
148
|
</div>
|
|
20
149
|
{:else}
|
|
21
|
-
<div
|
|
22
|
-
|
|
23
|
-
|
|
150
|
+
<div
|
|
151
|
+
class="relative w-full"
|
|
152
|
+
style="height: {totalHeight}px; transition: height 0.3s cubic-bezier(0.4, 0, 0.2, 1);"
|
|
153
|
+
role="list"
|
|
154
|
+
aria-label="History timeline"
|
|
155
|
+
>
|
|
156
|
+
<!-- SVG for lines and connections -->
|
|
157
|
+
<svg class="absolute inset-0 pointer-events-none" style="width: 100%; height: 100%;">
|
|
158
|
+
<!-- Always show the main line if there are entries -->
|
|
159
|
+
{#if reversedEntries.length > 0}
|
|
160
|
+
{@const mainTimelineMaxY = Math.max(...Object.values(entryPositions).map((pos) => pos.y))}
|
|
161
|
+
{@const branchMaxY = Object.values(branchPositions)
|
|
162
|
+
.flatMap((groups) =>
|
|
163
|
+
Object.values(groups).flatMap((nodes) => nodes.map((node) => node.y))
|
|
164
|
+
)
|
|
165
|
+
.reduce((max, y) => Math.max(max, y), 0)}
|
|
166
|
+
{@const maxY = Math.max(mainTimelineMaxY, branchMaxY)}
|
|
167
|
+
<line
|
|
168
|
+
x1={LINE_X}
|
|
169
|
+
y1={8}
|
|
170
|
+
x2={LINE_X}
|
|
171
|
+
y2={maxY + 8}
|
|
172
|
+
stroke="currentColor"
|
|
173
|
+
stroke-width="1"
|
|
174
|
+
opacity="1"
|
|
175
|
+
class="text-primary"
|
|
176
|
+
style="transition: y2 0.3s cubic-bezier(0.4, 0, 0.2, 1)"
|
|
177
|
+
/>
|
|
178
|
+
{/if}
|
|
24
179
|
|
|
25
|
-
|
|
26
|
-
{
|
|
27
|
-
|
|
28
|
-
|
|
180
|
+
<!-- Branch connection lines -->
|
|
181
|
+
{#each Object.entries(branchPositions) as [forkPointId, branchGroups] (forkPointId)}
|
|
182
|
+
{@const forkPoint = entryPositions[Number(forkPointId)]}
|
|
183
|
+
{#if forkPoint}
|
|
184
|
+
{#each Object.entries(branchGroups) as [branchId, branchNodes] (branchId)}
|
|
185
|
+
{#if branchNodes.length > 0}
|
|
186
|
+
<!-- Connection from fork point to first branch entry -->
|
|
187
|
+
<path
|
|
188
|
+
d={createBranchPath(forkPoint.x, forkPoint.y, branchNodes[0].x, branchNodes[0].y)}
|
|
189
|
+
stroke="currentColor"
|
|
190
|
+
stroke-width="1.5"
|
|
191
|
+
fill="none"
|
|
192
|
+
stroke-dasharray="4 2"
|
|
193
|
+
opacity="0.6"
|
|
194
|
+
class="text-secondary transition-all duration-300"
|
|
195
|
+
/>
|
|
29
196
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
>
|
|
49
|
-
<!-- Branch dot -->
|
|
50
|
-
<div
|
|
51
|
-
class={classNames(
|
|
52
|
-
'w-1 h-1 rounded-full',
|
|
53
|
-
isBranchSelected
|
|
54
|
-
? 'bg-amber-500 dark:bg-amber-400'
|
|
55
|
-
: 'bg-gray-300 dark:bg-gray-600'
|
|
56
|
-
)}
|
|
57
|
-
></div>
|
|
58
|
-
<span
|
|
59
|
-
class={classNames(
|
|
60
|
-
'text-2xs truncate',
|
|
61
|
-
isBranchSelected
|
|
62
|
-
? 'text-amber-600 dark:text-amber-400 font-medium'
|
|
63
|
-
: 'text-tertiary'
|
|
64
|
-
)}
|
|
65
|
-
>
|
|
66
|
-
{displayDate(branchEntry.timestamp.toISOString(), true, false)}
|
|
67
|
-
</span>
|
|
68
|
-
</button>
|
|
197
|
+
<!-- Vertical line connecting branch entries within this branch -->
|
|
198
|
+
{#if branchNodes.length > 1}
|
|
199
|
+
{@const firstNode = branchNodes[0]}
|
|
200
|
+
{@const lastNode = branchNodes[branchNodes.length - 1]}
|
|
201
|
+
<line
|
|
202
|
+
x1={firstNode.x}
|
|
203
|
+
y1={firstNode.y}
|
|
204
|
+
x2={lastNode.x}
|
|
205
|
+
y2={lastNode.y}
|
|
206
|
+
stroke="currentColor"
|
|
207
|
+
stroke-width="1.5"
|
|
208
|
+
stroke-dasharray="4 2"
|
|
209
|
+
opacity="0.6"
|
|
210
|
+
class="text-secondary"
|
|
211
|
+
style="transition: y1 0.3s cubic-bezier(0.4, 0, 0.2, 1), y2 0.3s cubic-bezier(0.4, 0, 0.2, 1)"
|
|
212
|
+
/>
|
|
213
|
+
{/if}
|
|
214
|
+
{/if}
|
|
69
215
|
{/each}
|
|
70
|
-
|
|
216
|
+
{/if}
|
|
71
217
|
{/each}
|
|
218
|
+
</svg>
|
|
72
219
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
)
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
></div>
|
|
220
|
+
<!-- Interactive elements -->
|
|
221
|
+
<div class="relative">
|
|
222
|
+
<!-- Current Working State -->
|
|
223
|
+
{@render timelineButton(
|
|
224
|
+
'Current',
|
|
225
|
+
null,
|
|
226
|
+
selectedId === undefined,
|
|
227
|
+
() => onSelectCurrent?.(),
|
|
228
|
+
{ x: LINE_X, y: 6 },
|
|
229
|
+
'current'
|
|
230
|
+
)}
|
|
231
|
+
|
|
232
|
+
<!-- Main timeline entries -->
|
|
233
|
+
{#each reversedEntries as entry (entry.id)}
|
|
234
|
+
{@const pos = entryPositions[entry.id]}
|
|
235
|
+
{@const isSelected = selectedId === entry.id}
|
|
236
|
+
{@const entryBranches = branchesByForkPoint[entry.id] ?? []}
|
|
91
237
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
238
|
+
{#if pos}
|
|
239
|
+
<!-- Main entry button -->
|
|
240
|
+
{@render timelineButton(
|
|
241
|
+
'',
|
|
242
|
+
entry.timestamp.toISOString(),
|
|
243
|
+
isSelected,
|
|
244
|
+
() => onSelect(entry.id),
|
|
245
|
+
pos,
|
|
246
|
+
'main'
|
|
96
247
|
)}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
248
|
+
|
|
249
|
+
<!-- Branch entries -->
|
|
250
|
+
{#if entryBranches.length > 0}
|
|
251
|
+
{#each Object.values(branchPositions[entry.id] ?? {}) as branchNodes}
|
|
252
|
+
{#each branchNodes as branchNode (branchNode.id)}
|
|
253
|
+
{@const branchEntry = branches
|
|
254
|
+
.flatMap((b) => b.entries)
|
|
255
|
+
.find((e) => e.id === branchNode.id)}
|
|
256
|
+
{@const isBranchSelected = selectedId === branchNode.id}
|
|
257
|
+
{#if branchEntry}
|
|
258
|
+
{@render timelineButton(
|
|
259
|
+
'',
|
|
260
|
+
branchEntry.timestamp.toISOString(),
|
|
261
|
+
isBranchSelected,
|
|
262
|
+
() => onSelect(branchNode.id),
|
|
263
|
+
{ x: branchNode.x, y: branchNode.y - 4 },
|
|
264
|
+
'branch'
|
|
265
|
+
)}
|
|
266
|
+
{/if}
|
|
267
|
+
{/each}
|
|
268
|
+
{/each}
|
|
100
269
|
{/if}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
{/each}
|
|
270
|
+
{/if}
|
|
271
|
+
{/each}
|
|
272
|
+
</div>
|
|
105
273
|
</div>
|
|
106
274
|
{/if}
|
|
275
|
+
|
|
276
|
+
<style>
|
|
277
|
+
@keyframes fadeIn {
|
|
278
|
+
from {
|
|
279
|
+
opacity: 0;
|
|
280
|
+
transform: translateY(-10px);
|
|
281
|
+
}
|
|
282
|
+
to {
|
|
283
|
+
opacity: 1;
|
|
284
|
+
transform: translateY(0);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
.animate-fadeIn {
|
|
289
|
+
animation: fadeIn 0.3s cubic-bezier(0.4, 0, 0.2, 1) forwards;
|
|
290
|
+
}</style>
|
|
@@ -4,6 +4,7 @@ interface Props {
|
|
|
4
4
|
branches: HistoryBranch[];
|
|
5
5
|
selectedId: number | undefined;
|
|
6
6
|
onSelect: (id: number) => void;
|
|
7
|
+
onSelectCurrent?: () => void;
|
|
7
8
|
}
|
|
8
9
|
declare const RawAppHistoryList: import("svelte").Component<Props, {}, "">;
|
|
9
10
|
type RawAppHistoryList = ReturnType<typeof RawAppHistoryList>;
|
|
@@ -54,6 +54,7 @@ export declare class RawAppHistoryManager {
|
|
|
54
54
|
private entryIdCounter;
|
|
55
55
|
private branchIdCounter;
|
|
56
56
|
private hasPendingChanges;
|
|
57
|
+
private temporaryCurrentState;
|
|
57
58
|
readonly hasEntries: boolean;
|
|
58
59
|
readonly entryCount: number;
|
|
59
60
|
readonly allEntries: HistoryEntry[];
|
|
@@ -61,6 +62,7 @@ export declare class RawAppHistoryManager {
|
|
|
61
62
|
readonly canSnapshot: boolean;
|
|
62
63
|
readonly selectedEntryId: number | undefined;
|
|
63
64
|
readonly needsSnapshotBeforeNav: boolean;
|
|
65
|
+
readonly hasTemporaryState: boolean;
|
|
64
66
|
readonly canUndo: boolean;
|
|
65
67
|
readonly canRedo: boolean;
|
|
66
68
|
constructor(config: HistoryConfig);
|
|
@@ -115,9 +117,21 @@ export declare class RawAppHistoryManager {
|
|
|
115
117
|
*/
|
|
116
118
|
selectEntry(id: number): HistoryEntry | undefined;
|
|
117
119
|
/**
|
|
118
|
-
* Clear selection (go back to
|
|
120
|
+
* Clear selection (go back to current state)
|
|
119
121
|
*/
|
|
120
122
|
clearSelection(): void;
|
|
123
|
+
/**
|
|
124
|
+
* Save current state temporarily when viewing history
|
|
125
|
+
*/
|
|
126
|
+
saveTemporaryCurrentState(files: Record<string, string>, runnables: Record<string, Runnable>, summary: string, data: RawAppData): void;
|
|
127
|
+
/**
|
|
128
|
+
* Get and clear temporary current state
|
|
129
|
+
*/
|
|
130
|
+
getAndClearTemporaryState(): HistoryEntry | undefined;
|
|
131
|
+
/**
|
|
132
|
+
* Convert temporary current state to a real snapshot
|
|
133
|
+
*/
|
|
134
|
+
convertTemporaryToSnapshot(): void;
|
|
121
135
|
/**
|
|
122
136
|
* Get entry by ID (searches main timeline and branches)
|
|
123
137
|
*/
|
|
@@ -31,6 +31,8 @@ export class RawAppHistoryManager {
|
|
|
31
31
|
branchIdCounter = $state(0);
|
|
32
32
|
// Track if current state has pending changes
|
|
33
33
|
hasPendingChanges = $state(false);
|
|
34
|
+
// Temporary storage for current state when viewing history
|
|
35
|
+
temporaryCurrentState = $state(undefined);
|
|
34
36
|
// Derived state
|
|
35
37
|
hasEntries = $derived(this.entries.length > 0);
|
|
36
38
|
entryCount = $derived(this.entries.length);
|
|
@@ -49,6 +51,8 @@ export class RawAppHistoryManager {
|
|
|
49
51
|
});
|
|
50
52
|
// Whether we need to save current state before navigating
|
|
51
53
|
needsSnapshotBeforeNav = $derived(this.currentIndex === -1 && this.currentBranchId === undefined && this.hasPendingChanges);
|
|
54
|
+
// Whether we have a temporary current state saved
|
|
55
|
+
hasTemporaryState = $derived(this.temporaryCurrentState !== undefined);
|
|
52
56
|
canUndo = $derived(this.currentIndex > 0 ||
|
|
53
57
|
(this.currentIndex === -1 && this.entries.length > 1) ||
|
|
54
58
|
(this.currentIndex === -1 && this.entries.length === 1 && this.hasPendingChanges));
|
|
@@ -111,18 +115,23 @@ export class RawAppHistoryManager {
|
|
|
111
115
|
* When making changes from a historical position, create a branch from the "future"
|
|
112
116
|
*/
|
|
113
117
|
markPendingChanges() {
|
|
114
|
-
// If we're
|
|
115
|
-
if (this.currentBranchId !== undefined) {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
118
|
+
// If we're viewing history (not at current state)
|
|
119
|
+
if (this.currentIndex !== -1 || this.currentBranchId !== undefined) {
|
|
120
|
+
// Convert temporary current state to a real snapshot first
|
|
121
|
+
this.convertTemporaryToSnapshot();
|
|
122
|
+
// If we're on a branch and making changes, that branch becomes main
|
|
123
|
+
if (this.currentBranchId !== undefined) {
|
|
124
|
+
this.promoteBranchToMain();
|
|
125
|
+
}
|
|
126
|
+
// If we're at a historical position on main timeline
|
|
127
|
+
else if (this.currentIndex !== -1 && this.currentIndex < this.entries.length - 1) {
|
|
128
|
+
this.createBranchFromFuture();
|
|
129
|
+
}
|
|
130
|
+
// Clear selection - we're now at current state
|
|
131
|
+
this.currentIndex = -1;
|
|
132
|
+
this.currentBranchId = undefined;
|
|
133
|
+
this.currentBranchEntryIndex = -1;
|
|
121
134
|
}
|
|
122
|
-
// Clear selection - we're now in a new unsaved state
|
|
123
|
-
this.currentIndex = -1;
|
|
124
|
-
this.currentBranchId = undefined;
|
|
125
|
-
this.currentBranchEntryIndex = -1;
|
|
126
135
|
this.hasPendingChanges = true;
|
|
127
136
|
}
|
|
128
137
|
/**
|
|
@@ -244,12 +253,36 @@ export class RawAppHistoryManager {
|
|
|
244
253
|
return undefined;
|
|
245
254
|
}
|
|
246
255
|
/**
|
|
247
|
-
* Clear selection (go back to
|
|
256
|
+
* Clear selection (go back to current state)
|
|
248
257
|
*/
|
|
249
258
|
clearSelection() {
|
|
250
259
|
this.currentIndex = -1;
|
|
251
260
|
this.currentBranchId = undefined;
|
|
252
261
|
this.currentBranchEntryIndex = -1;
|
|
262
|
+
this.hasPendingChanges = false;
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Save current state temporarily when viewing history
|
|
266
|
+
*/
|
|
267
|
+
saveTemporaryCurrentState(files, runnables, summary, data) {
|
|
268
|
+
this.temporaryCurrentState = this.createSnapshot(files, runnables, summary, data);
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Get and clear temporary current state
|
|
272
|
+
*/
|
|
273
|
+
getAndClearTemporaryState() {
|
|
274
|
+
const temp = this.temporaryCurrentState;
|
|
275
|
+
this.temporaryCurrentState = undefined;
|
|
276
|
+
return temp;
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Convert temporary current state to a real snapshot
|
|
280
|
+
*/
|
|
281
|
+
convertTemporaryToSnapshot() {
|
|
282
|
+
if (this.temporaryCurrentState) {
|
|
283
|
+
this.addSnapshot(this.temporaryCurrentState);
|
|
284
|
+
this.temporaryCurrentState = undefined;
|
|
285
|
+
}
|
|
253
286
|
}
|
|
254
287
|
/**
|
|
255
288
|
* Get entry by ID (searches main timeline and branches)
|
|
@@ -305,6 +338,7 @@ export class RawAppHistoryManager {
|
|
|
305
338
|
this.currentIndex = -1;
|
|
306
339
|
this.currentBranchId = undefined;
|
|
307
340
|
this.currentBranchEntryIndex = -1;
|
|
341
|
+
this.temporaryCurrentState = undefined;
|
|
308
342
|
}
|
|
309
343
|
/**
|
|
310
344
|
* Cleanup resources
|