@burdenoff/fluidgrids-fe-sdk 2026.1111.22 → 2026.1111.23

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 (25) hide show
  1. package/dist/{AiStudioPage-DIfF4LhQ.js → AiStudioPage-CLrMe8v8.js} +1 -1
  2. package/dist/{ApprovalInboxPage-dbBDSJ-f.js → ApprovalInboxPage-D8vhnloO.js} +1 -1
  3. package/dist/{ExecutionDetailPage-DYLWtHRG.js → ExecutionDetailPage-DmICvIpH.js} +7 -2
  4. package/dist/{HumanRequestCard-D-ooVPDn.js → HumanRequestCard-mOhr-Ic9.js} +239 -31
  5. package/dist/{TemplatePreview-t3251W_n.js → TemplatePreview-Bb2f4enx.js} +1 -1
  6. package/dist/{WorkflowBuilder-DdvSGsxr.js → WorkflowBuilder-CabLzwS5.js} +1 -1
  7. package/dist/{WorkflowBuilder-C-hgvww2.js → WorkflowBuilder-TgKSGNlu.js} +1 -1
  8. package/dist/{agentTools-BjhxAdlt.js → agentTools-BU5crBtm.js} +1 -1
  9. package/dist/{canvasNoteTools-CZEFFhRp.js → canvasNoteTools-DeSl4BAF.js} +1 -1
  10. package/dist/executions.js +1 -1
  11. package/dist/{flow-builder-CE8cNXNi.js → flow-builder-xokwiaT1.js} +5 -5
  12. package/dist/{index-7eJQwsNS.d.ts → index-D507rsk2.d.ts} +17 -1
  13. package/dist/index.d.ts +2 -2
  14. package/dist/index.js +10 -10
  15. package/dist/{node-detail-view-BoR0vYZ3.js → node-detail-view-DGrDIjS-.js} +2 -2
  16. package/dist/{node-editor-tab-body-DxMbKspp.js → node-editor-tab-body-eOsmnUvx.js} +1 -1
  17. package/dist/observability.d.ts +1 -1
  18. package/dist/{quick-config-panel-DXvLJdeW.js → quick-config-panel-Bc7isfv0.js} +2 -2
  19. package/dist/{schedule-panel-CY6S4JMd.js → schedule-panel-BnqaUnnz.js} +148 -2
  20. package/dist/{sidebar-node-editor-FU3fvOjh.js → sidebar-node-editor-CdlEDGKh.js} +2 -2
  21. package/dist/templates.js +1 -1
  22. package/dist/workflow-builder.js +2 -2
  23. package/dist/workflow-pages.d.ts +1 -1
  24. package/dist/workflow-pages.js +5 -5
  25. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1,20 +1,20 @@
1
1
  "use client";
2
2
  import { At as createThenOpen, Dt as blankWorkflowCreateInput, _n as openRunQuotaUpgradePrompt, et as resolveUiSpec, gn as useFluidGridsAnalytics, kt as classifyCreateRefusal, m as refetchStoreNodes, n as FluidGridsProvider, on as useNodeExecution, r as useFluidGridsContext, tt as stripSubmitActions } from "./FluidGridsProvider-CWyQ8ziM.js";
3
- import { n as WorkflowBuilderCore, r as EnsureThemeProvider, t as WorkflowBuilder } from "./WorkflowBuilder-C-hgvww2.js";
3
+ import { n as WorkflowBuilderCore, r as EnsureThemeProvider, t as WorkflowBuilder } from "./WorkflowBuilder-TgKSGNlu.js";
4
4
  import { a as useCreateWorkflowFirst, i as FirstWorkflowChecklistView, r as FirstWorkflowChecklist, t as WorkflowsList } from "./WorkflowsList-C3bHLpSv.js";
5
- import { a as START_NAME_PARAM, c as readStartNodeRequest, i as START_FIELD_PREFIX, l as startNodeLink, o as START_NODE_PARAM, r as GuidedTourStarter, s as START_OPERATION_PARAM, t as WorkflowBuilder$1 } from "./WorkflowBuilder-DdvSGsxr.js";
5
+ import { a as START_NAME_PARAM, c as readStartNodeRequest, i as START_FIELD_PREFIX, l as startNodeLink, o as START_NODE_PARAM, r as GuidedTourStarter, s as START_OPERATION_PARAM, t as WorkflowBuilder$1 } from "./WorkflowBuilder-CabLzwS5.js";
6
6
  import { t as WorkflowSearchRedirect } from "./WorkflowSearchRedirect-33Vs4FKc.js";
7
7
  import { A as isDurableFunctionNodeType, C as CardFooter, D as RUN_CONTROL_NODE_TYPES, E as DURABLE_FUNCTION_NODE_TYPES, M as isRunControlNodeType, O as WORKFLOW_TEST_NODE_TYPES, S as CardDescription, T as CardTitle, b as Card, i as badgeVariants, j as isNodeTypeHiddenFromPalette, k as filterPaletteNodes, r as Badge, w as CardHeader, x as CardContent } from "./TemplateCard-6W2q2wiK.js";
8
- import { r as extractTemplateGraph, t as TemplatePreview } from "./TemplatePreview-t3251W_n.js";
8
+ import { r as extractTemplateGraph, t as TemplatePreview } from "./TemplatePreview-Bb2f4enx.js";
9
9
  import { $ as DuplicateWorkflowDocument, $n as UntagFluidgridsEntityDocument, $r as WorkflowRunPendingDocument, $t as RenameWorkflowProjectDocument, A as CreateWorkflowDefinitionDocument, An as SetWorkflowRolloutDocument, Ar as WorkflowEditLeaseDocument, At as NodePaletteEntriesDocument, B as DeactivateWorkflowDefinitionDocument, Bn as TakeOverWorkflowEditLeaseDocument, Br as WorkflowNotificationSettingsDocument, Bt as PreviewN8nImportDocument, C as CompleteActivityByIdDocument, Ci as WorkflowWorkersDocument, Cn as SandboxWorkerTokenFieldsFragmentDoc, Cr as WorkflowCallInputsDocument, Ct as ListenForWebhookTestEventDocument, D as CreateFluidgridsTagDocument, Dn as SetContinuousOptimisationEnabledDocument, Dr as WorkflowDefinitionForBuilderDocument, Dt as NodeEndpointConfigsDocument, E as CreateActivityPauseRuleDocument, En as SearchFluidgridsTagsDocument, Er as WorkflowDefinitionDocument, Et as NodeEndpointConfigDocument, F as CreateWorkflowTestCaseDocument, Fn as StartBatchExportDocument, Fr as WorkflowGenerationTemplatesDocument, Ft as OptimisationSuggestionsDocument, G as DeleteWorkflowFolderDocument, Gn as TerminateExecutionDocument, Gr as WorkflowRolloutFieldsFragmentDoc, Gt as PushWorkflowToGitDocument, H as DeleteTaskQueueDocument, Hn as TaskQueueKindStatsFieldsFragmentDoc, Hr as WorkflowProjectsDocument, Ht as ProposeOptimisationDocument, I as CreateWorkflowTestCaseFromRunDocument, In as StartBatchOperationDocument, Ir as WorkflowGitCommitsDocument, It as PauseActivityDocument, J as DeleteWorkflowSearchAttributeDocument, Jn as TriggerWorkflowScheduleDocument, Jr as WorkflowRunEventFieldsFragmentDoc, Jt as RejectWorkflowPromotionDocument, K as DeleteWorkflowProjectDocument, Kn as TerminateWorkflowRunDocument, Kr as WorkflowRunDeterminismStatusDocument, Kt as QueryWorkflowRunDocument, L as CreateWorkflowVersionDocument, Ln as StartBatchTerminateDocument, Lr as WorkflowGitDiffDocument, Lt as PauseExecutionDocument, M as CreateWorkflowProjectDocument, Mn as ShareWorkflowDocument, Mr as WorkflowEnvironmentsDocument, Mt as NodeStatesDocument, N as CreateWorkflowSearchAttributeDocument, Nn as SignalWorkflowRunDocument, Nr as WorkflowFoldersDocument, Nt as NodeUsageStatusDocument, O as CreateTaskQueueDocument, On as SetRunFailureTriageEnabledDocument, Or as WorkflowDefinitionsDocument, Ot as NodeManifestDocument, P as CreateWorkflowSignalTokenDocument, Pn as SnoozeOptimisationSuggestionDocument, Pr as WorkflowGenerationDocument, Pt as OptimisationSuggestionFieldsFragmentDoc, Q as DismissRunFailureClusterDocument, Qn as UnpinNodeDataDocument, Qr as WorkflowRunMetadataDocument, Qt as RenameWorkflowFolderDocument, R as DashboardSummaryDocument, Rn as StopWebhookTestListenerDocument, Rr as WorkflowGitPushesDocument, Rt as PauseWorkflowScheduleDocument, S as CodecServerSettingsDocument, Si as WorkflowVersionsDocument, Sn as RunWorkflowTestsDocument, Sr as WorkflowBatchOperationsDocument, St as LinkWorkflowGitRepositoryDocument, T as ContinuousOptimisationSettingsFieldsFragmentDoc, Ti as WorkspaceRunsQuotaDocument, Tn as SaveWorkflowDraftDocument, Tr as WorkflowCodeSourceDocument, Tt as MoveWorkflowFolderDocument, U as DeleteWorkerTokenDocument, Un as TaskQueueStatsDocument, Ur as WorkflowPromotionRequestsDocument, Ut as ProposeRunFixDocument, V as DeleteActivityPauseRuleDocument, Vn as TaskQueueFieldsFragmentDoc, Vr as WorkflowPinnedDataDocument, Vt as PreviewScheduleDocument, W as DeleteWorkflowDefinitionDocument, Wn as TaskQueuesDocument, Wr as WorkflowProposalDocument, Wt as ProposeWorkflowChangeDocument, X as DeployWorkflowVersionToDevDocument, Xn as UnpauseActivityDocument, Xr as WorkflowRunHistoryArchiveDocument, Xt as ReleaseWorkflowEditLeaseDocument, Y as DeleteWorkflowTestCaseDocument, Yn as UnlinkWorkflowGitRepositoryDocument, Yr as WorkflowRunHierarchyDocument, Yt as RejectWorkflowProposalDocument, Z as DismissOptimisationSuggestionDocument, Zn as UnpauseWorkflowScheduleDocument, Zr as WorkflowRunHistoryDocument, Zt as RemoveNodeFromWorkflowsDocument, _ as CancelBatchOperationDocument, _i as WorkflowTestRunsDocument, _n as RunFromNodeDocument, _r as WorkflowArchiveSettingsFieldsFragmentDoc, _t as FluidgridsEntityTagsDocument, a as AgentStepFieldsFragmentDoc, ai as WorkflowScheduleDescriptionFieldsFragmentDoc, an as RestoreWorkflowFromGitDocument, ar as UpdateTaskQueueDocument, at as ExecuteStepDocument, b as CancelWorkflowPromotionDocument, bi as WorkflowVersionDrainageDocument, bn as RunLogLineFieldsFragmentDoc, br as WorkflowBatchOperationDocument, bt as ImportWorkflowDocument, c as ApplyWorkflowProposalDocument, ci as WorkflowSearchAttributesDocument, cn as RetryNodeDocument, cr as UpdateWorkflowNotificationSettingsDocument, ct as ExecutionStatsDocument, d as AvailableFluidgridsTagsDocument, di as WorkflowSignalTokensDocument, dn as RunAiUsageDocument, dr as UpsertWorkflowRunSearchAttributesDocument, dt as ExportWorkflowCodeDocument, ei as WorkflowRunStackTraceDocument, en as ReplaceFluidgridsEntityTagsDocument, er as UpdateActivityOptionsDocument, et as DurableHistoryCapsDocument, f as BackfillWorkflowScheduleDocument, fi as WorkflowTestCaseFieldsFragmentDoc, fn as RunCodeReplaceFieldsFragmentDoc, fr as UsageTimeSeriesDocument, ft as FailActivityByIdDocument, g as BulkMoveWorkflowsToFolderDocument, gi as WorkflowTestRunFieldsFragmentDoc, gn as RunFailureTriageSettingsDocument, gr as WorkflowActivityPauseRulesDocument, gt as FluidgridsAvailableTagFieldsFragmentDoc, h as BulkDeleteWorkflowsDocument, hi as WorkflowTestRunDocument, hn as RunFailureClustersDocument, hr as WorkflowActivityPauseRuleFieldsFragmentDoc, ht as FileDownloadUrlDocument, i as ActiveExecutionsDocument, ii as WorkflowScheduleDescribeDocument, in as ResetWorkflowRunToLastCleanTaskDocument, ir as UpdateManagedAiWorkspacePolicyDocument, it as EventRegistrationsDocument, j as CreateWorkflowFolderDocument, jn as SetWorkflowRunVersioningOverrideDocument, jr as WorkflowEditLeaseStatusDocument, jt as NodeSchemaIntrospectionDocument, k as CreateWorkerTokenDocument, kn as SetWorkerTokenConnectionAllowlistDocument, kr as WorkflowDefinitionsTagsDocument, kt as NodeManifestsDocument, l as ApproveWorkflowPromotionDocument, li as WorkflowSharingDocument, ln as RevokeWorkflowSignalTokenDocument, lr as UpdateWorkflowRunDocument, lt as ExecutionsListDocument, m as BulkAssignWorkflowsToProjectDocument, mi as WorkflowTestCasesDocument, mn as RunEventAppendedDocument, mr as WorkerTokensDocument, mt as FgTriageFailedRunsDocument, n as ActivateWorkflowDefinitionDocument, ni as WorkflowRunsCountDocument, nn as ResetActivityDocument, nr as UpdateCodecServerSettingsDocument, nt as DurableRunFieldsDocument, o as AgentStepUpdatedDocument, oi as WorkflowScheduleTickFieldsFragmentDoc, on as RestoreWorkflowVersionDocument, or as UpdateWorkflowDefinitionDocument, ot as ExecutionDetailDocument, p as BuildWorkflowCodeDocument, pi as WorkflowTestCaseResultFieldsFragmentDoc, pn as RunControlFieldsDocument, pr as WebhookTestListenerDocument, pt as FgRunOptimisationScanDocument, q as DeleteWorkflowRolloutDocument, qn as TriggerWorkflowDocument, qr as WorkflowRunDocument, qt as RegisterNodeDocument, r as ActivateWorkflowVersionCheckedDocument, ri as WorkflowRunsDocument, rn as ResetWorkflowRunDocument, rr as UpdateDurableHistoryCapsDocument, rt as ErrorAnalyticsDocument, s as AgentTraceDocument, si as WorkflowSearchAttributeFieldsFragmentDoc, sn as ResumeExecutionDocument, sr as UpdateWorkflowEnvironmentPolicyDocument, st as ExecutionLogsDocument, t as AcquireWorkflowEditLeaseDocument, ti as WorkflowRunUpdateDocument, tn as RequestWorkflowPromotionDocument, tr as UpdateArchiveSettingsDocument, tt as DurableParityRunFieldsDocument, u as ArchiveSettingsDocument, ui as WorkflowSignalTokenFieldsFragmentDoc, un as RotateWorkerTokenDocument, ur as UpdateWorkflowTestCaseDocument, ut as ExplainRunDocument, v as CancelExecutionDocument, vi as WorkflowUpdateResultFieldsFragmentDoc, vn as RunFromNodeEligibilityDocument, vr as WorkflowAuthoringDocument, vt as FluidgridsTagAssignmentFieldsFragmentDoc, w as ContinuousOptimisationSettingsDocument, wi as WorkspaceAiUsageDocument, wn as SandboxWorkflowWorkerFieldsFragmentDoc, wr as WorkflowCodeBundleSdkDocument, wt as ManagedAiWorkspacePolicyDocument, x as CancelWorkflowProposalDocument, xi as WorkflowVersioningDocument, xn as RunLogsDocument, xr as WorkflowBatchOperationUpdatedDocument, xt as ImportWorkflowTemplateDocument, y as CancelWorkflowGenerationDocument, yi as WorkflowVersionDiffDocument, yn as RunLogAppendedDocument, yr as WorkflowBatchJobFieldsFragmentDoc, yt as GenerateWorkflowFromPromptDocument, z as DataTablesTagsDocument, zn as TagFluidgridsEntityDocument, zr as WorkflowGitRepositoryDocument, zt as PinNodeDataDocument } from "./graphql-operation-types-kX-MMjgW.js";
10
- import { t as AiStudioPage } from "./AiStudioPage-DIfF4LhQ.js";
10
+ import { t as AiStudioPage } from "./AiStudioPage-CLrMe8v8.js";
11
11
  import { t as ThemeProvider } from "./theme-provider-B3mIuz2d.js";
12
- import { c as RunsUsageMeter, l as RunsUsageMeterView, o as BUILDER_FULLSCREEN_ATTRIBUTE, s as BUILDER_FULLSCREEN_EVENT, t as FlowBuilderPage, u as useRunsQuota, v as FluidGridsMark } from "./flow-builder-CE8cNXNi.js";
12
+ import { c as RunsUsageMeter, l as RunsUsageMeterView, o as BUILDER_FULLSCREEN_ATTRIBUTE, s as BUILDER_FULLSCREEN_EVENT, t as FlowBuilderPage, u as useRunsQuota, v as FluidGridsMark } from "./flow-builder-xokwiaT1.js";
13
13
  import { A as themeKey, C as resetFluidGridsConfig, D as FLUIDGRIDS_THEME_TOKEN_MAP, O as applyFluidGridsTheme, S as getGraphQLEndpoint, T as setFluidGridsConfig, _ as throwIfResultError, a as resetFluidGridsClient, c as createFluidGridsTokenRefreshLink, g as isUnauthenticatedError, h as isForbiddenError, i as isFluidGridsClientReady, j as themeToCssVariables, k as sanitizeThemeValue, l as FLUIDGRIDS_EVENTS_VERSION, m as describeOperationError, n as getFluidGridsClient, o as setFluidGridsClient, r as getFluidGridsClientSafe, s as waitForFluidGridsClient, t as createFluidGridsClient, u as FLUIDGRIDS_EVENT_NAMES, w as resetFluidGridsExecutionState, x as getFluidGridsConfig, y as config } from "./client-C9XSzSXr.js";
14
14
  import { t as ExecutionsListPage } from "./ExecutionsListPage-D63aCXJH.js";
15
15
  import { n as buttonVariants, t as Button } from "./button-DG7y_FVJ.js";
16
16
  import { a as DialogFooter, c as DialogPortal, d as Input, i as DialogDescription, l as DialogTitle, n as DialogClose, o as DialogHeader, r as DialogContent, s as DialogOverlay, t as Dialog, u as DialogTrigger } from "./dialog-Cjb4lB4D.js";
17
- import { r as RunHumanRequests, t as ExecutionDetailPage } from "./ExecutionDetailPage-DYLWtHRG.js";
17
+ import { r as RunHumanRequests, t as ExecutionDetailPage } from "./ExecutionDetailPage-DmICvIpH.js";
18
18
  import { _ as useWorkflowRuns, a as useDeactivateWorkflow, c as useImportWorkflow, d as useRestoreWorkflowVersion, f as useTriggerWorkflow, g as useWorkflowRun, h as useWorkflowDefinitions, i as useDashboardSummary, l as useLazyWorkflowDefinition, m as useWorkflowDefinition, n as useCreateWorkflow, o as useDeleteWorkflow, p as useUpdateWorkflow, r as useCreateWorkflowVersion, s as useDuplicateWorkflow, t as useActivateWorkflow, u as usePreviewN8nImport, v as useWorkflowVersions } from "./useWorkflows-D1-rYzGK.js";
19
19
  import { a as ConnectionSelector, i as RunOnSection, n as PopoverContent, r as PopoverTrigger, t as Popover } from "./popover-B1aKz7DC.js";
20
20
  import { t as ConnectionFormDialog } from "./ConnectionFormDialog-Bg9_OdHX.js";
@@ -31,8 +31,8 @@ import { t as RunnersPage } from "./RunnersPage-CLCOCclc.js";
31
31
  import { a as useRunners, i as useRunnerActions, n as RUNNER_INSTALL_SCRIPT_URL, r as runnerInstallCommand, t as RunnerStatusPill } from "./RunnerStatusPill-Ctg4TJcP.js";
32
32
  import { a as taskQueueNameProblem, i as taskQueueInputOf, n as TaskQueuesPage, t as TaskQueueStatsCard } from "./TaskQueuesPage-9VgSnLdL.js";
33
33
  import { i as decodePayloads, n as checkCodecServerUrl, o as isEncodedPayload } from "./codec-client-CJ95Rmqo.js";
34
- import { i as usePendingToolApprovals, r as useDecideToolApproval, t as ApprovalInboxPage } from "./ApprovalInboxPage-dbBDSJ-f.js";
35
- import { a as useRunHumanRequests, i as useRespondToHumanRequest, r as usePendingHumanRequests, t as HumanRequestCard } from "./HumanRequestCard-D-ooVPDn.js";
34
+ import { i as usePendingToolApprovals, r as useDecideToolApproval, t as ApprovalInboxPage } from "./ApprovalInboxPage-D8vhnloO.js";
35
+ import { a as useRespondToHumanRequest, i as usePendingHumanRequests, o as useRunHumanRequests, t as HumanRequestCard } from "./HumanRequestCard-mOhr-Ic9.js";
36
36
  import { a as rowsToCsv, c as useDataTables, d as useInsertDataTableRow, f as useUpdateDataTable, i as parseCsv, l as useDeleteDataTable, o as useCreateDataTable, p as useUpdateDataTableRow, r as csvToRows, s as useDataTableRows, t as DataTablesPage, u as useDeleteDataTableRows } from "./DataTablesPage-BpnF13UT.js";
37
37
  import { n as FluidGridsTranslationProvider, r as useTr, t as ENGLISH_FALLBACK_TRANSLATOR } from "./TranslationBridge-Da-TPgQm.js";
38
38
  import { a as SdkPermissionGate, c as Tooltip, d as TooltipTrigger, i as SdkPermissionButton, l as TooltipContent, n as ALLOW_ALL_PERMISSIONS, o as evaluatePermissionCheck, r as FluidGridsPermissionsProvider, s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS, u as TooltipProvider } from "./constants-B2lhWNoN.js";
@@ -79,9 +79,9 @@ import * as SwitchPrimitives from "@radix-ui/react-switch";
79
79
 
80
80
  // src/components/FluidGridsRoot.tsx
81
81
  const WorkflowsList$1 = lazy(() => import("./WorkflowsList-C3bHLpSv.js").then((n) => n.n).then((m) => ({ default: m.WorkflowsList })));
82
- const WorkflowBuilder$2 = lazy(() => import("./WorkflowBuilder-DdvSGsxr.js").then((n) => n.n).then((m) => ({ default: m.WorkflowBuilder })));
82
+ const WorkflowBuilder$2 = lazy(() => import("./WorkflowBuilder-CabLzwS5.js").then((n) => n.n).then((m) => ({ default: m.WorkflowBuilder })));
83
83
  const ExecutionsListPage$1 = lazy(() => import("./ExecutionsListPage-D63aCXJH.js").then((n) => n.n).then((m) => ({ default: m.ExecutionsListPage })));
84
- const ExecutionDetailPage$1 = lazy(() => import("./ExecutionDetailPage-DYLWtHRG.js").then((n) => n.n).then((m) => ({ default: m.ExecutionDetailPage })));
84
+ const ExecutionDetailPage$1 = lazy(() => import("./ExecutionDetailPage-DmICvIpH.js").then((n) => n.n).then((m) => ({ default: m.ExecutionDetailPage })));
85
85
  const PageLoader = () => /* @__PURE__ */ jsx("div", {
86
86
  className: "flex items-center justify-center h-64",
87
87
  children: /* @__PURE__ */ jsx("div", { className: "animate-spin rounded-full h-8 w-8 border-b-2 border-primary" })
@@ -2,10 +2,10 @@
2
2
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
3
3
  import { H as useFlowStore, a as changedSourceFiles, c as diagnosticsByPath, d as isEditableSourcePath, f as projectLanguage, h as sourceLanguageOf, l as interfaceFields, o as childRunIdOf, p as readCodeWorkflowState, r as CODE_WORKFLOW_NODE_TYPE, s as defaultSourcePath, u as interfaceHandlers } from "./node-operation-selection--oy-yEq_.js";
4
4
  import { $ as useNodeConfig, Fn as getNodeDetail, J as nodeSubtitle, Sn as useCodeWorkflowInterface, Y as nodeTitle, bn as clearCodeWorkflowDefinitionCache, dt as latestNodeLog, lt as FieldTree, mt as useGuardedNavigate, on as useNodeExecution, pn as fieldsFromValue, wn as declaredSignals } from "./FluidGridsProvider-CWyQ8ziM.js";
5
- import { a as TabButton, c as NDV_Z_INDEX, i as ReadOnlyFieldset, n as SchedulePanel, o as NodeSettingsPanel, r as NodeExecutionActions, s as NodeParamsForm, t as SCHEDULE_NODE_TYPE } from "./schedule-panel-CY6S4JMd.js";
5
+ import { a as TabButton, c as NDV_Z_INDEX, i as ReadOnlyFieldset, n as SchedulePanel, o as NodeSettingsPanel, r as NodeExecutionActions, s as NodeParamsForm, t as SCHEDULE_NODE_TYPE } from "./schedule-panel-BnqaUnnz.js";
6
6
  import { _ as throwIfResultError, m as describeOperationError, n as getFluidGridsClient, r as getFluidGridsClientSafe } from "./client-C9XSzSXr.js";
7
7
  import { Mt as NodeStatesDocument, Tr as WorkflowCodeSourceDocument, ht as FileDownloadUrlDocument, jr as WorkflowEditLeaseStatusDocument, p as BuildWorkflowCodeDocument } from "./graphql-operation-types-kX-MMjgW.js";
8
- import { h as TableView, m as JsonView } from "./flow-builder-CE8cNXNi.js";
8
+ import { h as TableView, m as JsonView } from "./flow-builder-xokwiaT1.js";
9
9
  import { jt as useUnpinNodeDataMutation, qt as useWorkflowPinnedDataQuery, st as usePinNodeDataMutation } from "./useAgentDefinitions-B0dam3_o.js";
10
10
  import { f as usePhaseCFlags, s as useDurableFunctionNodesEnabled } from "./feature-flags-DM5myWaD.js";
11
11
  import { s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-B2lhWNoN.js";
@@ -4,7 +4,7 @@ import { Y as nodeTitle, lt as FieldTree } from "./FluidGridsProvider-CWyQ8ziM.j
4
4
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
5
5
  import { f as usePhaseCFlags } from "./feature-flags-DM5myWaD.js";
6
6
  import { s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-B2lhWNoN.js";
7
- import { a as TabButton, i as ReadOnlyFieldset, n as SchedulePanel, o as NodeSettingsPanel, s as NodeParamsForm, t as SCHEDULE_NODE_TYPE } from "./schedule-panel-CY6S4JMd.js";
7
+ import { a as TabButton, i as ReadOnlyFieldset, n as SchedulePanel, o as NodeSettingsPanel, s as NodeParamsForm, t as SCHEDULE_NODE_TYPE } from "./schedule-panel-BnqaUnnz.js";
8
8
  import { useState } from "react";
9
9
  import { Icon } from "@iconify/react";
10
10
  import { cn } from "@burdenoff/fe-libs/utils";
@@ -1,3 +1,3 @@
1
1
 
2
- import { Aa as LogStreamEventType, Da as FailedRun, Ea as DataSinkSummary, Ma as NodeUsageStat, Oa as LogStreamDestination, Ta as DataSinkData, aAa as DataSinkDashboardPage, ja as LogStreamProvider, ka as LogStreamDestinationInput, nAa as InsightsPage, tAa as ErrorAnalyticsPage, wa as DashboardSummary } from "./index-7eJQwsNS.js";
2
+ import { Aa as LogStreamDestination, Da as DataSinkData, Ea as DashboardSummary, Ma as LogStreamEventType, Na as LogStreamProvider, Oa as DataSinkSummary, Pa as NodeUsageStat, iAa as InsightsPage, ja as LogStreamDestinationInput, ka as FailedRun, rAa as ErrorAnalyticsPage, sAa as DataSinkDashboardPage } from "./index-D507rsk2.js";
3
3
  export { type DashboardSummary, DataSinkDashboardPage, type DataSinkData, type DataSinkSummary, ErrorAnalyticsPage, type FailedRun, InsightsPage, type LogStreamDestination, type LogStreamDestinationInput, type LogStreamEventType, type LogStreamProvider, type NodeUsageStat };
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import { A as nodeAccent, H as useFlowStore, j as NodeTypeIcon } from "./node-operation-selection--oy-yEq_.js";
3
3
  import { $ as useNodeConfig, Fn as getNodeDetail, J as nodeSubtitle, Y as nodeTitle, on as useNodeExecution } from "./FluidGridsProvider-CWyQ8ziM.js";
4
- import { i as NodeInputFields, n as useNodeEditorTab, r as NodeEditorTabs, t as NodeEditorTabBody } from "./node-editor-tab-body-DxMbKspp.js";
4
+ import { i as NodeInputFields, n as useNodeEditorTab, r as NodeEditorTabs, t as NodeEditorTabBody } from "./node-editor-tab-body-eOsmnUvx.js";
5
5
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
6
- import { r as NodeExecutionActions } from "./schedule-panel-CY6S4JMd.js";
6
+ import { r as NodeExecutionActions } from "./schedule-panel-BnqaUnnz.js";
7
7
  import { useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
8
8
  import { useReactFlow, useStore } from "@xyflow/react";
9
9
  import { Icon } from "@iconify/react";
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { _ as throwIfResultError, m as describeOperationError, n as getFluidGridsClient, r as getFluidGridsClientSafe } from "./client-C9XSzSXr.js";
2
+ import { _ as throwIfResultError, m as describeOperationError, n as getFluidGridsClient, r as getFluidGridsClientSafe, x as getFluidGridsConfig } from "./client-C9XSzSXr.js";
3
3
  import { H as useFlowStore } from "./node-operation-selection--oy-yEq_.js";
4
4
  import { Bn as useBuilderReadOnly, G as asRecord, K as coerceNumber, U as useRunGuard, X as optionText, Y as nodeTitle, Z as paramsFromOperation, _n as openRunQuotaUpgradePrompt, at as resolveLoadOptionsSpec, ct as casesFromRules, dn as parseParameterValue, fn as structuredParameterType, ft as boundFieldsOf, gn as useFluidGridsAnalytics, hn as isParamVisible, it as optionListValues, nt as isStringOptionList, ot as ConditionTreeBuilder, pt as missingRequiredParameters, rt as optionListText, st as SwitchRulesEditor, t as FluidGridsContext, un as formatParameterValue, ut as parseMappingValue } from "./FluidGridsProvider-CWyQ8ziM.js";
5
5
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
@@ -23,6 +23,7 @@ import { gql } from "@apollo/client";
23
23
  import { Button, Card, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, Input, Label, ResponsiveDialog, ResponsiveDialogContent, ResponsiveDialogDescription, ResponsiveDialogFooter, ResponsiveDialogHeader, ResponsiveDialogTitle, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, Switch, Textarea } from "@burdenoff/fe-libs/ui";
24
24
  import { Button as Button$1 } from "@burdenoff/fe-libs/button";
25
25
  import { Plus, X } from "lucide-react";
26
+ import { createSharePrincipalLister } from "@burdenoff/fe-libs/connections";
26
27
  import cronstrue from "cronstrue";
27
28
  import { digest } from "ohash";
28
29
 
@@ -4077,6 +4078,144 @@ function TimeCampusTriggerSelect({ value, onChange, className, testId, label, in
4077
4078
  });
4078
4079
  }
4079
4080
 
4081
+ // src/builder/components/ndv/approver-fields.ts
4082
+ /**
4083
+ * The approvers field of "Send and Wait for Response" (BOFF-9956): which parameter gets the people
4084
+ * picker instead of a text box, and how picked people are stored. Pure so the rules are
4085
+ * unit-tested without React.
4086
+ *
4087
+ * The node stores approvers as user ids separated by commas (`responders`), the format the worker
4088
+ * has always read, so a workflow edited in the picker still runs on every worker version, and one
4089
+ * typed by hand or imported keeps working in the picker.
4090
+ */
4091
+ /** The node whose approvers get the picker. */
4092
+ const SEND_AND_WAIT_NODE_TYPE = "internal:send-and-wait";
4093
+ /** The parameter that holds the approvers' user ids. */
4094
+ const APPROVERS_FIELD = "responders";
4095
+ /** True when this parameter of this node renders the approver picker. */
4096
+ function isApproverPickerField(nodeType, fieldName) {
4097
+ return nodeType === "internal:send-and-wait" && fieldName === "responders";
4098
+ }
4099
+ /** The user ids in a stored value, in order and without repeats. */
4100
+ function approverIds(value) {
4101
+ let parts = [];
4102
+ if (Array.isArray(value)) parts = value;
4103
+ else if (typeof value === "string") parts = value.split(/[\n,]/);
4104
+ return [...new Set(parts.map((part) => typeof part === "string" ? part.trim() : "").filter(Boolean))];
4105
+ }
4106
+ /** The stored value with `id` added at the end (unchanged when it is already there). */
4107
+ function withApprover(value, id) {
4108
+ const ids = approverIds(value);
4109
+ const next = id.trim();
4110
+ if (next && !ids.includes(next)) ids.push(next);
4111
+ return ids.join(", ");
4112
+ }
4113
+ /** The stored value without `id`. */
4114
+ function withoutApprover(value, id) {
4115
+ return approverIds(value).filter((existing) => existing !== id).join(", ");
4116
+ }
4117
+
4118
+ // src/builder/components/ndv/approver-picker-field.tsx
4119
+ /**
4120
+ * People picker for the approvers of "Send and Wait for Response" (BOFF-9956).
4121
+ *
4122
+ * The field used to be free text holding user ids, which nobody knows by heart. The picker lists
4123
+ * the workspace's members by name (the same list the Share dialogs use) and stores the chosen ids
4124
+ * the way the node always has, comma separated. When the members cannot be listed (no permission,
4125
+ * the service is down) it falls back to the text box, so the node stays editable.
4126
+ */
4127
+ function defaultLister() {
4128
+ return createSharePrincipalLister(getFluidGridsClient());
4129
+ }
4130
+ function useWorkspaceMembers(listMembers) {
4131
+ const [state, setState] = useState({ status: "loading" });
4132
+ useEffect(() => {
4133
+ let mounted = true;
4134
+ const workspaceId = getFluidGridsConfig().workspaceId;
4135
+ (listMembers ?? defaultLister())(workspaceId).then((principals) => {
4136
+ if (mounted) setState({
4137
+ status: "ready",
4138
+ members: principals.filter((p) => p.principalType === "USER")
4139
+ });
4140
+ }).catch(() => {
4141
+ if (mounted) setState({ status: "failed" });
4142
+ });
4143
+ return () => {
4144
+ mounted = false;
4145
+ };
4146
+ }, [listMembers]);
4147
+ return state;
4148
+ }
4149
+ function ApproverPickerField({ value, onChange, label, className, testId, listMembers }) {
4150
+ const tr = useTr();
4151
+ const members = useWorkspaceMembers(listMembers);
4152
+ const chosen = approverIds(value);
4153
+ const byId = useMemo(() => new Map(members.status === "ready" ? members.members.map((member) => [member.principalId, member]) : []), [members]);
4154
+ if (members.status === "failed") return /* @__PURE__ */ jsxs("div", {
4155
+ className: "flex flex-col gap-1",
4156
+ "data-testid": testId,
4157
+ children: [/* @__PURE__ */ jsx("input", {
4158
+ type: "text",
4159
+ "aria-label": label,
4160
+ className,
4161
+ value: chosen.join(", "),
4162
+ onChange: (event) => onChange(event.target.value),
4163
+ "data-testid": `${testId}-text`
4164
+ }), /* @__PURE__ */ jsx("span", {
4165
+ className: "text-[11px] leading-snug text-status-warning-text",
4166
+ children: tr("fluidgrids.builder.approvers.loadFailed", "Could not list the workspace members. Enter user ids separated by commas.")
4167
+ })]
4168
+ });
4169
+ const chosenIds = new Set(chosen);
4170
+ const available = members.status === "ready" ? members.members.filter((member) => !chosenIds.has(member.principalId)) : [];
4171
+ return /* @__PURE__ */ jsxs("div", {
4172
+ className: "flex flex-col gap-1.5",
4173
+ "data-testid": testId,
4174
+ children: [chosen.length > 0 && /* @__PURE__ */ jsx("ul", {
4175
+ className: "flex flex-wrap gap-1.5",
4176
+ "aria-label": label,
4177
+ children: chosen.map((id) => {
4178
+ const name = byId.get(id)?.label ?? id;
4179
+ return /* @__PURE__ */ jsxs("li", {
4180
+ className: "flex items-center gap-1 rounded-md border border-border bg-muted px-2 py-0.5 text-xs text-foreground",
4181
+ "data-testid": `${testId}-chip`,
4182
+ children: [/* @__PURE__ */ jsx("span", {
4183
+ className: "max-w-48 truncate",
4184
+ title: byId.get(id)?.detail ?? id,
4185
+ children: name
4186
+ }), /* @__PURE__ */ jsx("button", {
4187
+ type: "button",
4188
+ onClick: () => onChange(withoutApprover(value, id)),
4189
+ "aria-label": tr("fluidgrids.builder.approvers.remove", "Remove {{name}}", { name }),
4190
+ className: "rounded text-muted-foreground hover:text-foreground focus-visible:outline-2 focus-visible:outline-primary",
4191
+ "data-testid": `${testId}-remove`,
4192
+ children: /* @__PURE__ */ jsx(Icon, {
4193
+ icon: "mdi:close",
4194
+ className: "size-3.5"
4195
+ })
4196
+ })]
4197
+ }, id);
4198
+ })
4199
+ }), /* @__PURE__ */ jsxs("select", {
4200
+ "aria-label": tr("fluidgrids.builder.approvers.add", "Add an approver"),
4201
+ className,
4202
+ value: "",
4203
+ disabled: members.status === "loading" || available.length === 0,
4204
+ onChange: (event) => {
4205
+ if (event.target.value) onChange(withApprover(value, event.target.value));
4206
+ },
4207
+ "data-testid": `${testId}-add`,
4208
+ children: [/* @__PURE__ */ jsx("option", {
4209
+ value: "",
4210
+ children: members.status === "loading" ? tr("fluidgrids.builder.approvers.loading", "Loading members…") : tr("fluidgrids.builder.approvers.add", "Add an approver")
4211
+ }), available.map((member) => /* @__PURE__ */ jsx("option", {
4212
+ value: member.principalId,
4213
+ children: member.detail ? `${member.label} (${member.detail})` : member.label
4214
+ }, member.principalId))]
4215
+ })]
4216
+ });
4217
+ }
4218
+
4080
4219
  // src/modules/channels/hooks/useChannels.ts
4081
4220
  /**
4082
4221
  * Custom hooks for fetching channels from global-channel-svc.
@@ -6331,9 +6470,10 @@ function NodeParamsForm({ config, nodeType, testIdPrefix = "ndv" }) {
6331
6470
  const booleanChecked = p.type === "boolean" && booleanParameterValue(fixedValue) === true;
6332
6471
  const isCodeParam = p.type === "code" || nodeType === "internal:code" && p.name === "code";
6333
6472
  const isChannelPicker = isChannelPickerField(nodeType, p.name);
6473
+ const isApproverPicker = isApproverPickerField(nodeType, p.name);
6334
6474
  const highlight = dragField === p.name;
6335
6475
  const controlId = `${formId}-param-${p.name}`;
6336
- const nativeControl = mode !== "expression" && !isCodeParam && !(structuredType && !optionList) && !p.loadOptions && !isChannelPicker && p.type !== "platform-event-module" && p.type !== "platform-event-record-type" && p.type !== "timecampus-time-trigger";
6476
+ const nativeControl = mode !== "expression" && !isCodeParam && !(structuredType && !optionList) && !p.loadOptions && !isChannelPicker && !isApproverPicker && p.type !== "platform-event-module" && p.type !== "platform-event-record-type" && p.type !== "timecampus-time-trigger";
6337
6477
  const inputCx = cn("w-full rounded-md border bg-background px-2.5 py-1.5 text-sm outline-none transition-colors disabled:opacity-50", highlight ? "border-primary ring-1 ring-primary" : "border-input focus:border-primary");
6338
6478
  return /* @__PURE__ */ jsxs("div", {
6339
6479
  className: "flex flex-col gap-1.5",
@@ -6419,6 +6559,12 @@ function NodeParamsForm({ config, nodeType, testIdPrefix = "ndv" }) {
6419
6559
  onChange: (v) => writeFixed(p.name, v),
6420
6560
  className: inputCx,
6421
6561
  testId: `${testIdPrefix}-param-${p.name}`
6562
+ }) : isApproverPicker ? /* @__PURE__ */ jsx(ApproverPickerField, {
6563
+ value: fixedValue,
6564
+ onChange: (next) => writeFixed(p.name, next),
6565
+ label: p.label ?? p.name,
6566
+ className: inputCx,
6567
+ testId: `${testIdPrefix}-param-${p.name}`
6422
6568
  }) : isChannelPicker ? /* @__PURE__ */ jsx(ChannelPickerField, {
6423
6569
  value: typeof fixedValue === "string" && fixedValue ? fixedValue : void 0,
6424
6570
  onSelect: channelSelectionHandler(params.map((f) => f.name), writeFixed),
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  import { A as nodeAccent, H as useFlowStore, j as NodeTypeIcon } from "./node-operation-selection--oy-yEq_.js";
3
3
  import { $ as useNodeConfig, Fn as getNodeDetail, J as nodeSubtitle, Y as nodeTitle, on as useNodeExecution } from "./FluidGridsProvider-CWyQ8ziM.js";
4
- import { i as NodeInputFields, n as useNodeEditorTab, r as NodeEditorTabs, t as NodeEditorTabBody } from "./node-editor-tab-body-DxMbKspp.js";
5
- import { r as NodeExecutionActions } from "./schedule-panel-CY6S4JMd.js";
4
+ import { i as NodeInputFields, n as useNodeEditorTab, r as NodeEditorTabs, t as NodeEditorTabBody } from "./node-editor-tab-body-eOsmnUvx.js";
5
+ import { r as NodeExecutionActions } from "./schedule-panel-BnqaUnnz.js";
6
6
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
7
7
  import { useEffect, useState } from "react";
8
8
  import { Icon } from "@iconify/react";
package/dist/templates.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use client";
2
2
  import { t as TemplatesPage } from "./TemplatesPage-Bvg6R2P9.js";
3
- import { t as TemplatePreview } from "./TemplatePreview-t3251W_n.js";
3
+ import { t as TemplatePreview } from "./TemplatePreview-Bb2f4enx.js";
4
4
 
5
5
  export { TemplatePreview, TemplatesPage };
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { n as WorkflowBuilderCore, t as WorkflowBuilder } from "./WorkflowBuilder-C-hgvww2.js";
3
- import { t as WorkflowBuilder$1 } from "./WorkflowBuilder-DdvSGsxr.js";
2
+ import { n as WorkflowBuilderCore, t as WorkflowBuilder } from "./WorkflowBuilder-TgKSGNlu.js";
3
+ import { t as WorkflowBuilder$1 } from "./WorkflowBuilder-CabLzwS5.js";
4
4
  import { H as useFlowStore } from "./node-operation-selection--oy-yEq_.js";
5
5
  import { m as refetchStoreNodes } from "./FluidGridsProvider-CWyQ8ziM.js";
6
6
  import { t as WorkflowSearchRedirect } from "./WorkflowSearchRedirect-33Vs4FKc.js";
@@ -2,7 +2,7 @@
2
2
  import { n as WorkflowsList_d_exports } from "./WorkflowsList-CcNDQge5.js";
3
3
  import { a as WorkflowSearchRedirect_d_exports, o as WorkflowBuilder } from "./index-DjiFgEQl.js";
4
4
  import { i as TemplatePreview_d_exports, n as TemplatesPage_d_exports } from "./TemplatesPage-BG3H-6v6.js";
5
- import { EAa as AiStudioPage_d_exports, Hi as TaskQueuesPage_d_exports, Mi as ApprovalInboxPage_d_exports, _a as VariablesPage_d_exports, di as DataTablesPage_d_exports, iAa as InsightsPage_d_exports, oAa as DataSinkDashboardPage_d_exports, qi as RunnersPage_d_exports, rAa as InsightsPageProps } from "./index-7eJQwsNS.js";
5
+ import { OAa as AiStudioPage_d_exports, Pi as ApprovalInboxPage_d_exports, Wi as TaskQueuesPage_d_exports, Yi as RunnersPage_d_exports, aAa as InsightsPageProps, cAa as DataSinkDashboardPage_d_exports, di as DataTablesPage_d_exports, oAa as InsightsPage_d_exports, ya as VariablesPage_d_exports } from "./index-D507rsk2.js";
6
6
  import { i as ExecutionsListPage_d_exports, n as ExecutionDetailPage_d_exports } from "./ExecutionDetailPage-DvQ667OE.js";
7
7
  import { n as HistoryPage_d_exports } from "./HistoryPage-BLoRpJ1R.js";
8
8
  import { n as NodesPage_d_exports } from "./NodesPage-DEbnz9iU.js";
@@ -55,12 +55,12 @@ function createWorkflowPages(importers) {
55
55
  */
56
56
  const pages = createWorkflowPages({
57
57
  WorkflowsList: () => import("./WorkflowsList-C3bHLpSv.js").then((n) => n.n),
58
- WorkflowBuilderPage: () => import("./WorkflowBuilder-DdvSGsxr.js").then((n) => n.n).then((m) => ({ WorkflowBuilderPage: m.WorkflowBuilder })),
58
+ WorkflowBuilderPage: () => import("./WorkflowBuilder-CabLzwS5.js").then((n) => n.n).then((m) => ({ WorkflowBuilderPage: m.WorkflowBuilder })),
59
59
  WorkflowSearchRedirect: () => import("./WorkflowSearchRedirect-33Vs4FKc.js").then((n) => n.n),
60
- TemplatePreview: () => import("./TemplatePreview-t3251W_n.js").then((n) => n.n),
61
- AiStudioPage: () => import("./AiStudioPage-DIfF4LhQ.js").then((n) => n.n),
60
+ TemplatePreview: () => import("./TemplatePreview-Bb2f4enx.js").then((n) => n.n),
61
+ AiStudioPage: () => import("./AiStudioPage-CLrMe8v8.js").then((n) => n.n),
62
62
  ExecutionsListPage: () => import("./ExecutionsListPage-D63aCXJH.js").then((n) => n.n),
63
- ExecutionDetailPage: () => import("./ExecutionDetailPage-DYLWtHRG.js").then((n) => n.n),
63
+ ExecutionDetailPage: () => import("./ExecutionDetailPage-DmICvIpH.js").then((n) => n.n),
64
64
  HistoryPage: () => import("./HistoryPage-CNXgUMb0.js").then((n) => n.n),
65
65
  TemplatesPage: () => import("./TemplatesPage-Bvg6R2P9.js").then((n) => n.n),
66
66
  NodesPage: () => import("./NodesPage-Bf5PhfBK.js").then((n) => n.n),
@@ -71,7 +71,7 @@ const pages = createWorkflowPages({
71
71
  VariablesPage: () => import("./VariablesPage-67WR_lVE.js").then((n) => n.n),
72
72
  RunnersPage: () => import("./RunnersPage-CLCOCclc.js").then((n) => n.n),
73
73
  TaskQueuesPage: () => import("./TaskQueuesPage-9VgSnLdL.js").then((n) => n.r),
74
- ApprovalInboxPage: () => import("./ApprovalInboxPage-dbBDSJ-f.js").then((n) => n.n),
74
+ ApprovalInboxPage: () => import("./ApprovalInboxPage-D8vhnloO.js").then((n) => n.n),
75
75
  DataTablesPage: () => import("./DataTablesPage-BpnF13UT.js").then((n) => n.n)
76
76
  });
77
77
  /** Every workflow page this entry exports. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burdenoff/fluidgrids-fe-sdk",
3
- "version": "2026.1111.22",
3
+ "version": "2026.1111.23",
4
4
  "description": "FluidGrids Workflow Builder SDK - Embeddable visual workflow automation",
5
5
  "type": "module",
6
6
  "imports": {