@burdenoff/fluidgrids-fe-sdk 2026.1112.1 → 2026.1112.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{AiStudioPage-EfvgZS7d.js → AiStudioPage-C-jio5Bz.js} +4 -4
- package/dist/{DataSinkDashboardPage-BfdKumMH.js → DataSinkDashboardPage-CRBsNjoS.js} +1 -1
- package/dist/{ExecutionDetailPage-Dtpn7Xnl.js → ExecutionDetailPage-Cw4zyaIG.js} +5 -5
- package/dist/{ExecutionsListPage-DeqJnEO7.js → ExecutionsListPage-BgeqwVr2.js} +4 -4
- package/dist/{FluidGridsProvider-BuZERrTA.js → FluidGridsProvider-BFfTxl9m.js} +2 -6
- package/dist/{HistoryPage-BC7ld-oQ.js → HistoryPage-BdijEOHp.js} +2 -2
- package/dist/{InsightsPage-C8X1g_Ya.js → InsightsPage-2jnYlozA.js} +1 -1
- package/dist/{MissingNodesInstallModal-DUmwDs4e.js → MissingNodesInstallModal-C0wPwR0Q.js} +1 -1
- package/dist/{QuotaExhaustedDialog-RctNPfz_.js → QuotaExhaustedDialog-BKZ9moP8.js} +1 -1
- package/dist/{SettingsPage-BbE4S63W.js → SettingsPage-BaM98QU_.js} +3 -3
- package/dist/{TemplateCard-D800haiE.js → TemplateCard-DYDVNYo6.js} +2 -2
- package/dist/{TemplateConfigurationModal-DYs1YxYy.js → TemplateConfigurationModal-BzdkGWim.js} +1 -1
- package/dist/{TemplateDetailPanel-CKhCQlyo.js → TemplateDetailPanel-s4EqQhra.js} +1 -1
- package/dist/{TemplatePreview-C1eRwO8z.js → TemplatePreview-B_-zS_Mm.js} +3 -3
- package/dist/{TemplatesPage-BR6iOnC0.js → TemplatesPage-OIMd6cIl.js} +4 -4
- package/dist/{VersionDiffDialog-B00qeGiE.js → VersionDiffDialog-Cp2doV3f.js} +1 -1
- package/dist/{WorkflowBuilder-rAHCVI8z.js → WorkflowBuilder-B2tIOPi0.js} +4 -4
- package/dist/{WorkflowBuilder-DRZ0xJIP.js → WorkflowBuilder-DD4UIAjC.js} +10 -9
- package/dist/{WorkflowSearchRedirect-7Kc7NniX.js → WorkflowSearchRedirect-BhXzWDj7.js} +1 -1
- package/dist/{WorkflowsList-Bnov6LCT.js → WorkflowsList-BV-2J_gG.js} +138 -10
- package/dist/{agentTools-CvPvDlPV.js → agentTools-EVdEThES.js} +4 -4
- package/dist/{canvasNoteTools-OaF81_4T.js → canvasNoteTools-C5Vf0pxu.js} +3 -3
- package/dist/{code-editor-field-Dg2U8mk1.js → code-editor-field-o7qp9eTq.js} +2 -2
- package/dist/{definition-canvas--3MPHoP-.js → definition-canvas-F8DGty5m.js} +1 -1
- package/dist/executions.js +2 -2
- package/dist/{flow-builder-CDIUMBSO.js → flow-builder-Dn4PCWuf.js} +193 -18
- package/dist/history.js +1 -1
- package/dist/{index-T8fJI6Ys.d.ts → index-DbTgk7dK.d.ts} +1 -1
- package/dist/{index-DjiFgEQl.d.ts → index-f_Nl7Ons.d.ts} +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +25 -25
- package/dist/{node-detail-view-nirlvqEK.js → node-detail-view-kWiwJEKr.js} +6 -6
- package/dist/{node-editor-tab-body-Ch0JBF2j.js → node-editor-tab-body-C71Y0fRJ.js} +3 -3
- package/dist/{node-operation-selection--oy-yEq_.js → node-operation-selection-icAhaNza.js} +1 -0
- package/dist/observability.d.ts +1 -1
- package/dist/observability.js +2 -2
- package/dist/{popover-B6Rjrhar.js → popover-v7g8TWmm.js} +1 -1
- package/dist/{quick-config-panel-B-zC__4A.js → quick-config-panel-C84vsDYD.js} +4 -4
- package/dist/{schedule-panel-Bpi6Ev3g.js → schedule-panel-BrNKy9DY.js} +5 -5
- package/dist/settings.js +1 -1
- package/dist/{sidebar-node-editor-C9drL1rk.js → sidebar-node-editor-D-2lPHwq.js} +4 -4
- package/dist/templates.js +2 -2
- package/dist/{useDurableParity-DEceXnEa.js → useDurableParity-fFmfa97r.js} +1 -1
- package/dist/{useExecutions-D3S4aqIQ.js → useExecutions-DNGW4yxG.js} +1 -1
- package/dist/{useObservability-B9cOl5mw.js → useObservability-u-MZCWUV.js} +1 -1
- package/dist/{useRunHistory-uTJepemz.js → useRunHistory-x9bVUB9T.js} +1 -1
- package/dist/{useWorkflowCodeExport-L-5NIRiH.js → useWorkflowCodeExport-CV3SZeKm.js} +82 -3
- package/dist/{useWorkflows-D9BlhpWH.js → useWorkflows-CVb5zXKt.js} +1 -1
- package/dist/workflow-builder.d.ts +1 -1
- package/dist/workflow-builder.js +5 -5
- package/dist/workflow-pages.d.ts +2 -2
- package/dist/workflow-pages.js +13 -13
- package/dist/workflow-preview.js +2 -2
- package/dist/workflows-list.js +1 -1
- package/package.json +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { B as createConfiguredNode, Nt as useSaveStatusStore, Q as selectedOperationOf, R as SENSITIVE_PARAM, Y as nodeTitle, Z as paramsFromOperation, _ as registryNodeData, f as isNodeConfigsInitialized, gt as autosaveAllowedFor, o as NODE_CONFIGS, q as fixedParameterState, wt as isFlowComplete } from "./FluidGridsProvider-
|
|
3
|
-
import { E as resolveOutputHandles, H as useFlowStore, T as resolveInputHandles } from "./node-operation-selection
|
|
4
|
-
import { j as isNodeTypeHiddenFromPalette } from "./TemplateCard-
|
|
5
|
-
import { g as computeAttachPosition } from "./flow-builder-
|
|
2
|
+
import { B as createConfiguredNode, Nt as useSaveStatusStore, Q as selectedOperationOf, R as SENSITIVE_PARAM, Y as nodeTitle, Z as paramsFromOperation, _ as registryNodeData, f as isNodeConfigsInitialized, gt as autosaveAllowedFor, o as NODE_CONFIGS, q as fixedParameterState, wt as isFlowComplete } from "./FluidGridsProvider-BFfTxl9m.js";
|
|
3
|
+
import { E as resolveOutputHandles, H as useFlowStore, T as resolveInputHandles } from "./node-operation-selection-icAhaNza.js";
|
|
4
|
+
import { j as isNodeTypeHiddenFromPalette } from "./TemplateCard-DYDVNYo6.js";
|
|
5
|
+
import { g as computeAttachPosition } from "./flow-builder-Dn4PCWuf.js";
|
|
6
6
|
import { AgentToolError, defineAgentTool } from "@burdenoff/fe-libs/shared/agent-tools";
|
|
7
7
|
import { z } from "zod";
|
|
8
8
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { n as useAgentMarksStore, r as toPlainText } from "./marksStore-DGCXjTmZ.js";
|
|
3
|
-
import { Q as selectedOperationOf, Y as nodeTitle, Z as paramsFromOperation } from "./FluidGridsProvider-
|
|
4
|
-
import { H as useFlowStore } from "./node-operation-selection
|
|
5
|
-
import { p as notesKeyOf } from "./flow-builder-
|
|
3
|
+
import { Q as selectedOperationOf, Y as nodeTitle, Z as paramsFromOperation } from "./FluidGridsProvider-BFfTxl9m.js";
|
|
4
|
+
import { H as useFlowStore } from "./node-operation-selection-icAhaNza.js";
|
|
5
|
+
import { p as notesKeyOf } from "./flow-builder-Dn4PCWuf.js";
|
|
6
6
|
import { AgentToolError, defineAgentTool } from "@burdenoff/fe-libs/shared/agent-tools";
|
|
7
7
|
import { z } from "zod";
|
|
8
8
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
|
|
3
|
-
import { g as toCodeMirrorDiagnostics } from "./node-operation-selection
|
|
4
|
-
import {
|
|
3
|
+
import { g as toCodeMirrorDiagnostics } from "./node-operation-selection-icAhaNza.js";
|
|
4
|
+
import { Hn as useBuilderReadOnly } from "./FluidGridsProvider-BFfTxl9m.js";
|
|
5
5
|
import { useEffect, useMemo, useRef, useState } from "react";
|
|
6
6
|
import { cn } from "@burdenoff/fe-libs/utils";
|
|
7
7
|
import { jsx } from "react/jsx-runtime";
|
package/dist/executions.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { t as ExecutionsListPage } from "./ExecutionsListPage-
|
|
3
|
-
import { t as ExecutionDetailPage } from "./ExecutionDetailPage-
|
|
2
|
+
import { t as ExecutionsListPage } from "./ExecutionsListPage-BgeqwVr2.js";
|
|
3
|
+
import { t as ExecutionDetailPage } from "./ExecutionDetailPage-Cw4zyaIG.js";
|
|
4
4
|
|
|
5
5
|
export { ExecutionDetailPage, ExecutionsListPage };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { B as NODE_TYPE_DRAG_DATA_FORMAT, G as isTriggerOperation, H as useFlowStore, M as isImageIcon, T as resolveInputHandles, U as useIsValidConnection, V as STICKY_NOTE_TYPE, j as NodeTypeIcon, r as CODE_WORKFLOW_NODE_TYPE, z as NODE_OPERATION_DRAG_DATA_FORMAT } from "./node-operation-selection
|
|
3
|
-
import { $t as
|
|
2
|
+
import { B as NODE_TYPE_DRAG_DATA_FORMAT, G as isTriggerOperation, H as useFlowStore, M as isImageIcon, T as resolveInputHandles, U as useIsValidConnection, V as STICKY_NOTE_TYPE, j as NodeTypeIcon, r as CODE_WORKFLOW_NODE_TYPE, z as NODE_OPERATION_DRAG_DATA_FORMAT } from "./node-operation-selection-icAhaNza.js";
|
|
3
|
+
import { $t as AUTOSAVE_DEBOUNCE_MS, Bn as useMarkdownRenderer, Bt as leaseCallSequence, Cn as loadDefinitionJson, Ct as watchLeavingLosesChanges, D as InstallWorkflowNodeDocument, E as InstallPurchasedNodeDocument, Et as useSaveWorkflow, F as getNodeMetadata, Ft as useEditLeaseLocked, Gt as tickAction, H as MissingParametersDialog, Hn as useBuilderReadOnly, Ht as phaseAfterTakeOver, It as useEditLeaseStore, Jt as rememberSessionForReload, Kt as EDIT_SESSION_ID, Ln as getNodeDetail, Lt as bannerOf, M as UninstallOrganizationPrivateNodeDocument, Mt as saveIndicatorOf, N as UninstallWorkflowNodeDocument, Nt as useSaveStatusStore, Pt as workflowSaveQueue, Qt as revisionOf, Rn as buildStickyNode, Rt as isLocked, S as CreateStoreOrderDocument, St as touchesSavedFields, T as InstallOrganizationPrivateNodeDocument, Tt as useFlowValidator, U as useRunGuard, Ut as releasesOnClose, V as useInsertNode, Vn as BuilderReadOnlyProvider, Vt as phaseAfterAcquire, W as workflowParameterIssues, Wt as shouldReleaseForIdle, Xt as rememberOwnStatusChange, Yt as sessionBeforeReload, Zt as rememberRevision, _t as departingSave, a as NODES_METADATA, an as resettledBaseline, b as BrowseWorkflowNodesDocument, bn as useCanvasEdges, bt as leavingLosesChanges, cn as useNodeExecution, en as AUTOSAVE_RETRY_DELAYS_MS, f as isNodeConfigsInitialized, g as registerWorkflowNodeTypes, gt as autosaveAllowedFor, ht as useManualSave, i as AVAILABLE_NODES, in as inAppLeaveTarget, jt as refusalOfQuota, k as OrganizationPrivateNodesDocument, l as ensureNodeConfigsLoaded, m as refetchStoreNodes, mt as useGuardedNavigate, o as NODE_CONFIGS, on as saveFailureActionOf, p as onNodeTypesUpdate, qt as forgetSessionForReload, s as NODE_TYPES, sn as workflowFingerprint, t as FluidGridsContext, tn as canAutosave, v as scheduleNodePaletteLoad, vt as editStateFor, w as GetNodeInstallableVersionsDocument, wt as isFlowComplete, xn as useNodeRegistryRevision, xt as savedEverythingBeforeLeaving, yt as editingLeaseLocked, z as buildOperationSeed, zn as loadMarkdown, zt as leaseCallQueue } from "./FluidGridsProvider-BFfTxl9m.js";
|
|
4
4
|
import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
|
|
5
5
|
import { n as preloadableLazy } from "./preloadable-lazy-Pp47mqQ9.js";
|
|
6
6
|
import { a as DialogFooter$1, d as Input$1, i as DialogDescription$1, l as DialogTitle$1, o as DialogHeader$1, r as DialogContent$1, t as Dialog$1 } from "./dialog-Cjb4lB4D.js";
|
|
7
|
-
import { _ as storeNodeInstallVersion, a as useTemplateImportFlow, d as filterStoreNodesForPalette, f as getStoreNodeAvailability, g as storeNodeDisplayVersion, h as isStoreNodeUpdateAvailable, k as filterPaletteNodes, m as getStoreNodeType, p as getStoreNodeIcon, t as TemplateCard, u as useWorkflowTemplates, v as useInstalledNodes, y as useGlobalStoreClient } from "./TemplateCard-
|
|
7
|
+
import { _ as storeNodeInstallVersion, a as useTemplateImportFlow, d as filterStoreNodesForPalette, f as getStoreNodeAvailability, g as storeNodeDisplayVersion, h as isStoreNodeUpdateAvailable, k as filterPaletteNodes, m as getStoreNodeType, p as getStoreNodeIcon, t as TemplateCard, u as useWorkflowTemplates, v as useInstalledNodes, y as useGlobalStoreClient } from "./TemplateCard-DYDVNYo6.js";
|
|
8
8
|
import { _ as throwIfResultError, d as emitFluidGridsEvent, m as describeOperationError, n as getFluidGridsClient, s as waitForFluidGridsClient, x as getFluidGridsConfig } from "./client-C9XSzSXr.js";
|
|
9
9
|
import { c as useDurableParityEnabled, d as usePaletteGates, l as useFluidGridsFlag, m as useWorkflowTestsEnabled, s as useDurableFunctionNodesEnabled, t as FLUIDGRIDS_FLAGS } from "./feature-flags-DM5myWaD.js";
|
|
10
10
|
import { t as Button$2 } from "./button-DG7y_FVJ.js";
|
|
@@ -12,14 +12,14 @@ import { t as PublishCustomNodeAction } from "./PublishCustomNodeAction-5XXnSA3H
|
|
|
12
12
|
import { o as emitUpgradeClicked, t as emitNodeInstalled } from "./fluidgridsEvents-Dm5CaHtr.js";
|
|
13
13
|
import { $t as RemoveNodeFromWorkflowsDocument, Br as WorkflowGitPushesDocument, Ci as WorkflowVersioningDocument, Ft as NodeUsageStatusDocument, Gr as WorkflowPromotionRequestsDocument, Hn as TakeOverWorkflowEditLeaseDocument, Lr as WorkflowGenerationTemplatesDocument, Mn as SetWorkflowRolloutDocument, Mr as WorkflowEditLeaseDocument, Nt as NodeSchemaIntrospectionDocument, Or as WorkflowDefinitionDocument, Pr as WorkflowEnvironmentsDocument, Q as DeployWorkflowVersionToDevDocument, Qt as ReleaseWorkflowEditLeaseDocument, Rr as WorkflowGitCommitsDocument, S as CancelWorkflowPromotionDocument, Si as WorkflowVersionDrainageDocument, Vr as WorkflowGitRepositoryDocument, Xt as RejectWorkflowPromotionDocument, Y as DeleteWorkflowRolloutDocument, Zn as UnlinkWorkflowGitRepositoryDocument, br as WorkflowAuthoringDocument, l as ApproveWorkflowPromotionDocument, lr as UpdateWorkflowEnvironmentPolicyDocument, qt as PushWorkflowToGitDocument, r as ActivateWorkflowVersionCheckedDocument, rn as RequestWorkflowPromotionDocument, sn as RestoreWorkflowFromGitDocument, t as AcquireWorkflowEditLeaseDocument, wt as LinkWorkflowGitRepositoryDocument, zr as WorkflowGitDiffDocument } from "./graphql-operation-types-BdU65FNm.js";
|
|
14
14
|
import { n as useAgentMarksStore } from "./marksStore-DGCXjTmZ.js";
|
|
15
|
-
import {
|
|
15
|
+
import { A as CreateWorkflowRefusalDialog, C as orderedExportFiles, E as sortFidelityItems, S as lineOfNode, _ as fileBaseName, b as isLosslessReport, c as saveWorkflowDescription, l as visibleWorkflowDescription, o as commitWorkflowDescription, r as useWorkflowCodeExport, s as normalizeWorkflowDescription, t as downloadWorkflowCodeExport, u as workflowDescriptionCharactersLeft, x as isLossyFidelityItem } from "./useWorkflowCodeExport-CV3SZeKm.js";
|
|
16
16
|
import { r as RUNS_QUOTA_NAME, t as BILLING_PLANS_PATH } from "./quota-Cdt8yz7N.js";
|
|
17
17
|
import { t as EntityTagPicker } from "./EntityTagPicker-Dk3CufFt.js";
|
|
18
18
|
import { t as FluidGridsDocsLink } from "./FluidGridsDocsLink-JxkBpOeb.js";
|
|
19
19
|
import { n as runsQuotaLevel, t as readRunsQuota } from "./runsQuota-DvXR6mRN.js";
|
|
20
20
|
import { a as SdkPermissionGate, i as SdkPermissionButton, s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-B2lhWNoN.js";
|
|
21
|
-
import { a as useDeactivateWorkflow, d as useRestoreWorkflowVersion, o as useDeleteWorkflow, t as useActivateWorkflow, v as useWorkflowVersions } from "./useWorkflows-
|
|
22
|
-
import { n as VersionLifecycleBar, r as countLifecycle, t as VersionDiffDialog } from "./VersionDiffDialog-
|
|
21
|
+
import { a as useDeactivateWorkflow, d as useRestoreWorkflowVersion, o as useDeleteWorkflow, t as useActivateWorkflow, v as useWorkflowVersions } from "./useWorkflows-CVb5zXKt.js";
|
|
22
|
+
import { n as VersionLifecycleBar, r as countLifecycle, t as VersionDiffDialog } from "./VersionDiffDialog-Cp2doV3f.js";
|
|
23
23
|
import { $P as VersioningBehavior, Eu as DrainageStatus, MI as WorkflowTestExpectedStatus, jo as CodeReplaceStatus, nI as WorkflowEnvironment, rI as WorkflowExportFormat } from "./graphql-types-v6CTGwA0.js";
|
|
24
24
|
import { n as useConnections } from "./useConnections-Cs7LCWEM.js";
|
|
25
25
|
import { t as buildNodeDisplayMap } from "./run-display-BycKYSU0.js";
|
|
@@ -40,7 +40,7 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
|
40
40
|
import { toast } from "sonner";
|
|
41
41
|
import { edgeColor, nodeCategoryColor } from "@burdenoff/fe-libs/shared/utils";
|
|
42
42
|
import { shallow, useShallow } from "zustand/shallow";
|
|
43
|
-
import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, Badge, Button, Card, CardContent, CardDescription, CardHeader, CardTitle, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, Input, Label, Popover, PopoverContent, PopoverTrigger, ScrollArea, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle, SheetTrigger, Switch, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toaster as Toaster$1, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@burdenoff/fe-libs/ui";
|
|
43
|
+
import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, Badge, Button, Card, CardContent, CardDescription, CardHeader, CardTitle, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, Input, Label, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, ScrollArea, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle, SheetTrigger, Switch, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toaster as Toaster$1, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@burdenoff/fe-libs/ui";
|
|
44
44
|
import { useEventBus } from "@burdenoff/fe-libs/shared/events";
|
|
45
45
|
import { Button as Button$1 } from "@burdenoff/fe-libs/button";
|
|
46
46
|
import { ThemeProvider } from "@burdenoff/fe-libs/shared/providers/shell";
|
|
@@ -260,9 +260,9 @@ function IntroductionPropertyPanel() {
|
|
|
260
260
|
* waiting for its chunk and React's Suspense throttle (about 0.5 s on first
|
|
261
261
|
* open even with the chunk cached).
|
|
262
262
|
*/
|
|
263
|
-
const NodeDetailViewOverlay = preloadableLazy(() => import("./node-detail-view-
|
|
264
|
-
const QuickConfigPanelOverlay = preloadableLazy(() => import("./quick-config-panel-
|
|
265
|
-
const SidebarNodeEditorOverlay = preloadableLazy(() => import("./sidebar-node-editor-
|
|
263
|
+
const NodeDetailViewOverlay = preloadableLazy(() => import("./node-detail-view-kWiwJEKr.js").then((m) => m.NodeDetailView), "NodeDetailView");
|
|
264
|
+
const QuickConfigPanelOverlay = preloadableLazy(() => import("./quick-config-panel-C84vsDYD.js").then((m) => m.QuickConfigPanel), "QuickConfigPanel");
|
|
265
|
+
const SidebarNodeEditorOverlay = preloadableLazy(() => import("./sidebar-node-editor-D-2lPHwq.js").then((m) => m.SidebarNodeEditor), "SidebarNodeEditor");
|
|
266
266
|
const WorkflowShareDialogOverlay = preloadableLazy(() => import("./WorkflowShareDialog-Dv46nAyh.js").then((n) => n.n).then((m) => m.WorkflowShareDialog), "WorkflowShareDialog");
|
|
267
267
|
const ConnectionFormDialogOverlay = preloadableLazy(() => import("./ConnectionFormDialog-Bg9_OdHX.js").then((n) => n.n).then((m) => m.ConnectionFormDialog), "ConnectionFormDialog");
|
|
268
268
|
/**
|
|
@@ -2624,7 +2624,7 @@ function TemplatesGrid({ templates, loading, hasMore, onLoadMore, onTemplateClic
|
|
|
2624
2624
|
}
|
|
2625
2625
|
|
|
2626
2626
|
// src/builder/components/flow-builder/components/templates/TemplatesModal.tsx
|
|
2627
|
-
const LazyTemplateDetailPanel = lazy(() => import("./TemplateDetailPanel-
|
|
2627
|
+
const LazyTemplateDetailPanel = lazy(() => import("./TemplateDetailPanel-s4EqQhra.js").then((m) => ({ default: m.TemplateDetailPanel })));
|
|
2628
2628
|
/**
|
|
2629
2629
|
* Modal for browsing and selecting workflow templates
|
|
2630
2630
|
* Features:
|
|
@@ -16495,7 +16495,7 @@ function FidelityReportList({ fidelity, source, hasNode, onShowNode }) {
|
|
|
16495
16495
|
* Behind the `fluidgrids.code-first` flag (default off); with the flag off
|
|
16496
16496
|
* the panel renders nothing and the header is exactly as before.
|
|
16497
16497
|
*/
|
|
16498
|
-
const LazyCodeEditorField = lazy(() => import("./code-editor-field-
|
|
16498
|
+
const LazyCodeEditorField = lazy(() => import("./code-editor-field-o7qp9eTq.js").then((n) => n.n).then((m) => ({ default: m.CodeEditorField })));
|
|
16499
16499
|
/** Read-only lifted-code editor with a sized placeholder while its chunk loads. */
|
|
16500
16500
|
function CodeViewEditor({ content, path, label }) {
|
|
16501
16501
|
return /* @__PURE__ */ jsx(Suspense, {
|
|
@@ -16798,11 +16798,185 @@ function ShareWorkflowButton({ compact = false, className }) {
|
|
|
16798
16798
|
});
|
|
16799
16799
|
}
|
|
16800
16800
|
|
|
16801
|
+
// src/builder/lib/workflow-description-save.ts
|
|
16802
|
+
/**
|
|
16803
|
+
* Saving the open workflow's description from the builder header (BOFF-9743).
|
|
16804
|
+
*
|
|
16805
|
+
* The description is written on its own, in place, through
|
|
16806
|
+
* `updateWorkflowDefinition`; the canvas save never writes it. The store shows
|
|
16807
|
+
* the new text at once and gets the old one back when the service refuses.
|
|
16808
|
+
*
|
|
16809
|
+
* A description change raises the version's revision (BOFF-9725), so the save
|
|
16810
|
+
* goes through the editor's save queue, never alongside a canvas save that
|
|
16811
|
+
* carries the same revision, and sends that revision itself. Its answer is the
|
|
16812
|
+
* page's new revision: without it the person's next canvas save would be
|
|
16813
|
+
* refused as stale over their own edit.
|
|
16814
|
+
*/
|
|
16815
|
+
/** Numbers each save, so the queue never folds one description save into another. */
|
|
16816
|
+
let saveSequence = 0;
|
|
16817
|
+
/**
|
|
16818
|
+
* Save `description` on the open version. Resolves (never rejects) with what
|
|
16819
|
+
* happened; a refusal carries the service's message for the caller's toast.
|
|
16820
|
+
*/
|
|
16821
|
+
async function saveOpenWorkflowDescription(description) {
|
|
16822
|
+
const flow = useFlowStore.getState();
|
|
16823
|
+
const dbId = flow.workflow.dbId;
|
|
16824
|
+
if (!dbId) return {
|
|
16825
|
+
saved: false,
|
|
16826
|
+
message: "Save the workflow first"
|
|
16827
|
+
};
|
|
16828
|
+
const generation = flow.loadGeneration;
|
|
16829
|
+
const previous = flow.workflow.description ?? "";
|
|
16830
|
+
const next = normalizeWorkflowDescription(description);
|
|
16831
|
+
const { setWorkflow } = flow.actions;
|
|
16832
|
+
const showsThisSave = () => {
|
|
16833
|
+
const state = useFlowStore.getState();
|
|
16834
|
+
return state.loadGeneration === generation && state.workflow.dbId === dbId && (state.workflow.description ?? "") === next;
|
|
16835
|
+
};
|
|
16836
|
+
setWorkflow({ description: next });
|
|
16837
|
+
let result = {
|
|
16838
|
+
saved: false,
|
|
16839
|
+
message: "The description was not saved"
|
|
16840
|
+
};
|
|
16841
|
+
await workflowSaveQueue.run(async () => {
|
|
16842
|
+
const expectedRevision = revisionOf(dbId);
|
|
16843
|
+
try {
|
|
16844
|
+
const saved = await saveWorkflowDescription(getFluidGridsClient(), dbId, next, {
|
|
16845
|
+
expectedRevision,
|
|
16846
|
+
editSessionId: EDIT_SESSION_ID
|
|
16847
|
+
});
|
|
16848
|
+
if (expectedRevision !== void 0) rememberRevision(saved.id, saved.revision);
|
|
16849
|
+
else rememberOwnStatusChange(saved.id, saved.revision);
|
|
16850
|
+
if (showsThisSave() && saved.description !== next) setWorkflow({ description: saved.description });
|
|
16851
|
+
result = {
|
|
16852
|
+
saved: true,
|
|
16853
|
+
description: saved.description
|
|
16854
|
+
};
|
|
16855
|
+
return true;
|
|
16856
|
+
} catch (error) {
|
|
16857
|
+
if (showsThisSave()) setWorkflow({ description: previous });
|
|
16858
|
+
result = {
|
|
16859
|
+
saved: false,
|
|
16860
|
+
message: describeOperationError(error)
|
|
16861
|
+
};
|
|
16862
|
+
return false;
|
|
16863
|
+
}
|
|
16864
|
+
}, `description:${++saveSequence}`);
|
|
16865
|
+
return result;
|
|
16866
|
+
}
|
|
16867
|
+
|
|
16868
|
+
// src/builder/components/flow-builder/components/ui/workflow-description-field.tsx
|
|
16869
|
+
/**
|
|
16870
|
+
* The workflow's description in the builder header (BOFF-9743), n8n-style:
|
|
16871
|
+
* the text itself is the edit affordance. Clicking it opens a small editor;
|
|
16872
|
+
* Ctrl/Cmd+Enter or leaving the editor saves, Escape cancels.
|
|
16873
|
+
*
|
|
16874
|
+
* The header only renders while this page may change the workflow (not a
|
|
16875
|
+
* read-only view, and not while someone else holds the edit lease, BOFF-9725);
|
|
16876
|
+
* without the update permission the description is shown, not offered for
|
|
16877
|
+
* editing. The service still refuses a save it does not allow (a viewer of a
|
|
16878
|
+
* shared workflow, BOFF-9726), and the old text comes back with a toast.
|
|
16879
|
+
*/
|
|
16880
|
+
function WorkflowDescriptionField({ className }) {
|
|
16881
|
+
const tr = useTr();
|
|
16882
|
+
const [description, name, dbId] = useFlowStore(useShallow((s) => [
|
|
16883
|
+
s.workflow.description,
|
|
16884
|
+
s.workflow.name,
|
|
16885
|
+
s.workflow.dbId
|
|
16886
|
+
]));
|
|
16887
|
+
const { allowed: canEdit } = useFluidGridsPermission(FLUIDGRIDS_PERMISSIONS.WORKFLOW_UPDATE);
|
|
16888
|
+
const [draft, setDraftState] = useState(null);
|
|
16889
|
+
const draftRef = useRef(null);
|
|
16890
|
+
const setDraft = (next) => {
|
|
16891
|
+
draftRef.current = next;
|
|
16892
|
+
setDraftState(next);
|
|
16893
|
+
};
|
|
16894
|
+
const shown = visibleWorkflowDescription(description, name);
|
|
16895
|
+
if (!dbId) return null;
|
|
16896
|
+
if (!canEdit) {
|
|
16897
|
+
if (!shown) return null;
|
|
16898
|
+
return /* @__PURE__ */ jsx("span", {
|
|
16899
|
+
"data-testid": "fluidgrids-workflow-description",
|
|
16900
|
+
title: shown,
|
|
16901
|
+
className: cn("min-w-0 shrink-[6] truncate text-xs text-muted-foreground", className),
|
|
16902
|
+
children: shown
|
|
16903
|
+
});
|
|
16904
|
+
}
|
|
16905
|
+
const editing = draft !== null;
|
|
16906
|
+
const commit = () => {
|
|
16907
|
+
const current = draftRef.current;
|
|
16908
|
+
if (current === null) return;
|
|
16909
|
+
const decision = commitWorkflowDescription(shown, current);
|
|
16910
|
+
setDraft(null);
|
|
16911
|
+
if (decision.kind !== "save") return;
|
|
16912
|
+
saveOpenWorkflowDescription(decision.description).then((result) => {
|
|
16913
|
+
if (result.saved) return;
|
|
16914
|
+
toast.error(tr("fluidgrids.builder.workflowDescription.saveFailed", "The description couldn't be saved"), { description: result.message });
|
|
16915
|
+
});
|
|
16916
|
+
};
|
|
16917
|
+
const placeholder = tr("fluidgrids.builder.workflowDescription.add", "Add description");
|
|
16918
|
+
const left = editing ? workflowDescriptionCharactersLeft(draft) : 0;
|
|
16919
|
+
return /* @__PURE__ */ jsxs(Popover, {
|
|
16920
|
+
open: editing,
|
|
16921
|
+
onOpenChange: (open) => {
|
|
16922
|
+
if (!open) commit();
|
|
16923
|
+
},
|
|
16924
|
+
children: [/* @__PURE__ */ jsx(PopoverAnchor, {
|
|
16925
|
+
asChild: true,
|
|
16926
|
+
children: /* @__PURE__ */ jsx("button", {
|
|
16927
|
+
type: "button",
|
|
16928
|
+
"data-testid": "fluidgrids-workflow-description",
|
|
16929
|
+
title: shown || placeholder,
|
|
16930
|
+
"aria-label": tr("fluidgrids.builder.workflowDescription.label", "Workflow description"),
|
|
16931
|
+
className: cn("-mx-1 min-w-0 shrink-[6] cursor-text truncate rounded px-1 text-left text-xs transition-colors hover:bg-card-foreground/10", shown ? "text-card-foreground/80" : "italic text-muted-foreground", className),
|
|
16932
|
+
onClick: () => setDraft(shown),
|
|
16933
|
+
children: shown || placeholder
|
|
16934
|
+
})
|
|
16935
|
+
}), /* @__PURE__ */ jsxs(PopoverContent, {
|
|
16936
|
+
align: "start",
|
|
16937
|
+
className: "flex w-80 flex-col gap-1.5 p-2",
|
|
16938
|
+
onEscapeKeyDown: (event) => {
|
|
16939
|
+
event.preventDefault();
|
|
16940
|
+
setDraft(null);
|
|
16941
|
+
},
|
|
16942
|
+
children: [/* @__PURE__ */ jsx(Textarea, {
|
|
16943
|
+
autoFocus: true,
|
|
16944
|
+
"data-testid": "fluidgrids-workflow-description-input",
|
|
16945
|
+
"aria-label": tr("fluidgrids.builder.workflowDescription.label", "Workflow description"),
|
|
16946
|
+
placeholder: tr("fluidgrids.builder.workflowDescription.placeholder", "What does this workflow do?"),
|
|
16947
|
+
rows: 3,
|
|
16948
|
+
maxLength: 500,
|
|
16949
|
+
value: draft ?? "",
|
|
16950
|
+
onChange: (event) => setDraft(event.target.value),
|
|
16951
|
+
onKeyDown: (event) => {
|
|
16952
|
+
if (event.key === "Enter" && (event.ctrlKey || event.metaKey)) {
|
|
16953
|
+
event.preventDefault();
|
|
16954
|
+
commit();
|
|
16955
|
+
}
|
|
16956
|
+
},
|
|
16957
|
+
className: "min-h-20 resize-none text-sm"
|
|
16958
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
16959
|
+
className: "flex items-center justify-between gap-2 text-[11px] text-muted-foreground",
|
|
16960
|
+
children: [/* @__PURE__ */ jsx("span", { children: tr("fluidgrids.builder.workflowDescription.hint", "Ctrl+Enter to save, Esc to cancel") }), /* @__PURE__ */ jsxs("span", {
|
|
16961
|
+
"data-testid": "fluidgrids-workflow-description-counter",
|
|
16962
|
+
className: cn("tabular-nums", left < 0 && "text-destructive"),
|
|
16963
|
+
children: [
|
|
16964
|
+
500 - left,
|
|
16965
|
+
"/",
|
|
16966
|
+
500
|
|
16967
|
+
]
|
|
16968
|
+
})]
|
|
16969
|
+
})]
|
|
16970
|
+
})]
|
|
16971
|
+
});
|
|
16972
|
+
}
|
|
16973
|
+
|
|
16801
16974
|
// src/builder/components/flow-builder/components/ui/builder-header.tsx
|
|
16802
16975
|
/**
|
|
16803
|
-
* The workflow editor's header (BOFF-9773): back, the workflow's name
|
|
16804
|
-
* version alias, tags and save state on the left;
|
|
16805
|
-
* laid out by `BuilderHeaderLayout` for the
|
|
16976
|
+
* The workflow editor's header (BOFF-9773): back, the workflow's name,
|
|
16977
|
+
* version alias, description (BOFF-9743), tags and save state on the left;
|
|
16978
|
+
* the actions on the right, laid out by `BuilderHeaderLayout` for the
|
|
16979
|
+
* header's own width.
|
|
16806
16980
|
*/
|
|
16807
16981
|
/** Run button with an attached chevron opening a small menu (currently just "View Runs"). */
|
|
16808
16982
|
function RunWithViewRuns({ onViewRuns, canViewRuns, className, runButtonClassName }) {
|
|
@@ -16906,7 +17080,7 @@ function VersionAliasChip({ value, onChange, iconOnly }) {
|
|
|
16906
17080
|
children: label
|
|
16907
17081
|
});
|
|
16908
17082
|
}
|
|
16909
|
-
/** Back, name, alias, tags and save state. */
|
|
17083
|
+
/** Back, name, description, alias, tags and save state. */
|
|
16910
17084
|
function HeaderIdentity({ tier }) {
|
|
16911
17085
|
const tr = useTr();
|
|
16912
17086
|
const { id } = useParams();
|
|
@@ -16955,6 +17129,7 @@ function HeaderIdentity({ tier }) {
|
|
|
16955
17129
|
});
|
|
16956
17130
|
}
|
|
16957
17131
|
}),
|
|
17132
|
+
/* @__PURE__ */ jsx(WorkflowDescriptionField, { className: tier === "full" ? "max-w-[20rem]" : "max-w-[12rem]" }),
|
|
16958
17133
|
/* @__PURE__ */ jsx(CurrentVersionAiBadge, { iconOnly: tier === "mid" }),
|
|
16959
17134
|
id && /* @__PURE__ */ jsx(EntityTagPicker, {
|
|
16960
17135
|
entityType: "FLUIDGRIDS_WORKFLOW",
|
|
@@ -17443,7 +17618,7 @@ const FlowBuilder = ({ readOnly = false }) => {
|
|
|
17443
17618
|
paletteGatesRef.current = paletteGates;
|
|
17444
17619
|
}, [paletteGates]);
|
|
17445
17620
|
useWarmBuilderOverlays();
|
|
17446
|
-
useLazyAgentTools(() => import("./agentTools-
|
|
17621
|
+
useLazyAgentTools(() => import("./agentTools-EVdEThES.js").then(({ createBuilderAgentTools }) => createBuilderAgentTools({ durableFunctionsEnabled: () => paletteGatesRef.current })), !editingBlocked, "Agent tools");
|
|
17447
17622
|
const [nodes, edges, onNodesChange, onEdgesChange, onConnect] = useFlowStore(useShallow((s) => {
|
|
17448
17623
|
return [
|
|
17449
17624
|
s.workflow.nodes,
|
|
@@ -17485,7 +17660,7 @@ const FlowBuilder = ({ readOnly = false }) => {
|
|
|
17485
17660
|
useEffect(() => {
|
|
17486
17661
|
fitViewRef.current = fitView;
|
|
17487
17662
|
}, [fitView]);
|
|
17488
|
-
useLazyAgentTools(() => import("./canvasNoteTools-
|
|
17663
|
+
useLazyAgentTools(() => import("./canvasNoteTools-C5Vf0pxu.js").then(({ createCanvasNoteTools }) => createCanvasNoteTools({ focusNode: (nodeId) => fitViewRef.current({
|
|
17489
17664
|
nodes: [{ id: nodeId }],
|
|
17490
17665
|
duration: 400,
|
|
17491
17666
|
padding: .6,
|
package/dist/history.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
import { f as FluidGridsTheme, r as FluidGridsRefreshedTokens } from "./index-72XFgvbn.js";
|
|
3
|
-
import { R as FluidGridsProviderProps, w as WorkflowData } from "./index-
|
|
3
|
+
import { R as FluidGridsProviderProps, w as WorkflowData } from "./index-f_Nl7Ons.js";
|
|
4
4
|
import { j as Translator } from "./constants-XdvUxeWK.js";
|
|
5
5
|
import { t as RunsQuota } from "./runsQuota-DsniKiSg.js";
|
|
6
6
|
import * as React$2 from "react";
|