windmill-components 1.655.2 → 1.665.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/components/ApiConnectForm.svelte +6 -6
- package/package/components/ApiConnectForm.svelte.d.ts +3 -2
- package/package/components/AppConnectDrawer.svelte +3 -1
- package/package/components/AppConnectDrawer.svelte.d.ts +2 -0
- package/package/components/AppConnectInner.svelte +137 -72
- package/package/components/AppConnectInner.svelte.d.ts +1 -0
- package/package/components/CompareWorkspaces.svelte +32 -24
- package/package/components/DBManager.svelte +7 -13
- package/package/components/DBTable.svelte +2 -2
- package/package/components/DBTableEditor.svelte +39 -31
- package/package/components/DBTableEditor.svelte.d.ts +2 -2
- package/package/components/DedicatedWorkersSelector.svelte +292 -85
- package/package/components/DeployWorkspace.svelte +30 -26
- package/package/components/Dev.svelte +7 -2
- package/package/components/Dev.svelte.d.ts +3 -0
- package/package/components/Editor.svelte +17 -13
- package/package/components/EditorBar.svelte.d.ts +1 -1
- package/package/components/FilterSearchbar.svelte +1 -1
- package/package/components/FirstStepInputs.svelte +0 -1
- package/package/components/FlowBuilder.svelte +5 -0
- package/package/components/FlowGraphDiffViewer.svelte +3 -0
- package/package/components/FlowGraphViewer.svelte +7 -4
- package/package/components/FlowGraphViewer.svelte.d.ts +1 -0
- package/package/components/FlowGraphViewerStep.svelte +3 -3
- package/package/components/FlowGraphViewerStep.svelte.d.ts +1 -0
- package/package/components/FlowPreviewContent.svelte +11 -1
- package/package/components/FlowStatusViewer.svelte +4 -1
- package/package/components/FlowStatusViewer.svelte.d.ts +3 -1
- package/package/components/FlowStatusViewerInner.svelte +46 -11
- package/package/components/FlowStatusViewerInner.svelte.d.ts +4 -1
- package/package/components/FlowStatusWaitingForEvents.svelte +48 -103
- package/package/components/FlowTimeline.svelte +76 -84
- package/package/components/FlowViewer.svelte +40 -22
- package/package/components/FlowViewer.svelte.d.ts +8 -2
- package/package/components/GroupEditor.svelte +7 -9
- package/package/components/HistoricList.svelte +12 -4
- package/package/components/InstanceGroupEditor.svelte +92 -19
- package/package/components/InstanceSetting.svelte +16 -6
- package/package/components/InstanceSettings.svelte +51 -7
- package/package/components/InstanceSettings.svelte.d.ts +2 -1
- package/package/components/JobLoader.svelte +5 -4
- package/package/components/JobLoader.svelte.d.ts +1 -1
- package/package/components/Login.svelte +9 -1
- package/package/components/NoMainFuncBadge.svelte +2 -2
- package/package/components/OnBehalfOfSelector.svelte +49 -37
- package/package/components/OnBehalfOfSelector.svelte.d.ts +16 -6
- package/package/components/ResourceEditor.svelte +16 -11
- package/package/components/ResourceEditor.svelte.d.ts +1 -0
- package/package/components/ResourceEditorDrawer.svelte +3 -1
- package/package/components/ResourceEditorDrawer.svelte.d.ts +6 -2
- package/package/components/ResourcePicker.svelte +10 -5
- package/package/components/ResourcePicker.svelte.d.ts +2 -0
- package/package/components/S3FilePickerInner.svelte +12 -4
- package/package/components/SchemaForm.svelte +20 -14
- package/package/components/SchemaForm.svelte.d.ts +2 -2
- package/package/components/ScriptBuilder.svelte +158 -18
- package/package/components/ScriptEditor.svelte +674 -150
- package/package/components/ScriptEditor.svelte.d.ts +7 -3
- package/package/components/SuperadminSettings.svelte +4 -1
- package/package/components/SuperadminSettingsInner.svelte +176 -67
- package/package/components/SuperadminSettingsInner.svelte.d.ts +3 -1
- package/package/components/SyncResourceTypes.svelte +31 -0
- package/package/components/SyncResourceTypes.svelte.d.ts +6 -0
- package/package/components/TimelineBar.svelte +14 -8
- package/package/components/TimelineBar.svelte.d.ts +1 -0
- package/package/components/WorkerGroup.svelte +11 -4
- package/package/components/WorkflowTimeline.svelte +386 -58
- package/package/components/WorkflowTimeline.svelte.d.ts +6 -1
- package/package/components/WorkspaceDependenciesEditor.svelte +32 -2
- package/package/components/apps/components/display/dbtable/DeleteRow.svelte +2 -2
- package/package/components/apps/components/display/dbtable/InsertRowRunnable.svelte +2 -2
- package/package/components/apps/components/display/dbtable/UpdateCell.svelte +2 -2
- package/package/components/apps/components/display/dbtable/metadata.js +44 -222
- package/package/components/apps/components/display/dbtable/queries/count.d.ts +9 -0
- package/package/components/apps/components/display/dbtable/queries/delete.d.ts +9 -0
- package/package/components/apps/components/display/dbtable/queries/insert.d.ts +9 -0
- package/package/components/apps/components/display/dbtable/queries/relationalKeys.d.ts +7 -0
- package/package/components/apps/components/display/dbtable/queries/relationalKeys.js +1 -1
- package/package/components/apps/components/display/dbtable/queries/select.d.ts +9 -0
- package/package/components/apps/components/display/dbtable/queries/update.d.ts +9 -0
- package/package/components/apps/editor/AppEditorHeaderDeploy.svelte +11 -9
- package/package/components/apps/editor/appUtilsS3.js +2 -2
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +53 -10
- package/package/components/common/clearableInput/ClearableInput.svelte +3 -7
- package/package/components/common/confirmationModal/ConfirmationModal.svelte +7 -1
- package/package/components/common/confirmationModal/ConfirmationModal.svelte.d.ts +1 -0
- package/package/components/common/drawer/Disposable.svelte +24 -2
- package/package/components/common/drawer/Disposable.svelte.d.ts +5 -0
- package/package/components/common/modal/Modal.svelte +84 -58
- package/package/components/common/table/AppRow.svelte.d.ts +1 -1
- package/package/components/common/table/FlowRow.svelte.d.ts +1 -1
- package/package/components/common/table/ScriptRow.svelte +31 -3
- package/package/components/common/table/ScriptRow.svelte.d.ts +1 -1
- package/package/components/copilot/MetadataGen.svelte +8 -5
- package/package/components/copilot/MetadataGen.svelte.d.ts +1 -0
- package/package/components/copilot/TestAIKey.svelte +2 -1
- package/package/components/copilot/TestAIKey.svelte.d.ts +1 -0
- package/package/components/copilot/chat/AIChatManager.svelte.js +62 -80
- package/package/components/copilot/chat/HistoryManager.svelte.d.ts +1 -0
- package/package/components/copilot/chat/HistoryManager.svelte.js +3 -0
- package/package/components/copilot/chat/__tests__/app/appChat.eval.test.js +47 -31
- package/package/components/copilot/chat/__tests__/app/appEvalComparison.d.ts +1 -6
- package/package/components/copilot/chat/__tests__/app/appEvalComparison.js +18 -13
- package/package/components/copilot/chat/__tests__/app/appEvalRunner.d.ts +14 -5
- package/package/components/copilot/chat/__tests__/app/appEvalRunner.js +13 -12
- package/package/components/copilot/chat/__tests__/flow/flowChat.eval.test.js +46 -29
- package/package/components/copilot/chat/__tests__/flow/flowEvalComparison.js +1 -4
- package/package/components/copilot/chat/__tests__/flow/flowEvalRunner.d.ts +14 -5
- package/package/components/copilot/chat/__tests__/flow/flowEvalRunner.js +13 -12
- package/package/components/copilot/chat/__tests__/shared/baseEvalRunner.d.ts +5 -8
- package/package/components/copilot/chat/__tests__/shared/baseEvalRunner.js +82 -108
- package/package/components/copilot/chat/__tests__/shared/baseLLMEvaluator.d.ts +4 -7
- package/package/components/copilot/chat/__tests__/shared/baseLLMEvaluator.js +19 -11
- package/package/components/copilot/chat/__tests__/shared/types.d.ts +3 -0
- package/package/components/copilot/chat/anthropic.d.ts +9 -2
- package/package/components/copilot/chat/anthropic.js +12 -6
- package/package/components/copilot/chat/app/core.js +5 -12
- package/package/components/copilot/chat/chatLoop.d.ts +40 -0
- package/package/components/copilot/chat/chatLoop.js +97 -0
- package/package/components/copilot/chat/openai-responses.d.ts +8 -2
- package/package/components/copilot/chat/openai-responses.js +17 -17
- package/package/components/copilot/chat/shared.d.ts +2 -1
- package/package/components/copilot/chat/shared.js +2 -2
- package/package/components/copilot/lib.d.ts +14 -5
- package/package/components/copilot/lib.js +68 -48
- package/package/components/dbOps.d.ts +2 -2
- package/package/components/dbOps.js +129 -53
- package/package/components/debug/debugUtils.d.ts +5 -0
- package/package/components/debug/debugUtils.js +20 -0
- package/package/components/debug/index.d.ts +1 -1
- package/package/components/debug/index.js +3 -7
- package/package/components/flows/CreateActionsFlow.svelte +221 -43
- package/package/components/flows/DebounceLimit.svelte +42 -9
- package/package/components/flows/common/FlowCard.svelte +2 -1
- package/package/components/flows/common/FlowCard.svelte.d.ts +1 -0
- package/package/components/flows/common/FlowCardHeader.svelte +14 -10
- package/package/components/flows/common/FlowCardHeader.svelte.d.ts +1 -0
- package/package/components/flows/content/AgentToolWrapper.svelte +2 -1
- package/package/components/flows/content/AgentToolWrapper.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowEditorPanel.svelte +1 -0
- package/package/components/flows/content/FlowModuleComponent.svelte +32 -18
- package/package/components/flows/content/FlowModuleComponent.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowModuleDebounce.svelte +46 -0
- package/package/components/flows/content/FlowModuleDebounce.svelte.d.ts +8 -0
- package/package/components/flows/content/FlowModuleEarlyStop.svelte +26 -5
- package/package/components/flows/content/FlowModuleWrapper.svelte +1 -0
- package/package/components/flows/content/FlowRetries.svelte +57 -57
- package/package/components/flows/content/FlowSelectionPanel.svelte +9 -14
- package/package/components/flows/content/FlowSelectionPanel.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowSettings.svelte +6 -6
- package/package/components/flows/content/ScriptEditorDrawer.svelte +1 -1
- package/package/components/flows/content/SuspendDrawer.svelte +0 -18
- package/package/components/flows/header/FlowYamlEditor.svelte +20 -4
- package/package/components/flows/map/FlowErrorHandlerItem.svelte +32 -14
- package/package/components/flows/map/FlowErrorHandlerItem.svelte.d.ts +1 -0
- package/package/components/flows/map/FlowModuleSchemaItem.svelte +7 -10
- package/package/components/flows/map/FlowModuleSchemaItemViewer.svelte +1 -8
- package/package/components/flows/map/FlowModuleSchemaItemViewer.svelte.d.ts +0 -2
- package/package/components/flows/map/FlowModuleSchemaMap.svelte +343 -137
- package/package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +1 -0
- package/package/components/flows/map/FlowStickyNode.svelte +24 -16
- package/package/components/flows/map/FlowStickyNode.svelte.d.ts +1 -0
- package/package/components/flows/map/VirtualItemWrapper.svelte +1 -1
- package/package/components/flows/pickers/PickHubScriptQuick.svelte.d.ts +1 -1
- package/package/components/flows/propPicker/OutputPickerInner.svelte +5 -1
- package/package/components/flows/scheduleUtils.js +3 -1
- package/package/components/flows/utils.svelte.js +6 -1
- package/package/components/git_sync/GitSyncContext.svelte.js +13 -2
- package/package/components/git_sync/GitSyncSection.svelte +135 -99
- package/package/components/graph/DragGhost.svelte +11 -2
- package/package/components/graph/FlowGraphV2.svelte +138 -42
- package/package/components/graph/FlowGraphV2.svelte.d.ts +15 -1
- package/package/components/graph/GroupActionBar.svelte +124 -0
- package/package/components/graph/GroupActionBar.svelte.d.ts +20 -0
- package/package/components/graph/GroupHeader.svelte +98 -0
- package/package/components/graph/GroupHeader.svelte.d.ts +11 -0
- package/package/components/graph/GroupHeaderBlock.svelte +58 -0
- package/package/components/graph/GroupHeaderBlock.svelte.d.ts +13 -0
- package/package/components/graph/GroupModuleIcons.svelte +163 -0
- package/package/components/graph/GroupModuleIcons.svelte.d.ts +11 -0
- package/package/components/graph/GroupNodeCard.svelte +127 -0
- package/package/components/graph/GroupNodeCard.svelte.d.ts +18 -0
- package/package/components/graph/GroupNoteArea.svelte +132 -0
- package/package/components/graph/GroupNoteArea.svelte.d.ts +11 -0
- package/package/components/graph/GroupOverlay.svelte +71 -0
- package/package/components/graph/GroupOverlay.svelte.d.ts +12 -0
- package/package/components/graph/MiniFlowGraph.svelte +17 -2
- package/package/components/graph/SelectionBoundingBox.svelte +14 -14
- package/package/components/graph/compoundLayout.d.ts +17 -1
- package/package/components/graph/compoundLayout.js +129 -14
- package/package/components/graph/flowStructure.d.ts +63 -0
- package/package/components/graph/flowStructure.js +422 -0
- package/package/components/graph/flowStructure.test.d.ts +1 -0
- package/package/components/graph/flowStructure.test.js +205 -0
- package/package/components/graph/graphBuilder.svelte.d.ts +52 -3
- package/package/components/graph/graphBuilder.svelte.js +170 -67
- package/package/components/graph/graphContext.d.ts +7 -0
- package/package/components/graph/groupDetectionUtils.d.ts +24 -1
- package/package/components/graph/groupDetectionUtils.js +101 -1
- package/package/components/graph/groupEditor.svelte.d.ts +105 -0
- package/package/components/graph/groupEditor.svelte.js +253 -0
- package/package/components/graph/groupedModulesProxy.svelte.d.ts +55 -0
- package/package/components/graph/groupedModulesProxy.svelte.js +130 -0
- package/package/components/graph/model.d.ts +2 -1
- package/package/components/graph/moveManager.svelte.js +0 -3
- package/package/components/graph/nodeExtraSpace.d.ts +32 -0
- package/package/components/graph/nodeExtraSpace.js +113 -0
- package/package/components/graph/noteColors.d.ts +1 -0
- package/package/components/graph/noteColors.js +20 -10
- package/package/components/graph/noteUtils.svelte.d.ts +0 -18
- package/package/components/graph/noteUtils.svelte.js +6 -41
- package/package/components/graph/renderers/edges/BaseEdge.svelte +26 -11
- package/package/components/graph/renderers/nodes/AIToolNode.svelte +24 -49
- package/package/components/graph/renderers/nodes/AIToolNode.svelte.d.ts +1 -4
- package/package/components/graph/renderers/nodes/AssetNode.svelte +1 -27
- package/package/components/graph/renderers/nodes/AssetNode.svelte.d.ts +0 -4
- package/package/components/graph/renderers/nodes/CollapsedGroupNode.svelte +85 -0
- package/package/components/graph/renderers/nodes/CollapsedGroupNode.svelte.d.ts +8 -0
- package/package/components/graph/renderers/nodes/ForLoopStartNode.svelte +3 -2
- package/package/components/graph/renderers/nodes/GroupEndNode.svelte +9 -0
- package/package/components/graph/renderers/nodes/GroupEndNode.svelte.d.ts +6 -0
- package/package/components/graph/renderers/nodes/GroupHeadNode.svelte +20 -0
- package/package/components/graph/renderers/nodes/GroupHeadNode.svelte.d.ts +8 -0
- package/package/components/graph/renderers/nodes/ModuleNode.svelte +8 -5
- package/package/components/graph/renderers/triggers/TriggersWrapper.svelte +1 -1
- package/package/components/graph/util.d.ts +5 -1
- package/package/components/graph/util.js +7 -5
- package/package/components/home/Item.svelte +1 -0
- package/package/components/home/ItemsList.svelte +1 -1
- package/package/components/icons/ActiveCampaignIcon.svelte +10 -0
- package/package/components/icons/ActiveCampaignIcon.svelte.d.ts +7 -0
- package/package/components/icons/AlgoliaIcon.svelte +7 -0
- package/package/components/icons/AlgoliaIcon.svelte.d.ts +7 -0
- package/package/components/icons/ApolloIcon.svelte +7 -0
- package/package/components/icons/ApolloIcon.svelte.d.ts +7 -0
- package/package/components/icons/BambooHrIcon.svelte +7 -0
- package/package/components/icons/BambooHrIcon.svelte.d.ts +7 -0
- package/package/components/icons/BaremetricsIcon.svelte +7 -0
- package/package/components/icons/BaremetricsIcon.svelte.d.ts +7 -0
- package/package/components/icons/BitlyIcon.svelte +7 -0
- package/package/components/icons/BitlyIcon.svelte.d.ts +7 -0
- package/package/components/icons/BloggerIcon.svelte +7 -0
- package/package/components/icons/BloggerIcon.svelte.d.ts +7 -0
- package/package/components/icons/BlueskyIcon.svelte +7 -0
- package/package/components/icons/BlueskyIcon.svelte.d.ts +7 -0
- package/package/components/icons/BoxIcon.svelte +7 -0
- package/package/components/icons/BoxIcon.svelte.d.ts +7 -0
- package/package/components/icons/BrevoIcon.svelte +7 -0
- package/package/components/icons/BrevoIcon.svelte.d.ts +7 -0
- package/package/components/icons/BrexIcon.svelte +7 -0
- package/package/components/icons/BrexIcon.svelte.d.ts +7 -0
- package/package/components/icons/BrowserlessIcon.svelte +7 -0
- package/package/components/icons/BrowserlessIcon.svelte.d.ts +7 -0
- package/package/components/icons/BubbleIcon.svelte +11 -0
- package/package/components/icons/BubbleIcon.svelte.d.ts +7 -0
- package/package/components/icons/BuildkiteIcon.svelte +7 -0
- package/package/components/icons/BuildkiteIcon.svelte.d.ts +7 -0
- package/package/components/icons/CalcomIcon.svelte +1 -1
- package/package/components/icons/CalendlyIcon.svelte +7 -0
- package/package/components/icons/CalendlyIcon.svelte.d.ts +7 -0
- package/package/components/icons/CircleCiIcon.svelte +7 -0
- package/package/components/icons/CircleCiIcon.svelte.d.ts +7 -0
- package/package/components/icons/CiscoIcon.svelte +7 -0
- package/package/components/icons/CiscoIcon.svelte.d.ts +7 -0
- package/package/components/icons/ClearbitIcon.svelte +7 -0
- package/package/components/icons/ClearbitIcon.svelte.d.ts +7 -0
- package/package/components/icons/ClerkIcon.svelte +7 -0
- package/package/components/icons/ClerkIcon.svelte.d.ts +7 -0
- package/package/components/icons/CloseIcon.svelte +37 -0
- package/package/components/icons/CloseIcon.svelte.d.ts +7 -0
- package/package/components/icons/CloudinaryIcon.svelte +7 -0
- package/package/components/icons/CloudinaryIcon.svelte.d.ts +7 -0
- package/package/components/icons/CockroachDbIcon.svelte +7 -0
- package/package/components/icons/CockroachDbIcon.svelte.d.ts +7 -0
- package/package/components/icons/CodaIcon.svelte +7 -0
- package/package/components/icons/CodaIcon.svelte.d.ts +7 -0
- package/package/components/icons/CohereIcon.svelte +16 -0
- package/package/components/icons/CohereIcon.svelte.d.ts +7 -0
- package/package/components/icons/CoinMarketCapIcon.svelte +7 -0
- package/package/components/icons/CoinMarketCapIcon.svelte.d.ts +7 -0
- package/package/components/icons/CoinbaseIcon.svelte +7 -0
- package/package/components/icons/CoinbaseIcon.svelte.d.ts +7 -0
- package/package/components/icons/ConfluenceIcon.svelte +7 -0
- package/package/components/icons/ConfluenceIcon.svelte.d.ts +7 -0
- package/package/components/icons/ContentfulIcon.svelte +7 -0
- package/package/components/icons/ContentfulIcon.svelte.d.ts +7 -0
- package/package/components/icons/ConvertKitIcon.svelte +7 -0
- package/package/components/icons/ConvertKitIcon.svelte.d.ts +7 -0
- package/package/components/icons/DatoCmsIcon.svelte +7 -0
- package/package/components/icons/DatoCmsIcon.svelte.d.ts +7 -0
- package/package/components/icons/DeelIcon.svelte +7 -0
- package/package/components/icons/DeelIcon.svelte.d.ts +7 -0
- package/package/components/icons/DeepLIcon.svelte +7 -0
- package/package/components/icons/DeepLIcon.svelte.d.ts +7 -0
- package/package/components/icons/DigitalOceanIcon.svelte +7 -0
- package/package/components/icons/DigitalOceanIcon.svelte.d.ts +7 -0
- package/package/components/icons/DiscourseIcon.svelte +7 -0
- package/package/components/icons/DiscourseIcon.svelte.d.ts +7 -0
- package/package/components/icons/DocusignIcon.svelte +7 -0
- package/package/components/icons/DocusignIcon.svelte.d.ts +7 -0
- package/package/components/icons/DropboxIcon.svelte +7 -0
- package/package/components/icons/DropboxIcon.svelte.d.ts +7 -0
- package/package/components/icons/EdgeDbIcon.svelte +16 -20
- package/package/components/icons/EventbriteIcon.svelte +10 -0
- package/package/components/icons/EventbriteIcon.svelte.d.ts +7 -0
- package/package/components/icons/FigmaIcon.svelte +7 -0
- package/package/components/icons/FigmaIcon.svelte.d.ts +7 -0
- package/package/components/icons/FlyIcon.svelte +7 -0
- package/package/components/icons/FlyIcon.svelte.d.ts +7 -0
- package/package/components/icons/FreshdeskIcon.svelte +7 -0
- package/package/components/icons/FreshdeskIcon.svelte.d.ts +7 -0
- package/package/components/icons/FrontAppIcon.svelte +7 -0
- package/package/components/icons/FrontAppIcon.svelte.d.ts +7 -0
- package/package/components/icons/GhostCmsIcon.svelte +7 -0
- package/package/components/icons/GhostCmsIcon.svelte.d.ts +7 -0
- package/package/components/icons/GiphyIcon.svelte +7 -0
- package/package/components/icons/GiphyIcon.svelte.d.ts +7 -0
- package/package/components/icons/GitBookIcon.svelte +7 -0
- package/package/components/icons/GitBookIcon.svelte.d.ts +7 -0
- package/package/components/icons/GroqIcon.svelte +7 -0
- package/package/components/icons/GroqIcon.svelte.d.ts +7 -0
- package/package/components/icons/HoneybadgerIcon.svelte +7 -0
- package/package/components/icons/HoneybadgerIcon.svelte.d.ts +7 -0
- package/package/components/icons/HttpIcon.svelte +1 -0
- package/package/components/icons/IftttIcon.svelte +7 -0
- package/package/components/icons/IftttIcon.svelte.d.ts +7 -0
- package/package/components/icons/IntercomIcon.svelte +7 -0
- package/package/components/icons/IntercomIcon.svelte.d.ts +7 -0
- package/package/components/icons/JoomlaIcon.svelte +7 -0
- package/package/components/icons/JoomlaIcon.svelte.d.ts +7 -0
- package/package/components/icons/LineIcon.svelte +7 -0
- package/package/components/icons/LineIcon.svelte.d.ts +7 -0
- package/package/components/icons/LinearIcon.svelte +7 -0
- package/package/components/icons/LinearIcon.svelte.d.ts +7 -0
- package/package/components/icons/LinodeIcon.svelte +7 -0
- package/package/components/icons/LinodeIcon.svelte.d.ts +7 -0
- package/package/components/icons/LumaAiIcon.svelte +39 -0
- package/package/components/icons/LumaAiIcon.svelte.d.ts +7 -0
- package/package/components/icons/MSTeamsIcon.svelte +20 -38
- package/package/components/icons/MSTeamsIcon.svelte.d.ts +2 -0
- package/package/components/icons/MagentoIcon.svelte +7 -0
- package/package/components/icons/MagentoIcon.svelte.d.ts +7 -0
- package/package/components/icons/MailchimpIcon.svelte +25 -13
- package/package/components/icons/MandrillIcon.svelte +7 -0
- package/package/components/icons/MandrillIcon.svelte.d.ts +7 -0
- package/package/components/icons/MauticIcon.svelte +7 -0
- package/package/components/icons/MauticIcon.svelte.d.ts +7 -0
- package/package/components/icons/MediumIcon.svelte +7 -0
- package/package/components/icons/MediumIcon.svelte.d.ts +7 -0
- package/package/components/icons/MiroIcon.svelte +7 -0
- package/package/components/icons/MiroIcon.svelte.d.ts +7 -0
- package/package/components/icons/MistralIcon.svelte +7 -0
- package/package/components/icons/MistralIcon.svelte.d.ts +7 -0
- package/package/components/icons/MixpanelIcon.svelte +7 -0
- package/package/components/icons/MixpanelIcon.svelte.d.ts +7 -0
- package/package/components/icons/MondayIcon.svelte +7 -0
- package/package/components/icons/MondayIcon.svelte.d.ts +7 -0
- package/package/components/icons/NeonDbIcon.svelte +23 -0
- package/package/components/icons/NeonDbIcon.svelte.d.ts +7 -0
- package/package/components/icons/NetlifyIcon.svelte +7 -0
- package/package/components/icons/NetlifyIcon.svelte.d.ts +7 -0
- package/package/components/icons/OneSignalIcon.svelte +9 -0
- package/package/components/icons/OneSignalIcon.svelte.d.ts +7 -0
- package/package/components/icons/OpenWeatherIcon.svelte +7 -0
- package/package/components/icons/OpenWeatherIcon.svelte.d.ts +7 -0
- package/package/components/icons/PagerDutyIcon.svelte +7 -0
- package/package/components/icons/PagerDutyIcon.svelte.d.ts +7 -0
- package/package/components/icons/PandaDocIcon.svelte +7 -0
- package/package/components/icons/PandaDocIcon.svelte.d.ts +7 -0
- package/package/components/icons/PaypalIcon.svelte +7 -0
- package/package/components/icons/PaypalIcon.svelte.d.ts +7 -0
- package/package/components/icons/PersonioIcon.svelte +7 -0
- package/package/components/icons/PersonioIcon.svelte.d.ts +7 -0
- package/package/components/icons/PinterestIcon.svelte +7 -0
- package/package/components/icons/PinterestIcon.svelte.d.ts +7 -0
- package/package/components/icons/PipedriveIcon.svelte +11 -0
- package/package/components/icons/PipedriveIcon.svelte.d.ts +7 -0
- package/package/components/icons/PlanetScaleIcon.svelte +7 -0
- package/package/components/icons/PlanetScaleIcon.svelte.d.ts +7 -0
- package/package/components/icons/PostmarkIcon.svelte +7 -0
- package/package/components/icons/PostmarkIcon.svelte.d.ts +7 -0
- package/package/components/icons/PusherIcon.svelte +7 -0
- package/package/components/icons/PusherIcon.svelte.d.ts +7 -0
- package/package/components/icons/QuickbooksIcon.svelte +13 -1
- package/package/components/icons/RaindropIcon.svelte +27 -0
- package/package/components/icons/RaindropIcon.svelte.d.ts +7 -0
- package/package/components/icons/ReadwiseIcon.svelte +12 -0
- package/package/components/icons/ReadwiseIcon.svelte.d.ts +7 -0
- package/package/components/icons/RenderIcon.svelte +7 -0
- package/package/components/icons/RenderIcon.svelte.d.ts +7 -0
- package/package/components/icons/ReplicateIcon.svelte +7 -0
- package/package/components/icons/ReplicateIcon.svelte.d.ts +7 -0
- package/package/components/icons/ResendIcon.svelte +1 -1
- package/package/components/icons/RestIcon.svelte +1 -0
- package/package/components/icons/RingCentralIcon.svelte +7 -0
- package/package/components/icons/RingCentralIcon.svelte.d.ts +7 -0
- package/package/components/icons/RocketChatIcon.svelte +7 -0
- package/package/components/icons/RocketChatIcon.svelte.d.ts +7 -0
- package/package/components/icons/RunPodIcon.svelte +8 -0
- package/package/components/icons/RunPodIcon.svelte.d.ts +7 -0
- package/package/components/icons/RustIcon.svelte +74 -56
- package/package/components/icons/SalesforceIcon.svelte +7 -0
- package/package/components/icons/SalesforceIcon.svelte.d.ts +7 -0
- package/package/components/icons/SegmentIcon.svelte +7 -0
- package/package/components/icons/SegmentIcon.svelte.d.ts +7 -0
- package/package/components/icons/SentryIcon.svelte +7 -0
- package/package/components/icons/SentryIcon.svelte.d.ts +7 -0
- package/package/components/icons/ServiceNowIcon.svelte +7 -0
- package/package/components/icons/ServiceNowIcon.svelte.d.ts +7 -0
- package/package/components/icons/ShortcutIcon.svelte +7 -0
- package/package/components/icons/ShortcutIcon.svelte.d.ts +7 -0
- package/package/components/icons/SigNozIcon.svelte +8 -0
- package/package/components/icons/SigNozIcon.svelte.d.ts +7 -0
- package/package/components/icons/SmartsheetIcon.svelte +7 -0
- package/package/components/icons/SmartsheetIcon.svelte.d.ts +7 -0
- package/package/components/icons/SpeechifyIcon.svelte +7 -0
- package/package/components/icons/SpeechifyIcon.svelte.d.ts +7 -0
- package/package/components/icons/SplitwiseIcon.svelte +7 -0
- package/package/components/icons/SplitwiseIcon.svelte.d.ts +7 -0
- package/package/components/icons/StravaIcon.svelte +7 -0
- package/package/components/icons/StravaIcon.svelte.d.ts +7 -0
- package/package/components/icons/TallyIcon.svelte +7 -0
- package/package/components/icons/TallyIcon.svelte.d.ts +7 -0
- package/package/components/icons/TelnyxIcon.svelte +19 -0
- package/package/components/icons/TelnyxIcon.svelte.d.ts +7 -0
- package/package/components/icons/ThreadsIcon.svelte +7 -0
- package/package/components/icons/ThreadsIcon.svelte.d.ts +7 -0
- package/package/components/icons/TodoistIcon.svelte +7 -0
- package/package/components/icons/TodoistIcon.svelte.d.ts +7 -0
- package/package/components/icons/TogetherAiIcon.svelte +23 -0
- package/package/components/icons/TogetherAiIcon.svelte.d.ts +7 -0
- package/package/components/icons/TrelloIcon.svelte +22 -1
- package/package/components/icons/TursoIcon.svelte +7 -0
- package/package/components/icons/TursoIcon.svelte.d.ts +7 -0
- package/package/components/icons/TwitchIcon.svelte +7 -0
- package/package/components/icons/TwitchIcon.svelte.d.ts +7 -0
- package/package/components/icons/TwitterIcon.svelte +7 -0
- package/package/components/icons/TwitterIcon.svelte.d.ts +7 -0
- package/package/components/icons/TypeformIcon.svelte +1 -1
- package/package/components/icons/VercelIcon.svelte +7 -0
- package/package/components/icons/VercelIcon.svelte.d.ts +7 -0
- package/package/components/icons/WebflowIcon.svelte +7 -0
- package/package/components/icons/WebflowIcon.svelte.d.ts +7 -0
- package/package/components/icons/WooCommerceIcon.svelte +7 -0
- package/package/components/icons/WooCommerceIcon.svelte.d.ts +7 -0
- package/package/components/icons/WordpressIcon.svelte +7 -0
- package/package/components/icons/WordpressIcon.svelte.d.ts +7 -0
- package/package/components/icons/XataIcon.svelte +13 -0
- package/package/components/icons/XataIcon.svelte.d.ts +7 -0
- package/package/components/icons/YelpIcon.svelte +7 -0
- package/package/components/icons/YelpIcon.svelte.d.ts +7 -0
- package/package/components/icons/YnabIcon.svelte +7 -0
- package/package/components/icons/YnabIcon.svelte.d.ts +7 -0
- package/package/components/icons/YoutubeIcon.svelte +7 -0
- package/package/components/icons/YoutubeIcon.svelte.d.ts +7 -0
- package/package/components/icons/ZendeskIcon.svelte +1 -1
- package/package/components/icons/ZeroTierIcon.svelte +7 -0
- package/package/components/icons/ZeroTierIcon.svelte.d.ts +7 -0
- package/package/components/icons/ZoomIcon.svelte +7 -0
- package/package/components/icons/ZoomIcon.svelte.d.ts +7 -0
- package/package/components/icons/index.d.ts +111 -1
- package/package/components/icons/index.js +225 -2
- package/package/components/instanceSettings/GhesAppSettings.svelte +161 -0
- package/package/components/instanceSettings/GhesAppSettings.svelte.d.ts +8 -0
- package/package/components/instanceSettings/IndexerMemorySettings.svelte +19 -8
- package/package/components/instanceSettings/InstanceAISettings.svelte +132 -0
- package/package/components/instanceSettings/InstanceAISettings.svelte.d.ts +10 -0
- package/package/components/instanceSettings/WorkspaceRegistries.svelte +293 -0
- package/package/components/instanceSettings/WorkspaceRegistries.svelte.d.ts +8 -0
- package/package/components/instanceSettings/WsConnectivityTest.svelte +177 -0
- package/package/components/instanceSettings/WsConnectivityTest.svelte.d.ts +7 -0
- package/package/components/instanceSettings.d.ts +3 -1
- package/package/components/instanceSettings.js +92 -2
- package/package/components/mcp/McpScopeSelector.svelte +408 -0
- package/package/components/mcp/McpScopeSelector.svelte.d.ts +7 -0
- package/package/components/meltComponents/Popover.svelte +0 -1
- package/package/components/raw_apps/RawAppPreview.svelte +6 -2
- package/package/components/recording/FlowRecordingReplay.svelte +94 -52
- package/package/components/recording/FlowRecordingReplay.svelte.d.ts +10 -1
- package/package/components/recording/ScriptRecordingReplay.svelte +139 -76
- package/package/components/recording/ScriptRecordingReplay.svelte.d.ts +10 -1
- package/package/components/runs/JobRunsPreview.svelte +8 -1
- package/package/components/runs/TimeframeSelect.svelte +0 -1
- package/package/components/schema/JobSchemaPicker.svelte +8 -2
- package/package/components/schema/JobSchemaPicker.svelte.d.ts +1 -0
- package/package/components/schema/SchemaFormDND.svelte +15 -3
- package/package/components/scriptEditor/LogPanel.svelte +78 -68
- package/package/components/script_builder.d.ts +1 -1
- package/package/components/scripts/CreateActionsScript.svelte +3 -3
- package/package/components/scripts/WacExportDrawer.svelte +127 -0
- package/package/components/scripts/WacExportDrawer.svelte.d.ts +8 -0
- package/package/components/scripts/scriptStore.svelte.d.ts +2 -0
- package/package/components/scripts/scriptStore.svelte.js +2 -0
- package/package/components/select/SelectDropdown.svelte +1 -1
- package/package/components/settings/AIPromptsModal.svelte +5 -2
- package/package/components/settings/AIPromptsModal.svelte.d.ts +1 -1
- package/package/components/settings/CloudQuotas.svelte +152 -0
- package/package/components/settings/CloudQuotas.svelte.d.ts +3 -0
- package/package/components/settings/CreateToken.svelte +15 -430
- package/package/components/settings/Trashbin.svelte +248 -0
- package/package/components/settings/Trashbin.svelte.d.ts +3 -0
- package/package/components/sidebar/MultiplayerMenu.svelte +14 -4
- package/package/components/triggers/DeleteTriggerButton.svelte +1 -0
- package/package/components/triggers/PermissionedAsLine.svelte +66 -0
- package/package/components/triggers/PermissionedAsLine.svelte.d.ts +9 -0
- package/package/components/triggers/TriggerEditorToolbar.svelte +2 -2
- package/package/components/triggers/TriggerTokens.svelte +3 -3
- package/package/components/triggers/email/EmailTriggerEditorInner.svelte +19 -1
- package/package/components/triggers/email/utils.js +3 -1
- package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +24 -4
- package/package/components/triggers/gcp/utils.js +2 -0
- package/package/components/triggers/http/RouteEditorConfigSection.svelte +22 -3
- package/package/components/triggers/http/RouteEditorInner.svelte +28 -6
- package/package/components/triggers/http/RoutesGenerator.svelte +13 -2
- package/package/components/triggers/http/utils.js +3 -1
- package/package/components/triggers/kafka/KafkaTriggerEditorInner.svelte +23 -6
- package/package/components/triggers/kafka/utils.js +3 -1
- package/package/components/triggers/mqtt/MqttTriggerEditorInner.svelte +27 -5
- package/package/components/triggers/mqtt/utils.js +2 -0
- package/package/components/triggers/native/NativeTriggerEditor.svelte +23 -1
- package/package/components/triggers/native/NativeTriggerTable.svelte +14 -3
- package/package/components/triggers/native/utils.js +3 -2
- package/package/components/triggers/nats/NatsTriggerEditorInner.svelte +19 -1
- package/package/components/triggers/nats/utils.js +2 -0
- package/package/components/triggers/postgres/PostgresTriggerEditorInner.svelte +19 -1
- package/package/components/triggers/postgres/utils.js +2 -0
- package/package/components/triggers/schedules/ScheduleEditorInner.svelte +29 -7
- package/package/components/triggers/sqs/SqsTriggerEditorInner.svelte +19 -1
- package/package/components/triggers/sqs/utils.js +2 -0
- package/package/components/triggers/utils.js +9 -2
- package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +24 -4
- package/package/components/triggers/websocket/utils.js +3 -1
- package/package/components/workspaceSettings/AISettings.svelte +342 -214
- package/package/components/workspaceSettings/AISettings.svelte.d.ts +18 -10
- package/package/components/workspaceSettings/CreateWorkspace.svelte +304 -196
- package/package/components/workspaceSettings/CustomInstanceDbWizardModal.svelte +1 -2
- package/package/components/workspaceSettings/DucklakeSettings.svelte +1 -1
- package/package/components/workspaceSettings/InstanceFallbackSettings.svelte +75 -0
- package/package/components/workspaceSettings/InstanceFallbackSettings.svelte.d.ts +9 -0
- package/package/components/workspaceSettings/StorageSettings.svelte +4 -35
- package/package/components/workspaceSettings/VolumeStorageSettings.svelte +80 -0
- package/package/components/workspaceSettings/VolumeStorageSettings.svelte.d.ts +10 -0
- package/package/components/workspaceSettings/WorkspaceIntegrations.svelte +4 -1
- package/package/forLater.js +4 -0
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +294 -94
- package/package/gen/schemas.gen.js +294 -94
- package/package/gen/services.gen.d.ts +121 -5
- package/package/gen/services.gen.js +237 -5
- package/package/gen/types.gen.d.ts +715 -91
- package/package/githubApp.js +19 -1
- package/package/hubPaths.json +8 -4
- package/package/infer.d.ts +1 -1
- package/package/infer.js +5 -1
- package/package/logoutRedirect.d.ts +1 -0
- package/package/logoutRedirect.js +24 -0
- package/package/script_helpers.d.ts +8 -2
- package/package/script_helpers.js +15 -1
- package/package/services/trashService.d.ts +28 -0
- package/package/services/trashService.js +47 -0
- package/package/stores.d.ts +1 -0
- package/package/stores.js +1 -0
- package/package/system_prompts/index.d.ts +1 -0
- package/package/system_prompts/index.js +7 -0
- package/package/system_prompts/prompts.d.ts +7 -5
- package/package/system_prompts/prompts.js +182 -11
- package/package/templates/wac_python.py.template +42 -0
- package/package/templates/wac_typescript.ts.template +48 -0
- package/package/utils_deployable.d.ts +22 -21
- package/package/utils_deployable.js +58 -25
- package/package/utils_workspace_deploy.d.ts +15 -4
- package/package/utils_workspace_deploy.js +19 -15
- package/package/wsUrl.d.ts +1 -0
- package/package/wsUrl.js +15 -0
- package/package.json +13 -5
- 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/graph/NodeContextMenu.svelte +0 -36
- package/package/components/graph/NodeContextMenu.svelte.d.ts +0 -8
- package/package/svelte5Utils.svelte.d.ts +0 -184
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
<script lang="ts">import GroupHeader from './GroupHeader.svelte';
|
|
2
|
+
import GroupNoteArea from './GroupNoteArea.svelte';
|
|
3
|
+
import GroupActionBar from './GroupActionBar.svelte';
|
|
4
|
+
import { getGroupEditorContext } from './groupEditor.svelte';
|
|
5
|
+
import { getGraphContext } from './graphContext';
|
|
6
|
+
let { groupId, summary, note, color, collapsed, autocollapse, editMode, showNotes } = $props();
|
|
7
|
+
const groupEditorContext = getGroupEditorContext();
|
|
8
|
+
const graphContext = getGraphContext();
|
|
9
|
+
const moveManager = graphContext?.moveManager;
|
|
10
|
+
let moveModuleId = $derived(collapsed ? `collapsed-group:${groupId}` : `group:${groupId}`);
|
|
11
|
+
let hovered = $state(false);
|
|
12
|
+
let menuOpen = $state(false);
|
|
13
|
+
let actionBarHovered = $state(false);
|
|
14
|
+
let visible = $derived(hovered || menuOpen || actionBarHovered);
|
|
15
|
+
</script>
|
|
16
|
+
|
|
17
|
+
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
18
|
+
<div
|
|
19
|
+
class="nodrag relative"
|
|
20
|
+
onmouseenter={() => (hovered = true)}
|
|
21
|
+
onmouseleave={() => (hovered = false)}
|
|
22
|
+
>
|
|
23
|
+
<GroupHeader
|
|
24
|
+
{summary}
|
|
25
|
+
{color}
|
|
26
|
+
{collapsed}
|
|
27
|
+
{editMode}
|
|
28
|
+
onToggleCollapse={() => graphContext?.groupDisplayState?.toggleRuntimeCollapse(groupId)}
|
|
29
|
+
onSummaryUpdate={(text) => groupEditorContext?.groupEditor.updateSummary(groupId, text)}
|
|
30
|
+
/>
|
|
31
|
+
{#if showNotes && note != null}
|
|
32
|
+
<GroupNoteArea
|
|
33
|
+
note={note ?? ''}
|
|
34
|
+
{color}
|
|
35
|
+
{collapsed}
|
|
36
|
+
{editMode}
|
|
37
|
+
onHeightChange={(h) => graphContext?.groupDisplayState?.setNoteHeight(groupId, h)}
|
|
38
|
+
onNoteUpdate={(text) => groupEditorContext?.groupEditor.updateNote(groupId, text)}
|
|
39
|
+
/>
|
|
40
|
+
{/if}
|
|
41
|
+
{#if editMode}
|
|
42
|
+
<GroupActionBar
|
|
43
|
+
{note}
|
|
44
|
+
{color}
|
|
45
|
+
{autocollapse}
|
|
46
|
+
{visible}
|
|
47
|
+
{menuOpen}
|
|
48
|
+
{moveManager}
|
|
49
|
+
{moveModuleId}
|
|
50
|
+
onMenuOpenChange={(open) => (menuOpen = open)}
|
|
51
|
+
onAddNote={() => groupEditorContext?.groupEditor.addNote(groupId)}
|
|
52
|
+
onRemoveNote={() => groupEditorContext?.groupEditor.removeNote(groupId)}
|
|
53
|
+
onUpdateColor={(c) => groupEditorContext?.groupEditor.updateColor(groupId, c)}
|
|
54
|
+
onUpdateAutocollapse={(v) => groupEditorContext?.groupEditor.updateAutocollapse(groupId, v)}
|
|
55
|
+
onDeleteGroup={() => groupEditorContext?.groupEditor.deleteGroup(groupId)}
|
|
56
|
+
/>
|
|
57
|
+
{/if}
|
|
58
|
+
</div>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
interface Props {
|
|
2
|
+
groupId: string;
|
|
3
|
+
summary?: string;
|
|
4
|
+
note?: string | null;
|
|
5
|
+
color?: string;
|
|
6
|
+
collapsed: boolean;
|
|
7
|
+
autocollapse: boolean;
|
|
8
|
+
editMode: boolean;
|
|
9
|
+
showNotes: boolean;
|
|
10
|
+
}
|
|
11
|
+
declare const GroupHeaderBlock: import("svelte").Component<Props, {}, "">;
|
|
12
|
+
type GroupHeaderBlock = ReturnType<typeof GroupHeaderBlock>;
|
|
13
|
+
export default GroupHeaderBlock;
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
<script lang="ts">import FlowModuleIcon from '../flows/FlowModuleIcon.svelte';
|
|
2
|
+
import Tooltip from '../meltComponents/Tooltip.svelte';
|
|
3
|
+
import DropdownV2 from '../DropdownV2.svelte';
|
|
4
|
+
import { getGraphContext } from './graphContext';
|
|
5
|
+
import { getNodeColorClasses } from './';
|
|
6
|
+
let { modules, flowModuleStates, eventHandlers } = $props();
|
|
7
|
+
const { selectionManager } = getGraphContext();
|
|
8
|
+
// Badge width model: icon(16) + pl(2) + gap(2) + pr(6) = 26px fixed + ~5.5px per char
|
|
9
|
+
const BADGE_FIXED = 26;
|
|
10
|
+
const CHAR_WIDTH = 5.5;
|
|
11
|
+
const BADGE_MAX = 128; // 8rem
|
|
12
|
+
const GAP = 4; // gap-1
|
|
13
|
+
const ROW_WIDTH = 255; // 275px container - 2*px-2 padding
|
|
14
|
+
const OVERFLOW_BTN_WIDTH = 32;
|
|
15
|
+
function estimateBadgeWidth(id) {
|
|
16
|
+
return BADGE_FIXED + id.length * CHAR_WIDTH;
|
|
17
|
+
}
|
|
18
|
+
function totalWidth(mods, capped) {
|
|
19
|
+
return mods.reduce((sum, mod, i) => sum +
|
|
20
|
+
Math.min(estimateBadgeWidth(mod.id), capped ? BADGE_MAX : Infinity) +
|
|
21
|
+
(i > 0 ? GAP : 0), 0);
|
|
22
|
+
}
|
|
23
|
+
let { displayModules, overflowModules, capIds } = $derived.by(() => {
|
|
24
|
+
// Step 1: try all badges with full ids
|
|
25
|
+
if (totalWidth(modules, false) <= ROW_WIDTH) {
|
|
26
|
+
return { displayModules: modules, overflowModules: [], capIds: false };
|
|
27
|
+
}
|
|
28
|
+
// Step 2: try all badges with ids capped at 8rem
|
|
29
|
+
if (totalWidth(modules, true) <= ROW_WIDTH) {
|
|
30
|
+
return { displayModules: modules, overflowModules: [], capIds: true };
|
|
31
|
+
}
|
|
32
|
+
// Step 3: remove last modules until capped badges fit
|
|
33
|
+
const available = ROW_WIDTH - OVERFLOW_BTN_WIDTH - GAP;
|
|
34
|
+
let count = modules.length;
|
|
35
|
+
while (count > 1 && totalWidth(modules.slice(0, count), true) > available) {
|
|
36
|
+
count--;
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
displayModules: modules.slice(0, count),
|
|
40
|
+
overflowModules: modules.slice(count),
|
|
41
|
+
capIds: true
|
|
42
|
+
};
|
|
43
|
+
});
|
|
44
|
+
const STATE_PRIORITY = {
|
|
45
|
+
WaitingForEvents: 4,
|
|
46
|
+
InProgress: 3,
|
|
47
|
+
WaitingForExecutor: 3,
|
|
48
|
+
Failure: 2,
|
|
49
|
+
Success: 1
|
|
50
|
+
};
|
|
51
|
+
let overflowAggregateState = $derived.by(() => {
|
|
52
|
+
if (!flowModuleStates)
|
|
53
|
+
return undefined;
|
|
54
|
+
let best = undefined;
|
|
55
|
+
let bestPriority = 0;
|
|
56
|
+
for (const mod of overflowModules) {
|
|
57
|
+
const state = flowModuleStates[mod.id]?.type;
|
|
58
|
+
if (state) {
|
|
59
|
+
const p = STATE_PRIORITY[state] ?? 0;
|
|
60
|
+
if (p > bestPriority) {
|
|
61
|
+
bestPriority = p;
|
|
62
|
+
best = state;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return best;
|
|
67
|
+
});
|
|
68
|
+
function moduleLabel(mod) {
|
|
69
|
+
if (mod.summary)
|
|
70
|
+
return mod.summary;
|
|
71
|
+
const type = mod.value?.type;
|
|
72
|
+
if (type === 'forloopflow')
|
|
73
|
+
return 'For loop';
|
|
74
|
+
if (type === 'whileloopflow')
|
|
75
|
+
return 'While loop';
|
|
76
|
+
if (type === 'branchone')
|
|
77
|
+
return 'Run one branch';
|
|
78
|
+
if (type === 'branchall')
|
|
79
|
+
return 'Run all branches';
|
|
80
|
+
if (type === 'flow')
|
|
81
|
+
return 'Flow';
|
|
82
|
+
if (type === 'identity')
|
|
83
|
+
return 'Identity';
|
|
84
|
+
if (type === 'aiagent')
|
|
85
|
+
return 'AI Agent';
|
|
86
|
+
return mod.id;
|
|
87
|
+
}
|
|
88
|
+
function selectModule(mod) {
|
|
89
|
+
selectionManager.selectId(mod.id);
|
|
90
|
+
eventHandlers?.select(mod.id);
|
|
91
|
+
}
|
|
92
|
+
</script>
|
|
93
|
+
|
|
94
|
+
<div class="flex items-center gap-1">
|
|
95
|
+
{#each displayModules as mod (mod.id)}
|
|
96
|
+
{@const selected = selectionManager.isNodeSelected(mod.id)}
|
|
97
|
+
{@const nodeState = flowModuleStates?.[mod.id]?.type}
|
|
98
|
+
{@const colorClasses = getNodeColorClasses(nodeState, selected)}
|
|
99
|
+
<Tooltip placement="bottom">
|
|
100
|
+
{#snippet children()}
|
|
101
|
+
<!-- svelte-ignore a11y_click_events_have_key_events -->
|
|
102
|
+
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
103
|
+
<div
|
|
104
|
+
class="h-5 rounded-md overflow-hidden flex items-center gap-0.5 shrink-0 shadow-sm pl-0.5 pr-1.5 cursor-pointer hover:opacity-80 {colorClasses.bg} {colorClasses.outline}"
|
|
105
|
+
style={capIds ? 'max-width: 8rem;' : ''}
|
|
106
|
+
onclick={() => selectModule(mod)}
|
|
107
|
+
>
|
|
108
|
+
<div class="w-4 h-4 flex items-center justify-center shrink-0">
|
|
109
|
+
<FlowModuleIcon module={mod} size={12} />
|
|
110
|
+
</div>
|
|
111
|
+
<span class="text-3xs font-medium truncate text-right flex-1 {colorClasses.text}"
|
|
112
|
+
>{mod.id}</span
|
|
113
|
+
>
|
|
114
|
+
</div>
|
|
115
|
+
{/snippet}
|
|
116
|
+
{#snippet text()}
|
|
117
|
+
<span class="font-medium">{mod.id}</span>: {moduleLabel(mod)}
|
|
118
|
+
{/snippet}
|
|
119
|
+
</Tooltip>
|
|
120
|
+
{/each}
|
|
121
|
+
{#if overflowModules.length > 0}
|
|
122
|
+
{@const overflowColorClasses = getNodeColorClasses(overflowAggregateState, false)}
|
|
123
|
+
<DropdownV2 placement="bottom" customMenu usePointerDownOutside>
|
|
124
|
+
{#snippet buttonReplacement()}
|
|
125
|
+
<div
|
|
126
|
+
class="h-5 rounded-md flex items-center justify-center shrink-0 shadow-sm px-1.5 cursor-pointer hover:opacity-80 {overflowColorClasses.bg} {overflowColorClasses.outline}"
|
|
127
|
+
>
|
|
128
|
+
<span class="text-3xs font-medium {overflowColorClasses.text}"
|
|
129
|
+
>+{overflowModules.length}</span
|
|
130
|
+
>
|
|
131
|
+
</div>
|
|
132
|
+
{/snippet}
|
|
133
|
+
{#snippet menu()}
|
|
134
|
+
<div
|
|
135
|
+
class="bg-surface-tertiary dark:border rounded-lg shadow-lg py-1 w-56 overflow-y-auto"
|
|
136
|
+
style="max-height: 50vh;"
|
|
137
|
+
>
|
|
138
|
+
{#each overflowModules as mod (mod.id)}
|
|
139
|
+
{@const nodeState = flowModuleStates?.[mod.id]?.type}
|
|
140
|
+
{@const colorClasses = getNodeColorClasses(nodeState, false)}
|
|
141
|
+
{@const selected = selectionManager.isNodeSelected(mod.id)}
|
|
142
|
+
<!-- svelte-ignore a11y_click_events_have_key_events -->
|
|
143
|
+
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
144
|
+
<div
|
|
145
|
+
class="flex items-center gap-2 px-3 py-1.5 cursor-pointer hover:bg-surface-hover text-2xs {selected
|
|
146
|
+
? 'bg-surface-accent-selected'
|
|
147
|
+
: ''}"
|
|
148
|
+
onclick={() => selectModule(mod)}
|
|
149
|
+
>
|
|
150
|
+
<div
|
|
151
|
+
class="w-4 h-4 rounded flex items-center justify-center shrink-0 {colorClasses.bg}"
|
|
152
|
+
>
|
|
153
|
+
<FlowModuleIcon module={mod} size={12} />
|
|
154
|
+
</div>
|
|
155
|
+
<span class="truncate flex-1">{moduleLabel(mod)}</span>
|
|
156
|
+
<span class="text-tertiary shrink-0">{mod.id}</span>
|
|
157
|
+
</div>
|
|
158
|
+
{/each}
|
|
159
|
+
</div>
|
|
160
|
+
{/snippet}
|
|
161
|
+
</DropdownV2>
|
|
162
|
+
{/if}
|
|
163
|
+
</div>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { GraphModuleState } from './model';
|
|
2
|
+
import type { FlowModule } from '../../gen';
|
|
3
|
+
import type { GraphEventHandlers } from './graphBuilder.svelte';
|
|
4
|
+
interface Props {
|
|
5
|
+
modules: FlowModule[];
|
|
6
|
+
flowModuleStates?: Record<string, GraphModuleState> | undefined;
|
|
7
|
+
eventHandlers?: GraphEventHandlers;
|
|
8
|
+
}
|
|
9
|
+
declare const GroupModuleIcons: import("svelte").Component<Props, {}, "">;
|
|
10
|
+
type GroupModuleIcons = ReturnType<typeof GroupModuleIcons>;
|
|
11
|
+
export default GroupModuleIcons;
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
<script lang="ts">import { Group } from 'lucide-svelte';
|
|
2
|
+
import { getNodeColorClasses } from './';
|
|
3
|
+
import { NOTE_COLORS, NoteColor } from './noteColors';
|
|
4
|
+
import { NODE } from './util';
|
|
5
|
+
import { twMerge } from 'tailwind-merge';
|
|
6
|
+
import { preventDefault, stopPropagation } from 'svelte/legacy';
|
|
7
|
+
import GroupNoteArea from './GroupNoteArea.svelte';
|
|
8
|
+
import TextInput from '../text_input/TextInput.svelte';
|
|
9
|
+
import GroupModuleIcons from './GroupModuleIcons.svelte';
|
|
10
|
+
let { summary, selected = false, stepCount, color, note, showNote = false, editMode = false, modules, onExpand, onSummaryUpdate, onNoteUpdate, onHeightChange } = $props();
|
|
11
|
+
let noteColorConfig = $derived(color ? (NOTE_COLORS[color] ?? NOTE_COLORS[NoteColor.BLUE]) : undefined);
|
|
12
|
+
let defaultColorClasses = $derived(getNodeColorClasses(undefined, selected));
|
|
13
|
+
// Inline summary editing
|
|
14
|
+
let editingSummary = $state(false);
|
|
15
|
+
let summaryInput = $state('');
|
|
16
|
+
let textInputComponent = $state(undefined);
|
|
17
|
+
function startEditingSummary() {
|
|
18
|
+
if (!editMode)
|
|
19
|
+
return;
|
|
20
|
+
editingSummary = true;
|
|
21
|
+
summaryInput = summary ?? '';
|
|
22
|
+
requestAnimationFrame(() => {
|
|
23
|
+
textInputComponent?.focus();
|
|
24
|
+
textInputComponent?.select();
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
function saveSummary() {
|
|
28
|
+
editingSummary = false;
|
|
29
|
+
const trimmed = summaryInput.trim();
|
|
30
|
+
if (trimmed !== (summary ?? '')) {
|
|
31
|
+
onSummaryUpdate?.(trimmed);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
function handleSummaryKeydown(event) {
|
|
35
|
+
if (event.key === 'Enter') {
|
|
36
|
+
saveSummary();
|
|
37
|
+
}
|
|
38
|
+
else if (event.key === 'Escape') {
|
|
39
|
+
editingSummary = false;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
// Reset height to 0 when note is hidden
|
|
43
|
+
$effect(() => {
|
|
44
|
+
if (!showNote) {
|
|
45
|
+
onHeightChange?.(0);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
</script>
|
|
49
|
+
|
|
50
|
+
<div
|
|
51
|
+
class={twMerge(
|
|
52
|
+
'w-full module cursor-pointer max-w-full',
|
|
53
|
+
'shadow-sm rounded-md overflow-clip',
|
|
54
|
+
'bg-surface-tertiary'
|
|
55
|
+
)}
|
|
56
|
+
style="width: {NODE.width}px;"
|
|
57
|
+
>
|
|
58
|
+
<div
|
|
59
|
+
class={twMerge(
|
|
60
|
+
'absolute z-0 outline-offset-0 inset-0',
|
|
61
|
+
'rounded-md',
|
|
62
|
+
noteColorConfig ? noteColorConfig.outline : defaultColorClasses.outline
|
|
63
|
+
)}
|
|
64
|
+
></div>
|
|
65
|
+
<div class="flex items-center w-full gap-1.5 px-2 h-[34px] relative z-1">
|
|
66
|
+
{#if modules && modules.length > 0}
|
|
67
|
+
<GroupModuleIcons {modules} />
|
|
68
|
+
{:else}
|
|
69
|
+
<Group size={14} />
|
|
70
|
+
{/if}
|
|
71
|
+
<div
|
|
72
|
+
class="absolute inset-x-0 flex items-center justify-center h-[34px] pointer-events-none px-8"
|
|
73
|
+
>
|
|
74
|
+
{#if editingSummary}
|
|
75
|
+
<TextInput
|
|
76
|
+
bind:this={textInputComponent}
|
|
77
|
+
bind:value={summaryInput}
|
|
78
|
+
size="xs"
|
|
79
|
+
class="!bg-transparent !border-transparent !shadow-none !text-2xs !font-medium !p-0 !m-0 !min-w-0 w-full text-center !min-h-0 !h-auto nodrag nowheel pointer-events-auto"
|
|
80
|
+
inputProps={{
|
|
81
|
+
placeholder: 'Group',
|
|
82
|
+
onblur: saveSummary,
|
|
83
|
+
onkeydown: handleSummaryKeydown,
|
|
84
|
+
spellcheck: false
|
|
85
|
+
}}
|
|
86
|
+
/>
|
|
87
|
+
{:else}
|
|
88
|
+
<!-- svelte-ignore a11y_click_events_have_key_events -->
|
|
89
|
+
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
90
|
+
<span
|
|
91
|
+
class="text-2xs font-medium truncate text-center pointer-events-auto {editMode
|
|
92
|
+
? 'cursor-text rounded px-0.5 -mx-0.5 hover:bg-black/10 dark:hover:bg-white/10'
|
|
93
|
+
: ''}"
|
|
94
|
+
onclick={editMode ? stopPropagation(preventDefault(startEditingSummary)) : undefined}
|
|
95
|
+
onpointerdown={editMode ? stopPropagation(preventDefault(() => {})) : undefined}
|
|
96
|
+
>{summary || 'Group'}</span
|
|
97
|
+
>
|
|
98
|
+
{/if}
|
|
99
|
+
</div>
|
|
100
|
+
<div class="flex-1"></div>
|
|
101
|
+
{#if stepCount != null}
|
|
102
|
+
<!-- svelte-ignore a11y_click_events_have_key_events -->
|
|
103
|
+
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
104
|
+
<span
|
|
105
|
+
class="text-3xs opacity-60 shrink-0 whitespace-nowrap {noteColorConfig
|
|
106
|
+
? noteColorConfig.text
|
|
107
|
+
: ''} {onExpand
|
|
108
|
+
? 'cursor-pointer hover:opacity-100 hover:text-blue-500 dark:hover:text-blue-400'
|
|
109
|
+
: ''}"
|
|
110
|
+
onclick={onExpand ? stopPropagation(preventDefault(onExpand)) : undefined}
|
|
111
|
+
>{stepCount} node{stepCount !== 1 ? 's' : ''}</span
|
|
112
|
+
>
|
|
113
|
+
{/if}
|
|
114
|
+
</div>
|
|
115
|
+
|
|
116
|
+
{#if showNote}
|
|
117
|
+
<div class="relative z-1">
|
|
118
|
+
<GroupNoteArea
|
|
119
|
+
note={note ?? ''}
|
|
120
|
+
{color}
|
|
121
|
+
{editMode}
|
|
122
|
+
onHeightChange={(h) => onHeightChange?.(h)}
|
|
123
|
+
onNoteUpdate={(text) => onNoteUpdate?.(text)}
|
|
124
|
+
/>
|
|
125
|
+
</div>
|
|
126
|
+
{/if}
|
|
127
|
+
</div>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { FlowModule } from '../../gen';
|
|
2
|
+
interface Props {
|
|
3
|
+
summary?: string;
|
|
4
|
+
selected?: boolean;
|
|
5
|
+
stepCount?: number;
|
|
6
|
+
color?: string;
|
|
7
|
+
note?: string;
|
|
8
|
+
showNote?: boolean;
|
|
9
|
+
editMode?: boolean;
|
|
10
|
+
modules?: FlowModule[];
|
|
11
|
+
onExpand?: () => void;
|
|
12
|
+
onSummaryUpdate?: (text: string) => void;
|
|
13
|
+
onNoteUpdate?: (text: string) => void;
|
|
14
|
+
onHeightChange?: (height: number) => void;
|
|
15
|
+
}
|
|
16
|
+
declare const GroupNodeCard: import("svelte").Component<Props, {}, "">;
|
|
17
|
+
type GroupNodeCard = ReturnType<typeof GroupNodeCard>;
|
|
18
|
+
export default GroupNodeCard;
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
<script lang="ts">import GfmMarkdown from '../GfmMarkdown.svelte';
|
|
2
|
+
import { Check, X } from 'lucide-svelte';
|
|
3
|
+
import { NOTE_COLORS, NoteColor } from './noteColors';
|
|
4
|
+
import { stopPropagation, preventDefault } from 'svelte/legacy';
|
|
5
|
+
let { note, color, collapsed = false, editMode, onHeightChange, onNoteUpdate } = $props();
|
|
6
|
+
let editing = $state(false);
|
|
7
|
+
let editHeight = $state(0);
|
|
8
|
+
let textContent = $state('');
|
|
9
|
+
let textareaElement = $state(undefined);
|
|
10
|
+
let containerElement = $state(undefined);
|
|
11
|
+
function autoResize(el) {
|
|
12
|
+
el.style.height = 'auto';
|
|
13
|
+
el.style.height = el.scrollHeight + 'px';
|
|
14
|
+
}
|
|
15
|
+
let noteColorConfig = $derived(color
|
|
16
|
+
? (NOTE_COLORS[color] ?? NOTE_COLORS[NoteColor.BLUE])
|
|
17
|
+
: NOTE_COLORS[NoteColor.BLUE]);
|
|
18
|
+
// Measure height and report to parent (skip while editing to avoid full graph rebuilds)
|
|
19
|
+
$effect(() => {
|
|
20
|
+
if (containerElement && !editing) {
|
|
21
|
+
const height = containerElement.clientHeight;
|
|
22
|
+
onHeightChange(height);
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
// Also observe resize for dynamic content
|
|
26
|
+
$effect(() => {
|
|
27
|
+
if (!containerElement)
|
|
28
|
+
return;
|
|
29
|
+
const observer = new ResizeObserver((entries) => {
|
|
30
|
+
if (editing)
|
|
31
|
+
return;
|
|
32
|
+
for (const entry of entries) {
|
|
33
|
+
onHeightChange(entry.contentRect.height);
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
observer.observe(containerElement);
|
|
37
|
+
return () => {
|
|
38
|
+
observer.disconnect();
|
|
39
|
+
onHeightChange(0);
|
|
40
|
+
};
|
|
41
|
+
});
|
|
42
|
+
function handleDoubleClick() {
|
|
43
|
+
if (!editMode)
|
|
44
|
+
return;
|
|
45
|
+
editHeight = containerElement?.clientHeight ?? 0;
|
|
46
|
+
editing = true;
|
|
47
|
+
textContent = note;
|
|
48
|
+
requestAnimationFrame(() => {
|
|
49
|
+
if (textareaElement) {
|
|
50
|
+
autoResize(textareaElement);
|
|
51
|
+
textareaElement.focus();
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
function handleSave() {
|
|
56
|
+
editing = false;
|
|
57
|
+
if (textContent !== note) {
|
|
58
|
+
onNoteUpdate(textContent);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
function handleCancel() {
|
|
62
|
+
editing = false;
|
|
63
|
+
textContent = note;
|
|
64
|
+
}
|
|
65
|
+
function handleKeydown(event) {
|
|
66
|
+
event.stopPropagation();
|
|
67
|
+
if (event.key === 'Escape') {
|
|
68
|
+
handleSave();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
</script>
|
|
72
|
+
|
|
73
|
+
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
74
|
+
<div
|
|
75
|
+
bind:this={containerElement}
|
|
76
|
+
class="nodrag nopan {collapsed ? 'mx-px' : 'w-full rounded-b-md'}"
|
|
77
|
+
>
|
|
78
|
+
<div class={collapsed ? 'relative' : 'w-full rounded-b-md relative'}>
|
|
79
|
+
{#if editing}
|
|
80
|
+
<div class="absolute top-0 right-1 flex gap-0.5 z-10">
|
|
81
|
+
<button
|
|
82
|
+
class="p-0.5 {noteColorConfig.text} opacity-60 hover:opacity-100 cursor-pointer"
|
|
83
|
+
onpointerdown={stopPropagation(preventDefault(handleSave))}
|
|
84
|
+
title="Save (Esc)"
|
|
85
|
+
>
|
|
86
|
+
<Check size={11} />
|
|
87
|
+
</button>
|
|
88
|
+
<button
|
|
89
|
+
class="p-0.5 {noteColorConfig.text} opacity-60 hover:opacity-100 cursor-pointer"
|
|
90
|
+
onpointerdown={stopPropagation(preventDefault(handleCancel))}
|
|
91
|
+
title="Cancel"
|
|
92
|
+
>
|
|
93
|
+
<X size={11} />
|
|
94
|
+
</button>
|
|
95
|
+
</div>
|
|
96
|
+
<textarea
|
|
97
|
+
bind:this={textareaElement}
|
|
98
|
+
bind:value={textContent}
|
|
99
|
+
class="w-full shadow-none resize-none !text-2xs overflow-y-auto border-none bg-transparent p-1 nodrag nopan nowheel focus:outline-none select-text {noteColorConfig.text}"
|
|
100
|
+
style:max-height="max({editHeight}px, 4lh)"
|
|
101
|
+
oninput={() => textareaElement && autoResize(textareaElement)}
|
|
102
|
+
placeholder="Write a note (markdown supported)"
|
|
103
|
+
onblur={handleSave}
|
|
104
|
+
onkeydown={handleKeydown}
|
|
105
|
+
onpointerdown={stopPropagation(() => {})}
|
|
106
|
+
spellcheck="false"
|
|
107
|
+
></textarea>
|
|
108
|
+
{:else if note}
|
|
109
|
+
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
110
|
+
<div
|
|
111
|
+
class="w-full text-2xs break-words overflow-hidden p-2 select-text {noteColorConfig.text} {editMode
|
|
112
|
+
? 'cursor-pointer'
|
|
113
|
+
: ''}"
|
|
114
|
+
ondblclick={editMode ? stopPropagation(preventDefault(handleDoubleClick)) : undefined}
|
|
115
|
+
onpointerdown={editMode ? stopPropagation(() => {}) : undefined}
|
|
116
|
+
>
|
|
117
|
+
<GfmMarkdown md={note} noPadding />
|
|
118
|
+
</div>
|
|
119
|
+
{:else}
|
|
120
|
+
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
121
|
+
<div
|
|
122
|
+
class="text-2xs italic opacity-60 p-2 {noteColorConfig.text} {editMode
|
|
123
|
+
? 'cursor-pointer'
|
|
124
|
+
: ''}"
|
|
125
|
+
ondblclick={editMode ? stopPropagation(preventDefault(handleDoubleClick)) : undefined}
|
|
126
|
+
onpointerdown={editMode ? stopPropagation(() => {}) : undefined}
|
|
127
|
+
>
|
|
128
|
+
Double click to edit the note
|
|
129
|
+
</div>
|
|
130
|
+
{/if}
|
|
131
|
+
</div>
|
|
132
|
+
</div>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
interface Props {
|
|
2
|
+
note: string;
|
|
3
|
+
color?: string;
|
|
4
|
+
collapsed?: boolean;
|
|
5
|
+
editMode: boolean;
|
|
6
|
+
onHeightChange: (height: number) => void;
|
|
7
|
+
onNoteUpdate: (text: string) => void;
|
|
8
|
+
}
|
|
9
|
+
declare const GroupNoteArea: import("svelte").Component<Props, {}, "">;
|
|
10
|
+
type GroupNoteArea = ReturnType<typeof GroupNoteArea>;
|
|
11
|
+
export default GroupNoteArea;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
<script lang="ts">import { ViewportPortal } from '@xyflow/svelte';
|
|
2
|
+
import { GROUP_HEADER_HEIGHT, groupKey } from './groupEditor.svelte';
|
|
3
|
+
import { getGraphContext } from './graphContext';
|
|
4
|
+
import { NoteColor, NOTE_COLORS } from './noteColors';
|
|
5
|
+
let { allNodes, groups, groupDepths } = $props();
|
|
6
|
+
const graphContext = getGraphContext();
|
|
7
|
+
// Pre-compute bounds for all groups reactively (tracks allNodes measured changes)
|
|
8
|
+
let groupBoundsMap = $derived.by(() => {
|
|
9
|
+
const map = {};
|
|
10
|
+
const nodeMap = new Map(allNodes.map((n) => [n.id, n]));
|
|
11
|
+
for (const group of groups) {
|
|
12
|
+
if (graphContext?.groupDisplayState?.isRuntimeCollapsed(groupKey(group))) {
|
|
13
|
+
continue;
|
|
14
|
+
}
|
|
15
|
+
const headId = `group:${groupKey(group)}`;
|
|
16
|
+
const endId = `group:${groupKey(group)}-end`;
|
|
17
|
+
const headNode = nodeMap.get(headId);
|
|
18
|
+
const endNode = nodeMap.get(endId);
|
|
19
|
+
if (headNode && endNode) {
|
|
20
|
+
const d = headNode.data;
|
|
21
|
+
const headCenterX = headNode.position.x + (headNode.measured?.width ?? 275) / 2;
|
|
22
|
+
const wrapperWidth = d.wrapperWidth ?? 275;
|
|
23
|
+
const headHeight = headNode.measured?.height ?? GROUP_HEADER_HEIGHT;
|
|
24
|
+
const topY = headNode.position.y + headHeight / 2;
|
|
25
|
+
map[groupKey(group)] = {
|
|
26
|
+
x: headCenterX - wrapperWidth / 2,
|
|
27
|
+
y: topY,
|
|
28
|
+
width: wrapperWidth,
|
|
29
|
+
height: endNode.position.y - topY
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
map[groupKey(group)] = null;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return map;
|
|
37
|
+
});
|
|
38
|
+
function getOutlineColorClass(color) {
|
|
39
|
+
const config = NOTE_COLORS[color ?? NoteColor.BLUE] ?? NOTE_COLORS[NoteColor.BLUE];
|
|
40
|
+
return config.outline;
|
|
41
|
+
}
|
|
42
|
+
function getBgColorClass(color) {
|
|
43
|
+
return (NOTE_COLORS[color ?? NoteColor.BLUE]?.backgroundLight ??
|
|
44
|
+
NOTE_COLORS[NoteColor.BLUE].backgroundLight);
|
|
45
|
+
}
|
|
46
|
+
const moveManager = graphContext?.moveManager;
|
|
47
|
+
function isGroupDragged(groupId) {
|
|
48
|
+
if (!moveManager)
|
|
49
|
+
return false;
|
|
50
|
+
return (moveManager.draggedNodeIds.has(`group:${groupId}`) ||
|
|
51
|
+
moveManager.draggedNodeIds.has(`collapsed-group:${groupId}`));
|
|
52
|
+
}
|
|
53
|
+
</script>
|
|
54
|
+
|
|
55
|
+
{#each groups as group (groupKey(group))}
|
|
56
|
+
{@const bounds = groupBoundsMap[groupKey(group)]}
|
|
57
|
+
{#if bounds}
|
|
58
|
+
<ViewportPortal target="back">
|
|
59
|
+
<div
|
|
60
|
+
class="absolute rounded-lg outline outline-1 -outline-offset-1 pointer-events-none {getOutlineColorClass(
|
|
61
|
+
group.color
|
|
62
|
+
)} {getBgColorClass(group.color)}"
|
|
63
|
+
class:opacity-30={isGroupDragged(groupKey(group))}
|
|
64
|
+
style:transform="translate({bounds.x}px, {bounds.y}px)"
|
|
65
|
+
style:width="{bounds.width}px"
|
|
66
|
+
style:height="{bounds.height}px"
|
|
67
|
+
style:z-index={-10 + (groupDepths[groupKey(group)] ?? 0)}
|
|
68
|
+
></div>
|
|
69
|
+
</ViewportPortal>
|
|
70
|
+
{/if}
|
|
71
|
+
{/each}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type Node } from '@xyflow/svelte';
|
|
2
|
+
import { type FlowGroup } from './groupEditor.svelte';
|
|
3
|
+
interface Props {
|
|
4
|
+
allNodes: (Node & {
|
|
5
|
+
type: string;
|
|
6
|
+
})[];
|
|
7
|
+
groups: FlowGroup[];
|
|
8
|
+
groupDepths: Record<string, number>;
|
|
9
|
+
}
|
|
10
|
+
declare const GroupOverlay: import("svelte").Component<Props, {}, "">;
|
|
11
|
+
type GroupOverlay = ReturnType<typeof GroupOverlay>;
|
|
12
|
+
export default GroupOverlay;
|
|
@@ -18,11 +18,23 @@ import AssetNode from './renderers/nodes/AssetNode.svelte';
|
|
|
18
18
|
import AssetsOverflowedNode from './renderers/nodes/AssetsOverflowedNode.svelte';
|
|
19
19
|
import AiToolNode from './renderers/nodes/AIToolNode.svelte';
|
|
20
20
|
import NewAiToolNode from './renderers/nodes/NewAIToolNode.svelte';
|
|
21
|
+
import CollapsedGroupNode from './renderers/nodes/CollapsedGroupNode.svelte';
|
|
22
|
+
import GroupHeadNode from './renderers/nodes/GroupHeadNode.svelte';
|
|
23
|
+
import GroupEndNode from './renderers/nodes/GroupEndNode.svelte';
|
|
21
24
|
import BaseEdge from './renderers/edges/BaseEdge.svelte';
|
|
22
25
|
import EmptyEdge from './renderers/edges/EmptyEdge.svelte';
|
|
23
26
|
import DataflowEdge from './renderers/edges/DataflowEdge.svelte';
|
|
24
27
|
import HiddenBaseEdge from './renderers/edges/HiddenBaseEdge.svelte';
|
|
25
|
-
let { nodes, edges, width, height, initialViewport } = $props();
|
|
28
|
+
let { nodes: nodesProp, edges: edgesProp, width, height, initialViewport } = $props();
|
|
29
|
+
// Use $state.raw to avoid deep reactive proxies that trigger xyflow's performance warning
|
|
30
|
+
let nodes = $state.raw([]);
|
|
31
|
+
let edges = $state.raw([]);
|
|
32
|
+
$effect(() => {
|
|
33
|
+
nodes = [...nodesProp];
|
|
34
|
+
});
|
|
35
|
+
$effect(() => {
|
|
36
|
+
edges = [...edgesProp];
|
|
37
|
+
});
|
|
26
38
|
setGraphContext({
|
|
27
39
|
selectionManager: new SelectionManager(),
|
|
28
40
|
useDataflow: writable(false),
|
|
@@ -46,7 +58,10 @@ const nodeTypes = {
|
|
|
46
58
|
asset: AssetNode,
|
|
47
59
|
assetsOverflowed: AssetsOverflowedNode,
|
|
48
60
|
aiTool: AiToolNode,
|
|
49
|
-
newAiTool: NewAiToolNode
|
|
61
|
+
newAiTool: NewAiToolNode,
|
|
62
|
+
collapsedGroup: CollapsedGroupNode,
|
|
63
|
+
groupHead: GroupHeadNode,
|
|
64
|
+
groupEnd: GroupEndNode
|
|
50
65
|
};
|
|
51
66
|
const edgeTypes = {
|
|
52
67
|
edge: BaseEdge,
|