@burdenoff/fluidgrids-fe-sdk 2026.1105.3 → 2026.1106.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/README.md +16 -3
- package/dist/{ExecutionDetailPage-JXGPSLS3.js → ExecutionDetailPage-OOHJQR2L.js} +14 -14
- package/dist/{ExecutionsListPage-U3TC5JUI.js → ExecutionsListPage-6HS5VQOV.js} +10 -10
- package/dist/{WorkflowBuilder-6DOD6WWH.js → WorkflowBuilder-PICIS7FI.js} +16 -16
- package/dist/{WorkflowsList-XOWRQNST.js → WorkflowsList-SD5XQC4Q.js} +10 -10
- package/dist/{agentTools-YQBN33WG.js → agentTools-UH4LU6LA.js} +7 -7
- package/dist/{chunk-MY7SEUXM.js → chunk-43GSC5Y6.js} +1 -1
- package/dist/{chunk-EKDUYCTS.js → chunk-4XAXF5VP.js} +4 -4
- package/dist/{chunk-G774FI2E.js → chunk-5GG2FEKW.js} +2 -2
- package/dist/{chunk-TJAG2DQT.js → chunk-5Z4F24QT.js} +3 -3
- package/dist/{chunk-JYYN3CLL.js → chunk-6VIG44VF.js} +1 -1
- package/dist/{chunk-2WUVF4EQ.js → chunk-ASYYYJG2.js} +4 -4
- package/dist/{chunk-OXXXUAWM.js → chunk-CTKWMPQQ.js} +1 -1
- package/dist/{chunk-YGOGJDN4.js → chunk-EIMTOK6E.js} +3 -3
- package/dist/{chunk-AMXJLVZN.js → chunk-EXJW7EKR.js} +2 -2
- package/dist/{chunk-MP44TAOO.js → chunk-GBJWPSLJ.js} +70 -5
- package/dist/{chunk-LDWBMCX4.js → chunk-GBQC5WDH.js} +16 -9
- package/dist/{chunk-3ZYRLGDF.js → chunk-GPABUQTD.js} +650 -636
- package/dist/{chunk-ZBPRNWKY.js → chunk-HSTP2RX3.js} +35 -6
- package/dist/{chunk-US5QSLPV.js → chunk-JKLZ6YZ3.js} +22 -11
- package/dist/{chunk-KAWRHIJZ.js → chunk-JRLBPR5U.js} +3 -3
- package/dist/{chunk-IL343FKX.js → chunk-KHS2DZHH.js} +1 -1
- package/dist/{chunk-4NNF7DIB.js → chunk-KJT5TAOE.js} +3 -3
- package/dist/{chunk-TLHX4DK4.js → chunk-LLCVVRCE.js} +9 -9
- package/dist/{chunk-IJ7UIDCW.js → chunk-M72SMQOS.js} +8 -8
- package/dist/{chunk-TCIBTMJI.js → chunk-NZMUKAXG.js} +3 -69
- package/dist/{chunk-G33OMSW6.js → chunk-OLRIWGYM.js} +6 -6
- package/dist/{chunk-NMQENSPW.js → chunk-OTOQFZFO.js} +38 -38
- package/dist/{chunk-EYQ7GJRW.js → chunk-PASKZCII.js} +3 -3
- package/dist/{chunk-3IXU7WUC.js → chunk-PDODDDHY.js} +1 -1
- package/dist/{chunk-5DVP2UYH.js → chunk-TGWDFLEX.js} +11 -3
- package/dist/{chunk-AU7LACOY.js → chunk-TYI2XOSI.js} +1 -1
- package/dist/{chunk-L2N6DDOI.js → chunk-U7UNWR3D.js} +2 -2
- package/dist/{chunk-NZFPCTIS.js → chunk-UIS7KGHW.js} +4 -4
- package/dist/{chunk-KN37RIFC.js → chunk-UWCD7JUU.js} +8 -8
- package/dist/{chunk-MA6I4KY5.js → chunk-UYTPURFW.js} +16 -50
- package/dist/{chunk-ZLBTUCC2.js → chunk-WBRW67HX.js} +3 -3
- package/dist/{chunk-VESQH55Q.js → chunk-WC526MLS.js} +3 -3
- package/dist/{chunk-22U3TUKZ.js → chunk-XNARCHMT.js} +2 -2
- package/dist/{chunk-3MZOYJ5I.js → chunk-XWINH6CR.js} +1 -1
- package/dist/{chunk-FVWRGL7S.js → chunk-Y4UCHFGK.js} +1 -1
- package/dist/{client-YVZMLEQX.js → client-62VHXHKN.js} +2 -2
- package/dist/executions.js +15 -15
- package/dist/{global-client-N5EIFW6T.js → global-client-PJ5LANJA.js} +2 -2
- package/dist/history.js +9 -9
- package/dist/index.d.ts +10 -4
- package/dist/index.js +67 -53
- package/dist/{node-detail-view-U5HOP2WX.js → node-detail-view-P5NV5CMO.js} +11 -11
- package/dist/nodes.js +3 -3
- package/dist/observability.js +8 -8
- package/dist/{quick-config-panel-XAISBW6Y.js → quick-config-panel-ZNSBVF4G.js} +8 -8
- package/dist/settings.js +9 -9
- package/dist/templates.js +15 -15
- package/dist/{workflow-builder-7vv9dCdp.d.ts → workflow-builder-C-ekFbwR.d.ts} +37 -4
- package/dist/workflow-builder.d.ts +1 -1
- package/dist/workflow-builder.js +17 -17
- package/dist/workflow-preview.d.ts +10 -3
- package/dist/workflow-preview.js +78 -43
- package/dist/workflows-list.js +10 -10
- package/package.json +1 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { SdkPermissionGate, FLUIDGRIDS_PERMISSIONS } from './chunk-5375NUIO.js';
|
|
2
2
|
import { useBuilderReadOnly } from './chunk-SDZEAIIE.js';
|
|
3
|
-
import { STICKY_NOTE_TYPE, useFlowStore, resolveOperationName, synchronizeOperationUpdate, isNodeTrigger, resolveOutputHandles, resolveInputHandles, outputHandlesSpacerHeight, WAIT_FOR_SIGNAL_NODE_TYPE, CODE_WORKFLOW_NODE_TYPE, readSignalName, LogicNodeCard, NodeCard, NodeCardHeader, NodeCardBody, InputHandles, OutputHandles, NodeTypeIcon, nodeAccent, readCodeWorkflowState, partitionStickyNotes, interfaceFields, interfaceHandlers } from './chunk-
|
|
4
|
-
import { getGlobalStoreClient, createGlobalStoreClient, setGlobalStoreClient, resetGlobalStoreClient } from './chunk-
|
|
3
|
+
import { STICKY_NOTE_TYPE, useFlowStore, resolveOperationName, synchronizeOperationUpdate, isNodeTrigger, resolveOutputHandles, resolveInputHandles, outputHandlesSpacerHeight, WAIT_FOR_SIGNAL_NODE_TYPE, CODE_WORKFLOW_NODE_TYPE, readSignalName, LogicNodeCard, NodeCard, NodeCardHeader, NodeCardBody, InputHandles, OutputHandles, NodeTypeIcon, nodeAccent, readCodeWorkflowState, partitionStickyNotes, interfaceFields, interfaceHandlers } from './chunk-TGWDFLEX.js';
|
|
4
|
+
import { getGlobalStoreClient, createGlobalStoreClient, setGlobalStoreClient, resetGlobalStoreClient } from './chunk-TYI2XOSI.js';
|
|
5
5
|
import { GetMyNodeInstallationsDocument } from './chunk-G77IGC3Y.js';
|
|
6
6
|
import { fetchAllNodeEndpointConfigs, NodeManifestDocument, UpdateWorkflowDefinitionDocument, CreateWorkflowDefinitionDocument, CreateWorkflowVersionDocument, ExecuteStepDocument, TriggerWorkflowDocument, RunFromNodeDocument, ExecutionDetailDocument, WorkflowDefinitionDocument, WorkflowRunDocument } from './chunk-Z3ABLERJ.js';
|
|
7
7
|
import { useTr, ENGLISH_FALLBACK_TRANSLATOR, FluidGridsTranslationProvider } from './chunk-UULVIT25.js';
|
|
8
|
-
import { waitForFluidGridsClient, getFluidGridsClient, getFluidGridsClientSafe, createFluidGridsClient, setFluidGridsClient, resetFluidGridsClient } from './chunk-
|
|
9
|
-
import { throwIfResultError, emitFluidGridsEvent, emitOperationErrorEvent, describeOperationError, emitRunCompletedOnce } from './chunk-
|
|
8
|
+
import { waitForFluidGridsClient, getFluidGridsClient, getFluidGridsClientSafe, createFluidGridsClient, setFluidGridsClient, resetFluidGridsClient } from './chunk-PDODDDHY.js';
|
|
9
|
+
import { throwIfResultError, emitFluidGridsEvent, emitOperationErrorEvent, describeOperationError, emitRunCompletedOnce } from './chunk-JKLZ6YZ3.js';
|
|
10
10
|
import { getFluidGridsConfig, validateTrustedOrigin, resetFluidGridsExecutionState, resetFluidGridsConfig, setFluidGridsConfig } from './chunk-UEG2WC3G.js';
|
|
11
11
|
import { memo, forwardRef, useState, useImperativeHandle, useRef, useEffect, useMemo, createContext, useCallback, useSyncExternalStore, useContext } from 'react';
|
|
12
12
|
import { useOptionalFeatureFlags } from '@burdenoff/fe-libs/shared/feature-flags';
|
|
@@ -275,6 +275,35 @@ function usePaletteGates() {
|
|
|
275
275
|
return useMemo(() => resolvePaletteGates(context), [context]);
|
|
276
276
|
}
|
|
277
277
|
|
|
278
|
+
// src/modules/executions/utils/duration.ts
|
|
279
|
+
function spanMs(start, end) {
|
|
280
|
+
if (!start || !end) return null;
|
|
281
|
+
const ms = new Date(end).getTime() - new Date(start).getTime();
|
|
282
|
+
return Number.isFinite(ms) && ms >= 0 ? ms : null;
|
|
283
|
+
}
|
|
284
|
+
function secondsToMs(seconds) {
|
|
285
|
+
return typeof seconds === "number" && Number.isFinite(seconds) && seconds >= 0 ? Math.round(seconds * 1e3) : null;
|
|
286
|
+
}
|
|
287
|
+
function nodeStateDurationMs(node) {
|
|
288
|
+
return spanMs(node.startTime, node.endTime) ?? secondsToMs(node.duration);
|
|
289
|
+
}
|
|
290
|
+
function runDurationMs(run) {
|
|
291
|
+
return spanMs(run.startedAt, run.completedAt) ?? secondsToMs(run.duration);
|
|
292
|
+
}
|
|
293
|
+
function formatElapsedMs(ms, empty = "-") {
|
|
294
|
+
if (ms === null || ms === void 0 || !Number.isFinite(ms) || ms < 0) {
|
|
295
|
+
return empty;
|
|
296
|
+
}
|
|
297
|
+
if (ms < 999.5) return `${Math.round(ms)}ms`;
|
|
298
|
+
if (ms < 59950) return `${(ms / 1e3).toFixed(1)}s`;
|
|
299
|
+
const totalSeconds = Math.round(ms / 1e3);
|
|
300
|
+
if (totalSeconds < 3600) {
|
|
301
|
+
return `${Math.floor(totalSeconds / 60)}m ${totalSeconds % 60}s`;
|
|
302
|
+
}
|
|
303
|
+
const totalMinutes = Math.floor(totalSeconds / 60);
|
|
304
|
+
return `${Math.floor(totalMinutes / 60)}h ${totalMinutes % 60}m`;
|
|
305
|
+
}
|
|
306
|
+
|
|
278
307
|
// src/billing/quota.ts
|
|
279
308
|
var RUNS_QUOTA_NAME = "fluidgrids.runs.monthly";
|
|
280
309
|
var WORKFLOWS_QUOTA_NAME = "fluidgrids.workflows.count";
|
|
@@ -6339,7 +6368,7 @@ function useNodeExecution() {
|
|
|
6339
6368
|
executionId: runId,
|
|
6340
6369
|
trigger: analyticsTrigger,
|
|
6341
6370
|
errorCode: run.errorType,
|
|
6342
|
-
durationMs: run
|
|
6371
|
+
durationMs: runDurationMs(run)
|
|
6343
6372
|
});
|
|
6344
6373
|
}
|
|
6345
6374
|
completeExecution();
|
|
@@ -8208,4 +8237,4 @@ function createNodeWithDefaultData(type, data) {
|
|
|
8208
8237
|
return Object.assign(createNodeData(type, defaultData), data);
|
|
8209
8238
|
}
|
|
8210
8239
|
|
|
8211
|
-
export { AUTOSAVE_DEBOUNCE_MS, AUTOSAVE_RETRY_DELAYS_MS, AVAILABLE_NODES, BILLING_PLANS_PATH, ConnectionFormDialog, ConnectionSelector, DURABLE_FUNCTION_NODE_TYPES, EDIT_SESSION_ID, ExpressionEditor, FLUIDGRIDS_FLAGS, FLUIDGRIDS_FLAG_DEFAULTS, FluidGridsContext, FluidGridsProvider, NODES, NODES_METADATA, NODE_CONFIGS, NODE_TYPES, NodePropertyPanel, PHASE_C_FLAGS_OFF, RUNS_QUOTA_NAME, RUN_CONTROL_NODE_TYPES, WORKFLOWS_QUOTA_NAME, WORKFLOW_TEST_NODE_TYPES, autosaveAllowedFor, bannerOf, blankWorkflowCreateInput, buildOperationSeed, buildStickyNode, builderPathOf, canAutosave, canSignalRun, classifyCreateRefusal, clearCodeWorkflowDefinitionCache, codeBuildIdOf, components_default, createConfiguredNode, createThenOpen, declaredOutputFields, declaredSignals, departingSave, editStateFor, editingLeaseLocked, emitNodeInstalled, emitRunFailed, emitRunLimitHit, emitRunStarted, emitTemplateUsed, emitUpgradeClicked, emitWorkflowCreated, emitWorkflowLimitHit, emitWorkflowPublished, ensureNodeConfigsLoaded, fieldsFromIO, fieldsFromValue, filterPaletteNodes, findQuotaRefusal, findSaveConflict, forgetSessionForReload, formatParameterValue, getNodeDetail, getNodeMetadata, inAppLeaveTarget, isDurableFunctionNodeType, isFlowComplete, isLocked, isNodeConfigsInitialized, isNodeTypeHiddenFromPalette, isParamVisible, isQuotaExhaustedFailure, isRunControlNodeType, leaseCallQueue, leavingLosesChanges, listCustomBlocks, liveInternalOperations, loadDefinitionJson, nodesOf, onNodeTypesUpdate, openRunQuotaUpgradePrompt, parseParameterValue, parseRawSignalPayload, pathToExpression, payloadFromCardValues, phaseAfterAcquire, phaseAfterTakeOver, readDisplayOptions, refetchStoreNodes, registerCustomBlock, registerWorkflowNodeTypes, releasesOnClose, rememberOwnStatusChange, rememberRevision, rememberSessionForReload, resolveNodeOperation, resolvePhaseCFlags, resolveUiSpec, runSignalTargets, runTriggerFromMode, saveIndicatorOf, savedEverythingBeforeLeaving, sessionBeforeReload, shouldReleaseForIdle, signalPayloadCard, stripSubmitActions, structuredParameterType, subscribeWorkflowSaved, tickAction, touchesSavedFields, useAgentDefinitionList, useAgentDefinitions, useCodeWorkflowInterface, useConnection, useConnections, useConnectionsByProvider, useContinuousOptimisationEnabled, useCreateConnection, useDurableFunctionNodesEnabled, useDurableParityEnabled, useEditLeaseLocked, useEditLeaseStore, useFlowValidator, useFluidGridsAnalytics, useFluidGridsContext, useFluidGridsFlag, useGuardedNavigate, useInitiateOAuth, useInsertNode, useManualSave, useNodeExecution, useNodeRegistryRevision, usePaletteGates, usePhaseCFlags, useProviders, useRunGuard, useSaveStatusStore, useSaveWorkflow, useSelfHostedWorkersEnabled, useWorkflowTestsEnabled, watchLeavingLosesChanges, workflowFingerprint };
|
|
8240
|
+
export { AUTOSAVE_DEBOUNCE_MS, AUTOSAVE_RETRY_DELAYS_MS, AVAILABLE_NODES, BILLING_PLANS_PATH, ConnectionFormDialog, ConnectionSelector, DURABLE_FUNCTION_NODE_TYPES, EDIT_SESSION_ID, ExpressionEditor, FLUIDGRIDS_FLAGS, FLUIDGRIDS_FLAG_DEFAULTS, FluidGridsContext, FluidGridsProvider, NODES, NODES_METADATA, NODE_CONFIGS, NODE_TYPES, NodePropertyPanel, PHASE_C_FLAGS_OFF, RUNS_QUOTA_NAME, RUN_CONTROL_NODE_TYPES, WORKFLOWS_QUOTA_NAME, WORKFLOW_TEST_NODE_TYPES, autosaveAllowedFor, bannerOf, blankWorkflowCreateInput, buildOperationSeed, buildStickyNode, builderPathOf, canAutosave, canSignalRun, classifyCreateRefusal, clearCodeWorkflowDefinitionCache, codeBuildIdOf, components_default, createConfiguredNode, createThenOpen, declaredOutputFields, declaredSignals, departingSave, editStateFor, editingLeaseLocked, emitNodeInstalled, emitRunFailed, emitRunLimitHit, emitRunStarted, emitTemplateUsed, emitUpgradeClicked, emitWorkflowCreated, emitWorkflowLimitHit, emitWorkflowPublished, ensureNodeConfigsLoaded, fieldsFromIO, fieldsFromValue, filterPaletteNodes, findQuotaRefusal, findSaveConflict, forgetSessionForReload, formatElapsedMs, formatParameterValue, getNodeDetail, getNodeMetadata, inAppLeaveTarget, isDurableFunctionNodeType, isFlowComplete, isLocked, isNodeConfigsInitialized, isNodeTypeHiddenFromPalette, isParamVisible, isQuotaExhaustedFailure, isRunControlNodeType, leaseCallQueue, leavingLosesChanges, listCustomBlocks, liveInternalOperations, loadDefinitionJson, nodeStateDurationMs, nodesOf, onNodeTypesUpdate, openRunQuotaUpgradePrompt, parseParameterValue, parseRawSignalPayload, pathToExpression, payloadFromCardValues, phaseAfterAcquire, phaseAfterTakeOver, readDisplayOptions, refetchStoreNodes, registerCustomBlock, registerWorkflowNodeTypes, releasesOnClose, rememberOwnStatusChange, rememberRevision, rememberSessionForReload, resolveNodeOperation, resolvePhaseCFlags, resolveUiSpec, runDurationMs, runSignalTargets, runTriggerFromMode, saveIndicatorOf, savedEverythingBeforeLeaving, sessionBeforeReload, shouldReleaseForIdle, signalPayloadCard, stripSubmitActions, structuredParameterType, subscribeWorkflowSaved, tickAction, touchesSavedFields, useAgentDefinitionList, useAgentDefinitions, useCodeWorkflowInterface, useConnection, useConnections, useConnectionsByProvider, useContinuousOptimisationEnabled, useCreateConnection, useDurableFunctionNodesEnabled, useDurableParityEnabled, useEditLeaseLocked, useEditLeaseStore, useFlowValidator, useFluidGridsAnalytics, useFluidGridsContext, useFluidGridsFlag, useGuardedNavigate, useInitiateOAuth, useInsertNode, useManualSave, useNodeExecution, useNodeRegistryRevision, usePaletteGates, usePhaseCFlags, useProviders, useRunGuard, useSaveStatusStore, useSaveWorkflow, useSelfHostedWorkersEnabled, useWorkflowTestsEnabled, watchLeavingLosesChanges, workflowFingerprint };
|
|
@@ -186,6 +186,8 @@ function emitRunCompletedOnce(payload) {
|
|
|
186
186
|
var inFlight = null;
|
|
187
187
|
var refreshGeneration = 0;
|
|
188
188
|
var lastRefreshed = null;
|
|
189
|
+
var settledAttempts = 0;
|
|
190
|
+
var lastFailedAttempt = 0;
|
|
189
191
|
function normalizeTokens(value) {
|
|
190
192
|
if (typeof value === "string") {
|
|
191
193
|
return value.trim() ? { authToken: value } : null;
|
|
@@ -205,24 +207,23 @@ function storeInConfig(tokens) {
|
|
|
205
207
|
}
|
|
206
208
|
function refreshTokens(callback, store) {
|
|
207
209
|
if (inFlight) return inFlight;
|
|
210
|
+
const fail = (message) => {
|
|
211
|
+
settledAttempts += 1;
|
|
212
|
+
lastFailedAttempt = settledAttempts;
|
|
213
|
+
emitFluidGridsEvent("auth:failed", { message });
|
|
214
|
+
return null;
|
|
215
|
+
};
|
|
208
216
|
const run = (async () => {
|
|
209
217
|
try {
|
|
210
218
|
const tokens = normalizeTokens(await callback());
|
|
211
|
-
if (!tokens)
|
|
212
|
-
emitFluidGridsEvent("auth:failed", {
|
|
213
|
-
message: "onTokenExpired returned no token."
|
|
214
|
-
});
|
|
215
|
-
return null;
|
|
216
|
-
}
|
|
219
|
+
if (!tokens) return fail("onTokenExpired returned no token.");
|
|
217
220
|
store(tokens);
|
|
221
|
+
settledAttempts += 1;
|
|
218
222
|
refreshGeneration += 1;
|
|
219
223
|
lastRefreshed = tokens;
|
|
220
224
|
return tokens;
|
|
221
225
|
} catch (error) {
|
|
222
|
-
|
|
223
|
-
message: describeOperationError(error, "Token refresh failed.")
|
|
224
|
-
});
|
|
225
|
-
return null;
|
|
226
|
+
return fail(describeOperationError(error, "Token refresh failed."));
|
|
226
227
|
}
|
|
227
228
|
})();
|
|
228
229
|
inFlight = run;
|
|
@@ -248,16 +249,26 @@ function createFluidGridsTokenRefreshLink(options = {}) {
|
|
|
248
249
|
const store = options.onTokenRefreshed ?? storeInConfig;
|
|
249
250
|
return new Observable((observer) => {
|
|
250
251
|
const sentInGeneration = refreshGeneration;
|
|
252
|
+
const sentAfterAttempts = settledAttempts;
|
|
251
253
|
let retried = false;
|
|
252
254
|
let closed = false;
|
|
253
255
|
let current = null;
|
|
256
|
+
const pickRefresh = (callback) => {
|
|
257
|
+
if (refreshGeneration !== sentInGeneration && lastRefreshed) {
|
|
258
|
+
return Promise.resolve(lastRefreshed);
|
|
259
|
+
}
|
|
260
|
+
if (lastFailedAttempt > sentAfterAttempts) {
|
|
261
|
+
return Promise.resolve(null);
|
|
262
|
+
}
|
|
263
|
+
return refreshTokens(callback, store);
|
|
264
|
+
};
|
|
254
265
|
const retryOrFail = (fail) => {
|
|
255
266
|
const callback = options.onTokenExpired ?? config.auth?.onTokenExpired;
|
|
256
267
|
if (!callback) return false;
|
|
257
268
|
retried = true;
|
|
258
269
|
current?.unsubscribe();
|
|
259
270
|
current = null;
|
|
260
|
-
const refreshed =
|
|
271
|
+
const refreshed = pickRefresh(callback);
|
|
261
272
|
void refreshed.then((tokens) => {
|
|
262
273
|
if (closed) return;
|
|
263
274
|
if (!tokens) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { useFluidGridsAnalytics, emitWorkflowLimitHit, emitUpgradeClicked, WORKFLOWS_QUOTA_NAME } from './chunk-
|
|
1
|
+
import { useFluidGridsAnalytics, emitWorkflowLimitHit, emitUpgradeClicked, WORKFLOWS_QUOTA_NAME } from './chunk-HSTP2RX3.js';
|
|
2
2
|
import { ExportWorkflowCodeDocument, ShareWorkflowDocument, WorkflowSharingDocument } from './chunk-Z3ABLERJ.js';
|
|
3
3
|
import { useTr } from './chunk-UULVIT25.js';
|
|
4
|
-
import { getFluidGridsClient } from './chunk-
|
|
5
|
-
import { describeOperationError, throwIfResultError } from './chunk-
|
|
4
|
+
import { getFluidGridsClient } from './chunk-PDODDDHY.js';
|
|
5
|
+
import { describeOperationError, throwIfResultError } from './chunk-JKLZ6YZ3.js';
|
|
6
6
|
import { useState, useRef, useCallback, useEffect, useMemo } from 'react';
|
|
7
7
|
import { createSharePrincipalLister, ResourceShareDialog } from '@burdenoff/fe-libs/connections';
|
|
8
8
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FluidgridsEntityTagsDocument, AvailableFluidgridsTagsDocument, SearchFluidgridsTagsDocument, TagFluidgridsEntityDocument, UntagFluidgridsEntityDocument, ReplaceFluidgridsEntityTagsDocument, CreateFluidgridsTagDocument, DataTablesTagsDocument } from './chunk-Z3ABLERJ.js';
|
|
2
|
-
import { getFluidGridsClient } from './chunk-
|
|
2
|
+
import { getFluidGridsClient } from './chunk-PDODDDHY.js';
|
|
3
3
|
import { useState, useCallback, useEffect } from 'react';
|
|
4
4
|
|
|
5
5
|
var FLUIDGRIDS_ENTITY_TYPES = [
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { LOG_STREAM_DESTINATIONS, CREATE_LOG_STREAM_DESTINATION, UPDATE_LOG_STREAM_DESTINATION, DELETE_LOG_STREAM_DESTINATION, TEST_LOG_STREAM_DESTINATION, REPLAY_WORKFLOW_RUN, RETRY_WORKFLOW_RUNS, OBSERVABILITY_DASHBOARD_SUMMARY, OBSERVABILITY_FAILED_RUNS, OBSERVABILITY_DATA_SINKS, OBSERVABILITY_DATA_SINK_DATA } from './chunk-5ERAJC2I.js';
|
|
2
|
-
import { useFluidGridsAnalytics, emitRunStarted, openRunQuotaUpgradePrompt, useFluidGridsFlag, FLUIDGRIDS_FLAGS } from './chunk-
|
|
2
|
+
import { useFluidGridsAnalytics, emitRunStarted, openRunQuotaUpgradePrompt, useFluidGridsFlag, FLUIDGRIDS_FLAGS } from './chunk-HSTP2RX3.js';
|
|
3
3
|
import { useTr } from './chunk-UULVIT25.js';
|
|
4
|
-
import { getFluidGridsClient } from './chunk-
|
|
5
|
-
import { throwIfResultError, describeOperationError, emitFluidGridsEvent } from './chunk-
|
|
4
|
+
import { getFluidGridsClient } from './chunk-PDODDDHY.js';
|
|
5
|
+
import { throwIfResultError, describeOperationError, emitFluidGridsEvent } from './chunk-JKLZ6YZ3.js';
|
|
6
6
|
import { useCallback, useState, useMemo, useEffect } from 'react';
|
|
7
7
|
import { Icon } from '@iconify/react';
|
|
8
8
|
import { toast } from 'sonner';
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { isGuidedTourIntent, pickGuidedTour, withoutGuidedTourIntent, isCreateIntent, CreateWorkflowRefusalDialog, decideMissingWorkflow } from './chunk-
|
|
1
|
+
import { isGuidedTourIntent, pickGuidedTour, withoutGuidedTourIntent, isCreateIntent, CreateWorkflowRefusalDialog, decideMissingWorkflow } from './chunk-Y4UCHFGK.js';
|
|
2
2
|
import { registerLiveCanvasHandler } from './chunk-PIKYQE7P.js';
|
|
3
|
-
import { useWorkflowReloadStore, releaseLeaseKeptForReload, useInstalledNodes, buildNodeCheck, FlowBuilderPage, buildRequiredNodeTypes } from './chunk-
|
|
4
|
-
import { canvasFromDefinition } from './chunk-
|
|
5
|
-
import { useLazyWorkflowDefinition, useCreateWorkflow } from './chunk-
|
|
6
|
-
import { refetchStoreNodes, BILLING_PLANS_PATH, codeBuildIdOf, rememberRevision, blankWorkflowCreateInput, classifyCreateRefusal, useSaveStatusStore, workflowFingerprint, registerWorkflowNodeTypes } from './chunk-
|
|
7
|
-
import { useFlowStore, mergeStickyNotes } from './chunk-
|
|
3
|
+
import { useWorkflowReloadStore, releaseLeaseKeptForReload, useInstalledNodes, buildNodeCheck, FlowBuilderPage, buildRequiredNodeTypes } from './chunk-OTOQFZFO.js';
|
|
4
|
+
import { canvasFromDefinition } from './chunk-6VIG44VF.js';
|
|
5
|
+
import { useLazyWorkflowDefinition, useCreateWorkflow } from './chunk-EIMTOK6E.js';
|
|
6
|
+
import { refetchStoreNodes, BILLING_PLANS_PATH, codeBuildIdOf, rememberRevision, blankWorkflowCreateInput, classifyCreateRefusal, useSaveStatusStore, workflowFingerprint, registerWorkflowNodeTypes } from './chunk-HSTP2RX3.js';
|
|
7
|
+
import { useFlowStore, mergeStickyNotes } from './chunk-TGWDFLEX.js';
|
|
8
8
|
import { WorkflowDefinitionDocument } from './chunk-Z3ABLERJ.js';
|
|
9
9
|
import { useTr } from './chunk-UULVIT25.js';
|
|
10
|
-
import { getFluidGridsClient } from './chunk-
|
|
11
|
-
import { throwIfResultError } from './chunk-
|
|
10
|
+
import { getFluidGridsClient } from './chunk-PDODDDHY.js';
|
|
11
|
+
import { throwIfResultError } from './chunk-JKLZ6YZ3.js';
|
|
12
12
|
import { getFluidGridsConfig } from './chunk-UEG2WC3G.js';
|
|
13
13
|
import { useLocation, useNavigate, useParams } from 'react-router';
|
|
14
14
|
import { toast } from 'sonner';
|
|
@@ -794,7 +794,7 @@ function WorkflowItem({
|
|
|
794
794
|
setInstalling(true);
|
|
795
795
|
setInstallErrors([]);
|
|
796
796
|
try {
|
|
797
|
-
const { getGlobalStoreClient } = await import('./global-client-
|
|
797
|
+
const { getGlobalStoreClient } = await import('./global-client-PJ5LANJA.js');
|
|
798
798
|
const { InstallWorkflowNodeDocument } = await import('./global-operations-BZDHTSYP.js');
|
|
799
799
|
const { getFluidGridsConfig: getFluidGridsConfig2 } = await import('./config-66FUPSG5.js');
|
|
800
800
|
const storeClient = getGlobalStoreClient();
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { CreateWorkflowRefusalDialog, firstWorkflowProgress, GUIDED_TOUR_STATE, builderPathFor } from './chunk-
|
|
2
|
-
import { useExecutions } from './chunk-
|
|
3
|
-
import { useExportWorkflowAs, WorkflowShareDialog, downloadWorkflowExport, importAcceptAttribute, canEditWorkflow, canShareWorkflow, QuotaExhaustedDialog, importFileKind, parseWorkflowImport, CODE_EXPORT_FORMATS, ImportSourceError, assertImportByteSize, MAX_IMPORT_ARCHIVE_BYTES, readProjectArchive, checkTypeScriptImport, MAX_IMPORT_SOURCE_BYTES, typeScriptModuleFile, typeScriptImportSource, workflowNameFromFile, primaryImportModule } from './chunk-
|
|
1
|
+
import { CreateWorkflowRefusalDialog, firstWorkflowProgress, GUIDED_TOUR_STATE, builderPathFor } from './chunk-Y4UCHFGK.js';
|
|
2
|
+
import { useExecutions } from './chunk-WC526MLS.js';
|
|
3
|
+
import { useExportWorkflowAs, WorkflowShareDialog, downloadWorkflowExport, importAcceptAttribute, canEditWorkflow, canShareWorkflow, QuotaExhaustedDialog, importFileKind, parseWorkflowImport, CODE_EXPORT_FORMATS, ImportSourceError, assertImportByteSize, MAX_IMPORT_ARCHIVE_BYTES, readProjectArchive, checkTypeScriptImport, MAX_IMPORT_SOURCE_BYTES, typeScriptModuleFile, typeScriptImportSource, workflowNameFromFile, primaryImportModule } from './chunk-JRLBPR5U.js';
|
|
4
4
|
import { workflowsListControls } from './chunk-FNZZ5JJL.js';
|
|
5
|
-
import { useCreateWorkflow, useWorkflowDefinitions, useLazyWorkflowDefinition, useImportWorkflow, usePreviewN8nImport, useDuplicateWorkflow, useDeleteWorkflow } from './chunk-
|
|
5
|
+
import { useCreateWorkflow, useWorkflowDefinitions, useLazyWorkflowDefinition, useImportWorkflow, usePreviewN8nImport, useDuplicateWorkflow, useDeleteWorkflow } from './chunk-EIMTOK6E.js';
|
|
6
6
|
import { useFluidGridsPageControls } from './chunk-PJAWNFJV.js';
|
|
7
7
|
import { FluidGridsDocsLink } from './chunk-4VJ3MDOV.js';
|
|
8
|
-
import { createThenOpen, FluidGridsContext, useFluidGridsFlag, FLUIDGRIDS_FLAGS, BILLING_PLANS_PATH, isQuotaExhaustedFailure } from './chunk-
|
|
8
|
+
import { createThenOpen, FluidGridsContext, useFluidGridsFlag, FLUIDGRIDS_FLAGS, BILLING_PLANS_PATH, isQuotaExhaustedFailure } from './chunk-HSTP2RX3.js';
|
|
9
9
|
import { useFluidGridsPermission, FLUIDGRIDS_PERMISSIONS, SdkPermissionButton, SdkPermissionGate } from './chunk-5375NUIO.js';
|
|
10
|
-
import { useFlowStore } from './chunk-
|
|
10
|
+
import { useFlowStore } from './chunk-TGWDFLEX.js';
|
|
11
11
|
import { WorkflowFoldersDocument, CreateWorkflowFolderDocument, RenameWorkflowFolderDocument, MoveWorkflowFolderDocument, DeleteWorkflowFolderDocument, WorkflowProjectsDocument, CreateWorkflowProjectDocument, RenameWorkflowProjectDocument, DeleteWorkflowProjectDocument, BulkMoveWorkflowsToFolderDocument, BulkAssignWorkflowsToProjectDocument, BulkDeleteWorkflowsDocument } from './chunk-Z3ABLERJ.js';
|
|
12
12
|
import { useTr } from './chunk-UULVIT25.js';
|
|
13
|
-
import { getFluidGridsClient } from './chunk-
|
|
14
|
-
import { describeOperationError, throwIfResultError } from './chunk-
|
|
13
|
+
import { getFluidGridsClient } from './chunk-PDODDDHY.js';
|
|
14
|
+
import { describeOperationError, throwIfResultError } from './chunk-JKLZ6YZ3.js';
|
|
15
15
|
import { useState, useRef, useCallback, useContext, useMemo, useEffect } from 'react';
|
|
16
16
|
import { useNavigate } from 'react-router';
|
|
17
17
|
import { v4 } from 'uuid';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { RunFailureClustersDocument, DismissRunFailureClusterDocument, RunFailureTriageSettingsDocument, SetRunFailureTriageEnabledDocument, FgTriageFailedRunsDocument } from './chunk-Z3ABLERJ.js';
|
|
2
2
|
import { useTr } from './chunk-UULVIT25.js';
|
|
3
|
-
import { getFluidGridsClient } from './chunk-
|
|
4
|
-
import { throwIfResultError } from './chunk-
|
|
3
|
+
import { getFluidGridsClient } from './chunk-PDODDDHY.js';
|
|
4
|
+
import { throwIfResultError } from './chunk-JKLZ6YZ3.js';
|
|
5
5
|
import { useState, useCallback, useEffect } from 'react';
|
|
6
6
|
import { Icon } from '@iconify/react';
|
|
7
7
|
import { Button } from '@burdenoff/fe-libs/ui';
|
|
@@ -325,70 +325,4 @@ function FailureTriagePanel({
|
|
|
325
325
|
);
|
|
326
326
|
}
|
|
327
327
|
|
|
328
|
-
|
|
329
|
-
function percentage(value, total) {
|
|
330
|
-
if (total <= 0) return 0;
|
|
331
|
-
return Math.round(value / total * 1e3) / 10;
|
|
332
|
-
}
|
|
333
|
-
function getFailureBreakdown(runs) {
|
|
334
|
-
const counts = /* @__PURE__ */ new Map();
|
|
335
|
-
for (const run of runs) {
|
|
336
|
-
const key = run.errorType || "UNKNOWN";
|
|
337
|
-
counts.set(key, (counts.get(key) ?? 0) + 1);
|
|
338
|
-
}
|
|
339
|
-
return [...counts.entries()].map(([key, count]) => ({ key, count })).sort((a, b) => b.count - a.count || a.key.localeCompare(b.key));
|
|
340
|
-
}
|
|
341
|
-
function getTopFailingWorkflows(runs) {
|
|
342
|
-
const counts = /* @__PURE__ */ new Map();
|
|
343
|
-
for (const run of runs) {
|
|
344
|
-
const current = counts.get(run.workflowKey);
|
|
345
|
-
if (current) {
|
|
346
|
-
current.count += 1;
|
|
347
|
-
} else {
|
|
348
|
-
counts.set(run.workflowKey, {
|
|
349
|
-
workflowKey: run.workflowKey,
|
|
350
|
-
label: run.workflow?.name || run.workflowKey,
|
|
351
|
-
count: 1
|
|
352
|
-
});
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
return [...counts.values()].sort(
|
|
356
|
-
(a, b) => b.count - a.count || a.label.localeCompare(b.label)
|
|
357
|
-
);
|
|
358
|
-
}
|
|
359
|
-
function getTopFailingNodes(nodeUsageStats) {
|
|
360
|
-
return [...nodeUsageStats].filter((stat) => stat.failureCount > 0).sort(
|
|
361
|
-
(a, b) => b.failureCount - a.failureCount || a.nodeType.localeCompare(b.nodeType)
|
|
362
|
-
);
|
|
363
|
-
}
|
|
364
|
-
function formatDuration(seconds) {
|
|
365
|
-
if (seconds === null || seconds === void 0 || !Number.isFinite(seconds)) {
|
|
366
|
-
return "\u2014";
|
|
367
|
-
}
|
|
368
|
-
if (seconds < 1) return `${Math.round(seconds * 1e3)}ms`;
|
|
369
|
-
if (seconds < 60) return `${seconds.toFixed(1)}s`;
|
|
370
|
-
const minutes = Math.floor(seconds / 60);
|
|
371
|
-
const remainingSeconds = Math.round(seconds % 60);
|
|
372
|
-
return `${minutes}m ${remainingSeconds}s`;
|
|
373
|
-
}
|
|
374
|
-
function formatBytes(bytes) {
|
|
375
|
-
if (!Number.isFinite(bytes) || bytes < 0) return "\u2014";
|
|
376
|
-
if (bytes < 1024) return `${bytes} B`;
|
|
377
|
-
const units = ["KB", "MB", "GB", "TB"];
|
|
378
|
-
let value = bytes / 1024;
|
|
379
|
-
let unit = units[0];
|
|
380
|
-
for (let i = 1; i < units.length && value >= 1024; i += 1) {
|
|
381
|
-
value /= 1024;
|
|
382
|
-
unit = units[i];
|
|
383
|
-
}
|
|
384
|
-
return `${value.toFixed(value >= 10 ? 0 : 1)} ${unit}`;
|
|
385
|
-
}
|
|
386
|
-
function prettyJson(value) {
|
|
387
|
-
try {
|
|
388
|
-
return JSON.stringify(value, null, 2) ?? "null";
|
|
389
|
-
} catch {
|
|
390
|
-
return String(value);
|
|
391
|
-
}
|
|
392
|
-
}
|
|
393
|
-
|
|
394
|
-
export { BUCKET_LABELS, FailureTriagePanel, OPEN_STATUSES, dismissRunFailureCluster, fetchRunFailureClusters, formatBytes, formatDuration, getFailureBreakdown, getTopFailingNodes, getTopFailingWorkflows, percentage, prettyJson };
|
|
328
|
+
export { BUCKET_LABELS, FailureTriagePanel, OPEN_STATUSES, dismissRunFailureCluster, fetchRunFailureClusters };
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { asRecord, ConditionTreeBuilder, SwitchRulesEditor, casesFromRules, isStringOptionList, optionText, coerceNumber, paramsFromOperation, resolveLoadOptionsSpec, optionListValues, parseMappingValue, optionListText } from './chunk-
|
|
1
|
+
import { asRecord, ConditionTreeBuilder, SwitchRulesEditor, casesFromRules, isStringOptionList, optionText, coerceNumber, paramsFromOperation, resolveLoadOptionsSpec, optionListValues, parseMappingValue, optionListText } from './chunk-WBRW67HX.js';
|
|
2
2
|
import { CodeEditorField, normalizeCodeLanguage } from './chunk-KZCNJAMK.js';
|
|
3
3
|
import { Popover, PopoverTrigger, PopoverContent } from './chunk-GTEBQQ7J.js';
|
|
4
|
-
import { AgentDefinitionSelectField } from './chunk-
|
|
4
|
+
import { AgentDefinitionSelectField } from './chunk-XNARCHMT.js';
|
|
5
5
|
import { isAgentNodeType } from './chunk-WZ3EJVS6.js';
|
|
6
6
|
import { readAssertRulesSetting, rowsFromRules, normaliseAssertRules, ruleFromRow, describeAssertRuleProblem, operatorSpec, ASSERT_OPERATORS, emptyAssertRuleRow } from './chunk-JDLQ6QIB.js';
|
|
7
|
-
import { isParamVisible, ConnectionSelector, structuredParameterType, useRunGuard, FluidGridsContext, ExpressionEditor, formatParameterValue, parseParameterValue, useFluidGridsAnalytics, openRunQuotaUpgradePrompt } from './chunk-
|
|
7
|
+
import { isParamVisible, ConnectionSelector, structuredParameterType, useRunGuard, FluidGridsContext, ExpressionEditor, formatParameterValue, parseParameterValue, useFluidGridsAnalytics, openRunQuotaUpgradePrompt } from './chunk-HSTP2RX3.js';
|
|
8
8
|
import { useBuilderReadOnly } from './chunk-SDZEAIIE.js';
|
|
9
|
-
import { useFlowStore } from './chunk-
|
|
9
|
+
import { useFlowStore } from './chunk-TGWDFLEX.js';
|
|
10
10
|
import { useRunFromNodeEligibilityQuery, PreviewScheduleDocument, WebhookTestListenerDocument, StopWebhookTestListenerDocument, ListenForWebhookTestEventDocument } from './chunk-Z3ABLERJ.js';
|
|
11
11
|
import { useTr } from './chunk-UULVIT25.js';
|
|
12
|
-
import { getFluidGridsClientSafe, getFluidGridsClient } from './chunk-
|
|
13
|
-
import { throwIfResultError, describeOperationError } from './chunk-
|
|
12
|
+
import { getFluidGridsClientSafe, getFluidGridsClient } from './chunk-PDODDDHY.js';
|
|
13
|
+
import { throwIfResultError, describeOperationError } from './chunk-JKLZ6YZ3.js';
|
|
14
14
|
import { useId, useState, useMemo, useRef, useEffect, useContext, useCallback } from 'react';
|
|
15
15
|
import { Icon } from '@iconify/react';
|
|
16
16
|
import { cn } from '@burdenoff/fe-libs/utils';
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
import { computeAttachPosition, firstInputHandleId } from './chunk-
|
|
1
|
+
import { computeAttachPosition, firstInputHandleId } from './chunk-XWINH6CR.js';
|
|
2
2
|
import { deepClone, applyTemplateInputs } from './chunk-GEMNVFPK.js';
|
|
3
3
|
import { templatePreview } from './chunk-B6CCE2RW.js';
|
|
4
4
|
import { Input } from './chunk-IEVSFCFS.js';
|
|
5
5
|
import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter as DialogFooter$1 } from './chunk-YXMFRQYV.js';
|
|
6
6
|
import { Badge as Badge$1, Button } from './chunk-BQXVT32O.js';
|
|
7
|
-
import { LogsPanel } from './chunk-
|
|
8
|
-
import { QuotaExhaustedDialog, WorkflowShareDialog, useWorkflowCodeExport, orderedExportFiles, fileBaseName, downloadWorkflowCodeExport, isLosslessReport, sortFidelityItems, isLossyFidelityItem, lineOfNode } from './chunk-
|
|
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-
|
|
10
|
-
import { buildNodeDisplayMap } from './chunk-
|
|
7
|
+
import { LogsPanel } from './chunk-43GSC5Y6.js';
|
|
8
|
+
import { QuotaExhaustedDialog, WorkflowShareDialog, useWorkflowCodeExport, orderedExportFiles, fileBaseName, downloadWorkflowCodeExport, isLosslessReport, sortFidelityItems, isLossyFidelityItem, lineOfNode } from './chunk-JRLBPR5U.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-PASKZCII.js';
|
|
10
|
+
import { buildNodeDisplayMap } from './chunk-KHS2DZHH.js';
|
|
11
11
|
import { AiCreditBalanceSlot } from './chunk-Y53CVZVV.js';
|
|
12
|
-
import { countLifecycle, VersionLifecycleBar, VersionDiffDialog } from './chunk-
|
|
13
|
-
import { useRestoreWorkflowVersion, useWorkflowVersions, useActivateWorkflow, useDeleteWorkflow, useDeactivateWorkflow } from './chunk-
|
|
12
|
+
import { countLifecycle, VersionLifecycleBar, VersionDiffDialog } from './chunk-5Z4F24QT.js';
|
|
13
|
+
import { useRestoreWorkflowVersion, useWorkflowVersions, useActivateWorkflow, useDeleteWorkflow, useDeactivateWorkflow } from './chunk-EIMTOK6E.js';
|
|
14
14
|
import { useRequestedProposal } from './chunk-GLYINMOR.js';
|
|
15
15
|
import { FluidGridsDocsLink } from './chunk-4VJ3MDOV.js';
|
|
16
|
-
import { leaseCallQueue, RUNS_QUOTA_NAME, BILLING_PLANS_PATH, emitUpgradeClicked, FluidGridsContext, emitWorkflowCreated, emitTemplateUsed, ensureNodeConfigsLoaded, NODE_CONFIGS, useEditLeaseStore, useEditLeaseLocked, registerWorkflowNodeTypes, emitNodeInstalled, useNodeExecution, usePaletteGates, onNodeTypesUpdate, NODE_TYPES, getNodeMetadata, refetchStoreNodes, AVAILABLE_NODES, EDIT_SESSION_ID, useInsertNode, useSaveStatusStore, useManualSave, useDurableFunctionNodesEnabled, bannerOf, editStateFor, useSaveWorkflow, filterPaletteNodes, useFluidGridsAnalytics, useGuardedNavigate, sessionBeforeReload, forgetSessionForReload, releasesOnClose, touchesSavedFields, isLocked, watchLeavingLosesChanges, workflowFingerprint, savedEverythingBeforeLeaving, buildStickyNode, NODES_METADATA, shouldReleaseForIdle, tickAction, rememberSessionForReload, leavingLosesChanges, buildOperationSeed, useDurableParityEnabled, useConnections, ConnectionFormDialog, useWorkflowTestsEnabled, useFluidGridsFlag, FLUIDGRIDS_FLAGS, useFlowValidator, saveIndicatorOf, departingSave, inAppLeaveTarget, isNodeConfigsInitialized, phaseAfterAcquire, rememberOwnStatusChange, useRunGuard, getNodeDetail, NODES, NodePropertyPanel, loadDefinitionJson, canAutosave, isNodeTypeHiddenFromPalette, ConnectionSelector, AUTOSAVE_RETRY_DELAYS_MS, AUTOSAVE_DEBOUNCE_MS, editingLeaseLocked, autosaveAllowedFor, isFlowComplete, rememberRevision, phaseAfterTakeOver } from './chunk-
|
|
16
|
+
import { leaseCallQueue, RUNS_QUOTA_NAME, BILLING_PLANS_PATH, emitUpgradeClicked, FluidGridsContext, emitWorkflowCreated, emitTemplateUsed, ensureNodeConfigsLoaded, NODE_CONFIGS, useEditLeaseStore, useEditLeaseLocked, registerWorkflowNodeTypes, emitNodeInstalled, useNodeExecution, usePaletteGates, onNodeTypesUpdate, NODE_TYPES, getNodeMetadata, refetchStoreNodes, AVAILABLE_NODES, EDIT_SESSION_ID, useInsertNode, useSaveStatusStore, useManualSave, useDurableFunctionNodesEnabled, bannerOf, editStateFor, useSaveWorkflow, filterPaletteNodes, useFluidGridsAnalytics, useGuardedNavigate, sessionBeforeReload, forgetSessionForReload, releasesOnClose, touchesSavedFields, isLocked, watchLeavingLosesChanges, workflowFingerprint, savedEverythingBeforeLeaving, buildStickyNode, NODES_METADATA, shouldReleaseForIdle, tickAction, rememberSessionForReload, leavingLosesChanges, buildOperationSeed, useDurableParityEnabled, useConnections, ConnectionFormDialog, useWorkflowTestsEnabled, useFluidGridsFlag, FLUIDGRIDS_FLAGS, useFlowValidator, saveIndicatorOf, departingSave, inAppLeaveTarget, isNodeConfigsInitialized, phaseAfterAcquire, rememberOwnStatusChange, useRunGuard, getNodeDetail, NODES, NodePropertyPanel, loadDefinitionJson, canAutosave, isNodeTypeHiddenFromPalette, ConnectionSelector, AUTOSAVE_RETRY_DELAYS_MS, AUTOSAVE_DEBOUNCE_MS, editingLeaseLocked, autosaveAllowedFor, isFlowComplete, rememberRevision, phaseAfterTakeOver } from './chunk-HSTP2RX3.js';
|
|
17
17
|
import { SdkPermissionButton, FLUIDGRIDS_PERMISSIONS, useFluidGridsPermission, SdkPermissionGate } from './chunk-5375NUIO.js';
|
|
18
18
|
import { cn } from './chunk-JL7CASN5.js';
|
|
19
19
|
import { BuilderReadOnlyProvider, useBuilderReadOnly } from './chunk-SDZEAIIE.js';
|
|
20
|
-
import { useFlowStore, useIsValidConnection, NODE_TYPE_DRAG_DATA_FORMAT, NODE_OPERATION_DRAG_DATA_FORMAT, CODE_WORKFLOW_NODE_TYPE, STICKY_NOTE_TYPE, NodeTypeIcon, isImageIcon, synchronizeOperationUpdate, isTriggerOperation, canRenderOperationPanel, resolveOperationName } from './chunk-
|
|
21
|
-
import { getGlobalStoreClient } from './chunk-
|
|
20
|
+
import { useFlowStore, useIsValidConnection, NODE_TYPE_DRAG_DATA_FORMAT, NODE_OPERATION_DRAG_DATA_FORMAT, CODE_WORKFLOW_NODE_TYPE, STICKY_NOTE_TYPE, NodeTypeIcon, isImageIcon, synchronizeOperationUpdate, isTriggerOperation, canRenderOperationPanel, resolveOperationName } from './chunk-TGWDFLEX.js';
|
|
21
|
+
import { getGlobalStoreClient } from './chunk-TYI2XOSI.js';
|
|
22
22
|
import { GetMyNodeInstallationsDocument, BrowseWorkflowTemplatesDocument, InstallWorkflowNodeDocument, SubmitWorkflowTemplateDocument, MyWorkflowTemplateSubmissionsDocument, WithdrawWorkflowTemplateSubmissionDocument, InstallPurchasedNodeDocument, BrowseWorkflowNodesDocument, UninstallWorkflowNodeDocument, CreateStoreOrderDocument, GetNodeInstallableVersionsDocument, OrganizationPrivateNodesDocument, InstallOrganizationPrivateNodeDocument, UninstallOrganizationPrivateNodeDocument } from './chunk-G77IGC3Y.js';
|
|
23
23
|
import { WorkspaceRunsQuotaDocument, WorkflowGenerationTemplatesDocument, ReleaseWorkflowEditLeaseDocument, NodeSchemaIntrospectionDocument, AcquireWorkflowEditLeaseDocument, WorkflowEnvironmentsDocument, WorkflowPromotionRequestsDocument, DeployWorkflowVersionToDevDocument, RequestWorkflowPromotionDocument, ApproveWorkflowPromotionDocument, RejectWorkflowPromotionDocument, CancelWorkflowPromotionDocument, UpdateWorkflowEnvironmentPolicyDocument, WorkflowGitRepositoryDocument, WorkflowGitPushesDocument, WorkflowGitCommitsDocument, LinkWorkflowGitRepositoryDocument, UnlinkWorkflowGitRepositoryDocument, PushWorkflowToGitDocument, WorkflowGitDiffDocument, RestoreWorkflowFromGitDocument, WorkflowAuthoringDocument, WorkflowEditLeaseDocument, WorkflowVersioningDocument, WorkflowVersionDrainageDocument, ActivateWorkflowVersionCheckedDocument, WorkflowDefinitionDocument, NodeUsageStatusDocument, RemoveNodeFromWorkflowsDocument, SetWorkflowRolloutDocument, DeleteWorkflowRolloutDocument, TakeOverWorkflowEditLeaseDocument } from './chunk-Z3ABLERJ.js';
|
|
24
24
|
import { useTr } from './chunk-UULVIT25.js';
|
|
25
|
-
import { waitForFluidGridsClient, getFluidGridsClient } from './chunk-
|
|
26
|
-
import { throwIfResultError, describeOperationError, emitFluidGridsEvent } from './chunk-
|
|
25
|
+
import { waitForFluidGridsClient, getFluidGridsClient } from './chunk-PDODDDHY.js';
|
|
26
|
+
import { throwIfResultError, describeOperationError, emitFluidGridsEvent } from './chunk-JKLZ6YZ3.js';
|
|
27
27
|
import { getFluidGridsConfig } from './chunk-UEG2WC3G.js';
|
|
28
28
|
import * as React3 from 'react';
|
|
29
29
|
import React3__default, { forwardRef, lazy, memo, createContext, useState, useRef, useCallback, useEffect, useContext, useMemo, useLayoutEffect, Suspense, useDeferredValue } from 'react';
|
|
@@ -35,10 +35,10 @@ import { useQuery, useMutation } from '@apollo/client/react';
|
|
|
35
35
|
import { gql } from '@apollo/client/core';
|
|
36
36
|
import { Sparkles, Star, Download, Eye, Maximize2, Undo2, Redo2, LayoutGrid, Keyboard, Plus, Trash2, GitBranch, Loader2, AlertCircle, Search, RefreshCw, History, GitCompareArrows, Play, RotateCcw, Layers, Upload, Rocket, ArrowRight, Check, X, Link2, Unlink, GitCompare, ExternalLink, GitCommitHorizontal, Share2, CircleHelp, CheckCircle2, Package, SlidersHorizontal, FlaskConical, Pencil, Info, Copy, BadgeCheck, DollarSign, Type, Code, Hash, List, Braces, Workflow, PlusCircle, ChevronDown, ChevronRight, AlertTriangle } from 'lucide-react';
|
|
37
37
|
import { Icon } from '@iconify/react';
|
|
38
|
+
import { Handle, Position, getBezierPath, MarkerType, useOnSelectionChange, ReactFlowProvider, useReactFlow, ReactFlow, Background, useStore, MiniMap, EdgeLabelRenderer, useNodes, useNodesState, useEdgesState, addEdge, Controls, Panel } from '@xyflow/react';
|
|
38
39
|
import { create } from 'zustand';
|
|
39
40
|
import { toast } from 'sonner';
|
|
40
41
|
import { useShallow, shallow } from 'zustand/shallow';
|
|
41
|
-
import { Handle, Position, getBezierPath, MarkerType, ReactFlowProvider, useReactFlow, ReactFlow, Background, useOnSelectionChange, useStore, MiniMap, EdgeLabelRenderer, useNodes, useNodesState, useEdgesState, addEdge, Controls, Panel } from '@xyflow/react';
|
|
42
42
|
import { produce } from 'immer';
|
|
43
43
|
import { Card as Card$1, Badge, CardContent as CardContent$1, Button as Button$1, Popover, PopoverTrigger, PopoverContent, AlertDialog, AlertDialogContent, AlertDialogHeader, AlertDialogTitle, AlertDialogDescription, AlertDialogFooter, AlertDialogCancel, Toaster, Tabs, TabsList, TabsTrigger, TabsContent, CardHeader as CardHeader$1, CardTitle as CardTitle$1, CardDescription as CardDescription$1, ScrollArea, Sheet, SheetTrigger, SheetContent, SheetHeader, SheetTitle, SheetDescription, Label, Textarea, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, AlertDialogAction, TooltipProvider, Switch, Input as Input$1, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, Tooltip, TooltipTrigger, TooltipContent, Dialog as Dialog$1, DialogContent as DialogContent$1, DialogHeader as DialogHeader$1, DialogTitle as DialogTitle$1, DialogDescription as DialogDescription$1, DialogFooter, DropdownMenuLabel, DropdownMenuSeparator } from '@burdenoff/fe-libs/ui';
|
|
44
44
|
import { isEmpty } from 'radash';
|
|
@@ -1792,6 +1792,23 @@ function buildNodeCheck(requiredNodeTypes, installedAppIds) {
|
|
|
1792
1792
|
canImport: missingPaid.length === 0
|
|
1793
1793
|
};
|
|
1794
1794
|
}
|
|
1795
|
+
function nodeSelectionPayload(nodes) {
|
|
1796
|
+
if (nodes.length === 0) return { nodeId: null };
|
|
1797
|
+
if (nodes.length > 1) return void 0;
|
|
1798
|
+
const [node] = nodes;
|
|
1799
|
+
if (!node) return void 0;
|
|
1800
|
+
return { nodeId: node.id, nodeType: node.type };
|
|
1801
|
+
}
|
|
1802
|
+
function useNodeSelectedEvent() {
|
|
1803
|
+
const lastReported = useRef(null);
|
|
1804
|
+
const onChange = useCallback(({ nodes }) => {
|
|
1805
|
+
const payload = nodeSelectionPayload(nodes);
|
|
1806
|
+
if (!payload || payload.nodeId === lastReported.current) return;
|
|
1807
|
+
lastReported.current = payload.nodeId;
|
|
1808
|
+
emitFluidGridsEvent("node:selected", payload);
|
|
1809
|
+
}, []);
|
|
1810
|
+
useOnSelectionChange({ onChange });
|
|
1811
|
+
}
|
|
1795
1812
|
var FLUIDGRIDS_BRAND = "FluidGrids";
|
|
1796
1813
|
var FLUIDGRIDS_SITE_URL = "https://www.fluidgrids.ai";
|
|
1797
1814
|
var ENGLISH_LABEL = `Powered by ${FLUIDGRIDS_BRAND}`;
|
|
@@ -5531,7 +5548,7 @@ function DesktopSidebarFragment({
|
|
|
5531
5548
|
(n) => !!n.storeProductId
|
|
5532
5549
|
);
|
|
5533
5550
|
if (nodesToInstall.length > 0) {
|
|
5534
|
-
const { getGlobalStoreClient: getStore } = await import('./global-client-
|
|
5551
|
+
const { getGlobalStoreClient: getStore } = await import('./global-client-PJ5LANJA.js');
|
|
5535
5552
|
const { InstallWorkflowNodeDocument: InstallWorkflowNodeDocument2 } = await import('./global-operations-BZDHTSYP.js');
|
|
5536
5553
|
const { getFluidGridsConfig: getFluidGridsConfig3 } = await import('./config-66FUPSG5.js');
|
|
5537
5554
|
const storeClient = getStore();
|
|
@@ -5593,7 +5610,7 @@ function DesktopSidebarFragment({
|
|
|
5593
5610
|
overrides.templateInputs
|
|
5594
5611
|
);
|
|
5595
5612
|
}
|
|
5596
|
-
const { getFluidGridsClient: getFluidGridsClient2 } = await import('./client-
|
|
5613
|
+
const { getFluidGridsClient: getFluidGridsClient2 } = await import('./client-62VHXHKN.js');
|
|
5597
5614
|
const { getFluidGridsConfig: getFluidGridsConfig2 } = await import('./config-66FUPSG5.js');
|
|
5598
5615
|
const { gql: gql5 } = await import('@apollo/client/core');
|
|
5599
5616
|
const IMPORT_MUTATION = gql5`
|
|
@@ -5651,7 +5668,7 @@ function DesktopSidebarFragment({
|
|
|
5651
5668
|
category: content.defaultCategory || template.category
|
|
5652
5669
|
});
|
|
5653
5670
|
try {
|
|
5654
|
-
const { getGlobalStoreClient: getStoreClient } = await import('./global-client-
|
|
5671
|
+
const { getGlobalStoreClient: getStoreClient } = await import('./global-client-PJ5LANJA.js');
|
|
5655
5672
|
const { InstallWorkflowNodeDocument: InstallWorkflowNodeDocument2 } = await import('./global-operations-BZDHTSYP.js');
|
|
5656
5673
|
const storeClient = getStoreClient();
|
|
5657
5674
|
if (storeClient) {
|
|
@@ -5751,7 +5768,7 @@ function DesktopSidebarFragment({
|
|
|
5751
5768
|
),
|
|
5752
5769
|
{ id: "template-load" }
|
|
5753
5770
|
);
|
|
5754
|
-
const { getGlobalStoreClient: getGlobalStoreClient2 } = await import('./global-client-
|
|
5771
|
+
const { getGlobalStoreClient: getGlobalStoreClient2 } = await import('./global-client-PJ5LANJA.js');
|
|
5755
5772
|
const { gql: gql5 } = await import('@apollo/client/core');
|
|
5756
5773
|
const GET_TEMPLATE_DETAIL = gql5`
|
|
5757
5774
|
query GetWorkflowTemplateDetail($id: ID!) {
|
|
@@ -6007,23 +6024,6 @@ function useDeleteKeyCode() {
|
|
|
6007
6024
|
});
|
|
6008
6025
|
return deleteKeyCode;
|
|
6009
6026
|
}
|
|
6010
|
-
function nodeSelectionPayload(nodes) {
|
|
6011
|
-
if (nodes.length === 0) return { nodeId: null };
|
|
6012
|
-
if (nodes.length > 1) return void 0;
|
|
6013
|
-
const [node] = nodes;
|
|
6014
|
-
if (!node) return void 0;
|
|
6015
|
-
return { nodeId: node.id, nodeType: node.type };
|
|
6016
|
-
}
|
|
6017
|
-
function useNodeSelectedEvent() {
|
|
6018
|
-
const lastReported = useRef(null);
|
|
6019
|
-
const onChange = useCallback(({ nodes }) => {
|
|
6020
|
-
const payload = nodeSelectionPayload(nodes);
|
|
6021
|
-
if (!payload || payload.nodeId === lastReported.current) return;
|
|
6022
|
-
lastReported.current = payload.nodeId;
|
|
6023
|
-
emitFluidGridsEvent("node:selected", payload);
|
|
6024
|
-
}, []);
|
|
6025
|
-
useOnSelectionChange({ onChange });
|
|
6026
|
-
}
|
|
6027
6027
|
function useOnNodesDelete(nodes) {
|
|
6028
6028
|
const [nodePropertiesSelectedNode, nodePropertiesSetSelectedNode] = useFlowStore(
|
|
6029
6029
|
useShallow((state) => [
|
|
@@ -21241,12 +21241,12 @@ function EditLeaseBanner() {
|
|
|
21241
21241
|
);
|
|
21242
21242
|
}
|
|
21243
21243
|
var LazyNodeDetailView = lazy(
|
|
21244
|
-
() => import('./node-detail-view-
|
|
21244
|
+
() => import('./node-detail-view-P5NV5CMO.js').then((m) => ({
|
|
21245
21245
|
default: m.NodeDetailView
|
|
21246
21246
|
}))
|
|
21247
21247
|
);
|
|
21248
21248
|
var LazyQuickConfigPanel = lazy(
|
|
21249
|
-
() => import('./quick-config-panel-
|
|
21249
|
+
() => import('./quick-config-panel-ZNSBVF4G.js').then((m) => ({
|
|
21250
21250
|
default: m.QuickConfigPanel
|
|
21251
21251
|
}))
|
|
21252
21252
|
);
|
|
@@ -21308,7 +21308,7 @@ var FlowBuilder = ({ readOnly = false }) => {
|
|
|
21308
21308
|
);
|
|
21309
21309
|
useEffect(() => {
|
|
21310
21310
|
let cancelled = false;
|
|
21311
|
-
void import('./agentTools-
|
|
21311
|
+
void import('./agentTools-UH4LU6LA.js').then(({ createBuilderAgentTools }) => {
|
|
21312
21312
|
if (cancelled) return;
|
|
21313
21313
|
setAgentTools(
|
|
21314
21314
|
createBuilderAgentTools({
|
|
@@ -21648,4 +21648,4 @@ var FlowBuilderPage = ({
|
|
|
21648
21648
|
] });
|
|
21649
21649
|
};
|
|
21650
21650
|
|
|
21651
|
-
export { AI_DRAFT_MAX_PROMPT_LENGTH, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, FlowBuilderPage, FluidGridsMark, RunsUsageMeter, RunsUsageMeterView, TEMPLATE_STORE_CATEGORIES, TemplateCard, buildNodeCheck, buildRequiredNodeTypes, draftToCanvas, enrichDraftNodes, readRunsQuota, releaseLeaseKeptForReload, runsQuotaLevel, summarizeRunsQuota, useAiWorkflowTemplates, useImportWorkflowTemplate, useInstalledNodes, usePublishToStore, useRunsQuota, useTemplateSubmissions, useWorkflowReloadStore, useWorkflowTemplates };
|
|
21651
|
+
export { AI_DRAFT_MAX_PROMPT_LENGTH, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, FlowBuilderPage, FluidGridsMark, RunsUsageMeter, RunsUsageMeterView, TEMPLATE_STORE_CATEGORIES, TemplateCard, buildNodeCheck, buildRequiredNodeTypes, draftToCanvas, enrichDraftNodes, readRunsQuota, releaseLeaseKeptForReload, runsQuotaLevel, summarizeRunsQuota, useAiWorkflowTemplates, useImportWorkflowTemplate, useInstalledNodes, useNodeSelectedEvent, usePublishToStore, useRunsQuota, useTemplateSubmissions, useWorkflowReloadStore, useWorkflowTemplates };
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { operatorSpec, normaliseAssertRules, describeAssertRuleProblem } from './chunk-JDLQ6QIB.js';
|
|
2
|
-
import { useEntityTags, useTagEntity, useUntagEntity } from './chunk-
|
|
2
|
+
import { useEntityTags, useTagEntity, useUntagEntity } from './chunk-KHS2DZHH.js';
|
|
3
3
|
import { notifyFluidGridsAiCreditsUpdated } from './chunk-Y53CVZVV.js';
|
|
4
4
|
import { ErrorType } from './chunk-H4ERTSMX.js';
|
|
5
5
|
import { WorkflowProposalDocument, ProposeRunFixDocument, ProposeWorkflowChangeDocument, ApplyWorkflowProposalDocument, RejectWorkflowProposalDocument, CancelWorkflowProposalDocument, WorkflowTestCasesDocument, WorkflowTestRunsDocument, WorkflowTestRunDocument, CreateWorkflowTestCaseDocument, UpdateWorkflowTestCaseDocument, DeleteWorkflowTestCaseDocument, RunWorkflowTestsDocument, CreateWorkflowTestCaseFromRunDocument } from './chunk-Z3ABLERJ.js';
|
|
6
6
|
import { useTr } from './chunk-UULVIT25.js';
|
|
7
|
-
import { getFluidGridsClient } from './chunk-
|
|
8
|
-
import { throwIfResultError, isForbiddenError } from './chunk-
|
|
7
|
+
import { getFluidGridsClient } from './chunk-PDODDDHY.js';
|
|
8
|
+
import { throwIfResultError, isForbiddenError } from './chunk-JKLZ6YZ3.js';
|
|
9
9
|
import { getFluidGridsConfig } from './chunk-UEG2WC3G.js';
|
|
10
10
|
import { useState, useRef, useEffect, useCallback } from 'react';
|
|
11
11
|
import { TagBadge, TagsWidget } from '@burdenoff/fe-libs/tag';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createLiveTokenReader, createFluidGridsTokenRefreshLink } from './chunk-
|
|
1
|
+
import { createLiveTokenReader, createFluidGridsTokenRefreshLink } from './chunk-JKLZ6YZ3.js';
|
|
2
2
|
import { createHttpLink, split, ApolloClient, InMemoryCache } from '@apollo/client/core';
|
|
3
3
|
import { setContext } from '@apollo/client/link/context';
|
|
4
4
|
import { getMainDefinition } from '@apollo/client/utilities';
|
|
@@ -944,6 +944,7 @@ function nodeAccent(key) {
|
|
|
944
944
|
for (const [re, color] of PROVIDER_ACCENTS) if (re.test(k)) return color;
|
|
945
945
|
return chartSeriesColor(chartSeriesIndex(k));
|
|
946
946
|
}
|
|
947
|
+
var NODE_CARD_RADIUS = "var(--radius-card, 12px)";
|
|
947
948
|
function tint(color, pct = 14) {
|
|
948
949
|
return `color-mix(in srgb, ${color} ${pct}%, transparent)`;
|
|
949
950
|
}
|
|
@@ -1154,13 +1155,14 @@ var NodeCard = React.forwardRef(
|
|
|
1154
1155
|
ref,
|
|
1155
1156
|
"data-selected": selected,
|
|
1156
1157
|
className: cn(
|
|
1157
|
-
"relative w-72
|
|
1158
|
+
"relative w-72 border border-border bg-card shadow-sm will-change-transform",
|
|
1158
1159
|
statusRing,
|
|
1159
1160
|
executionStatus === "success" && "animate-success-glow",
|
|
1160
1161
|
disabled && "opacity-50 grayscale-[0.6]",
|
|
1161
1162
|
className
|
|
1162
1163
|
),
|
|
1163
1164
|
style: {
|
|
1165
|
+
borderRadius: NODE_CARD_RADIUS,
|
|
1164
1166
|
borderTop: `3px solid ${accent}`,
|
|
1165
1167
|
transition: "transform 0.15s ease, box-shadow 0.15s ease",
|
|
1166
1168
|
transform: hovered ? "translateY(-2px)" : "none",
|
|
@@ -1173,7 +1175,9 @@ var NodeCard = React.forwardRef(
|
|
|
1173
1175
|
{
|
|
1174
1176
|
className: "pointer-events-none absolute -inset-0.5 transition-opacity duration-150",
|
|
1175
1177
|
style: {
|
|
1176
|
-
|
|
1178
|
+
// The ring sits 2px outside the card (-inset-0.5), so its corners
|
|
1179
|
+
// are the card radius plus 2px to stay concentric.
|
|
1180
|
+
borderRadius: `calc(${NODE_CARD_RADIUS} + 2px)`,
|
|
1177
1181
|
opacity: selected || hovered ? 1 : 0,
|
|
1178
1182
|
boxShadow: selected ? `0 0 0 2px ${accent}, 0 0 0 5px ${tint(accent, 18)}` : `0 0 0 2px ${accent}`
|
|
1179
1183
|
}
|
|
@@ -1311,7 +1315,11 @@ var NodeCardBody = React.forwardRef(
|
|
|
1311
1315
|
"div",
|
|
1312
1316
|
{
|
|
1313
1317
|
ref,
|
|
1314
|
-
className: "
|
|
1318
|
+
className: "border-t border-border/60 px-3 pb-3 pt-2.5",
|
|
1319
|
+
style: {
|
|
1320
|
+
borderBottomLeftRadius: NODE_CARD_RADIUS,
|
|
1321
|
+
borderBottomRightRadius: NODE_CARD_RADIUS
|
|
1322
|
+
},
|
|
1315
1323
|
children: [
|
|
1316
1324
|
/* @__PURE__ */ jsx("div", { className: "text-[10px] font-semibold uppercase tracking-wider text-muted-foreground", children: tr("fluidgrids.builder.nodeCard.operationLabel", "Operation") }),
|
|
1317
1325
|
/* @__PURE__ */ jsx("div", { className: "mt-0.5 truncate font-mono text-[13px] font-bold text-card-foreground", children: operationName }),
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createLiveTokenReader, createFluidGridsTokenRefreshLink } from './chunk-
|
|
1
|
+
import { createLiveTokenReader, createFluidGridsTokenRefreshLink } from './chunk-JKLZ6YZ3.js';
|
|
2
2
|
import { createHttpLink, ApolloClient, InMemoryCache } from '@apollo/client/core';
|
|
3
3
|
import { setContext } from '@apollo/client/link/context';
|
|
4
4
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useTr } from './chunk-UULVIT25.js';
|
|
2
|
-
import { getFluidGridsClient } from './chunk-
|
|
3
|
-
import { throwIfResultError } from './chunk-
|
|
2
|
+
import { getFluidGridsClient } from './chunk-PDODDDHY.js';
|
|
3
|
+
import { throwIfResultError } from './chunk-JKLZ6YZ3.js';
|
|
4
4
|
import { useState, useRef, useCallback, useEffect } from 'react';
|
|
5
5
|
import { gql } from '@apollo/client';
|
|
6
6
|
import { cn } from '@burdenoff/fe-libs/utils';
|