@burdenoff/fluidgrids-fe-sdk 2026.1103.1 → 2026.1103.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.
Files changed (45) hide show
  1. package/dist/{ExecutionDetailPage-XHII23QR.js → ExecutionDetailPage-JRBUIU5J.js} +9 -9
  2. package/dist/{ExecutionsListPage-GTCSYSC6.js → ExecutionsListPage-RC342VCZ.js} +5 -5
  3. package/dist/{WorkflowBuilder-E5MFEECZ.js → WorkflowBuilder-TCS4JELN.js} +10 -10
  4. package/dist/{WorkflowsList-NYSQEZWU.js → WorkflowsList-6ES2EDGZ.js} +6 -6
  5. package/dist/{agentTools-PA62A53S.js → agentTools-4JT66UQB.js} +3 -3
  6. package/dist/{chunk-JCHE4V55.js → chunk-52OIBKPO.js} +1 -1
  7. package/dist/{chunk-QAXP5HON.js → chunk-6WPW42TX.js} +1 -1
  8. package/dist/chunk-742OIXMP.js +18 -0
  9. package/dist/{chunk-B2DNUVKW.js → chunk-BP6YPKNK.js} +4 -4
  10. package/dist/{chunk-DLKGWGRN.js → chunk-BVCMAGLJ.js} +1 -1
  11. package/dist/{chunk-OR7KZZ2D.js → chunk-EKB3EIIC.js} +1 -1
  12. package/dist/{chunk-UETHT3KG.js → chunk-G2FPOWN5.js} +1 -1
  13. package/dist/{chunk-A4XNCGWT.js → chunk-H2KIJEYM.js} +1 -1
  14. package/dist/{chunk-7SY2SL5Y.js → chunk-ILPQAQB5.js} +5 -5
  15. package/dist/{chunk-ZTJX5ONT.js → chunk-K6HD5GC7.js} +2 -2
  16. package/dist/{chunk-6O2B5NAK.js → chunk-LTINUSLK.js} +28 -204
  17. package/dist/{chunk-XNVYPEBO.js → chunk-LVTOWRAM.js} +2 -2
  18. package/dist/{chunk-7JLLH4YE.js → chunk-M23H4LSY.js} +3 -3
  19. package/dist/{chunk-SA474Y5U.js → chunk-MY4HMUWU.js} +3 -3
  20. package/dist/{chunk-PBCBDSVA.js → chunk-N6XYVO7N.js} +1 -1
  21. package/dist/{chunk-3Y4266JL.js → chunk-OBWB73Y7.js} +1 -1
  22. package/dist/{chunk-EFOJEQDS.js → chunk-QXACKASD.js} +1 -1
  23. package/dist/{chunk-P6IRD5SA.js → chunk-RFOKJE3A.js} +8 -8
  24. package/dist/{chunk-4XV2DAVO.js → chunk-SHYDX2LO.js} +4 -4
  25. package/dist/{chunk-4FDMLKLL.js → chunk-SIVS3XSV.js} +1 -1
  26. package/dist/{chunk-W74MXVFX.js → chunk-SUIH376K.js} +1 -1
  27. package/dist/{chunk-CXNJKM4D.js → chunk-UH7JKPUF.js} +1 -1
  28. package/dist/{chunk-DQLSF6GB.js → chunk-UMULDJCK.js} +5 -5
  29. package/dist/{chunk-BDBSRN2O.js → chunk-UW5GY6LQ.js} +9 -5
  30. package/dist/{chunk-A7QPQ6MO.js → chunk-VQZEGCRF.js} +1 -1
  31. package/dist/{chunk-6VODFT2Q.js → chunk-Y7BNGLRI.js} +4 -4
  32. package/dist/{chunk-TJ2PFY7I.js → chunk-Y7MQ3LYB.js} +1 -1
  33. package/dist/{chunk-23LYGZ27.js → chunk-YC76QFWZ.js} +353 -7
  34. package/dist/executions.js +10 -10
  35. package/dist/history.js +4 -4
  36. package/dist/index.js +38 -38
  37. package/dist/{node-detail-view-KET5DNEH.js → node-detail-view-CMQ7DUYM.js} +7 -7
  38. package/dist/observability.js +4 -4
  39. package/dist/{quick-config-panel-L6CTZQUG.js → quick-config-panel-NJ72QZPM.js} +4 -4
  40. package/dist/settings.js +5 -5
  41. package/dist/templates.js +9 -9
  42. package/dist/workflow-builder.js +11 -11
  43. package/dist/workflows-list.js +6 -6
  44. package/package.json +1 -1
  45. package/dist/chunk-OUYEMZT6.js +0 -185
@@ -1,19 +1,19 @@
1
- export { ExecutionDetailPage } from './chunk-P6IRD5SA.js';
2
- import './chunk-UETHT3KG.js';
3
- import './chunk-ZTJX5ONT.js';
4
- import './chunk-QAXP5HON.js';
5
- import './chunk-A4XNCGWT.js';
6
- import './chunk-DLKGWGRN.js';
1
+ export { ExecutionDetailPage } from './chunk-RFOKJE3A.js';
2
+ import './chunk-G2FPOWN5.js';
3
+ import './chunk-K6HD5GC7.js';
4
+ import './chunk-6WPW42TX.js';
5
+ import './chunk-H2KIJEYM.js';
6
+ import './chunk-BVCMAGLJ.js';
7
7
  import './chunk-5ERAJC2I.js';
8
- import './chunk-3Y4266JL.js';
8
+ import './chunk-OBWB73Y7.js';
9
9
  import './chunk-JDLQ6QIB.js';
10
10
  import './chunk-PC3CICOW.js';
11
11
  import './chunk-Y53CVZVV.js';
12
12
  import './chunk-FNZZ5JJL.js';
13
- import './chunk-EFOJEQDS.js';
13
+ import './chunk-QXACKASD.js';
14
14
  import './chunk-PJAWNFJV.js';
15
15
  import './chunk-AOLY5INN.js';
16
- import './chunk-23LYGZ27.js';
16
+ import './chunk-YC76QFWZ.js';
17
17
  import './chunk-ZUVFD5KV.js';
18
18
  import './chunk-JL7CASN5.js';
19
19
  import './chunk-OCJTTHTS.js';
@@ -1,14 +1,14 @@
1
- export { ExecutionsListPage } from './chunk-B2DNUVKW.js';
2
- import './chunk-ZTJX5ONT.js';
3
- import './chunk-QAXP5HON.js';
1
+ export { ExecutionsListPage } from './chunk-BP6YPKNK.js';
2
+ import './chunk-K6HD5GC7.js';
3
+ import './chunk-6WPW42TX.js';
4
4
  import './chunk-5ERAJC2I.js';
5
5
  import './chunk-PC3CICOW.js';
6
6
  import './chunk-FNZZ5JJL.js';
7
- import './chunk-EFOJEQDS.js';
7
+ import './chunk-QXACKASD.js';
8
8
  import './chunk-PJAWNFJV.js';
9
9
  import './chunk-AOLY5INN.js';
10
10
  import './chunk-4VJ3MDOV.js';
11
- import './chunk-23LYGZ27.js';
11
+ import './chunk-YC76QFWZ.js';
12
12
  import './chunk-ZUVFD5KV.js';
13
13
  import './chunk-JL7CASN5.js';
14
14
  import './chunk-OCJTTHTS.js';
@@ -1,25 +1,25 @@
1
- export { WorkflowBuilder } from './chunk-DQLSF6GB.js';
2
- import './chunk-JCHE4V55.js';
1
+ export { WorkflowBuilder } from './chunk-UMULDJCK.js';
2
+ import './chunk-52OIBKPO.js';
3
3
  import './chunk-PIKYQE7P.js';
4
- import './chunk-6O2B5NAK.js';
4
+ import './chunk-LTINUSLK.js';
5
5
  import './chunk-GEMNVFPK.js';
6
6
  import './chunk-B6CCE2RW.js';
7
7
  import './chunk-IEVSFCFS.js';
8
8
  import './chunk-YXMFRQYV.js';
9
9
  import './chunk-BQXVT32O.js';
10
- import './chunk-W74MXVFX.js';
11
- import './chunk-OUYEMZT6.js';
12
- import './chunk-4FDMLKLL.js';
13
- import './chunk-3Y4266JL.js';
10
+ import './chunk-SUIH376K.js';
11
+ import './chunk-742OIXMP.js';
12
+ import './chunk-SIVS3XSV.js';
13
+ import './chunk-OBWB73Y7.js';
14
14
  import './chunk-JDLQ6QIB.js';
15
15
  import './chunk-PC3CICOW.js';
16
16
  import './chunk-Y53CVZVV.js';
17
- import './chunk-PBCBDSVA.js';
18
- import './chunk-EFOJEQDS.js';
17
+ import './chunk-N6XYVO7N.js';
18
+ import './chunk-QXACKASD.js';
19
19
  import './chunk-GLYINMOR.js';
20
20
  import './chunk-AOLY5INN.js';
21
21
  import './chunk-4VJ3MDOV.js';
22
- import './chunk-23LYGZ27.js';
22
+ import './chunk-YC76QFWZ.js';
23
23
  import './chunk-ZUVFD5KV.js';
24
24
  import './chunk-JL7CASN5.js';
25
25
  import './chunk-OCJTTHTS.js';
@@ -1,14 +1,14 @@
1
- export { WorkflowsList } from './chunk-7SY2SL5Y.js';
2
- import './chunk-JCHE4V55.js';
3
- import './chunk-QAXP5HON.js';
1
+ export { WorkflowsList } from './chunk-ILPQAQB5.js';
2
+ import './chunk-52OIBKPO.js';
3
+ import './chunk-6WPW42TX.js';
4
4
  import './chunk-5ERAJC2I.js';
5
- import './chunk-4FDMLKLL.js';
5
+ import './chunk-SIVS3XSV.js';
6
6
  import './chunk-FNZZ5JJL.js';
7
- import './chunk-EFOJEQDS.js';
7
+ import './chunk-QXACKASD.js';
8
8
  import './chunk-PJAWNFJV.js';
9
9
  import './chunk-AOLY5INN.js';
10
10
  import './chunk-4VJ3MDOV.js';
11
- import './chunk-23LYGZ27.js';
11
+ import './chunk-YC76QFWZ.js';
12
12
  import './chunk-ZUVFD5KV.js';
13
13
  import './chunk-JL7CASN5.js';
14
14
  import './chunk-OCJTTHTS.js';
@@ -1,6 +1,6 @@
1
- import { nodeTitle, selectedOperationOf, paramsFromOperation, fixedParameterState } from './chunk-TJ2PFY7I.js';
2
- import { computeAttachPosition, autosaveAllowedFor, isFlowComplete } from './chunk-OUYEMZT6.js';
3
- import { NODE_CONFIGS, createConfiguredNode, resolveOutputHandles, resolveInputHandles, isNodeConfigsInitialized, useFlowStore, useSaveStatusStore, isNodeTypeHiddenFromPalette } from './chunk-23LYGZ27.js';
1
+ import { nodeTitle, selectedOperationOf, paramsFromOperation, fixedParameterState } from './chunk-Y7MQ3LYB.js';
2
+ import { computeAttachPosition } from './chunk-742OIXMP.js';
3
+ import { NODE_CONFIGS, createConfiguredNode, resolveOutputHandles, resolveInputHandles, isNodeConfigsInitialized, useFlowStore, useSaveStatusStore, autosaveAllowedFor, isFlowComplete, isNodeTypeHiddenFromPalette } from './chunk-YC76QFWZ.js';
4
4
  import './chunk-ZUVFD5KV.js';
5
5
  import './chunk-JL7CASN5.js';
6
6
  import './chunk-OCJTTHTS.js';
@@ -1,4 +1,4 @@
1
- import { QuotaExhaustedDialog } from './chunk-4FDMLKLL.js';
1
+ import { QuotaExhaustedDialog } from './chunk-SIVS3XSV.js';
2
2
  import { useTr } from './chunk-UULVIT25.js';
3
3
  import { jsx } from 'react/jsx-runtime';
4
4
 
@@ -1,5 +1,5 @@
1
1
  import { REPLAY_WORKFLOW_RUN, RETRY_WORKFLOW_RUNS } from './chunk-5ERAJC2I.js';
2
- import { useFluidGridsAnalytics, throwIfResultError, emitRunStarted, openRunQuotaUpgradePrompt } from './chunk-23LYGZ27.js';
2
+ import { useFluidGridsAnalytics, throwIfResultError, emitRunStarted, openRunQuotaUpgradePrompt } from './chunk-YC76QFWZ.js';
3
3
  import { useExecutionsStore } from './chunk-6AMNEX2Y.js';
4
4
  import { ExecutionsListDocument, ExecutionDetailDocument, ExecutionStatsDocument, PauseExecutionDocument, ResumeExecutionDocument, CancelExecutionDocument, RetryNodeDocument, TriggerWorkflowDocument, TerminateExecutionDocument } from './chunk-JTQFBZTV.js';
5
5
  import { useTr } from './chunk-UULVIT25.js';
@@ -0,0 +1,18 @@
1
+ import { resolveInputHandles } from './chunk-YC76QFWZ.js';
2
+
3
+ // src/builder/hooks/attach-node-helpers.ts
4
+ var ATTACH_GAP_X = 120;
5
+ var DEFAULT_NODE_WIDTH = 288;
6
+ function computeAttachPosition(source) {
7
+ if (!source) return void 0;
8
+ const width = source.measured?.width ?? DEFAULT_NODE_WIDTH;
9
+ return {
10
+ x: source.position.x + width + ATTACH_GAP_X,
11
+ y: source.position.y
12
+ };
13
+ }
14
+ function firstInputHandleId(data) {
15
+ return resolveInputHandles(data)[0]?.id ?? "target";
16
+ }
17
+
18
+ export { computeAttachPosition, firstInputHandleId };
@@ -1,8 +1,8 @@
1
- import { useRunStatusCounts, ExecutionStats, ExecutionFilters, ExecutionTable, ExecutionCards, ExecutionTimeline, Pagination, runStatusLabels } from './chunk-ZTJX5ONT.js';
2
- import { useExecutionsWithStore, useExecutionStats, useExecutionActions, useAutoRefresh, WORKFLOW_ID_MAX_LENGTH } from './chunk-QAXP5HON.js';
3
- import { useWorkflowDefinitions } from './chunk-EFOJEQDS.js';
1
+ import { useRunStatusCounts, ExecutionStats, ExecutionFilters, ExecutionTable, ExecutionCards, ExecutionTimeline, Pagination, runStatusLabels } from './chunk-K6HD5GC7.js';
2
+ import { useExecutionsWithStore, useExecutionStats, useExecutionActions, useAutoRefresh, WORKFLOW_ID_MAX_LENGTH } from './chunk-6WPW42TX.js';
3
+ import { useWorkflowDefinitions } from './chunk-QXACKASD.js';
4
4
  import { FluidGridsDocsLink } from './chunk-4VJ3MDOV.js';
5
- import { useDurableParityEnabled } from './chunk-23LYGZ27.js';
5
+ import { useDurableParityEnabled } from './chunk-YC76QFWZ.js';
6
6
  import { useExecutionsStore } from './chunk-6AMNEX2Y.js';
7
7
  import { useTr } from './chunk-UULVIT25.js';
8
8
  import { useRef, useCallback, useMemo, useState, useEffect } from 'react';
@@ -1,4 +1,4 @@
1
- import { throwIfResultError, describeOperationError } from './chunk-23LYGZ27.js';
1
+ import { throwIfResultError, describeOperationError } from './chunk-YC76QFWZ.js';
2
2
  import { useTr } from './chunk-UULVIT25.js';
3
3
  import { getFluidGridsClient } from './chunk-NTWG3CJX.js';
4
4
  import { useState, useCallback, useEffect, useMemo } from 'react';
@@ -1,4 +1,4 @@
1
- import { throwIfResultError } from './chunk-23LYGZ27.js';
1
+ import { throwIfResultError } from './chunk-YC76QFWZ.js';
2
2
  import { useTr } from './chunk-UULVIT25.js';
3
3
  import { getFluidGridsClient } from './chunk-NTWG3CJX.js';
4
4
  import { useState, useRef, useCallback, useEffect } from 'react';
@@ -1,4 +1,4 @@
1
- import { throwIfResultError, describeOperationError, signalPayloadCard, components_default, payloadFromCardValues, parseRawSignalPayload } from './chunk-23LYGZ27.js';
1
+ import { throwIfResultError, describeOperationError, signalPayloadCard, components_default, payloadFromCardValues, parseRawSignalPayload } from './chunk-YC76QFWZ.js';
2
2
  import { TerminateWorkflowRunDocument, WorkflowRunHistoryDocument, RunEventAppendedDocument, DurableRunFieldsDocument, WorkflowRunDeterminismStatusDocument, WorkflowRunStackTraceDocument, SignalWorkflowRunDocument } from './chunk-JTQFBZTV.js';
3
3
  import { useTr } from './chunk-UULVIT25.js';
4
4
  import { getFluidGridsClient, getFluidGridsClientSafe } from './chunk-NTWG3CJX.js';
@@ -1,4 +1,4 @@
1
- import { throwIfResultError } from './chunk-23LYGZ27.js';
1
+ import { throwIfResultError } from './chunk-YC76QFWZ.js';
2
2
  import { RunFailureClustersDocument, DismissRunFailureClusterDocument, RunFailureTriageSettingsDocument, SetRunFailureTriageEnabledDocument, FgTriageFailedRunsDocument } from './chunk-JTQFBZTV.js';
3
3
  import { useTr } from './chunk-UULVIT25.js';
4
4
  import { getFluidGridsClient } from './chunk-NTWG3CJX.js';
@@ -1,11 +1,11 @@
1
- import { CreateWorkflowRefusalDialog, firstWorkflowProgress, GUIDED_TOUR_STATE, builderPathFor } from './chunk-JCHE4V55.js';
2
- import { useExecutions } from './chunk-QAXP5HON.js';
3
- import { useExportWorkflowAs, downloadWorkflowExport, importAcceptAttribute, QuotaExhaustedDialog, importFileKind, parseWorkflowImport, CODE_EXPORT_FORMATS, ImportSourceError, assertImportByteSize, MAX_IMPORT_ARCHIVE_BYTES, readProjectArchive, checkTypeScriptImport, MAX_IMPORT_SOURCE_BYTES, typeScriptModuleFile, typeScriptImportSource, workflowNameFromFile, primaryImportModule } from './chunk-4FDMLKLL.js';
1
+ import { CreateWorkflowRefusalDialog, firstWorkflowProgress, GUIDED_TOUR_STATE, builderPathFor } from './chunk-52OIBKPO.js';
2
+ import { useExecutions } from './chunk-6WPW42TX.js';
3
+ import { useExportWorkflowAs, downloadWorkflowExport, importAcceptAttribute, QuotaExhaustedDialog, importFileKind, parseWorkflowImport, CODE_EXPORT_FORMATS, ImportSourceError, assertImportByteSize, MAX_IMPORT_ARCHIVE_BYTES, readProjectArchive, checkTypeScriptImport, MAX_IMPORT_SOURCE_BYTES, typeScriptModuleFile, typeScriptImportSource, workflowNameFromFile, primaryImportModule } from './chunk-SIVS3XSV.js';
4
4
  import { workflowsListControls } from './chunk-FNZZ5JJL.js';
5
- import { useCreateWorkflow, useWorkflowDefinitions, useLazyWorkflowDefinition, useImportWorkflow, useDuplicateWorkflow, useDeleteWorkflow } from './chunk-EFOJEQDS.js';
5
+ import { useCreateWorkflow, useWorkflowDefinitions, useLazyWorkflowDefinition, useImportWorkflow, useDuplicateWorkflow, useDeleteWorkflow } from './chunk-QXACKASD.js';
6
6
  import { useFluidGridsPageControls } from './chunk-PJAWNFJV.js';
7
7
  import { FluidGridsDocsLink } from './chunk-4VJ3MDOV.js';
8
- import { createThenOpen, useFluidGridsFlag, FLUIDGRIDS_FLAGS, BILLING_PLANS_PATH, describeOperationError, useFlowStore, throwIfResultError, isQuotaExhaustedFailure } from './chunk-23LYGZ27.js';
8
+ import { createThenOpen, useFluidGridsFlag, FLUIDGRIDS_FLAGS, BILLING_PLANS_PATH, describeOperationError, useFlowStore, throwIfResultError, isQuotaExhaustedFailure } from './chunk-YC76QFWZ.js';
9
9
  import { useFluidGridsPermission, FLUIDGRIDS_PERMISSIONS, SdkPermissionButton, SdkPermissionGate } from './chunk-ZUVFD5KV.js';
10
10
  import { WorkflowFoldersDocument, CreateWorkflowFolderDocument, RenameWorkflowFolderDocument, MoveWorkflowFolderDocument, DeleteWorkflowFolderDocument, WorkflowProjectsDocument, CreateWorkflowProjectDocument, RenameWorkflowProjectDocument, DeleteWorkflowProjectDocument, BulkMoveWorkflowsToFolderDocument, BulkAssignWorkflowsToProjectDocument, BulkDeleteWorkflowsDocument } from './chunk-JTQFBZTV.js';
11
11
  import { useTr } from './chunk-UULVIT25.js';
@@ -1,8 +1,8 @@
1
- import { validateDateRange, statusCountFilter, STATUS_COUNT_GROUP_BY, statusCountsOf } from './chunk-QAXP5HON.js';
1
+ import { validateDateRange, statusCountFilter, STATUS_COUNT_GROUP_BY, statusCountsOf } from './chunk-6WPW42TX.js';
2
2
  import { useAvailableTags, formatRunVersion, nodeDisplayTitle } from './chunk-PC3CICOW.js';
3
3
  import { executionsControls } from './chunk-FNZZ5JJL.js';
4
4
  import { useFluidGridsPageControls } from './chunk-PJAWNFJV.js';
5
- import { useDurableParityEnabled, throwIfResultError, describeOperationError } from './chunk-23LYGZ27.js';
5
+ import { useDurableParityEnabled, throwIfResultError, describeOperationError } from './chunk-YC76QFWZ.js';
6
6
  import { useExecutionsStore } from './chunk-6AMNEX2Y.js';
7
7
  import { SetWorkflowRunVersioningOverrideDocument, WorkflowRunsCountDocument, DurableParityRunFieldsDocument, WorkflowRunPendingDocument, WorkflowRunMetadataDocument } from './chunk-JTQFBZTV.js';
8
8
  import { useTr } from './chunk-UULVIT25.js';
@@ -3,17 +3,17 @@ import { templatePreview } from './chunk-B6CCE2RW.js';
3
3
  import { Input } from './chunk-IEVSFCFS.js';
4
4
  import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter as DialogFooter$1 } from './chunk-YXMFRQYV.js';
5
5
  import { Badge as Badge$1, Button } from './chunk-BQXVT32O.js';
6
- import { LogsPanel } from './chunk-W74MXVFX.js';
7
- import { editStateFor, isFlowComplete, touchesSavedFields, watchLeavingLosesChanges, savedEverythingBeforeLeaving, leavingLosesChanges, useFlowValidator, departingSave, runPreparation, computeAttachPosition, firstInputHandleId, editingLeaseLocked, autosaveAllowedFor } from './chunk-OUYEMZT6.js';
8
- import { QuotaExhaustedDialog, useWorkflowCodeExport, orderedExportFiles, fileBaseName, downloadWorkflowCodeExport, isLosslessReport, sortFidelityItems, isLossyFidelityItem, lineOfNode } from './chunk-4FDMLKLL.js';
9
- import { emptyTestCaseDraft, EntityTagPicker, useWorkflowProposal, WorkflowProposalCard, useWorkflowTests, pinnedOutputsFromCanvas, enabledCaseIds, isTestRunOpen, MAX_TEST_CASES, draftFromTestCase, testRunSummaryText, testStatusLabel, TEST_STATUS_TONE_CLASS, testStatusTone, MAX_CASE_NAME, nextSortOrder, draftToInput } from './chunk-3Y4266JL.js';
6
+ import { LogsPanel } from './chunk-SUIH376K.js';
7
+ import { computeAttachPosition, firstInputHandleId } from './chunk-742OIXMP.js';
8
+ import { QuotaExhaustedDialog, useWorkflowCodeExport, orderedExportFiles, fileBaseName, downloadWorkflowCodeExport, isLosslessReport, sortFidelityItems, isLossyFidelityItem, lineOfNode } from './chunk-SIVS3XSV.js';
9
+ import { emptyTestCaseDraft, EntityTagPicker, useWorkflowProposal, WorkflowProposalCard, useWorkflowTests, pinnedOutputsFromCanvas, enabledCaseIds, isTestRunOpen, MAX_TEST_CASES, draftFromTestCase, testRunSummaryText, testStatusLabel, TEST_STATUS_TONE_CLASS, testStatusTone, MAX_CASE_NAME, nextSortOrder, draftToInput } from './chunk-OBWB73Y7.js';
10
10
  import { buildNodeDisplayMap } from './chunk-PC3CICOW.js';
11
11
  import { AiCreditBalanceSlot } from './chunk-Y53CVZVV.js';
12
- import { countLifecycle, VersionLifecycleBar, VersionDiffDialog } from './chunk-PBCBDSVA.js';
13
- import { useRestoreWorkflowVersion, useWorkflowVersions, useActivateWorkflow, useDeleteWorkflow, useDeactivateWorkflow } from './chunk-EFOJEQDS.js';
12
+ import { countLifecycle, VersionLifecycleBar, VersionDiffDialog } from './chunk-N6XYVO7N.js';
13
+ import { useRestoreWorkflowVersion, useWorkflowVersions, useActivateWorkflow, useDeleteWorkflow, useDeactivateWorkflow } from './chunk-QXACKASD.js';
14
14
  import { useRequestedProposal } from './chunk-GLYINMOR.js';
15
15
  import { FluidGridsDocsLink } from './chunk-4VJ3MDOV.js';
16
- import { leaseCallQueue, RUNS_QUOTA_NAME, useFlowStore, BILLING_PLANS_PATH, emitUpgradeClicked, FluidGridsContext, throwIfResultError, emitWorkflowCreated, emitTemplateUsed, describeOperationError, ensureNodeConfigsLoaded, NODE_CONFIGS, useEditLeaseStore, useEditLeaseLocked, registerWorkflowNodeTypes, emitNodeInstalled, useNodeExecution, usePaletteGates, onNodeTypesUpdate, NODE_TYPES, getNodeMetadata, useIsValidConnection, refetchStoreNodes, AVAILABLE_NODES, EDIT_SESSION_ID, useInsertNode, NODE_TYPE_DRAG_DATA_FORMAT, NODE_OPERATION_DRAG_DATA_FORMAT, useSaveStatusStore, useDurableFunctionNodesEnabled, CODE_WORKFLOW_NODE_TYPE, bannerOf, useSaveWorkflow, STICKY_NOTE_TYPE, filterPaletteNodes, useFluidGridsAnalytics, sessionBeforeReload, forgetSessionForReload, releasesOnClose, isLocked, workflowFingerprint, buildStickyNode, NODES_METADATA, NodeTypeIcon, shouldReleaseForIdle, tickAction, rememberSessionForReload, buildOperationSeed, useDurableParityEnabled, useConnections, ConnectionFormDialog, useWorkflowTestsEnabled, useFluidGridsFlag, FLUIDGRIDS_FLAGS, saveIndicatorOf, inAppLeaveTarget, isNodeConfigsInitialized, phaseAfterAcquire, rememberOwnStatusChange, getNodeDetail, isImageIcon, NODES, synchronizeOperationUpdate, NodePropertyPanel, loadDefinitionJson, canAutosave, isNodeTypeHiddenFromPalette, isTriggerOperation, canRenderOperationPanel, resolveOperationName, ConnectionSelector, savesInPlace, AUTOSAVE_RETRY_DELAYS_MS, AUTOSAVE_DEBOUNCE_MS, rememberRevision, phaseAfterTakeOver } from './chunk-23LYGZ27.js';
16
+ import { leaseCallQueue, RUNS_QUOTA_NAME, useFlowStore, BILLING_PLANS_PATH, emitUpgradeClicked, FluidGridsContext, throwIfResultError, emitWorkflowCreated, emitTemplateUsed, describeOperationError, ensureNodeConfigsLoaded, NODE_CONFIGS, useEditLeaseStore, useEditLeaseLocked, registerWorkflowNodeTypes, emitNodeInstalled, useNodeExecution, usePaletteGates, onNodeTypesUpdate, NODE_TYPES, getNodeMetadata, useIsValidConnection, refetchStoreNodes, AVAILABLE_NODES, EDIT_SESSION_ID, useInsertNode, NODE_TYPE_DRAG_DATA_FORMAT, NODE_OPERATION_DRAG_DATA_FORMAT, useSaveStatusStore, useManualSave, useDurableFunctionNodesEnabled, CODE_WORKFLOW_NODE_TYPE, bannerOf, editStateFor, useSaveWorkflow, STICKY_NOTE_TYPE, filterPaletteNodes, useFluidGridsAnalytics, useGuardedNavigate, sessionBeforeReload, forgetSessionForReload, releasesOnClose, touchesSavedFields, isLocked, watchLeavingLosesChanges, workflowFingerprint, savedEverythingBeforeLeaving, buildStickyNode, NODES_METADATA, NodeTypeIcon, shouldReleaseForIdle, tickAction, rememberSessionForReload, leavingLosesChanges, buildOperationSeed, useDurableParityEnabled, useConnections, ConnectionFormDialog, useWorkflowTestsEnabled, useFluidGridsFlag, FLUIDGRIDS_FLAGS, useFlowValidator, saveIndicatorOf, departingSave, inAppLeaveTarget, isNodeConfigsInitialized, phaseAfterAcquire, rememberOwnStatusChange, useRunGuard, getNodeDetail, isImageIcon, NODES, synchronizeOperationUpdate, NodePropertyPanel, loadDefinitionJson, canAutosave, isNodeTypeHiddenFromPalette, isTriggerOperation, canRenderOperationPanel, resolveOperationName, ConnectionSelector, AUTOSAVE_RETRY_DELAYS_MS, AUTOSAVE_DEBOUNCE_MS, editingLeaseLocked, autosaveAllowedFor, isFlowComplete, rememberRevision, phaseAfterTakeOver } from './chunk-YC76QFWZ.js';
17
17
  import { SdkPermissionButton, FLUIDGRIDS_PERMISSIONS, useFluidGridsPermission } from './chunk-ZUVFD5KV.js';
18
18
  import { cn } from './chunk-JL7CASN5.js';
19
19
  import { BuilderReadOnlyProvider, useBuilderReadOnly } from './chunk-OCJTTHTS.js';
@@ -2196,42 +2196,6 @@ function enrichDraftNodes(nodes, seed) {
2196
2196
  function canvasHasWork(nodes) {
2197
2197
  return nodes.length > 1;
2198
2198
  }
2199
- function useManualSave() {
2200
- const tr = useTr();
2201
- const { saveToBackend } = useSaveWorkflow();
2202
- return useCallback(async () => {
2203
- const { nodes, edges } = useFlowStore.getState().workflow;
2204
- if (!isFlowComplete(nodes, edges)) {
2205
- toast.error(
2206
- tr(
2207
- "fluidgrids.builder.saveFlowButton.invalidToastTitle",
2208
- "Flow is invalid"
2209
- ),
2210
- {
2211
- description: tr(
2212
- "fluidgrids.builder.saveFlowButton.invalidToastDescription",
2213
- "Please check if the flow is complete and has no lone nodes"
2214
- )
2215
- }
2216
- );
2217
- return false;
2218
- }
2219
- return saveToBackend();
2220
- }, [saveToBackend, tr]);
2221
- }
2222
- function useGuardedNavigate() {
2223
- const navigate = useNavigate();
2224
- return useCallback(
2225
- (to, options) => {
2226
- if (leavingLosesChanges()) {
2227
- useSaveStatusStore.getState().actions.requestLeave({ to, options });
2228
- return;
2229
- }
2230
- navigate(to, options);
2231
- },
2232
- [navigate]
2233
- );
2234
- }
2235
2199
  function useNodeList(nodes) {
2236
2200
  return useMemo(() => {
2237
2201
  return nodes.slice().sort((a, b) => {
@@ -7110,8 +7074,8 @@ var reducer = (state, action) => {
7110
7074
  if (toastId) {
7111
7075
  addToRemoveQueue(toastId);
7112
7076
  } else {
7113
- state.toasts.forEach((toast19) => {
7114
- addToRemoveQueue(toast19.id);
7077
+ state.toasts.forEach((toast18) => {
7078
+ addToRemoveQueue(toast18.id);
7115
7079
  });
7116
7080
  }
7117
7081
  return {
@@ -7145,7 +7109,7 @@ function dispatch(action) {
7145
7109
  listener(memoryState);
7146
7110
  });
7147
7111
  }
7148
- function toast5({ ...props }) {
7112
+ function toast4({ ...props }) {
7149
7113
  const id = genId();
7150
7114
  const update = (props2) => dispatch({
7151
7115
  type: actionTypes.UPDATE_TOAST,
@@ -7182,7 +7146,7 @@ function useToast() {
7182
7146
  }, [state]);
7183
7147
  return {
7184
7148
  ...state,
7185
- toast: toast5,
7149
+ toast: toast4,
7186
7150
  dismiss: (toastId) => dispatch({ type: actionTypes.DISMISS_TOAST, toastId })
7187
7151
  };
7188
7152
  }
@@ -8487,7 +8451,7 @@ function VisualMapperContent({
8487
8451
  mapping,
8488
8452
  onMappingChange
8489
8453
  }) {
8490
- const { toast: toast19 } = useToast();
8454
+ const { toast: toast18 } = useToast();
8491
8455
  const tr = useTr();
8492
8456
  const reactFlowWrapper = useRef(null);
8493
8457
  const [selectedSourceNode, setSelectedSourceNode] = useState(null);
@@ -8507,7 +8471,7 @@ function VisualMapperContent({
8507
8471
  targetOperation
8508
8472
  );
8509
8473
  if (generatedNodes.length === 0) {
8510
- toast19({
8474
+ toast18({
8511
8475
  title: tr(
8512
8476
  "fluidgrids.builder.visualMapper.noFieldsFoundTitle",
8513
8477
  "No fields found"
@@ -8533,7 +8497,7 @@ function VisualMapperContent({
8533
8497
  targetNode,
8534
8498
  targetOperation,
8535
8499
  setNodes,
8536
- toast19,
8500
+ toast18,
8537
8501
  tr
8538
8502
  ]);
8539
8503
  useEffect(() => {
@@ -8640,7 +8604,7 @@ function VisualMapperContent({
8640
8604
  }
8641
8605
  onMappingChange(updatedMapping);
8642
8606
  if (isCompatible) {
8643
- toast19({
8607
+ toast18({
8644
8608
  title: tr(
8645
8609
  "fluidgrids.builder.visualMapper.mappingCreatedTitle",
8646
8610
  "Mapping created"
@@ -8648,7 +8612,7 @@ function VisualMapperContent({
8648
8612
  description: `Mapped ${sourcePath} (${sourceType}) to ${targetPath} (${targetType})`
8649
8613
  });
8650
8614
  } else {
8651
- toast19({
8615
+ toast18({
8652
8616
  title: tr(
8653
8617
  "fluidgrids.builder.visualMapper.typeMismatchTitle",
8654
8618
  "Type mismatch warning"
@@ -8658,7 +8622,7 @@ function VisualMapperContent({
8658
8622
  });
8659
8623
  }
8660
8624
  } else {
8661
- toast19({
8625
+ toast18({
8662
8626
  title: tr(
8663
8627
  "fluidgrids.builder.visualMapper.invalidMappingTitle",
8664
8628
  "Invalid mapping"
@@ -8671,7 +8635,7 @@ function VisualMapperContent({
8671
8635
  });
8672
8636
  }
8673
8637
  },
8674
- [nodes, mapping, onMappingChange, toast19, tr, setEdges]
8638
+ [nodes, mapping, onMappingChange, toast18, tr, setEdges]
8675
8639
  );
8676
8640
  const onEdgeDelete = useCallback(
8677
8641
  (edge) => {
@@ -8728,7 +8692,7 @@ function VisualMapperContent({
8728
8692
  const handleSaveMappingDialog = (expression, targetFieldName) => {
8729
8693
  const targetPath = targetFieldName || selectedTargetNode?.data?.path;
8730
8694
  if (!targetPath) {
8731
- toast19({
8695
+ toast18({
8732
8696
  title: tr(
8733
8697
  "fluidgrids.builder.visualMapper.noTargetFieldTitle",
8734
8698
  "No target field specified"
@@ -8760,7 +8724,7 @@ function VisualMapperContent({
8760
8724
  }
8761
8725
  onMappingChange(updatedMapping);
8762
8726
  const mappingType = detectMappingType(expression);
8763
- toast19({
8727
+ toast18({
8764
8728
  title: `${mappingType.charAt(0).toUpperCase() + mappingType.slice(1)} mapping created`,
8765
8729
  description: `${tr("fluidgrids.builder.visualMapper.appliedMappingTo", "Applied mapping to")} ${targetPath}`
8766
8730
  });
@@ -9059,7 +9023,7 @@ function MappingEditor({
9059
9023
  setEdges,
9060
9024
  edgeId
9061
9025
  }) {
9062
- const { toast: toast19 } = useToast();
9026
+ const { toast: toast18 } = useToast();
9063
9027
  const tr = useTr();
9064
9028
  const [mappingJson, setMappingJson] = useState({});
9065
9029
  const [jsonDataString, setJsonDataString] = useState(
@@ -9183,7 +9147,7 @@ function MappingEditor({
9183
9147
  const handleSaveMapping = () => {
9184
9148
  try {
9185
9149
  checkJsonValidity();
9186
- toast19({
9150
+ toast18({
9187
9151
  title: tr(
9188
9152
  "fluidgrids.builder.mappingEditor.mappingSavedTitle",
9189
9153
  "Mapping saved"
@@ -9194,7 +9158,7 @@ function MappingEditor({
9194
9158
  )
9195
9159
  });
9196
9160
  } catch (error) {
9197
- toast19({
9161
+ toast18({
9198
9162
  title: tr(
9199
9163
  "fluidgrids.builder.mappingEditor.errorSavingTitle",
9200
9164
  "Error saving mapping"
@@ -9213,7 +9177,7 @@ function MappingEditor({
9213
9177
  const parsedData = checkJsonValidity();
9214
9178
  const result = await applyMapping(parsedData, sampleInput);
9215
9179
  setPreviewOutput(result);
9216
- toast19({
9180
+ toast18({
9217
9181
  title: tr(
9218
9182
  "fluidgrids.builder.mappingEditor.mappingTestedTitle",
9219
9183
  "Mapping tested"
@@ -9225,7 +9189,7 @@ function MappingEditor({
9225
9189
  });
9226
9190
  } catch (error) {
9227
9191
  console.error("Test mapping error:", error);
9228
- toast19({
9192
+ toast18({
9229
9193
  title: tr(
9230
9194
  "fluidgrids.builder.mappingEditor.mappingTestFailedTitle",
9231
9195
  "Mapping test failed"
@@ -15259,146 +15223,6 @@ function TriggerDataDialog({
15259
15223
  ] })
15260
15224
  ] }) });
15261
15225
  }
15262
- function useRunGuard(startRun) {
15263
- const { saveToBackend } = useSaveWorkflow();
15264
- const [confirmOpen, setConfirmOpen] = useState(false);
15265
- const [preparing, setPreparing] = useState(false);
15266
- const requestRun = useCallback(async () => {
15267
- const preparation = runPreparation();
15268
- if (preparation === "run") {
15269
- startRun();
15270
- return;
15271
- }
15272
- if (preparation === "save-first") {
15273
- setPreparing(true);
15274
- let saved = false;
15275
- try {
15276
- saved = await saveToBackend({ silent: true }) && savedEverythingBeforeLeaving();
15277
- } finally {
15278
- setPreparing(false);
15279
- }
15280
- if (saved) {
15281
- startRun();
15282
- return;
15283
- }
15284
- }
15285
- setConfirmOpen(true);
15286
- }, [saveToBackend, startRun]);
15287
- const dialog = /* @__PURE__ */ jsx(
15288
- UnsavedRunDialog,
15289
- {
15290
- open: confirmOpen,
15291
- onOpenChange: setConfirmOpen,
15292
- onRunSaved: () => {
15293
- setConfirmOpen(false);
15294
- startRun();
15295
- },
15296
- onSavedAndRunnable: () => {
15297
- setConfirmOpen(false);
15298
- startRun();
15299
- }
15300
- }
15301
- );
15302
- return { requestRun, preparing, dialog };
15303
- }
15304
- function UnsavedRunDialog({
15305
- open,
15306
- onOpenChange,
15307
- onRunSaved,
15308
- onSavedAndRunnable
15309
- }) {
15310
- const tr = useTr();
15311
- const manualSave = useManualSave();
15312
- const [version, dbId, status, codeBuildId] = useFlowStore(
15313
- useShallow((s) => [
15314
- s.workflow.version,
15315
- s.workflow.dbId,
15316
- s.workflow.status,
15317
- s.workflow.codeBuildId
15318
- ])
15319
- );
15320
- const [saving, setSaving] = useState(false);
15321
- const hasSavedVersion = !!dbId;
15322
- const runsAfterSave = !hasSavedVersion || savesInPlace({ dbId, status, codeBuildId });
15323
- const save = useCallback(async () => {
15324
- setSaving(true);
15325
- try {
15326
- const saved = await manualSave();
15327
- if (!saved) return;
15328
- if (!runsAfterSave) {
15329
- onOpenChange(false);
15330
- return;
15331
- }
15332
- if (savedEverythingBeforeLeaving()) onSavedAndRunnable();
15333
- } finally {
15334
- setSaving(false);
15335
- }
15336
- }, [runsAfterSave, manualSave, onOpenChange, onSavedAndRunnable]);
15337
- return /* @__PURE__ */ jsx(
15338
- AlertDialog,
15339
- {
15340
- open,
15341
- onOpenChange: (next) => {
15342
- if (!next && saving) return;
15343
- onOpenChange(next);
15344
- },
15345
- children: /* @__PURE__ */ jsxs(AlertDialogContent, { "data-testid": "fluidgrids-unsaved-run-dialog", children: [
15346
- /* @__PURE__ */ jsxs(AlertDialogHeader, { children: [
15347
- /* @__PURE__ */ jsx(AlertDialogTitle, { children: tr(
15348
- "fluidgrids.builder.runGuard.title",
15349
- "Run without your unsaved changes?"
15350
- ) }),
15351
- /* @__PURE__ */ jsxs(AlertDialogDescription, { children: [
15352
- hasSavedVersion ? tr(
15353
- "fluidgrids.builder.runGuard.description",
15354
- "This workflow has changes that are not saved. A run uses the saved version {{version}}, without them.",
15355
- { version }
15356
- ) : tr(
15357
- "fluidgrids.builder.runGuard.descriptionNotSaved",
15358
- "This workflow has not been saved yet. Save it before you run it."
15359
- ),
15360
- " ",
15361
- runsAfterSave ? null : tr(
15362
- "fluidgrids.builder.runGuard.newVersionHint",
15363
- "Saving keeps your changes as a new version and opens it; run that version."
15364
- )
15365
- ] })
15366
- ] }),
15367
- /* @__PURE__ */ jsxs(AlertDialogFooter, { children: [
15368
- /* @__PURE__ */ jsx(AlertDialogCancel, { disabled: saving, children: tr("fluidgrids.builder.runGuard.cancelButton", "Cancel") }),
15369
- hasSavedVersion && /* @__PURE__ */ jsx(
15370
- Button$2,
15371
- {
15372
- "data-agent": "confirm",
15373
- variant: "outline",
15374
- onClick: onRunSaved,
15375
- disabled: saving,
15376
- children: tr(
15377
- "fluidgrids.builder.runGuard.runSavedButton",
15378
- "Run saved version"
15379
- )
15380
- }
15381
- ),
15382
- /* @__PURE__ */ jsx(
15383
- Button$2,
15384
- {
15385
- "data-agent": "confirm",
15386
- onClick: () => void save(),
15387
- disabled: saving,
15388
- children: saving ? tr("fluidgrids.builder.runGuard.savingButton", "Saving\u2026") : runsAfterSave ? tr(
15389
- "fluidgrids.builder.runGuard.saveAndRunButton",
15390
- "Save and run"
15391
- ) : tr(
15392
- "fluidgrids.builder.runGuard.saveAsNewVersionButton",
15393
- "Save as new version"
15394
- )
15395
- }
15396
- )
15397
- ] })
15398
- ] })
15399
- }
15400
- );
15401
- }
15402
15226
  var ExecuteWorkflowButton = ({
15403
15227
  className
15404
15228
  }) => {
@@ -21355,12 +21179,12 @@ function EditLeaseBanner() {
21355
21179
  );
21356
21180
  }
21357
21181
  var LazyNodeDetailView = lazy(
21358
- () => import('./node-detail-view-KET5DNEH.js').then((m) => ({
21182
+ () => import('./node-detail-view-CMQ7DUYM.js').then((m) => ({
21359
21183
  default: m.NodeDetailView
21360
21184
  }))
21361
21185
  );
21362
21186
  var LazyQuickConfigPanel = lazy(
21363
- () => import('./quick-config-panel-L6CTZQUG.js').then((m) => ({
21187
+ () => import('./quick-config-panel-NJ72QZPM.js').then((m) => ({
21364
21188
  default: m.QuickConfigPanel
21365
21189
  }))
21366
21190
  );
@@ -21422,7 +21246,7 @@ var FlowBuilder = ({ readOnly = false }) => {
21422
21246
  );
21423
21247
  useEffect(() => {
21424
21248
  let cancelled = false;
21425
- void import('./agentTools-PA62A53S.js').then(({ createBuilderAgentTools }) => {
21249
+ void import('./agentTools-4JT66UQB.js').then(({ createBuilderAgentTools }) => {
21426
21250
  if (cancelled) return;
21427
21251
  setAgentTools(
21428
21252
  createBuilderAgentTools({
@@ -1,6 +1,6 @@
1
- import { versionsOfWorkflow, VersionDiffDialog } from './chunk-PBCBDSVA.js';
1
+ import { versionsOfWorkflow, VersionDiffDialog } from './chunk-N6XYVO7N.js';
2
2
  import { historyControls } from './chunk-FNZZ5JJL.js';
3
- import { useWorkflowDefinitions, useRestoreWorkflowVersion } from './chunk-EFOJEQDS.js';
3
+ import { useWorkflowDefinitions, useRestoreWorkflowVersion } from './chunk-QXACKASD.js';
4
4
  import { useFluidGridsPageControls } from './chunk-PJAWNFJV.js';
5
5
  import { FluidGridsDocsLink } from './chunk-4VJ3MDOV.js';
6
6
  import { getFluidGridsConfig } from './chunk-6AMNEX2Y.js';
@@ -1,7 +1,7 @@
1
- import { FailureTriagePanel } from './chunk-A4XNCGWT.js';
2
- import { useDataSinks, useDataSinkData, useInsightsData, useRunReplayActions } from './chunk-CXNJKM4D.js';
1
+ import { FailureTriagePanel } from './chunk-H2KIJEYM.js';
2
+ import { useDataSinks, useDataSinkData, useInsightsData, useRunReplayActions } from './chunk-UH7JKPUF.js';
3
3
  import { proposalCanvasPath } from './chunk-GLYINMOR.js';
4
- import { useContinuousOptimisationEnabled, throwIfResultError } from './chunk-23LYGZ27.js';
4
+ import { useContinuousOptimisationEnabled, throwIfResultError } from './chunk-YC76QFWZ.js';
5
5
  import { useFluidGridsPermission, FLUIDGRIDS_PERMISSIONS, SdkPermissionButton } from './chunk-ZUVFD5KV.js';
6
6
  import { SetContinuousOptimisationEnabledDocument, FgRunOptimisationScanDocument, ProposeOptimisationDocument, WorkflowProposalDocument, DismissOptimisationSuggestionDocument, SnoozeOptimisationSuggestionDocument, OptimisationSuggestionsDocument, ContinuousOptimisationSettingsDocument } from './chunk-JTQFBZTV.js';
7
7
  import { useTr } from './chunk-UULVIT25.js';